瀏覽代碼

feat: 月结二维码相关逻辑;

hanchaolong 8 小時之前
父節點
當前提交
9fe0f06ffa

+ 3 - 1
jd-logistics-api/jd-logistics-api-system/src/main/java/com/ruoyi/system/api/RemoteMonthQRCodeConsumeService.java

@@ -1,10 +1,12 @@
 package com.ruoyi.system.api;
+import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
 
 import java.util.Map;
 
@@ -12,5 +14,5 @@ import java.util.Map;
 public interface RemoteMonthQRCodeConsumeService {
 
     @PostMapping("/front/qrcode/consume")
-    public R<String> consume();
+    public R<String> consume(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 2 - 1
jd-logistics-modules/jd-logistics-job/src/main/java/com/ruoyi/job/task/MonthQRCodeConsumeTask.java

@@ -1,5 +1,6 @@
 package com.ruoyi.job.task;
 
+import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.system.api.RemoteMonthQRCodeConsumeService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,7 +18,7 @@ public class MonthQRCodeConsumeTask {
 
     public void doTask() {
         log.info("二维码消费查询定时任务开始");
-        remoteMonthQRCodeConsumeService.consume();
+        remoteMonthQRCodeConsumeService.consume(SecurityConstants.INNER);
         log.info("二维码消费查询定时任务结束");
     }
 }

+ 1 - 6
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/MonthQRCodeController.java

@@ -31,14 +31,9 @@ public class MonthQRCodeController extends BaseController {
     private IMonthQRCodeTaskService monthQRCodeService;
 
     @RequestMapping
-    public AjaxResult qrcode(@RequestParam("source") Integer source, @RequestParam("waybillCode") String waybillCode) {
+    public AjaxResult qrcode(@RequestParam("source") Integer source) {
         try{
             JSONObject jsonObject = logisticsOrderService.getQRCode(source);
-//            JSONObject jsonObject = logisticsOrderService.queryOrderDetailByWaybillCode(source, waybillCode);
-//            JSONObject jsonObject = logisticsOrderService.queryOrderByQRCode(source, waybillCode);
-
-
-//            CommonMonthSettleQRQueryResponse response = (CommonMonthSettleQRQueryResponse) jsonObject.get("msg");
             // 返回完整的二维码信息,包括图片数据
             return AjaxResult.success(jsonObject);
         } catch (ServiceException e) {

+ 1 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/LogisticsOrderService.java

@@ -80,6 +80,7 @@ public class LogisticsOrderService {
         monthQRCodeDTO.setUserId(SecurityUtils.getUserId());
         monthQRCodeDTO.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
         monthQRCodeDTO.setSource(source);
+        monthQRCodeDTO.setCreateTime(bizMonthQrcodeRecord.getCreateTime());
 
         redisService.setCacheObject(RedisCacheConstants.MONTH_QRCODE_CACHE_KEY + bizMonthQrcodeRecord.getQrcodeId(), monthQRCodeDTO, 660L, TimeUnit.SECONDS);
 

+ 16 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/MonthQRCodeTaskServiceImpl.java

@@ -14,9 +14,11 @@ import com.ruoyi.common.redis.service.RedisIdGenerator;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.logistics.constant.RedisCacheConstants;
 import com.ruoyi.logistics.domain.BizFinancialFeeItems;
+import com.ruoyi.logistics.domain.BizMonthQrcodeRecord;
 import com.ruoyi.logistics.domain.BizWaybillCostDetails;
 import com.ruoyi.logistics.domain.BizWaybillOrder;
 import com.ruoyi.logistics.dto.MonthQRCodeDTO;
+import com.ruoyi.logistics.mapper.BizMonthQrcodeRecordMapper;
 import com.ruoyi.logistics.mapper.BizWaybillCostDetailsMapper;
 import com.ruoyi.logistics.mapper.BizWaybillOrderMapper;
 import com.ruoyi.logistics.response.CommonOrderInfoResponse;
@@ -59,10 +61,12 @@ public class MonthQRCodeTaskServiceImpl implements IMonthQRCodeTaskService {
     @Autowired
     private SysUserMapper sysUserMapper;
 
-
     @Autowired
     private RedisIdGenerator redisIdGenerator;
 
+    @Autowired
+    private BizMonthQrcodeRecordMapper bizMonthQrcodeRecordMapper;
+
     @Override
     public void consumeQRCode() {
         Collection<String> keys = redisService.keys(RedisCacheConstants.MONTH_QRCODE_CACHE_KEY + "*");
@@ -159,7 +163,18 @@ public class MonthQRCodeTaskServiceImpl implements IMonthQRCodeTaskService {
                 });
             }
 
+            // 记录二维码处理次数
+            monthQRCodeDTO.setProcessNum(monthQRCodeDTO.getProcessNum() + 1);
             redisService.setCacheObject(key, monthQRCodeDTO);
+
+            // 二维码处理次数大于等于5次,且已处理订单等于二维码包含订单数,则修改二维码状态为已处理
+            if (monthQRCodeDTO.getProcessNum() >= 5 && monthQRCodeDTO.getProcessWaybillCodes().size() == response.getWaybillQRVerifyInfoList().size()) {
+                BizMonthQrcodeRecord record = new BizMonthQrcodeRecord();
+                record.setQrcodeId(monthQRCodeDTO.getQrcodeId());
+                record.setIsVerify(1);
+                record.setUpdateTime(DateUtils.getNowDate());
+                bizMonthQrcodeRecordMapper.updateBizMonthQrcodeRecord(record);
+            }
         }
     }