From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 30 七月 2019 09:07:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 444 +++++++++++++++++++++++++------------------------------ 1 files changed, 201 insertions(+), 243 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 bb0e8e5..5f72b8a 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,23 +17,13 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import com.yeshi.fanli.dao.mybatis.AccountDetailsMapper; -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.MoneyRecordMapper; -import com.yeshi.fanli.dao.mybatis.PidOrderMapper; -import com.yeshi.fanli.dao.mybatis.ThreeSaleGiftMapper; import com.yeshi.fanli.dao.mybatis.UserInfoMapper; -import com.yeshi.fanli.dao.mybatis.hongbao.HongBaoMapper; import com.yeshi.fanli.dao.mybatis.money.UserMoneyDetailMapper; import com.yeshi.fanli.dao.mybatis.order.HongBaoOrderMapper; -import com.yeshi.fanli.dao.mybatis.order.OrderItemMapper; 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.entity.bus.user.AccountDetails; -import com.yeshi.fanli.entity.bus.user.HongBao; +import com.yeshi.fanli.dto.HongBao; import com.yeshi.fanli.entity.bus.user.HongBaoV2; import com.yeshi.fanli.entity.bus.user.Order; import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; @@ -41,92 +31,47 @@ import com.yeshi.fanli.entity.money.UserMoneyDetail; import com.yeshi.fanli.entity.order.CommonOrder; import com.yeshi.fanli.entity.order.HongBaoOrder; -import com.yeshi.fanli.entity.taobao.PidOrder; import com.yeshi.fanli.entity.taobao.PidUser; import com.yeshi.fanli.entity.taobao.TaoBaoOrder; import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig; +import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; import com.yeshi.fanli.exception.HongBaoException; -import com.yeshi.fanli.exception.ObjectStateException; import com.yeshi.fanli.exception.OrderItemException; import com.yeshi.fanli.exception.TaoBaoWeiQuanException; import com.yeshi.fanli.exception.money.UserMoneyDetailException; 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.HongBaoService; 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.OrderItemServcie; import com.yeshi.fanli.service.inter.order.OrderProcessService; -import com.yeshi.fanli.service.inter.order.OrderService; -import com.yeshi.fanli.service.inter.order.PidOrderService; -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; import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.service.inter.user.UserMoneyService; import com.yeshi.fanli.service.inter.user.UserNotificationService; +import com.yeshi.fanli.service.inter.user.UserSystemCouponService; import com.yeshi.fanli.util.CMQManager; -import com.yeshi.fanli.util.RedisManager; +import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.TaoBaoConstant; import com.yeshi.fanli.util.TimeUtil; -import com.yeshi.fanli.util.factory.AccountDetailsFactory; import com.yeshi.fanli.util.factory.UserMoneyDetailFactory; +import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil; @Service public class OrderProcessServiceImpl implements OrderProcessService { @Resource - private PidOrderMapper pidOrderMapper; - - @Resource private OrderMapper orderMapper; @Resource - private PidUserMapper pidUserMapper; - - @Resource - private HongBaoService hongBaoService; - - @Resource - private OrderItemServcie orderItemService; - - @Resource - private PidOrderService pidOrderService; - - @Resource private UserInfoMapper userInfoMapper; - - @Resource - private OrderItemMapper orderItemMapper; - - @Resource - private HongBaoMapper hongBaoMapper; - - @Resource - private HongBaoManageMapper hongBaoManageMapper; - - @Resource - private AccountDetailsMapper accountDetailsMapper; - - @Resource - private AccountMessageMapper accountMessageMapper; - - @Resource - private MoneyRecordMapper moneyRecordMapper; - - @Resource - private ThreeSaleGiftMapper threeSaleGiftMapper; - - @Resource - private OrderService orderService; - - @Resource - private PushService pushService; @Resource private UserNotificationService userNotificationService; @@ -141,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; @@ -167,38 +106,56 @@ @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + @Resource + private UserSystemCouponService userSystemCouponService; + + @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); // 鍒嗙鍑鸿繑鍒╄鍗曚笌鍒嗕韩璧氳鍗� Iterator<String> its = orders.keySet().iterator(); Map<String, List<TaoBaoOrder>> fanliOrderMap = new HashMap<>(); - Map<String, List<PidOrder>> sharePidOrderMap = new HashMap<>(); Map<String, List<TaoBaoOrder>> shareOrderMap = new HashMap<>(); while (its.hasNext()) { String orderId = its.next(); + if (orders.get(orderId) != null && orders.get(orderId).size() > 0) { List<TaoBaoOrder> list = orders.get(orderId); + String pid = String.format("mm_%s_%s_%s", configList.get(0).getAccountId(), + list.get(0).getSourceMediaId(), list.get(0).getAdPositionId()); - if (!StringUtil.isNullOrEmpty(list.get(0).getRelationId())) { - shareOrderMap.put(orderId, list); - } else if (!StringUtil.isNullOrEmpty(list.get(0).getSpecialId())) { + if (!StringUtil.isNullOrEmpty(list.get(0).getSpecialId()) + || pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID)) {// 璁剧疆娓犻亾ID褰撳仛浼氬憳杩愯惀ID鐨勪綅缃甀D fanliOrderMap.put(orderId, list); + } else if (!StringUtil.isNullOrEmpty(list.get(0).getRelationId())) { + shareOrderMap.put(orderId, list); } else { - String pid = String.format("mm_%s_%s_%s", configList.get(0).getAccountId(), - list.get(0).getSourceMediaId(), list.get(0).getAdPositionId()); - PidUser pidUser = pidUserMapper.selectByPid(pid); - if (pidUser != null && pidUser.getType() == PidUser.TYPE_SHARE_GOODS) {// 鍟嗗搧鍒嗕韩璁㈠崟 - // List<PidOrder> pidOrderList = new ArrayList<>(); - // for (TaoBaoOrder order : list) { - // pidOrderList.add(TaoBaoOrderUtil.convertToPidOrder(order)); - // } - // sharePidOrderMap.put(orderId, pidOrderList); - shareOrderMap.put(orderId, list); - } else {// 鏅�氳繑鍒╄鍗� - fanliOrderMap.put(orderId, list); + // 閫氳繃绾㈠寘鏌ヨ + CommonOrder commonOrder = commonOrderService + .selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, list.get(0).getTradeId()); + + if (commonOrder != null) { + HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId()); + if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null + && hongBaoOrder.getHongBaoV2().getType() == HongBaoV2.TYPE_SHARE_GOODS) { + shareOrderMap.put(orderId, list); + continue; + } } + fanliOrderMap.put(orderId, list); } } } @@ -207,41 +164,6 @@ processShopingFanliOrder(fanliOrderMap); // 澶勭悊鍒嗕韩璧氳鍗� 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 @@ -262,7 +184,7 @@ // 鍑洪敊浜嗗氨涓嶅鐞嗚璁㈠崟浜嗭紝闇�瑕佸畾鏈熸鏌� // 鏇存敼涓㈠け璁㈠崟鐨勭姸鎬� - lostOrderService.processSuceess(orderId); + lostOrderService.processSuceess(orderId, Constant.SOURCE_TYPE_TAOBAO); } catch (HongBaoException e1) { e1.printStackTrace(); @@ -287,39 +209,24 @@ Iterator<String> its = orders.keySet().iterator(); while (its.hasNext()) { String orderId = its.next(); - processShareGoodsOrderNew(orderId, orders.get(orderId)); - } - } - } + try { + processShareGoodsOrderNew(orderId, orders.get(orderId)); + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e, "processShareGoodsOrderNew鍑洪敊", "璁㈠崟鍙�:" + orderId); + } catch (Exception e1) { + e1.printStackTrace(); + } + } - /** - * 鑾峰彇鏈�澶х殑鍒涘缓鏃堕棿涓庢渶灏忕殑鍒涘缓鏃堕棿 - * - * @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 public void fanli() { // 鑾峰彇涓荤孩鍖� - List<HongBaoV2> hongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByType(HongBao.TYPE_TAOBAO, 100); + List<HongBaoV2> hongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByType(HongBao.TYPE_TAOBAO, 1000); // // /** // * 闇�瑕佸疄鏃舵洿鏂板緟杩斿埄鐨勮鍗� @@ -375,21 +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; @@ -404,16 +296,20 @@ LogHelper.error("杩斿埄澶辫触:" + hb1.getId()); return; } - // 缁存潈涓殑涓嶈繑鍒� - List<TaoBaoWeiQuanOrder> taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper - .selectListByOrderIdAndState(hongBaoOrder.getCommonOrder().getOrderNo(), "缁存潈鍒涘缓"); - if (taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0) - return; - taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper - .selectListByOrderIdAndState(hongBaoOrder.getCommonOrder().getOrderNo(), "绛夊緟澶勭悊"); - if (taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0) - return; + if (hongBaoOrder.getCommonOrder() != null + && hongBaoOrder.getCommonOrder().getSourceType() == Constant.SOURCE_TYPE_TAOBAO) { + // 缁存潈涓殑涓嶈繑鍒� + List<TaoBaoWeiQuanOrder> taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper + .selectListByOrderIdAndState(hongBaoOrder.getCommonOrder().getOrderNo(), "缁存潈鍒涘缓"); + if (taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0) + return; + + taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper + .selectListByOrderIdAndState(hongBaoOrder.getCommonOrder().getOrderNo(), "绛夊緟澶勭悊"); + if (taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0) + return; + } // 鏌ヨ鍚屼竴璁㈠崟鍙风殑绾㈠寘 List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndOrderId( @@ -473,34 +369,28 @@ // 灏嗚嚜宸辨坊鍔犲埌鐢ㄦ埛 Long uid = its.next(); BigDecimal money = userMoney.get(uid); - userInfoMapper.addHongBaoByUid(uid, money); - - AccountDetails accountDetails = AccountDetailsFactory.create("+" + money, AccountDetailsFactory.FANLI, null, - null, new UserInfo(uid)); - accountDetailsMapper.insertSelective(accountDetails); - + UserMoneyDetail userMoneyDetail = null; // 鎻掑叆鏂扮増璧勯噾鏄庣粏 try { - UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createFanLi(uid, - hongBaoOrder.getCommonOrder().getOrderNo(), hongBaoOrder.getCommonOrder().getSourceType(), null, - money); - userMoneyDetail.setId(accountDetails.getId()); - userMoneyDetailMapper.insert(userMoneyDetail); + // 姝ゅ涓嶇敤璁㈠崟鍙峰仛鍞竴鎬х储寮� + userMoneyDetail = UserMoneyDetailFactory.createFanLi(uid, hongBaoOrder.getCommonOrder().getOrderNo(), + hongBaoOrder.getCommonOrder().getSourceType(), null, money); } catch (UserMoneyDetailException e1) { try { - LogHelper.errorDetailInfo(e1); + LogHelper.errorDetailInfo(e1, "璁㈠崟鍙�:" + hongBaoOrder.getCommonOrder().getOrderNo(), ""); } catch (Exception e2) { e2.printStackTrace(); } } + userMoneyService.addUserMoney(uid, money, userMoneyDetail); // 娣诲姞璧勯噾鏄庣粏涓庣孩鍖呯殑鏄犲皠鍏崇郴 for (HongBaoV2 v2 : userHongBao.get(uid)) { - accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(v2.getId(), accountDetails.getId()); + accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(v2.getId(), userMoneyDetail.getId()); } // 绔欏唴淇�+鎺ㄩ�� - UserInfo user = userInfoMapper.selectByPrimaryKey(uid); + UserInfo user = userInfoMapper.selectByPKey(uid); try { userNotificationService.orderFanliRecieved(uid, hongBaoOrder.getCommonOrder().getOrderNo(), userGoodsCount.get(uid), user.getMyHongBao(), money); @@ -515,13 +405,50 @@ // 鏂扮増閫氱煡 userMoneyMsgNotificationService.fanliOrderReceived(uid, hongBaoOrder.getCommonOrder().getOrderNo(), userGoodsCount.get(uid), money, user.getMyHongBao()); - + } + // 閫氱煡鍏嶅崟鍒拌处 + try { + userSystemCouponService.updateStateByArrivalAccount(hongBaoOrder.getCommonOrder().getOrderNo()); + } catch (Exception e) { + e.printStackTrace(); } // 缁存潈鎵f锛�2018-08-05鍚庡紑濮嬪疄琛岋級 if (hongBaoOrder.getCommonOrder().getSettleTime() != null && hongBaoOrder.getCommonOrder().getSettleTime() .getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) { - taoBaoWeiQuanDrawBackService.doWeiQuanFanli(hongBaoOrder.getCommonOrder().getOrderNo()); + try { + if (hongBaoOrder.getCommonOrder().getSourceType() == Constant.SOURCE_TYPE_TAOBAO) + taoBaoWeiQuanDrawBackService.doWeiQuanFanli(hongBaoOrder.getCommonOrder().getOrderNo()); + } catch (TaoBaoWeiQuanException e) { + if (e.getCode() == TaoBaoWeiQuanException.CODE_NEDD_UPDATE_ORDER) { + List<TaoBaoOrder> olist = taoBaoOrderService + .getTaoBaoOrderByOrderId(hongBaoOrder.getCommonOrder().getOrderNo()); + + if (olist != null && olist.size() > 0) { + long time = TimeUtil.convertToTimeTemp(olist.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"); + olist = TaoKeOrderApiUtil.getTaoBaoAllOrder(TimeUtil.getGernalTime(time, "yyyy-MM-dd HH:mm:ss"), + TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET); + List<TaoBaoOrder> thirdOList = TaoKeOrderApiUtil.getTaoBaoThirdAllOrder( + TimeUtil.getGernalTime(time, "yyyy-MM-dd HH:mm:ss"), 30, 1, + TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET); + if (thirdOList != null && thirdOList.size() > 0) + olist.addAll(thirdOList); + + if (olist != null && olist.size() > 0) { + for (int i = 0; i < olist.size(); i++) { + if (!olist.get(i).getOrderId() + .equalsIgnoreCase(hongBaoOrder.getCommonOrder().getOrderNo())) {// 鍒犻櫎鏃犲叧璁㈠崟 + olist.remove(i); + i--; + } + } + + taoBaoOrderService.addTaoBaoOrderList(olist); + } + } + } else + throw new TaoBaoWeiQuanException(e.getCode(), e.getMsg()); + } } } @@ -530,7 +457,7 @@ public void weiQuanOrder(List<TaoBaoWeiQuanOrder> orderList) { if (orderList != null) for (TaoBaoWeiQuanOrder order : orderList) { - if (order.getState().equalsIgnoreCase("缁存潈鎴愬姛")) { + if (order.getState().contains("缁存潈鎴愬姛")) { CMQManager.getInstance().addWeiQuanOrderMsg(order); } } @@ -545,15 +472,38 @@ if (orderList != null && orderList.size() > 0 & !StringUtil.isNullOrEmpty(orderList.get(0).getSettlementTime())) order.setJieSuanTime( new Date(TimeUtil.convertToTimeTemp(orderList.get(0).getSettlementTime(), "yyyy-MM-dd HH:mm:ss"))); - if (order.getJieSuanTime().getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) { - return; + // if (order.getJieSuanTime().getTime() >= + // TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) { + // return; + // } + + // TODO 澶勭悊缁存潈鎴愬姛浣嗘槸宸插埌璐︾殑璁㈠崟 + + if (order.getJieSuanTime().getTime() > TimeUtil.convertToTimeTemp("2019-01-01", "yyyy-MM-dd")) {// 缁撶畻鏃堕棿鍦�2鏈�1鍙风殑寮�濮嬪鐞嗗凡鍒拌处浣嗘槸缁存潈鐨� + CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, + order.getOrderItemId()); + if (commonOrder != null && !StringUtil.isNullOrEmpty(commonOrder.getTradeId())) { + HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId()); + if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null + && hongBaoOrder.getHongBaoV2().getState() == HongBaoV2.STATE_YILINGQU) {// 宸茬粡鍒拌处鐨勭湅鏄惁闇�瑕佹墸娆� + TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackService + .selectByOrderItemId(order.getOrderItemId()); + if (drawBack == null) {// 杩樻湭鎵f + try { + taoBaoWeiQuanDrawBackService.doWeiQuanFanli(order.getOrderId()); + taoBaoWeiQuanDrawBackService.doWeiQuanShare(order.getOrderId()); + taoBaoWeiQuanDrawBackService.doWeiQuanInvite(order.getOrderId()); + } catch (TaoBaoWeiQuanException e) { + try { + LogHelper.errorDetailInfo(e, null, "璁㈠崟鍙�:" + order.getOrderId()); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + } + } } - try { - orderService.failureOrderWithWeiQuan(order.getOrderId(), Order.ORDER_TYPE_TAOBAO); - } catch (ObjectStateException e) { - e.printStackTrace(); - } - pidOrderService.weiQuan(order.getOrderId()); } @Override @@ -693,11 +643,6 @@ // 閭�璇疯禋鍒拌处 if (invitemoney.compareTo(new BigDecimal(0)) > 0) { - userInfoMapper.addHongBaoByUid(uid, invitemoney); - // 娣诲姞璁板綍 - AccountDetails accountDetails = AccountDetailsFactory.create("+" + invitemoney, - AccountDetailsFactory.TICHENG, null, null, new UserInfo(uid)); - accountDetailsMapper.insertSelective(accountDetails); // 娣诲姞鏂扮増璇︽儏璁板綍 try { @@ -718,8 +663,11 @@ UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, (int) validCount, (int) weiQuanCount, (int) invalidCount, invitemoney, new Date()); - userMoneyDetail.setId(accountDetails.getId()); - userMoneyDetailMapper.insert(userMoneyDetail); + + // 澧炲姞璧勯噾 + userMoneyService.addUserMoney(uid, invitemoney, userMoneyDetail); + // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� + accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId()); } catch (UserMoneyDetailException e) { try { LogHelper.errorDetailInfo(e); @@ -727,11 +675,6 @@ e1.printStackTrace(); } } - - // 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴 - - // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� - accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId()); // 鍙戦�佹帹閫� try { @@ -744,7 +687,7 @@ // 鏂扮増閫氱煡 userMoneyMsgNotificationService.inviteOrderReceived(uid, inviteOrders.size(), inviteGoodsCount, invitemoney, - userInfoMapper.selectByPrimaryKey(uid).getMyHongBao()); + userInfoMapper.selectByPKey(uid).getMyHongBao()); for (String orderId : drawBackOrders) taoBaoWeiQuanDrawBackService.doWeiQuanInvite(orderId); @@ -782,8 +725,10 @@ // 2018-08-05 杩囧悗鐨勮鍗曟墠澶勭悊缁存潈 Date balanceTime = null; HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(hongBao.getId()); - if (hongBaoOrder != null) + if (hongBaoOrder != null) { balanceTime = hongBaoOrder.getCommonOrder().getSettleTime(); + shareGoodsCount += hongBaoOrder.getCommonOrder().getCount(); + } shareOrders.add(hongBaoOrder.getCommonOrder().getOrderNo()); if (balanceTime != null && balanceTime.getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) { @@ -797,12 +742,6 @@ */ if (sharemoney.compareTo(new BigDecimal(0)) > 0) { - userInfoMapper.addHongBaoByUid(uid, sharemoney); - // 娣诲姞璁板綍 - AccountDetails accountDetails = AccountDetailsFactory.create("+" + sharemoney, - AccountDetailsFactory.SHARE_GOODS, null, null, new UserInfo(uid)); - accountDetailsMapper.insertSelective(accountDetails); - // 娣诲姞鏂扮増璇︽儏璁板綍 try { // 璁$畻鏈湀鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗� @@ -814,17 +753,17 @@ Date minDate = new Date(TimeUtil .convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M")); - long validCount = commonOrderService.countByUidAndOrderStateWithOrderBalanceTime(uid, - CommonOrder.STATE_JS, minDate, maxDate); - long weiQuanCount = commonOrderService.countByUidAndOrderStateWithOrderBalanceTime(uid, - CommonOrder.STATE_WQ, minDate, maxDate); - long invalidCount = commonOrderService.countByUidAndOrderStateWithOrderBalanceTime(uid, - CommonOrder.STATE_SX, minDate, maxDate); + long validCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS, minDate, maxDate); + long weiQuanCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ, minDate, maxDate); + long invalidCount =hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_SX, minDate, maxDate); UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, (int) validCount, (int) weiQuanCount, (int) invalidCount, sharemoney, new Date()); - userMoneyDetail.setId(accountDetails.getId()); - userMoneyDetailMapper.insert(userMoneyDetail); + // 娣诲姞璧勯噾 + userMoneyService.addUserMoney(uid, sharemoney, userMoneyDetail); + + // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� + accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId()); } catch (UserMoneyDetailException e) { try { LogHelper.errorDetailInfo(e); @@ -832,10 +771,6 @@ e1.printStackTrace(); } } - // 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴 - - // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� - accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId()); // 鍙戦�佹帹閫� try { @@ -856,27 +791,26 @@ } - @Resource - private CommonOrderService commonOrderService; - - @Resource - private HongBaoV2Service hongBaoV2Service; - @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) @Override public void processShopingFanliOrderNew(String orderId, List<TaoBaoOrder> orderList) throws HongBaoException, OrderItemException { + + LogHelper.test(String.format("璁㈠崟澶勭悊:璁㈠崟鍙�-%s 璁㈠崟鏁伴噺-%s", orderId, orderList.size() + "")); + if (orderList.size() == 1) + LogHelper.test("璁㈠崟鎺掑簭鍊�:" + orderList.get(0).getOrderBy()); + List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); if (orderList != null && orderList.size() > 0) { 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(); @@ -894,10 +828,20 @@ orderMapper.insertSelective(order); oldOrder = order; } else { - UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService - .getBySpecialId(orderList.get(0).getSpecialId()); - if (info != null && info.getUser() != null) { - uid = info.getUser().getId(); + Long targetUid = null; + if (pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID) + && !StringUtil.isNullOrEmpty(orderList.get(0).getRelationId())) { + targetUid = taoBaoBuyRelationMapService.selectUidByRelationId(orderList.get(0).getRelationId()); + + } else if (!StringUtil.isNullOrEmpty(orderList.get(0).getSpecialId())) { + UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService + .getBySpecialId(orderList.get(0).getSpecialId()); + if (info != null && info.getUser() != null) + targetUid = info.getUser().getId(); + } + + if (targetUid != null) { + uid = targetUid; // 鎻掑叆鍒癘rder涓� // 娣诲姞鍒拌鍗曚腑鍘� Order order = new Order(); @@ -951,9 +895,10 @@ try { commonOrderList = commonOrderService.addTaoBaoOrder(orderList, uid); hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_ZIGOU); + } catch (CommonOrderException e) { try { - LogHelper.errorDetailInfo(e, null, "璁㈠崟鍙�:" + orderId); + LogHelper.errorDetailInfo(e, "addTaoBaoOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId); } catch (Exception e1) { e1.printStackTrace(); } @@ -969,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 { @@ -979,6 +924,20 @@ } // 灏氭湭鎵惧埌鍜孭ID瀵瑰簲鐨勭敤鎴� + if (uid == null) { + // 閫氳繃绾㈠寘鏌ヨ + CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, + orderList.get(0).getTradeId()); + + if (commonOrder != null) { + HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId()); + if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null + && hongBaoOrder.getHongBaoV2().getType() == HongBaoV2.TYPE_SHARE_GOODS) { + uid = hongBaoOrder.getHongBaoV2().getUserInfo().getId(); + } + } + } + if (uid == null) return; @@ -992,7 +951,6 @@ e1.printStackTrace(); } } - } } -- Gitblit v1.8.0