From 646196c8b6f46b1156189f0d3a16fb6c5200c789 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期二, 26 五月 2020 09:48:44 +0800 Subject: [PATCH] 队员排行榜bug --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 170 insertions(+), 10 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 b8ad8ae..1f3232c 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 @@ -34,6 +34,7 @@ import com.yeshi.fanli.entity.order.OrderMoneyDailyCount; import com.yeshi.fanli.entity.order.OrderMoneyDailyCount.SourceTypeEnum; import com.yeshi.fanli.entity.system.ConfigKeyEnum; +import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; import com.yeshi.fanli.service.inter.money.TeamEincomeRecordService; @@ -41,6 +42,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.order.dividents.TeamDividentsSourceOrderUserMapService; import com.yeshi.fanli.service.inter.user.PreviewInfoService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; @@ -53,6 +55,8 @@ 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 com.yeshi.fanli.vo.order.TeamDividentsVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -97,6 +101,9 @@ @Resource private PreviewInfoService previewInfoService; + @Resource + private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService; + private Gson getGson() { GsonBuilder builder = new GsonBuilder(); @@ -107,7 +114,7 @@ return new JsonPrimitive(""); } else { // 淇濈暀2浣嶅皬鏁� - value = value.setScale(2); + value = value.setScale(2, BigDecimal.ROUND_DOWN); return new JsonPrimitive(value.toString()); } } @@ -477,7 +484,9 @@ object.put("list", gson.toJson(list)); out.print(JsonUtil.loadTrueResult(object)); } catch (ParseException e) { + out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); e.printStackTrace(); + LogHelper.errorDetailInfo(e); } } @@ -557,9 +566,9 @@ * @param out */ @RequestMapping(value = "getTeamDividendStatistic") - public void getTeamDividendStatistic(AcceptData acceptData, Long uid, PrintWriter out) { + public void getTeamDividendStatistic(String callback, AcceptData acceptData, Long uid, PrintWriter out) { if (uid == null || uid == 0) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); return; } @@ -592,7 +601,7 @@ object.put("subsidy", subsidy.setScale(2).toString()); object.put("today", gson.toJson(todayVO)); object.put("month", gson.toJson(monthVO)); - out.print(JsonUtil.loadTrueResult(object)); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object)); } private TeamPredictVO crateTeamPredictVO(List<OrderMoneyDailyCount> list) { @@ -627,15 +636,15 @@ * @param out */ @RequestMapping(value = "getTeamDividendHistory") - public void getTeamDividendHistory(AcceptData acceptData, Long uid, String date, Integer datetype, + public void getTeamDividendHistory(String callback, AcceptData acceptData, Long uid, String date, Integer datetype, PrintWriter out) { if (uid == null || uid == 0) { - out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); return; } if (StringUtil.isNullOrEmpty(date) || datetype == null) { - out.print(JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�")); + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶅畬鏁�")); return; } @@ -727,9 +736,93 @@ JSONObject object = new JSONObject(); object.put("count", list.size()); object.put("list", gson.toJson(list)); - out.print(JsonUtil.loadTrueResult(object)); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object)); } catch (ParseException e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触")); e.printStackTrace(); + LogHelper.errorDetailInfo(e); + } + } + + + + /** + * 鍒嗙孩璇︽儏 + * + * @param acceptData + * @param uid + * @param datetype 1-澶� - 2鏈� + * @param out + */ + @RequestMapping(value = "getTeamDividendDetail") + public void getTeamDividendDetail(String callback, AcceptData acceptData, Integer page, Long uid, + String date, Integer datetype, String key, PrintWriter out) { + if (uid == null || uid == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (StringUtil.isNullOrEmpty(date) || datetype == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶅畬鏁�")); + return; + } + + if (page == null) + page = 1; + int pageSize = Constant.PAGE_SIZE; + + + try { + Date minDay = new Date(); + Date maxDay = new Date(); + if (datetype == 1) { + minDay = TimeUtil.parseYYYYMMDD(date); + maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59"); + } else if (datetype == 2) { + minDay = TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(date)); + maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(DateUtil.getLastDayOfMonth(date) + " 23:59:59"); + } + List<TeamDividentsVO> list = teamDividentsSourceOrderUserMapService.listByDateAndTargetUid((page-1) * pageSize, pageSize, uid, minDay, maxDay, key); + if (list == null) { + list = new ArrayList<>(); + } + long count = teamDividentsSourceOrderUserMapService.countByDateAndTargetUid(uid, minDay, maxDay, key); + + GsonBuilder builder = new GsonBuilder(); + builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { + @Override + public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive("0.00"); + } else { + // 淇濈暀3浣嶅皬鏁� + value = value.setScale(3,RoundingMode.DOWN); + return new JsonPrimitive(value.toString()); + } + } + }); + + Gson gson = builder.create(); + JSONObject object = new JSONObject(); + + if (page == 1) { + TeamDividentsVO teamDividentsVO = teamDividentsSourceOrderUserMapService.sumByDateAndTargetUid(uid, minDay, maxDay, key); + if (teamDividentsVO == null) { + teamDividentsVO = new TeamDividentsVO(); + teamDividentsVO.setSubsidy(BigDecimal.ZERO); + teamDividentsVO.setDividents(BigDecimal.ZERO); + } + object.put("subsidy", teamDividentsVO.getSubsidy().setScale(2,RoundingMode.DOWN).toString()); + object.put("dividents", teamDividentsVO.getDividents().setScale(2, RoundingMode.DOWN).toString()); + } + + object.put("count", count); + object.put("list", gson.toJson(list)); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object)); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鏌ヨ澶辫触")); + e.printStackTrace(); + LogHelper.errorDetailInfo(e); } } @@ -804,13 +897,13 @@ } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触")); e.printStackTrace(); + LogHelper.errorDetailInfo(e); } } 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()); @@ -818,7 +911,74 @@ 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 (int i = 0; i < list.size(); i ++) { + OrderRankingVO vo = list.get(i); + UserInfo user = userInfoService.getUserByIdWithMybatis(vo.getUid()); + if (user == null) { + list.remove(i); + i--; + continue; + } + 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(); + LogHelper.errorDetailInfo(e); + } + } } -- Gitblit v1.8.0