From b6c37e4bc38db88a360d0f2c6099183f9bb75bdc Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期一, 22 四月 2019 14:31:59 +0800 Subject: [PATCH] 券推送插入 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 154 +++++++++++++++++++++++---------------------------- 1 files changed, 69 insertions(+), 85 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 541d4c4..fe7d20e 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,16 @@ 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,13 +34,11 @@ 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.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; @@ -55,33 +46,29 @@ 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.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.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.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; @@ -90,37 +77,13 @@ 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; @@ -167,6 +130,9 @@ @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + @Resource + private UserSystemCouponService userSystemCouponService; + @Override public void processOrder(Map<String, List<TaoBaoOrder>> orders) { List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); @@ -174,10 +140,10 @@ // 鍒嗙鍑鸿繑鍒╄鍗曚笌鍒嗕韩璧氳鍗� 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); @@ -482,31 +448,27 @@ // 灏嗚嚜宸辨坊鍔犲埌鐢ㄦ埛 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(); } } + userMoneyDetailMapper.insertSelective(userMoneyDetail); // 娣诲姞璧勯噾鏄庣粏涓庣孩鍖呯殑鏄犲皠鍏崇郴 for (HongBaoV2 v2 : userHongBao.get(uid)) { - accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(v2.getId(), accountDetails.getId()); + accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(v2.getId(), userMoneyDetail.getId()); } + // 澧炲姞鐢ㄦ埛璧勯噾 + userInfoMapper.addHongBaoByUid(uid, money); // 绔欏唴淇�+鎺ㄩ�� UserInfo user = userInfoMapper.selectByPrimaryKey(uid); @@ -524,13 +486,51 @@ // 鏂扮増閫氱煡 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 { + + 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()); + } } } @@ -557,12 +557,8 @@ if (order.getJieSuanTime().getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) { return; } - try { - orderService.failureOrderWithWeiQuan(order.getOrderId(), Order.ORDER_TYPE_TAOBAO); - } catch (ObjectStateException e) { - e.printStackTrace(); - } - pidOrderService.weiQuan(order.getOrderId()); + + // TODO 澶勭悊缁存潈鎴愬姛浣嗘槸宸插埌璐︾殑璁㈠崟 } @Override @@ -703,10 +699,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 { @@ -727,8 +719,9 @@ UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, (int) validCount, (int) weiQuanCount, (int) invalidCount, invitemoney, new Date()); - userMoneyDetail.setId(accountDetails.getId()); userMoneyDetailMapper.insert(userMoneyDetail); + // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� + accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId()); } catch (UserMoneyDetailException e) { try { LogHelper.errorDetailInfo(e); @@ -736,11 +729,6 @@ e1.printStackTrace(); } } - - // 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴 - - // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� - accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId()); // 鍙戦�佹帹閫� try { @@ -753,7 +741,7 @@ // 鏂扮増閫氱煡 userMoneyMsgNotificationService.inviteOrderReceived(uid, inviteOrders.size(), inviteGoodsCount, invitemoney, - userInfoMapper.selectByPrimaryKey(uid).getMyHongBao()); + userInfoMapper.selectByPKey(uid).getMyHongBao()); for (String orderId : drawBackOrders) taoBaoWeiQuanDrawBackService.doWeiQuanInvite(orderId); @@ -807,11 +795,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 { // 璁$畻鏈湀鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗� @@ -832,8 +815,9 @@ UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, (int) validCount, (int) weiQuanCount, (int) invalidCount, sharemoney, new Date()); - userMoneyDetail.setId(accountDetails.getId()); userMoneyDetailMapper.insert(userMoneyDetail); + // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� + accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId()); } catch (UserMoneyDetailException e) { try { LogHelper.errorDetailInfo(e); @@ -841,10 +825,6 @@ e1.printStackTrace(); } } - // 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴 - - // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚� - accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId()); // 鍙戦�佹帹閫� try { @@ -875,6 +855,11 @@ @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) { @@ -1001,7 +986,6 @@ e1.printStackTrace(); } } - } } -- Gitblit v1.8.0