jiangqs
2023-06-16 ae41759bafec1c2a1e8858fcdcda4272ed4eb84c
联调bug和订单管理
46个文件已修改
1个文件已删除
9个文件已添加
1753 ■■■■ 已修改文件
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 46 ●●●● 补丁 | 查看 | 原始文档 | 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 325 ●●●●● 补丁 | 查看 | 原始文档 | 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();
        if(merMemberPageDto.getActivenessId()!=null){
        //处理活跃度筛选
        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()));
                        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;
@@ -201,6 +199,7 @@
    /**
     * 创建订单
     *
     * @param appPlaceOrderDto
     * @return
     */
@@ -390,6 +389,7 @@
    /**
     * 分页获取用户订单
     *
     * @param page
     * @param appUserOrderPageDto
     * @return
@@ -427,7 +427,6 @@
    /**
     *
     * @param appBaseGetDto
     * @return
     */
@@ -435,7 +434,7 @@
    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());
@@ -462,6 +461,7 @@
    /**
     * 取消订单
     *
     * @param orderId
     */
    @Override
@@ -477,6 +477,7 @@
    /**
     * 获取用户订单统计
     *
     * @param userId
     * @return
     */
@@ -496,6 +497,7 @@
    /**
     * 获取B端首页统计
     *
     * @param merHomeShopTotalVo
     * @return
     */
@@ -517,6 +519,7 @@
    /**
     * 核销订单
     *
     * @param orderId
     * @return
     */
@@ -524,7 +527,7 @@
    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,6 +551,7 @@
    /**
     * 确认核销订单
     *
     * @param merVerifyOrderDto
     * @return
     */
@@ -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;
        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,6 +623,7 @@
    /**
     * 收银未结清订单列表
     *
     * @param page
     * @param merMemberNoClearOrderDto
     * @return
@@ -634,12 +645,14 @@
    /**
     * 结清订单
     *
     * @param merCloseOrderDto
     */
    @Override
    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,11 +660,13 @@
    /**
     * 创建新订单
     *
     * @param merNewOrderDto
     */
    @Override
    public void createNewOrder(MerNewOrderDto merNewOrderDto){
        Long userId = merNewOrderDto.getBuyUserId();
        Date nowTime = new Date();
        //如果非指定用户判断是否需要通过手机号创建新用户
        if(userId==null){
            String name = merNewOrderDto.getName();
@@ -812,21 +827,23 @@
        }
        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){
            consumerGoods = new ConsumerGoods();
            goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData();
            consumerGoodsId = IdUtils.simpleUUID();
            consumerGoods.setConsumerGoodsId(consumerGoodsId);
            consumerGoods.setDelFlag(0);
@@ -841,7 +858,10 @@
            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();
@@ -858,7 +878,6 @@
    /**
     *
     * @param merOrderPageDto
     * @return
     */
@@ -907,7 +926,6 @@
    }
    /**
     *
     * @param page
     * @param merMemberNoClearOrderDto
     * @return
@@ -929,6 +947,7 @@
    /**
     * 获取用户订单统计
     *
     * @param mgtMemberOrderTotalDto
     * @return
     */
@@ -940,22 +959,294 @@
    /**
     * 分页获取用户订单列表
     *
     * @param page
     * @param mgtMemberOrderPageDto
     * @return
     */
    @Override
    public List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto){
        // 通过orderMapper获取MgtMemberOrderPageVoList
        List<MgtMemberOrderPageVo> mgtMemberOrderPageVoList = orderMapper.pageMgtMemberOrder(page, mgtMemberOrderPageDto);
        // 如果MgtMemberOrderPageVoList不为空
        if(mgtMemberOrderPageVoList!=null&&!mgtMemberOrderPageVoList.isEmpty()){
            Long shopId;
            Shop shop;
            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>