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/UserOrderControllerV2.java | 225 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 200 insertions(+), 25 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java index a652894..af9c125 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java @@ -1,6 +1,7 @@ package com.yeshi.fanli.controller.client.v2; import java.io.PrintWriter; +import java.lang.reflect.Type; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -18,9 +19,17 @@ import org.yeshi.utils.JsonUtil; import org.yeshi.utils.NumberUtil; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonElement; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; import com.yeshi.fanli.dto.order.UserTeamLevel; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.user.HongBaoV2; +import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum; +import com.yeshi.fanli.entity.bus.user.ThreeSaleDetail; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord; import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; @@ -28,6 +37,7 @@ import com.yeshi.fanli.entity.order.CommonOrderGoods; import com.yeshi.fanli.entity.order.ESOrder; import com.yeshi.fanli.entity.order.HongBaoOrder; +import com.yeshi.fanli.entity.order.UserOrderWeiQuanRecord; import com.yeshi.fanli.entity.system.ConfigKeyEnum; import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; @@ -43,11 +53,16 @@ import com.yeshi.fanli.service.inter.order.HongBaoV2Service; import com.yeshi.fanli.service.inter.order.OrderHongBaoMapService; import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; +import com.yeshi.fanli.service.inter.order.UserOrderWeiQuanRecordService; +import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderService; +import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService; import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService; +import com.yeshi.fanli.service.inter.user.PreviewInfoService; import com.yeshi.fanli.service.inter.user.UserCustomSettingsService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService; import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.user.invite.UserInviteService; import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; @@ -55,6 +70,7 @@ 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.VersionUtil; import com.yeshi.fanli.util.account.UserUtil; import com.yeshi.fanli.util.user.UserLevelUtil; @@ -63,6 +79,8 @@ import com.yeshi.fanli.vo.order.HongBaoCountVO; import com.yeshi.fanli.vo.order.OrderCountVO; import com.yeshi.fanli.vo.order.OrderRebateVO; +import com.yeshi.fanli.vo.order.TeamOrderVO; +import com.yeshi.fanli.vo.user.MineInfoVO; import com.yeshi.fanli.vo.user.UserInfoExtraVO; import com.yeshi.fanli.vo.user.UserSettingsVO; @@ -114,6 +132,7 @@ @Resource private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService; + @Resource private JumpDetailV2Service jumpDetailV2Service; @@ -128,6 +147,23 @@ @Resource private OrderHongBaoMapService orderHongBaoMapService; + + @Resource + private PreviewInfoService previewInfoService; + + @Resource + private TeamDividentsSourceOrderService teamDividentsSourceOrderService; + + @Resource + private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService; + + @Resource + private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService; + + @Resource + private ThreeSaleDetailService threeSaleDetailService; + + /** * 璁㈠崟鍒楄〃 @@ -246,17 +282,22 @@ } try { + boolean notBackSuVip = false; + if (!VersionUtil.greaterThan_2_1_2(acceptData.getPlatform(), acceptData.getVersion())) { + notBackSuVip = true; + } + // 绛涢�夌粨鏋滈《閮ㄧ粺璁� String validMoney = "0.00"; String invalidMoney = "0.00"; if (page == 1) { BigDecimal predictMoney = hongBaoV2CountService.getRewardMoneyByToSearch(uid, dateType, orderType, 1, - orderNo, state, startTime, endTime, listSource); + orderNo, state, startTime, endTime, listSource, notBackSuVip); if (predictMoney != null) validMoney = predictMoney.setScale(2, BigDecimal.ROUND_DOWN).toString(); BigDecimal postSaleMoney = hongBaoV2CountService.getRewardMoneyByToSearch(uid, dateType, orderType, 2, - orderNo, state, startTime, endTime, listSource); + orderNo, state, startTime, endTime, listSource, notBackSuVip); if (postSaleMoney != null) invalidMoney = postSaleMoney.setScale(2, BigDecimal.ROUND_DOWN).toString(); @@ -274,9 +315,10 @@ List<CommonOrderVO> list = null; if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) { list = commonOrderService.getOrderList(acceptData, page, uid, state, orderType, - orderState, orderNo, startTime, endTime, dateType, listSource); + orderState, orderNo, startTime, endTime, dateType, listSource, notBackSuVip); + count = commonOrderService.countOrderList(uid, state, orderType, orderState, orderNo, - startTime, endTime, dateType, listSource); + startTime, endTime, dateType, listSource, notBackSuVip); } else { list = commonOrderService.getOrderByUid(acceptData, page, uid, state, orderType, orderState, orderNo, startTime, endTime, dateType, listSource); @@ -451,32 +493,36 @@ show = hongBaoV2CountService.getHongBaoCount(uid, null) > 0; } - BigDecimal selfMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 1, null); - BigDecimal shareMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 2, null); + BigDecimal selfMoney = null; + BigDecimal shareMoney = null; + BigDecimal teamMoney = null; + // VIP棰勮淇℃伅 + if (VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) { + String redisContent = previewInfoService.getRedisContent(uid, PreviewEnum.mineInfo); + if (!StringUtil.isNullOrEmpty(redisContent)) { + MineInfoVO vo = new Gson().fromJson(redisContent, MineInfoVO.class); + if (vo != null) { + if (!StringUtil.isNullOrEmpty(vo.getSelfRebate())) + selfMoney = new BigDecimal(vo.getSelfRebate()); + if (!StringUtil.isNullOrEmpty(vo.getShareBonus())) + shareMoney = new BigDecimal(vo.getShareBonus()); + if (!StringUtil.isNullOrEmpty(vo.getTeamBonus())) + teamMoney = new BigDecimal(vo.getTeamBonus()); + } + } + } + + if (selfMoney == null) { + selfMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 1, null); + shareMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 2, null); + teamMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 3, null); + } + JSONObject data = new JSONObject(); data.put("show", show); data.put("selfMoney", selfMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); data.put("shareMoney", shareMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); - - - BigDecimal teamMoney = new BigDecimal(0); - if (!VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) { - teamMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 3, null); - } else { - BigDecimal bonus = null; - BigDecimal dividend = null; // TODO 鍒嗙孩缁熻 - if (dateType == 4) { // 宸插埌璐� - dividend = new BigDecimal(0); - bonus = hongBaoV2CountService.geBonusByuid(uid, dateType, 3, 2); - } else { // 鏈け鏁� - bonus = hongBaoV2CountService.geBonusByuid(uid, dateType, 3, 4); - } - - dividend = new BigDecimal(0); - // 鎬诲洟闃熷鍔� - teamMoney = bonus.add(dividend); - } data.put("inviteMoney", teamMoney.setScale(2, BigDecimal.ROUND_DOWN).toString()); out.print(JsonUtil.loadTrueResult(data)); } @@ -746,4 +792,133 @@ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } + + /** + * 鐢ㄦ埛璁㈠崟缁熻 + * + * @param acceptData + * @param uid + * 鐢ㄦ埛id + * type 绫诲瀷锛�0鍏ㄩ儴銆�1娣樺疂 2浜笢銆佹嫾澶氬 + * @param out + */ + @RequestMapping(value = "teamOrderSearch") + public void teamOrderSearch(String callback, AcceptData acceptData, Long uid, Integer page, String key, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + List<TeamOrderVO> resultList = new ArrayList<>(); + if (StringUtil.isNullOrEmpty(key)) { + JSONObject data = new JSONObject(); + data.put("count", 0); + data.put("list", resultList); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + return; + } + + try { + if (page == null) + page = 1; + + List<TeamOrderVO> list = teamDividentsSourceOrderUserMapService.searchByOrderNoOrSourceUid((page-1)*20, 20, uid, key); + if (list == null) { + list = new ArrayList<>(); + } + + if (list.size() > 0) { + for (int i = 0; i < list.size(); i ++) { + TeamOrderVO teamVO = list.get(i); + // 绮変笣浠f暟 + ThreeSaleDetail threeDetail = threeSaleDetailService.getByBossUidAndWorkerUid(uid, teamVO.getUid()); + if (threeDetail == null) { + list.remove(i); + i--; + continue; + } + teamVO.setTeamGrade(threeDetail.getLevel()); + + // 绮変笣鍩烘湰淇℃伅 + UserInfo userInfo = userInfoService.getUserByIdWithMybatis(teamVO.getUid()); + if (userInfo == null) { + list.remove(i); + i--; + continue; + } + teamVO.setNickName(userInfo.getNickName()); + teamVO.setPortrait(userInfo.getPortrait()); + + + BigDecimal payment = BigDecimal.ZERO; + List<CommonOrder> listOrder = commonOrderService.listBySourceTypeAndOrderId(teamVO.getSourceType(), teamVO.getOrderNo()); + if (listOrder != null && listOrder.size() > 0) { + for (CommonOrder order: listOrder) { + payment = payment.add(order.getPayment()); + teamVO.setSourceName(order.getChildSourceType()); + teamVO.setDownTime(TimeUtil.formatDate(order.getThirdCreateTime())); + + // 涓嬪崟鏃剁瓑绾� + UserLevelEnum userLevel = UserLevelUtil.getByOrderRank(order.getUrank()); + if (userLevel == null) + userLevel = UserLevelEnum.daRen; + teamVO.setUserRank(UserLevelUtil.getShowLevel(userLevel).name()); + + // 缁撶畻鏃堕棿 + Date settleTime = order.getSettleTime(); + if (settleTime != null) + teamVO.setSettleTime(TimeUtil.formatDate(settleTime)); + + // 缁存潈淇℃伅 + Integer orderState = order.getState(); + if (!StringUtil.isNullOrEmpty(teamVO.getServiceTime()) && CommonOrder.STATE_WQ == orderState) { + if (order.getSourceType() == Constant.SOURCE_TYPE_TAOBAO) { + UserOrderWeiQuanRecord record = userOrderWeiQuanRecordService.selectByOrderInfoAndUid(uid, order.getTradeId(), order.getSourceType()); + if (record != null) { + teamVO.setServiceTime(TimeUtil.formatDate(record.getCreateTime())); + } + } + } + + } + } + teamVO.setPayment(payment); + + + // 璁㈠崟鏃堕棿淇℃伅 + String orderTime = "涓嬪崟" + teamVO.getDownTime() ; + if (!StringUtil.isNullOrEmpty(teamVO.getSettleTime())) { + orderTime += "\n鏀惰揣" + teamVO.getSettleTime(); + } + if (!StringUtil.isNullOrEmpty(teamVO.getServiceTime())) { + orderTime += "\n鍞悗" + teamVO.getServiceTime(); + } + teamVO.setOrderTime(orderTime); + } + } + + + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); + gsonBuilder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { + @Override + public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); + } else { + // 淇濈暀2浣嶅皬鏁� + value = value.setScale(2, BigDecimal.ROUND_DOWN); + return new JsonPrimitive(value.toString()); + } + } + }); + Gson gson = gsonBuilder.create(); + JSONObject data = new JSONObject(); + data.put("count", teamDividentsSourceOrderUserMapService.countSearchByOrderNoOrSourceUid(uid, key)); + data.put("list", gson.toJson(list)); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�")); + return; + } + } } -- Gitblit v1.8.0