bug
jiangqs
2023-08-29 1695aa136a89421b1cff75d672888e81d2a24d9a
bug
33个文件已修改
16个文件已删除
2个文件已添加
1415 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/sys/SysOperLog.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerMemberSimpleTotalVo.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtUserTaskMsgVo.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ShoppingCartMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopAllOrderTotal.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/pom.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/AgencyTaskServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/Certificate.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/CertificateUtils.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/SignUtils.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WxShopUtils.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/AccountInfo.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/BusinessLicenseInfo.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/CertificateItem.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/ContactInfo.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/EncryptedCertificateItem.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/IdCardInfo.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/IdDocInfo.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/OrganizationCertInfo.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/PlainCertificateItem.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/SalesSceneInfo.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/SubmitInfo.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/UboInfo.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpConfiguration.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/scheduler/SystemScheduler.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysWxCpService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/test/java/com/ruoyi/system/systemTest.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/sys/SysOperLog.java
@@ -5,7 +5,9 @@
import com.ruoyi.common.core.annotation.Excel.ColumnType;
import com.ruoyi.common.core.web.domain.BaseEntity;
import java.util.Arrays;
import java.util.Date;
import java.util.StringJoiner;
/**
 * 操作日志记录表 oper_log
@@ -207,6 +209,7 @@
        this.operParam = operParam;
    }
    public String getJsonResult()
    {
        return jsonResult;
@@ -264,4 +267,28 @@
    public void setOperContent(String operContent) {
        this.operContent = operContent;
    }
    @Override
    public String toString() {
        return new StringJoiner(", ", SysOperLog.class.getSimpleName() + "[", "]")
                .add("operId=" + operId)
                .add("title='" + title + "'")
                .add("businessType=" + businessType)
                .add("businessTypes=" + Arrays.toString(businessTypes))
                .add("method='" + method + "'")
                .add("requestMethod='" + requestMethod + "'")
                .add("operatorType=" + operatorType)
                .add("operName='" + operName + "'")
                .add("deptName='" + deptName + "'")
                .add("operUrl='" + operUrl + "'")
                .add("operIp='" + operIp + "'")
                .add("operParam='" + operParam + "'")
                .add("jsonResult='" + jsonResult + "'")
                .add("status=" + status)
                .add("errorMsg='" + errorMsg + "'")
                .add("operTime=" + operTime)
                .add("costTime=" + costTime)
                .add("operContent='" + operContent + "'")
                .toString();
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerMemberSimpleTotalVo.java
New file
@@ -0,0 +1,30 @@
package com.ruoyi.system.api.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @ClassName MerMemberTotalVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/8/29 16:55
 * @Version 1.0
 */
