From d1bcc87e41d8d176ce58ee9e27a17ec93d0d7cb2 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 23 八月 2019 11:59:18 +0800 Subject: [PATCH] Merge branch 'mater-1.6.0' into div --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/IntegralControllerV2.java | 154 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 123 insertions(+), 31 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..842c6da 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 @@ -33,10 +33,11 @@ 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.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.config.ConfigService; @@ -44,8 +45,11 @@ 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 +87,21 @@ @Resource private IntegralExchangeRecordService integralExchangeRecordService; - + @Resource private IntegralDetailService integralDetailService; @Resource + private IntegralTaskRankService integralTaskRankService; + + @Resource private CodePublishRecordService codePublishRecordService; + + @Resource + private IntegralTaskService integralTaskService; + + @Resource + private IntegralGetService integralGetService; /** * 鑾峰彇浠诲姟鍒楄〃 @@ -98,6 +111,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 +135,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 +164,76 @@ 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); + } + + // 鏍规嵁澶╂暟鍙樺寲鏇存敼绛惧埌閲戦 + 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 +262,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 +281,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 +303,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 +314,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 +369,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(); @@ -318,6 +404,7 @@ out.print(JsonUtil.loadFalseResult(1, e.getMsg())); } } + /** * 鍏戞崲閲戝竵 @@ -428,9 +515,18 @@ out.print(JsonUtil.loadFalseResult("鐢ㄦ埛灏氭湭鐧诲綍")); return; } - + if (StringUtil.isNullOrEmpty(event)) { out.print(JsonUtil.loadFalseResult("浜嬩欢涓虹┖")); + return; + } + IntegralTaskRecord record = null; + try { + record = integralGetService.addEventStatistic(uid, event, null); + } catch (IntegralGetException e) { + } + if (record == null) { + out.print(JsonUtil.loadFalseResult("娣诲姞澶辫触")); return; } @@ -439,21 +535,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 +617,6 @@ return gson; } - /** * 鏄庣粏璇︽儏 * @@ -537,7 +628,8 @@ * 骞翠唤 * @param month * 鏈堜唤 - * @param type 缁熻绫诲瀷 0鍏ㄩ儴 1 + * @param type + * 缁熻绫诲瀷 0鍏ㄩ儴 1 * @param out */ @RequestMapping(value = "getDetails") @@ -552,7 +644,7 @@ out.print(JsonUtil.loadFalseResult(1, "鏃ユ湡涓嶅畬鏁�")); return; } - + Date date = null; if (year != null && month != null) { @@ -564,9 +656,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