bug
jiangqs
2023-07-28 cb49d77f0b0a1a066790c65088864200f10e9462
bug
33个文件已修改
7个文件已添加
622 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerCouponController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/AppMemberBrowseDto.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/BrowseRecord.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MetAuditCouponTotalVo.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/BrowseRecordServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/BrowseRecordService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/OrderGoods.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/PayRecord.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderGetVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderGoodsPageVo.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderPageVo.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerTotalOrderVo.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderDetailVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderPayListVo.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/PayRecordMapper.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/ServiceRecordDetailMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/PayRecordServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/PayRecordService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/PayRecordMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -12,7 +12,7 @@
    String USER_NOT_LOGIN = "用户没有登录或登录已失效";
    String USER_NO_SHOP = "用户没有关联商户";
    String USER_NO_SHOP = "未查询到用户关联商户";
    String USER_NO_SYSTEM = "员工没有录入系统";
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -1,5 +1,14 @@
package com.ruoyi.gateway.filter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.constant.HttpStatus;
import com.ruoyi.common.core.constant.SecurityConstants;
@@ -10,15 +19,6 @@
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties;
import io.jsonwebtoken.Claims;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
import javax.annotation.Resource;
@@ -46,29 +46,34 @@
    {
        ServerHttpRequest request = exchange.getRequest();
        ServerHttpRequest.Builder mutate = request.mutate();
        String url = request.getURI().getPath();
        log.info("requestUrl---"+url);
        String token = getToken(request);
        Claims claims = null;
        String userid = null;
        if(StringUtils.isNotBlank(token)){
            claims = JwtUtils.parseToken(token);
            if(claims!=null){
                userid = JwtUtils.getUserId(claims);
                addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
            }
        }
        // 跳过不需要验证的路径
        if (StringUtils.matches(url, ignoreWhite.getWhites()))
        {
            //附近商户获取
            if(url.contains("getNearbyShop")){
                String token = getToken(request);
                if(!StringUtils.isEmpty(token)){
                    Claims claims = JwtUtils.parseToken(token);
                    if(claims!=null){
                        String userid = JwtUtils.getUserId(claims);
                        if(!StringUtils.isEmpty(userid)){
                            addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
                        }
                    }
                }
            }
            return chain.filter(exchange);
        }
        String token = getToken(request);
        log.info("requestToken---"+token);
        if (StringUtils.isEmpty(token))
        {
            return unauthorizedResponse(exchange, "需要先登录才能使用该功能");
        }
        Claims claims = JwtUtils.parseToken(token);
        if (claims == null)
        {
            return unauthorizedResponse(exchange, "需要先登录才能使用该功能!");
@@ -79,11 +84,13 @@
        {
            return unauthorizedResponse(exchange, "登录状态已过期");
        }
        String userid = JwtUtils.getUserId(claims);
        String username = JwtUtils.getUserName(claims);
        if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username))
        {
            return unauthorizedResponse(exchange, "登录验证失败");
        }
        // 设置用户信息到请求
        addHeader(mutate, SecurityConstants.USER_KEY, userkey);
        addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java
@@ -44,7 +44,7 @@
    private String goodsTag;
    @ApiModelProperty(value = "商品调理问题")
    private BigDecimal goodsNurses;
    private String goodsNurses;
    @ApiModelProperty(value="服务次数")
    private Integer serviceNum;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
@@ -152,7 +152,7 @@
            BigDecimal salesPercent = BigDecimal.ZERO;
            // 计算销售百分比
            if (activityNumber != 0) {
                salesPercent = BigDecimal.valueOf(salesNumber).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(activityNumber), 2, BigDecimal.ROUND_HALF_UP);
                salesPercent = BigDecimal.valueOf(salesNumber).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(activityNumber),2, BigDecimal.ROUND_HALF_UP);
            }
            // 设置销售百分比和时间戳
            appSimpleActivityGoodsVo.setSalesPercent(salesPercent);
