bug
jiangqs
2023-09-11 3adbcc42d5f84c3c83d220543189361add81e04d
bug
33个文件已修改
5个文件已添加
773 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/DelayTask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/FileRecord.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/pom.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/MinioConfig.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FastDfsSysFileServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/OBSUploadUtils.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/logback.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/account/ProfitSharingService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/account/ProfitSharingServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 270 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopProportionPageDto.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/scheduler/ShopScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/test/java/com/ruioyi/shop/shopTest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/FileRecordMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/FileRecordService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/FileRecordServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/FileRecordMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/test/java/com/ruoyi/system/systemTest.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -117,4 +117,8 @@
    String BIRTHDAYCARD_NO_GIFT = "请先配置礼物再开启";
    String SYSTEM_FAILED = "系统正忙,请稍后再试";
    String SHOP_NO_VERIFY = "商户暂无核销权限";
    String SHOP_NO_ACTIVITY = "商户没有参与活动";
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/DelayTask.java
@@ -32,7 +32,7 @@
     * 延时任务id
     */
    @TableId(value = "task_id", type = IdType.AUTO)
    private Integer taskId;
    private Long taskId;
    /**
     * 删除标记
     */
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/FileRecord.java
New file
@@ -0,0 +1,73 @@
package com.ruoyi.system.api.domain.poji.config;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
 *
 * </p>
 *
 * @author jqs
 * @since 2023-09-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_file_record")
public class FileRecord extends Model<FileRecord> {
    private static final long serialVersionUID = 1L;
    /**
     * 文件id
     */
    @TableId(value = "file_id", type = IdType.AUTO)
    private Long fileId;
    /**
     * 文件名
     */
    @TableField("file_name")
    private String fileName;
    /**
     * 文件路径
     */
    @TableField("file_path")
    private String filePath;
    /**
     * 上传类型1.本地2.OSS3.
     */
    @TableField("upload_type")
    private Integer uploadType;
    /**
     * 上传时间
     */
    @TableField("upload_time")
    private Date uploadTime;
    /**
     * 文件大小
     */
    @TableField("file_size")
    private Long fileSize;
    /**
     * 文件类型
     */
    @TableField("file_type")
    private String fileType;
    @Override
    protected Serializable pkVal() {
        return this.fileId;
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java
@@ -4,14 +4,11 @@
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.dto.MgtClassNumDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByDept;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.api.domain.poji.config.SysClassification;
import com.ruoyi.system.api.domain.poji.config.*;
import com.ruoyi.system.api.domain.poji.sys.SysStaff;
import com.ruoyi.system.api.domain.vo.AppOtherConfigGetVo;
import com.ruoyi.system.api.domain.vo.MgtSysSimpleUserVo;
import com.ruoyi.system.api.service.RemoteConfigService;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
@@ -91,6 +88,11 @@
                return R.fail("通过id获取员工列表失败:" + throwable.getMessage());
            }
            @Override
            public R createFileRecord(FileRecord fileRecord) {
                return R.fail("创建文件上传记录失败:" + throwable.getMessage());
            }
            @Override
            public R<List<SysTag>> listSysTag(Integer tagType) {
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java
@@ -5,10 +5,7 @@
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.dto.MgtClassNumDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByDept;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.api.domain.poji.config.SysClassification;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.domain.poji.config.*;
import com.ruoyi.system.api.domain.poji.sys.SysStaff;
import com.ruoyi.system.api.domain.vo.AppOtherConfigGetVo;
import com.ruoyi.system.api.domain.vo.MgtSysSimpleUserVo;
@@ -148,4 +145,14 @@
     */
    @PostMapping("/config/listSysStaffByIds")
    public R<List<SysStaff>> listSysStaffByIds(@RequestBody List<Long> userIdList);
    /**
     * @description  创建文件上传记录
     * @author  jqs
     * @date    2023/9/11 11:56
     * @param fileRecord
     * @return  R
     */
    @PostMapping("/config/createFileRecord")
    public R createFileRecord(@RequestBody FileRecord fileRecord);
}
ruoyi-modules/ruoyi-file/pom.xml
@@ -42,17 +42,17 @@
        </dependency>
        
        <!-- FastDFS -->
        <dependency>
        <!--<dependency>
            <groupId>com.github.tobato</groupId>
            <artifactId>fastdfs-client</artifactId>
        </dependency>
        </dependency>-->
        
        <!-- Minio -->
        <dependency>
        <!--<dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>${minio.version}</version>
        </dependency>
        </dependency>-->
        
        <!-- RuoYi Api System -->
        <dependency>
@@ -60,6 +60,11 @@
            <artifactId>ruoyi-api-system</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common-security</artifactId>
        </dependency>
        
        <!-- RuoYi Common Swagger -->
        <dependency>
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/RuoYiFileApplication.java
@@ -1,5 +1,7 @@
package com.ruoyi.file;
import com.ruoyi.common.security.annotation.EnableCustomConfig;
import com.ruoyi.common.security.annotation.EnableRyFeignClients;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@@ -10,7 +12,9 @@
 * 
 * @author jqs
 */
@EnableCustomConfig
@EnableCustomSwagger2
@EnableRyFeignClients
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })
public class RuoYiFileApplication
{
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/MinioConfig.java
@@ -1,37 +1,32 @@
package com.ruoyi.file.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import io.minio.MinioClient;
/**
 * Minio 配置信息
 *
 * @author jqs
 */
@Configuration
/*@Configuration
@ConfigurationProperties(prefix = "minio")
public class MinioConfig
{
    /**
    *//**
     * 服务地址
     */
     *//*
    private String url;
    /**
    *//**
     * 用户名
     */
     *//*
    private String accessKey;
    /**
    *//**
     * 密码
     */
     *//*
    private String secretKey;
    /**
    *//**
     * 存储桶名称
     */
     *//*
    private String bucketName;
    public String getUrl()
@@ -79,4 +74,4 @@
    {
        return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();
    }
}
}*/
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java
@@ -4,7 +4,9 @@
import com.ruoyi.common.core.utils.file.FileUtils;
import com.ruoyi.file.service.ISysFileService;
import com.ruoyi.file.utils.OBSUploadUtils;
import com.ruoyi.system.api.domain.poji.config.FileRecord;
import com.ruoyi.system.api.domain.poji.sys.SysFile;
import com.ruoyi.system.api.service.RemoteConfigService;
import com.wechat.pay.contrib.apache.httpclient.WechatPayHttpClientBuilder;
import com.wechat.pay.contrib.apache.httpclient.WechatPayUploadHttpPost;
import com.wechat.pay.contrib.apache.httpclient.auth.AutoUpdateCertificatesVerifier;
@@ -20,17 +22,18 @@
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.net.URI;
import java.security.PrivateKey;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -52,8 +55,11 @@
    private final static String API_V3_KEY = "J8v9JDHKJYDHW9bdk30o2bdjy6z9mn1A";
    @Autowired
    @Resource
    private ISysFileService sysFileService;
    @Resource
    private RemoteConfigService remoteConfigService;
    /**
     * 文件上传请求
@@ -64,10 +70,22 @@
        try
        {
            // 上传并返回访问地址
            String fileName = file.getOriginalFilename();
            String prefix = fileName.substring(fileName.lastIndexOf("."));
            long fileSize = file.getSize();
            String url = sysFileService.uploadFile(file);
            SysFile sysFile = new SysFile();
            sysFile.setName(FileUtils.getName(url));
            sysFile.setUrl(url);
            //创建上传记录
            FileRecord fileRecord = new FileRecord();
            fileRecord.setFileName(fileName);
            fileRecord.setFilePath(url);
            fileRecord.setUploadType(2);
            fileRecord.setUploadTime(new Date());
            fileRecord.setFileSize(fileSize);
            fileRecord.setFileType(prefix);
            remoteConfigService.createFileRecord(fileRecord);
            return R.ok(sysFile);
        }
        catch (Exception e)
@@ -85,9 +103,20 @@
    {
        try
        {
            //
            // 上传并返回访问地址
            String fileName = file.getOriginalFilename();
            String prefix = fileName.substring(fileName.lastIndexOf("."));
            long fileSize = file.getSize();
            String url = OBSUploadUtils.uploadFile(file);
            //创建上传记录
            FileRecord fileRecord = new FileRecord();
            fileRecord.setFileName(fileName);
            fileRecord.setFilePath(url);
            fileRecord.setUploadType(2);
            fileRecord.setUploadTime(new Date());
            fileRecord.setFileSize(fileSize);
            fileRecord.setFileType(prefix);
            remoteConfigService.createFileRecord(fileRecord);
            return R.ok(url);
        }
        catch (Exception e)
@@ -100,11 +129,27 @@
    @PostMapping("batchUploadOSS")
    public R<List<String>> batchUploadOSS(@RequestPart("file") MultipartFile[] files) {
        List<String> urls = new ArrayList<>();
        String fileName;
        String prefix;
        long fileSize;
        FileRecord fileRecord;
        for (MultipartFile file : files) {
            try {
                fileName = file.getOriginalFilename();
                prefix = fileName.substring(fileName.lastIndexOf("."));
                fileSize = file.getSize();
                // 上传并返回访问地址
                String url = OBSUploadUtils.uploadFile(file);
                urls.add(url);
                //创建上传记录
                fileRecord = new FileRecord();
                fileRecord.setFileName(fileName);
                fileRecord.setFilePath(url);
                fileRecord.setUploadType(2);
                fileRecord.setUploadTime(new Date());
                fileRecord.setFileSize(fileSize);
                fileRecord.setFileType(prefix);
                remoteConfigService.createFileRecord(fileRecord);
            } catch (Exception e) {
                log.error("上传文件失败", e);
                return R.fail(e.getMessage());
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FastDfsSysFileServiceImpl.java
@@ -1,39 +1,29 @@
package com.ruoyi.file.service;
import java.io.InputStream;
import com.alibaba.nacos.common.utils.IoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.github.tobato.fastdfs.domain.fdfs.StorePath;
import com.github.tobato.fastdfs.service.FastFileStorageClient;
import com.ruoyi.common.core.utils.file.FileTypeUtils;
/**
 * FastDFS 文件存储
 *
 * @author jqs
 */
