jiangqs
2023-08-03 b95715d5cdc806cbb15cc7f49c538e61f5ab5dc6
bug和二维码
18个文件已修改
2个文件已添加
338 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CodeGetDto.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteFileService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/FileController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/OBSUploadUtils.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/Activity.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityPageVo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopStaffMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopStaffServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopStaffMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/CustomConfigMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/CustomConfigMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CodeGetDto.java
New file
@@ -0,0 +1,18 @@
package com.ruoyi.system.api.domain.dto;
import lombok.Data;
/**
 * @ClassName CodeGetDto
 * @Description TODO
 * @Author jqs
 * @Date 2023/8/3 12:53
 * @Version 1.0
 */
@Data
public class CodeGetDto {
    private String url;
    private String fileName;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java
@@ -281,6 +281,9 @@
    @TableField("auth_flag")
    private Integer authFlag;
    @TableField("shop_code")
    private String shopCode;
    @Override
    protected Serializable pkVal() {
        return this.shopId;
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java
@@ -1,5 +1,6 @@
package com.ruoyi.system.api.factory;
import com.ruoyi.system.api.domain.dto.CodeGetDto;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
@@ -30,6 +31,11 @@
            {
                return R.fail("上传文件失败:" + throwable.getMessage());
            }
            @Override
            public R<String> getAppOrderTotal(CodeGetDto codeGetDto) {
                return R.fail("获取二维码失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteFileService.java
@@ -1,8 +1,10 @@
package com.ruoyi.system.api.service;
import com.ruoyi.system.api.domain.dto.CodeGetDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.common.core.constant.ServiceNameConstants;
@@ -26,4 +28,14 @@
     */
    @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public R<SysFile> upload(@RequestPart(value = "file") MultipartFile file);
    /**
     * @description  生成二维码
     * @author  jqs
     * @date    2023/8/3 12:57
     * @param codeGetDto
     * @return  R<String>
     */
    @PostMapping("/file/getCodeUrl")
    public R<String> getAppOrderTotal(@RequestBody CodeGetDto codeGetDto);
}
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/FileController.java
New file
@@ -0,0 +1,40 @@
package com.ruoyi.file.controller;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.file.service.ActivityCodeService;
import com.ruoyi.system.api.domain.dto.CodeGetDto;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * @ClassName FileController
 * @Description TODO
 * @Author jqs
 * @Date 2023/8/3 12:50
 * @Version 1.0
 */
@RestController
@RequestMapping("/file")
public class FileController {
    @Resource
    private ActivityCodeService activityCodeService;
    @PostMapping("/getCodeUrl")
    public R<String> getAppOrderTotal(@RequestBody CodeGetDto codeGetDto){
        String url = null;
        try {
            url = activityCodeService.createActivityCode(codeGetDto.getUrl(),codeGetDto.getFileName());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return R.ok(url);
    }
}
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeService.java
@@ -1,9 +1,5 @@
package com.ruoyi.file.service;
import me.chanjar.weixin.common.error.WxErrorException;
import java.io.FileNotFoundException;
/**
 * @ClassName ActivityCodeService
 * @Description TODO
@@ -16,22 +12,32 @@
    /**
     * @description  生成活动二维码
     * @description  生成二维码
     * @author  jqs
     * @date    2023/7/26 19:09
     * @param activityId
     * @return  void
     * @date    2023/8/3 12:44
     * @param url
     * @return  String
     */
    public String createActivityCode(String activityId);
    public String createActivityCode(String url, String fileName) throws Exception;
    /**
     * @description  生成活动二维码
     * @description  生成微信活动二维码
     * @author  jqs
     * @date    2023/7/26 19:09
     * @param activityId
     * @return  void
     */
    public String createActivityCode(String activityId,String backImageUrl) throws WxErrorException, FileNotFoundException;
    public String createActivityWxCode(String activityId);
    /**
     * @description  生成活动海报
     * @author  jqs
     * @date    2023/7/26 19:09
     * @param activityId
     * @return  void
     */
    public String createActivityPoster(String activityId, String backImageUrl) throws Exception;
}
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeServiceImpl.java
@@ -5,7 +5,6 @@
import cn.hutool.core.img.ImgUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import com.ruoyi.file.utils.OBSUploadUtils;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -27,6 +26,22 @@
    /**
     * @description  生成二维码
     * @author  jqs
     * @date    2023/8/3 12:44
     * @param url
     * @return  String
     */
    @Override
    public String createActivityCode(String url, String fileName) throws Exception {
        File qrCodeFile = new File("/home/image/qrcode.png");// 生成二维码
        QrCodeUtil.generate(url, 100, 100, qrCodeFile);
        InputStream codeStream = new FileInputStream(qrCodeFile);
        String fileUrl =  OBSUploadUtils.uploadInputStream(codeStream,fileName);
        return fileUrl;
    }
    /**
     * @description  生成活动二维码
     * @author  jqs
     * @date    2023/7/26 19:09
@@ -34,7 +49,7 @@
     * @return  void
     */
    @Override
    public String createActivityCode(String activityId){
    public String createActivityWxCode(String activityId){
        WxMaQrcodeService wxMaQrcodeService = wxMaService.getQrcodeService();
        String scene = activityId;
@@ -57,29 +72,28 @@
     * @return  void
     */
    @Override
    public String createActivityCode(String activityId,String backImageUrl) throws WxErrorException, FileNotFoundException {
    public String createActivityPoster(String activityId,String backImageUrl) throws Exception {
        String fileUrl = null;
        File qrCodeFile = new File("/home/image/qrcode.png");
        // 二维码内容
        String text = ""+activityId;
        String text = "https://wxapp.hhhrt.cn/mini/activity?"+activityId;
        // 生成二维码
        QrCodeUtil.generate(text, 100, 100, qrCodeFile);
        File backFile ;
        QrCodeUtil.generate(text, 200, 200, qrCodeFile);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        InputStream codeStream = new FileInputStream(qrCodeFile);
        InputStream backStream = new FileInputStream(qrCodeFile);
        backImageUrl = backImageUrl.replace("https://hongruitang.oss-cn-beijing.aliyuncs.com/","");
        InputStream backStream = OBSUploadUtils.getOSSInputStream(backImageUrl);
        // 将图片合成在一起
        ImgUtil.pressImage(
                backStream, // 主图片
                out, // 输出图片
                ImgUtil.read(codeStream).getScaledInstance(516, 516, Image.SCALE_DEFAULT), //水印图片
                ImgUtil.read(codeStream).getScaledInstance(200, 200, Image.SCALE_DEFAULT), //水印图片
                0, //x坐标修正值。 默认在中间,偏移量相对于中间偏移
                0, //y坐标修正值。 默认在中间,偏移量相对于中间偏移
                350, //y坐标修正值。 默认在中间,偏移量相对于中间偏移
                1.0f
        );
        InputStream inputStream = new ByteArrayInputStream(out.toByteArray());
        fileUrl =  OBSUploadUtils.uploadInputStream(inputStream,activityId);
        return fileUrl;
    }
}
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/OBSUploadUtils.java
@@ -1,16 +1,19 @@
package com.ruoyi.file.utils;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.InputStream;
import java.awt.*;
import java.io.*;
import java.util.Calendar;
/**
@@ -22,6 +25,31 @@
 */
public class OBSUploadUtils {
    public static void main(String[] args) throws Exception {
        String activityId = "123";
        String backImageUrl = "2023/8/3/6742e22f748349429e454c9c6ba168ee.jpg";
        String fileUrl = null;
        File qrCodeFile = new File("/home/image/qrcode.png");
        // 二维码内容
        String text = "https://wxapp.hhhrt.cn/mini/activity?"+activityId;
        // 生成二维码
        QrCodeUtil.generate(text, 100, 100, qrCodeFile);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        InputStream codeStream = new FileInputStream(qrCodeFile);
        InputStream backStream = OBSUploadUtils.getOSSInputStream(backImageUrl);
        // 将图片合成在一起
        ImgUtil.pressImage(
                backStream, // 主图片
                out, // 输出图片
                ImgUtil.read(codeStream).getScaledInstance(200, 200, Image.SCALE_DEFAULT), //水印图片
                0, //x坐标修正值。 默认在中间,偏移量相对于中间偏移
                350, //y坐标修正值。 默认在中间,偏移量相对于中间偏移
                1.0f
        );
        InputStream inputStream = new ByteArrayInputStream(out.toByteArray());
        fileUrl =  OBSUploadUtils.uploadInputStream(inputStream,activityId);
        System.out.println(fileUrl);
    }
    protected static OSS createOss(){
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
@@ -58,6 +86,55 @@
            String prefix = fileName.substring(fileName.lastIndexOf("."));
            String objectName = filePath + uuid + prefix;
            InputStream inputStream = file.getInputStream();
            // 创建PutObjectRequest对象。
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream);
            // 设置该属性可以返回response。如果不设置,则返回的response为空。
            putObjectRequest.setProcess("true");
            // 创建PutObject请求。
            result = ossClient.putObject(putObjectRequest);
            // 如果上传成功,则返回200。
            System.out.println(fileName + "上传返回" + result.getResponse().getStatusCode());
            return result.getResponse().getUri();
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
        return result.getResponse().getErrorResponseAsString();
    }
    public static String uploadInputStream (InputStream inputStream,String fileName) throws Exception {
        // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
        String bucketName = "hongruitang";
        Calendar calendar = Calendar.getInstance();
        // 获取当前年
        String year = String.valueOf(calendar.get(Calendar.YEAR));
        // 获取当前月
        String month = String.valueOf(calendar.get(Calendar.MONTH) + 1);
        // 获取当前日
        String day = String.valueOf(calendar.get(Calendar.DATE));
        String filePath = year+"/"+month+"/"+day+"/";
        String uuid = IdUtils.fastSimpleUUID();
        // 创建OSSClient实例。
        OSS ossClient = createOss();
        PutObjectResult result = null;
        try {
            System.out.println(fileName + "开始上传");
            String objectName = filePath + fileName + ".jpg";
            // 创建PutObjectRequest对象。
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream);
            // 设置该属性可以返回response。如果不设置,则返回的response为空。
@@ -134,9 +211,13 @@
        return result.getResponse().getErrorResponseAsString();
    }
    public static void getOSSFile(String key) throws Exception {
    public static InputStream getOSSInputStream(String key) throws Exception {
        String bucketName = "hongruitang";
        // 创建OSSClient实例。
        OSS ossClient = createOss();
        OSSObject ossObject = ossClient.getObject(bucketName,key);
        InputStream inputStream = ossObject.getObjectContent();
        return inputStream;
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/Activity.java
@@ -127,7 +127,11 @@
     */
    @TableField("activity_introduce")
    private String activityIntroduce;
    /**
     * 活动二维码
     */
    @TableField("activity_code")
    private String activityCode;
    @Override
    protected Serializable pkVal() {
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityPageVo.java
@@ -48,4 +48,10 @@
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty(value = "活动二维码地址")
    private String activityCode;
    @ApiModelProperty(value = "背景海报地址")
    private String propagandaPoster;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -29,6 +29,7 @@
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo;
import com.ruoyi.system.api.service.RemoteConfigService;
import com.ruoyi.system.api.service.RemoteFileService;
import com.ruoyi.system.api.service.RemoteMemberService;
import com.ruoyi.system.api.service.RemoteShopService;
import org.redisson.api.RLock;
@@ -85,6 +86,9 @@
    @Autowired
    private RedissonClient redissonClient;
    @Resource
    private RemoteFileService remoteFileService;
    /**
     * @param mgtActivityEditDto
     * @return void
@@ -123,6 +127,12 @@
            activityTotal.setRefundTotal(0);
            activityTotal.setOrderMoneyTotal(BigDecimal.ZERO);
            activityTotalService.save(activityTotal);
            CodeGetDto codeGetDto = new CodeGetDto();
            String url = "https://wxapp.hhhrt.cn/mini/activity?activityId="+activityId;
            codeGetDto.setUrl(url);
            codeGetDto.setFileName("activity-"+activityId);
            String codeUrl = remoteFileService.getAppOrderTotal(codeGetDto).getData();
            activity.setActivityCode(codeUrl);
        }
        // 获取活动开始时间和结束时间
        Date activityStartTime = mgtActivityEditDto.getActivityStartTime();
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml
@@ -23,7 +23,9 @@
                WHEN 1 THEN '是'
                ELSE '否'
                END recommendFlag,
            ta.create_time createTime
            ta.create_time createTime,
            ta.activity_code activityCode,
            ta.propaganda_poster propagandaPoster
        FROM t_activity ta
        INNER JOIN t_activity_total tat ON ta.activity_id = tat.activity_id
        WHERE ta.del_flag = 0
@@ -61,10 +63,10 @@
            AND FIND_IN_SET(#{param.userIds}, user_id) &gt; 0
        </if>
        <if test="param.createStartTime!=null and param.createStartTime != ''">
            AND Date(ta.create_time) &gt;= #{param.createStartTime}
            AND Date(create_time) &gt;= #{param.createStartTime}
        </if>
        <if test="param.createEndTime!=null and param.createEndTime != ''">
            AND Date(ta.create_time) &lt;= #{param.createEndTime}
            AND Date(create_time) &lt;= #{param.createEndTime}
        </if>
        <if test="param.orderFlag!=null and param.orderFlag == 1">
            AND order_id IS NOT NULL
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -3268,6 +3268,18 @@
    @Override
    public MerTotalOrderVo totalMerOrder(MerOrderPageDto merOrderPageDto) {
        MerTotalOrderVo merTotalOrderVo = new MerTotalOrderVo();
        if(StringUtils.isNotBlank(merOrderPageDto.getKeyword())){
            MgtUserIdByKeywordDto userIdByKeywordDto = new MgtUserIdByKeywordDto();
            userIdByKeywordDto.setKeyword(merOrderPageDto.getKeyword());
            MgtUserIdByKeywordVo userIdByKeywordVo = remoteMemberService.getUserIdByKeyword(userIdByKeywordDto).getData();
            if(StringUtils.isNotBlank(userIdByKeywordVo.getUserIds())){
                List<Long> userIdList = Arrays.stream(userIdByKeywordVo.getUserIds().split(","))
                        .map(Long::parseLong)
                        .collect(Collectors.toList());
                merOrderPageDto.setMemberUserIdList(userIdList);
                merOrderPageDto.setMemberUserId(null);
            }
        }
        merTotalOrderVo = orderMapper.totalMerOrder(merOrderPageDto);
        return merTotalOrderVo;
    }
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -1454,28 +1454,28 @@
        FROM t_order
        WHERE del_flag = 0 AND shop_id = #{param.shopId}
        <if test="param.memberUserId != null and param.memberUserId != ''">
            AND toc.user_id = #{param.memberUserId}
            AND user_id = #{param.memberUserId}
        </if>
        <if test="param.type != null and param.type ==1 ">
            AND (toc.order_status = 2 OR toc.order_status = 3)
            AND (order_status = 2 OR order_status = 3)
        </if>
        <if test="param.type != null and param.type ==2 ">
            AND toc.order_status = 2
            AND order_status = 2
        </if>
        <if test="param.type != null and param.type ==3 ">
            AND toc.order_status = 3
            AND order_status = 3
        </if>
        <if test="param.orderFrom != null and param.orderFrom != '' ">
            AND toc.order_from = #{param.orderFrom}
            AND order_from = #{param.orderFrom}
        </if>
        <if test="param.startOrderDate != null and param.startOrderDate != '' ">
            AND Date(toc.create_time) &gt;= #{param.startOrderDate}
            AND Date(create_time) &gt;= #{param.startOrderDate}
        </if>
        <if test="param.endOrderDate != null and param.endOrderDate != '' ">
            AND Date(toc.create_time) &lt;= #{param.endOrderDate}
            AND Date(create_time) &lt;= #{param.endOrderDate}
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tog.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
            AND order_no LIKE CONCAT('%',#{param.keyword},'%')
        </if>
    </select>
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopStaffMapper.java
@@ -19,4 +19,14 @@
     * @param shopId
     */
    void clearShopStaffRelation(@Param("shopId") Long shopId);
    /**
     * @description
     * @author  jqs
     * @date    2023/8/3 13:19
     * @param shopId
     * @param codeUrl
     * @return  void
     */
    void updateShopCodeUrl(@Param("shopId") Long shopId,@Param("codeUrl") String codeUrl);
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -107,6 +107,9 @@
    private RemoteSysStaffService remoteSysStaffService;
    @Resource
    private RemoteFileService remoteFileService;
    @Resource
    private ShopTaskService shopTaskService;
    @Resource
@@ -300,6 +303,13 @@
        if(newShop){
            //生成商户关联记录
            initNewShop(shop,mgtEditShopDto.getUserId());
            CodeGetDto codeGetDto = new CodeGetDto();
            String url = "https://wxapp.hhhrt.cn/mini/activity?activityId="+shop.getShopId();
            codeGetDto.setUrl(url);
            codeGetDto.setFileName("shop-"+shop.getShopId());
            String codeUrl = remoteFileService.getAppOrderTotal(codeGetDto).getData();
            shop.setShopCode(codeUrl);
            this.saveOrUpdate(shop);
        }
    }
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopStaffServiceImpl.java
@@ -10,10 +10,12 @@
import com.ruoyi.shop.mapper.shop.ShopStaffMapper;
import com.ruoyi.shop.service.shop.ShopStaffService;
import com.ruoyi.system.api.domain.dto.AppEditUserDto;
import com.ruoyi.system.api.domain.dto.CodeGetDto;
import com.ruoyi.system.api.domain.dto.MerEditUserDto;
import com.ruoyi.system.api.domain.dto.MgtShopStaffEditDto;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.vo.MerStaffInfoVo;
import com.ruoyi.system.api.service.RemoteFileService;
import com.ruoyi.system.api.service.RemoteSysStaffService;
import com.ruoyi.system.api.service.RemoteUserService;
import org.springframework.stereotype.Service;
@@ -41,6 +43,8 @@
    @Resource
    private RemoteSysStaffService remoteSysStaffService;
    @Resource
    private RemoteFileService remoteFileService;
    /**
     *
     * @param userId
@@ -82,8 +86,17 @@
        merStaffInfoVo.setBusinessTime(shop.getBusinessStartTime()+"-"+shop.getBusinessEndTime());
        merStaffInfoVo.setShopType(shop.getShopType());
        merStaffInfoVo.setShopNumber(shop.getShopNumber());
        String shopCodeUrl = "https://wxapp.hhhrt.cn/mini/shop?shopId="+shop.getShopId();
        merStaffInfoVo.setShopCodeUrl(shopCodeUrl);
        if(StringUtils.isNotBlank(shop.getShopCode())){
            merStaffInfoVo.setShopCodeUrl(shop.getShopCode());
        }else{
            CodeGetDto codeGetDto = new CodeGetDto();
            String url = "https://wxapp.hhhrt.cn/mini/activity?activityId="+shop.getShopId();
            codeGetDto.setUrl(url);
            codeGetDto.setFileName("shop-"+shop.getShopId());
            String codeUrl = remoteFileService.getAppOrderTotal(codeGetDto).getData();
            merStaffInfoVo.setShopCodeUrl(codeUrl);
            shopStaffMapper.updateShopCodeUrl(shop.getShopId(),codeUrl);
        }
        return merStaffInfoVo;
    }
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopStaffMapper.xml
@@ -8,4 +8,7 @@
        UPDATE t_shop_staff SET del_flag = 1 WHERE del_flag = 0 AND shop_id = #{shopId}
    </update>
    <update id="clearShopStaffRelation">
        UPDATE t_shop SET shop_code =  #{codeUrl} WHERE shop_id = #{shopId}
    </update>
</mapper>
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/CustomConfigMapper.java
@@ -5,7 +5,7 @@
import com.ruoyi.system.domain.pojo.config.CustomConfig;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.domain.vo.MgtOperLogPageVo;
import io.lettuce.core.dynamic.annotation.Param;
import org.apache.ibatis.annotations.Param;
import java.util.List;
ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/CustomConfigMapper.xml
@@ -20,10 +20,10 @@
        FROM sys_oper_log
        WHERE operator_type = 1 AND del_flag = 0
        <if test="param.operContent != null and param.operContent !=''">
            oper_content LIKE concat('%', #{param.operContent}, '%')
            AND oper_content LIKE concat('%', #{param.operContent}, '%')
        </if>
        <if test="param.operTitle != null and param.operTitle !=''">
            title = #{param.operTitle}
            AND title = #{param.operTitle}
        </if>
        <if test="param.operStartTime!=null and param.operStartTime!=''">
            AND Date(oper_time) &gt;= #{param.operStartTime}