@@ -587,7 +587,7 @@
            BigDecimal salesPercent = BigDecimal.ZERO;
            // 计算销售百分比
            if (activityNumber != 0) {
                salesPercent = BigDecimal.valueOf(salesNumber).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(activityNumber), 2, BigDecimal.ROUND_HALF_UP);
                salesPercent = BigDecimal.valueOf(salesNumber).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(activityNumber),2, BigDecimal.ROUND_HALF_UP);
            }
            // 设置销售百分比和时间戳
            appSimpleActivityGoodsVo.setSalesPercent(salesPercent);
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerCouponController.java
@@ -9,9 +9,11 @@
import com.ruoyi.member.domain.dto.MgtCouponListDto;
import com.ruoyi.member.domain.vo.MerCouponGetVo;
import com.ruoyi.member.domain.vo.MerCouponPageVo;
import com.ruoyi.member.domain.vo.MetAuditCouponTotalVo;
import com.ruoyi.member.domain.vo.MgtCouponSimpleListVo;
import com.ruoyi.member.service.coupon.CouponService;
import com.ruoyi.member.service.member.MemberCouponService;
import com.ruoyi.system.api.domain.dto.MerBaseDto;
import com.ruoyi.system.api.domain.dto.MerBaseGetDto;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
@@ -116,4 +118,14 @@
        List<MerMemberCouponVo> merMemberCouponVoList = memberCouponService.listMerShopGoodsMemberCoupon(merGoodsCouponListDto);
        return R.ok(merMemberCouponVoList);
    }
    @RequestMapping(value = "/getMetAuditCouponTotal", method = RequestMethod.POST)
    @ApiOperation(value = "商户获取优惠券审核统计")
    public R<MetAuditCouponTotalVo> getMetAuditCouponTotal(@RequestBody MerBaseDto merBaseDto) {
        Long userId = SecurityUtils.getUserId();
        merBaseDto.setUserId(userId);
        MetAuditCouponTotalVo auditCouponTotalVo = couponService.getMetAuditCouponTotal(merBaseDto.getShopId());
        return R.ok(auditCouponTotalVo);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
@@ -5,11 +5,13 @@
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.dto.AppMemberBrowseDto;
import com.ruoyi.member.domain.vo.AppBirthdayCardVo;
import com.ruoyi.member.domain.vo.AppMemberPrizePageVo;
import com.ruoyi.member.domain.vo.AppSuggestPageVo;
import com.ruoyi.member.domain.vo.AppUserInfoVo;
import com.ruoyi.member.service.birthday.BirthdayCardService;
import com.ruoyi.member.service.member.BrowseRecordService;
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.member.service.member.MemberSuggestService;
import com.ruoyi.system.api.constant.AppErrorConstant;
@@ -46,6 +48,9 @@
    @Resource
    private BirthdayCardService birthdayCardService;
    @Resource
    private BrowseRecordService browseRecordService;
    @RequestMapping(value = "/getAppUserInfo", method = RequestMethod.POST)
@@ -156,4 +161,14 @@
        List<AppMemberPrizePageVo> memberPrizePageVoList = birthdayCardService.pageAppMemberPrize(page,userId);
        return R.ok(page.setRecords(memberPrizePageVoList));
    }
    @RequestMapping(value = "/browseRecord", method = RequestMethod.POST)
    @ApiOperation(value = "浏览记录")
    public R browseRecord(@RequestBody AppMemberBrowseDto appMemberBrowseDto) {
        Long userId = SecurityUtils.getUserId();
        appMemberBrowseDto.setUserId(userId);
        browseRecordService.browseRecord(appMemberBrowseDto);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/AppMemberBrowseDto.java
@@ -4,6 +4,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @ClassName AppMemberBrowseDto
 * @Description TODO
@@ -22,4 +24,12 @@
    @ApiModelProperty(value = "浏览名称 营销活动为活动名称 商城商品为商品名称 关于鸿瑞堂为文章名称")
    private String browseName;
    @ApiModelProperty(value = "浏览开始时间")
    private Date startTime;
    @ApiModelProperty(value = "浏览结束时间")
    private Date endTime;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/BrowseRecord.java
@@ -1,16 +1,16 @@
package com.ruoyi.member.domain.pojo.member;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
@@ -37,7 +37,7 @@
     * 删除标记
     */
    @TableField("del_flag")
    private String delFlag;
    private Integer delFlag;
    /**
     * 用户id
     */
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MetAuditCouponTotalVo.java
New file
@@ -0,0 +1,23 @@
package com.ruoyi.member.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName MetAuditCouponTotalVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/28 11:26
 * @Version 1.0
 */
@Data
public class MetAuditCouponTotalVo {
    @ApiModelProperty(value = "待审核统计")
    private Integer unAuditTotal;
    @ApiModelProperty(value = "已驳回统计")
    private Integer refuseTotal;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java
@@ -111,7 +111,7 @@
     * @param mgtUserIdByKeywordDto
     * @return  MgtUserIdByKeywordVo
     */
    List<Long> getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto);
    List<Long> getUserIdByKeyword(@Param("param")MgtUserIdByKeywordDto mgtUserIdByKeywordDto);
    /**
    * @description 总用户数
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
@@ -192,5 +192,12 @@
     */
    void autoTimeSendCoupon(String couponId);
    /**
     * @description  获取商户优惠券审核统计
     * @author  jqs
     * @date    2023/7/28 11:30
     * @param shopId
     * @return  MetAuditCouponTotalVo
     */
    MetAuditCouponTotalVo getMetAuditCouponTotal(Long shopId);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java
@@ -448,8 +448,8 @@
                                break;
                            case 4:
                                // 礼物类型为4,即礼品
                                appBirthdayGiftVo.setGiftName(memberGiftRecord.getCouponName());
                                appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getCouponNumber());
                                appBirthdayGiftVo.setGiftName(memberGiftRecord.getGiftName());
                                appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getGiftNumber());
                                break;
                            default:
                                break;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -305,7 +305,7 @@
        }
        //判断是否指定用户
        List<Long> relUserIdList = null;
        if(coupon.getSendTarget()==2&&coupon.getSendTarget()==5&&coupon.getRelationType()==1&&!mgtCouponEditDto.getRelUserIdList().isEmpty()){
        if(coupon.getSendTarget()==5&&coupon.getRelationType()==1&&!mgtCouponEditDto.getRelUserIdList().isEmpty()){
            relUserIdList = mgtCouponEditDto.getRelUserIdList();
            List<CouponRelUser> couponRelUserList = new ArrayList<>();
            CouponRelUser couponRelUser;
@@ -322,7 +322,7 @@
            coupon.setRelUserIds(userIdSj.toString());
        }
        //处理优惠券发放
        if(coupon.getSendTimeType()==1){
        if(coupon.getSendType()==2&&coupon.getSendTimeType()==1){
            sendCoupon(coupon,relUserIdList);
            coupon.setSendFlag(1);
            this.saveOrUpdate(coupon);
@@ -1151,4 +1151,32 @@
        memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1);
    }
    /**
     * @description  获取商户优惠券审核统计
     * @author  jqs
     * @date    2023/7/28 11:30
     * @param shopId
     * @return  MetAuditCouponTotalVo
     */
    @Override
    public MetAuditCouponTotalVo getMetAuditCouponTotal(Long shopId){
        MetAuditCouponTotalVo metAuditCouponTotalVo = new MetAuditCouponTotalVo();
        LambdaQueryWrapper<Coupon> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Coupon::getDelFlag,0);
        queryWrapper.eq(Coupon::getCouponFrom,2);
        queryWrapper.eq(Coupon::getShopId,shopId);
        queryWrapper.eq(Coupon::getCouponStatus,1);
        queryWrapper.eq(Coupon::getAuditStatus,1);
        Integer unAuditTotal = this.count(queryWrapper);
        queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Coupon::getDelFlag,0);
        queryWrapper.eq(Coupon::getCouponFrom,2);
        queryWrapper.eq(Coupon::getShopId,shopId);
        queryWrapper.eq(Coupon::getCouponStatus,1);
        queryWrapper.eq(Coupon::getAuditStatus,3);
        Integer refuseTotal = this.count(queryWrapper);
        metAuditCouponTotalVo.setUnAuditTotal(unAuditTotal);
        metAuditCouponTotalVo.setRefuseTotal(refuseTotal);
        return metAuditCouponTotalVo;
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/BrowseRecordServiceImpl.java
@@ -1,6 +1,8 @@
package com.ruoyi.member.service.impl.member;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.member.domain.dto.AppMemberBrowseDto;
import com.ruoyi.member.domain.dto.MerMemberBrowsePageDto;
import com.ruoyi.member.domain.dto.MgtMemberBrowsePageDto;
import com.ruoyi.member.domain.pojo.member.BrowseRecord;
@@ -8,10 +10,10 @@
import com.ruoyi.member.domain.vo.MgtMemberBrowsePageVo;
import com.ruoyi.member.mapper.member.BrowseRecordMapper;
import com.ruoyi.member.service.member.BrowseRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Calendar;
import java.util.List;
/**
@@ -51,4 +53,47 @@
    public List<MerMemberBrowsePageVo> pageMerMemberBrowse(Page page, MerMemberBrowsePageDto merMemberBrowsePageDto){
        return browseRecordMapper.pageMerMemberBrowse(page, merMemberBrowsePageDto);
    }
    /**
     * @description  浏览记录
     * @author  jqs
     * @date    2023/7/28 10:27
     * @param appMemberBrowseDto
     * @return  void
     */
    @Override
    public void browseRecord(AppMemberBrowseDto appMemberBrowseDto){
        BrowseRecord browseRecord = new BrowseRecord();
        browseRecord.setDelFlag(0);
        browseRecord.setUserId(appMemberBrowseDto.getUserId());
        browseRecord.setBrowseType(appMemberBrowseDto.getBrowseType());
        browseRecord.setBrowseId(appMemberBrowseDto.getBrowseId());
        browseRecord.setBrowseName(appMemberBrowseDto.getBrowseName());
        browseRecord.setCreateTime(appMemberBrowseDto.getStartTime());
        browseRecord.setQuitTime(appMemberBrowseDto.getEndTime());
        Calendar startCalendar = Calendar.getInstance();
        startCalendar.setTime(appMemberBrowseDto.getStartTime());
        Calendar endCalendar = Calendar.getInstance();
        endCalendar.setTime(appMemberBrowseDto.getEndTime());
        // 计算时间差异
        long milliseconds = endCalendar.getTimeInMillis() - startCalendar.getTimeInMillis();
        int seconds = (int) (milliseconds / 1000) % 60;
        int minutes = (int) ((milliseconds / (1000 * 60)) % 60);
        int hours = (int) ((milliseconds / (1000 * 60 * 60)) % 24);
        if(hours==0&&minutes==0&&seconds<60){
            seconds = 0;
            minutes = 1;
        }
        String browseTime = "";
        if(hours>0){
            browseTime = browseTime + hours + "小时 ";
        }
        if(minutes>0){
            browseTime = browseTime + minutes + "分钟 ";
        }
        if(seconds>0){
            browseTime = browseTime + seconds + "秒";
        }
        browseRecord.setBrowseTime(browseTime);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -637,7 +637,7 @@
            // Get shop information and set it to the member
            Shop shop = remoteShopService.getShop(merMemberAddDto.getShopId()).getData();
            member.setRelationShopName(shop.getShopName());
            member.setCustomerSource("商户添加");
            member.setCustomerSource(merMemberAddDto.getCustomerSource());
            member.setCreateTime(new Date());
            // Save the member and initialize member total
            this.saveOrUpdate(member);
@@ -1578,7 +1578,7 @@
            menPercent = new BigDecimal("100.00");
            womenPercent = new BigDecimal("0.00");
        }else{
            menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP);
            menPercent = manTotalBig.divide(personTotalBig,0,BigDecimal.ROUND_HALF_UP);
            womenPercent = bigTen.subtract(menPercent);
        }
        memberFixedTotalVo.setManPercent(menPercent);
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/BrowseRecordService.java
@@ -1,6 +1,7 @@
package com.ruoyi.member.service.member;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.member.domain.dto.AppMemberBrowseDto;
import com.ruoyi.member.domain.dto.MerMemberBrowsePageDto;
import com.ruoyi.member.domain.dto.MgtMemberBrowsePageDto;
import com.ruoyi.member.domain.pojo.member.BrowseRecord;
@@ -37,4 +38,13 @@
     * @return  List<MerMemberBrowsePageVo>
     */
    List<MerMemberBrowsePageVo> pageMerMemberBrowse(Page page, MerMemberBrowsePageDto merMemberBrowsePageDto);
    /**
     * @description  浏览记录
     * @author  jqs
     * @date    2023/7/28 10:27
     * @param appMemberBrowseDto
     * @return  void
     */
    void browseRecord(AppMemberBrowseDto appMemberBrowseDto);
}
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -341,7 +341,8 @@
    <select id="getUserIdByKeyword" resultType="java.lang.Long">
        SELECT
            tm.user_id
        FROM t_member tm tm.del_flag = 0
        FROM t_member tm
        WHERE tm.del_flag = 0
        <if test="param.keyword != null and param.keyword != ''">
            AND (tm.mobile LIKE CONCAT('%',#{param.keyword},'%') OR tm.real_name LIKE CONCAT('%',#{param.keyword},'%') OR tm.nick_name LIKE CONCAT('%',#{param.keyword},'%'))
        </if>
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
@@ -8,7 +8,6 @@
import com.ruoyi.order.domain.vo.*;
import com.ruoyi.order.service.order.OrderService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.MerBaseDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;
@@ -140,10 +139,10 @@
    @RequestMapping(value = "/totalMerOrder", method = RequestMethod.POST)
    @ApiOperation(value = "商户端订单管理统计")
    public R<MerTotalOrderVo> totalMerOrder(@RequestBody MerBaseDto merBaseDto) {
    public R<MerTotalOrderVo> totalMerOrder(@RequestBody MerOrderPageDto merOrderPageDto) {
        Long userId = SecurityUtils.getUserId();
        merBaseDto.setUserId(userId);
        MerTotalOrderVo totalOrderVo = orderService.totalMerOrder(merBaseDto);
        merOrderPageDto.setUserId(userId);
        MerTotalOrderVo totalOrderVo = orderService.totalMerOrder(merOrderPageDto);
        return R.ok(totalOrderVo);
    }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/OrderGoods.java
@@ -94,6 +94,9 @@
    @TableField("goods_name")
    private String goodsName;
    @TableField("goods_introduction")
    private String goodsIntroduction;
    @TableField("goods_picture")
    private String goodsPicture;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/PayRecord.java
New file
@@ -0,0 +1,66 @@
package com.ruoyi.order.domain.pojo.order;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * <p>
 * 订单支付记录
 * </p>
 *
 * @author jqs
 * @since 2023-07-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_pay_record")
public class PayRecord extends Model<PayRecord> {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 删除标记
     */
    @TableField("del_flag")
    private Integer delFlag;
    /**
     * 订单id
     */
    @TableField("order_id")
    private String orderId;
    /**
     * 支付金额
     */
    @TableField("pay_money")
    private BigDecimal payMoney;
    /**
     * 支付时间
     */
    @TableField("pay_time")
    private Date payTime;
    /**
     * 支付类型1微信支付2店铺收银
     */
    @TableField("pay_type")
    private Integer payType;
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderGetVo.java
@@ -43,6 +43,11 @@
    private BigDecimal receivableDeposit;
    @ApiModelProperty(value="待支付金额")
    private BigDecimal unpaidMoney;
    @ApiModelProperty(value="订单商品列表")
    private List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderGoodsPageVo.java
@@ -1,6 +1,5 @@
package com.ruoyi.order.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -25,6 +24,9 @@
    @ApiModelProperty(value="商品名称")
    private String goodsName;
    @ApiModelProperty(value = "商品简介")
    private String goodsIntroduction;
    @ApiModelProperty(value="商品图片")
    private String goodsPicture;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderPageVo.java
@@ -1,6 +1,5 @@
package com.ruoyi.order.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -24,6 +23,9 @@
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
    @ApiModelProperty(value = "用户电话")
    private String userMobile;
@@ -52,6 +54,9 @@
    @ApiModelProperty(value="订单实际支付金额")
    private BigDecimal payMoney;
    @ApiModelProperty(value="订单已收金额")
    private BigDecimal receiveMoney;
    @ApiModelProperty(value="订单未支付金额")
    private BigDecimal unPaidMoney;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerTotalOrderVo.java
@@ -25,9 +25,12 @@
    @ApiModelProperty(value = "实收金额")
    private BigDecimal relReceiveMoney;
    @ApiModelProperty(value = "实付金额")
    @ApiModelProperty(value = "已收金额")
    private BigDecimal relPayMoney;
    @ApiModelProperty(value = "未收金额")
    private BigDecimal unpaidMoney;
    @ApiModelProperty(value = "总订金")
    private BigDecimal receivableDeposit;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java
@@ -19,6 +19,9 @@
public class MgtActivityOrderPageVo {
    @ApiModelProperty(value="订单id")
    private String orderId;
    @Excel(name = "订单编号", width = 30)
    @ApiModelProperty(value="订单编号")
    private String orderNo;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java
@@ -54,6 +54,10 @@
    @ApiModelProperty(value="订单实际支付金额")
    private BigDecimal payMoney;
    @Excel(name = "订单未支付金额", width = 30)
    @ApiModelProperty(value="订单未支付金额")
    private BigDecimal unPaidMoney;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderDetailVo.java
@@ -99,4 +99,7 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date verifyTime;
    @ApiModelProperty(value="支付记录")
    List<MgtOrderPayListVo> orderPayListVoList;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderPayListVo.java
New file
@@ -0,0 +1,27 @@
package com.ruoyi.order.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @ClassName MgtOrderPayListVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/28 14:26
 * @Version 1.0
 */
@Data
public class MgtOrderPayListVo {
    @ApiModelProperty(value="支付金额")
    private BigDecimal payMoney;
    @ApiModelProperty(value="支付时间")
    private Date payTime;
    @ApiModelProperty(value="支付类型")
    private String payType;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java
@@ -37,6 +37,10 @@
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @Excel(name = "用户手机", width = 30)
    @ApiModelProperty(value = "用户手机")
    private String userMobile;
    @ApiModelProperty(value="订单商品列表")
    private List<MgtOrderGoodsPageVo> mgtOrderGoodsPageVoList;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -510,7 +510,7 @@
     * @param shopId
     * @return  MerTotalOrderVo
     */
    MerTotalOrderVo totalMerOrder(@Param("shopId")Long shopId);
    MerTotalOrderVo totalMerOrder(@Param("param")MerOrderPageDto merOrderPageDto);
    /**
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/PayRecordMapper.java
New file
@@ -0,0 +1,28 @@
package com.ruoyi.order.mapper.order;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.order.domain.pojo.order.PayRecord;
import com.ruoyi.order.domain.vo.MgtOrderPayListVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * 订单支付记录 Mapper 接口
 * </p>
 *
 * @author jqs
 * @since 2023-07-28
 */
public interface PayRecordMapper extends BaseMapper<PayRecord> {
    /**
     * @description  获取订单支付记录
     * @author  jqs
     * @date    2023/7/28 14:28
     * @param orderId
     * @return  List<MgtOrderPayListVo>
     */
    List<MgtOrderPayListVo> listMgtOrderPayVo(@Param("orderId") String orderId);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/ServiceRecordDetailMapper.java
@@ -13,4 +13,5 @@
 */
public interface ServiceRecordDetailMapper extends BaseMapper<ServiceRecordDetail> {
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -18,12 +18,10 @@
import com.ruoyi.order.domain.pojo.order.ConsumerGoods;
import com.ruoyi.order.domain.pojo.order.Order;
import com.ruoyi.order.domain.pojo.order.OrderGoods;
import com.ruoyi.order.domain.pojo.order.PayRecord;
import com.ruoyi.order.domain.vo.*;
import com.ruoyi.order.mapper.order.OrderMapper;
import com.ruoyi.order.service.order.ConsumerGoodsService;
import com.ruoyi.order.service.order.OrderGoodsService;
import com.ruoyi.order.service.order.OrderService;
import com.ruoyi.order.service.order.UserServiceRecordService;
import com.ruoyi.order.service.order.*;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.DelayTaskEnum;
import com.ruoyi.system.api.constant.SecurityConstant;
@@ -106,9 +104,8 @@
    @Resource
    private RedisService redisService;
    //@Resource
    //@Qualifier("profitsSharingServiceImpl")
    //private ProfitsSharingService profitsSharingService;
    @Resource
    private PayRecordService payRecordService;
    @Autowired
    private RedissonClient redissonClient;
@@ -245,7 +242,7 @@
                        }
                    } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) {
                        discountPercent = appMemberCouponVo.getDiscountPercent();
                        goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP);
                        goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN,2,BigDecimal.ROUND_HALF_UP);
                        discountMoney = goodsRealPrice.subtract(goodsTotalPrice);
                        useCoupon = 1;
                        userCouponIdSet.add(memberCouponId);
@@ -595,7 +592,7 @@
                        }
                    } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) {
                        discountPercent = appMemberCouponVo.getDiscountPercent();
                        goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP);
                        goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN,2, BigDecimal.ROUND_HALF_UP);
                        discountMoney = goodsRealPrice.subtract(goodsTotalPrice);
                        useCoupon = 1;
                    } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) {
@@ -647,6 +644,7 @@
            orderGoods.setServiceNum(serviceNum);
            orderGoods.setGoodsType(goods.getGoodsType());
            orderGoods.setGoodsName(goods.getGoodsName());
            orderGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
            orderGoods.setGoodsPicture(goodsFile.getFileUrl());
            // 保存订单商品
            orderGoodsService.save(orderGoods);
@@ -899,6 +897,7 @@
        orderGoods.setServiceNum(serviceNum);
        orderGoods.setGoodsType(goods.getGoodsType());
        orderGoods.setGoodsName(goods.getGoodsName());
        orderGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
        orderGoods.setGoodsPicture(goodsFile.getFileUrl());
        // 保存订单商品
        orderGoodsService.save(orderGoods);
@@ -1107,6 +1106,7 @@
        appUserOrderGetVo.setCouponDiscount(order.getCouponMoney());
        appUserOrderGetVo.setReceivableDeposit(order.getReceivableDeposit());
        appUserOrderGetVo.setReceivableMoney(order.getReceivableMoney());
        appUserOrderGetVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getOnlinePayMoney()));
        appUserOrderGetVo.setPayType(order.getPayType());
        appUserOrderGetVo.setPayMoney(order.getPayMoney());
        appUserOrderGetVo.setOrderRemark(order.getOrderRemark());
