jiangqs
2023-06-16 ae41759bafec1c2a1e8858fcdcda4272ed4eb84c
联调bug和订单管理
46个文件已修改
1个文件已删除
9个文件已添加
1969 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtUserIdByKeywordDto.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSimpleMemberVo.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtUserIdByKeywordVo.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberBrowsePageDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberBrowsePageVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/BrowseRecordMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderPageDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberServiceRecordPageDto.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtShopOrderPageDto.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/ConsumerGoods.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderDetailVo.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsDetailVo.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderTotal.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageDto.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderGoodsMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderGoodsServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 529 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderGoodsService.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/ConsumerGoodsMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderGoodsMapper.xml 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtMemberTaskPageDto.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopTaskPageDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/task/ShopTask.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/AgencyTaskRecordMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskRecordMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskRecordMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/AgencyTaskRecordServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskRecordServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskRecordServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/AgencyTaskRecordService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskRecordService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskRecordService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtUserIdByKeywordDto.java
New file
@@ -0,0 +1,29 @@
package com.ruoyi.system.api.domain.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName MgtUserIdByKeyword
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/16 12:38
 * @Version 1.0
 */
@Data
public class MgtUserIdByKeywordDto {
    @ApiModelProperty(value = "关键词")
    private String keyword;
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @ApiModelProperty(value = "用户电话")
    private String userMobile;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSimpleMemberVo.java
New file
@@ -0,0 +1,27 @@
package com.ruoyi.system.api.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName MgtSimpleMemberVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/16 11:03
 * @Version 1.0
 */
@Data
public class MgtSimpleMemberVo {
    @ApiModelProperty(value = "用户id")
    private Long userId;
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @ApiModelProperty(value = "用户电话")
    private String userMobile;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtUserIdByKeywordVo.java
New file
@@ -0,0 +1,18 @@
package com.ruoyi.system.api.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName MgtUserIdByKeywordVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/16 12:38
 * @Version 1.0
 */
@Data
public class MgtUserIdByKeywordVo {
    @ApiModelProperty(value = "用户ids")
    private String userIds;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
@@ -2,7 +2,10 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto;
import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo;
import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo;
import com.ruoyi.system.api.service.RemoteMemberService;
import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto;
@@ -84,6 +87,16 @@
            public R deleteMemberSuggestTag(String suggestTag) {
                return R.fail("删除用户建议标签失败:" + throwable.getMessage());
            }
            @Override
            public R<List<MgtSimpleMemberVo>> listSimpleVoByIds(String userIds) {
                return R.fail("获取用户列表失败:" + throwable.getMessage());
            }
            @Override
            public R<MgtUserIdByKeywordVo> getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto) {
                return R.fail("获取用户列表失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
@@ -5,9 +5,12 @@
import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto;
import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo;
import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo;
import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo;
import com.ruoyi.system.api.factory.RemoteMemberFallbackFactory;
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
@@ -98,4 +101,24 @@
     */
    @PostMapping("/member/deleteMemberSuggestTag")
    public R deleteMemberSuggestTag(@RequestBody String suggestTag);
    /**
     * @description  通过ids获取用户简易返回
     * @author  jqs
     * @date    2023/6/16 11:05
     * @param userIds
     * @return  R<List<MgtSimpleMemberVo>>
     */
    @PostMapping("/member/listSimpleVoByIds")
    public R<List<MgtSimpleMemberVo>> listSimpleVoByIds(@RequestBody String userIds);
    /**
     * @description
     * @author  jqs
     * @date    2023/6/16 12:47
     * @param mgtUserIdByKeywordDto
     * @return  R<MgtUserIdByKeywordVo>
     */
    @PostMapping("/member/getUserIdByKeyword")
    public R<MgtUserIdByKeywordVo> getUserIdByKeyword(@RequestBody MgtUserIdByKeywordDto mgtUserIdByKeywordDto);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -8,9 +8,12 @@
import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto;
import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo;
import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo;
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import io.swagger.annotations.ApiOperation;
@@ -165,4 +168,34 @@
        memberSuggestService.deleteMemberSuggestTag(suggestTag);
        return R.ok();
    }
    /**
     * @description  通过ids获取用户简易返回
     * @author  jqs
     * @date    2023/6/16 11:05
     * @param userIds
     * @return  R<List<MgtSimpleMemberVo>>
     */
    @PostMapping("/listSimpleVoByIds")
    public R<List<MgtSimpleMemberVo>> listSimpleVoByIds(@RequestBody String userIds)
    {
        List<MgtSimpleMemberVo> simpleMemberVoList = memberService.listSimpleVoByIds(userIds);
        return R.ok(simpleMemberVoList);
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/6/16 12:47
     * @param mgtUserIdByKeywordDto
     * @return  R<MgtUserIdByKeywordVo>
     */
    @PostMapping("/getUserIdByKeyword")
    public R<MgtUserIdByKeywordVo> getUserIdByKeyword(@RequestBody MgtUserIdByKeywordDto mgtUserIdByKeywordDto)
    {
        MgtUserIdByKeywordVo mgtUserIdByKeywordVo = memberService.getUserIdByKeyword(mgtUserIdByKeywordDto);
        return R.ok(mgtUserIdByKeywordVo);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberBrowsePageDto.java
@@ -4,8 +4,6 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author jqs34
 * @ClassName MgtMemberIntegralPageDto
@@ -23,6 +21,10 @@
    @ApiModelProperty(value = "浏览类型 1鸿瑞学堂2营销活动3商城商品4关于鸿瑞堂5申请加盟")
    private Integer browseType;
    @ApiModelProperty(value = "创建开始时间")
    private String createStartTime;
    @ApiModelProperty(value = "创建结束时间")
    private String createEndTime;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberBrowsePageVo.java
@@ -1,6 +1,5 @@
package com.ruoyi.member.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -27,5 +26,6 @@
    private String browseTime;
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java
@@ -1,7 +1,5 @@
package com.ruoyi.member.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -80,4 +78,7 @@
    @ApiModelProperty(value = "消费总金额")
    private BigDecimal totalPayMoney;
    @ApiModelProperty(value = "活动参与次数")
    private Integer activityTotal;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java
@@ -8,7 +8,9 @@
import com.ruoyi.member.domain.vo.MerCashMemberPageVo;
import com.ruoyi.member.domain.vo.MerMemberPageVo;
import com.ruoyi.member.domain.vo.MgtMemberPageVo;
import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -92,6 +94,24 @@
     * @return  List<Long>
     */
    List<Long> listIdBySendType(@Param("sendType")Integer sendType);
    /**
     * @description  通过ids获取用户简易返回
     * @author  jqs
     * @date    2023/6/16 11:06
     * @param userIds
     * @return  List<MgtSimpleMemberVo>
     */
    List<MgtSimpleMemberVo> listSimpleVoByIds(@Param("userIds")String userIds);
    /**
     * @description
     * @author  jqs
     * @date    2023/6/16 12:42
     * @param mgtUserIdByKeywordDto
     * @return  MgtUserIdByKeywordVo
     */
    List<Long> getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -25,17 +25,13 @@
import com.ruoyi.member.util.HttpUtils;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.SecurityConstant;
import com.ruoyi.system.api.domain.dto.AppEditUserDto;
import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto;
import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo;
import com.ruoyi.system.api.domain.vo.AppOrderTotalVo;
import com.ruoyi.system.api.domain.vo.*;
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import com.ruoyi.system.api.service.RemoteConfigService;
@@ -661,14 +657,16 @@
    public List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto){
        List<Activeness> activenessList = remoteConfigService.listActiveness().getData();
        Date nowDay = new Date();
        //处理活跃度筛选
        activenessList.stream()
                .filter(activeness -> activeness.getActivenessId().equals(merMemberPageDto.getActivenessId()))
                .findFirst()
                .ifPresent(activeness -> {
                    merMemberPageDto.setActStartDate(DateUtils.addDays(nowDay, activeness.getEndDay()));
                    merMemberPageDto.setActEndDate(DateUtils.addDays(nowDay, activeness.getStartDay()));
                });
        if(merMemberPageDto.getActivenessId()!=null){
            //处理活跃度筛选
            activenessList.stream()
                    .filter(activeness -> activeness.getActivenessId().equals(merMemberPageDto.getActivenessId()))
                    .findFirst()
                    .ifPresent(activeness -> {
                        merMemberPageDto.setActStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(nowDay, activeness.getEndDay())));
                        merMemberPageDto.setActEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(nowDay, activeness.getStartDay())));
                    });
        }
        //处理标签为正则表达
        if(StringUtils.isNotBlank(merMemberPageDto.getMemberTags())){
            merMemberPageDto.setMemberTags(merMemberPageDto.getMemberTags().replace(",","|"));
@@ -899,4 +897,36 @@
        //1.手动领取2.全部用户3.会员用户4非会员用户5自定义
        return memberMapper.listIdBySendType(sendType);
    }
    /**
     * @description  通过ids获取用户简易返回
     * @author  jqs
     * @date    2023/6/16 11:06
     * @param userIds
     * @return  List<MgtSimpleMemberVo>
     */
    @Override
    public List<MgtSimpleMemberVo> listSimpleVoByIds(String userIds){
        return memberMapper.listSimpleVoByIds(userIds);
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/6/16 12:41
     * @param mgtUserIdByKeywordDto
     * @return  MgtUserIdByKeywordVo
     */
    @Override
    public MgtUserIdByKeywordVo getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto){
        MgtUserIdByKeywordVo mgtUserIdByKeywordVo = new MgtUserIdByKeywordVo();
        List<Long> userIdList = memberMapper.getUserIdByKeyword(mgtUserIdByKeywordDto);
        if(userIdList!=null&&!userIdList.isEmpty()){
            String userIdStr = userIdList.stream()
                    .map(Object::toString)
                    .collect(Collectors.joining(","));
            mgtUserIdByKeywordVo.setUserIds(userIdStr);
        }
        return mgtUserIdByKeywordVo;
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -1,17 +1,16 @@
package com.ruoyi.member.service.member;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.member.domain.dto.*;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.system.api.domain.dto.AppEditUserDto;
import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto;
import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo;
import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo;
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@@ -197,4 +196,22 @@
     * @return  List<Long>
     */
    List<Long> listIdBySendType(Integer sendType);
    /**
     * @description  通过ids获取用户简易返回
     * @author  jqs
     * @date    2023/6/16 11:06
     * @param userIds
     * @return  List<MgtSimpleMemberVo>
     */
    List<MgtSimpleMemberVo> listSimpleVoByIds(String userIds);
    /**
     * @description
     * @author  jqs
     * @date    2023/6/16 12:42
     * @param mgtUserIdByKeywordDto
     * @return  MgtUserIdByKeywordVo
     */
    MgtUserIdByKeywordVo getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto);
}
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/BrowseRecordMapper.xml
@@ -17,7 +17,13 @@
        FROM t_browse_record tbr
        WHERE tbr.del_flag = 0 AND tbr.user_id = #{param.memberUserId}
        <if test="param.browseType !=null and param.browseType != ''">
            tbr.browse_type = #{param.browseType}
            AND tbr.browse_type = #{param.browseType}
        </if>
        <if test="param.createStartTime!=null and param.createStartTime!=''">
            AND tbr.create_time &gt;= #{param.createStartTime}
        </if>
        <if test="param.createEndTime!=null and param.createEndTime!=''">
            AND tbr.create_time &lt;= #{param.createEndTime}
        </if>
        ORDER BY tbr.create_time DESC
    </select>
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -213,10 +213,11 @@
        tmt.total_integral integral,
        tm.referrer referrer,
        tm.customer_source memberFrom,
        tmt.total_pay_money totalPayMoney
        tmt.total_pay_money totalPayMoney,
        tmt.total_activity_count activityTotal
        FROM t_member tm
        INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id
        WHERE del_flag = 0
        LEFT JOIN t_member_total tmt ON tm.member_id = tmt.member_id
        WHERE tm.del_flag = 0
        <if test="param.keyword != null and param.keyword != ''">
            AND (tm.member_no LIKE CONCAT('%',#{param.keyword},'%') OR tm.mobile LIKE CONCAT('%',#{param.keyword},'%') OR tm.real_name LIKE CONCAT('%',#{param.keyword},'%') OR tm.nick_name LIKE CONCAT('%',#{param.keyword},'%') OR FIND_IN_SET(#{param.keyword},tm.member_nurse) &gt; 0)
        </if>
@@ -271,8 +272,8 @@
        <if test="param.endPayCount != null and param.endPayCount != ''">
            AND tmt.total_pay_count &lt;= #{param.endPayCount}
        </if>
        <if test="param.memberTag != null and param.memberTag != ''">
            AND tm.user_tags REGEXP #{param.memberTag}
        <if test="param.memberTags != null and param.memberTags != ''">
            AND tm.user_tags REGEXP #{param.memberTags}
        </if>
        ORDER BY tm.create_time DESC
    </select>
@@ -295,5 +296,22 @@
        </if>
    </select>
    <select id="listSimpleVoByIds" resultType="com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo">
        SELECT
            tm.user_id userId,
            tm.real_name realName,
            tm.nick_name nickName,
            tm.mobile mobile
        FROM t_member tm
        WHERE tm.del_flag = 0 AND tm.user_id IN (#{userIds})
    </select>
    <select id="getUserIdByKeyword" resultType="java.lang.Long">
        SELECT
            tm.user_id
        FROM t_member tm 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>
    </select>
</mapper>
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
@@ -134,4 +134,6 @@
        List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderService.pageMerMemberOrder(page,merMemberNoClearOrderDto);
        return R.ok(page.setRecords(merMemberNoClearOrderVoList));
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -5,9 +5,10 @@
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.domain.dto.MgtMemberOrderPageDto;
import com.ruoyi.order.domain.dto.MgtMemberOrderTotalDto;
import com.ruoyi.order.domain.vo.MgtMemberOrderPageVo;
import com.ruoyi.order.domain.vo.MgtMemberOrderTotalVo;
import com.ruoyi.order.domain.dto.MgtShopOrderPageDto;
import com.ruoyi.order.domain.vo.*;
import com.ruoyi.order.service.order.OrderService;
import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;
@@ -54,5 +55,47 @@
        return R.ok(page.setRecords(mgtMemberOrderPageVoList));
    }
    @RequestMapping(value = "/getMgtOrderTotal", method = RequestMethod.POST)
    @ApiOperation(value = "获取订单统计")
    public R<MgtOrderTotal> getMgtOrderTotal(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto) {
        Long userId = SecurityUtils.getUserId();
        mgtShopOrderPageDto.setUserId(userId);
        MgtOrderTotal mgtOrderTotal = orderService.getMgtOrderTotal(mgtShopOrderPageDto);
        return R.ok(mgtOrderTotal);
    }
    @RequestMapping(value = "/pageMgtActivityOrder", method = RequestMethod.POST)
    @ApiOperation(value = "平台获取秒杀订单列表")
    public R<Page<MgtActivityOrderPageVo>> pageMgtActivityOrder(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto) {
        Long userId = SecurityUtils.getUserId();
        mgtShopOrderPageDto.setUserId(userId);
        Page<MgtActivityOrderPageVo> page = new Page<>();
        page.setSize(mgtShopOrderPageDto.getPageSize());
        page.setCurrent(mgtShopOrderPageDto.getPageNum());
        List<MgtActivityOrderPageVo> mgtActivityOrderPageVos = orderService.pageMgtActivityOrder(page,mgtShopOrderPageDto);
        return R.ok(page.setRecords(mgtActivityOrderPageVos));
    }
    @RequestMapping(value = "/pageMgtShopOrder", method = RequestMethod.POST)
    @ApiOperation(value = "平台获取门店订单列表")
    public R<Page<MgtShopOrderPageVo>> pageMgtShopOrder(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto) {
        Long userId = SecurityUtils.getUserId();
        mgtShopOrderPageDto.setUserId(userId);
        Page<MgtShopOrderPageVo> page = new Page<>();
        page.setSize(mgtShopOrderPageDto.getPageSize());
        page.setCurrent(mgtShopOrderPageDto.getPageNum());
        List<MgtShopOrderPageVo> shopOrderPageVoList = orderService.pageMgtShopOrder(page,mgtShopOrderPageDto);
        return R.ok(page.setRecords(shopOrderPageVoList));
    }
    @RequestMapping(value = "/getMgtOrderDetail", method = RequestMethod.POST)
    @ApiOperation(value = "获取订单详情")
    public R<MgtOrderDetailVo> getMgtOrderDetail(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
        Long userId = SecurityUtils.getUserId();
        mgtBaseGetDto.setUserId(userId);
        MgtOrderDetailVo mgtOrderDetail = orderService.getMgtOrderDetail(mgtBaseGetDto.getId());
        return R.ok(mgtOrderDetail);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderPageDto.java
@@ -15,7 +15,7 @@
public class MgtMemberOrderPageDto extends MgtPageDto {
    @ApiModelProperty(value = "用户id")
    private Long userId;
    private Long memberUserId;
    @ApiModelProperty(value = "搜索关键词")
    private String keyword;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberServiceRecordPageDto.java
@@ -20,4 +20,9 @@
    @ApiModelProperty(value = "关键词")
    private String keyword;
    @ApiModelProperty(value = "创建开始时间")
    private String createStartTime;
    @ApiModelProperty(value = "创建结束时间")
    private String createEndTime;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtShopOrderPageDto.java
New file
@@ -0,0 +1,49 @@
package com.ruoyi.order.domain.dto;
import com.ruoyi.system.api.domain.dto.MgtPageDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName MgtShopOrderPageDto
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/15 17:07
 * @Version 1.0
 */
@Data
public class MgtShopOrderPageDto extends MgtPageDto {
    @ApiModelProperty(value = "关键词")
    private String keyword;
    @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成")
    private Integer orderStatus;
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
    private Integer goodsType;
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty(value = "核销开始时间")
    private String verifyStartTime;
    @ApiModelProperty(value = "核销结束时间")
    private String verifyEndTime;
    @ApiModelProperty(value = "keyword转换用户ids",hidden = true)
    private String userIds;
    @ApiModelProperty(value = "code转换商户ids",hidden = true)
    private String shopIds;
    @ApiModelProperty("店铺地址省code")
    private String shopProvinceCode;
    @ApiModelProperty("店铺地址市code")
    private String shopCityCode;
    @ApiModelProperty("店铺地址区code")
    private String shopAreaCode;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/ConsumerGoods.java
@@ -1,15 +1,15 @@
package com.ruoyi.order.domain.pojo.order;
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.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>
@@ -108,6 +108,21 @@
     */
    @TableField("goods_type")
    private Integer goodsType;
    /**
     * 商品名称
     */
    @TableField("goods_introduction")
    private String goodsIntroduction;
    /**
     * 商品名称
     */
    @TableField("goods_picture")
    private String goodsPicture;
    /**
     * 商品名称
     */
    @TableField("goods_nurses")
    private String goodsNurses;
    @Override
    protected Serializable pkVal() {
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
@@ -1,16 +1,16 @@
package com.ruoyi.order.domain.pojo.order;
import java.math.BigDecimal;
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.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.math.BigDecimal;
import java.util.Date;
/**
 * <p>
@@ -136,6 +136,11 @@
    @TableField("use_time")
    private Date useTime;
    /**
     * 线下支付时间
     */
    @TableField("off_pay_time")
    private Date offPayTime;
    /**
     * 取消时间
     */
    @TableField("cancel_time")
@@ -156,6 +161,18 @@
    @TableField("close_flag")
    private Integer closeFlag;
    /**
     * 活动id
     */
    @TableField("activity_id")
    private Long activityId;
    /**
     * 活动名称
     */
    @TableField("activity_name")
    private String activityName;
    @Override
    protected Serializable pkVal() {
        return this.orderId;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java
New file
@@ -0,0 +1,75 @@
package com.ruoyi.order.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @ClassName MgtActivityOrderPageVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/16 9:49
 * @Version 1.0
 */
@Data
public class MgtActivityOrderPageVo {
    @ApiModelProperty("订单id")
    private String orderId;
    @ApiModelProperty("订单编号")
    private String orderNo;
    @ApiModelProperty("秒杀活动")
    private String activityName;
    @ApiModelProperty(value = "用户id")
    private Long userId;
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @ApiModelProperty(value = "用户电话")
    private String userMobile;
    @ApiModelProperty("商品名称")
    private String goodsName;
    @ApiModelProperty(value = "秒杀价格")
    private BigDecimal activityPrice;
    @ApiModelProperty("购买数量")
    private Integer buyNum;
    @ApiModelProperty("订单金额")
    private BigDecimal orderMoney;
    @ApiModelProperty("应付金额")
    private BigDecimal receivableMoney;
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("订单实际支付金额")
    private BigDecimal payMoney;
    @ApiModelProperty("订单未支付金额")
    private BigDecimal unPaidMoney;
    @ApiModelProperty("核销店铺id")
    private Long shopId;
    @ApiModelProperty("核销店铺")
    private String shopName;
    @ApiModelProperty("核销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date verifyTime;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java
@@ -31,7 +31,7 @@
    private String shopName;
    @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成")
    private Integer orderStatus;
    private String orderStatus;
    @ApiModelProperty(value = "订单总价")
    private BigDecimal orderMoney;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderDetailVo.java
New file
@@ -0,0 +1,102 @@
package com.ruoyi.order.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * @ClassName MgtOrderDetailVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/16 16:03
 * @Version 1.0
 */
@Data
public class MgtOrderDetailVo {
    @ApiModelProperty("订单id")
    private String orderId;
    @ApiModelProperty(value = "用户id")
    private Long userId;
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @ApiModelProperty(value = "用户电话")
    private String userMobile;
    @ApiModelProperty("订单商品列表")
    private List<MgtOrderGoodsDetailVo> orderGoodsDetailVoList;
    @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成")
    private String orderStatus;
    @ApiModelProperty("订单编号")
    private String orderNo;
    @ApiModelProperty("订单来源1.商城2.秒杀活动3.线下创建")
    private String orderFrom;
    @ApiModelProperty("订单金额")
    private BigDecimal orderMoney;
    @ApiModelProperty("应付金额")
    private BigDecimal receivableMoney;
    @ApiModelProperty("订单实际支付金额")
    private BigDecimal payMoney;
    @ApiModelProperty("订单未支付金额")
    private BigDecimal unPaidMoney;
    @ApiModelProperty("秒杀活动")
    private String activityName;
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("线上支付金额")
    private BigDecimal onlinePayMoney;
    @ApiModelProperty("线下支付金额")
    private BigDecimal offlinePayMoney;
    @ApiModelProperty("线上支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;
    @ApiModelProperty("线下支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date offPayTime;
    @ApiModelProperty("完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;
    @ApiModelProperty("取消时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;
    @ApiModelProperty("订单备注")
    private String orderRemark;
    @ApiModelProperty("核销店铺id")
    private Long shopId;
    @ApiModelProperty("核销店铺")
    private String shopName;
    @ApiModelProperty("核销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date verifyTime;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsDetailVo.java
New file
@@ -0,0 +1,43 @@
package com.ruoyi.order.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @ClassName MgtOrderGoodsDetailVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/16 16:12
 * @Version 1.0
 */
@Data
public class MgtOrderGoodsDetailVo {
    @ApiModelProperty("订单商品id")
    private String orderGoodsId;
    @ApiModelProperty("商品id")
    private String goodsId;
    @ApiModelProperty("商品名称")
    private String goodsName;
    @ApiModelProperty("商品图片")
    private String goodsPicture;
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
    private String goodsType;
    @ApiModelProperty(value = "购买数量")
    private Integer buyNum;
    @ApiModelProperty(value = "商品售价")
    private BigDecimal goodsPrice;
    @ApiModelProperty(value = "商品总价")
    private BigDecimal goodsTotalPrice;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderTotal.java
New file
@@ -0,0 +1,47 @@
package com.ruoyi.order.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @ClassName MgtOrderTotal
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/16 11:36
 * @Version 1.0
 */
@Data
public class MgtOrderTotal {
    @ApiModelProperty("订单总数")
    private Integer orderTotal;
    @ApiModelProperty("订单金额总数")
    private BigDecimal orderMoneyTotal;
    @ApiModelProperty("门店订单总数")
    private Integer shopOrderTotal;
    @ApiModelProperty("门店订单金额总数")
    private BigDecimal shopOrderMoneyTotal;
    @ApiModelProperty("门店订单已付金额总数")
    private BigDecimal shopPayMoneyTotal;
    @ApiModelProperty("门店订单未付金额总数")
    private BigDecimal shopUnPayMoneyTotal;
    @ApiModelProperty("活动订单总数")
    private Integer activityOrderTotal;
    @ApiModelProperty("活动订单金额总数")
    private BigDecimal  activityOrderMoneyTotal;
    @ApiModelProperty("活动订单已付金额总数")
    private BigDecimal  activityPayMoneyTotal;
    @ApiModelProperty("活动订单未付金额总数")
    private BigDecimal  activityUnPayMoneyTotal;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageDto.java
File was deleted
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java
New file
@@ -0,0 +1,67 @@
package com.ruoyi.order.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * @ClassName MgtShopOrderPageVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/16 9:49
 * @Version 1.0
 */
@Data
public class MgtShopOrderPageVo {
    @ApiModelProperty("订单id")
    private String orderId;
    @ApiModelProperty("订单编号")
    private String orderNo;
    @ApiModelProperty(value = "用户id")
    private Long userId;
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @ApiModelProperty("订单商品列表")
    private List<MgtOrderGoodsPageVo> mgtOrderGoodsPageVoList;
    @ApiModelProperty("订单金额")
    private BigDecimal orderMoney;
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("应付金额")
    private BigDecimal receivableMoney;
    @ApiModelProperty("订单实际支付金额")
    private BigDecimal payMoney;
    @ApiModelProperty("订单未支付金额")
    private BigDecimal unPaidMoney;
    @ApiModelProperty("订单来源")
    private String orderFrom;
    @ApiModelProperty("核销店铺id")
    private Long shopId;
    @ApiModelProperty("核销店铺")
    private String shopName;
    @ApiModelProperty("核销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date verifyTime;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderGoodsMapper.java
@@ -3,6 +3,7 @@
import com.ruoyi.order.domain.pojo.order.OrderGoods;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo;
import com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -22,6 +23,15 @@
     * @param orderId
     * @return
     */
    List<AppUserOrderGoodsPageVo> listVoByOrderId(@Param("orderId") String orderId);
    List<AppUserOrderGoodsPageVo> listAppVoByOrderId(@Param("orderId") String orderId);
    /**
     * @description  平台通过id获取VO
     * @author  jqs
     * @date    2023/6/16 16:53
     * @param orderId
     * @return  List<MgtOrderGoodsDetailVo>
     */
    List<MgtOrderGoodsDetailVo> listMgtVoByOrderId(@Param("orderId")String orderId);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -1,14 +1,10 @@
package com.ruoyi.order.mapper.order;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.order.domain.dto.AppUserOrderPageDto;
import com.ruoyi.order.domain.dto.MerOrderPageDto;
import com.ruoyi.order.domain.dto.MgtMemberOrderPageDto;
import com.ruoyi.order.domain.dto.MgtMemberOrderTotalDto;
import com.ruoyi.order.domain.pojo.order.Order;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.order.domain.dto.*;
import com.ruoyi.order.domain.pojo.order.Order;
import com.ruoyi.order.domain.vo.*;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -71,4 +67,62 @@
     * @return
     */
    List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, @Param("param") MgtMemberOrderPageDto mgtMemberOrderPageDto);
    /**
     * @description  分页获取活动订单列表
     * @author  jqs
     * @date    2023/6/16 10:43
     * @param page
     * @param mgtShopOrderPageDto
     * @return  List<MgtActivityOrderPageVo>
     */
    List<MgtActivityOrderPageVo> pageMgtActivityOrder(Page page, @Param("param")MgtShopOrderPageDto mgtShopOrderPageDto);
    /**
     * @description  统计订单总数
     * @author  jqs
     * @date    2023/6/16 13:39
     * @param
     * @return  MgtOrderTotal
     */
    MgtOrderTotal totalOrderFirst();
    /**
     * @description  统计门店订单总数
     * @author  jqs
     * @date    2023/6/16 13:53
     * @param mgtShopOrderPageDto
     * @return  MgtOrderTotal
     */
    MgtOrderTotal totalOrderSecond(@Param("param")MgtShopOrderPageDto mgtShopOrderPageDto);
    /**
     * @description  统计活动订单总数
     * @author  jqs
     * @date    2023/6/16 13:53
     * @param mgtShopOrderPageDto
     * @return  MgtOrderTotal
     */
    MgtOrderTotal totalOrderThird(@Param("param")MgtShopOrderPageDto mgtShopOrderPageDto);
    /**
     * @description  统计订单总数
     * @author  jqs
     * @date    2023/6/16 13:53
     * @param mgtShopOrderPageDto
     * @return  MgtOrderTotal
     */
    MgtOrderTotal totalOrder(@Param("param")MgtShopOrderPageDto mgtShopOrderPageDto);
    /**
     * @description  分页获取门店订单列表
     * @author  jqs
     * @date    2023/6/16 14:57
     * @param page
     * @param mgtShopOrderPageDto
     * @return  List<MgtShopOrderPageVo>
     */
    List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, @Param("param")MgtShopOrderPageDto mgtShopOrderPageDto);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderGoodsServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.order.domain.pojo.order.OrderGoods;
import com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo;
import com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo;
import com.ruoyi.order.mapper.order.OrderGoodsMapper;
import com.ruoyi.order.service.order.OrderGoodsService;
import org.springframework.stereotype.Service;
@@ -27,12 +28,26 @@
    /**
     *
     * @description  用户通过id获取VO
     * @author  jqs
     * @date    2023/6/16 16:53
     * @param orderId
     * @return
     * @return  List<AppUserOrderGoodsPageVo>
     */
    @Override
    public List<AppUserOrderGoodsPageVo> listVoByOrderId(String orderId){
        return orderGoodsMapper.listVoByOrderId(orderId);
    public List<AppUserOrderGoodsPageVo> listAppVoByOrderId(String orderId){
        return orderGoodsMapper.listAppVoByOrderId(orderId);
    }
    /**
     * @description  平台通过id获取VO
     * @author  jqs
     * @date    2023/6/16 16:53
     * @param orderId
     * @return  List<MgtOrderGoodsDetailVo>
     */
    @Override
    public List<MgtOrderGoodsDetailVo> listMgtVoByOrderId(String orderId){
        return orderGoodsMapper.listMgtVoByOrderId(orderId);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -18,6 +18,7 @@
import com.ruoyi.order.service.order.OrderGoodsService;
import com.ruoyi.common.security.utils.CodeFactoryUtil;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.vo.*;
import com.ruoyi.system.api.service.*;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.poji.goods.Goods;
@@ -26,11 +27,8 @@
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.AppOrderTotalVo;
import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
import com.ruoyi.order.mapper.order.OrderMapper;
import com.ruoyi.order.service.order.OrderService;
import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -83,7 +81,7 @@
     * @date: 2023/5/3 0:07
     */
    @Override
    public AppSureOrderVo buyGoods(AppSureOrderDto appSureOrderDto){
    public AppSureOrderVo buyGoods(AppSureOrderDto appSureOrderDto) {
        Long userId = appSureOrderDto.getUserId();
        AppSureOrderVo appSureOrderVo = new AppSureOrderVo();
        List<AppSureOrderGoodsVo> appSureOrderGoodsVoList = new ArrayList<>();
@@ -99,7 +97,7 @@
        BigDecimal goodsRealPrice;
        List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData();
        List<AppMemberCouponVo> appGoodsMemberCouponVoList;
        Map<Long,AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity()));
        Map<Long, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity()));
        AppMemberCouponVo appMemberCouponVo;
        Integer couponType;
        BigDecimal moneyThreshold;
@@ -112,7 +110,7 @@
        BigDecimal couponDiscount = new BigDecimal("0.00");
        BigDecimal orderPayDeposit = new BigDecimal("0.00");
        BigDecimal orderPayMoney = new BigDecimal("0.00");
        for(AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList){
        for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) {
            appSureOrderGoodsVo = new AppSureOrderGoodsVo();
            useCoupon = 0;
            goodsId = appBuyGoodsDto.getGoodsId();
@@ -134,30 +132,30 @@
            appShopGoodsGetDto.setGoodsId(goods.getGoodsId());
            appShopGoodsGetDto.setShopId(appSureOrderDto.getShopId());
            ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
            if(shopGoods!=null){
            if (shopGoods != null) {
                goodsPrice = shopGoods.getSalesPrice();
            }
            appSureOrderGoodsVo.setGoodsPrice(goodsPrice);
            buyNumBig = BigDecimal.valueOf(buyNum);
            goodsTotalPrice = goodsPrice.multiply(buyNumBig);
            goodsRealPrice = goodsTotalPrice;
            if(memberCouponId!=null){
            if (memberCouponId != null) {
                appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId);
                if(StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)){
                if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) {
                    couponType = appMemberCouponVo.getCouponType();
                    if(couponType == 1 && appMemberCouponVo.getMoneyThreshold()!=null && appMemberCouponVo.getDiscountMoney()!=null){
                    if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) {
                        moneyThreshold = appMemberCouponVo.getMoneyThreshold();
                        if(goodsTotalPrice.compareTo(moneyThreshold)>=0){
                        if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) {
                            discountMoney = appMemberCouponVo.getDiscountMoney();
                            goodsRealPrice = goodsTotalPrice.subtract(discountMoney);
                            useCoupon = 1;
                        }
                    }else if(couponType == 2 && appMemberCouponVo.getDiscountPercent()!=null){
                    } 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).setScale(2, BigDecimal.ROUND_HALF_UP);
                        discountMoney = goodsRealPrice.subtract(goodsTotalPrice);
                        useCoupon = 1;
                    }else if(couponType == 3 && appMemberCouponVo.getDiscountMoney()!=null){
                    } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) {
                        discountMoney = appMemberCouponVo.getDiscountMoney();
                        goodsRealPrice = goodsTotalPrice.subtract(discountMoney);
                        useCoupon = 1;
@@ -169,7 +167,7 @@
            appSureOrderGoodsVo.setCouponDiscount(discountMoney);
            appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice);
            goodsDeposit = goods.getSubscription();
            if(goodsDeposit == null){
            if (goodsDeposit == null) {
                goodsDeposit = new BigDecimal("0.00");
            }
            appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit);
@@ -179,11 +177,11 @@
            orderPayMoney = orderPayMoney.add(goodsRealPrice);
            //商品关联优惠券
            appGoodsMemberCouponVoList = new ArrayList<>();
            if(appMemberCouponVoList!=null && !appMemberCouponVoList.isEmpty()){
                for(AppMemberCouponVo entity : appMemberCouponVoList){
                    if(StringUtils.isBlank(entity.getRelGoodsIds())){
            if (appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()) {
                for (AppMemberCouponVo entity : appMemberCouponVoList) {
                    if (StringUtils.isBlank(entity.getRelGoodsIds())) {
                        appGoodsMemberCouponVoList.add(entity);
                    }else if(entity.getRelGoodsIds().contains(goodsId)){
                    } else if (entity.getRelGoodsIds().contains(goodsId)) {
                        appGoodsMemberCouponVoList.add(entity);
                    }
                }
@@ -201,11 +199,12 @@
    /**
     * 创建订单
     *
     * @param appPlaceOrderDto
     * @return
     */
    @Override
    public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto){
    public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto) {
        Long userId = appPlaceOrderDto.getUserId();
        AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo();
        List<AppSureOrderGoodsVo> appSureOrderGoodsVoList = new ArrayList<>();
@@ -222,7 +221,7 @@
        BigDecimal goodsTotalPrice;
        BigDecimal goodsRealPrice;
        List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData();
        Map<Long,AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity()));
        Map<Long, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity()));
        AppMemberCouponVo appMemberCouponVo;
        Integer couponType;
        BigDecimal moneyThreshold;
@@ -240,7 +239,7 @@
        OrderGoods orderGoods;
        String orderGoodsId;
        HashSet<String> goodsTypeSet = new HashSet<>();
        for(AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList){
        for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) {
            appSureOrderGoodsVo = new AppSureOrderGoodsVo();
            useCoupon = 0;
            goodsId = appBuyGoodsDto.getGoodsId();
@@ -262,7 +261,7 @@
            appShopGoodsGetDto.setGoodsId(goods.getGoodsId());
            appShopGoodsGetDto.setShopId(appPlaceOrderDto.getShopId());
            ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
            if(shopGoods!=null){
            if (shopGoods != null) {
                goodsPrice = shopGoods.getSalesPrice();
                serviceNum = shopGoods.getServiceNum();
            }
@@ -270,23 +269,23 @@
            buyNumBig = BigDecimal.valueOf(buyNum);
            goodsTotalPrice = goodsPrice.multiply(buyNumBig);
            goodsRealPrice = goodsTotalPrice;
            if(memberCouponId!=null){
            if (memberCouponId != null) {
                appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId);
                if(StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)){
                if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) {
                    couponType = appMemberCouponVo.getCouponType();
                    if(couponType == 1 && appMemberCouponVo.getMoneyThreshold()!=null && appMemberCouponVo.getDiscountMoney()!=null){
                    if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) {
                        moneyThreshold = appMemberCouponVo.getMoneyThreshold();
                        if(goodsTotalPrice.compareTo(moneyThreshold)>=0){
                        if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) {
                            discountMoney = appMemberCouponVo.getDiscountMoney();
                            goodsRealPrice = goodsTotalPrice.subtract(discountMoney);
                            useCoupon = 1;
                        }
                    }else if(couponType == 2 && appMemberCouponVo.getDiscountPercent()!=null){
                    } 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).setScale(2, BigDecimal.ROUND_HALF_UP);
                        discountMoney = goodsRealPrice.subtract(goodsTotalPrice);
                        useCoupon = 1;
                    }else if(couponType == 3 && appMemberCouponVo.getDiscountMoney()!=null){
                    } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) {
                        discountMoney = appMemberCouponVo.getDiscountMoney();
                        goodsRealPrice = goodsTotalPrice.subtract(discountMoney);
                        useCoupon = 1;
@@ -298,7 +297,7 @@
            appSureOrderGoodsVo.setCouponDiscount(discountMoney);
            appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice);
            goodsDeposit = goods.getSubscription();
            if(goodsDeposit == null){
            if (goodsDeposit == null) {
                goodsDeposit = new BigDecimal("0.00");
            }
            appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit);
@@ -315,7 +314,7 @@
            orderGoods.setOrderId(orderId);
            orderGoods.setGoodsId(goodsId);
            orderGoods.setBuyNum(buyNum);
            if(memberCouponId!=null){
            if (memberCouponId != null) {
                orderGoods.setCouponId(memberCouponId.toString());
            }
            orderGoods.setGoodsPrice(goodsPrice);
@@ -330,13 +329,13 @@
            appShoppingCartDelDto.setGoodsId(goodsId);
            appShoppingCartDelDto.setUserId(userId);
            remoteShoppingCartService.deleteShoppingCart(appShoppingCartDelDto);
            if(goods.getGoodsType()==1){
            if (goods.getGoodsType() == 1) {
                goodsTypeSet.add("周期");
            }else if(goods.getGoodsType()==2){
            } else if (goods.getGoodsType() == 2) {
                goodsTypeSet.add("服务");
            }else if(goods.getGoodsType()==3){
            } else if (goods.getGoodsType() == 3) {
                goodsTypeSet.add("体验");
            }else if(goods.getGoodsType()==4){
            } else if (goods.getGoodsType() == 4) {
                goodsTypeSet.add("单品");
            }
        }
@@ -355,13 +354,13 @@
        order.setReceivableMoney(orderPayMoney);
        order.setReceivableDeposit(orderPayDeposit);
        order.setPayType(appPlaceOrderDto.getPayType());
        if(order.getPayType()==1){
        if (order.getPayType() == 1) {
            order.setPayMoney(orderPayMoney);
            order.setOnlinePayMoney(orderPayMoney);
            appPlaceOrderVo.setPayMoney(orderPayMoney);
            appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney()));
            order.setCloseFlag(1);
        }else if(order.getPayType()==2){
        } else if (order.getPayType() == 2) {
            order.setPayMoney(orderPayDeposit);
            order.setOnlinePayMoney(orderPayDeposit);
            appPlaceOrderVo.setPayMoney(orderPayDeposit);
@@ -373,7 +372,7 @@
        order.setCreateTime(new Date());
        this.save(order);
        //更新用户商品类型
        if(goodsTypeSet!=null&&goodsTypeSet.size()>0){
        if (goodsTypeSet != null && goodsTypeSet.size() > 0) {
            AppMemberGoodsTypeDto appMemberGoodsTypeDto = new AppMemberGoodsTypeDto();
            appMemberGoodsTypeDto.setUserId(userId);
            appMemberGoodsTypeDto.setGoodsTypeSet(goodsTypeSet);
@@ -390,18 +389,19 @@
    /**
     * 分页获取用户订单
     *
     * @param page
     * @param appUserOrderPageDto
     * @return
     */
    @Override
    public List<AppUserOrderPageVo> pageUserOrder(Page page, AppUserOrderPageDto appUserOrderPageDto){
        List<AppUserOrderPageVo> appUserOrderPageVoList = orderMapper.pageUserOrder(page,appUserOrderPageDto);
        if(appUserOrderPageVoList!=null&&!appUserOrderPageVoList.isEmpty()){
    public List<AppUserOrderPageVo> pageUserOrder(Page page, AppUserOrderPageDto appUserOrderPageDto) {
        List<AppUserOrderPageVo> appUserOrderPageVoList = orderMapper.pageUserOrder(page, appUserOrderPageDto);
        if (appUserOrderPageVoList != null && !appUserOrderPageVoList.isEmpty()) {
            Long shopId;
            Shop shop;
            HashSet<Long> set=new HashSet<Long>();
            for(AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList){
            HashSet<Long> set = new HashSet<Long>();
            for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) {
                shopId = appUserOrderPageVo.getShopId();
                set.add(shopId);
            }
@@ -410,16 +410,16 @@
                Shop shopTemp = remoteShopService.getShop(shopIdLong).getData();
                shopMap.put(shopIdLong, shopTemp);
            });
            for(AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList){
            for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) {
                shop = shopMap.get(appUserOrderPageVo.getShopId());
                appUserOrderPageVo.setShopName(shop.getShopName());
                appUserOrderPageVo.setShopServicePhone(shop.getShopServicePhone());
                if(appUserOrderPageVo.getShopId().equals(appUserOrderPageDto.getShopId())){
                if (appUserOrderPageVo.getShopId().equals(appUserOrderPageDto.getShopId())) {
                    appUserOrderPageVo.setSameShop(1);
                }else{
                } else {
                    appUserOrderPageVo.setSameShop(0);
                }
                appUserOrderPageVo.setVerifyCode("1-"+appUserOrderPageVo.getOrderId());
                appUserOrderPageVo.setVerifyCode("1-" + appUserOrderPageVo.getOrderId());
            }
        }
        return appUserOrderPageVoList;
@@ -427,15 +427,14 @@
    /**
     *
     * @param appBaseGetDto
     * @return
     */
    @Override
    public AppUserOrderGetVo getAppOrderDetail(AppBaseGetDto appBaseGetDto){
    public AppUserOrderGetVo getAppOrderDetail(AppBaseGetDto appBaseGetDto) {
        String orderId = appBaseGetDto.getId();
        Order order = this.getById(orderId);
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId);
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
        AppUserOrderGetVo appUserOrderGetVo = new AppUserOrderGetVo();
        appUserOrderGetVo.setOrderId(orderId);
        appUserOrderGetVo.setOrderNo(order.getOrderNo());
@@ -456,18 +455,19 @@
        Shop shop = remoteShopService.getShop(order.getShopId()).getData();
        appUserOrderGetVo.setShopName(shop.getShopName());
        appUserOrderGetVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList);
        appUserOrderGetVo.setVerifyCode("1-"+orderId);
        appUserOrderGetVo.setVerifyCode("1-" + orderId);
        return appUserOrderGetVo;
    }
    /**
     * 取消订单
     *
     * @param orderId
     */
    @Override
    public void cancelOrder(String orderId){
    public void cancelOrder(String orderId) {
        Order order = this.getById(orderId);
        if(order.getOrderStatus()!=1){
        if (order.getOrderStatus() != 1) {
            throw new ServiceException(AppErrorConstant.CANCEL_ERROR_ORDER);
        }
        order.setOrderStatus(0);
@@ -477,6 +477,7 @@
    /**
     * 获取用户订单统计
     *
     * @param userId
     * @return
     */
@@ -496,11 +497,12 @@
    /**
     * 获取B端首页统计
     *
     * @param merHomeShopTotalVo
     * @return
     */
    @Override
    public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo){
    public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) {
        Long shopId = merHomeShopTotalVo.getShopId();
        Integer todayShop = 0;
        Integer unHandleOrder = 0;
@@ -517,14 +519,15 @@
    /**
     * 核销订单
     *
     * @param orderId
     * @return
     */
    @Override
    public MerVerifyOrderVo verifyOrder(String orderId){
    public MerVerifyOrderVo verifyOrder(String orderId) {
        MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo();
        Order order = this.getById(orderId);
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId);
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
        merVerifyOrderVo.setOrderId(orderId);
        merVerifyOrderVo.setOrderNo(order.getOrderNo());
        merVerifyOrderVo.setOrderStatus(order.getOrderStatus());
@@ -548,11 +551,12 @@
    /**
     * 确认核销订单
     *
     * @param merVerifyOrderDto
     * @return
     */
    @Override
    public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto){
    public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto) {
        String orderId = merVerifyOrderDto.getOrderId();
        BigDecimal relReceiveMoney = merVerifyOrderDto.getRelReceiveMoney();
        BigDecimal relPayMoney = merVerifyOrderDto.getRelPayMoney();
@@ -563,15 +567,18 @@
        order.setUseTime(nowTime);
        order.setUseUserId(merVerifyOrderDto.getUserId());
        order.setOfflinePayMoney(relPayMoney);
        order.setOffPayTime(nowTime);
        order.setPayMoney(relReceiveMoney.add(relPayMoney));
        order.setCloseFlag(1);
        this.saveOrUpdate(order);
        //创建服务商品
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId);
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
        ConsumerGoods consumerGoods;
        String consumerGoodsId;
        for(AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList){
        Goods goods;
        for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) {
            consumerGoods = new ConsumerGoods();
            goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData();
            consumerGoodsId = IdUtils.simpleUUID();
            consumerGoods.setConsumerGoodsId(consumerGoodsId);
            consumerGoods.setDelFlag(0);
@@ -587,6 +594,9 @@
            consumerGoods.setUsedNum(0);
            consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType());
            consumerGoods.setCreateTime(nowTime);
            consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
            consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture());
            consumerGoods.setGoodsNurses(goods.getGoodsNurses());
            consumerGoodsService.save(consumerGoods);
        }
        //生成返回
@@ -613,18 +623,19 @@
    /**
     * 收银未结清订单列表
     *
     * @param page
     * @param merMemberNoClearOrderDto
     * @return
     */
    @Override
    public List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto){
        List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page,merMemberNoClearOrderDto.getMemberUserId());
        if(merMemberNoClearOrderVoList!=null&&!merMemberNoClearOrderVoList.isEmpty()){
    public List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) {
        List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page, merMemberNoClearOrderDto.getMemberUserId());
        if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) {
            BigDecimal zeroBig = new BigDecimal("0.00");
            for(MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList){
            for (MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) {
                merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney()));
                if(merMemberNoClearOrderVo.getUnPaidMoney()==null){
                if (merMemberNoClearOrderVo.getUnPaidMoney() == null) {
                    merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
                }
            }
@@ -634,12 +645,14 @@
    /**
     * 结清订单
     *
     * @param merCloseOrderDto
     */
    @Override
    public void merCloseOrder(MerCloseOrderDto merCloseOrderDto){
    public void merCloseOrder(MerCloseOrderDto merCloseOrderDto) {
        Order order = this.getById(merCloseOrderDto.getOrderId());
        order.setOfflinePayMoney(merCloseOrderDto.getPayMoney());
        order.setOffPayTime(new Date());
        order.setPayMoney(order.getPayMoney().add(merCloseOrderDto.getPayMoney()));
        order.setCloseFlag(1);
        this.saveOrUpdate(order);
@@ -647,20 +660,22 @@
    /**
     * 创建新订单
     *
     * @param merNewOrderDto
     */
    @Override
    public void createNewOrder(MerNewOrderDto merNewOrderDto){
    public void createNewOrder(MerNewOrderDto merNewOrderDto) {
        Long userId = merNewOrderDto.getBuyUserId();
        Date nowTime = new Date();
        //如果非指定用户判断是否需要通过手机号创建新用户
        if(userId==null){
        if (userId == null) {
            String name = merNewOrderDto.getName();
            String mobile = merNewOrderDto.getMobile();
            Member member = remoteMemberService.getMemberByMobile(mobile).getData();
            SysUser sysUser;
            if(member!=null){
            if (member != null) {
                sysUser = remoteUserService.getSysUser(member.getUserId()).getData();
            }else{
            } else {
                //创建新用户
                String memberId = IdUtils.simpleUUID();
                sysUser = new SysUser();
@@ -671,7 +686,7 @@
                sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
                String password = "hongruitang";
                sysUser.setPassword(SecurityUtils.encryptPassword(password));
                log.debug("sysUser"+sysUser.toString());
                log.debug("sysUser" + sysUser.toString());
                sysUser = remoteUserService.registerUser(sysUser).getData();
                member = new Member();
                member.setMemberId(memberId);
@@ -698,8 +713,8 @@
        Long shopId = merNewOrderDto.getShopId();
        Shop shop = remoteShopService.getShop(shopId).getData();
        List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData();
        Map<Long,AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>();
        if(null != appMemberCouponVoList){
        Map<Long, AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>();
        if (null != appMemberCouponVoList) {
            appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity()));
        }
@@ -717,7 +732,7 @@
        String orderNo = CodeFactoryUtil.getShopOrderNo();
        OrderGoods orderGoods;
        String orderGoodsId;
        for(AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList){
        for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) {
            goodsId = appBuyGoodsDto.getGoodsId();
            memberCouponId = appBuyGoodsDto.getMemberCouponId();
            goods = remoteGoodsService.getGoods(goodsId).getData();
@@ -729,7 +744,7 @@
            appShopGoodsGetDto.setGoodsId(goods.getGoodsId());
            appShopGoodsGetDto.setShopId(shopId);
            ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
            if(shopGoods!=null){
            if (shopGoods != null) {
                goodsPrice = shopGoods.getSalesPrice();
                serviceNum = shopGoods.getServiceNum();
            }
@@ -737,21 +752,21 @@
            goodsTotalPrice = goodsPrice.multiply(buyNumBig);
            goodsRealPrice = goodsTotalPrice;
            //优惠券计算
            if(memberCouponId!=null){
            if (memberCouponId != null) {
                appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId);
                if(null != appMemberCouponVo && (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId))){
                if (null != appMemberCouponVo && (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId))) {
                    couponType = appMemberCouponVo.getCouponType();
                    if(couponType == 1 && appMemberCouponVo.getMoneyThreshold()!=null && appMemberCouponVo.getDiscountMoney()!=null){
                    if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) {
                        moneyThreshold = appMemberCouponVo.getMoneyThreshold();
                        if(goodsTotalPrice.compareTo(moneyThreshold)>=0){
                        if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) {
                            discountMoney = appMemberCouponVo.getDiscountMoney();
                            goodsRealPrice = goodsTotalPrice.subtract(discountMoney);
                        }
                    }else if(couponType == 2 && appMemberCouponVo.getDiscountPercent()!=null){
                    } 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).setScale(2, BigDecimal.ROUND_HALF_UP);
                        discountMoney = goodsRealPrice.subtract(goodsTotalPrice);
                    }else if(couponType == 3 && appMemberCouponVo.getDiscountMoney()!=null){
                    } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) {
                        discountMoney = appMemberCouponVo.getDiscountMoney();
                        goodsRealPrice = goodsTotalPrice.subtract(discountMoney);
                    }
@@ -759,7 +774,7 @@
            }
            goodsDeposit = goods.getSubscription();
            if(goodsDeposit == null){
            if (goodsDeposit == null) {
                goodsDeposit = new BigDecimal("0.00");
            }
            goodsNum = goodsNum + buyNum;
@@ -775,7 +790,7 @@
            orderGoods.setOrderId(orderId);
            orderGoods.setGoodsId(goodsId);
            orderGoods.setBuyNum(buyNum);
            if(null != memberCouponId){
            if (null != memberCouponId) {
                orderGoods.setCouponId(memberCouponId.toString());
            }
            orderGoods.setGoodsPrice(goodsPrice);
@@ -801,32 +816,34 @@
        order.setReceivableMoney(orderPayMoney);
        order.setReceivableDeposit(new BigDecimal("0.00"));
        order.setPayType(1);
        if(order.getPayType()==1){
        if (order.getPayType() == 1) {
            order.setPayMoney(orderPayMoney);
            order.setOnlinePayMoney(orderPayMoney);
            order.setCloseFlag(1);
        }else if(order.getPayType()==2){
        } else if (order.getPayType() == 2) {
            order.setPayMoney(orderPayDeposit);
            order.setOnlinePayMoney(orderPayDeposit);
            order.setCloseFlag(0);
        }
        order.setOrderRemark(merNewOrderDto.getOrderRemark());
        order.setGoodsNum(goodsNum);
        order.setCreateTime(new Date());
        order.setPayTime(new Date());
        order.setUseTime(new Date());
        order.setCreateTime(nowTime);
        order.setPayTime(nowTime);
        order.setUseTime(nowTime);
        order.setUseUserId(merNewOrderDto.getUserId());
        order.setPayMoney(merNewOrderDto.getPayMoney());
        order.setOnlinePayMoney(new BigDecimal("0.00"));
        order.setOfflinePayMoney(merNewOrderDto.getPayMoney());
        order.setOffPayTime(nowTime);
        order.setCloseFlag(1);
        this.save(order);
        //创建服务
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId);
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
        ConsumerGoods consumerGoods;
        String consumerGoodsId;
        for(AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList){
        for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) {
            consumerGoods = new ConsumerGoods();
            goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData();
            consumerGoodsId = IdUtils.simpleUUID();
            consumerGoods.setConsumerGoodsId(consumerGoodsId);
            consumerGoods.setDelFlag(0);
@@ -841,11 +858,14 @@
            consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum());
            consumerGoods.setUsedNum(0);
            consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType());
            consumerGoods.setCreateTime(new Date());
            consumerGoods.setCreateTime(nowTime);
            consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
            consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture());
            consumerGoods.setGoodsNurses(goods.getGoodsNurses());
            consumerGoodsService.save(consumerGoods);
        }
        Member member = remoteMemberService.getMember(userId).getData();
        if(member!=null&&member.getBindingFlag()!=1){
        if (member != null && member.getBindingFlag() != 1) {
            //绑定商户
            AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
            appMemberBindingDto.setShopId(shopId);
@@ -858,47 +878,46 @@
    /**
     *
     * @param merOrderPageDto
     * @return
     */
    @Override
    public List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto){
    public List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto) {
        List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerOrder(page, merOrderPageDto);
        if(merOrderPageVoList!=null&&!merOrderPageVoList.isEmpty()){
        if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) {
            Long userId;
            Member member;
            Integer orderFrom;
            String orderFromDesc;
            BigDecimal zeroBig = new BigDecimal("0.00");
            for(MerOrderPageVo merOrderPageVo : merOrderPageVoList){
            for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) {
                userId = merOrderPageVo.getUserId();
                member = remoteMemberService.getMember(userId).getData();
                if(member!=null){
                    if(StringUtils.isNotBlank(member.getNickName())){
                if (member != null) {
                    if (StringUtils.isNotBlank(member.getNickName())) {
                        merOrderPageVo.setUserName(member.getNickName());
                    }
                    merOrderPageVo.setUserMobile(member.getMobile());
                }else{
                } else {
                    SysUser sysUser = remoteUserService.getSysUser(userId).getData();
                    if(StringUtils.isNotBlank(sysUser.getNickName())){
                    if (StringUtils.isNotBlank(sysUser.getNickName())) {
                        merOrderPageVo.setUserName(sysUser.getNickName());
                    }
                    merOrderPageVo.setUserMobile(sysUser.getPhonenumber());
                }
                orderFrom = merOrderPageVo.getOrderFrom();
                if(orderFrom!=null){
                    if(orderFrom == 1){
                if (orderFrom != null) {
                    if (orderFrom == 1) {
                        orderFromDesc = "商城订单";
                    }else{
                    } else {
                        orderFromDesc = "线下创建";
                    }
                }else{
                } else {
                    orderFromDesc = "商城订单";
                }
                merOrderPageVo.setOrderFromDesc(orderFromDesc);
                merOrderPageVo.setUnPaidMoney(merOrderPageVo.getReceivableMoney().subtract(merOrderPageVo.getPayMoney()));
                if(merOrderPageVo.getUnPaidMoney()==null){
                if (merOrderPageVo.getUnPaidMoney() == null) {
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }
            }
@@ -907,19 +926,18 @@
    }
    /**
     *
     * @param page
     * @param merMemberNoClearOrderDto
     * @return
     */
    @Override
    public List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto){
        List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberOrder(page,merMemberNoClearOrderDto.getMemberUserId());
        if(merMemberNoClearOrderVoList!=null&&!merMemberNoClearOrderVoList.isEmpty()){
    public List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) {
        List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberOrder(page, merMemberNoClearOrderDto.getMemberUserId());
        if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) {
            BigDecimal zeroBig = new BigDecimal("0.00");
            for(MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList){
            for (MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) {
                merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney()));
                if(merMemberNoClearOrderVo.getUnPaidMoney()==null){
                if (merMemberNoClearOrderVo.getUnPaidMoney() == null) {
                    merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
                }
            }
@@ -929,33 +947,306 @@
    /**
     * 获取用户订单统计
     *
     * @param mgtMemberOrderTotalDto
     * @return
     */
    @Override
    public MgtMemberOrderTotalVo getMgtMemberOrderTotal(MgtMemberOrderTotalDto mgtMemberOrderTotalDto){
    public MgtMemberOrderTotalVo getMgtMemberOrderTotal(MgtMemberOrderTotalDto mgtMemberOrderTotalDto) {
        MgtMemberOrderTotalVo mgtMemberOrderTotalVo = orderMapper.getMgtMemberOrderTotal(mgtMemberOrderTotalDto);
        return mgtMemberOrderTotalVo;
    }
    /**
     * 分页获取用户订单列表
     *
     * @param page
     * @param mgtMemberOrderPageDto
     * @return
     */
    @Override
    public List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto){
    public List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto) {
        // 通过orderMapper获取MgtMemberOrderPageVoList
        List<MgtMemberOrderPageVo> mgtMemberOrderPageVoList = orderMapper.pageMgtMemberOrder(page, mgtMemberOrderPageDto);
        if(mgtMemberOrderPageVoList!=null&&!mgtMemberOrderPageVoList.isEmpty()){
        // 如果MgtMemberOrderPageVoList不为空
        if (mgtMemberOrderPageVoList != null && !mgtMemberOrderPageVoList.isEmpty()) {
            Long shopId;
            Shop shop;
            for(MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList){
            HashSet<String> set = new HashSet<>();
            // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中
            for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) {
                shopId = mgtMemberOrderPageVo.getShopId();
                shop = remoteShopService.getShop(shopId).getData();
                mgtMemberOrderPageVo.setShopName(shop.getShopName());
                set.add(shopId.toString());
            }
            // 将set中的shopId转换为逗号分隔的字符串
            String joinedString = String.join(",", set);
            // 通过remoteShopService获取MgtSimpleShopVoList
            List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(joinedString).getData();
            // 将MgtSimpleShopVoList转换为Map<Long, MgtSimpleShopVo>,以便后续根据shopId获取对应的MgtSimpleShopVo
            Map<Long, MgtSimpleShopVo> map = simpleShopVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
            // 遍历MgtMemberOrderPageVoList,根据shopId获取对应的MgtSimpleShopVo并将其shopName设置到MgtMemberOrderPageVo中
            for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) {
                shopId = mgtMemberOrderPageVo.getShopId();
                mgtMemberOrderPageVo.setShopName(map.get(shopId).getShopName());
            }
        }
        // 返回MgtMemberOrderPageVoList
        return mgtMemberOrderPageVoList;
    }
    /**
     * @param page
     * @param mgtShopOrderPageDto
     * @return List<MgtActivityOrderPageVo>
     * @description 分页获取活动订单列表
     * @author jqs
     * @date 2023/6/16 10:43
     */
    @Override
    public List<MgtActivityOrderPageVo> pageMgtActivityOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto) {
        //如果区域代码不为null获取对应的商户id
        if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){
            MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto();
            mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode());
            mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode());
            mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode());
            MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData();
            if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){
                mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds());
            }
        }
        //如果关键词不为null获取对应的用户id
        if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){
            MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto();
            mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword());
            MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData();
            if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){
                mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
            }
        }
        // 从数据库中获取活动订单列表
        List<MgtActivityOrderPageVo> activityOrderPageVoList = orderMapper.pageMgtActivityOrder(page, mgtShopOrderPageDto);
        // 如果列表不为空
        if (!activityOrderPageVoList.isEmpty()) {
            // 定义变量
            HashSet<Long> shopIdSet = new HashSet<>();
            HashSet<Long> userIdSet = new HashSet<>();
            BigDecimal zeroBig = new BigDecimal("0.00");
            // 遍历列表,获取店铺 ID 和用户 ID
            for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) {
                shopIdSet.add(mgtActivityOrderPageVo.getShopId());
                userIdSet.add(mgtActivityOrderPageVo.getUserId());
            }
            // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串
            String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList()));
            String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList()));
            // 从远程服务获取店铺和用户信息
            List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(shopJoinedString).getData();
            Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData();
            Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
            // 遍历列表,设置店铺名称、用户名称和未支付金额
            for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) {
                mgtActivityOrderPageVo.setShopName(shopMap.get(mgtActivityOrderPageVo.getShopId()).getShopName());
                mgtActivityOrderPageVo.setUserName(userMap.get(mgtActivityOrderPageVo.getUserId()).getUserName());
                BigDecimal unPaidMoney = mgtActivityOrderPageVo.getReceivableMoney().subtract(mgtActivityOrderPageVo.getPayMoney());
                mgtActivityOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney);
            }
        }
        // 返回处理后的活动订单列表
        return activityOrderPageVoList;
    }
    /**
     * @description  获取订单统计
     * @author  jqs
     * @date    2023/6/16 12:51
     * @param mgtShopOrderPageDto
     * @return  MgtMemberOrderTotalVo
     */
    @Override
    public MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto){
        //如果区域代码不为null获取对应的商户id
        if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){
            MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto();
            mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode());
            mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode());
            mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode());
            MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData();
            if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){
                mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds());
            }
        }
        //如果关键词不为null获取对应的用户id
        if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){
            MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto();
            mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword());
            MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData();
            if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){
                mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
            }
        }
        MgtOrderTotal mgtOrderTotal = new MgtOrderTotal();
        MgtOrderTotal mgtOrderTotalFirst = orderMapper.totalOrderFirst();
        MgtOrderTotal mgtOrderTotalSecond = orderMapper.totalOrderSecond(mgtShopOrderPageDto);
        MgtOrderTotal mgtOrderTotalThird = orderMapper.totalOrderThird(mgtShopOrderPageDto);
        mgtOrderTotal.setOrderTotal(mgtOrderTotalFirst.getOrderTotal());
        mgtOrderTotal.setOrderMoneyTotal(mgtOrderTotalFirst.getOrderMoneyTotal());
        mgtOrderTotal.setShopOrderTotal(mgtOrderTotalSecond.getShopOrderTotal());
        mgtOrderTotal.setShopOrderMoneyTotal(mgtOrderTotalSecond.getShopOrderMoneyTotal());
        mgtOrderTotal.setShopPayMoneyTotal(mgtOrderTotalSecond.getShopPayMoneyTotal());
        mgtOrderTotal.setShopUnPayMoneyTotal(mgtOrderTotalSecond.getShopOrderMoneyTotal().subtract(mgtOrderTotalSecond.getShopPayMoneyTotal()));
        mgtOrderTotal.setActivityOrderTotal(mgtOrderTotalThird.getActivityOrderTotal());
        mgtOrderTotal.setActivityOrderMoneyTotal(mgtOrderTotalThird.getActivityOrderMoneyTotal());
        mgtOrderTotal.setActivityPayMoneyTotal(mgtOrderTotalThird.getActivityPayMoneyTotal());
        mgtOrderTotal.setActivityUnPayMoneyTotal(mgtOrderTotalThird.getActivityOrderMoneyTotal().subtract(mgtOrderTotalThird.getActivityPayMoneyTotal()));
        return mgtOrderTotal;
    }
    /**
     * @description  分页获取门店订单列表
     * @author  jqs
     * @date    2023/6/16 14:57
     * @param page
     * @param mgtShopOrderPageDto
     * @return  List<MgtShopOrderPageVo>
     */
    @Override
    public List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto){
        //如果区域代码不为null获取对应的商户id
        if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){
            MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto();
            mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode());
            mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode());
            mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode());
            MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData();
            if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){
                mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds());
            }
        }
        //如果关键词不为null获取对应的用户id
        if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){
            MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto();
            mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword());
            MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData();
            if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){
                mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
            }
        }
        List<MgtShopOrderPageVo> shopOrderPageVoList = orderMapper.pageMgtShopOrder(page, mgtShopOrderPageDto);
        // 如果列表不为空
        if (!shopOrderPageVoList.isEmpty()) {
            // 定义变量
            HashSet<Long> shopIdSet = new HashSet<>();
            HashSet<Long> userIdSet = new HashSet<>();
            BigDecimal zeroBig = new BigDecimal("0.00");
            // 遍历列表,获取店铺 ID 和用户 ID
            for (MgtShopOrderPageVo mgtShopOrderPageVo : shopOrderPageVoList) {
                shopIdSet.add(mgtShopOrderPageVo.getShopId());
                userIdSet.add(mgtShopOrderPageVo.getUserId());
            }
            // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串
            String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList()));
            String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList()));
            // 从远程服务获取店铺和用户信息
            List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(shopJoinedString).getData();
            Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData();
            Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
            // 遍历列表,设置店铺名称、用户名称和未支付金额
            for (MgtShopOrderPageVo mgtShopOrderPageVo : shopOrderPageVoList) {
                mgtShopOrderPageVo.setShopName(shopMap.get(mgtShopOrderPageVo.getShopId()).getShopName());
                mgtShopOrderPageVo.setUserName(userMap.get(mgtShopOrderPageVo.getUserId()).getUserName());
                BigDecimal unPaidMoney = mgtShopOrderPageVo.getReceivableMoney().subtract(mgtShopOrderPageVo.getPayMoney());
                mgtShopOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney);
            }
        }
        return shopOrderPageVoList;
    }
    /**
     * @description  获取订单详情
     * @author  jqs
     * @date    2023/6/16 16:49
     * @param orderId
     * @return  MgtOrderDetailVo
     */
    @Override
    public MgtOrderDetailVo getMgtOrderDetail(String orderId){
        // 创建MgtOrderDetailVo对象
        MgtOrderDetailVo mgtOrderDetailVo = new MgtOrderDetailVo();
        // 获取订单信息
        Order order = this.getById(orderId);
        // 获取会员信息
        Member member = remoteMemberService.getMember(order.getUserId()).getData();
        // 获取商店信息
        Shop shop = remoteShopService.getShop(order.getShopId()).getData();
        // 获取订单商品详细信息
        List<MgtOrderGoodsDetailVo> orderGoodsDetailVoList = orderGoodsService.listMgtVoByOrderId(orderId);
        // 设置MgtOrderDetailVo属性
        mgtOrderDetailVo.setOrderId(orderId);
        mgtOrderDetailVo.setUserId(order.getUserId());
        mgtOrderDetailVo.setNickName(member.getNickName());
        mgtOrderDetailVo.setUserName(member.getRealName());
        mgtOrderDetailVo.setUserMobile(member.getMobile());
        mgtOrderDetailVo.setOrderGoodsDetailVoList(orderGoodsDetailVoList);
        // 设置订单状态
        switch (order.getOrderStatus()) {
            case 0:
                mgtOrderDetailVo.setOrderStatus("已取消");
                break;
            case 1:
                mgtOrderDetailVo.setOrderStatus("待支付");
                break;
            case 2:
                mgtOrderDetailVo.setOrderStatus("待核销");
                break;
            case 3:
                mgtOrderDetailVo.setOrderStatus("已完成");
                break;
            default:
                mgtOrderDetailVo.setOrderStatus("删除");
                break;
        }
        // 设置订单编号
        mgtOrderDetailVo.setOrderNo(order.getOrderNo());
        // 设置订单来源
        switch (order.getOrderFrom()) {
            case 1:
                mgtOrderDetailVo.setOrderFrom("商城");
                break;
            case 2:
                mgtOrderDetailVo.setOrderFrom("秒杀活动");
                break;
            case 3:
                mgtOrderDetailVo.setOrderFrom("线下创建");
                break;
            default:
                mgtOrderDetailVo.setOrderStatus("");
                break;
        }
        // 设置订单支付相关属性
        mgtOrderDetailVo.setOrderMoney(order.getOrderMoney());
        mgtOrderDetailVo.setReceivableMoney(order.getReceivableMoney());
        mgtOrderDetailVo.setPayMoney(order.getPayMoney());
        mgtOrderDetailVo.setUnPaidMoney(order.getReceivableMoney().subtract(order.getPayMoney()));
        mgtOrderDetailVo.setActivityName(order.getActivityName());
        mgtOrderDetailVo.setCreateTime(order.getCreateTime());
        mgtOrderDetailVo.setOnlinePayMoney(order.getOnlinePayMoney());
        mgtOrderDetailVo.setOfflinePayMoney(order.getOfflinePayMoney());
        mgtOrderDetailVo.setPayTime(order.getPayTime());
        mgtOrderDetailVo.setOffPayTime(order.getOffPayTime());
        mgtOrderDetailVo.setCompleteTime(order.getUseTime());
        mgtOrderDetailVo.setCancelTime(order.getCancelTime());
        mgtOrderDetailVo.setOrderRemark(order.getOrderRemark());
        mgtOrderDetailVo.setShopId(order.getShopId());
        mgtOrderDetailVo.setShopName(shop.getShopName());
        mgtOrderDetailVo.setVerifyTime(order.getUseTime());
        return mgtOrderDetailVo;
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderGoodsService.java
@@ -3,6 +3,7 @@
import com.ruoyi.order.domain.pojo.order.OrderGoods;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo;
import com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo;
import java.util.List;
@@ -17,9 +18,20 @@
public interface OrderGoodsService extends IService<OrderGoods> {
    /**
     *
     * @description  用户通过id获取VO
     * @author  jqs
     * @date    2023/6/16 16:53
     * @param orderId
     * @return
     * @return  List<AppUserOrderGoodsPageVo>
     */
    List<AppUserOrderGoodsPageVo> listVoByOrderId(String orderId);
    List<AppUserOrderGoodsPageVo> listAppVoByOrderId(String orderId);
    /**
     * @description  平台通过id获取VO
     * @author  jqs
     * @date    2023/6/16 16:53
     * @param orderId
     * @return  List<MgtOrderGoodsDetailVo>
     */
    List<MgtOrderGoodsDetailVo> listMgtVoByOrderId(String orderId);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -1,15 +1,13 @@
package com.ruoyi.order.service.order;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.order.domain.dto.*;
import com.ruoyi.order.domain.pojo.order.Order;
import com.ruoyi.order.domain.vo.*;
import com.ruoyi.system.api.domain.dto.AppBaseGetDto;
import com.ruoyi.order.domain.pojo.order.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import com.ruoyi.system.api.domain.vo.AppOrderTotalVo;
import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -138,4 +136,42 @@
     * @return
     */
    List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto);
    /**
     * @description  分页获取活动订单列表
     * @author  jqs
     * @date    2023/6/16 10:43
     * @param page
     * @param mgtShopOrderPageDto
     * @return  List<MgtActivityOrderPageVo>
     */
    List<MgtActivityOrderPageVo> pageMgtActivityOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto);
    /**
     * @description  获取订单统计
     * @author  jqs
     * @date    2023/6/16 12:51
     * @param mgtShopOrderPageDto
     * @return  MgtMemberOrderTotalVo
     */
    MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto);
    /**
     * @description  分页获取门店订单列表
     * @author  jqs
     * @date    2023/6/16 14:57
     * @param page
     * @param mgtShopOrderPageDto
     * @return  List<MgtShopOrderPageVo>
     */
    List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto);
    /**
     * @description  获取订单详情
     * @author  jqs
     * @date    2023/6/16 16:49
     * @param orderId
     * @return  MgtOrderDetailVo
     */
    MgtOrderDetailVo getMgtOrderDetail(String orderId);
}
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/ConsumerGoodsMapper.xml
@@ -123,15 +123,13 @@
        tcg.service_status serviceStatus,
        tcg.shop_id shopId,
        tcg.goods_type goodsType,
        tg.goods_name goodsName,
        tgf.file_url goodsPicture,
        tg.goods_nurses goodsNurses,
        tcg.goods_name goodsName,
        tcg.goods_picture goodsPicture,
        tcg.goods_nurses goodsNurses,
        tcg.cycle_num_flag cycleNumFlag,
        tcg.service_num serviceNum,
        tcg.used_num usedNum
        FROM t_consumer_goods tcg
        INNER JOIN t_goods tg ON tcg.goods_id = tg.goods_id
        INNER JOIN t_goods_file tgf ON tgf.goods_id = tg.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
        WHERE tcg.del_flag = 0 AND tcg.user_id = #{param.userId} AND tcg.shop_id = #{param.shopId}
        <if test="param.goodsType != null">
            AND tcg.goods_type = #{param.goodsType}