@Service
/*@Service
public class FastDfsSysFileServiceImpl implements ISysFileService
{
    /**
    *//**
     * 域名或本机访问地址
     */
     *//*
    @Value("${fdfs.domain}")
    public String domain;
    @Autowired
    private FastFileStorageClient storageClient;
    /**
    *//**
     * FastDfs文件上传接口
     *
     * @param file 上传的文件
     * @return 访问地址
     * @throws Exception
     */
     *//*
    @Override
    public String uploadFile(MultipartFile file) throws Exception
    {
@@ -43,4 +33,4 @@
        IoUtils.closeQuietly(inputStream);
        return domain + "/" + storePath.getFullPath();
    }
}
}*/
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java
@@ -1,21 +1,11 @@
package com.ruoyi.file.service;
import java.io.InputStream;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.alibaba.nacos.common.utils.IoUtils;
import com.ruoyi.file.config.MinioConfig;
import com.ruoyi.file.utils.FileUploadUtils;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
/**
 * Minio 文件存储
 *
 * @author jqs
 */
@Service
/*@Service
public class MinioSysFileServiceImpl implements ISysFileService
{
    @Autowired
@@ -24,13 +14,13 @@
    @Autowired
    private MinioClient client;
    /**
    *//**
     * Minio文件上传接口
     *
     * @param file 上传的文件
     * @return 访问地址
     * @throws Exception
     */
     *//*
    @Override
    public String uploadFile(MultipartFile file) throws Exception
    {
@@ -46,4 +36,4 @@
        IoUtils.closeQuietly(inputStream);
        return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
    }
}
}*/
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/OBSUploadUtils.java
@@ -26,6 +26,8 @@
 */
