From a1c01c3b1df1034eecd0e35a0bf75cf0a2bf5d92 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 03 六月 2019 14:27:58 +0800 Subject: [PATCH] 精选库更新改为1个小时更新2000条数据 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 159 +++++++++++----------------------------------------- 1 files changed, 35 insertions(+), 124 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..51259e6 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; @@ -107,16 +86,10 @@ 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 +112,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 +144,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 +165,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 +183,7 @@ // 鍑洪敊浜嗗氨涓嶅鐞嗚璁㈠崟浜嗭紝闇�瑕佸畾鏈熸鏌� // 鏇存敼涓㈠け璁㈠崟鐨勭姸鎬� - lostOrderService.processSuceess(orderId); + lostOrderService.processSuceess(orderId, Constant.SOURCE_TYPE_TAOBAO); } catch (HongBaoException e1) { e1.printStackTrace(); @@ -273,30 +220,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 @@ -356,21 +279,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 @@ -579,8 +487,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()); @@ -731,7 +639,6 @@ // 閭�璇疯禋鍒拌处 if (invitemoney.compareTo(new BigDecimal(0)) > 0) { - userInfoMapper.addHongBaoByUid(uid, invitemoney); // 娣诲姞鏂扮増璇︽儏璁板綍 try { @@ -752,7 +659,9 @@ UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, (int) validCount, (int) weiQuanCount, (int) invalidCount, invitemoney, new Date()); - userMoneyDetailMapper.insert(userMoneyDetail); + + // 澧炲姞璧勯噾 + userMoneyService.addUserMoney(uid, invitemoney, userMoneyDetail); // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId()); } catch (UserMoneyDetailException e) { @@ -829,7 +738,6 @@ */ if (sharemoney.compareTo(new BigDecimal(0)) > 0) { - userInfoMapper.addHongBaoByUid(uid, sharemoney); // 娣诲姞鏂扮増璇︽儏璁板綍 try { // 璁$畻鏈湀鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗� @@ -850,7 +758,9 @@ UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, (int) validCount, (int) weiQuanCount, (int) invalidCount, sharemoney, new Date()); - userMoneyDetailMapper.insert(userMoneyDetail); + // 娣诲姞璧勯噾 + userMoneyService.addUserMoney(uid, sharemoney, userMoneyDetail); + // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId()); } catch (UserMoneyDetailException e) { @@ -880,12 +790,6 @@ } - @Resource - private CommonOrderService commonOrderService; - - @Resource - private HongBaoV2Service hongBaoV2Service; - @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) @Override public void processShopingFanliOrderNew(String orderId, List<TaoBaoOrder> orderList) @@ -901,11 +805,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 +827,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 +895,7 @@ try { commonOrderList = commonOrderService.addTaoBaoOrder(orderList, uid); hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_ZIGOU); + } catch (CommonOrderException e) { try { LogHelper.errorDetailInfo(e, "addTaoBaoOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId); @@ -1003,7 +914,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