Sfoglia il codice sorgente

完善积分模块

Wang-Xiao-Ran 1 anno fa
parent
commit
798921c4ad

+ 30 - 11
sooka-jnb/src/main/java/com/sooka/jnb/score/service/IScoreService.java

@@ -4,19 +4,21 @@ import com.sooka.jnb.score.domain.ScoreOperate;
 
 
 import java.util.List;
 import java.util.List;
 
 
-public interface IScoreService{
+public interface IScoreService {
 
 
     /**
     /**
      * 初始化积分
      * 初始化积分
+     *
      * @param score 积分实体类
      * @param score 积分实体类
-     * - userId 用户ID
-     * - scoreNum 初始化积分
-     * - createTime 创建时间
+     *              - userId 用户ID
+     *              - scoreNum 初始化积分
+     *              - createTime 创建时间
      */
      */
     int initScore(ScoreOperate score);
     int initScore(ScoreOperate score);
 
 
     /**
     /**
      * 获取积分
      * 获取积分
+     *
      * @param userId 用户id
      * @param userId 用户id
      */
      */
     ScoreOperate getScore(String userId);
     ScoreOperate getScore(String userId);
@@ -33,27 +35,44 @@ public interface IScoreService{
 
 
     /**
     /**
      * 增加积分
      * 增加积分
+     *
      * @param scoreOperate 积分操作实体
      * @param scoreOperate 积分操作实体
-     * - userId 用户id
-     * - scoreNum 增加的分数
-     * - createTime 创建时间
+     *                     - userId 用户id
+     *                     - scoreNum 增加的分数
+     *                     - createTime 创建时间
+     *                     - relevance 操作来源(字典值:key=score_type)
+     *                     - relevanceDataId 关联id
+     * @return int (>0:扣除成功)
      */
      */
     int addScore(ScoreOperate scoreOperate);
     int addScore(ScoreOperate scoreOperate);
 
 
     /**
     /**
      * 减少积分
      * 减少积分
+     *
      * @param scoreOperate 积分操作实体
      * @param scoreOperate 积分操作实体
-     * - userId 用户id
-     * - scoreNum 减少的分数
-     * - createTime 创建时间
+     *                     - userId 用户id
+     *                     - scoreNum 减少的分数
+     *                     - createTime 创建时间
+     *                     - relevance 操作来源(字典值:key=score_type)
+     *                     - relevanceDataId 关联id
      */
      */
     int reduceScore(ScoreOperate scoreOperate);
     int reduceScore(ScoreOperate scoreOperate);
 
 
     /**
     /**
+     * 校验剩余积分
+     *
+     * @param score 积分操作实体
+     *              - userId 用户Id
+     *              - scoreNum  要扣除的分数
+     * @return boolean 积分充足返回true,积分不足返回false
+     */
+    boolean verifyScore(ScoreOperate score);
+
+    /**
      * 唯一校验
      * 唯一校验
+     *
      * @param userId 用户id
      * @param userId 用户id
      * @return boolean 用户存在返回true,不存在则返回false
      * @return boolean 用户存在返回true,不存在则返回false
      */
      */
     boolean soleVerify(String userId);
     boolean soleVerify(String userId);
-
 }
 }

+ 8 - 4
sooka-jnb/src/main/java/com/sooka/jnb/score/service/impl/ScoreServiceImpl.java

@@ -62,12 +62,11 @@ public class ScoreServiceImpl implements IScoreService {
     @Override
     @Override
     @Transactional
     @Transactional
     public int reduceScore(ScoreOperate scoreOperate) {
     public int reduceScore(ScoreOperate scoreOperate) {
-        ScoreOperate score = scoreMapper.getScore(scoreOperate.getUserId());
-        if (score.getScoreNum() < scoreOperate.getScoreNum()) {
-            return -1;
-        } else {
+        if(this.verifyScore(scoreOperate)){
             scoreMapper.reduceScore(scoreOperate);
             scoreMapper.reduceScore(scoreOperate);
             return this.insertScoreOperate(scoreOperate, REDUCE);
             return this.insertScoreOperate(scoreOperate, REDUCE);
+        }else{
+            return -1;
         }
         }
     }
     }
 
 
@@ -90,4 +89,9 @@ public class ScoreServiceImpl implements IScoreService {
         Map<String, Long> resultMap = scoreMapper.soleVerify(userId);
         Map<String, Long> resultMap = scoreMapper.soleVerify(userId);
         return resultMap.get("personSum") > 0;
         return resultMap.get("personSum") > 0;
     }
     }
+
+    @Override
+    public boolean verifyScore(ScoreOperate score) {
+        return scoreMapper.getScore(score.getUserId()).getScoreNum() >= score.getScoreNum();
+    }
 }
 }