public class OBSUploadUtils {
    public static void main(String[] args) throws Exception {
        String fileUrl = null;
        File qrCodeFile = new File("/home/image/qrcode.png");
ruoyi-modules/ruoyi-goods/src/main/resources/logback.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 日志存放路径 -->
    <property name="log.path" value="logs/ruoyi-order" />
    <property name="log.path" value="logs/ruoyi-goods" />
   <!-- 日志输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java
@@ -36,7 +36,7 @@
    /**
     * 每小时优惠券定时发送
     */
    @Scheduled(cron="0 */1 * * * ?")
    @Scheduled(cron="0 0 */1 * * ?")
    private void timingSendCoupon(){
        if(schedulerUtils.getSchedulerRun()) {
            log.info("----------------优惠券定时发放任务开始执行-------------");
@@ -62,7 +62,7 @@
     * @param 
     * @return  void
     */
    @Scheduled(cron="3 0 0 * * ?")
    @Scheduled(cron="10 0 0 * * ?")
    private void timinginitIntegralFlag(){
        if(schedulerUtils.getSchedulerRun()) {
            log.info("----------------定时更新用户每日任务标记开始执行----------------");
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java
@@ -86,7 +86,7 @@
        }
        // 获取查询结果
        BirthdayCard birthdayCardOld = this.getOne(queryWrapper,false);
        // 如果查询结果不为空,则进行更新操作
        // 如果查询结果不为空,则进行更新为历史记录
        if (birthdayCardOld!=null) {
            // 设置删除标志为1
            birthdayCardOld.setDelFlag(1);
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java
@@ -171,8 +171,8 @@
    @GetMapping("/queryBill")
    public R<ProfitSharingResult> queryBill(String transactionId,String outOrderNo) throws WxPayException {
        ProfitSharingResult result = orderService.queryBill(transactionId,outOrderNo);
    public R<ProfitSharingResult> queryBill(String orderId) throws WxPayException {
        ProfitSharingResult result = orderService.queryBill(orderId);
        return R.ok(result);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
@@ -80,15 +80,6 @@
        Long userId = loginUser.getUserid();
        appPlaceOrderDto.setUserId(userId);
        appPlaceOrderDto.setSpbillCreateIp(loginUser.getIpaddr());
        if (userId != null) {
            Member member = memberService.getMember(userId).getData();
            appPlaceOrderDto.setUserId(userId);
            if (member != null) {
                appPlaceOrderDto.setOpenid(member.getMiniOpenid());
                appPlaceOrderDto.setShopId(member.getRelationShopId());
            }
        }
        AppPlaceOrderVo appPlaceOrderVo = orderService.placeOrder(appPlaceOrderDto);
        return R.ok(appPlaceOrderVo);
    }
@@ -98,15 +89,8 @@
    public R<AppPlaceOrderVo> placeActivityOrder(@Validated @RequestBody AppPlaceActivityDto appPlaceActivityDto) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        Long userId = loginUser.getUserid();
        appPlaceActivityDto.setSpbillCreateIp(loginUser.getIpaddr());
        if (userId != null) {
            Member member = memberService.getMember(userId).getData();
            appPlaceActivityDto.setUserId(userId);
            if (member != null && member.getRelationShopId() != null) {
                appPlaceActivityDto.setOpenid(member.getMiniOpenid());
                appPlaceActivityDto.setShopId(member.getRelationShopId());
            }
        }
        appPlaceActivityDto.setSpbillCreateIp(loginUser.getIpaddr());
        AppPlaceOrderVo appPlaceOrderVo = orderService.placeActivityOrder(appPlaceActivityDto);
        return R.ok(appPlaceOrderVo);
    }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
@@ -186,9 +186,26 @@
    @TableField("change_receivable_money")
    private BigDecimal changeReceivableMoney;
    /**
     * @description  获客标记
     * @author  jqs
     * @date    2023/9/8 10:45
     * @param null
     * @return  null
     */
    @TableField("new_member_flag")
    private Integer newMemberFlag;
    /**
     * @description  未绑定标记
     * @author  jqs
     * @date    2023/9/8 10:45
     * @param null
     * @return  null
     */
    @TableField("unbinding_flag")
    private Integer unbindingFlag;
    @Override
    protected Serializable pkVal() {
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -40,7 +40,7 @@
     * @param userId
     * @return
     */
    List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, @Param("userId") Long userId);
    List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, @Param("param") MerMemberNoClearOrderDto pageMerMemberNoClearOrder);
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/account/ProfitSharingService.java
@@ -24,4 +24,13 @@
     * @param result
     */
    void saveProfitSharing(Long shopId, String orderId, BigDecimal orderMoney, ProfitSharingResult result);
    /**
     * @description  通过订单id获取
     * @author  jqs
     * @date    2023/9/8 10:34
     * @param orderId
     * @return  ProfitSharing
     */
    ProfitSharing getByOrderId(String orderId);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/account/ProfitSharingServiceImpl.java
@@ -1,11 +1,11 @@
package com.ruoyi.order.service.impl.account;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingResult;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.order.domain.pojo.account.ProfitSharing;
import com.ruoyi.order.mapper.account.ProfitSharingMapper;
import com.ruoyi.order.service.account.ProfitSharingService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@@ -51,4 +51,19 @@
        this.saveOrUpdate(profitSharing);
    }
    /**
     * @description  通过订单id获取
     * @author  jqs
     * @date    2023/9/8 10:34
     * @param orderId
     * @return  ProfitSharing
     */
    @Override
    public ProfitSharing getByOrderId(String orderId){
        LambdaQueryWrapper<ProfitSharing> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(ProfitSharing::getDelFlag,0);
        queryWrapper.eq(ProfitSharing::getOrderId,orderId);
        return this.getOne(queryWrapper,false);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1,5 +1,5 @@
package com.ruoyi.order.service.impl.order;
import com.google.common.collect.Lists;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -11,6 +11,7 @@
import com.github.binarywang.wxpay.config.WxPayConfig;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
@@ -52,7 +53,6 @@
import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
import com.ruoyi.system.api.domain.poji.member.MemberGiftRecord;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.vo.ShopProportionVo;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.*;
import com.ruoyi.system.api.service.*;
@@ -146,8 +146,6 @@
    @Resource
    private OrderRefundService orderRefundService;
    @Resource
    private RemoteMemberService memberService;
    /**
     * @description: buyGoods
@@ -517,6 +515,12 @@
    public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto) {
        // 获取用户ID
        Long userId = appPlaceOrderDto.getUserId();
        Member member = remoteMemberService.getMember(userId).getData();
        appPlaceOrderDto.setUserId(userId);
        if (member != null) {
            appPlaceOrderDto.setOpenid(member.getMiniOpenid());
            appPlaceOrderDto.setShopId(member.getRelationShopId());
        }
        // 创建下单视图对象
        AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo();
        // 创建商品列表
@@ -748,6 +752,11 @@
        order.setOrderRemark(appPlaceOrderDto.getOrderRemark());
        order.setGoodsNum(goodsNum);
        order.setCreateTime(new Date());
        if(member.getBindingFlag()==0){
            order.setUnbindingFlag(1);
        }else{
            order.setUnbindingFlag(0);
        }
        // 保存订单
        this.save(order);
        appPlaceOrderVo.setOrderId(orderId);
@@ -909,6 +918,12 @@
    @GlobalTransactional(rollbackFor = Exception.class)
    public AppPlaceOrderVo placeActivityOrder(AppPlaceActivityDto appPlaceActivityDto) {
        Long userId = appPlaceActivityDto.getUserId();
        Member member = remoteMemberService.getMember(userId).getData();
        appPlaceActivityDto.setUserId(userId);
        if (member != null && member.getRelationShopId() != null) {
            appPlaceActivityDto.setOpenid(member.getMiniOpenid());
            appPlaceActivityDto.setShopId(member.getRelationShopId());
        }
        // 创建订单对象
        AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo();
        // 定义商品订单对象
@@ -1096,8 +1111,11 @@
            order.setOrderRemark(appPlaceActivityDto.getOrderRemark());
            order.setGoodsNum(goodsNum);
            order.setCreateTime(new Date());
            if(appPlaceActivityDto.getNewMemberFlag()!=null&&appPlaceActivityDto.getNewMemberFlag()==1){
                order.setNewMemberFlag(1);
            //订单是否未绑定时下单
            if(member.getBindingFlag()==0){
                order.setUnbindingFlag(1);
            }else{
                order.setUnbindingFlag(0);
            }
            // 保存订单
            this.save(order);
@@ -1187,8 +1205,9 @@
    @Override
    public List<AppUserOrderPageVo> pageUserOrder(Page page, AppUserOrderPageDto appUserOrderPageDto) {
        Long userId = appUserOrderPageDto.getUserId();
        Member member = memberService.getMember(userId).getData();
        Member member = remoteMemberService.getMember(userId).getData();
        List<AppUserOrderPageVo> appUserOrderPageVoList = orderMapper.pageUserOrder(page, appUserOrderPageDto);
        //处理商户名称显示
        if (appUserOrderPageVoList != null && !appUserOrderPageVoList.isEmpty()) {
            Long shopId;
            String activityId;
@@ -1265,7 +1284,7 @@
        appUserOrderGetVo.setShopName(shop.getShopName());
        appUserOrderGetVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList);
        appUserOrderGetVo.setVerifyCode("1-" + orderId);
        //生成自动取消订单延时任务
        //获取订单取消时间
        Integer delayTime = 30;
        if (redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)) {
            delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME);
@@ -1286,6 +1305,9 @@
        if (order.getOrderStatus() == 0) {
            throw new ServiceException(AppErrorConstant.CANCEL_CANCEL_ORDER);
        } else if (order.getOrderStatus() == 1) {
            //删除待支付超时取消延时任务
            redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId);
            remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+orderId);
            this.autoCancelOrder(orderId);
        } else if (order.getOrderStatus() == 2) {
            // 2.待核销 -> 订单退款
@@ -1304,21 +1326,31 @@
     */
    @Override
    public AppPlaceOrderVo payOrder(String orderId){
        // 根据订单ID获取订单
        Order order = this.getById(orderId);
        // 如果订单状态不是1(待支付),抛出异常
        if(order.getOrderStatus()!=1){
            throw new ServiceException(AppErrorConstant.CANCEL_CANCEL_ORDER);
        }
        // 从缓存中获取支付信息
        String payStr = redisService.getCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+ "-"+orderId);
        // 如果支付信息为空,抛出异常
        if(StringUtils.isBlank(payStr)){
            throw new ServiceException(AppErrorConstant.CANCEL_CANCEL_ORDER);
        }
        // 默认延迟时间为30分钟
        Integer delayTime = 30;
        // 如果缓存中存在自动取消订单时间,使用缓存中的值作为延迟时间
        if (redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)) {
            delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME);
        }
        // 创建AppPlaceOrderVo对象
        AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo();
        // 根据未支付订单ID获取订单支付信息
        OrderPayment orderPayment = orderPaymentService.getByUnpaidOrderId(orderId);
        // 将支付信息拆分为数组
        String[] payArr = payStr.split("-");
        // 设置AppPlaceOrderVo对象的属性
        appPlaceOrderVo.setOrderId(order.getOrderId());
        appPlaceOrderVo.setOrderNo(order.getOrderNo());
        appPlaceOrderVo.setPayType(order.getPayType());
@@ -1333,6 +1365,7 @@
        appPlaceOrderVo.setSignType(payArr[4]);
        appPlaceOrderVo.setPaySign(payArr[5]);
        appPlaceOrderVo.setPrepayId(orderPayment.getPrepayId());
        // 返回AppPlaceOrderVo对象
        return appPlaceOrderVo;
    }
@@ -1395,24 +1428,49 @@
        if (order.getOrderStatus() != 2) {
            throw new ServiceException(AppErrorConstant.VERIFY_USED);
        }
        //判断商户是否有分账权限
        Shop shop = remoteShopService.getShop(shopId).getData();
        if(shop.getAccountFlag()!=1){
            throw new ServiceException(AppErrorConstant.SHOP_NO_VERIFY);
        }
        // 根据订单用户ID获取用户信息
        Member member = remoteMemberService.getMember(order.getUserId()).getData();
        // 根据订单ID获取订单商品列表
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
        //绑定用户判断核销商户
        //判断用户是否绑定
        if(member.getBindingFlag()==1){
            //绑定用户需直接判断商户
            //绑定用户判断核销商户
            if(order.getOrderFrom()==2&&order.getUnbindingFlag()==1){
                if (!member.getRelationShopId().equals(shopId)) {
                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                }
                //未绑定时下的活动订单只需要判断店铺是否支持
                String activityId = order.getActivityId();
                MerActivityShopDto merActivityShopDto = new MerActivityShopDto();
                merActivityShopDto.setShopId(shopId);
                merActivityShopDto.setActivityId(activityId);
                Boolean judge = remoteActivityService.judgeActivityShop(merActivityShopDto).getData();
                if(!judge){
                    throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
                }
            }else{
                //商城订单和绑定后活动订单判断核销商户和订单商户和用户关联商户是否统一
            if (!order.getShopId().equals(shopId)) {
                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
            }
                if (!member.getRelationShopId().equals(shopId)) {
                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                }
            }
        }else{
            //未绑定用户判断核销商户
            //商城订单需判断商户
            if(order.getOrderFrom()==1){
                if (!order.getShopId().equals(shopId)) {
                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                }
            }
            //未绑定用户需判断活动订单是否支持该店铺
            //未绑定用户的活动订单需判断活动订单是否支持该店铺
            if(order.getOrderFrom()==2){
                String activityId = order.getActivityId();
                MerActivityShopDto merActivityShopDto = new MerActivityShopDto();
@@ -1420,7 +1478,7 @@
                merActivityShopDto.setActivityId(activityId);
                Boolean judge = remoteActivityService.judgeActivityShop(merActivityShopDto).getData();
                if(!judge){
                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                    throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
                }
            }
            //未绑定用户需判断核销商城订单判断商品单价和优惠券
@@ -1537,9 +1595,21 @@
        List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
        //绑定用户判断核销商户
        if(member.getBindingFlag()==1){
            //绑定用户需直接判断商户
            //未绑定的活动订单只需要判断店铺是否支持
            if(order.getOrderFrom()==2&&order.getUnbindingFlag()==1){
                String activityId = order.getActivityId();
                MerActivityShopDto merActivityShopDto = new MerActivityShopDto();
                merActivityShopDto.setShopId(shopId);
                merActivityShopDto.setActivityId(activityId);
                Boolean judge = remoteActivityService.judgeActivityShop(merActivityShopDto).getData();
                if(!judge){
                    throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
                }
            }else{
                //绑定用户需直接判断商户一致
            if (!order.getShopId().equals(shopId)) {
                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                }
            }
        }else{
            //商城订单需判断商户
@@ -1556,7 +1626,7 @@
                merActivityShopDto.setActivityId(activityId);
                Boolean judge = remoteActivityService.judgeActivityShop(merActivityShopDto).getData();
                if(!judge){
                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                    throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
                }
            }
            //未绑定用户需判断核销商城订单判断商品单价和优惠券
@@ -1735,9 +1805,17 @@
            appMemberBindingDto.setShopId(order.getShopId());
            appMemberBindingDto.setUserId(order.getUserId());
            appMemberBindingDto.setBindingFlag(1);
            if(order.getOrderFrom()==1){
            appMemberBindingDto.setBindingType(1);
            remoteMemberService.updateMemberBinding(appMemberBindingDto);
            }else if(order.getOrderFrom()==2){
                appMemberBindingDto.setBindingType(2);
        }
            remoteMemberService.updateMemberBinding(appMemberBindingDto);
            order.setNewMemberFlag(1);
        }else{
            order.setNewMemberFlag(0);
        }
        this.saveOrUpdate(order);
        // 订单金额大于0时进行分账
        if (order.getOnlinePayMoney().compareTo(BigDecimal.ZERO)>0) {
            submitProfitSharing(orderId, order.getOrderNo(), order.getShopId(), order.getOnlinePayMoney(),order.getOrderFrom());
@@ -1759,6 +1837,17 @@
        return merVerifyOrderVo;
    }
    /**
     * @description  分账实现
     * @author  jqs
     * @date    2023/9/8 11:56
     * @param orderId
     * @param orderNo
     * @param shopId
     * @param orderMoney
     * @param orderFrom
     * @return  void
     */
    private void submitProfitSharing(String orderId, String orderNo, Long shopId, BigDecimal orderMoney, Integer orderFrom) {
        String sendMessage = "";
        String resultMessage = "";
@@ -1952,6 +2041,7 @@
        merVerifyMemberCouponDto.setShopId(shopId);
        remoteCouponService.sureMemberCoupon(merVerifyMemberCouponDto);
        consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
        //绑定未绑定用户
        if (member.getBindingFlag() != 1) {
            AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
            appMemberBindingDto.setBindingFlag(1);
@@ -2070,6 +2160,7 @@
        merVerifyPrizeFinalDto.setPrizeId(memberGiftRecord.getPrizeId());
        merVerifyPrizeFinalDto.setShopId(shop.getShopId());
        remoteMemberService.verifyPrize(merVerifyPrizeFinalDto);
        //绑定未绑定用户
        if (member.getBindingFlag() != 1) {
            AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
            appMemberBindingDto.setBindingFlag(1);
@@ -2094,7 +2185,7 @@
     */
    @Override
    public List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) {
        List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page, merMemberNoClearOrderDto.getMemberUserId());
        List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page, merMemberNoClearOrderDto);
        if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) {
            BigDecimal zeroBig = new BigDecimal("0.00");
            for (MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) {
@@ -2120,6 +2211,7 @@
        order.setOfflinePayMoney(order.getOfflinePayMoney().add(merCloseOrderDto.getPayMoney()));
        order.setOffPayTime(new Date());
        order.setPayMoney(order.getPayMoney().add(merCloseOrderDto.getPayMoney()));
        //支付金额大于实收金额时结清
        if (order.getPayMoney().compareTo(order.getChangeReceivableMoney()) >= 0) {
            order.setCloseFlag(1);
        } else {
@@ -2142,6 +2234,8 @@
     * @param merNewOrderDto
     */
    @Override
    @Transactional
    @GlobalTransactional(rollbackFor = Exception.class)
    public void createNewOrder(MerNewOrderDto merNewOrderDto) {
        Long userId = merNewOrderDto.getBuyUserId();
        Date nowTime = new Date();
@@ -2216,10 +2310,10 @@
        OrderGoods orderGoods;
        String orderGoodsId;
        GoodsFile goodsFile;
        BigDecimal cycleMoney = new BigDecimal("0.00");
        BigDecimal experienceMoney = new BigDecimal("0.00");
        BigDecimal serviceMoney = new BigDecimal("0.00");
        BigDecimal goodsMoney = new BigDecimal("0.00");
        //BigDecimal cycleMoney = new BigDecimal("0.00");
        //BigDecimal experienceMoney = new BigDecimal("0.00");
        //BigDecimal serviceMoney = new BigDecimal("0.00");
        //BigDecimal goodsMoney = new BigDecimal("0.00");
        List<OrderGoods> orderGoodsList = new ArrayList<>();
        ConsumerGoods consumerGoods;
        String consumerGoodsId;
@@ -2362,7 +2456,7 @@
            }
            //商户变更计算
            switch (orderGoods.getGoodsType()) {
            /*switch (orderGoods.getGoodsType()) {
                case 1:
                    cycleMoney = cycleMoney.add(orderGoods.getGoodsReceivableMoney());
                    break;
@@ -2377,7 +2471,7 @@
                    break;
                default:
                    break;
            }
            }*/
        }
        //创建订单
        Order order = new Order();
@@ -2429,6 +2523,7 @@
            appMemberBindingDto.setBindingType(3);
            remoteMemberService.updateMemberBinding(appMemberBindingDto);
            order.setNewMemberFlag(1);
            order.setUnbindingFlag(0);
        }
        //保存订单和服务
        this.save(order);
@@ -2592,8 +2687,13 @@
            BigDecimal zeroBig = new BigDecimal("0.00");
            // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中
            for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) {
                if(mgtMemberOrderPageVo.getShopId()!=null){
                    if(mgtMemberOrderPageVo.getShopId()!=null){
                shopId = mgtMemberOrderPageVo.getShopId();
                set.add(shopId.toString());
                    }
                }
            }
            // 将set中的shopId转换为逗号分隔的字符串
            String joinedString = String.join(",", set);
@@ -2606,10 +2706,15 @@
                    .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
            // 遍历MgtMemberOrderPageVoList,根据shopId获取对应的MgtSimpleShopVo并将其shopName设置到MgtMemberOrderPageVo中
            for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) {
                if(mgtMemberOrderPageVo.getShopId()!=null){
                    if(mgtMemberOrderPageVo.getShopId()!=null){
                shopId = mgtMemberOrderPageVo.getShopId();
                mgtMemberOrderPageVo.setShopName(map.get(shopId).getShopName());
                BigDecimal unPaidMoney = mgtMemberOrderPageVo.getReceivableMoney().subtract(mgtMemberOrderPageVo.getPayMoney());
                mgtMemberOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney);
                    }
                }
            }
        }
        // 返回MgtMemberOrderPageVoList
