From b95715d5cdc806cbb15cc7f49c538e61f5ab5dc6 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期四, 03 八月 2023 13:31:46 +0800 Subject: [PATCH] bug和二维码 --- ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 16 +- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityPageVo.java | 6 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java | 6 + ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeServiceImpl.java | 36 ++++- ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml | 8 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 10 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java | 10 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopStaffMapper.java | 10 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 12 ++ ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/CustomConfigMapper.xml | 4 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CodeGetDto.java | 18 +++ ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopStaffServiceImpl.java | 17 ++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java | 3 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/Activity.java | 6 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/CustomConfigMapper.java | 2 ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/OBSUploadUtils.java | 91 ++++++++++++++ ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/FileController.java | 40 ++++++ ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeService.java | 28 ++- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteFileService.java | 12 ++ ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopStaffMapper.xml | 3 20 files changed, 294 insertions(+), 44 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CodeGetDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CodeGetDto.java new file mode 100644 index 0000000..b8519c8 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/CodeGetDto.java @@ -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; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java index a8ead45..5186b44 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java +++ b/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; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java index aa3c813..5a08282 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java +++ b/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()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteFileService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteFileService.java index d6d3193..ad4773d 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteFileService.java +++ b/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); } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/FileController.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/FileController.java new file mode 100644 index 0000000..1736fd1 --- /dev/null +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/FileController.java @@ -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); + } + + +} diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeService.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeService.java index e79e269..3eb85c7 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeService.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeServiceImpl.java index 009a019..270076f 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/ActivityCodeServiceImpl.java +++ b/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; } } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/OBSUploadUtils.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/OBSUploadUtils.java index fc18bc6..8fcbc61 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/OBSUploadUtils.java +++ b/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; } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/Activity.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/Activity.java index 73ba653..b648420 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/Activity.java +++ b/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() { diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityPageVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityPageVo.java index 214a44a..cbe1e57 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityPageVo.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java index ec44e37..63415ad 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java +++ b/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(); diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml index 44e942b..36ac2b1 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml +++ b/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) > 0 </if> <if test="param.createStartTime!=null and param.createStartTime != ''"> - AND Date(ta.create_time) >= #{param.createStartTime} + AND Date(create_time) >= #{param.createStartTime} </if> <if test="param.createEndTime!=null and param.createEndTime != ''"> - AND Date(ta.create_time) <= #{param.createEndTime} + AND Date(create_time) <= #{param.createEndTime} </if> <if test="param.orderFlag!=null and param.orderFlag == 1"> AND order_id IS NOT NULL diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index 15fa0a9..f22e1a5 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index e77189a..6d6650e 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/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) >= #{param.startOrderDate} + AND Date(create_time) >= #{param.startOrderDate} </if> <if test="param.endOrderDate != null and param.endOrderDate != '' "> - AND Date(toc.create_time) <= #{param.endOrderDate} + AND Date(create_time) <= #{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> diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopStaffMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopStaffMapper.java index 8c6edb0..0d70a68 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopStaffMapper.java +++ b/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); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java index eb19b56..15d93e7 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java +++ b/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); } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopStaffServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopStaffServiceImpl.java index e5afe26..0e9f127 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopStaffServiceImpl.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopStaffMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopStaffMapper.xml index 5dbeee5..9d1166a 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopStaffMapper.xml +++ b/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> diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/CustomConfigMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/CustomConfigMapper.java index 12da256..f29af14 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/CustomConfigMapper.java +++ b/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; diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/CustomConfigMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/CustomConfigMapper.xml index 266b943..24016b5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/CustomConfigMapper.xml +++ b/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) >= #{param.operStartTime} -- Gitblit v1.7.1