From dd24286b6da752433ba5b2360929a04e5040936c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 29 五月 2019 10:57:15 +0800 Subject: [PATCH] 叮咚呛修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 146 ++++++++++-------------------------------------- 1 files changed, 30 insertions(+), 116 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java index 4e86ce6..ef1b81c 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java @@ -17,14 +17,11 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import com.yeshi.fanli.dao.mybatis.AccountMessageMapper; -import com.yeshi.fanli.dao.mybatis.HongBaoManageMapper; import com.yeshi.fanli.dao.mybatis.HongBaoV2Mapper; import com.yeshi.fanli.dao.mybatis.UserInfoMapper; import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper; import com.yeshi.fanli.dao.mybatis.order.HongBaoOrderMapper; import com.yeshi.fanli.dao.mybatis.order.OrderMapper; -import com.yeshi.fanli.dao.mybatis.share.PidUserMapper; import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper; import com.yeshi.fanli.dto.HongBao; import com.yeshi.fanli.entity.bus.user.HongBaoV2; @@ -46,14 +43,12 @@ import com.yeshi.fanli.exception.order.CommonOrderException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.hongbao.AccountDetailsHongBaoMapService; -import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service; import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService; import com.yeshi.fanli.service.inter.order.CommonOrderService; import com.yeshi.fanli.service.inter.order.LostOrderService; import com.yeshi.fanli.service.inter.order.OrderProcessService; -import com.yeshi.fanli.service.inter.order.OrderService; -import com.yeshi.fanli.service.inter.push.PushService; +import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService; import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService; @@ -63,7 +58,6 @@ import com.yeshi.fanli.service.inter.user.UserSystemCouponService; import com.yeshi.fanli.util.CMQManager; import com.yeshi.fanli.util.Constant; -import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoConstant; import com.yeshi.fanli.util.TimeUtil; @@ -77,22 +71,7 @@ private OrderMapper orderMapper; @Resource - private PidUserMapper pidUserMapper; - - @Resource private UserInfoMapper userInfoMapper; - - @Resource - private HongBaoManageMapper hongBaoManageMapper; - - @Resource - private AccountMessageMapper accountMessageMapper; - - @Resource - private OrderService orderService; - - @Resource - private PushService pushService; @Resource private UserNotificationService userNotificationService; @@ -106,17 +85,12 @@ @Resource private TaoBaoOrderService taoBaoOrderService; - @Resource - private RedisManager redisManager; @Resource private LostOrderService lostOrderService; @Resource private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper; - - @Resource - private HongBaoManageService hongBaoManageService; @Resource private AccountDetailsHongBaoMapService accountDetailsHongBaoMapService; @@ -139,8 +113,17 @@ @Resource private UserMoneyService userMoneyService; + @Resource + private TaoBaoBuyRelationMapService taoBaoBuyRelationMapService; + + @Resource + private CommonOrderService commonOrderService; + + @Resource + private HongBaoV2Service hongBaoV2Service; + @Override - public void processOrder(Map<String, List<TaoBaoOrder>> orders) { + public synchronized void processOrder(Map<String, List<TaoBaoOrder>> orders) { List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); // 鍒嗙鍑鸿繑鍒╄鍗曚笌鍒嗕韩璧氳鍗� @@ -162,7 +145,7 @@ shareOrderMap.put(orderId, list); } else { - PidUser pidUser = pidUserMapper.selectByPid(pid); + PidUser pidUser = null;//pidUserMapper.selectByPid(pid); if (pidUser != null && pidUser.getType() == PidUser.TYPE_SHARE_GOODS) {// 鍟嗗搧鍒嗕韩璁㈠崟 // List<PidOrder> pidOrderList = new ArrayList<>(); // for (TaoBaoOrder order : list) { @@ -183,41 +166,6 @@ processShareGoodsOrder(shareOrderMap); } - /** - * 鍒╃敤redis鐨勫師瀛愭�у皢璁㈠崟鍙烽攣浣忥紝涓嶈鍏朵粬澶勭悊 - * - * @param orderId - */ - private void redisLockOrder(String orderId) { - String key = "doorder-" + orderId; - redisManager.cacheCommonString(key, "1"); - } - - /** - * 璁㈠崟瑙i攣 - * - * @param orderId - */ - private void redisUnlockOrder(String orderId) { - String key = "doorder-" + orderId; - redisManager.removeCommonString(key); - } - - /** - * 璁㈠崟鏄惁琚攣浣忎簡 - * - * @param orderId - * @return - */ - private boolean isRedisLockOrder(String orderId) { - String key = "doorder-" + orderId; - String doing = redisManager.getCommonString(key); - if (!StringUtil.isNullOrEmpty(doing)) - return true; - else - return false; - } - @Override public void processShopingFanliOrder(Map<String, List<TaoBaoOrder>> orders) { // 鏌ヨ鍦∣rder涓槸鍚﹀瓨鍦ㄨ璁㈠崟鍙� @@ -236,7 +184,7 @@ // 鍑洪敊浜嗗氨涓嶅鐞嗚璁㈠崟浜嗭紝闇�瑕佸畾鏈熸鏌� // 鏇存敼涓㈠け璁㈠崟鐨勭姸鎬� - lostOrderService.processSuceess(orderId); + lostOrderService.processSuceess(orderId, Constant.SOURCE_TYPE_TAOBAO); } catch (HongBaoException e1) { e1.printStackTrace(); @@ -273,30 +221,6 @@ } } - } - - /** - * 鑾峰彇鏈�澶х殑鍒涘缓鏃堕棿涓庢渶灏忕殑鍒涘缓鏃堕棿 - * - * @param hongBaoList - * @return - */ - private Map<String, Long> getMaxAndMinCreateTime(List<HongBao> hongBaoList) { - if (hongBaoList.size() > 0) { - Map<String, Long> map = new HashMap<>(); - long min = hongBaoList.get(0).getCreatetime(); - long max = hongBaoList.get(0).getCreatetime(); - for (HongBao hb : hongBaoList) { - if (hb.getCreatetime() > max) - max = hb.getCreatetime(); - if (hb.getCreatetime() < min) - min = hb.getCreatetime(); - } - map.put("max", max); - map.put("min", min); - return map; - } - return null; } @Override @@ -358,20 +282,6 @@ } } - /** - * 鍒ゆ柇璁㈠崟鏄惁澶辨晥 鍏ㄩ儴璁㈠崟澶辨晥鎵嶅垽鏂负澶辨晥 - * - * @param list - * @return - */ - private boolean isOrderValid(List<TaoBaoOrder> list) { - int validCount = 0; - for (TaoBaoOrder order : list) { - if (order.getOrderState().equalsIgnoreCase("璁㈠崟澶辨晥")) - validCount++; - } - return validCount >= list.size(); - } @Resource private HongBaoOrderMapper hongBaoOrderMapper; @@ -579,8 +489,8 @@ if (drawBack == null) {// 杩樻湭鎵f try { taoBaoWeiQuanDrawBackService.doWeiQuanFanli(order.getOrderId()); - taoBaoWeiQuanDrawBackService.doWeiQuanInvite(order.getOrderId()); taoBaoWeiQuanDrawBackService.doWeiQuanShare(order.getOrderId()); + taoBaoWeiQuanDrawBackService.doWeiQuanInvite(order.getOrderId()); } catch (TaoBaoWeiQuanException e) { try { LogHelper.errorDetailInfo(e, null, "璁㈠崟鍙�:" + order.getOrderId()); @@ -880,11 +790,7 @@ } - @Resource - private CommonOrderService commonOrderService; - @Resource - private HongBaoV2Service hongBaoV2Service; @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) @Override @@ -901,11 +807,11 @@ String pid = String.format("mm_%s_%s_%s", configList.get(0).getAccountId(), orderList.get(0).getSourceMediaId(), orderList.get(0).getAdPositionId()); - Order oldOrder = orderMapper.selectOrderByOrderId(orderId); + Order oldOrder = orderMapper.selectOrderByOrderIdAndOrderType(orderId, Constant.SOURCE_TYPE_TAOBAO); // 鍘熸潵涓嶅瓨鍦ㄨ鍗� Long uid = null; if (oldOrder == null) { - PidUser pidUser = pidUserMapper.selectByPid(pid); + PidUser pidUser =null;// pidUserMapper.selectByPid(pid); if (pidUser != null) { uid = pidUser.getUid(); @@ -923,15 +829,21 @@ orderMapper.insertSelective(order); oldOrder = order; } else { - UserExtraTaoBaoInfo info = null; + + Long targetUid = null; if (pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID) && !StringUtil.isNullOrEmpty(orderList.get(0).getRelationId())) { - info = userExtraTaoBaoInfoService.getByRelationId(orderList.get(0).getRelationId()); + targetUid = taoBaoBuyRelationMapService.selectUidByRelationId(orderList.get(0).getRelationId()); + } else if (!StringUtil.isNullOrEmpty(orderList.get(0).getSpecialId())) { - info = userExtraTaoBaoInfoService.getBySpecialId(orderList.get(0).getSpecialId()); + UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService + .getBySpecialId(orderList.get(0).getSpecialId()); + if (info != null && info.getUser() != null) + targetUid = info.getUser().getId(); } - if (info != null && info.getUser() != null) { - uid = info.getUser().getId(); + + if (targetUid != null) { + uid = targetUid; // 鎻掑叆鍒癘rder涓� // 娣诲姞鍒拌鍗曚腑鍘� Order order = new Order(); @@ -985,6 +897,8 @@ try { commonOrderList = commonOrderService.addTaoBaoOrder(orderList, uid); hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_ZIGOU); + + } catch (CommonOrderException e) { try { LogHelper.errorDetailInfo(e, "addTaoBaoOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId); @@ -1003,7 +917,7 @@ orderList.get(0).getSourceMediaId(), orderList.get(0).getAdPositionId()); // 鍘熸潵涓嶅瓨鍦ㄨ鍗� Long uid = null; - PidUser pidUser = pidUserMapper.selectByPid(pid); + PidUser pidUser =null; //pidUserMapper.selectByPid(pid);-PID鏈哄埗绉婚櫎 if (pidUser != null) uid = pidUser.getUid(); else { -- Gitblit v1.8.0