@@ -2656,7 +2761,10 @@
            BigDecimal zeroBig = new BigDecimal("0.00");
            // 遍历列表,获取店铺 ID 和用户 ID
            for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) {
                if(mgtActivityOrderPageVo.getShopId()!=null){
                shopIdSet.add(mgtActivityOrderPageVo.getShopId());
                }
                userIdSet.add(mgtActivityOrderPageVo.getUserId());
            }
            // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串
@@ -2675,7 +2783,10 @@
                    .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
            // 遍历列表,设置店铺名称、用户名称和未支付金额
            for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) {
                if(mgtActivityOrderPageVo.getShopId()!=null){
                mgtActivityOrderPageVo.setShopName(shopMap.get(mgtActivityOrderPageVo.getShopId()).getShopName());
                }
                if (userMap.get(mgtActivityOrderPageVo.getUserId()) != null) {
                    mgtActivityOrderPageVo.setNickName(userMap.get(mgtActivityOrderPageVo.getUserId()).getNickName());
                    mgtActivityOrderPageVo.setUserName(userMap.get(mgtActivityOrderPageVo.getUserId()).getRealName());
@@ -3718,6 +3829,11 @@
            return totalActivityTotalVo;
        }
        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
        if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
            if(shopIdList==null||shopIdList.isEmpty()){
                return totalActivityTotalVo;
            }
        }
        if(mgtBasePlatformDto.getShopId()!=null){
            shopIdList = new ArrayList<>();
            shopIdList.add(mgtBasePlatformDto.getShopId());
@@ -3827,26 +3943,6 @@
            totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
            totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
        }
        //日期全部时固定为5天
        if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
            mgtBasePlatformDto.setEndDate(DateUtils.getDate());
            mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
        }
        //获取订单分布
        List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalActivityTotal(mgtBasePlatformDto);
        if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
            String[] orderTotalKey = new String[MgtMapIntTotalVos.size()];
            Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()];
            BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()];
            for (int i = 0; i < MgtMapIntTotalVos.size(); i++) {
                orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey();
                orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst();
                orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond();
            }
            totalActivityTotalVo.setOrderTotalKey(orderTotalKey);
            totalActivityTotalVo.setOrderTotalValue(orderTotalValue);
            totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue);
        }
        HashSet<String> set = new HashSet<>();
        // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中
        for (Long shopId : mgtBasePlatformDto.getShopIdList()) {
@@ -3899,6 +3995,27 @@
            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData();
            mgtBasePlatformDto.setUserIdList(userIdList);
        }
        //日期全部时固定为5天
        if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
            mgtBasePlatformDto.setEndDate(DateUtils.getDate());
            mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
        }
        //获取订单分布
        List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalActivityTotal(mgtBasePlatformDto);
        if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
            String[] orderTotalKey = new String[MgtMapIntTotalVos.size()];
            Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()];
            BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()];
            for (int i = 0; i < MgtMapIntTotalVos.size(); i++) {
                orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey();
                orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst();
                orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond();
            }
            totalActivityTotalVo.setOrderTotalKey(orderTotalKey);
            totalActivityTotalVo.setOrderTotalValue(orderTotalValue);
            totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue);
        }
        //参与人数  2023-09-06 另开接口
        /*List<MgtMapIntTotalVo> joinList = orderMapper.getMgtActivityMemberTotal(mgtBasePlatformDto);
        // 将查询结果转为Map
@@ -3951,8 +4068,13 @@
    @Override
    public MgtPlTotalActivityTotalVo getPlTotalActivityJoinMemberTotal(MgtBasePlatformDto mgtBasePlatformDto) {
        //店铺活动返回空
        MgtPlTotalActivityTotalVo totalActivityTotalVo = new MgtPlTotalActivityTotalVo();
        totalActivityTotalVo.setJoinMemberTotalKey(new String[0]);
        totalActivityTotalVo.setJoinMemberTotalValue(new Integer[0]);
        totalActivityTotalVo.setGetMemberTotalKey(new String[0]);
        totalActivityTotalVo.setGetMemberTotalValue(new Integer[0]);
        if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){
            return new MgtPlTotalActivityTotalVo();
            return totalActivityTotalVo;
        }
        /*if(mgtBasePlatformDto.getActivityType()!=null&&mgtBasePlatformDto.getActivityType()!=1){
            return new MgtPlTotalActivityTotalVo();
@@ -3972,22 +4094,34 @@
                mgtBasePlatformDto.setUserIdList(userIdList);
            }
        }*/
        if(mgtBasePlatformDto.getAgeType()!=null){
            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData();
            mgtBasePlatformDto.setUserIdList(userIdList);
        }
        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
        log.info("shopIdList1-----"+shopIdList.toString());
        log.debug("shopIdList1-----"+shopIdList.toString());
        if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
            log.info("shopIdList2-----"+shopIdList.toString());
            log.debug("shopIdList2-----"+shopIdList.toString());
            if(shopIdList==null||shopIdList.isEmpty()){
                return totalActivityTotalVo;
            }
        }
        if(mgtBasePlatformDto.getShopId()!=null){
            shopIdList = new ArrayList<>();
            shopIdList.add(mgtBasePlatformDto.getShopId());
        }
        mgtBasePlatformDto.setShopIdList(shopIdList);
        MgtPlTotalActivityTotalVo totalActivityTotalVo = new MgtPlTotalActivityTotalVo();
        if(mgtBasePlatformDto.getAgeType()!=null){
            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData();
            log.info("userIdList-----"+userIdList.toString());
            log.debug("userIdList-----"+userIdList.toString());
            mgtBasePlatformDto.setUserIdList(userIdList);
        }
        //日期全部时固定为5天
        if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
            mgtBasePlatformDto.setEndDate(DateUtils.getDate());
            mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
        }
        log.info("mgtBasePlatformDto-----"+mgtBasePlatformDto.toString());
        //参与人数
        List<MgtMapIntTotalVo> joinList = orderMapper.getMgtActivityMemberTotal(mgtBasePlatformDto);
        // 将查询结果转为Map