@Data
public class MerMemberSimpleTotalVo {
    @ApiModelProperty(value = "次数剩余")
    private Integer surpNumber;
    @ApiModelProperty(value = "消费次数")
    private Integer userNumber;
    @ApiModelProperty(value = "消费总额")
    private BigDecimal payMoney;
    @ApiModelProperty(value = "待支付金额")
    private BigDecimal unpaidMoney;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtUserTaskMsgVo.java
New file
@@ -0,0 +1,23 @@
package com.ruoyi.system.api.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName MgtUserTaskMsgVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/8/29 14:20
 * @Version 1.0
 */
@Data
public class MgtUserTaskMsgVo {
    @ApiModelProperty(value="userId")
    private Long userId;
    @ApiModelProperty(value="任务名")
    private String taskTitle;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java
@@ -80,6 +80,11 @@
            public R<AgencyTotalVo> getAgencyTotalVo(List<Long> shopIdList) {
                return R.fail("获取区域统计失败:" + throwable.getMessage());
            }
            @Override
            public R<MerMemberSimpleTotalVo> getMerMemberSimpleTotalVo(MerBaseDto merBaseDto) {
                return R.fail("获取商户会员订单统计失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java
@@ -125,6 +125,11 @@
            public R<List<Long>> listShopIdByCityCode(List<String> cityCodes) {
                return R.fail("获取商户列表失败:" + throwable.getMessage());
            }
            @Override
            public R<List<MgtUserTaskMsgVo>> getTaskMsgList() {
                return R.fail("获取任务通知列表失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java
@@ -97,4 +97,15 @@
     */
    @PostMapping("/order/getAgencyTotalVo")
    public R<AgencyTotalVo> getAgencyTotalVo(@RequestBody List<Long> shopIdList);
    /**
     * @description  获取用户统计
     * @author  jqs
     * @date    2023/8/29 17:38
     * @param merBaseDto
     * @return  R<MerMemberSimpleTotalVo>
     */
    @PostMapping("/order/getMerMemberSimpleTotalVo")
    public R<MerMemberSimpleTotalVo> getMerMemberSimpleTotalVo(@RequestBody MerBaseDto merBaseDto);
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java
@@ -165,4 +165,14 @@
    @PostMapping("/shop/listShopIdByCityCode")
    R<List<Long>> listShopIdByCityCode(@RequestBody List<String> cityCodes);
    /**
     * @description  获取今日任务通知
     * @author  jqs
     * @date    2023/8/29 15:05
     * @param
     * @return  R<List<MgtUserTaskMsgVo>>
     */
    @PostMapping("/shop/getTaskMsgList")
    R<List<MgtUserTaskMsgVo>> getTaskMsgList();
}
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
@@ -207,6 +207,10 @@
        {
            throw new ServiceException(userResult.getMsg());
        }
        if (401 == userResult.getCode())
        {
            throw new ServiceException("商户已被冻结,请联系管理员",401);
        }
        QwH5LoginVo userInfo = userResult.getData();
        SysUser user = userInfo.getSysUser();
        String username = user.getUserName();
ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java
@@ -1,6 +1,8 @@
package com.ruoyi.common.log.aspect;
import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.core.utils.ServletUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.ip.IpUtils;
@@ -28,6 +30,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
/**
@@ -174,7 +177,43 @@
                && (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod)))
        {
            String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames);
            operLog.setOperParam(StringUtils.substring(params, 0, 2000));
            if(operLog.getOperContent().equals("编辑商户")){
                // 将JSON字符串转换为Map
                ObjectMapper objectMapper = new ObjectMapper();
                Map<String, String> jsonMap = new HashMap<>();
                try {
                    jsonMap = objectMapper.readValue(params, HashMap.class);
                } catch (JsonProcessingException e) {
                    e.printStackTrace();
                }
                // 从Map中删除指定的元素
                jsonMap.remove("shopDetail");
                // 将Map转换回JSON字符串
                try {
                    params = objectMapper.writeValueAsString(jsonMap);
                } catch (JsonProcessingException e) {
                    e.printStackTrace();
                }
            }
            if(operLog.getOperContent().equals("编辑商品")){
                // 将JSON字符串转换为Map
                ObjectMapper objectMapper = new ObjectMapper();
                Map<String, String> jsonMap = new HashMap<>();
                try {
                    jsonMap = objectMapper.readValue(params, HashMap.class);
                } catch (JsonProcessingException e) {
                    e.printStackTrace();
                }
                // 从Map中删除指定的元素
                jsonMap.remove("goodsDetail");
                // 将Map转换回JSON字符串
                try {
                    params = objectMapper.writeValueAsString(jsonMap);
                } catch (JsonProcessingException e) {
                    e.printStackTrace();
                }
            }
            operLog.setOperParam(StringUtils.substring(params, 0, 5000));
        }
        else
        {
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java
@@ -20,62 +20,62 @@
@Data
public class MgtGoodsPageVo {
    @Excel(name = "商品图片", width = 30, sort = 1)
    @ApiModelProperty(value = "商品id")
    private String goodsId;
    @Excel(name = "商品名称", width = 30, sort = 1)
    @Excel(name = "商品名称", width = 30, sort = 3)
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
    @Excel(name = "商品简介", width = 30, sort = 2)
    @Excel(name = "商品简介", width = 30, sort = 4)
    @ApiModelProperty(value = "商品简介")
    private String goodsIntroduction;
    @Excel(name = "商品分类", width = 30, sort = 3)
    @Excel(name = "所属分类", width = 30, sort = 6)
    @ApiModelProperty(value = "商品分类")
    private String goodsClass;
    @Excel(name = "商品标签", width = 30, sort = 5)
    @Excel(name = "标签", width = 30, sort = 7)
    @ApiModelProperty(value = "商品标签")
    private String goodsTags;
    @Excel(name = "商品图片", width = 30)
    @Excel(name = "商品图片", width = 30, sort = 2)
    @ApiModelProperty(value = "商品图片")
    private String goodsPicture;
    @Excel(name = "商品类型", width = 30, sort = 4)
    @Excel(name = "商品类型", width = 30, sort = 6)
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
    private String goodsType;
    @Excel(name = "商品建议售价", width = 30, sort = 6)
    @Excel(name = "建议售价", width = 30, sort = 8)
    @ApiModelProperty(value = "商品建议售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal suggestSalesPrice;;
    @Excel(name = "最低售价", width = 30, sort = 7)
    @Excel(name = "最低售价", width = 30, sort = 9)
    @ApiModelProperty(value = "最低售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal mininumPrice;;
    @Excel(name = "销量", width = 30, sort = 8)
    @Excel(name = "销量", width = 30, sort = 10)
    @ApiModelProperty(value = "销量")
    private Integer buyNumCount;
    @Excel(name = "销售额", width = 30, sort = 9)
    @Excel(name = "销售额", width = 30, sort = 11)
    @ApiModelProperty(value = "销售额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal buyMoneyTotal;
    @Excel(name = "是否推荐", width = 30, sort = 10)
    @Excel(name = "是否推荐", width = 30, sort = 12)
    @ApiModelProperty(value = "是否推荐")
    private String recommendFlag;
    @Excel(name = "商品状态", width = 30, sort = 11)
    @Excel(name = "状态", width = 30, sort = 13)
    @ApiModelProperty(value = "商品状态")
    private String goodsStatus;
    @Excel(name = "创建时间", width = 30, dateFormat  = "yyyy-MM-dd HH:mm:ss", sort = 12)
    @Excel(name = "创建时间", width = 30, dateFormat  = "yyyy-MM-dd HH:mm:ss", sort = 14)
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml
@@ -50,6 +50,7 @@
        <if test="param.createEndTime!=null and param.createEndTime != ''">
            AND Date(ta.create_time) &lt;= #{param.createEndTime}
        </if>
        ORDER BY ta.create_time DESC
    </select>
    <select id="pageMgtActivityRecord" resultType="com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo">
@@ -74,6 +75,7 @@
        <if test="param.orderFlag!=null and param.orderFlag == 0">
            AND order_id IS NULL
        </if>
        ORDER BY create_time DESC
    </select>
    <select id="pagePlatformMerActivity" resultType="com.ruoyi.goods.domain.vo.MerActivityPageVo">
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ShoppingCartMapper.xml
@@ -96,7 +96,7 @@
        LEFT JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
        LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{shopId}
        WHERE tsc.del_flag = 0 AND tg.del_flag = 0 AND tsc.shop_id = #{shopId} AND tsc.user_id = #{userId} AND tg.del_flag = 0 AND tg.goods_status = 1
        ORDER BY tg.create_time DESC
        ORDER BY tsc.create_time DESC
    </select>
    <update id="deleteByUserIdAndGoodsId">
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -20,6 +20,7 @@
import com.ruoyi.member.domain.pojo.member.IntegralRecord;
import com.ruoyi.member.domain.pojo.member.MemberArchive;
import com.ruoyi.member.domain.pojo.member.MemberTotal;
import com.ruoyi.member.domain.vo.MerMemberTotalVo;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.member.mapper.member.MemberMapper;
import com.ruoyi.member.service.member.IntegralRecordService;
@@ -476,16 +477,16 @@
        MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
        // 设置MerMemberInfoVo对象的属性值
        merMemberInfoVo.setSurpNumber(memberTotal.getUseableServiceCount());
        merMemberInfoVo.setUserNumber(memberTotal.getTotalPayCount());
        merMemberInfoVo.setPayMoney(memberTotal.getTotalPayMoney());
        // 创建MerBaseDto对象
        MerBaseDto merBaseDto = new MerBaseDto();
        // 设置MerBaseDto对象的属性值
        merBaseDto.setShopId(merBaseGetDto.getShopId());
        merBaseDto.setUserId(userId);
        // 获取未支付订单金额
        BigDecimal unpaidMoney = remoteOrderService.getMemberUnpaidOrder(merBaseDto).getData();
        merMemberInfoVo.setUnpaidMoney(unpaidMoney);
        MerMemberSimpleTotalVo memberSimpleTotalVo = remoteOrderService.getMerMemberSimpleTotalVo(merBaseDto).getData();
        merMemberInfoVo.setUserNumber(memberSimpleTotalVo.getUserNumber());
        merMemberInfoVo.setPayMoney(memberSimpleTotalVo.getPayMoney());
        merMemberInfoVo.setUnpaidMoney(memberSimpleTotalVo.getUnpaidMoney());
        // 获取最近的会员任务
        MemberTaskSimpleVo memberTaskSimpleVo = remoteShopService.getLastMemberTask(userId).getData();
        if (memberTaskSimpleVo != null) {
@@ -1366,12 +1367,13 @@
            mgtShopIdByCodeDto.setShopCityCode(mgtBasePlatformDto.getShopCityCode());
            mgtShopIdByCodeDto.setShopAreaCode(mgtBasePlatformDto.getShopAreaCode());
            MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData();
            List<Long> list = new ArrayList<>();
            if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) {
                List<Long> list = Arrays.stream(mgtShopIdByCodeVo.getShopIds().split(","))
                list = Arrays.stream(mgtShopIdByCodeVo.getShopIds().split(","))
                        .map(Long::valueOf)
                        .collect(Collectors.toList());
                mgtBasePlatformDto.setShopIdList(list);
            }
            mgtBasePlatformDto.setShopIdList(list);
        }
        //获取基础统计
        MgtPlTotalMemberTotalVo plTotalMemberTotalVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto);
@@ -1821,11 +1823,13 @@
        }
        MerMemberRecommendTotalVo memberRecommendTotalVo = new MerMemberRecommendTotalVo();
        //获取会员推荐排名
        List<MgtMapIntTotalVo> recommendList = memberMapper.getMerMemberRecommendRank(merTotalDto);
        /*List<MgtMapIntTotalVo> recommendList = memberMapper.getMerMemberRecommendRank(merTotalDto);
        if (recommendList != null && recommendList.size() > 0) {
            recommendList = listRemoveNull(recommendList);
            memberRecommendTotalVo.setRecommendList(recommendList);
        }
        }*/
        List<MgtMapIntTotalVo> recommendList = new ArrayList<>();
        memberRecommendTotalVo.setRecommendList(recommendList);
        return memberRecommendTotalVo;
    }
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -151,7 +151,7 @@
    <select id="pageMerMember" resultType="com.ruoyi.member.domain.vo.MerMemberPageVo">
        SELECT
        tm.user_id userId,
        tm.nick_name nickName,
        tm.real_name nickName,
        tm.avatar avatar,
        CASE tm.gender WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '未知' END gender,
        tm.mobile mobile,
@@ -681,7 +681,7 @@
        FROM t_member tm
        INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id
        WHERE tm.del_flag = 0 AND binding_flag = 1
        <if test="param.shopIdList != null and shopIdList.size() > 0">
        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
            AND tm.relation_shop_id IN
            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                #{item}
@@ -991,7 +991,7 @@
            </foreach>
        </if>
        <if test="param.ageType !=null and param.ageType == 1">
            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 1 AND 20
            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 0 AND 20
        </if>
        <if test="param.ageType !=null and param.ageType == 2">
            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 31
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java
@@ -62,6 +62,7 @@
        mgtBulletinBoardVo.setSalesTotal(mgtBulletinBoardVoOrder.getSalesTotal());
        mgtBulletinBoardVo.setUnUseOrderTotal(mgtBulletinBoardVoOrder.getUnUseOrderTotal());
        mgtBulletinBoardVo.setActivityOrderTotal(mgtBulletinBoardVoOrder.getActivityOrderTotal());
        mgtBulletinBoardVo.setActivityUserTotal(mgtBulletinBoardVoOrder.getActivityUserTotal());
        return R.ok(mgtBulletinBoardVo);
    }
@@ -155,4 +156,18 @@
        AgencyTotalVo agencyTotalVo= orderService.getAgencyTotalVo(shopIdList);
        return R.ok(agencyTotalVo);
    }
    /**
     * @description  获取用户统计
     * @author  jqs
     * @date    2023/8/29 17:38
     * @param merBaseDto
     * @return  R<MerMemberSimpleTotalVo>
     */
    @PostMapping("/getMerMemberSimpleTotalVo")
    public R<MerMemberSimpleTotalVo> getMerMemberSimpleTotalVo(@RequestBody MerBaseDto merBaseDto){
        MerMemberSimpleTotalVo memberSimpleTotalVo= orderService.getMerMemberSimpleTotalVo(merBaseDto);
        return R.ok(memberSimpleTotalVo);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
@@ -3,7 +3,6 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.domain.dto.*;
import com.ruoyi.order.domain.vo.*;
@@ -12,7 +11,6 @@
import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.model.LoginUser;
import com.ruoyi.system.api.service.RemoteConfigService;
import com.ruoyi.system.api.service.RemoteMemberService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -43,11 +41,6 @@
    @Resource
    private OrderService orderService;
    @Resource
    private RedisService redisService;
    @Resource
    private RemoteConfigService remoteConfigService;
    @RequestMapping(value = "/buyGoods", method = RequestMethod.POST)
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopAllOrderTotal.java
@@ -24,6 +24,10 @@
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal totalOrderMoney;
    @ApiModelProperty(value = "总订金")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal totalDepositMoney;
    @ApiModelProperty(value = "实收金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal totalReceiveMoney;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -703,4 +703,14 @@
     * @return  AgencyTotalVo
     */
    AgencyTotalVo getAgencyTotalVo(@Param("shopIdList")List<Long> shopIdList);
    /**
     * @description  商户端会员订单统计
     * @author  jqs
     * @date    2023/8/29 17:39
     * @param merBaseDto
     * @return  MerMemberSimpleTotalVo
     */
    MerMemberSimpleTotalVo getMerMemberSimpleTotalVo(@Param("param") MerBaseDto merBaseDto);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -5494,4 +5494,16 @@
        AgencyTotalVo agencyTotalVo = orderMapper.getAgencyTotalVo(shopIdList);
        return agencyTotalVo;
    }
    /**
     * @description  商户端会员订单统计
     * @author  jqs
     * @date    2023/8/29 17:39
     * @param merBaseDto
     * @return  MerMemberSimpleTotalVo
     */
    @Override
    public MerMemberSimpleTotalVo getMerMemberSimpleTotalVo(MerBaseDto merBaseDto){
        return orderMapper.getMerMemberSimpleTotalVo(merBaseDto);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -579,4 +579,13 @@
     * @return
     */
    Order getByOutTradeNo(String outTradeNo);
    /**
     * @description  商户端会员订单统计
     * @author  jqs
     * @date    2023/8/29 17:39
     * @param merBaseDto
     * @return  MerMemberSimpleTotalVo
     */
    MerMemberSimpleTotalVo getMerMemberSimpleTotalVo(MerBaseDto merBaseDto);
}
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -459,8 +459,8 @@
        toc.order_from orderFrom,
        CASE toc.order_from
        WHEN 1 THEN "商城订单"
        WHEN 2 THEN "秒杀活动订单"
        WHEN 3 THEN "线下创建订单"
        WHEN 2 THEN "秒杀订单"
        WHEN 3 THEN "线下订单"
        END orderFromDesc,
        #{param.keyword} AS keyword
        FROM t_order toc
@@ -728,18 +728,18 @@
    <select id="boardOrderTotal" resultType="com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo">
        SELECT
            IFNULL(SUM(CASE WHEN order_status = 3 THEN pay_money ELSE 0 END),0) salesTotal,
            IFNULL(SUM(CASE WHEN order_status = 3 THEN change_receivable_money ELSE 0 END),0) salesTotal,
            IFNULL(SUM(CASE WHEN order_status = 2 THEN 1 ELSE 0 END),0) UnUseOrderTotal,
            IFNULL(SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END),0) activityOrderTotal
        FROM t_order
        WHERE del_flag = 0
        WHERE del_flag = 0 AND order_status IN (2,3)
    </select>
    <select id="activityUserTotal" resultType="java.lang.Integer">
        SELECT
            COUNT(DISTINCT user_id)
        FROM t_order
        WHERE del_flag = 0 AND order_from = 2
        WHERE del_flag = 0 AND order_from = 2 AND order_status IN (2,3)
    </select>
    <select id="getTotalOrderTotalOrderFrom" resultType="com.ruoyi.order.domain.vo.MgtTotalOrderTotalVo">
@@ -820,7 +820,7 @@
            COUNT(order_id) AS mapValueFirst,
            IFNULL(SUM(CASE WHEN pay_type = 1 THEN change_receivable_money WHEN pay_type = 2 THEN change_receivable_money + online_pay_money ELSE 0 END),0) AS mapValueSecond
        FROM t_order
        WHERE del_flag = 0 AND order_status IN (2,3)
        WHERE del_flag = 0 AND order_status = 3
        <if test="param.shopId != null and param.shopId != ''">
            AND shop_id = #{param.shopId}
        </if>
@@ -878,8 +878,8 @@
        SELECT
        CASE toc.order_from
        WHEN 1 THEN "商城订单"
        WHEN 2 THEN "秒杀活动订单"
        WHEN 3 THEN "线下创建订单"
        WHEN 2 THEN "秒杀订单"
        WHEN 3 THEN "线下订单"
        END mapKey,
        IFNULL(SUM(CASE WHEN toc.pay_type = 1 THEN toc.change_receivable_money WHEN toc.pay_type = 2 THEN toc.change_receivable_money + toc.online_pay_money ELSE 0 END),0) mapValue
        FROM t_order toc
@@ -939,9 +939,9 @@
        SELECT
        DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey,
        COUNT(DISTINCT order_id) AS mapValueFirst,
        SUM(order_money) AS mapValueSecond
        IFNULL(SUM(CASE WHEN pay_type = 1 THEN change_receivable_money WHEN pay_type = 2 THEN change_receivable_money + online_pay_money ELSE 0 END),0) AS mapValueSecond
        FROM t_order
        WHERE del_flag = 0 AND order_from = 2 AND order_status IN (2,3)
        WHERE del_flag = 0 AND order_from = 2 AND order_status = 3
        <if test="param.shopId != null and param.shopId != ''">
            AND shop_id = #{param.shopId}
        </if>
@@ -1192,7 +1192,7 @@
        SELECT
        DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey,
        COUNT(order_id) AS mapValueFirst,
        IFNULL(SUM(receivable_money),0) AS mapValueSecond
        IFNULL(SUM(CASE WHEN pay_type = 1 THEN change_receivable_money WHEN pay_type = 2 THEN change_receivable_money + online_pay_money ELSE 0 END),0) AS mapValueSecond
        FROM
        t_order
        WHERE del_flag = 0 AND order_status = 3
@@ -1263,8 +1263,8 @@
        SELECT
        CASE toc.order_from
        WHEN 1 THEN "商城订单"
        WHEN 2 THEN "秒杀活动订单"
        WHEN 3 THEN "线下创建订单"
        WHEN 2 THEN "秒杀订单"
        WHEN 3 THEN "线下订单"
        END mapKey,
        IFNULL(SUM(toc.order_money),0) mapValue
        FROM t_order toc
@@ -1316,7 +1316,7 @@
        COUNT(DISTINCT CASE WHEN tog.goods_type = 3 THEN toc.user_id ELSE NULL END) servicePerson
        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 AND toc.order_status IN (2,3) AND toc.new_member_flag = 1
        WHERE toc.del_flag = 0 AND toc.order_from = 2 AND toc.order_status = 3 AND toc.new_member_flag = 1
        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
            AND toc.shop_id IN
            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -1652,8 +1652,8 @@
        SELECT
        CASE toc.order_from
        WHEN 1 THEN "商城订单"
        WHEN 2 THEN "秒杀活动订单"
        WHEN 3 THEN "线下创建订单"
        WHEN 2 THEN "秒杀订单"
        WHEN 3 THEN "线下订单"
        END mapKey,
        IFNULL(SUM(tog.goods_receivable_money),0) mapValue
        FROM t_order toc
@@ -1733,8 +1733,8 @@
        toc.user_id userId,
        toc.order_money orderMoney,
        toc.discount_money discountMoney,
        toc.receivable_money receivableMoney,
        toc.pay_money payMoney,
        CASE toc.pay_type WHEN 1 THEN toc.order_money-toc.coupon_money WHEN 2 THEN toc.order_money-toc.coupon_money-toc.online_pay_money END receivableMoney,
        toc.change_receivable_money payMoney,
        CASE toc.order_from WHEN 1 THEN '小程序' WHEN 2 THEN CONCAT('秒杀活动(',toc.activity_name,')') WHEN 3 THEN '线下创建' END orderFrom,
        CASE toc.order_status
        WHEN 0 THEN "已取消"
@@ -1743,7 +1743,7 @@
        WHEN 3 THEN "已完成"
        END orderStatus
        FROM t_order toc
        WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3)
        WHERE toc.del_flag = 0
        <if test="param.orderFrom != null">
            AND toc.order_from = #{param.orderFrom}
        </if>
@@ -1836,7 +1836,7 @@
        SUM(tog.goods_receivable_money) AS mapValueSecond
        FROM t_order toc
        INNER JOIN t_order_goods tog ON toc.order_id = tog.order_id
        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status IN (2,3)
        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status = 3
        <if test="param.goodsType !=null and param.goodsType != ''">
            AND tog.goods_type = #{param.goodsType}
        </if>
@@ -1867,7 +1867,7 @@
            COUNT(DISTINCT toc.user_id) AS mapValue
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        WHERE toc.order_from = 2 AND toc.new_member_flag = 1 AND toc.order_status IN (2,3) AND toc.shop_id = #{param.shopId}
        WHERE toc.order_from = 2 AND toc.new_member_flag = 1 AND toc.order_status = 3 AND toc.shop_id = #{param.shopId}
        <if test="param.activityId !=null and param.activityId != ''">
            AND toc.activity_id = #{param.activityId}
        </if>
@@ -1889,7 +1889,7 @@
        COUNT(DISTINCT toc.user_id) AS mapValue
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        WHERE toc.order_from = 2 AND toc.new_member_flag = 1 AND toc.order_status IN (2,3)
        WHERE toc.order_from = 2 AND toc.new_member_flag = 1 AND toc.order_status = 3
        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
            AND toc.shop_id IN
            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -1920,9 +1920,6 @@
        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status IN (2,3)
        <if test="param.activityId !=null and param.activityId != ''">
            AND toc.activity_id = #{param.activityId}
        </if>
        <if test="param.goodsType !=null and param.goodsType != ''">
            AND tog.goods_type = #{param.goodsType}
        </if>
        <if test="param.userIdList !=null and param.userIdList.size()>0">
            AND toc.user_id IN
@@ -2004,9 +2001,10 @@
        SELECT
        COUNT(DISTINCT toc.order_id) orderTotal,
        IFNULL(SUM(toc.order_money),0) totalOrderMoney,
        IFNULL(SUM(toc.change_receivable_money),0) totalReceiveMoney
        IFNULL(SUM(toc.change_receivable_money),0) totalReceiveMoney,
        IFNULL(SUM(CASE WHEN toc.pay_type = 2 THEN toc.online_pay_money ELSE 0 END),0) totalDepositMoney
        FROM t_order toc
        WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3)
        WHERE toc.del_flag = 0
        <if test="param.orderFrom != null">
            AND toc.order_from = #{param.orderFrom}
        </if>
