Quellcode durchsuchen

修改 协议幂等逻辑

hgw vor 3 Jahren
Ursprung
Commit
5dcb4fa90e

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantContractRecordServiceImpl.java

@@ -44,7 +44,7 @@ public class TenantContractRecordServiceImpl extends ServiceImpl<TenantContractR
         //一个机构只能创建一个开通协议
         TenantContractRecord open = this.getOne(new QueryWrapper<>(new TenantContractRecord())
                 .eq("tenant_id_", tenantId)
-                .eq("type", TenantContractRecordEnum.OPEN.getType()));
+                .eq("type_", TenantContractRecordEnum.OPEN.getType()));
         if (Objects.nonNull(open)) {
             return 1;
         }

+ 12 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -654,10 +654,13 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
      * @return 协议地址
      */
     private String getContractAndUpLoad(Integer tenantId, TenantContractRecordEnum en, Integer val) {
-        RBucket<Object> bucket = redissonClient.getBucket("getContractAndUpLoad:" + tenantId + ":" + en.getType());
-        if (!bucket.trySet(tenantId, 15, TimeUnit.SECONDS)) {
+        String key = "getContractAndUpLoad:" + tenantId + ":" + en.getMsg();
+        log.info("getContractAndUpLoad >>>>key:{}", key);
+        RBucket<Object> bucket = redissonClient.getBucket(key);
+        if (!bucket.trySet(tenantId, 15L, TimeUnit.SECONDS)) {
             return null;
         }
+        log.info("getContractAndUpLoad >>>>ok  tenantId:{} en:{} val:{}", tenantId, en, val);
         Date now = new Date();
         //创建PDF本次缓存地址
         String srcPdfPath = contractBaseDir + lexiaoyaContract + DateUtils.formatDate(now, "yyyyMMddHHmmss") + "/" + tenantId + "_" + java.time.LocalDateTime.now().getSecond() + ".pdf";
@@ -984,6 +987,13 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         productInfo.setPayDate(now);
         productInfo.setTenantId(tenantId);
         tenantProductInfoService.updateByTenantId(productInfo);
+        //一个机构只能创建一个开通协议
+        TenantContractRecord openRecord = tenantContractRecordService.getOne(new QueryWrapper<>(new TenantContractRecord())
+                .eq("tenant_id_", tenantId)
+                .eq("type_", TenantContractRecordEnum.OPEN.getType()));
+        if (Objects.nonNull(openRecord)) {
+            return;
+        }
         //生成协议并上传得到地址
         TenantContractRecordEnum open = TenantContractRecordEnum.OPEN;
         String contractPath = getContractAndUpLoad(tenantId, open, null);