From d8359ddb48dab5cc797a9d552e11fde571f4920c Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期二, 27 八月 2019 12:32:46 +0800 Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java | 209 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 163 insertions(+), 46 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java index a6ad85a..80e4ce2 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java @@ -30,22 +30,29 @@ import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.bus.user.UserInfoExtra; import com.yeshi.fanli.entity.bus.user.UserRank; +import com.yeshi.fanli.entity.common.JumpDetailV2; 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.IntegralTask; import com.yeshi.fanli.entity.integral.IntegralTaskClass.UniqueKeyEnum; import com.yeshi.fanli.entity.integral.IntegralTaskRecord; import com.yeshi.fanli.exception.integral.IntegralExchangeException; +import com.yeshi.fanli.exception.integral.IntegralGetException; import com.yeshi.fanli.exception.integral.IntegralTaskRecordException; import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.integral.CodePublishRecordService; import com.yeshi.fanli.service.inter.integral.IntegralDetailService; import com.yeshi.fanli.service.inter.integral.IntegralExchangeRecordService; import com.yeshi.fanli.service.inter.integral.IntegralExchangeService; +import com.yeshi.fanli.service.inter.integral.IntegralGetService; import com.yeshi.fanli.service.inter.integral.IntegralTaskClassService; +import com.yeshi.fanli.service.inter.integral.IntegralTaskRankService; 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.service.inter.user.UserInfoService; import com.yeshi.fanli.util.Constant; @@ -83,12 +90,24 @@ @Resource private IntegralExchangeRecordService integralExchangeRecordService; - + @Resource private IntegralDetailService integralDetailService; @Resource + private IntegralTaskRankService integralTaskRankService; + + @Resource private CodePublishRecordService codePublishRecordService; + + @Resource + private IntegralTaskService integralTaskService; + + @Resource + private IntegralGetService integralGetService; + + @Resource + private JumpDetailV2Service jumpDetailV2Service; /** * 鑾峰彇浠诲姟鍒楄〃 @@ -98,6 +117,7 @@ * @param page * @param out */ + // @RequestSerializableByKey(key="#acceptData.device") @RequestMapping(value = "getTaskList", method = RequestMethod.POST) public void getTaskList(AcceptData acceptData, Long uid, Integer page, PrintWriter out) { if (uid == null || uid <= 0) { @@ -121,7 +141,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,18 +170,86 @@ 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) { + UniqueKeyEnum uniqueKey = taskClassVO.getUniqueKey(); + + UserInfoExtraVO extraVO = userInfoExtraService.getInfoExtraVOByUid(uid); + if (extraVO == null || StringUtil.isNullOrEmpty(extraVO.getInviteCode())) { + JumpDetailV2 jumpDetailV2 = jumpDetailV2Service.getByTypeCache("invite_activate", + Constant.getPlatformCode(acceptData.getPlatform()), + Integer.parseInt(acceptData.getVersion())); + + taskClassVO.setJumpDetail(jumpDetailV2); + } + + String progress = taskClassVO.getProgress(); + if (StringUtil.isNullOrEmpty(progress)) + continue; + + Integer taskNum = taskClassVO.getTaskNum(); + if (taskNum == null) + continue; + + if (uniqueKey == UniqueKeyEnum.dailySign) { + if (signState == 0) { + taskClassVO.setLightUp(true); // 绛惧埌澶辫触 + } else if (signState == 1) { + taskClassVO.setLightUp(false); + } else if (signState == 2) { + taskClassVO.setLightUp(false); + } + + // 鏍规嵁澶╂暟鍙樺寲鏇存敼绛惧埌閲戦 + Integer num = integralTaskRecordService.getNowdaySignNum(uid, taskClassVO.getId()); + + String uniqueKeyTask = UniqueKeyEnum.dailySign.name() + num; + IntegralTask integralTask = integralTaskService.getByCidAndUniqueKey(taskClassVO.getId(), + uniqueKeyTask); + Integer goldCoin = 0; + if (integralTask != null) { + goldCoin = integralTask.getGoldCoin(); + Integer baseDoubleNum = integralTask.getDoubleNum(); + if (baseDoubleNum != null && baseDoubleNum > 0) + goldCoin = goldCoin * baseDoubleNum; + } + taskClassVO.setTotalCoin(goldCoin); + } 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); @@ -180,7 +278,7 @@ if ("android".equalsIgnoreCase(acceptData.getPlatform())) { count = Integer.MAX_VALUE; } - + List<IntegralTaskRecord> list = integralTaskRecordService.listNotReceived(count, uid); if (list == null) { list = new ArrayList<IntegralTaskRecord>(); @@ -199,17 +297,20 @@ * * @param acceptData * @param uid - * @param ids // 棰嗗彇id - * @param gids // 鏈鍙杋d + * @param ids + * // 棰嗗彇id + * @param gids + * // 鏈鍙杋d * @param out */ @RequestMapping(value = "receiveGoldCoin", method = RequestMethod.POST) - public void receiveGoldCoin(AcceptData acceptData, Long uid, Integer type, String ids, String gids, PrintWriter out) { + public void receiveGoldCoin(AcceptData acceptData, Long uid, Integer type, String ids, String gids, + PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); return; } - + try { // 鍏ㄩ儴棰嗗彇 if (type != null && type == 1) { @@ -218,8 +319,8 @@ data.put("goldCoin", goldCoin); out.print(JsonUtil.loadTrueResult(data)); return; - } - + } + // 閮ㄥ垎棰嗗彇 Gson gson = new Gson(); Set<Long> idList = gson.fromJson(ids, new TypeToken<HashSet<Long>>() { @@ -229,20 +330,21 @@ return; } Integer goldCoin = integralTaskRecordService.receiveGoldCoin(uid, idList); - Set<Long> gidList = gson.fromJson(gids, new TypeToken<HashSet<Long>>() {}.getType()); + Set<Long> gidList = gson.fromJson(gids, new TypeToken<HashSet<Long>>() { + }.getType()); List<IntegralTaskRecord> list = null; if (gidList != null && gidList.size() > 0) { list = integralTaskRecordService.listNotReceivedExcludeId(5 - gidList.size(), uid, gidList); } else { list = integralTaskRecordService.listNotReceivedExcludeId(5, uid, null); } - + if (list == null) { list = new ArrayList<IntegralTaskRecord>(); } GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); Gson gson2 = gsonBuilder.create(); - + JSONObject data = new JSONObject(); data.put("goldCoin", goldCoin); data.put("list", gson2.toJson(list)); @@ -283,7 +385,7 @@ if (list == null) list = new ArrayList<IntegralExchange>(); - //Long count = integralExchangeService.countValid(); + // Long count = integralExchangeService.countValid(); GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); Gson gson = gsonBuilder.create(); @@ -310,7 +412,6 @@ GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); Gson gson = gsonBuilder.create(); - JSONObject data = new JSONObject(); data.put("result", gson.toJson(exchange)); out.print(JsonUtil.loadTrueResult(data)); @@ -332,11 +433,14 @@ try { IntegralExchange exchange = integralExchangeService.exchange(uid, id); + UserInfoExtra extraVO = userInfoExtraService.getUserInfoExtra(uid); + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); Gson gson = gsonBuilder.create(); JSONObject data = new JSONObject(); data.put("result", gson.toJson(exchange)); + data.put("goldCoin", extraVO.getGoldCoin() + "鏋�"); out.print(JsonUtil.loadTrueResult(data)); } catch (IntegralExchangeException e) { out.print(JsonUtil.loadFalseResult(1, e.getMsg())); @@ -378,8 +482,11 @@ @RequestMapping(value = "exchangeInviteCode", method = RequestMethod.POST) public void exchangeInviteCode(AcceptData acceptData, Long uid, Long id, PrintWriter out) { try { - integralExchangeService.exchangeInviteCode(uid, id); - out.print(JsonUtil.loadTrueResult("閭�璇风爜婵�娲绘垚鍔�")); + String inviteCode = integralExchangeService.exchangeInviteCode(uid, id); + JSONObject data = new JSONObject(); + data.put("msg", "鍏戞崲鎴愬姛锛岄噾甯佸凡娑堣�� "); + data.put("inviteCode", inviteCode); + out.print(JsonUtil.loadTrueResult(data)); } catch (IntegralExchangeException e) { out.print(JsonUtil.loadFalseResult(1, e.getMsg())); } @@ -399,19 +506,24 @@ return; } - List<CodePublishRecord> list = codePublishRecordService.listValid((page - 1) * Constant.PAGE_SIZE, - Constant.PAGE_SIZE); - if (list == null) { - list = new ArrayList<CodePublishRecord>(); + try { + List<CodePublishRecord> list = codePublishRecordService.listValid((page - 1) * Constant.PAGE_SIZE, + Constant.PAGE_SIZE); + if (list == null) { + list = new ArrayList<CodePublishRecord>(); + } + + long count = codePublishRecordService.countValid(); + + JSONObject data = new JSONObject(); + data.put("count", count); + data.put("list", getGson().toJson(list)); + data.put("helpLink", configService.get("publish_list_help_link")); + out.print(JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "鑾峰彇澶辫触")); + return; } - - long count = codePublishRecordService.countValid(); - - JSONObject data = new JSONObject(); - data.put("count", count); - data.put("list", getGson().toJson(list)); - data.put("helpLink", configService.get("publish_list_help_link")); - out.print(JsonUtil.loadTrueResult(data)); } /** @@ -428,9 +540,18 @@ out.print(JsonUtil.loadFalseResult("鐢ㄦ埛灏氭湭鐧诲綍")); return; } - + if (StringUtil.isNullOrEmpty(event)) { out.print(JsonUtil.loadFalseResult("浜嬩欢涓虹┖")); + return; + } + IntegralTaskRecord record = null; + try { + record = integralGetService.addEventStatistic(uid, event); + } catch (IntegralGetException e) { + } + if (record == null) { + out.print(JsonUtil.loadFalseResult("娣诲姞澶辫触")); return; } @@ -439,21 +560,17 @@ || "scanTBCart".equalsIgnoreCase(event)) { JSONObject notify = new JSONObject(); switch (event) { - case "recommendSearch": notify.put("name", "瀹屾垚涓�娆℃櫤鑳芥悳绱�"); - notify.put("score", "+20閲戝竵"); break; case "scanGoods": notify.put("name", "瀹屾垚涓�娆″晢鍝佹祻瑙�"); - notify.put("score", "+100閲戝竵"); break; case "scanTBCart": notify.put("name", "瀹屾垚涓�娆¤喘鐗╄溅娴忚"); - notify.put("score", "+300閲戝竵"); break; } - + notify.put("score", String.format("+%s閲戝竵", record.getGoldCoin())); data.put("notify", notify); } out.print(JsonUtil.loadTrueResult(data)); @@ -525,7 +642,6 @@ return gson; } - /** * 鏄庣粏璇︽儏 * @@ -537,7 +653,8 @@ * 骞翠唤 * @param month * 鏈堜唤 - * @param type 缁熻绫诲瀷 0鍏ㄩ儴 1 + * @param type + * 缁熻绫诲瀷 0鍏ㄩ儴 1 * @param out */ @RequestMapping(value = "getDetails") @@ -552,7 +669,7 @@ out.print(JsonUtil.loadFalseResult(1, "鏃ユ湡涓嶅畬鏁�")); return; } - + Date date = null; if (year != null && month != null) { @@ -564,9 +681,9 @@ } // 鏌ヨ鍒楄〃 - List<IntegralDetailVO> list = integralDetailService.listDetailForClient(uid, index, date); + List<IntegralDetailVO> list = integralDetailService.listDetailForClient(uid, index, date, type); // 缁熻鎬绘潯鏁� - long count = integralDetailService.countDetailForClient(uid, index, date); + long count = integralDetailService.countDetailForClient(uid, index, date, type); GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); gsonBuilder.registerTypeAdapter(TaoLiJinDetailTypeEnum.class, new TypeAdapter<TaoLiJinDetailTypeEnum>() { -- Gitblit v1.8.0