@@ -1319,6 +1319,15 @@
            //profitsSharingService.applyProfitSharing();
        }
        //创建支付记录
        PayRecord payRecord = new PayRecord();
        payRecord.setDelFlag(0);
        payRecord.setOrderId(order.getOrderId());
        payRecord.setPayMoney(merVerifyOrderDto.getRelPayMoney());
        payRecord.setPayTime(new Date());
        payRecord.setPayType(2);
        payRecordService.save(payRecord);
        return merVerifyOrderVo;
    }
@@ -1550,6 +1559,14 @@
            order.setCloseFlag(1);
        }
        this.saveOrUpdate(order);
        //创建支付记录
        PayRecord payRecord = new PayRecord();
        payRecord.setDelFlag(0);
        payRecord.setOrderId(order.getOrderId());
        payRecord.setPayMoney(merCloseOrderDto.getPayMoney());
        payRecord.setPayTime(new Date());
        payRecord.setPayType(2);
        payRecordService.save(payRecord);
    }
    /**
@@ -1669,7 +1686,7 @@
                        }
                    } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) {
                        discountPercent = appMemberCouponVo.getDiscountPercent();
                        goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP);
                        goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN,2, BigDecimal.ROUND_HALF_UP);
                        discountMoney = goodsRealPrice.subtract(goodsTotalPrice);
                    } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) {
                        discountMoney = appMemberCouponVo.getDiscountMoney();
@@ -1707,6 +1724,7 @@
            orderGoods.setServiceNum(serviceNum);
            orderGoods.setGoodsType(goods.getGoodsType());
            orderGoods.setGoodsName(goods.getGoodsName());
            orderGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
            orderGoods.setGoodsPicture(goodsFile.getFileUrl());
            orderGoodsService.save(orderGoods);
            switch (orderGoods.getGoodsType()) {
@@ -1811,6 +1829,14 @@
        shopTotalChangeDto.setExperienceMoney(experienceMoney);
        shopTotalChangeDto.setGoodsMoney(goodsMoney);
        remoteShopService.changeShopTotal(shopTotalChangeDto);
        //创建支付记录
        PayRecord payRecord = new PayRecord();
        payRecord.setDelFlag(0);
        payRecord.setOrderId(orderId);
        payRecord.setPayMoney(order.getPayMoney());
        payRecord.setPayTime(order.getPayTime());
        payRecord.setPayType(2);
        payRecordService.save(payRecord);
    }
@@ -1842,7 +1868,7 @@
                    orderFromDesc = "商城订单";
                }
                merOrderPageVo.setOrderFromDesc(orderFromDesc);
                merOrderPageVo.setUnPaidMoney(merOrderPageVo.getReceivableMoney().subtract(merOrderPageVo.getPayMoney()));
                merOrderPageVo.setUnPaidMoney(merOrderPageVo.getPayMoney().subtract(merOrderPageVo.getReceiveMoney()));
                if (merOrderPageVo.getUnPaidMoney() == null) {
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }
@@ -1853,7 +1879,8 @@
            Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
            for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) {
                merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getNickName());
                merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getRealName());
                merOrderPageVo.setNickName(userMap.get(merOrderPageVo.getUserId()).getNickName());
                merOrderPageVo.setUserMobile(userMap.get(merOrderPageVo.getUserId()).getUserMobile());
            }
        }
@@ -1907,6 +1934,7 @@
        if (mgtMemberOrderPageVoList != null && !mgtMemberOrderPageVoList.isEmpty()) {
            Long shopId;
            HashSet<String> set = new HashSet<>();
            BigDecimal zeroBig = new BigDecimal("0.00");
            // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中
            for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) {
                shopId = mgtMemberOrderPageVo.getShopId();
@@ -1925,6 +1953,8 @@
            for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) {
                shopId = mgtMemberOrderPageVo.getShopId();
                mgtMemberOrderPageVo.setShopName(map.get(shopId).getShopName());
                BigDecimal unPaidMoney = mgtMemberOrderPageVo.getReceivableMoney().subtract(mgtMemberOrderPageVo.getPayMoney());
                mgtMemberOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney);
            }
        }
        // 返回MgtMemberOrderPageVoList
@@ -1992,7 +2022,9 @@
            for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) {
                mgtActivityOrderPageVo.setShopName(shopMap.get(mgtActivityOrderPageVo.getShopId()).getShopName());
                if (userMap.get(mgtActivityOrderPageVo.getUserId()) != null) {
                    mgtActivityOrderPageVo.setUserName(userMap.get(mgtActivityOrderPageVo.getUserId()).getNickName());
                    mgtActivityOrderPageVo.setNickName(userMap.get(mgtActivityOrderPageVo.getUserId()).getNickName());
                    mgtActivityOrderPageVo.setUserName(userMap.get(mgtActivityOrderPageVo.getUserId()).getRealName());
                    mgtActivityOrderPageVo.setUserMobile(userMap.get(mgtActivityOrderPageVo.getUserId()).getUserMobile());
                }
                BigDecimal unPaidMoney = mgtActivityOrderPageVo.getReceivableMoney().subtract(mgtActivityOrderPageVo.getPayMoney());
                mgtActivityOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney);
@@ -2116,7 +2148,9 @@
                }
                if (userMap != null && !userMap.isEmpty()) {
                    if (userMap.get(mgtShopOrderPageVo.getUserId()) != null) {
                        mgtShopOrderPageVo.setUserName(userMap.get(mgtShopOrderPageVo.getUserId()).getNickName());
                        mgtShopOrderPageVo.setNickName(userMap.get(mgtShopOrderPageVo.getUserId()).getNickName());
                        mgtShopOrderPageVo.setUserName(userMap.get(mgtShopOrderPageVo.getUserId()).getRealName());
                        mgtShopOrderPageVo.setUserMobile(userMap.get(mgtShopOrderPageVo.getUserId()).getUserMobile());
                    }
                }
                BigDecimal unPaidMoney = mgtShopOrderPageVo.getReceivableMoney().subtract(mgtShopOrderPageVo.getPayMoney());
@@ -2215,6 +2249,9 @@
        mgtOrderDetailVo.setShopId(order.getShopId());
        mgtOrderDetailVo.setShopName(shop.getShopName());
        mgtOrderDetailVo.setVerifyTime(order.getUseTime());
        //获取支付记录
        List<MgtOrderPayListVo> orderPayListVoList = payRecordService.listMgtOrderPayVo(orderId);
        mgtOrderDetailVo.setOrderPayListVoList(orderPayListVoList);
        return mgtOrderDetailVo;
    }
@@ -3123,9 +3160,9 @@
     * @date 2023/7/4 16:27
     */
    @Override
    public MerTotalOrderVo totalMerOrder(MerBaseDto merBaseDto) {
    public MerTotalOrderVo totalMerOrder(MerOrderPageDto merOrderPageDto) {
        MerTotalOrderVo merTotalOrderVo = new MerTotalOrderVo();
        merTotalOrderVo = orderMapper.totalMerOrder(merBaseDto.getShopId());
        merTotalOrderVo = orderMapper.totalMerOrder(merOrderPageDto);
        return merTotalOrderVo;
    }
@@ -3382,11 +3419,13 @@
        }
        //生成支付记录
        OrderPayment orderPayment = new OrderPayment();
        PayRecord payRecord = new PayRecord();
        payRecord.setDelFlag(0);
        payRecord.setOrderId(orderId);
        payRecord.setPayMoney(order.getPayMoney());
        payRecord.setPayTime(order.getPayTime());
        payRecord.setPayType(1);
        payRecordService.save(payRecord);
    }
    /**
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/PayRecordServiceImpl.java
New file
@@ -0,0 +1,38 @@
package com.ruoyi.order.service.impl.order;
import com.ruoyi.order.domain.pojo.order.PayRecord;
import com.ruoyi.order.domain.vo.MgtOrderPayListVo;
import com.ruoyi.order.mapper.order.PayRecordMapper;
import com.ruoyi.order.service.order.PayRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * <p>
 * 订单支付记录 服务实现类
 * </p>
 *
 * @author jqs
 * @since 2023-07-28
 */