@@ -2098,4 +2096,12 @@
        </foreach>
    </select>
    <select id="getMerMemberSimpleTotalVo" resultType="com.ruoyi.system.api.domain.vo.MerMemberSimpleTotalVo">
        SELECT
            COUNT(DISTINCT toc.order_id) userNumber,
            IFNULL(SUM(toc.change_receivable_money),0) payMoney,
            IFNULL(SUM(CASE WHEN toc.close_flag = 0 THEN toc.change_receivable_money - (CASE toc.pay_type WHEN 1 THEN toc.pay_money WHEN 2 THEN IFNULL(toc.offline_pay_money,0) END) ELSE 0 END),0) unpaidMoney
        FROM t_order toc
        WHERE toc.del_flag = 0 AND toc.user_id = #{param.userId} AND toc.shop_id = #{param.shopId} AND toc.order_status IN (2,3)
    </select>
</mapper>
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml
@@ -104,7 +104,7 @@
        tsrd.consumer_goods_name consumerGoodsName,
        tusr.service_type serviceType,
        tusr.create_time createTime,
        tsrd.service_num serviceNum,
        1 serviceNum,
        tsrd.surp_num surpNum
        FROM t_user_service_record tusr
        LEFT JOIN t_service_record_detail tsrd ON tsrd.record_id = tusr.id
