From ccc87b5ac3d6271f95bb8bd89d2f38d765365702 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期四, 21 五月 2020 11:08:29 +0800 Subject: [PATCH] 团队订单搜索 + 粉丝搜索 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java | 195 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 194 insertions(+), 1 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 e162767..aef86ba 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,13 +1,17 @@ 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; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import javax.annotation.Resource; @@ -19,18 +23,27 @@ 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.dto.user.UserInviteLevelEnum; 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; +import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum; import com.yeshi.fanli.entity.order.CommonOrder; 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.order.dividents.TeamDividentsSourceOrder; +import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrderUserMap; import com.yeshi.fanli.entity.system.ConfigKeyEnum; import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; @@ -46,12 +59,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; @@ -59,6 +76,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; @@ -67,6 +85,7 @@ 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; @@ -119,6 +138,7 @@ @Resource private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService; + @Resource private JumpDetailV2Service jumpDetailV2Service; @@ -136,6 +156,19 @@ @Resource private PreviewInfoService previewInfoService; + + @Resource + private TeamDividentsSourceOrderService teamDividentsSourceOrderService; + + @Resource + private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService; + + @Resource + private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService; + + @Resource + private ThreeSaleDetailService threeSaleDetailService; + /** @@ -759,4 +792,164 @@ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } + + /** + * 鐢ㄦ埛璁㈠崟缁熻 + * + * @param acceptData + * @param uid + * 鐢ㄦ埛id + * type 绫诲瀷锛�0鍏ㄩ儴銆�1娣樺疂 2浜笢銆佹嫾澶氬 + * @param out + */ + @RequestMapping(value = "teamOrderSearch", method = RequestMethod.POST) + public void teamOrderSearch(String callback, AcceptData acceptData, Long uid, String key, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + + List<TeamOrderVO> resultList = new ArrayList<>(); + if (StringUtil.isNullOrEmpty(key)) { + JSONObject data = new JSONObject(); + data.put("list", resultList); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + return; + } + + try { + // 鏌ヨ姝ゅ崟鏄惁瀛樺湪鍒嗙孩 + List<TeamOrderVO> tempList = new ArrayList<>(); + List<TeamDividentsSourceOrder> listSourceOrder = teamDividentsSourceOrderService.listByOrderNo(key); + if (listSourceOrder != null && listSourceOrder.size() > 0) { + for (TeamDividentsSourceOrder sourceOrder: listSourceOrder) { + List<TeamDividentsSourceOrderUserMap> listDividents = + teamDividentsSourceOrderUserMapService.listBySourceOrderIdAndTargetUid(sourceOrder.getId(), uid); + if (listDividents != null && listDividents.size() > 0) { + Integer state = null; + Date sendTime = null; + BigDecimal money = BigDecimal.ZERO; + for (TeamDividentsSourceOrderUserMap teamDividents: listDividents) { + money = money.add(teamDividents.getMoney()); + state = teamDividents.getState(); + sendTime = teamDividents.getSendTime(); + } + + TeamOrderVO teamOrderVO = new TeamOrderVO(); + teamOrderVO.setSourceType(sourceOrder.getSourceType()); + teamOrderVO.setOrderNo(sourceOrder.getOrderNo()); + teamOrderVO.setDivMoney(money); + teamOrderVO.setDivState(state); + if (sendTime != null) + teamOrderVO.setAccountTime(TimeUtil.formatDate(sendTime)); + tempList.add(teamOrderVO); + } + } + } + + if (tempList.size() > 0) { + List<CommonOrder> listOrder = commonOrderService.listByOrderNo(key); + if(listOrder != null && listOrder.size() > 0) { + Map<String, TeamOrderVO> map = new HashMap<String, TeamOrderVO>(); + for (CommonOrder order: listOrder) { + Integer sourceType = order.getSourceType(); + String orderNo = order.getOrderNo(); + String mapKey = orderNo + "##" + sourceType; + + TeamOrderVO teamVO = map.get(mapKey); + if (teamVO != null) { + teamVO.setPayment(teamVO.getPayment().add(order.getPayment())); + } else { + Long orderUid = order.getUserInfo().getId(); + teamVO = new TeamOrderVO(); + teamVO.setUid(orderUid); + teamVO.setOrderNo(orderNo); + teamVO.setSourceType(sourceType); + teamVO.setSourceName(order.getChildSourceType()); + teamVO.setPayment(order.getPayment()); + teamVO.setDownTime(TimeUtil.formatDate(order.getThirdCreateTime())); + + // 涓嬪崟鏃剁瓑绾� + UserLevelEnum userLevel = UserLevelUtil.getByOrderRank(order.getUrank()); + if (userLevel == null) + userLevel = UserLevelEnum.daRen; + teamVO.setUserRank(UserLevelUtil.getShowLevel(userLevel).name()); + + // 绮変笣鍩烘湰淇℃伅 + UserInfo userInfo = userInfoService.getUserByIdWithMybatis(orderUid); + if (userInfo == null) { + continue; + } + teamVO.setUid(orderUid); + teamVO.setNickName(userInfo.getNickName()); + teamVO.setPortrait(userInfo.getPortrait()); + + // 绮変笣浠f暟 + ThreeSaleDetail threeDetail = threeSaleDetailService.getByBossUidAndWorkerUid(uid, orderUid); + if (threeDetail == null) { + continue; + } + teamVO.setTeamGrade(threeDetail.getLevel()); + } + // 缁撶畻鏃堕棿 + Date settleTime = order.getSettleTime(); + if (settleTime != null) + teamVO.setSettleTime(TimeUtil.formatDate(settleTime)); + + // 鍒嗙孩淇℃伅 + for (TeamOrderVO teamOrderVO: tempList) { + if (teamOrderVO.getSourceType() == sourceType) { + teamVO.setDivMoney(teamOrderVO.getDivMoney()); + teamVO.setDivState(teamOrderVO.getDivState()); + teamVO.setAccountTime(teamOrderVO.getAccountTime()); + break; + } + } + + // 缁存潈淇℃伅 + Integer orderState = order.getState(); + if (!StringUtil.isNullOrEmpty(teamVO.getServiceTime()) && CommonOrder.STATE_WQ == orderState) { + if (sourceType == Constant.SOURCE_TYPE_TAOBAO) { + UserOrderWeiQuanRecord record = userOrderWeiQuanRecordService.selectByOrderInfoAndUid(uid, order.getTradeId(), sourceType); + if (record != null) { + teamVO.setServiceTime(TimeUtil.formatDate(record.getCreateTime())); + } + } + } + map.put(mapKey, teamVO); + } + + // 閬嶅巻鏀惧叆鏁扮粍 + Iterator<Entry<String, TeamOrderVO>> entries = map.entrySet().iterator(); + while(entries.hasNext()){ + Entry<String, TeamOrderVO> entry = entries.next(); + resultList.add(entry.getValue()); + } + } + } + + + 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浣嶅皬鏁� + return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value) + ""); + } + } + }); + Gson gson = gsonBuilder.create(); + + JSONObject data = new JSONObject(); + data.put("list", gson.toJson(resultList)); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�")); + return; + } + } } -- Gitblit v1.8.0