cup 2 年之前
父節點
當前提交
1458c891f7
共有 1 個文件被更改,包括 40 次插入26 次删除
  1. 40 26
      mp-service/src/main/java/com/qs/mp/admin/service/impl/MarketingServiceImpl.java

+ 40 - 26
mp-service/src/main/java/com/qs/mp/admin/service/impl/MarketingServiceImpl.java

@@ -164,19 +164,8 @@ public class MarketingServiceImpl extends ServiceImpl<MarketingMapper, Marketing
         }
 
 
-        // 生成抽奖码
-        String code = "";
-        while (true) {
-            code = MarketingUtils.generatePrizeCode();
-            // 判断抽奖码是否已经存在
-            int codeCount = marketingUserCodeService.count(new LambdaQueryWrapper<MarketingUserCode>()
-                    .eq(MarketingUserCode::getMarketingId, marketingId)
-                    .eq(MarketingUserCode::getCode, code));
-            if (codeCount > 0) {
-                continue;
-            }
-            break;
-        }
+        // 生成唯一抽奖码
+        String code = getOnlyCode(marketingId);
 
         MarketingUserCode marketingUserCode = new MarketingUserCode();
         // 设置活动id
@@ -443,19 +432,8 @@ public class MarketingServiceImpl extends ServiceImpl<MarketingMapper, Marketing
         if (count > 0) {
             throw new ServiceException("您已经助力过了");
         }
-        // 生成抽奖码
-        String code = "";
-        while (true) {
-            code = MarketingUtils.generatePrizeCode();
-            // 判断抽奖码是否已经存在
-            int codeCount = marketingUserCodeService.count(new LambdaQueryWrapper<MarketingUserCode>()
-                    .eq(MarketingUserCode::getMarketingId, marketing.getId())
-                    .eq(MarketingUserCode::getCode, code));
-            if (codeCount > 0) {
-                continue;
-            }
-            break;
-        }
+        // 生成唯一抽奖码
+        String code = getOnlyCode(marketing.getId());
 
         MarketingUserCode marketingUserCode = new MarketingUserCode();
         // 设置活动id
@@ -484,11 +462,47 @@ public class MarketingServiceImpl extends ServiceImpl<MarketingMapper, Marketing
         boolean rtn = this.updateById(marketing);
         Assert.isTrue(rtn, "更新活动参与人数异常。marketingId:" + marketing.getId());
 
+
+        // 自己获得一个普通抽奖码
+        MarketingUserCode myCode= new MarketingUserCode();
+        myCode.setMarketingId(marketing.getId());
+        // 设置抽奖码
+        myCode.setCode(getOnlyCode(marketing.getId()));
+        // 设置被助力人
+        myCode.setUserId(userId);
+        myCode.setHelpUserId(-1L);
+        myCode.setUserType(UserTypeEnum.ORDINARY.getValue());
+
+        // 保存抽奖码
+        marketingUserCodeService.save(myCode);
+
+
         // 给被助力人发送成功消息
         wxSubscribeMessage.sendMarketingHelp(helpedUserId, marketing);
 
     }
 
+    /**
+     * 获取当前活动用户唯一的抽奖码
+     * @param marketingId
+     * @return
+     */
+    private String getOnlyCode(Long marketingId) {
+        String code = "";
+        while (true) {
+            code = MarketingUtils.generatePrizeCode();
+            // 判断抽奖码是否已经存在
+            int codeCount = marketingUserCodeService.count(new LambdaQueryWrapper<MarketingUserCode>()
+                    .eq(MarketingUserCode::getMarketingId, marketingId)
+                    .eq(MarketingUserCode::getCode, code));
+            if (codeCount > 0) {
+                continue;
+            }
+            break;
+        }
+        return code;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void deleteById(Long id) {