ruoyi-modules/ruoyi-shop/pom.xml
@@ -108,6 +108,8 @@
            <artifactId>weixin-java-pay</artifactId>
            <version>4.5.0</version>
        </dependency>
        <!-- 微信支付 -->
        <dependency>
            <groupId>com.github.wechatpay-apiv3</groupId>
            <artifactId>wechatpay-apache-httpclient</artifactId>
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
@@ -94,7 +94,7 @@
        if(shop.getFrozenFlag()==1){
            String userKey = SecurityUtils.getUserKey();
            redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey);
            throw new ServiceException("商户已被冻结",401);
            throw new ServiceException("商户已被冻结,请联系管理员",401);
        }
        // 构造登录返回信息
        QwH5LoginVo qwH5LoginVo = new QwH5LoginVo();
@@ -360,4 +360,17 @@
        return R.ok();
    }
    /**
     * @description  获取今日任务通知列表
     * @author  jqs
     * @date    2023/8/29 15:03
     * @param
     * @return  R<List<MgtUserTaskMsgVo>>
     */
    @PostMapping("/getTaskMsgList")
    R<List<MgtUserTaskMsgVo>> getTaskMsgList(){
        List<MgtUserTaskMsgVo> userTaskMsgVoList = shopService.getTaskMsgList();
        return R.ok(userTaskMsgVoList);
    }
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
@@ -10,6 +10,7 @@
import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo;
import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import com.ruoyi.system.api.domain.vo.MgtUserTaskMsgVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -247,4 +248,13 @@
     * @return  List<Long>
     */
    List<Long> listShopIdByCityCode(List<String> cityCodes);
    /**
     * @description
     * @author  jqs
     * @date    2023/8/29 14:36
     * @param
     * @return  List<MgtUserTaskMsgVo>
     */
    List<MgtUserTaskMsgVo> getTaskMsgList();
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -859,7 +859,7 @@
        if(shop.getFrozenFlag()==1){
            String userKey = SecurityUtils.getUserKey();
            redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey);
            throw new ServiceException("商户已被冻结",401);
            throw new ServiceException("商户已被冻结,请联系管理员",401);
        }
        merHomeShopTotalVo.setShopType(shop.getShopType());
        MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
