浏览代码

完善积分模块

Wang-Xiao-Ran 1 年之前
父节点
当前提交
94ad83f61b

+ 18 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java

@@ -21,6 +21,8 @@ import com.ruoyi.framework.manager.factory.AsyncFactory;
 import com.ruoyi.framework.security.context.AuthenticationContextHolder;
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysUserService;
+import com.sooka.jnb.score.domain.ScoreOperate;
+import com.sooka.jnb.score.service.IScoreService;
 import com.sooka.jnb.wxUser.mapper.WxUserMapper;
 import com.sooka.jnb.utils.WechatUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,6 +34,10 @@ import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 
+import java.util.Date;
+
+import static com.ruoyi.common.constant.CacheConstants.SYS_CONFIG_KEY;
+
 /**
  * 登录校验方法
  *
@@ -58,6 +64,9 @@ public class SysLoginService
     private ISysConfigService configService;
 
     @Autowired
+    private IScoreService scoreService;
+
+    @Autowired
     private WxUserMapper wxUserMapper;
 
     @Autowired
@@ -91,6 +100,15 @@ public class SysLoginService
             user.setCreateBy(openid);
             user.setUpdateBy(openid);
             wxUserMapper.insert(user);
+
+            //初始化积分
+            ScoreOperate scoreOperate = new ScoreOperate(
+                    user.getId().toString(),
+                    Integer.valueOf(redisCache.getCacheObject(SYS_CONFIG_KEY + "init_socre").toString()),
+                    "0",
+                    "0"
+            );
+            scoreService.initScore(scoreOperate);
         }
         LoginUser loginUser = createLoginWxUser(user);
 //        SecurityUtils.getUserId()

+ 9 - 0
sooka-jnb/src/main/java/com/sooka/jnb/score/domain/ScoreOperate.java

@@ -59,4 +59,13 @@ public class ScoreOperate extends BaseEntity {
     private String phone;
 
 
+    public ScoreOperate() {
+    }
+
+    public ScoreOperate(String userId, Integer scoreNum, String relevance, String relevanceDataId) {
+        this.userId = userId;
+        this.scoreNum = scoreNum;
+        this.relevance = relevance;
+        this.relevanceDataId = relevanceDataId;
+    }
 }

+ 9 - 3
sooka-jnb/src/main/java/com/sooka/jnb/score/service/impl/ScoreServiceImpl.java

@@ -62,14 +62,20 @@ public class ScoreServiceImpl implements IScoreService {
     @Override
     @Transactional
     public int reduceScore(ScoreOperate scoreOperate) {
-        scoreMapper.reduceScore(scoreOperate);
-        return this.insertScoreOperate(scoreOperate, REDUCE);
+        ScoreOperate score = scoreMapper.getScore(scoreOperate.getUserId());
+        if (score.getScoreNum() < scoreOperate.getScoreNum()) {
+            return -1;
+        } else {
+            scoreMapper.reduceScore(scoreOperate);
+            return this.insertScoreOperate(scoreOperate, REDUCE);
+        }
     }
 
     /**
      * 插入积分操作记录
+     *
      * @param scoreOperate 积分操作对象
-     * @param operate 积分操作类型
+     * @param operate      积分操作类型
      */
     private int insertScoreOperate(ScoreOperate scoreOperate, String operate) {
         scoreOperate.setScoreOperate(operate + scoreOperate.getScoreNum());