@Service
public class PayRecordServiceImpl extends ServiceImpl<PayRecordMapper, PayRecord> implements PayRecordService {
    @Resource
    private PayRecordMapper payRecordMapper;
    /**
     * @description  获取订单支付记录
     * @author  jqs
     * @date    2023/7/28 14:28
     * @param orderId
     * @return  List<MgtOrderPayListVo>
     */
    @Override
    public List<MgtOrderPayListVo> listMgtOrderPayVo(String orderId){
        return payRecordMapper.listMgtOrderPayVo(orderId);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -388,7 +388,7 @@
     * @param merBaseDto
     * @return  MerTotalOrderVo
     */
    MerTotalOrderVo totalMerOrder(MerBaseDto merBaseDto);
    MerTotalOrderVo totalMerOrder(MerOrderPageDto merOrderPageDto);
    /**
     * @description  平台获取商户订单记录
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/PayRecordService.java
New file
@@ -0,0 +1,27 @@
package com.ruoyi.order.service.order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.order.domain.pojo.order.PayRecord;
import com.ruoyi.order.domain.vo.MgtOrderPayListVo;
import java.util.List;
/**
 * <p>
 * 订单支付记录 服务类
 * </p>
 *
 * @author jqs
 * @since 2023-07-28
 */
public interface PayRecordService extends IService<PayRecord> {
    /**
     * @description  获取订单支付记录
     * @author  jqs
     * @date    2023/7/28 14:28
     * @param orderId
     * @return  List<MgtOrderPayListVo>
     */
    List<MgtOrderPayListVo> listMgtOrderPayVo(String orderId);
}
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -40,6 +40,7 @@
            <result column="orderGoodsId" property="orderGoodsId"/>
            <result column="goodsId" property="goodsId"/>
            <result column="goodsName" property="goodsName"/>
            <result column="goodsIntroduction" property="goodsIntroduction"/>
            <result column="goodsPicture" property="goodsPicture"/>
            <result column="goodsType" property="goodsType"/>
            <result column="buyNum" property="buyNum"/>
@@ -257,6 +258,7 @@
        toc.shop_id shopId,
        tog.goods_id goodsId,
        tog.goods_name goodsName,
        tog.goods_introduction goodsIntroduction,
        tog.goods_picture goodsPicture,
        tog.order_goods_id orderGoodsId,
        tog.goods_type goodsType,
@@ -305,9 +307,10 @@
        toc.order_status orderStatus,
        toc.order_money orderGoodsMoney,
        toc.coupon_money couponDiscount,
        toc.receivable_money receivableMoney,
        toc.receivable_money-toc.online_pay_money receivableMoney,
        toc.receivable_deposit receivableDeposit,
        toc.pay_money payMoney,
        toc.change_receivable_money payMoney,
        toc.offline_pay_money receiveMoney,
        toc.order_remark orderRemark,
        tog.goods_name goodsName,
        tog.goods_type goodsType,
@@ -1418,12 +1421,37 @@
    <select id="totalMerOrder" resultType="com.ruoyi.order.domain.vo.MerTotalOrderVo">
        SELECT
        COUNT(order_id) orderTotal,
        IFNULL(SUM(receivable_money),0) receivableMoney,
        IFNULL(SUM(receivable_money-IFNULL(online_pay_money,0)),0) receivableMoney,
        IFNULL(SUM(change_receivable_money),0) relReceiveMoney,
        IFNULL(SUM(pay_money),0) relPayMoney,
        IFNULL(SUM(receivable_money-IFNULL(pay_money,0)),0) unpaidMoney
        IFNULL(SUM(CASE pay_type WHEN 1 THEN online_pay_money WHEN 2 THEN IFNULL(offline_pay_money,0) END),0) relPayMoney,
        IFNULL(SUM(receivable_money-IFNULL(CASE pay_type WHEN 1 THEN online_pay_money WHEN 2 THEN IFNULL(offline_pay_money,0) END,0)),0) unpaidMoney,
        IFNULL(SUM(receivable_deposit),0) receivableDeposit
        FROM t_order
        WHERE del_flag = 0 AND shop_id = #{shopId}
        WHERE del_flag = 0 AND shop_id = #{param.shopId}
        <if test="param.memberUserId != null and param.memberUserId != ''">
            AND toc.user_id = #{param.memberUserId}
        </if>
        <if test="param.type != null and param.type ==1 ">
            AND (toc.order_status = 2 OR toc.order_status = 3)
        </if>
        <if test="param.type != null and param.type ==2 ">
            AND toc.order_status = 2
        </if>
        <if test="param.type != null and param.type ==3 ">
            AND toc.order_status = 3
        </if>
        <if test="param.orderFrom != null and param.orderFrom != '' ">
            AND toc.order_from = #{param.orderFrom}
        </if>
        <if test="param.startOrderDate != null and param.startOrderDate != '' ">
            AND Date(toc.create_time) &gt;= #{param.startOrderDate}
        </if>
        <if test="param.endOrderDate != null and param.endOrderDate != '' ">
            AND Date(toc.create_time) &lt;= #{param.endOrderDate}
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tog.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
        </if>
    </select>
    <select id="pageMgtShopAllOrder" resultMap="mgtShopAllOrderResultMap">
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/PayRecordMapper.xml
New file
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.order.mapper.order.PayRecordMapper">
    <select id="listMgtOrderPayVo" resultType="com.ruoyi.order.domain.vo.MgtOrderPayListVo">
        SELECT
        pay_time payTime,
        pay_money payMoney,
        CASE pay_type
        WHEN 1 THEN "微信支付"
        WHEN 2 THEN "店铺收银"
        END payType
        FROM t_pay_record
        WHERE del_flag = 0 AND order_id = #{orderId}
    </select>
</mapper>
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
@@ -95,7 +95,7 @@
    public R<ShopRelUserVo> getShopByUserId(@RequestBody Long userId)
    {
        ShopRelUser shopRelUser = shopRelUserService.getByUserId(userId);
        Optional.ofNullable(shopRelUser).orElseThrow(() -> new ServiceException("未查询到商户信息"));
        Optional.ofNullable(shopRelUser).orElseThrow(() -> new ServiceException("未查询到用户关联商户"));
        ShopRelUserVo shopRelUserVo = new ShopRelUserVo();
        shopRelUserVo.setShopId(shopRelUser.getShopId());
        shopRelUserVo.setUserName(shopRelUser.getUserName());
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java
@@ -44,7 +44,7 @@
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);
        dataSourceConfig.setTypeConvert(new MySqlTypeConvert());
        dataSourceConfig.setUrl("jdbc:mysql://47.109.78.184:10010/hrt_member?tinyInt1isBit=false");
        dataSourceConfig.setUrl("jdbc:mysql://47.109.78.184:10010/hrt_order?tinyInt1isBit=false");
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("hrt123456");
@@ -53,7 +53,7 @@
        // 包名配置
        PackageConfig packageConfig = new PackageConfig();
        // 父包和子包名分开处理
        packageConfig.setParent("com.ruoyi.member");
        packageConfig.setParent("com.ruoyi.order");
        packageConfig.setController("app");
        packageConfig.setEntity("domain.pojo");
        packageConfig.setMapper("mapper");
@@ -74,7 +74,7 @@
        strategy.setControllerMappingHyphenStyle(true);
        //表和前缀处理
        String[] table = {
                "t_member_coupon_record"
                "t_pay_record"
        };
        strategy.setInclude(table);
        String[] tablePre = new String[]{"t_"};