浏览代码

邀请功能代码

zc 2 月之前
父节点
当前提交
a430a46b95

+ 4 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeUser.java

@@ -117,4 +117,8 @@ public class LifeUser implements Serializable {
     @ApiModelProperty(value = "个人邀请码")
     @TableField("invite_code")
     private String inviteCode;
+
+    @ApiModelProperty(value = "绑定他人邀请码")
+    @TableField("bind_invite_code")
+    private String bindInviteCode;
 }

+ 17 - 1
alien-store/src/main/java/shop/alien/store/controller/ActivityInviteConfigController.java

@@ -116,7 +116,7 @@ public class ActivityInviteConfigController {
      * web-分页查询邀请活动
      */
     @ApiOperation("分页查询邀请记录")
-    @ApiOperationSupport(order = 2)
+    @ApiOperationSupport(order = 7)
     @ApiImplicitParams({
             @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
             @ApiImplicitParam(name = "pageSize", value = "页容", dataType = "int", paramType = "query", required = true),
@@ -130,4 +130,20 @@ public class ActivityInviteConfigController {
         return R.data(activityLogList);
     }
 
+    /**
+     * 绑定邀请码
+     */
+    @ApiOperation("分页查询邀请记录")
+    @ApiOperationSupport(order = 8)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "invitedUserId", value = "被邀请用户ID", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "inviteCode", value = "邀请码", dataType = "String", paramType = "query", required = true)
+    })
+    @GetMapping("/bindInviteCode")
+    public R<String> bindInviteCode(@RequestParam(required = true) Integer invitedUserId,
+                                    @RequestParam(required = true) String inviteCode){
+        String result = activityInviteConfigService.bindInviteCode(invitedUserId, inviteCode);
+        return R.data(result);
+    }
+
 }

+ 1 - 1
alien-store/src/main/java/shop/alien/store/service/ActivityInviteConfigService.java

@@ -46,6 +46,6 @@ public interface ActivityInviteConfigService extends IService<ActivityInviteConf
 
     IPage<ActivityInviteLog> getInviteActivityLogList(int pageNum, int pageSize, Integer status);
 
-    String bindInviteCode(Integer userId, String inviteCode);
+    String bindInviteCode(Integer invitedUserId, String inviteCode);
 
 }

+ 46 - 13
alien-store/src/main/java/shop/alien/store/service/impl/ActivityInviteConfigServiceImpl.java

@@ -20,8 +20,12 @@ import shop.alien.mapper.LifeUserMapper;
 import shop.alien.store.service.ActivityInviteConfigService;
 import shop.alien.util.common.RandomCreateUtil;
 
+import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -163,9 +167,12 @@ public class ActivityInviteConfigServiceImpl extends ServiceImpl<ActivityInviteC
         int invitePoint = 0;
         if(CollectionUtils.isNotEmpty(activityInviteLogList)){
             inviteCount = activityInviteLogList.size();
-//            invitePoint = activityInviteLogList.stream()
-//                    .mapToInt(ActivityInviteLog::getInvitePoint) // 将 Entity 流转换为 int 流
-//                    .sum();
+            for(ActivityInviteLog activityInviteLog : activityInviteLogList){
+                int inviteRewardType = activityInviteLog.getInviteRewardType();
+                if(inviteRewardType == 1 && StringUtils.isNotBlank(activityInviteLog.getInviteRewardContent())){
+                    invitePoint = Integer.parseInt(activityInviteLog.getInviteRewardContent()) + invitePoint;
+                }
+            }
         }
         ActivityInviteInfoVo activityInviteInfoVo = new ActivityInviteInfoVo();
         activityInviteInfoVo.setInviteCode(inviteCode);
