From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 五月 2020 17:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java | 208 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 199 insertions(+), 9 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java index 31039f3..4345f80 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java @@ -24,8 +24,10 @@ import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; +import com.google.gson.reflect.TypeToken; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.user.Extract; +import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.money.TeamEincomeRecord; import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum; @@ -39,6 +41,7 @@ import com.yeshi.fanli.service.inter.money.extract.ExtractService; import com.yeshi.fanli.service.inter.order.HongBaoV2Service; import com.yeshi.fanli.service.inter.order.OrderMoneyDailyCountService; +import com.yeshi.fanli.service.inter.user.PreviewInfoService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.util.Constant; @@ -50,6 +53,7 @@ import com.yeshi.fanli.vo.money.MoneyPredictVO; import com.yeshi.fanli.vo.money.MoneyStatisticVO; import com.yeshi.fanli.vo.money.TeamPredictVO; +import com.yeshi.fanli.vo.order.OrderRankingVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -90,6 +94,10 @@ @Resource private TeamEincomeRecordService teamEincomeRecordService; + + @Resource + private PreviewInfoService previewInfoService; + private Gson getGson() { GsonBuilder builder = new GsonBuilder(); @@ -121,13 +129,36 @@ out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); return; } + + // VIP鏁版嵁棰勮 + MoneyStatisticVO vo = null; + String redisContent = previewInfoService.getRedisContent(uid, PreviewEnum.moneyInfo); + if (!StringUtil.isNullOrEmpty(redisContent)) { + vo = new Gson().fromJson(redisContent, MoneyStatisticVO.class); + if (vo != null) { + vo.setLink(configService.get(ConfigKeyEnum.autoExtractHelpUrl.getKey())); + vo.setExtractDesc("鎻愮幇閲戦灏辨槸宸叉垚鍔熸彁鐜板埌鏀粯瀹濈殑璧勯噾"); + vo.setMoneyArrivalDesc("璁㈠崟宸插埌璐﹀悗鎻愮幇鏃堕棿鍜岄噾棰濆潎涓嶅彈闄愬埗"); + } + } + + if (vo == null) { + vo = createMoneyStatistic(uid); + } + + Gson gson = getGson(); + out.print(JsonUtil.loadTrueResult(gson.toJson(vo))); + } + + + public MoneyStatisticVO createMoneyStatistic(Long uid) { UserInfo user = userInfoService.getUserById(uid); MoneyStatisticVO vo = new MoneyStatisticVO(); vo.setLink(configService.get(ConfigKeyEnum.autoExtractHelpUrl.getKey())); vo.setBalanceMoney(user.getMyHongBao()); - vo.setExtractDesc("鎻愮幇閲戦灏辨槸宸叉垚鍔熻浆璐﹀埌鎻愮幇鏀粯瀹濈殑璧勯噾銆�"); - vo.setMoneyArrivalDesc("璧勯噾宸插埌璐﹀悗鎻愮幇鏃堕棿涓嶅彈闄愬埗銆侀噾棰濅笉鍙楅檺鍒躲��"); + vo.setExtractDesc("鎻愮幇閲戦灏辨槸宸叉垚鍔熸彁鐜板埌鏀粯瀹濈殑璧勯噾"); + vo.setMoneyArrivalDesc("璁㈠崟宸插埌璐﹀悗鎻愮幇鏃堕棿鍜岄噾棰濆潎涓嶅彈闄愬埗"); // 鑾峰彇鎻愮幇涓殑淇℃伅 BigDecimal extractingMoney = extractService.sumVerifyingMoney(uid); @@ -234,10 +265,10 @@ .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M")); calendar.add(Calendar.MONTH, -1); vo.setMonthPredict(cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, maxDate))); - - Gson gson = getGson(); - out.print(JsonUtil.loadTrueResult(gson.toJson(vo))); + return vo; } + + @RequestMapping(value = "getUserMoneyInfo") public void getUserMoneyInfo(AcceptData acceptData, Long uid, PrintWriter out) { @@ -298,10 +329,22 @@ return; } - List<Extract> list = extractService.getExtractSucceedRecord(page, Constant.PAGE_SIZE, uid); - if (list == null) { - list = new ArrayList<>(); + List<Extract> list = null; + String redisContent = previewInfoService.getRedisContent(uid, PreviewEnum.extractRecord); + if (!StringUtil.isNullOrEmpty(redisContent)) { + Gson gson = new Gson(); + list = gson.fromJson(redisContent, new TypeToken<ArrayList<Extract>>() {}.getType()); } + + // 鏌ヨ鐪熷疄 + long count = 0; + if (list == null) { + list = extractService.getExtractSucceedRecord(page, Constant.PAGE_SIZE, uid); + count = extractService.countExtractSucceedRecord(uid); + } + + if (list == null) + list = new ArrayList<>(); JSONArray JSONArray = new JSONArray(); for (Extract extract : list) { @@ -320,7 +363,7 @@ } JSONObject json = new JSONObject(); - json.put("count", extractService.countExtractSucceedRecord(uid)); + json.put("count", count == 0 ? list.size() : 0); json.put("list", JSONArray); out.print(JsonUtil.loadTrueResult(json)); } @@ -691,4 +734,151 @@ } } + + /** + * 璁㈠崟缁熻-h5 + * + * @param acceptData + * @param id + * @param out + */ + @RequestMapping(value = "countTeamOrderNum") + public void countTeamOrderNum(String callback, AcceptData acceptData, Long uid, PrintWriter out) { + try { + + Date minDate = null; + Date maxDate = null; + long timeStamp = System.currentTimeMillis(); + + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(timeStamp); + + // 浠婃棩棰勪及 + calendar.add(Calendar.DAY_OF_YEAR, -1); + minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + OrderMoneyDailyCount todayRecord = createVO(orderMoneyDailyCountService.sumTeamOrderNumGroupByCountDay(uid, minDate, null)); + + // 鏄ㄦ棩棰勪及 + calendar.add(Calendar.DAY_OF_YEAR, -1); + maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + minDate = DateUtil.reduceDay(1, maxDate); + OrderMoneyDailyCount yesterdayRecord = createVO(orderMoneyDailyCountService.sumTeamOrderNumGroupByCountDay(uid, minDate, maxDate)); + + // 鏈湀棰勪及 + maxDate = new Date(timeStamp); + calendar = Calendar.getInstance(); + minDate = new Date(TimeUtil + .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M")); + calendar.add(Calendar.MONTH, -1); + OrderMoneyDailyCount monthRecord = createVO(orderMoneyDailyCountService.sumTeamOrderNumGroupByYearMonth(uid, minDate, maxDate)); + + // 绱 + OrderMoneyDailyCount totalityRecord = createVO(orderMoneyDailyCountService.sumTeamOrderNumGroupByUid(uid, null, null)); + + JSONObject today = new JSONObject(); + today.put("direct", todayRecord.getDirectOrderNum()); + today.put("indirect", todayRecord.getInDirectOrderNum()); + today.put("beyond", todayRecord.getBeyondOrderNum()); + + JSONObject yesterday = new JSONObject(); + yesterday.put("direct", yesterdayRecord.getDirectOrderNum()); + yesterday.put("indirect", yesterdayRecord.getInDirectOrderNum()); + yesterday.put("beyond", yesterdayRecord.getBeyondOrderNum()); + + JSONObject month = new JSONObject(); + month.put("direct", monthRecord.getDirectOrderNum()); + month.put("indirect", monthRecord.getInDirectOrderNum()); + month.put("beyond", monthRecord.getBeyondOrderNum()); + + JSONObject totality = new JSONObject(); + totality.put("direct", totalityRecord.getDirectOrderNum()); + totality.put("indirect", totalityRecord.getInDirectOrderNum()); + totality.put("beyond", totalityRecord.getBeyondOrderNum()); + + + JSONObject json = new JSONObject(); + json.put("today", today); + json.put("yesterday", yesterday); + json.put("month", month); + json.put("totality", totality); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json)); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触")); + e.printStackTrace(); + } + } + + + private OrderMoneyDailyCount createVO(List<OrderMoneyDailyCount> list) { + OrderMoneyDailyCount totalityRecord = new OrderMoneyDailyCount(0,0,0); + if (list != null && list.size() > 0) { + for (OrderMoneyDailyCount record: list) { + totalityRecord.setDirectOrderNum(totalityRecord.getDirectOrderNum() + record.getDirectOrderNum()); + totalityRecord.setInDirectOrderNum(totalityRecord.getInDirectOrderNum() + record.getInDirectOrderNum()); + totalityRecord.setBeyondOrderNum(totalityRecord.getBeyondOrderNum() + record.getBeyondOrderNum()); + } + } + return totalityRecord; + } + + + + /** + * 璁㈠崟鎺掕姒� + * @param callback + * @param acceptData + * @param uid + * @param dateType + * @param out + */ + @RequestMapping(value = "getRanking") + public void getRanking(String callback, AcceptData acceptData, Long uid, Integer dateType, PrintWriter out) { + if (uid == null || dateType == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟缂哄け")); + return; + } + + try { + Date minDate = null; + Date maxDate = null; + long timeStamp = System.currentTimeMillis(); + + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(timeStamp); + + if (dateType == 1) { + // 浠婃棩 + calendar.add(Calendar.DAY_OF_YEAR, -1); + minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + } else if (dateType == 2) { + // 鏄ㄦ棩 + calendar.add(Calendar.DAY_OF_YEAR, -1); + maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + minDate = DateUtil.reduceDay(1, maxDate); + } else { + // 鏈湀 + maxDate = new Date(timeStamp); + calendar = Calendar.getInstance(); + minDate = new Date(TimeUtil + .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M")); + calendar.add(Calendar.MONTH, -1); + } + + List<OrderRankingVO> list = orderMoneyDailyCountService.getRankingByOrderNum(uid, minDate, maxDate); + if (list.size() > 0) { + for (OrderRankingVO vo: list) { + UserInfo user = userInfoService.getUserByIdWithMybatis(vo.getUid()); + vo.setNickName(user.getNickName()); + vo.setPortrait(user.getPortrait()); + } + } + + JSONObject json = new JSONObject(); + json.put("list", list); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json)); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触")); + e.printStackTrace(); + } + } } -- Gitblit v1.8.0