From 88b54772dbcf5ecab1e2316e4e4626ac901b8908 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期二, 22 一月 2019 15:58:24 +0800 Subject: [PATCH] 邀请码添加返回状态 --- fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 160 insertions(+), 2 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java index 14b3d61..8cface0 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java @@ -3,6 +3,8 @@ import java.io.IOException; import java.io.PrintWriter; import java.lang.reflect.Type; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; @@ -24,10 +26,14 @@ import com.google.gson.stream.JsonWriter; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum; +import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service; +import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.service.inter.user.UserMoneyDetailService; +import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.vo.money.UserMoneyDetailHistoryVO; +import com.yeshi.fanli.vo.money.UserMoneyStatisticVO; import net.sf.json.JSONObject; @@ -43,6 +49,12 @@ @Resource private UserMoneyDetailService userMoneyDetailService; + + @Resource + private UserInfoService userInfoService; + + @Resource + private HongBaoV2Service hongBaoV2Service; /** * 鏂扮増璧勯噾璇︽儏锛�1.4.9锛� @@ -82,8 +94,7 @@ List<UserMoneyDetailHistoryVO> list = userMoneyDetailService.listUserMoneyDetailForClient(uid, index, date); long count = userMoneyDetailService.countUserMoneyDetailForClient(uid, index, date); - GsonBuilder gsonBuilder = JsonUtil.getConvertBigDecimalToStringBuilder(new GsonBuilder()) - .excludeFieldsWithoutExposeAnnotation(); + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); gsonBuilder.registerTypeAdapter(UserMoneyDetailTypeEnum.class, new TypeAdapter<UserMoneyDetailTypeEnum>() { @Override public UserMoneyDetailTypeEnum read(JsonReader arg0) throws IOException { @@ -107,6 +118,15 @@ return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy.MM.dd HH:mm")); } } + }).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { + @Override + public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); + } else { + return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value).toString()); + } + } }); Gson gson = gsonBuilder.create(); @@ -117,4 +137,142 @@ out.print(JsonUtil.loadTrueResult(data)); } + /** + * 鐢ㄦ埛璧勯噾缁熻 + * + * @param acceptData + * @param uid + * @param out + */ + @RequestMapping(value = "getUserMoneyStatistic") + public void getUserMoneyStatistic(AcceptData acceptData, Long uid, PrintWriter out) { + if (uid == null || uid == 0) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + BigDecimal balance = userInfoService.getUserById(uid).getMyHongBao(); + + UserMoneyStatisticVO vo = new UserMoneyStatisticVO(); + vo.setBalanceMoney(balance); + Date minDate = null; + Date maxDate = null; + List<UserMoneyDetailTypeEnum> typeList = new ArrayList<>(); + + // 涓婃湀鎻愮幇 + typeList.clear(); + + typeList.add(UserMoneyDetailTypeEnum.extract); + typeList.add(UserMoneyDetailTypeEnum.extractReject); + typeList.add(UserMoneyDetailTypeEnum.extractVerify); + long timeStamp = System.currentTimeMillis(); + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(timeStamp); + maxDate = new Date(TimeUtil + .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M")); + calendar.add(Calendar.MONTH, -1); + minDate = new Date(TimeUtil + .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M")); + + vo.setLastMonthExtractMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs()); + // 涓婃湀鏀跺叆 + typeList.clear(); + typeList.add(UserMoneyDetailTypeEnum.fanli); + typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.share); + typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.invite); + typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.inviteAndShare); + typeList.add(UserMoneyDetailTypeEnum.weiQuan); + typeList.add(UserMoneyDetailTypeEnum.hongbao); + typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct); + + vo.setLastMonthRecievedMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs()); + // 鏈�杩戜笁涓湀鏀跺叆 + maxDate = new Date(timeStamp); + minDate = new Date(timeStamp - 1000 * 60 * 60 * 24 * 90L); + + vo.setLatestThreeMonthRecievedMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs()); + // 鏈湀鎻愮幇 + 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); + typeList.clear(); + typeList.add(UserMoneyDetailTypeEnum.extract); + typeList.add(UserMoneyDetailTypeEnum.extractReject); + typeList.add(UserMoneyDetailTypeEnum.extractVerify); + + vo.setMonthExtractMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs()); + // 鏈湀鍒拌处 + typeList.clear(); + typeList.add(UserMoneyDetailTypeEnum.fanli); + typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.share); + typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.invite); + typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.inviteAndShare); + typeList.add(UserMoneyDetailTypeEnum.weiQuan); + typeList.add(UserMoneyDetailTypeEnum.hongbao); + typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct); + + vo.setMonthRecievedMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs()); + // 鎬荤殑閭�璇疯禋 + typeList.clear(); + typeList.add(UserMoneyDetailTypeEnum.invite); + typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.inviteAndShare); + + minDate = new Date(0L); + maxDate = new Date(timeStamp); + vo.setTotalInviteMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs()); + // 鎬荤殑鍒拌处 + + typeList.clear(); + typeList.add(UserMoneyDetailTypeEnum.fanli); + typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.share); + typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.invite); + typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.inviteAndShare); + typeList.add(UserMoneyDetailTypeEnum.weiQuan); + typeList.add(UserMoneyDetailTypeEnum.hongbao); + typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct); + vo.setTotalRecievedMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs()); + // 鎬荤殑鍒嗕韩璧� + + typeList.clear(); + typeList.add(UserMoneyDetailTypeEnum.share); + typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan); + + vo.setTotalShareMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs()); + + minDate = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(timeStamp, "yyyy-MM"), "yyyy-MM")); + Calendar ca = Calendar.getInstance(); + ca.setTime(new Date(timeStamp)); + ca.add(Calendar.MONTH, 1); + maxDate = new Date(ca.getTimeInMillis()); + + // 鏈湀鏈埌璐� + vo.setMonthUnRecievedMoney(hongBaoV2Service.getUnRecievedMoneyWithPreGetTime(uid, minDate, maxDate)); + + // 鍏ㄩ儴鏈埌璐� + minDate = new Date(0); + vo.setTotalUnRecievedMoney(hongBaoV2Service.getUnRecievedMoneyWithCreateTime(uid, minDate, maxDate)); + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create(); + out.print(JsonUtil.loadTrueResult(gson.toJson(vo))); + } + } -- Gitblit v1.8.0