@@ -145,16 +143,14 @@
        tcg.service_status serviceStatus,
        tcg.shop_id shopId,
        tcg.goods_type goodsType,
        tg.goods_name goodsName,
        tg.goods_introduction goodsIntroduction,
        tgf.file_url goodsPicture,
        tg.goods_nurses goodsNurses,
        tcg.goods_name goodsName,
        tcg.goods_introduction goodsIntroduction,
        tcg.goods_picture goodsPicture,
        tcg.goods_nurses goodsNurses,
        tcg.cycle_num_flag cycleNumFlag,
        tcg.service_num serviceNum,
        tcg.used_num usedNum
        FROM t_consumer_goods tcg
        INNER JOIN t_goods tg ON tcg.goods_id = tg.goods_id
        INNER JOIN t_goods_file tgf ON tgf.goods_id = tg.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
        WHERE tcg.del_flag = 0 AND tcg.user_id = #{param.memberUserId} AND tcg.shop_id = #{param.shopId} AND tcg.service_status = 1
        AND tcg.goods_type = 1 AND tcg.cycle_num_flag = 0
        ORDER BY tcg.create_time DESC
@@ -166,16 +162,14 @@
        tcg.service_status serviceStatus,
        tcg.shop_id shopId,
        tcg.goods_type goodsType,
        tg.goods_name goodsName,
        tg.goods_introduction goodsIntroduction,
        tgf.file_url goodsPicture,
        tg.goods_nurses goodsNurses,
        tcg.goods_name goodsName,
        tcg.goods_introduction goodsIntroduction,
        tcg.goods_picture goodsPicture,
        tcg.goods_nurses goodsNurses,
        tcg.cycle_num_flag cycleNumFlag,
        tcg.service_num serviceNum,
        tcg.used_num usedNum
        FROM t_consumer_goods tcg
        INNER JOIN t_goods tg ON tcg.goods_id = tg.goods_id
        INNER JOIN t_goods_file tgf ON tgf.goods_id = tg.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
        WHERE tcg.del_flag = 0 AND tcg.user_id = #{param.memberUserId} AND tcg.shop_id = #{param.shopId} AND tcg.service_status = 1
        AND tcg.goods_type = #{param.goodsType} AND tcg.cycle_num_flag = 1
        ORDER BY tcg.create_time DESC
