admin
2019-08-21 a481da100d823bdebc63ddd11ba23da2f84c38ca
Merge remote-tracking branch 'origin/div' into div
3个文件已修改
148 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/integral/IntegralTaskRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskClassServiceImpl.java 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java
@@ -33,7 +33,6 @@
import com.yeshi.fanli.entity.bus.user.UserRank;
import com.yeshi.fanli.entity.integral.CodePublishRecord;
import com.yeshi.fanli.entity.integral.IntegralExchange;
import com.yeshi.fanli.entity.integral.IntegralTaskClass;
import com.yeshi.fanli.entity.integral.IntegralTaskClass.UniqueKeyEnum;
import com.yeshi.fanli.entity.integral.IntegralTaskRecord;
import com.yeshi.fanli.exception.integral.IntegralExchangeException;
@@ -121,7 +120,17 @@
            }
            long count = integralTaskClassService.countTaskClass();
            // 用户签到
            Integer signState = 0;
            if (page == 1) {
                // 签到
                try {
                    signState = integralTaskClassService.finishedDailySign(uid);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                UserInfoExtraVO extraVO = userInfoExtraService.getInfoExtraVOByUid(uid);
                if (extraVO == null) {
                    out.print(JsonUtil.loadFalseResult(1, "用户相关信息不存在"));
@@ -140,20 +149,64 @@
                    return;
                }
                boolean signState = false;
                IntegralTaskClass taskClass = integralTaskClassService.getByUniqueKey(UniqueKeyEnum.dailySign.name());
                if (taskClass != null)
                    signState = integralTaskRecordService.isToDaySign(uid, taskClass.getId());
                // 签到日期
                // 签到日期信息
                DailySignVO dailySignVO = integralTaskClassService.getDailySignList(uid, userRank.getId());
                data.put("signState", signState);
                boolean ejectSign = false;
                if (signState == 1)
                    ejectSign = true;
                data.put("signState", ejectSign);
                data.put("goldCoin", extraVO.getGoldCoin());
                data.put("portrait", userInfo.getPortrait());
                data.put("userRank", gson.toJson(userRank));
                data.put("dailySign", dailySignVO);
            }
            for (IntegralTaskClassVO taskClassVO : list) {
                String progress = taskClassVO.getProgress();
                if (StringUtil.isNullOrEmpty(progress))
                    continue;
                Integer taskNum = taskClassVO.getTaskNum();
                if (taskNum == null)
                    continue;
                UniqueKeyEnum uniqueKey = taskClassVO.getUniqueKey();
                if (uniqueKey == UniqueKeyEnum.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)
                    dateType = null; // 查询历史
                Long id = taskClassVO.getId();
                int countFinished = 0;
                Integer totalGoldCoin = integralTaskRecordService.getTotalGoldCoin(uid, id, dateType);
                if (totalGoldCoin != null && totalGoldCoin > 0) {
                    taskClassVO.setFinishedCoin("+" + totalGoldCoin);
                    if (uniqueKey != UniqueKeyEnum.dailySign)
                        countFinished = integralTaskRecordService.countFinished(uid, id, dateType);
                }
                progress = progress.replace("{已完成}", countFinished + "").replace("{总任务}", taskNum + "");
                if (signState == 0 && uniqueKey == UniqueKeyEnum.dailySign) {
                    progress = "未签到";
                    taskClassVO.setBtnName("签到");
                }
                taskClassVO.setProgress(progress);
            }
            data.put("count", count);
            data.put("list", gson.toJson(list));
            out.print(JsonUtil.loadTrueResult(data));
fanli/src/main/java/com/yeshi/fanli/mapping/integral/IntegralTaskRecordMapper.xml
@@ -85,7 +85,7 @@
  </select>
  
  <select id="getTotalGoldCoin" resultType="Integer">
    SELECT SUM(tr.`ir_gold_coin`) FROM yeshi_ec_integral_task_record tr
    SELECT IFNULL(SUM(tr.`ir_gold_coin`),0) FROM yeshi_ec_integral_task_record tr
    WHERE tr.ir_uid = #{uid} AND tr.`ir_cid`=#{cid} <!--  tr.ir_state <![CDATA[<>]]>2 AND --> 
    <if test="dateType == 1">
        AND TO_DAYS(tr.ir_create_time) = TO_DAYS(NOW())
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskClassServiceImpl.java
@@ -25,7 +25,6 @@
import com.yeshi.fanli.service.inter.integral.IntegralTaskRecordService;
import com.yeshi.fanli.service.inter.integral.IntegralTaskService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.vo.integral.DailySignVO;
import com.yeshi.fanli.vo.integral.IntegralTaskClassVO;
import com.yeshi.fanli.vo.integral.SignDateVO;
@@ -54,63 +53,7 @@
    
    @Override
    public List<IntegralTaskClassVO> getIntegralTaskClassVO(Long uid, long start, int count) {
        // 用户签到
        Integer baseGoldCoin = 5;
        boolean dailySign = false;
        if (start == 0) { // 第一页签到
            try {
                baseGoldCoin = finishedDailySign(uid);
                dailySign = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        List<IntegralTaskClassVO> listVo = integralTaskClassMapper.getIntegralTaskClassVO(start, count);
        if (listVo == null || listVo.size() == 0) {
            return listVo;
        }
        for (IntegralTaskClassVO taskClassVO : listVo) {
            String progress = taskClassVO.getProgress();
            if (StringUtil.isNullOrEmpty(progress))
                continue;
            Integer taskNum = taskClassVO.getTaskNum();
            if (taskNum == null)
                continue;
            // 目前只有签到变灰
            UniqueKeyEnum uniqueKey = taskClassVO.getUniqueKey();
            if (uniqueKey == UniqueKeyEnum.dailySign) {
                taskClassVO.setTotalCoin(baseGoldCoin);
                taskClassVO.setLightUp(dailySign);
            } else {
                taskClassVO.setLightUp(true);
            }
            Integer dateType = 1; // 查询当日
            if (uniqueKey == UniqueKeyEnum.orderReward)
                dateType = null; // 查询历史
            Long id = taskClassVO.getId();
            int countFinished = 0;
            Integer totalGoldCoin = integralTaskRecordService.getTotalGoldCoin(uid, id, dateType);
            if (totalGoldCoin != null && totalGoldCoin > 0) {
                taskClassVO.setFinishedCoin("+" + totalGoldCoin);
                if (uniqueKey != UniqueKeyEnum.dailySign)
                    countFinished = integralTaskRecordService.countFinished(uid, id, dateType);
            }
            progress = progress.replace("{已完成}", countFinished + "").replace("{总任务}", taskNum + "");
            if (!dailySign && uniqueKey == UniqueKeyEnum.dailySign) {
                progress = "未签到";
                taskClassVO.setBtnName("签到");
            }
            taskClassVO.setProgress(progress);
        }
        return listVo;
        return integralTaskClassMapper.getIntegralTaskClassVO(start, count);
    }
    
    
@@ -132,39 +75,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 +119,8 @@
        }
        // 加入记录
        integralTaskRecordService.finishedTask(uid, cid, taskId, goldCoin);
        return baseGoldCoin;
        return 1;
    }