浏览代码

Merge branch 'dev' of 113.31.163.91:quanshu/mp-server into dev

chunping 2 年之前
父节点
当前提交
bd16bbb76c

+ 1 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/MarketingMgrController.java

@@ -70,7 +70,7 @@ public class MarketingMgrController extends BaseApiController {
     @Autowired
     private IMarketingHitPrizeService marketingHitPrizeService;
 
-    @PreAuthorize("@ss.hasPermi('business:marketing:add')")
+    @PreAuthorize("@ss.hasPermi('business:marketing:copy')")
     @PostMapping("/copy/{marketingId}")
     @ApiOperation("拷贝营销活动")
     public AjaxResult copy(@PathVariable("marketingId") Long marketingId) {

+ 39 - 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
@@ -472,6 +450,20 @@ public class MarketingServiceImpl extends ServiceImpl<MarketingMapper, Marketing
         marketingUserCodeService.save(marketingUserCode);
 
 
+        // 自己获得一个普通抽奖码
+        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);
+
+
         // 真实用户
         int realNum = marketingUserCodeService.countRealUserNumByMarketingId(marketing.getId());
 
@@ -489,6 +481,27 @@ public class MarketingServiceImpl extends ServiceImpl<MarketingMapper, 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) {