@@ -187,16 +181,14 @@
        tcg.service_status serviceStatus,
        tcg.shop_id shopId,
        tcg.goods_type goodsType,
        tg.goods_name goodsName,
        tg.goods_introduction goodsIntroduction,
        tgf.file_url goodsPicture,
        tg.goods_nurses goodsNurses,
        tcg.goods_name goodsName,
        tcg.goods_introduction goodsIntroduction,
        tcg.goods_picture goodsPicture,
        tcg.goods_nurses goodsNurses,
        tcg.cycle_num_flag cycleNumFlag,
        tcg.service_num serviceNum,
        tcg.used_num usedNum
        FROM t_consumer_goods tcg
        INNER JOIN t_goods tg ON tcg.goods_id = tg.goods_id
        INNER JOIN t_goods_file tgf ON tgf.goods_id = tg.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
        WHERE tcg.del_flag = 0 AND tcg.user_id = #{param.memberUserId} AND tcg.shop_id = #{param.shopId}
        AND tcg.goods_type = #{param.goodsType} AND tcg.cycle_num_flag = 1
        ORDER BY tcg.create_time DESC
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderGoodsMapper.xml
@@ -103,23 +103,35 @@
        </foreach>
    </delete>
    <select id="listVoByOrderId" resultType="com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo">
    <select id="listAppVoByOrderId" resultType="com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo">
        SELECT
        tog.order_goods_id orderGoodsId,
        tog.goods_id goodsId,
        tg.goods_name goodsName,
        tog.goods_name goodsName,
        tog.goods_type goodsType,
        tog.buy_num buyNum,
        tog.goods_price goodsPrice,
        tgf.file_url goodsPicture,
        tog.goods_picture goodsPicture,
        tog.goods_total_money goodsRealPrice,
        tog.cycle_num_flag cycleNumFlag,
        tog.service_num serviceNum
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        INNER JOIN t_goods tg ON tg.goods_id = tog.goods_id
        INNER JOIN t_goods_file tgf ON tgf.goods_id = tg.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
        WHERE toc.del_flag = 0 AND toc.order_id = #{orderId}
    </select>
    <select id="listMgtVoByOrderId" resultType="com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo">
        SELECT
        tog.order_goods_id orderGoodsId,
        tog.goods_id goodsId,
        tog.goods_name goodsName,
        tog.goods_type goodsType,
        tog.buy_num buyNum,
        tog.goods_price goodsPrice,
        tog.goods_picture goodsPicture,
        tog.goods_total_money goodsTotalPrice
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        WHERE toc.del_flag = 0 AND toc.order_id = #{orderId}
    </select>