@@ -181,30 +188,56 @@ public class ActivityInviteConfigServiceImpl extends ServiceImpl<ActivityInviteC
         IPage<ActivityInviteLog> iPage = new Page<>(pageNum, pageSize);
         LambdaQueryWrapper<ActivityInviteLog> activityInviteLogLambdaQueryWrapper = new LambdaQueryWrapper<>();
         if(userId != null) {
-            activityInviteLogLambdaQueryWrapper.eq(ActivityInviteLog::getInvitedUserId, userId);
+            activityInviteLogLambdaQueryWrapper.eq(ActivityInviteLog::getInviteUserId, userId);
         }
         activityInviteLogLambdaQueryWrapper.eq(ActivityInviteLog::getDeleteFlag, 0 );
         return activityInviteLogMapper.selectPage(iPage, activityInviteLogLambdaQueryWrapper);
     }
 
     @Override
-    public String bindInviteCode(Integer userId, String inviteCode) {
-        if(StringUtils.isNotBlank(inviteCode)){
-           LifeUser originalLifeUser =  lifeUserMapper.selectById(userId);
-           if(originalLifeUser!=null && StringUtils.isNotBlank(originalLifeUser.getInviteCode())){
-               return "已经绑定邀请码";
+    public String bindInviteCode(Integer invitedUserId, String inviteCode) {
+        if(StringUtils.isNotBlank(inviteCode) && invitedUserId != null){
+            // 根据邀请码查询邀请用户
+            LambdaQueryWrapper<LifeUser> lifeUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lifeUserLambdaQueryWrapper.eq(LifeUser::getInviteCode, inviteCode);
+            lifeUserLambdaQueryWrapper.eq(LifeUser::getDeleteFlag, 0);
+            List<LifeUser> lifeUserList = lifeUserMapper.selectList(lifeUserLambdaQueryWrapper);
+            if(CollectionUtils.isEmpty(lifeUserList)){
+                return "邀请码异常或邀请用户已注销";
+            }
+
+           LifeUser originalLifeUser =  lifeUserList.get(0);
+           int inviteUserId = originalLifeUser.getId();
+           LifeUser invitedLifeUser =  lifeUserMapper.selectById(invitedUserId);
+           if(invitedLifeUser != null && StringUtils.isNotBlank(invitedLifeUser.getInviteCode())){
+               return "已经绑定邀请码,不能重复绑定";
            } else {
                LambdaQueryWrapper<ActivityInviteConfig> activityInviteConfigLambdaQueryWrapper = new LambdaQueryWrapper<>();
                activityInviteConfigLambdaQueryWrapper.eq(ActivityInviteConfig::getDeleteFlag,0);
                List<ActivityInviteConfig> activityInviteConfigList = activityInviteConfigMapper.selectList(activityInviteConfigLambdaQueryWrapper);
                if(CollectionUtils.isNotEmpty(activityInviteConfigList)){
                    ActivityInviteConfig activityInviteConfig = activityInviteConfigList.get(0);
-
-
+                   ActivityInviteLog activityInviteLog = new ActivityInviteLog();
+                   activityInviteLog.setInviteUserId(inviteUserId);
+                   activityInviteLog.setInvitedUserId(invitedUserId);
+                   activityInviteLog.setActivityId(activityInviteConfig.getId());
+
+                   if(invitedLifeUser!=null && StringUtils.isNotBlank(invitedLifeUser.getUserName())){
+                       activityInviteLog.setNickName(invitedLifeUser.getUserName());
+                   }
+                   // 邀请奖励
+                   activityInviteLog.setInviteRewardType(activityInviteConfig.getInviteRewardType());
+                   activityInviteLog.setInviteRewardContent(activityInviteConfig.getInviteRewardContent());
+                   // 被邀请奖励
+                   activityInviteLog.setInviteRewardType(activityInviteConfig.getInvitedRewardType());
+                   activityInviteLog.setInvitedRewardContent(activityInviteConfig.getInvitedRewardContent());
+                   activityInviteLog.setInviteTime(Date.from(Instant.now()));
+                   return "绑定成功";
+               } else {
+                   return "活动未开始或已结束";
                }
            }
-
         }
-        return "";
+        return "参数异常";
     }
 }