From de4110d3d3944ffcd797fd8c43f0d455cc731f84 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期日, 17 五月 2020 11:43:52 +0800 Subject: [PATCH] 活动详情 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java | 241 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 220 insertions(+), 21 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java index 4c176a0..fd3361b 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PreviewInfoControllerV2.java @@ -3,6 +3,7 @@ import java.io.PrintWriter; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; @@ -10,7 +11,6 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.multipart.MultipartFile; import org.yeshi.utils.JsonUtil; import com.google.gson.Gson; @@ -19,14 +19,22 @@ import com.yeshi.fanli.entity.bus.user.Extract; import com.yeshi.fanli.entity.bus.user.PreviewInfo; import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum; +import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum; +import com.yeshi.fanli.entity.order.OrderMoneyDailyCount; import com.yeshi.fanli.exception.user.PreviewInfoException; import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; +import com.yeshi.fanli.service.inter.money.UserMoneyDetailService; +import com.yeshi.fanli.service.inter.order.OrderMoneyDailyCountService; import com.yeshi.fanli.service.inter.user.PreviewInfoService; import com.yeshi.fanli.service.inter.user.UserInfoService; +import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.account.UserUtil; +import com.yeshi.fanli.vo.money.MoneyPredictVO; import com.yeshi.fanli.vo.money.MoneyStatisticVO; import com.yeshi.fanli.vo.user.MineInfoVO; @@ -46,9 +54,15 @@ private RedisManager redisManager; @Resource - private UserMoneyControllerV2 userMoneyControllerV2; + private HongBaoV2CountService hongBaoV2CountService; - + @Resource + private UserMoneyDetailService userMoneyDetailService; + + @Resource + private OrderMoneyDailyCountService orderMoneyDailyCountService; + + /** * 淇濆瓨璧勯噾淇℃伅 * @@ -80,11 +94,144 @@ if (previewInfo != null && !StringUtil.isNullOrEmpty(previewInfo.getContent())) { dto = new Gson().fromJson(previewInfo.getContent(), MoneyStatisticVO.class); } else { - dto = userMoneyControllerV2.createMoneyStatistic(uid); + dto = createMoneyStatistic(uid); } JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(dto)); } + private MoneyStatisticVO createMoneyStatistic(Long uid) { + UserInfo user = userInfoService.getUserById(uid); + + MoneyStatisticVO vo = new MoneyStatisticVO(); + vo.setBalanceMoney(user.getMyHongBao()); + Date minDate = null; + Date maxDate = null; + long timeStamp = System.currentTimeMillis(); + List<UserMoneyDetailTypeEnum> typeList = new ArrayList<>(); + + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(timeStamp); + + typeList.clear(); + typeList.add(UserMoneyDetailTypeEnum.extract); + typeList.add(UserMoneyDetailTypeEnum.extractNew); + typeList.add(UserMoneyDetailTypeEnum.extractVerify); + typeList.add(UserMoneyDetailTypeEnum.extractVerifyNew); + typeList.add(UserMoneyDetailTypeEnum.extractReject); + typeList.add(UserMoneyDetailTypeEnum.extractAutoWX); + + // 鏈湀鎻愮幇 + 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); + vo.setMonthExtractMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs()); + + // 涓婃湀鎻愮幇 + 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, 1).abs()); + + minDate = new Date(0L); + maxDate = new Date(timeStamp); + // 绱鎴愬姛鎻愮幇 + vo.setTotalExtractMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate, 1).abs()); + + // 绱鑷喘杩斿埄 + typeList.clear(); + typeList.add(UserMoneyDetailTypeEnum.fanli); + typeList.add(UserMoneyDetailTypeEnum.fanliNew); + typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuanNew); + typeList.add(UserMoneyDetailTypeEnum.orderReward); + typeList.add(UserMoneyDetailTypeEnum.orderRewardNew); + vo.setTotalFanLiMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs()); + + // 绱鍒嗕韩璧� + typeList.clear(); + typeList.add(UserMoneyDetailTypeEnum.share); + typeList.add(UserMoneyDetailTypeEnum.shareNew); + typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan); + vo.setTotalShareMoney( + userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs()); + + // 绱閭�璇疯禋 + typeList.clear(); + typeList.add(UserMoneyDetailTypeEnum.invite); + typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan); + typeList.add(UserMoneyDetailTypeEnum.inviteAndShare); + typeList.add(UserMoneyDetailTypeEnum.subsidy); + typeList.add(UserMoneyDetailTypeEnum.teamReward); + vo.setTotalInviteMoney( + 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); + vo.setMonthSettleMoney(hongBaoV2CountService.sumMoneyBySettleTimeAndUid(uid, minDate, maxDate)); + + // 涓婃湀鏀惰揣 + 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.setLastMonthSettleMoney(hongBaoV2CountService.sumMoneyBySettleTimeAndUid(uid, minDate, maxDate)); + + // 寰呯‘璁ゆ敹璐э紙180澶╁唴锛� + vo.setNotSettleMoney(hongBaoV2CountService.sumMoneyByANotSettleAndUid(uid)); + + // 浠婃棩棰勪及 + calendar.add(Calendar.DAY_OF_YEAR, -1); + minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + vo.setTodayPredict(cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, null))); + + // 鏈湀棰勪及 + 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); + vo.setMonthPredict(cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, maxDate))); + return vo; + } + + private MoneyPredictVO cratePredictVO(List<OrderMoneyDailyCount> list) { + MoneyPredictVO predictVO = new MoneyPredictVO(); + predictVO.setMineNum(0); + predictVO.setTeamNum(0); + predictVO.setMineMoney(BigDecimal.valueOf(0)); + predictVO.setTeamMoney(BigDecimal.valueOf(0)); + BigDecimal hundred = BigDecimal.valueOf(100); + if (list != null && list.size() > 0) { + for (OrderMoneyDailyCount dailyCount : list) { + if (dailyCount.getOrderNum() != null) + predictVO.setMineNum(predictVO.getMineNum() + dailyCount.getOrderNum()); + if (dailyCount.getOrderNumTeam() != null) + predictVO.setTeamNum(predictVO.getTeamNum() + dailyCount.getOrderNumTeam()); + if (dailyCount.getIncome() != null) + predictVO.setMineMoney(predictVO.getMineMoney() + .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncome()), hundred))); + if (dailyCount.getIncomeTeam() != null) + predictVO.setTeamMoney(predictVO.getTeamMoney() + .add(MoneyBigDecimalUtil.div(BigDecimal.valueOf(dailyCount.getIncomeTeam()), hundred))); + } + } + predictVO.setTotalNum(predictVO.getTeamNum() + predictVO.getMineNum()); + predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney())); + return predictVO; + } /** * 淇濆瓨鎻愮幇璁板綍 @@ -96,14 +243,14 @@ * @param out */ @RequestMapping(value = "saveExtractRecord") - public void saveExtractRecord(String callback, AcceptData acceptData, Long uid, String time, BigDecimal money, + public void saveExtractRecord(String callback, AcceptData acceptData, Long uid, String dayTime, BigDecimal money, PrintWriter out) { if (uid == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); return; } try { - previewInfoService.saveExtractRecord(uid, time, money); + previewInfoService.saveExtractRecord(uid, dayTime, money); } catch (PreviewInfoException e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); } @@ -123,26 +270,54 @@ list = new ArrayList<>(); JSONArray JSONArray = new JSONArray(); - for (Extract extract : list) { - Date receiveTime = extract.getReceiveTime(); - if (receiveTime == null) { - receiveTime = new Date(extract.getExtractTime()); - } - String account = "鏀粯瀹濓細" + UserUtil.filterAlipayAccount(extract.getAccount()); - account = account + "-濮撳悕锛�" + UserUtil.filterAlipayName(extract.getName()); + + if (list.size() > 0) { + for (Extract extract : list) { + Date receiveTime = extract.getReceiveTime(); + if (receiveTime == null) { + continue; + } + String account = "鏀粯瀹濓細" + UserUtil.filterAlipayAccount(extract.getAccount()); + account = account + "-濮撳悕锛�" + UserUtil.filterAlipayName(extract.getName()); - JSONObject object = new JSONObject(); - object.put("id", extract.getId()); - object.put("title", "浣犱簬" + TimeUtil.formatDate(receiveTime) + "鎻愮幇鎴愬姛"); - object.put("account", account); - object.put("money", "楼" + extract.getMoney().setScale(2).toString()); - JSONArray.add(object); + JSONObject object = new JSONObject(); + object.put("id", extract.getId()); + object.put("title", "浣犱簬" + TimeUtil.formatDate(receiveTime) + "鎻愮幇鎴愬姛"); + object.put("account", account); + object.put("money", "楼" + extract.getMoney().setScale(2).toString()); + JSONArray.add(object); + } } + JSONObject json = new JSONObject(); json.put("count", JSONArray.size()); json.put("list", JSONArray); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json)); + } + + /** + * 鍒犻櫎鎻愮幇璁板綍 + * + * @param callback + * @param acceptData + * @param uid + * @param vo + * @param out + */ + @RequestMapping(value = "previewExtractRecord") + public void previewExtractRecord(String callback, AcceptData acceptData, Long uid, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + try { + previewInfoService.previewExtractRecord(uid); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("宸叉坊鍔犻瑙�")); + } catch (PreviewInfoException e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); + e.printStackTrace(); + } } /** @@ -212,7 +387,7 @@ * @param out */ @RequestMapping(value = "saveMoneyArrival") - public void saveMoneyArrival(String callback, AcceptData acceptData, Long uid, BigDecimal money, String time, + public void saveMoneyArrival(String callback, AcceptData acceptData, Long uid, BigDecimal money, String dayTime, String orderNo, PrintWriter out) { if (uid == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); @@ -220,10 +395,12 @@ } try { - String link = previewInfoService.saveMoneyArrival(uid, money, time, orderNo); + String link = previewInfoService.saveMoneyArrival(uid, money, dayTime, orderNo); JSONObject object = new JSONObject(); object.put("link", link); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object)); + } catch (PreviewInfoException e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); } catch (Exception e) { LogHelper.errorDetailInfo(e); JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淇濆瓨澶辫触")); @@ -243,4 +420,26 @@ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object)); } + /** + * 鎺ㄩ�侀瑙� + * @param callback + * @param acceptData + * @param uid + * @param vo + * @param out + */ + @RequestMapping(value = "saveOrderInfo") + public void saveOrderInfo(String callback, AcceptData acceptData, Long uid, Integer type, Integer num, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (type == null || num == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇峰畬鍠勬暟鎹�")); + return; + } + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("淇濆瓨鎴愬姛")); + } } -- Gitblit v1.8.0