@@ -1607,4 +1607,19 @@
            throw new RuntimeException(e);
        }
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/8/29 14:33
     * @param
     * @return  List<MgtUserTaskMsgVo>
     */
    @Override
    public List<MgtUserTaskMsgVo> getTaskMsgList(){
        return shopMapper.getTaskMsgList();
    }
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/AgencyTaskServiceImpl.java
@@ -184,6 +184,7 @@
            if(taskFileList!=null&&!taskFileList.isEmpty()){
                taskFileService.saveBatch(taskFileList);
            }
            agencyTaskRecordService.saveOrUpdate(agencyTaskRecord);
        }
        //创建新任务
        if(StringUtils.isNotBlank(merFollowAgencyTaskDto.getNextTaskDate())){
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java
@@ -199,6 +199,7 @@
            if(taskFileList!=null&&!taskFileList.isEmpty()){
                taskFileService.saveBatch(taskFileList);
            }
        }
        // 判断下一个任务日期是否为空,并处理
        if (StringUtils.isNotBlank(merFollowMemberTaskDto.getNextTaskDate())) {
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
@@ -12,10 +12,7 @@
import com.ruoyi.system.api.domain.dto.MgtShopIdByCodeDto;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo;
import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo;
import com.ruoyi.system.api.domain.vo.MgtShopIdByCodeVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import com.ruoyi.system.api.domain.vo.*;
import java.util.List;
@@ -379,4 +376,13 @@
     * @return  void
     */
    ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request);
    /**
     * @description
     * @author  jqs
     * @date    2023/8/29 14:36
     * @param
     * @return  List<MgtUserTaskMsgVo>
     */
    List<MgtUserTaskMsgVo> getTaskMsgList();
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/Certificate.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/CertificateUtils.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/SignUtils.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WxShopUtils.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/AccountInfo.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/BusinessLicenseInfo.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/CertificateItem.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/ContactInfo.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/EncryptedCertificateItem.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/IdCardInfo.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/IdDocInfo.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/OrganizationCertInfo.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/PlainCertificateItem.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/SalesSceneInfo.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/SubmitInfo.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/dto/UboInfo.java
File was deleted
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -926,4 +926,14 @@
            #{id}
        </foreach>
    </select>
    <select id="getTaskMsgList" resultType="com.ruoyi.system.api.domain.vo.MgtUserTaskMsgVo">
        SELECT
            ts.belong_user_id userId,
            CONCAT('[', GROUP_CONCAT(tst.task_title SEPARATOR '],['), ']') taskTitles
        FROM t_shop_task tst
        INNER JOIN t_shop ts ON tst.shop_id = ts.shop_id
        WHERE tst.del_flag = 0 AND tst.task_status = 1 AND tst.task_date = CURRENT_DATE
        GROUP BY userId
    </select>