</mapper>
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -86,6 +86,41 @@
        </collection>
    </resultMap>
    <resultMap id="mgtShopOrderResultMap" type="com.ruoyi.order.domain.vo.MgtShopOrderPageVo">
        <result column="orderId" property="orderId"/>
        <result column="orderStatus" property="orderStatus"/>
        <result column="orderNo" property="orderNo"/>
        <result column="shopId" property="shopId"/>
        <result column="orderMoney" property="orderMoney"/>
        <result column="discountMoney" property="discountMoney"/>
        <result column="receivableMoney" property="receivableMoney"/>
        <result column="payMoney" property="payMoney"/>
        <result column="orderFrom" property="orderFrom" />
        <result column="createTime" property="createTime" />
        <collection property="mgtOrderGoodsVoList" ofType="com.ruoyi.order.domain.vo.MerOrderGoodsPageVo">
            <result column="goodsName" property="goodsName"/>
            <result column="buyNum" property="buyNum"/>
        </collection>
    </resultMap>
    <resultMap id="mgtShopOrderResultMap" type="com.ruoyi.order.domain.vo.MgtShopOrderPageVo">
        <result column="orderId" property="orderId"/>
        <result column="orderNo" property="orderNo"/>
        <result column="userId" property="userId"/>
        <result column="orderMoney" property="orderMoney"/>
        <result column="createTime" property="createTime"/>
        <result column="receivableMoney" property="receivableMoney"/>
        <result column="payMoney" property="payMoney"/>
        <result column="unPaidMoney" property="unPaidMoney"/>
        <result column="orderFrom" property="orderFrom"/>
        <result column="shopId" property="shopId"/>
        <result column="verifyTime" property="verifyTime"/>
        <collection property="mgtOrderGoodsPageVoList" ofType="com.ruoyi.order.domain.vo.MgtOrderGoodsPageVo">
            <result column="goodsName" property="goodsName"/>
            <result column="buyNum" property="buyNum"/>
        </collection>
    </resultMap>
    <sql id="selectOrderVo">
        select order_id, del_flag, order_status, order_no, order_from, shop_id, user_id, order_money, coupon_money, discount_money, receivable_money, pay_type, pay_money, online_pay_money, offline_pay_money, order_remark, goods_info, create_time, pay_time, use_time, cancel_time, use_user_id from t_order
    </sql>