@@ -4019,8 +4153,13 @@
    @Override
    public MgtPlTotalActivityTotalVo getPlTotalActivityGetMemberTotal(MgtBasePlatformDto mgtBasePlatformDto) {
        //店铺活动返回空
        MgtPlTotalActivityTotalVo totalActivityTotalVo = new MgtPlTotalActivityTotalVo();
        totalActivityTotalVo.setJoinMemberTotalKey(new String[0]);
        totalActivityTotalVo.setJoinMemberTotalValue(new Integer[0]);
        totalActivityTotalVo.setGetMemberTotalKey(new String[0]);
        totalActivityTotalVo.setGetMemberTotalValue(new Integer[0]);
        if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){
            return new MgtPlTotalActivityTotalVo();
            return totalActivityTotalVo;
        }
        /*if(mgtBasePlatformDto.getActivityType()!=null&&mgtBasePlatformDto.getActivityType()!=1){
            return new MgtPlTotalActivityTotalVo();
@@ -4040,17 +4179,21 @@
                mgtBasePlatformDto.setUserIdList(userIdList);
            }
        }*/
        if(mgtBasePlatformDto.getAgeType()!=null){
            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData();
            mgtBasePlatformDto.setUserIdList(userIdList);
        }
        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
        if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
            if(shopIdList==null||shopIdList.isEmpty()){
                return totalActivityTotalVo;
            }
        }
        if(mgtBasePlatformDto.getShopId()!=null){
            shopIdList = new ArrayList<>();
            shopIdList.add(mgtBasePlatformDto.getShopId());
        }
        mgtBasePlatformDto.setShopIdList(shopIdList);
        MgtPlTotalActivityTotalVo totalActivityTotalVo = new MgtPlTotalActivityTotalVo();
        if(mgtBasePlatformDto.getAgeType()!=null){
            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData();
            mgtBasePlatformDto.setUserIdList(userIdList);
        }
        //日期全部时固定为5天
        if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
            mgtBasePlatformDto.setEndDate(DateUtils.getDate());