</mapper>
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpConfiguration.java
@@ -41,6 +41,7 @@
        return wxService;
    }
    @Bean
    public WxCryptUtil wxCryptUtil() {
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/scheduler/SystemScheduler.java
@@ -32,4 +32,14 @@
        }
    }
    /**
     * 定时同步企业微信部门
     */
    @Scheduled(cron="0 35 8 * * ?")
    private void timingSendTaskMessage(){
        if(schedulerUtils.getSchedulerRun()) {
            log.info("定时发送通知任务任务开始执行");
            sysWxCpService.sendTaskMessage();
        }
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java
@@ -1,6 +1,11 @@
package com.ruoyi.system.service.impl.staff;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.system.api.domain.poji.sys.SysDept;
import com.ruoyi.system.api.domain.vo.MgtUserTaskMsgVo;
import com.ruoyi.system.api.service.RemoteShopService;
import com.ruoyi.system.domain.pojo.staff.SysStaff;
import com.ruoyi.system.service.staff.SysStaffService;
import com.ruoyi.system.service.staff.SysWxCpService;
import com.ruoyi.system.service.sys.ISysDeptService;
import lombok.extern.log4j.Log4j2;
@@ -8,6 +13,8 @@
import me.chanjar.weixin.cp.api.WxCpDepartmentService;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.WxCpDepart;
import me.chanjar.weixin.cp.bean.message.WxCpMessage;
import me.chanjar.weixin.cp.bean.message.WxCpMessageSendResult;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -28,7 +35,13 @@
    private WxCpService wxCpService;
    @Resource
    private RemoteShopService remoteShopService;
    @Resource
    private ISysDeptService  sysDeptService;
    @Resource
    private SysStaffService sysStaffService;
    /**
     * @description
     * @author  jqs
@@ -94,4 +107,35 @@
            throw new RuntimeException(e);
        }
    }
    /**
     * @description  企业微信消息推送
     * @author  jqs
     * @date    2023/8/29 11:05
     * @return  void
     */
    @Override
    public void sendTaskMessage(){
        List<MgtUserTaskMsgVo> userTaskMsgVoList = remoteShopService.getTaskMsgList().getData();
        WxCpMessage message;
        SysStaff sysStaff;
        if(userTaskMsgVoList!=null&&!userTaskMsgVoList.isEmpty()){
            for(MgtUserTaskMsgVo mgtUserTaskMsgVo : userTaskMsgVoList){
                sysStaff = sysStaffService.getByUserId(mgtUserTaskMsgVo.getUserId());
                if(sysStaff!=null&& StringUtils.isNotBlank(sysStaff.getWxUserId())){
                    message = new WxCpMessage();
                    message.setAgentId(1000024);
                    message.setToUser(sysStaff.getWxUserId());
                    message.setMsgType("text");
                    message.setContent(mgtUserTaskMsgVo.getTaskTitle()+"今日需要任务跟进,请注意!");
                    try {
                        WxCpMessageSendResult result = wxCpService.getMessageService().send(message);
                        System.out.println(result);
                    } catch (WxErrorException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysWxCpService.java
@@ -26,4 +26,12 @@
     * @return  void
     */
    void syncDepartment();
    /**
     * @description  企业微信消息推送
     * @author  jqs
     * @date    2023/8/29 11:05
     * @return  void
     */
    void sendTaskMessage();
}
ruoyi-modules/ruoyi-system/src/test/java/com/ruoyi/system/systemTest.java
@@ -2,7 +2,6 @@
import com.ruoyi.system.service.staff.SysWxCpService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -23,8 +22,7 @@
    @Resource
    private SysWxCpService sysWxCpService;
    @Test
    /*@Test
    public void main() {
        sysWxCpService.syncDepartment();
    }
    }*/
}