| | |
| | | @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();
|
| | | }
|
| | |
| | | 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)
|
| | |
| | | }
|
| | | progress = progress.replace("{已完成}", countFinished + "").replace("{总任务}", taskNum + "");
|
| | |
|
| | | if (!dailySign && uniqueKey == UniqueKeyEnum.dailySign) {
|
| | | if (signState == 0 && uniqueKey == UniqueKeyEnum.dailySign) {
|
| | | progress = "未签到";
|
| | | taskClassVO.setBtnName("签到");
|
| | | }
|
| | |
| | | */
|
| | | @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();
|
| | |
| | | }
|
| | | // 加入记录
|
| | | integralTaskRecordService.finishedTask(uid, cid, taskId, goldCoin);
|
| | | return baseGoldCoin;
|
| | | |
| | | return 1;
|
| | | }
|
| | |
|
| | |
|