@@ -4867,8 +5010,6 @@
            }
            activityTotalChangeDto.setUserId(order.getUserId());
            remoteActivityService.changeActivityTotal(activityTotalChangeDto);
            //活动订单进行分账
            /*ProfitSharingApplyRequest request=new ProfitSharingApplyRequest();
            request.setAppid(this.appId);
@@ -4878,7 +5019,6 @@
        }
        //修改支付记录生成支付记录
        orderPaymentService.updatePaySuccess(transaction.getOutTradeNo(), transaction.getTransactionId());
        PayRecord payRecord = new PayRecord();
        payRecord.setDelFlag(0);
        payRecord.setOrderId(orderId);
@@ -4886,6 +5026,9 @@
        payRecord.setPayTime(order.getPayTime());
        payRecord.setPayType(1);
        payRecordService.save(payRecord);
        //删除超时取消延时任务
        redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId);
        remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+orderId);
    }
    @Override
@@ -5059,6 +5202,7 @@
        // 更新会员统计信息
        remoteMemberService.changeMemberTotal(memberTotalChangeDto);
        // 如果订单来源于活动,则更新活动统计信息
        //TODO 可考虑改成定时任务统一查询后增加 减少服务器压力但会增加延后性
        if (order.getOrderFrom() == 2) {
            ActivityTotalChangeDto activityTotalChangeDto = new ActivityTotalChangeDto();
            activityTotalChangeDto.setActivityId(order.getActivityId());
@@ -5693,9 +5837,6 @@
        List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerMemberPayOrder(page, merOrderPageDto);
        if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) {
            Long userId;
            Member member;
            Integer orderFrom;
            String orderFromDesc;
            BigDecimal zeroBig = new BigDecimal("0.00");
            StringJoiner userIdSj = new StringJoiner(",");
            for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) {
@@ -5774,11 +5915,14 @@
    }
    @Override
    public ProfitSharingResult queryBill(String transactionId,String outOrderNo) throws WxPayException {
    public ProfitSharingResult queryBill(String orderId) throws WxPayException {
        OrderPayment orderPayment = orderPaymentService.getByOrderId(orderId);
        ProfitSharing profitSharing = profitSharingService.getByOrderId(orderId);
        ProfitSharingQueryRequest request = new ProfitSharingQueryRequest();
        request.setSubMchid("1650744551");
        request.setTransactionId(transactionId);
        request.setOutOrderNo(outOrderNo);
        request.setTransactionId(orderPayment.getTransactionId());
        request.setOutOrderNo(profitSharing.getShareId());
        ProfitSharingResult profitSharingResult = wxService.getEcommerceService().queryProfitSharing(request);
        return profitSharingResult;
    }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -588,5 +588,5 @@
    MerMemberSimpleTotalVo getMerMemberSimpleTotalVo(MerBaseDto merBaseDto);
    ProfitSharingResult queryBill(String transactionId,String outOrderNo) throws WxPayException;
    ProfitSharingResult queryBill(String orderId) throws WxPayException;
}
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -348,7 +348,7 @@
        toc.create_time createTime,
        toc.close_flag closeFlag
        FROM t_order toc
        WHERE toc.del_flag = 0 AND toc.user_id = #{userId} AND toc.order_status = 3
        WHERE toc.del_flag = 0 AND toc.user_id = #{param.memberUserId} AND toc.order_status = 3
        <if test="param.closeFlag != null and param.closeFlag != ''">
            AND toc.close_flag = #{param.closeFlag}
        </if>
@@ -455,7 +455,7 @@
        WHEN 2 THEN "待核销"
        WHEN 3 THEN "已完成"
        END orderStatus,
        toc.shop_id shopId,
        CASE WHEN toc.unbinding_flag = 0 THEN toc.shop_id WHEN toc.unbinding_flag = 1 AND toc.order_from = 1 THEN toc.shop_id WHEN toc.order_status = 3 THEN toc.shop_id ELSE NULL END shopId,
        toc.order_money orderGoodsMoney,
        toc.discount_money discountMoney,
        toc.receivable_money receivableMoney,
@@ -475,7 +475,7 @@
            AND toc.order_status = #{param.orderStatus}
        </if>
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
            AND toc.shop_id = #{param.shopId} AND (toc.unbinding_flag = 0 OR (toc.unbinding_flag = 1 AND toc.order_from = 1) OR (toc.unbinding_flag = 1 AND toc.order_from = 2 AND toc.order_status = 3))
        </if>
        <if test="param.orderFrom != null and param.orderFrom != ''">
            AND toc.order_from = #{param.orderFrom}
@@ -524,7 +524,7 @@
            toc.receivable_money receivableMoney,
            toc.create_time createTime,
            toc.pay_money payMoney,
            toc.shop_id shopId,
            CASE WHEN toc.unbinding_flag = 0 THEN toc.shop_id WHEN toc.unbinding_flag = 1 AND toc.order_from = 1 THEN toc.shop_id WHEN toc.order_status = 3 THEN toc.shop_id ELSE NULL END shopId,
            toc.use_time verifyTime
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
@@ -536,7 +536,7 @@
            AND tog.goods_type = #{param.goodsType}
        </if>
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
            AND toc.shop_id = #{param.shopId} AND (toc.unbinding_flag = 0 OR (toc.unbinding_flag = 1 AND toc.order_from = 1) OR (toc.unbinding_flag = 1 AND toc.order_from = 2 AND toc.order_status = 3))
        </if>
        <if test="param.shopIds != null and param.shopIds != ''">
            AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) &gt; 0
@@ -705,7 +705,7 @@
        toc.receivable_money receivableMoney,
        toc.create_time createTime,
        toc.pay_money payMoney,
        toc.shop_id shopId,
        CASE WHEN toc.unbinding_flag = 0 THEN toc.shop_id WHEN toc.unbinding_flag = 1 AND toc.order_from = 1 THEN toc.shop_id WHEN toc.order_status = 3 THEN toc.shop_id ELSE NULL END shopId,
        toc.use_time verifyTime,
        CASE toc.order_from WHEN 1 THEN '小程序' WHEN 2 THEN '秒杀活动' WHEN 3 THEN '线下创建' END orderFrom,
        #{param.keyword} AS keyword
@@ -718,7 +718,7 @@
            AND tog.goods_type = #{param.goodsType}
        </if>
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
            AND toc.shop_id = #{param.shopId} AND (toc.unbinding_flag = 0 OR (toc.unbinding_flag = 1 AND toc.order_from = 1) OR (toc.unbinding_flag = 1 AND toc.order_from = 2 AND toc.order_status = 3))
        </if>
        <if test="param.shopIds != null and param.shopIds != ''">
            AND FIND_IN_SET(toc.shop_id, #{param.shopIds}) &gt; 0
@@ -893,7 +893,7 @@
        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
        WHERE toc.del_flag = 0 AND toc.order_status IN (2,3)
        WHERE toc.del_flag = 0 AND toc.order_status = 3
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
        </if>
@@ -912,7 +912,7 @@
        COUNT(CASE WHEN order_status = 3 THEN order_id ELSE NULL END) orderTotal,
        IFNULL(SUM(CASE WHEN order_status = 3 AND pay_type = 1 THEN change_receivable_money WHEN order_status = 3 AND pay_type = 2 THEN change_receivable_money + online_pay_money ELSE 0 END),0) orderMoney,
        COUNT(DISTINCT user_id) orderJoinPerson
        FROM t_order WHERE del_flag = 0 AND order_from = 2 AND order_status IN (2,3) AND shop_id = #{param.shopId}
        FROM t_order WHERE del_flag = 0 AND order_from = 2 AND order_status =3 AND shop_id = #{param.shopId}
        <if test="param.startDate!=null and param.startDate!=''">
            AND Date(create_time) &gt;= #{param.startDate}
        </if>
@@ -1001,7 +1001,7 @@
        COUNT(DISTINCT CASE WHEN tog.goods_type = 4 THEN toc.user_id ELSE NULL END) goodsPerson,
        COUNT(DISTINCT CASE WHEN tog.goods_type = 4 THEN toc.order_id ELSE NULL END) goodsNumber
        FROM t_order toc
        INNER JOIN t_order_goods tog ON toc.order_id = tog.order_id
        INNER JOIN t_order_goods tog ON toc.order_id = tog.order_id AND toc.order_status = 3
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
        </if>
@@ -1063,7 +1063,7 @@
            COUNT(DISTINCT toc.order_id) orderCount
            FROM t_order toc
            INNER JOIN t_order_goods tog ON toc.order_id = tog.order_id
            WHERE toc.del_flag = 0 AND tog.goods_type = 1
            WHERE toc.del_flag = 0 AND tog.goods_type = 1 AND toc.order_status = 3
            <if test="param.shopId != null and param.shopId != ''">
                AND toc.shop_id = #{param.shopId}
            </if>
@@ -1104,7 +1104,7 @@
        INNER JOIN (SELECT toc.user_id, toc.pay_time
        FROM t_order toc
        INNER JOIN t_order_goods tog ON toc.order_id = tog.order_id
        WHERE toc.del_flag = 0 AND tog.goods_type = 1
        WHERE toc.del_flag = 0 AND tog.goods_type = 1 AND toc.order_status = 3
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
        </if>
@@ -1221,7 +1221,7 @@
        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_status IN (2,3)
        WHERE toc.del_flag = 0 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=")">
@@ -1291,7 +1291,7 @@
        COUNT(CASE WHEN order_status = 3 THEN order_id ELSE NULL END) orderTotal,
        IFNULL(SUM(CASE WHEN order_status = 3 AND pay_type = 1 THEN change_receivable_money WHEN order_status = 3 AND pay_type = 2 THEN change_receivable_money + online_pay_money ELSE 0 END),0) orderMoney,
        COUNT(DISTINCT user_id) orderJoinPerson
        FROM t_order WHERE del_flag = 0 AND order_from = 2 AND order_status IN (2,3)
        FROM t_order 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>
@@ -1459,7 +1459,7 @@
    <select id="listPlTotalShopActivityRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo">
        SELECT
            shop_id AS mapKey,
            COUNT(order_id) AS mapValue
            COUNT(DISTINCT activity_id) AS mapValue
        FROM t_order
        WHERE del_flag = 0 AND order_from = 2 AND order_status = 3
        <if test="param.activityId!=null and param.activityId!=''">
@@ -1983,7 +1983,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.del_flag = 0  AND toc.order_from = 2 AND toc.order_status IN (2,3)
        WHERE toc.del_flag = 0  AND toc.order_from = 2 AND toc.order_status = 3
        <if test="param.activityId!=null and param.activityId!=''">
            AND toc.activity_id = #{param.activityId}
        </if>
@@ -2017,12 +2017,9 @@
        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.del_flag = 0  AND toc.order_from = 2
        <if test="param.shopId == null">
            AND toc.order_status IN (2,3) AND toc.shop_id = #{param.shopId}
        </if>
        WHERE toc.del_flag = 0  AND toc.order_from = 2 AND toc.order_status = 3
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.order_status = 3 AND toc.shop_id = #{param.shopId}
            AND toc.shop_id = #{param.shopId}
        </if>
        <if test="param.userIdList !=null and param.userIdList.size()>0">
            AND toc.user_id IN
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopProportionPageDto.java
@@ -17,5 +17,6 @@
    @ApiModelProperty(value = "商户类型1经销商2代理商")
    private Integer shopType ;
    @ApiModelProperty(value = "商户名称")
    private String shopName ;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/scheduler/ShopScheduler.java
@@ -29,7 +29,7 @@
    /**
     * 每天凌晨定时检查今日跟进任务状态
     */
    @Scheduled(cron="5 0 * * * ?")
    @Scheduled(cron="0 1 0 * * ?")
    private void timingCheckMemberCoupon(){
        if(schedulerUtils.getSchedulerRun()) {
            log.info("--------------------定时检查跟进任务状态任务开始执行--------------------");
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -454,6 +454,9 @@
        FROM t_shop ts
        INNER JOIN t_shop_proportion tsp ON ts.shop_id = tsp.shop_id AND tsp.del_flag = 0
        WHERE ts.del_flag = 0 AND ts.shop_type = #{param.shopType}
        <if test="param.shopName!=null and param.shopName!=''">
            AND ts.shop_name LIKE CONCAT('%',#{param.shopName},'%')
        </if>
    </select>
    <update id="deleteShopTag">
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml
@@ -123,7 +123,7 @@
    <update id="checkShopTaskStatus">
        UPDATE t_shop_task
        SET task_status = CASE
        WHEN task_date = CURDATE() THEN 1
        WHEN task_date = CURDATE() AND task_status = 0 THEN 1
        WHEN task_date &lt; CURDATE() AND task_status &lt; 2 THEN 3
        ELSE task_status
        END
@@ -132,7 +132,7 @@
    <update id="checkMemberTaskStatus">
        UPDATE t_member_task
        SET task_status = CASE
        WHEN task_date = CURDATE() THEN 1
        WHEN task_date = CURDATE() AND task_status = 0 THEN 1
        WHEN task_date &lt; CURDATE() AND task_status &lt; 2 THEN 3
        ELSE task_status
        END
@@ -141,7 +141,7 @@
    <update id="checkAgencyTaskStatus">
        UPDATE t_agency_task
        SET task_status = CASE
        WHEN task_date = CURDATE() THEN 1
        WHEN task_date = CURDATE() AND task_status = 0 THEN 1
        WHEN task_date &lt; CURDATE() AND task_status &lt; 2 THEN 3
        ELSE task_status
        END
ruoyi-modules/ruoyi-shop/src/test/java/com/ruioyi/shop/shopTest.java
@@ -11,7 +11,7 @@
/**
 * @ClassName systemTest
 * @Description TODO
 * @Description
 * @Author jqs
 * @Date 2023/6/7 10:57
 * @Version 1.0
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java
@@ -44,7 +44,7 @@
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);
        dataSourceConfig.setTypeConvert(new MySqlTypeConvert());
        dataSourceConfig.setUrl("jdbc:mysql://47.109.78.184:10010/hrt_shop?tinyInt1isBit=false");
        dataSourceConfig.setUrl("jdbc:mysql://47.109.78.184:10010/hrt_sys?tinyInt1isBit=false");
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("hrt123456");
@@ -53,7 +53,7 @@
        // 包名配置
        PackageConfig packageConfig = new PackageConfig();
        // 父包和子包名分开处理
        packageConfig.setParent("com.ruoyi.shop");
        packageConfig.setParent("com.ruoyi.system");
        packageConfig.setController("app");
        packageConfig.setEntity("domain.pojo");
        packageConfig.setMapper("mapper");
@@ -74,7 +74,7 @@
        strategy.setControllerMappingHyphenStyle(true);
        //表和前缀处理
        String[] table = {
                "t_shop_customer"
                "t_file_record"
        };
        strategy.setInclude(table);
        String[] tablePre = new String[]{"t_"};
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java
@@ -4,10 +4,7 @@
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.dto.MgtClassNumDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByDept;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.api.domain.poji.config.SysClassification;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.domain.poji.config.*;
import com.ruoyi.system.api.domain.poji.sys.SysStaff;
import com.ruoyi.system.api.domain.vo.AppOtherConfigGetVo;
import com.ruoyi.system.api.domain.vo.MgtSysSimpleUserVo;
@@ -55,6 +52,9 @@
    @Resource
    private SysStaffService sysStaffService;
    @Resource
    private FileRecordService fileRecordService;
    /**
@@ -237,4 +237,18 @@
        List<SysStaff> sysStaffList = sysStaffService.listSysStaffByIds(userIdList);
        return R.ok(sysStaffList);
    }
    /**
     * @description  创建文件上传记录
     * @author  jqs
     * @date    2023/9/11 11:56
     * @param fileRecord
     * @return  R
     */
    @PostMapping("/createFileRecord")
    public R createFileRecord(@RequestBody FileRecord fileRecord)
    {
        fileRecordService.createFileRecord(fileRecord);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/FileRecordMapper.java
New file
@@ -0,0 +1,16 @@
package com.ruoyi.system.mapper.config;
import com.ruoyi.system.api.domain.poji.config.FileRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author jqs
 * @since 2023-09-11
 */
public interface FileRecordMapper extends BaseMapper<FileRecord> {
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/FileRecordService.java
New file
@@ -0,0 +1,24 @@
package com.ruoyi.system.service.config;
import com.ruoyi.system.api.domain.poji.config.FileRecord;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author jqs
 * @since 2023-09-11
 */
public interface FileRecordService extends IService<FileRecord> {
    /**
     * @description  创建文件上传记录
     * @author  jqs
     * @date    2023/9/11 11:53
     * @param fileRecord
     * @return  void
     */
    void createFileRecord(FileRecord fileRecord);
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/FileRecordServiceImpl.java
New file
@@ -0,0 +1,31 @@
package com.ruoyi.system.service.impl.config;
import com.ruoyi.system.api.domain.poji.config.FileRecord;
import com.ruoyi.system.mapper.config.FileRecordMapper;
import com.ruoyi.system.service.config.FileRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author jqs
 * @since 2023-09-11
 */
@Service
public class FileRecordServiceImpl extends ServiceImpl<FileRecordMapper, FileRecord> implements FileRecordService {
    /**
     * @description  创建文件上传记录
     * @author  jqs
     * @date    2023/9/11 11:53
     * @param fileRecord
     * @return  void
     */
    @Override
    public void createFileRecord(FileRecord fileRecord){
        this.saveOrUpdate(fileRecord);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
@@ -200,7 +200,8 @@
        mgtShopStaffEditDto.setStaffAvatar(sysStaff.getStaffAvatar());
        remoteShopService.editMgtShopStaff(mgtShopStaffEditDto);
        //如果wxUserId和wxDeptId不为空 同步到企业微信
        if(mgtStaffEditDto.getWxUserId()!=null&&sysDept.getWxDeptId()!=null){
        if(sysStaff.getWxUserId()!=null&&sysDept.getWxDeptId()!=null){
            log.debug("同步员工到企业微信:"+mgtStaffEditDto.getStaffName());
            MgtWxCPStaffDto mgtWxCPStaffDto = new MgtWxCPStaffDto();
            mgtWxCPStaffDto.setWxDeptId(sysDept.getWxDeptId());
            mgtWxCPStaffDto.setWxUserId(mgtStaffEditDto.getWxUserId());
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java
@@ -141,7 +141,7 @@
    private WxCpUser getWxCpUser(String wxUserId){
        WxCpUser wxCpUser = null;
        try {
            wxCpUser = adWxCpService.getUserService().getById(wxUserId);
            wxCpUser = wxCpService.getUserService().getById(wxUserId);
        } catch (WxErrorException e) {
            throw new RuntimeException(e);
        }
ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/FileRecordMapper.xml
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.config.FileRecordMapper">
</mapper>
ruoyi-modules/ruoyi-system/src/test/java/com/ruoyi/system/systemTest.java
@@ -1,7 +1,10 @@
package com.ruoyi.system;
import com.ruoyi.system.domain.dto.MgtStaffEditDto;
import com.ruoyi.system.service.staff.SysStaffService;
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;
@@ -22,4 +25,21 @@
    @Resource
    private SysWxCpService sysWxCpService;
    @Resource
    private SysStaffService sysStaffService;
    @Test
    public void main() {
        MgtStaffEditDto mgtStaffEditDto = new MgtStaffEditDto();
        mgtStaffEditDto.setDeptId(2051L);
        mgtStaffEditDto.setSysUserId(146L);
        mgtStaffEditDto.setStaffName("江秋实1号");
        mgtStaffEditDto.setStaffMobile("13882237106");
        mgtStaffEditDto.setStaffPost("开发");
        mgtStaffEditDto.setHeadFlag("1");
        mgtStaffEditDto.setUserId(146L);
        sysStaffService.mgtStaffEdit(mgtStaffEditDto);
    }
}