yujian
2019-08-20 eb214553bde0ff87d9c3d4cb9187db3b4e3cbcea
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskClassServiceImpl.java
@@ -55,12 +55,10 @@
   @Override
   public List<IntegralTaskClassVO> getIntegralTaskClassVO(Long uid, long start, int count) {
      // 用户签到
      Integer baseGoldCoin = 5;
      boolean dailySign = false;
      if (start == 0) { // 第一页签到
      Integer signState = 0;
      if (start == 0) {
         try { 
            baseGoldCoin = finishedDailySign(uid);
            dailySign = true;
            signState = finishedDailySign(uid);
         } catch (Exception e) {
            e.printStackTrace();
         }
@@ -80,15 +78,18 @@
         if (taskNum == null)
            continue;
         // 目前只有签到变灰
         UniqueKeyEnum uniqueKey = taskClassVO.getUniqueKey();
         if (uniqueKey == UniqueKeyEnum.dailySign) {
            taskClassVO.setTotalCoin(baseGoldCoin);
            taskClassVO.setLightUp(dailySign);
            if (signState == 0) {
               taskClassVO.setLightUp(true); // 签到失败
            } else if (signState == 1) {
               taskClassVO.setLightUp(false);
            } else if (signState == 2) {
               taskClassVO.setLightUp(false);
            }
         } else {
            taskClassVO.setLightUp(true);
         }
         
         Integer dateType = 1; // 查询当日
         if (uniqueKey == UniqueKeyEnum.orderReward)
@@ -104,7 +105,7 @@
         }
         progress = progress.replace("{已完成}", countFinished + "").replace("{总任务}", taskNum + "");
         
         if (!dailySign && uniqueKey == UniqueKeyEnum.dailySign) {
         if (signState == 0 && uniqueKey == UniqueKeyEnum.dailySign) {
            progress = "未签到";
            taskClassVO.setBtnName("签到");
         } 
@@ -132,39 +133,34 @@
    */
   @Transactional
   public Integer finishedDailySign(long uid) throws Exception{
      Integer baseGoldCoin = 5;
      IntegralTaskClass taskClass = getByUniqueKey(UniqueKeyEnum.dailySign.name());
      if (taskClass == null || taskClass.getState() == null || taskClass.getState() != 1)
         return baseGoldCoin;
         throw new Exception("抛出异常:任务分类不存在");
      Long cid = taskClass.getId();
      // 今日已签到完成
      if (integralTaskRecordService.isToDaySign(uid, cid))
         return baseGoldCoin;
         return 2;
      // 任务
      Integer num = integralTaskRecordService.getNowdaySignNum(uid, cid);
      String uniqueKey = UniqueKeyEnum.dailySign.name() + num;
      IntegralTask integralTask = integralTaskService.getByCidAndUniqueKey(cid, uniqueKey);
      if (integralTask == null)
         return baseGoldCoin;
         throw new Exception("抛出异常:任务不存在");
      UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
      if (userInfoExtra == null)
         return baseGoldCoin;
         throw new Exception("抛出异常:额外信息不存在");
      UserRank userRank = userInfoExtra.getUserRank();
      if (userRank == null)
         return baseGoldCoin;
         throw new Exception("抛出异常:等级信息不存在");
      Integer goldCoin = integralTask.getGoldCoin();
      Integer baseDoubleNum = integralTask.getDoubleNum();
      if (baseDoubleNum != null && baseDoubleNum > 0)
         goldCoin = goldCoin * baseDoubleNum;
      baseGoldCoin = goldCoin;
      
      // 根据等级计算是否增加或加倍
      Long taskId = integralTask.getId();
@@ -181,7 +177,8 @@
      }
      // 加入记录
      integralTaskRecordService.finishedTask(uid, cid, taskId, goldCoin);
      return baseGoldCoin;
      return 1;
   }