@@ -237,7 +272,7 @@
            AND toc.order_status = #{param.orderStatus}
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tg.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tog.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
        </if>
        ORDER BY toc.create_time DESC
    </select>
@@ -300,7 +335,7 @@
            AND toc.create_time &lt;= #{param.endOrderDate}
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tg.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tog.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
        </if>
        ORDER BY toc.create_time DESC
    </select>
@@ -362,15 +397,15 @@
        tog.goods_name goodsName,
        tog.buy_num buyNum,
        toc.create_time createTime,
        toc.order_from orderFrom,
        CASE toc.order_from
        WHEN 1 THEN "商城订单"
        WHEN 2 THEN "秒杀活动订单"
        WHEN 3 THEN "线下创建订单"
        END orderFrom
        END orderFromDesc
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        INNER JOIN t_goods tg ON tg.goods_id = tog.goods_id
        WHERE toc.del_flag = 0 AND toc.user_id = #{param.userId}
        WHERE toc.del_flag = 0 AND toc.user_id = #{param.memberUserId}
        <if test="param.orderStatus != null">
            AND toc.order_status = #{param.orderStatus}
        </if>
@@ -391,4 +426,199 @@
        </if>
        ORDER BY toc.create_time DESC
    </select>
    <select id="pageMgtActivityOrder" resultType="com.ruoyi.order.domain.vo.MgtActivityOrderPageVo">
        SELECT
            toc.order_id orderId,
            toc.order_no orderNo,
            toc.user_id userId,
            toc.activity_name activityName,
            tog.goods_name goodsName,
            tog.goods_price activityPrice,
            tog.buy_num buyNum,
            toc.order_money orderMoney,
            toc.receivable_money receivableMoney,
            toc.create_time createTime,
            toc.pay_money payMoney,
            toc.shop_id shopId,
            toc.use_time verifyTime
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        WHERE toc.del_flag = 0 AND toc.order_from = 2
        <if test="param.orderStatus != null">
            AND toc.order_status = #{param.orderStatus}
        </if>
        <if test="param.goodsType != null and param.goodsType !=''">
            AND tog.goods_type = #{param.goodsType}
        </if>
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
        </if>
        <if test="param.shopIds != null and param.shopIds != ''">
            AND toc.shop_id IN (#{param.shopIds})
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR toc.user_id IN (#{param.userIds}))
        </if>
        <if test="param.verifyStartTime != null and param.verifyStartTime != ''">
            AND toc.use_time &gt;= #{param.verifyStartTime}
        </if>
        <if test="param.verifyEndTime != null and param.verifyEndTime != ''">
            AND toc.use_time &lt;= #{param.verifyEndTime}
        </if>
        ORDER BY toc.create_time DESC
    </select>
    <select id="totalOrderFirst" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal">
        SELECT
            COUNT(order_id) orderTotal,
            IFNULL(SUM(order_money),0) orderMoneyTotal
        FROM t_order toc.create_time DESC
    </select>
    <select id="totalOrderSecond" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal">
        SELECT
        COUNT(temp.order_id) shopOrderTotal,
        IFNULL(SUM(temp.order_money),0) shopOrderMoneyTotal,
        IFNULL(SUM(temp.pay_money),0) shopPayMoneyTotal FROM
        (SELECT toc.order_id,toc.order_money,toc.pay_money
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3)
        <if test="param.orderStatus != null">
            AND toc.order_status = #{param.orderStatus}
        </if>
        <if test="param.goodsType != null and param.goodsType !=''">
            AND tog.goods_type = #{param.goodsType}
        </if>
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
        </if>
        <if test="param.shopIds != null and param.shopIds != ''">
            AND toc.shop_id IN (#{param.shopIds})
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR toc.user_id IN (#{param.userIds}))
        </if>
        <if test="param.verifyStartTime != null and param.verifyStartTime != ''">
            AND toc.use_time &gt;= #{param.verifyStartTime}
        </if>
        <if test="param.verifyEndTime != null and param.verifyEndTime != ''">
            AND toc.use_time &lt;= #{param.verifyEndTime}
        </if>
        GROUP BY toc.order_id) AS temp
    </select>
    <select id="totalOrderThird" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal">
        SELECT
        COUNT(temp.order_id) shopOrderTotal,
        IFNULL(SUM(temp.order_money),0) shopOrderMoneyTotal,
        IFNULL(SUM(temp.pay_money),0) shopPayMoneyTotal FROM
        (SELECT toc.order_id,toc.order_money,toc.pay_money
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        WHERE toc.del_flag = 0 AND toc.order_from = 2
        <if test="param.orderStatus != null">
            AND toc.order_status = #{param.orderStatus}
        </if>
        <if test="param.goodsType != null and param.goodsType !=''">
            AND tog.goods_type = #{param.goodsType}
        </if>
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
        </if>
        <if test="param.shopIds != null and param.shopIds != ''">
            AND toc.shop_id IN (#{param.shopIds})
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR toc.user_id IN (#{param.userIds}))
        </if>
        <if test="param.verifyStartTime != null and param.verifyStartTime != ''">
            AND toc.use_time &gt;= #{param.verifyStartTime}
        </if>
        <if test="param.verifyEndTime != null and param.verifyEndTime != ''">
            AND toc.use_time &lt;= #{param.verifyEndTime}
        </if>
        GROUP BY toc.order_id) AS temp
    </select>
    <select id="totalOrder" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal">
        SELECT
        COUNT(order_id) AS orderTotal,
        IFNULL(SUM(order_money), 0) AS orderMoneyTotal,
        COUNT(CASE WHEN (order_from = 1 OR order_from = 3) THEN order_id ELSE NULL END) AS shopOrderTotal,
        IFNULL(SUM(CASE WHEN (order_from = 1 OR order_from = 3) THEN order_money ELSE 0 END), 0) AS shopOrderMoneyTotal,
        IFNULL(SUM(CASE WHEN (order_from = 1 OR order_from = 3) THEN pay_money ELSE 0 END), 0) AS shopPayMoneyTotal,
        COUNT(CASE WHEN order_from = 2 THEN order_id ELSE NULL END) AS activityOrderTotal,
        IFNULL(SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END), 0) AS activityOrderMoneyTotal,
        IFNULL(SUM(CASE WHEN order_from = 2 THEN pay_money ELSE 0 END), 0) AS activityPayMoneyTotal
        FROM
        (SELECT toc.order_id, toc.order_money, toc.pay_money, toc.order_from
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        WHERE toc.del_flag = 0
        <if test="param.orderStatus != null">
            AND toc.order_status = #{param.orderStatus}
        </if>
        <if test="param.goodsType != null and param.goodsType !=''">
            AND tog.goods_type = #{param.goodsType}
        </if>
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
        </if>
        <if test="param.shopIds != null and param.shopIds != ''">
            AND toc.shop_id IN (#{param.shopIds})
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR toc.user_id IN (#{param.userIds}))
        </if>
        <if test="param.verifyStartTime != null and param.verifyStartTime != ''">
            AND toc.use_time &gt;= #{param.verifyStartTime}
        </if>
        <if test="param.verifyEndTime != null and param.verifyEndTime != ''">
            AND toc.use_time &lt;= #{param.verifyEndTime}
        </if>
        GROUP BY toc.order_id) AS temp
    </select>
    <select id="pageMgtShopOrder" resultMap="mgtShopOrderResultMap">
        SELECT
        toc.order_id orderId,
        toc.order_no orderNo,
        toc.user_id userId,
        tog.goods_name goodsName,
        tog.buy_num buyNum,
        toc.order_money orderMoney,
        toc.receivable_money receivableMoney,
        toc.create_time createTime,
        toc.pay_money payMoney,
        toc.shop_id shopName,
        toc.use_time verifyTime,
        CASE toc.order_from WHEN 1 THEN '小程序' WHEN 3 THEN '线下创建' END orderFrom
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3)
        <if test="param.orderStatus != null">
            AND toc.order_status = #{param.orderStatus}
        </if>
        <if test="param.goodsType != null and param.goodsType !=''">
            AND tog.goods_type = #{param.goodsType}
        </if>
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
        </if>
        <if test="param.shopIds != null and param.shopIds != ''">
            AND toc.shop_id IN (#{param.shopIds})
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR toc.user_id IN (#{param.userIds}))
        </if>
        <if test="param.verifyStartTime != null and param.verifyStartTime != ''">
            AND toc.use_time &gt;= #{param.verifyStartTime}
        </if>
        <if test="param.verifyEndTime != null and param.verifyEndTime != ''">
            AND toc.use_time &lt;= #{param.verifyEndTime}
        </if>
        ORDER BY toc.create_time DESC
    </select>
</mapper>
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml
@@ -98,7 +98,7 @@
        ORDER BY tusr.create_time DESC
    </select>
    <select id="pageMerMemberServiceRecord" resultType="com.ruoyi.order.domain.vo.MgtMemberServiceRecordPageVo">
    <select id="pageMgtMemberServiceRecord" resultType="com.ruoyi.order.domain.vo.MgtMemberServiceRecordPageVo">
        SELECT
        tusr.shop_id shopId,
        tsrd.consumer_goods_name consumerGoodsName,
@@ -107,10 +107,16 @@
        tsrd.service_num serviceNum,
        tsrd.surp_num surpNum
        FROM t_user_service_record tusr
        INNER JOIN t_service_record_detail tsrd ON tsrd.record_id = tusr.id
        LEFT JOIN t_service_record_detail tsrd ON tsrd.record_id = tusr.id
        WHERE tusr.del_flag = 0 AND tusr.user_id = #{param.memberUserId} AND tusr.service_type = 1
        <if test="param.keyword != null and param.keyword != ''">
            AND tsrd.consumer_goods_name LIKE  CONCAT('%',#{param.keyword},'%')
        </if>
        <if test="param.createStartTime!=null and param.createStartTime!=''">
            AND tusr.create_time &gt;= #{param.createStartTime}
        </if>
        <if test="param.createEndTime!=null and param.createEndTime!=''">
            AND tusr.create_time &lt;= #{param.createEndTime}
        </if>
        ORDER BY tusr.create_time DESC
    </select>
@@ -125,7 +131,7 @@
        IFNULL(SUM(tsrd.service_num),0) cycleCount,
        IFNULL(SUM(tsrd.surp_num),0) surpCycleCount
        FROM t_user_service_record tusr
        INNER JOIN t_service_record_detail tsrd ON tsrd.record_id = tusr.id
        LEFT JOIN t_service_record_detail tsrd ON tsrd.record_id = tusr.id
        WHERE tusr.del_flag = 0 AND tusr.user_id = #{userId} AND tusr.service_type = 1
        GROUP BY tsrd.consumer_goods_id) AS temp
    </select>
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java
@@ -1,6 +1,5 @@
package com.ruoyi.shop.controller.management;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.shop.domain.dto.MgtFollowShopTaskDto;
@@ -58,37 +57,28 @@
    @RequestMapping(value = "/pageMgtShopFollow", method = RequestMethod.POST)
    @ApiOperation(value = "平台获取平台跟进列表")
    public R<Page<MgtShopTaskRecordPageVo>> pageMgtShopFollow(@RequestBody MgtShopTaskPageDto mgtShopTaskPageDto) {
    public R<List<MgtShopTaskRecordPageVo>> pageMgtShopFollow(@RequestBody MgtShopTaskPageDto mgtShopTaskPageDto) {
        Long userId = SecurityUtils.getUserId();
        mgtShopTaskPageDto.setUserId(userId);
        Page<MgtShopTaskRecordPageVo> page = new Page<>();
        page.setSize(mgtShopTaskPageDto.getPageSize());
        page.setCurrent(mgtShopTaskPageDto.getPageNum());
        List<MgtShopTaskRecordPageVo> mgtShopTaskRecordPageVoList = shopTaskRecordService.pageMgtShopFollow(page,mgtShopTaskPageDto);
        return R.ok(page.setRecords(mgtShopTaskRecordPageVoList));
        List<MgtShopTaskRecordPageVo> mgtShopTaskRecordPageVoList = shopTaskRecordService.pageMgtShopFollow(mgtShopTaskPageDto);
        return R.ok(mgtShopTaskRecordPageVoList);
    }
    @RequestMapping(value = "/pageMgtAgencyFollow", method = RequestMethod.POST)
    @ApiOperation(value = "平台获取代理商跟进列表")
    public R<Page<MgtAgencyTaskRecordPageVo>> pageMgtAgencyFollow(@RequestBody MgtShopTaskPageDto mgtShopTaskPageDto) {
    public R<List<MgtAgencyTaskRecordPageVo>> pageMgtAgencyFollow(@RequestBody MgtShopTaskPageDto mgtShopTaskPageDto) {
        Long userId = SecurityUtils.getUserId();
        mgtShopTaskPageDto.setUserId(userId);
        Page<MgtAgencyTaskRecordPageVo> page = new Page<>();
        page.setSize(mgtShopTaskPageDto.getPageSize());
        page.setCurrent(mgtShopTaskPageDto.getPageNum());
        List<MgtAgencyTaskRecordPageVo> mgtMemberFollowPageVoList = agencyTaskRecordService.pageMgtAgencyFollow(page,mgtShopTaskPageDto);
        return R.ok(page.setRecords(mgtMemberFollowPageVoList));
        List<MgtAgencyTaskRecordPageVo> mgtMemberFollowPageVoList = agencyTaskRecordService.pageMgtAgencyFollow(mgtShopTaskPageDto);
        return R.ok(mgtMemberFollowPageVoList);
    }
    @RequestMapping(value = "/pageMgtMemberFollow", method = RequestMethod.POST)
    @ApiOperation(value = "平台获取用户跟进列表")
    public R<Page<MgtMemberFollowPageVo>> pageMgtMemberFollow(@RequestBody MgtMemberTaskPageDto mgtMemberTaskPageDto) {
    public R<List<MgtMemberFollowPageVo>> pageMgtMemberFollow(@RequestBody MgtMemberTaskPageDto mgtMemberTaskPageDto) {
        Long userId = SecurityUtils.getUserId();
        mgtMemberTaskPageDto.setUserId(userId);
        Page<MgtMemberFollowPageVo> page = new Page<>();
        page.setSize(mgtMemberTaskPageDto.getPageSize());
        page.setCurrent(mgtMemberTaskPageDto.getPageNum());
        List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordService.pageMgtMemberFollow(page, mgtMemberTaskPageDto);
        return R.ok(page.setRecords(mgtMemberFollowPageVoList));
        List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordService.pageMgtMemberFollow(mgtMemberTaskPageDto);
        return R.ok(mgtMemberFollowPageVoList);
    }
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtMemberTaskPageDto.java
@@ -1,6 +1,6 @@
package com.ruoyi.shop.domain.dto;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import com.ruoyi.system.api.domain.dto.MgtBaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -12,9 +12,12 @@
 * @version: 1.0
 */
@Data
public class MgtMemberTaskPageDto extends MerPageDto {
public class MgtMemberTaskPageDto extends MgtBaseDto {
    @ApiModelProperty(value = "会员用户id")
    private Long memberUserId;
    @ApiModelProperty(value = "任务时间")
    private String taskDate;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopTaskPageDto.java
@@ -1,6 +1,6 @@
package com.ruoyi.shop.domain.dto;
import com.ruoyi.system.api.domain.dto.MgtPageDto;
import com.ruoyi.system.api.domain.dto.MgtBaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -12,9 +12,11 @@
 * @version: 1.0
 */
@Data
public class MgtShopTaskPageDto extends MgtPageDto {
public class MgtShopTaskPageDto extends MgtBaseDto {
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty(value = "任务时间")
    private String taskDate;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/task/ShopTask.java
@@ -1,15 +1,15 @@
package com.ruoyi.shop.domain.pojo.task;
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.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>
@@ -53,7 +53,7 @@
     * 下次跟进时间
     */
    @TableField("next_follow_date")
    private String nextFollowDate;
    private Date nextFollowDate;
    /**
     * 任务标题
     */
@@ -70,6 +70,13 @@
    @TableField("create_time")
    private Date createTime;
    /**
     * 任务时间
     */
    @TableField("task_date")
    private Date taskDate;
    @Override
    protected Serializable pkVal() {
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/AgencyTaskRecordMapper.java
@@ -31,8 +31,7 @@
    /**
     * 平台分页获取代理商跟进任务
     * @param page
     * @return
     */
    List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(Page page,  @Param("param")MgtShopTaskPageDto mgtShopTaskPageDto);
    List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(@Param("param")MgtShopTaskPageDto mgtShopTaskPageDto);
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskRecordMapper.java
@@ -35,5 +35,5 @@
     * @param page
     * @return
     */
    List<MgtMemberFollowPageVo> pageMgtMemberFollow(Page page, @Param("param")MgtMemberTaskPageDto mgtMemberTaskPageDto);
    List<MgtMemberFollowPageVo> pageMgtMemberFollow(@Param("param")MgtMemberTaskPageDto mgtMemberTaskPageDto);
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskRecordMapper.java
@@ -1,7 +1,6 @@
package com.ruoyi.shop.mapper.task;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto;
import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord;
import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo;
@@ -22,8 +21,7 @@
    /**
     * 平台分页获取平台跟进任务
     * @param page
     * @return
     */
    List<MgtShopTaskRecordPageVo> pageMgtShopFollow(Page page, @Param("param") MgtShopTaskPageDto mgtShopTaskPageDto);
    List<MgtShopTaskRecordPageVo> pageMgtShopFollow(@Param("param") MgtShopTaskPageDto mgtShopTaskPageDto);
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.security.utils.CodeFactoryUtil;
@@ -34,6 +35,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -274,8 +276,14 @@
    @Override
    public void changeCooperationTime(MgtChangeCoopDto mgtChangeCoopDto){
        Shop shop = this.getById(mgtChangeCoopDto.getShopId());
        Date coopStartDate = mgtChangeCoopDto.getCoopStartTime();
        Date coopEndDate = mgtChangeCoopDto.getCoopEndTime();
        Date coopStartDate = null;
        Date coopEndDate = null;
        try {
            coopStartDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopStartTime(),"yyyy-MM-dd");
            coopEndDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopEndTime(),"yyyy-MM-dd");
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        Date nowTime = new Date();
        shop.setCooperationStartTime(coopStartDate);
        shop.setCooperationEndTime(coopEndDate);
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/AgencyTaskRecordServiceImpl.java
@@ -8,13 +8,10 @@
import com.ruoyi.shop.domain.pojo.task.AgencyTaskRecord;
import com.ruoyi.shop.domain.pojo.task.TaskFile;
import com.ruoyi.shop.domain.vo.MerAgencyTaskRecordPageVo;
import com.ruoyi.shop.domain.vo.MerMemberTaskRecordPageVo;
import com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo;
import com.ruoyi.shop.domain.vo.MgtMemberFollowPageVo;
import com.ruoyi.shop.mapper.task.AgencyTaskRecordMapper;
import com.ruoyi.shop.service.task.AgencyTaskRecordService;
import com.ruoyi.shop.service.task.TaskFileService;
import com.ruoyi.shop.util.FileConvertUtils;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.service.RemoteUserService;
import org.springframework.stereotype.Service;
@@ -22,7 +19,6 @@
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.StringJoiner;
import java.util.stream.Collectors;
/**
@@ -85,12 +81,11 @@
    /**
     * 平台分页获取代理商跟进任务
     * @param page
     * @return
     */
    @Override
    public List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(Page page, MgtShopTaskPageDto mgtShopTaskPageDto){
        List<MgtAgencyTaskRecordPageVo> mgtAgencyTaskRecordPageVoList = agencyTaskRecordMapper.pageMgtAgencyFollow(page, mgtShopTaskPageDto);
    public List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(MgtShopTaskPageDto mgtShopTaskPageDto){
        List<MgtAgencyTaskRecordPageVo> mgtAgencyTaskRecordPageVoList = agencyTaskRecordMapper.pageMgtAgencyFollow(mgtShopTaskPageDto);
        if(mgtAgencyTaskRecordPageVoList!=null&&!mgtAgencyTaskRecordPageVoList.isEmpty()){
            Long followId;
            List<TaskFile> taskFileList;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskRecordServiceImpl.java
@@ -76,13 +76,15 @@
    }
    /**
     * 平台分页获取会员跟进任务
     * @param page
     * @return
     * @description  平台分页获取会员跟进任务
     * @author  jqs
     * @date    2023/6/16 15:48
     * @param mgtMemberTaskPageDto
     * @return  List<MgtMemberFollowPageVo>
     */
    @Override
    public List<MgtMemberFollowPageVo> pageMgtMemberFollow(Page page, MgtMemberTaskPageDto mgtMemberTaskPageDto){
        List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordMapper.pageMgtMemberFollow(page, mgtMemberTaskPageDto);
    public List<MgtMemberFollowPageVo> pageMgtMemberFollow( MgtMemberTaskPageDto mgtMemberTaskPageDto){
        List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordMapper.pageMgtMemberFollow( mgtMemberTaskPageDto);
        if(mgtMemberFollowPageVoList!=null&&!mgtMemberFollowPageVoList.isEmpty()){
            Long followId;
            List<TaskFile> taskFileList;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskRecordServiceImpl.java
@@ -1,13 +1,10 @@
package com.ruoyi.shop.service.impl.task;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto;
import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord;
import com.ruoyi.shop.domain.pojo.task.TaskFile;
import com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo;
import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo;
import com.ruoyi.shop.mapper.task.ShopTaskMapper;
import com.ruoyi.shop.mapper.task.ShopTaskRecordMapper;
import com.ruoyi.shop.service.task.ShopTaskRecordService;
import com.ruoyi.shop.service.task.TaskFileService;
@@ -42,12 +39,11 @@
    /**
     * 平台分页获取平台跟进任务
     * @param page
     * @return
     */
    @Override
    public List<MgtShopTaskRecordPageVo> pageMgtShopFollow(Page page, MgtShopTaskPageDto mgtShopTaskPageDto){
        List<MgtShopTaskRecordPageVo> mgtShopTaskRecordPageVoList = shopTaskRecordMapper.pageMgtShopFollow(page, mgtShopTaskPageDto);
    public List<MgtShopTaskRecordPageVo> pageMgtShopFollow(MgtShopTaskPageDto mgtShopTaskPageDto){
        List<MgtShopTaskRecordPageVo> mgtShopTaskRecordPageVoList = shopTaskRecordMapper.pageMgtShopFollow(mgtShopTaskPageDto);
        if(mgtShopTaskRecordPageVoList!=null&&!mgtShopTaskRecordPageVoList.isEmpty()){
            Long followId;
            List<TaskFile> taskFileList;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java
@@ -15,6 +15,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.time.LocalDate;
import java.util.Date;
/**
@@ -52,10 +54,11 @@
        shopTask.setDelFlag(0);
        shopTask.setShopId(mgtFollowShopTaskDto.getShopId());
        shopTask.setFollowType(mgtFollowShopTaskDto.getFollowType());
        shopTask.setNextFollowDate(DateUtils.getDate());
        shopTask.setNextFollowDate(DateUtils.toDate(LocalDate.now()));
        shopTask.setTaskTitle(mgtFollowShopTaskDto.getNextTaskTitle());
        shopTask.setEmergencyState(mgtFollowShopTaskDto.getEmergencyState());
        shopTask.setCreateTime(new Date());
        shopTask.setTaskDate(DateUtils.toDate(LocalDate.now()));
        this.saveOrUpdate(shopTask);
        //创建任务记录
        ShopTaskRecord shopTaskRecord = new ShopTaskRecord();
@@ -89,10 +92,15 @@
        shopNextTask.setDelFlag(0);
        shopNextTask.setShopId(mgtFollowShopTaskDto.getShopId());
        shopNextTask.setFollowType(mgtFollowShopTaskDto.getFollowType());
        shopNextTask.setNextFollowDate(mgtFollowShopTaskDto.getNextTaskDate());
        shopNextTask.setTaskTitle(mgtFollowShopTaskDto.getNextTaskTitle());
        shopNextTask.setEmergencyState(mgtFollowShopTaskDto.getEmergencyState());
        shopNextTask.setCreateTime(new Date());
        try {
            shopNextTask.setNextFollowDate(DateUtils.parseDate(mgtFollowShopTaskDto.getNextTaskDate(),"yyyy-MM-dd"));
            shopNextTask.setTaskDate(DateUtils.parseDate(mgtFollowShopTaskDto.getNextTaskDate(),"yyyy-MM-dd"));
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        this.saveOrUpdate(shopNextTask);
    }
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/AgencyTaskRecordService.java
@@ -7,9 +7,7 @@
import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto;
import com.ruoyi.shop.domain.pojo.task.AgencyTaskRecord;
import com.ruoyi.shop.domain.vo.MerAgencyTaskRecordPageVo;
import com.ruoyi.shop.domain.vo.MerMemberTaskRecordPageVo;
import com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo;
import com.ruoyi.shop.domain.vo.MgtMemberFollowPageVo;
import java.util.List;
@@ -34,8 +32,7 @@
    /**
     * 平台分页获取代理商跟进任务
     * @param page
     * @return
     */
    List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(Page page, MgtShopTaskPageDto mgtShopTaskPageDto);
    List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(MgtShopTaskPageDto mgtShopTaskPageDto);
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskRecordService.java
@@ -29,9 +29,11 @@
    List<MerMemberTaskRecordPageVo> pageMerMemberTaskRecord(Page page, MerMemberTaskPageDto merMemberTaskPageDto);
    /**
     * 平台分页获取会员跟进任务
     * @param page
     * @return
     * @description  平台分页获取会员跟进任务
     * @author  jqs
     * @date    2023/6/16 15:48
     * @param mgtMemberTaskPageDto
     * @return  List<MgtMemberFollowPageVo>
     */
    List<MgtMemberFollowPageVo> pageMgtMemberFollow(Page page, MgtMemberTaskPageDto mgtMemberTaskPageDto);
    List<MgtMemberFollowPageVo> pageMgtMemberFollow(MgtMemberTaskPageDto mgtMemberTaskPageDto);
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskRecordService.java
@@ -1,9 +1,8 @@
package com.ruoyi.shop.service.task;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto;
import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo;
import java.util.List;
@@ -21,8 +20,7 @@
    /**
     * 平台分页获取平台跟进任务
     * @param page
     * @return
     */
    List<MgtShopTaskRecordPageVo> pageMgtShopFollow(Page page, MgtShopTaskPageDto mgtShopTaskPageDto);
    List<MgtShopTaskRecordPageVo> pageMgtShopFollow(MgtShopTaskPageDto mgtShopTaskPageDto);
}
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskRecordMapper.xml
@@ -43,7 +43,7 @@
        INNER JOIN t_agency_task_record tmtr ON tmtr.task_id = tmt.task_id
        INNER JOIN t_shop ts ON ts.shop_id = tmt.shop_id
        INNER JOIN t_shop_file tsf ON tsf.shop_id = ts.shop_id AND tsf.del_flag = 0 AND tsf.file_type = 1
        WHERE tmt.del_flag = 0 AND tmt.agency_id = #{param.shopId}
        WHERE tmt.del_flag = 0 AND tmt.agency_id = #{param.shopId} AND tmt.task_date = #{param.taskDate}
        ORDER BY tmt.task_date DESC
    </select>
</mapper>
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskRecordMapper.xml
@@ -108,7 +108,7 @@
        INNER JOIN t_member_task_record tmtr ON tmtr.task_id = tmt.task_id
        INNER JOIN t_shop ts ON ts.shop_id = tmt.shop_id
        INNER JOIN t_shop_file tsf ON tsf.shop_id = ts.shop_id AND tsf.del_flag = 0 AND tsf.file_type = 1
        WHERE tmt.del_flag = 0 AND tmt.user_id = #{param.memberUserId}
        WHERE tmt.del_flag = 0 AND tmt.user_id = #{param.memberUserId} AND tmr.task_date =  #{param.taskDate}
        ORDER BY tmt.task_date DESC
    </select>
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml
@@ -14,7 +14,7 @@
        tmtr.call_phone callPhone
        FROM t_shop_task tmt
        INNER JOIN t_shop_task_record tmtr ON tmtr.task_id = tmt.task_id
        WHERE tmt.del_flag = 0 AND tmt.shop_id = #{param.shopId}
        WHERE tmt.del_flag = 0 AND tmt.shop_id = #{param.shopId} AND tmt.task_date = #{param.taskDate}
        ORDER BY tmtr.create_time DESC
    </select>