From f253c6f0ce5e708850f8e3c84a6a9008fc37df5f Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 31 七月 2019 19:15:13 +0800 Subject: [PATCH] 添加拼多多/京东的订单 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 295 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 252 insertions(+), 43 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 3458d64..5304b5b 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 @@ -28,9 +28,12 @@ import com.yeshi.fanli.entity.bus.user.Order; import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.jd.JDOrder; +import com.yeshi.fanli.entity.jd.JDOrderItem; 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.pdd.PDDOrder; import com.yeshi.fanli.entity.taobao.PidUser; import com.yeshi.fanli.entity.taobao.TaoBaoOrder; import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig; @@ -54,14 +57,16 @@ 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.Constant; +import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoConstant; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.factory.UserMoneyDetailFactory; +import com.yeshi.fanli.util.jd.JDApiUtil; +import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil; @Service @@ -72,9 +77,6 @@ @Resource private UserInfoMapper userInfoMapper; - - @Resource - private UserNotificationService userNotificationService; @Resource private TaoBaoUnionConfigService taoBaoUnionConfigService; @@ -391,20 +393,10 @@ // 绔欏唴淇�+鎺ㄩ�� UserInfo user = userInfoMapper.selectByPKey(uid); - try { - userNotificationService.orderFanliRecieved(uid, hongBaoOrder.getCommonOrder().getOrderNo(), - userGoodsCount.get(uid), user.getMyHongBao(), money); - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - } // 鏂扮増閫氱煡 - userMoneyMsgNotificationService.fanliOrderReceived(uid, hongBaoOrder.getCommonOrder().getOrderNo(),hongBaoOrder.getCommonOrder().getSourceType(), - userGoodsCount.get(uid), money, user.getMyHongBao()); + userMoneyMsgNotificationService.fanliOrderReceived(uid, hongBaoOrder.getCommonOrder().getOrderNo(), + hongBaoOrder.getCommonOrder().getSourceType(), userGoodsCount.get(uid), money, user.getMyHongBao()); } // 閫氱煡鍏嶅崟鍒拌处 try { @@ -457,7 +449,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); } } @@ -661,8 +653,8 @@ long invalidCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_SX, minDate, maxDate); - UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid,Constant.SOURCE_TYPE_TAOBAO, (int) validCount, - (int) weiQuanCount, (int) invalidCount, invitemoney, new Date()); + UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, Constant.SOURCE_TYPE_TAOBAO, + (int) validCount, (int) weiQuanCount, (int) invalidCount, invitemoney, new Date()); // 澧炲姞璧勯噾 userMoneyService.addUserMoney(uid, invitemoney, userMoneyDetail); @@ -676,18 +668,9 @@ } } - // 鍙戦�佹帹閫� - try { - // 鎻愭垚鍒拌处娑堟伅閫氱煡 - userNotificationService.tiChengInviteRecieved(uid, inviteOrders.size(), inviteGoodsCount, null, - invitemoney); - } catch (Exception e) { - e.printStackTrace(); - } - // 鏂扮増閫氱煡 - userMoneyMsgNotificationService.inviteOrderReceived(uid,Constant.SOURCE_TYPE_TAOBAO, inviteOrders.size(), inviteGoodsCount, invitemoney, - userInfoMapper.selectByPKey(uid).getMyHongBao()); + userMoneyMsgNotificationService.inviteOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, inviteOrders.size(), + inviteGoodsCount, invitemoney, userInfoMapper.selectByPKey(uid).getMyHongBao()); for (String orderId : drawBackOrders) taoBaoWeiQuanDrawBackService.doWeiQuanInvite(orderId); @@ -760,8 +743,8 @@ long invalidCount = commonOrderService.countByUidAndOrderStateWithOrderBalanceTime(uid, CommonOrder.STATE_SX, minDate, maxDate); - UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid,Constant.SOURCE_TYPE_TAOBAO, (int) validCount, - (int) weiQuanCount, (int) invalidCount, sharemoney, new Date()); + UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, Constant.SOURCE_TYPE_TAOBAO, + (int) validCount, (int) weiQuanCount, (int) invalidCount, sharemoney, new Date()); // 娣诲姞璧勯噾 userMoneyService.addUserMoney(uid, sharemoney, userMoneyDetail); @@ -775,18 +758,9 @@ } } - // 鍙戦�佹帹閫� - try { - // 鎻愭垚鍒拌处娑堟伅閫氱煡 - userNotificationService.tiChengShareRecieved(uid, shareOrders.size(), shareGoodsCount, null, - sharemoney); - } catch (Exception e) { - e.printStackTrace(); - } - // 鏂扮増閫氱煡 - userMoneyMsgNotificationService.shareOrderReceived(uid,Constant.SOURCE_TYPE_TAOBAO, shareOrders.size(), shareGoodsCount, sharemoney, - userInfoMapper.selectByPrimaryKey(uid).getMyHongBao()); + userMoneyMsgNotificationService.shareOrderReceived(uid, Constant.SOURCE_TYPE_TAOBAO, shareOrders.size(), + shareGoodsCount, sharemoney, userInfoMapper.selectByPrimaryKey(uid).getMyHongBao()); for (String orderId : drawBackOrders) taoBaoWeiQuanDrawBackService.doWeiQuanShare(orderId); @@ -956,4 +930,239 @@ } } + @Override + public void processJDOrder(JDOrder order) { + if (order == null || order.getOrderItemList() == null || order.getOrderItemList().size() == 0) + return; + String uidStr = order.getExt1(); + Long uid = null; + if (!StringUtil.isNullOrEmpty(uidStr)) + uid = Long.parseLong(uidStr); + Long positionId = order.getOrderItemList().get(0).getPositionId(); + if (positionId == JDApiUtil.POSITION_FANLI)// 杩斿埄璁㈠崟 + { + processFanLiJDOrder(order, uid); + lostOrderService.processSuceess(order.getOrderId() + "", Constant.SOURCE_TYPE_JD); + } else if (positionId == JDApiUtil.POSITION_SHARE) {// 鍒嗕韩璁㈠崟 + if (uid == null)// 鍒嗕韩璁㈠崟涓嶅厑璁告壘鍥� + return; + processShareJDOrder(order, uid); + } else {// 澶勭悊鏄惁鏈夎鍗曟壘鍥炵殑鐘舵�� + processFanLiJDOrder(order, null); + } + } + + /** + * 澶勭悊浜笢杩斿埄璁㈠崟 + * @param jdOrder + * @param uid + */ + @Transactional + private void processFanLiJDOrder(JDOrder jdOrder, Long uid) { + int invalidCount = 0; + BigDecimal totalMoney = new BigDecimal(0); + // 璁㈠崟鐘舵�佸垽鏂� + for (JDOrderItem item : jdOrder.getOrderItemList()) { + if (item.getEstimateCosPrice() != null) + totalMoney = totalMoney.add(item.getEstimateCosPrice()); + + if (item.getValidCode() == 16 || item.getValidCode() == 17 || item.getValidCode() == 18) {// 宸蹭粯娆� + + } else if (item.getValidCode() == 15) {// 鏈敮浠� + + } else { + invalidCount++; + } + } + + // 鍔犲叆璁㈠崟 + Order oldOrder = orderMapper.selectOrderByOrderIdAndOrderType(jdOrder.getOrderId() + "", + Constant.SOURCE_TYPE_JD); + if (uid == null && oldOrder.getBeizhu().contains("琛ュ崟")) + uid = oldOrder.getUserInfo().getId(); + + if (uid == null) + return; + + if (oldOrder == null)// 鏂板 + { + Order order = new Order(); + order.setBeizhu("浜笢杩斿埄璁㈠崟"); + order.setCreatetime(System.currentTimeMillis()); + order.setOrderId(jdOrder.getOrderId() + ""); + order.setOrderType(Constant.SOURCE_TYPE_JD); + order.setState( + invalidCount == jdOrder.getOrderItemList().size() ? Order.STATE_SHIXIAO : Order.STATE_YIZHIFU); + order.setUserInfo(new UserInfo(uid)); + order.setVersion(2); + order.setThirdCreateTime(new Date(jdOrder.getOrderTime())); + order.setMoney(totalMoney); + // 鍔犲叆鍒拌鍗曡〃 + orderMapper.insertSelective(order); + } else { + Order updateOrder = new Order(); + updateOrder.setId(oldOrder.getId()); + updateOrder.setMoney(totalMoney); + orderMapper.updateByPrimaryKeySelective(updateOrder); + } + + try { + List<CommonOrder> commonOrderList = commonOrderService.addJDOrder(jdOrder, uid); + hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_ZIGOU); + } catch (CommonOrderException e) { + try { + LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + jdOrder.getOrderId()); + } catch (Exception e1) { + e1.printStackTrace(); + } + } catch (HongBaoException e) { + try { + LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + jdOrder.getOrderId()); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + + /** + * 澶勭悊浜笢鍒嗕韩璁㈠崟 + * @param order + * @param uid + */ + @Transactional + private void processShareJDOrder(JDOrder order, Long uid) { + try { + List<CommonOrder> commonOrderList = commonOrderService.addJDOrder(order, uid); + hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_SHARE_GOODS); + } catch (CommonOrderException e) { + try { + LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + order.getOrderId()); + } catch (Exception e1) { + e1.printStackTrace(); + } + } catch (HongBaoException e) { + try { + LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + order.getOrderId()); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + + /** + * 澶勭悊鎷煎澶氳鍗� + */ + @Override + public void processPDDOrder(PDDOrder pddOrder) { + if (pddOrder == null) + return; + String uidStr = pddOrder.getCustomParameters(); + Long uid = null; + if (!StringUtil.isNullOrEmpty(uidStr)) + uid = Long.parseLong(uidStr); + String positionId = pddOrder.getpId(); + if (PinDuoDuoApiUtil.PID_FANLI.equalsIgnoreCase(positionId))// 杩斿埄璁㈠崟 + { + processFanLiPDDOrder(pddOrder, uid); + lostOrderService.processSuceess(pddOrder.getOrderSn(), Constant.SOURCE_TYPE_PDD); + } else if (PinDuoDuoApiUtil.PID_SHARE.equalsIgnoreCase(positionId)) {// 鍒嗕韩璁㈠崟 + if (uid == null)// 鍒嗕韩璁㈠崟涓嶅厑璁告壘鍥� + return; + processSharePDDOrder(pddOrder, uid); + } else {// 澶勭悊鏄惁鏈夎鍗曟壘鍥炵殑鐘舵�� + processFanLiPDDOrder(pddOrder, null); + } + } + + /** + * 澶勭悊鎷煎澶氳嚜璐繑鍒╄鍗� + * @param pddOrder + * @param uid + */ + @Transactional + private void processFanLiPDDOrder(PDDOrder pddOrder, Long uid) { + int orderState = 0; + if (pddOrder.getOrderStatus() == -1 || pddOrder.getOrderStatus() == 8) + orderState = Order.STATE_SHIXIAO; + else + orderState = Order.STATE_YIZHIFU; + + BigDecimal totalMoney = MoneyBigDecimalUtil.div(new BigDecimal(pddOrder.getOrderAmount()), new BigDecimal(100)); + + // 鍔犲叆璁㈠崟 + Order oldOrder = orderMapper.selectOrderByOrderIdAndOrderType(pddOrder.getOrderSn(), Constant.SOURCE_TYPE_PDD); + if (uid == null && oldOrder.getBeizhu().contains("琛ュ崟")) + uid = oldOrder.getUserInfo().getId(); + + if (uid == null) + return; + + if (oldOrder == null)// 鏂板 + { + Order order = new Order(); + order.setBeizhu("鎷煎澶氳繑鍒╄鍗�"); + order.setCreatetime(System.currentTimeMillis()); + order.setOrderId(pddOrder.getOrderSn()); + order.setOrderType(Constant.SOURCE_TYPE_PDD); + order.setState(orderState); + order.setUserInfo(new UserInfo(uid)); + order.setVersion(2); + order.setThirdCreateTime(new Date(pddOrder.getOrderCreateTime() * 1000)); + order.setMoney(totalMoney); + // 鍔犲叆鍒拌鍗曡〃 + orderMapper.insertSelective(order); + } else { + Order updateOrder = new Order(); + updateOrder.setId(oldOrder.getId()); + updateOrder.setMoney(totalMoney); + orderMapper.updateByPrimaryKeySelective(updateOrder); + } + + try { + List<PDDOrder> pddOrderList = new ArrayList<>(); + pddOrderList.add(pddOrder); + List<CommonOrder> commonOrderList = commonOrderService.addPDDOrder(pddOrderList, uid); + hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_ZIGOU); + } catch (CommonOrderException e) { + try { + LogHelper.errorDetailInfo(e, "addPDDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + pddOrder.getOrderSn()); + } catch (Exception e1) { + e1.printStackTrace(); + } + } catch (HongBaoException e) { + try { + LogHelper.errorDetailInfo(e, "addPDDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + pddOrder.getOrderSn()); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + + + /** + * 澶勭悊鎷煎澶氬垎浜鍗� + * @param order + * @param uid + */ + @Transactional + private void processSharePDDOrder(PDDOrder order, Long uid) { + try { + List<PDDOrder> pddOrderList = new ArrayList<>(); + pddOrderList.add(order); + List<CommonOrder> commonOrderList = commonOrderService.addPDDOrder(pddOrderList, uid); + hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_SHARE_GOODS); + } catch (CommonOrderException e) { + try { + LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + order.getOrderId()); + } catch (Exception e1) { + e1.printStackTrace(); + } + } catch (HongBaoException e) { + try { + LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + order.getOrderId()); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } } -- Gitblit v1.8.0