From b3007afcb9b8ca4302497a2c1c3e0d990b10a388 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 03 一月 2019 14:52:40 +0800 Subject: [PATCH] 新版订单与返利 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 167 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 148 insertions(+), 19 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 2ab204d..9104c3f 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 @@ -31,11 +31,13 @@ import com.yeshi.fanli.entity.bus.user.AccountDetails; import com.yeshi.fanli.entity.bus.user.HongBao; import com.yeshi.fanli.entity.bus.user.HongBaoExtra; +import com.yeshi.fanli.entity.bus.user.HongBaoV2; import com.yeshi.fanli.entity.bus.user.MoneyRecord; import com.yeshi.fanli.entity.bus.user.Order; import com.yeshi.fanli.entity.bus.user.OrderItem; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.money.UserMoneyDetail; +import com.yeshi.fanli.entity.order.CommonOrder; import com.yeshi.fanli.entity.taobao.PidOrder; import com.yeshi.fanli.entity.taobao.PidUser; import com.yeshi.fanli.entity.taobao.TaoBaoOrder; @@ -47,10 +49,13 @@ 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.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; @@ -158,7 +163,8 @@ // 鍒嗙鍑鸿繑鍒╄鍗曚笌鍒嗕韩璧氳鍗� Iterator<String> its = orders.keySet().iterator(); Map<String, List<TaoBaoOrder>> fanliOrderMap = new HashMap<>(); - Map<String, List<PidOrder>> shareOrderMap = 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) { @@ -167,11 +173,12 @@ 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)); - } - shareOrderMap.put(orderId, pidOrderList); +// 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); } @@ -224,14 +231,16 @@ public void processShopingFanliOrder(Map<String, List<TaoBaoOrder>> orders) { // 鏌ヨ鍦∣rder涓槸鍚﹀瓨鍦ㄨ璁㈠崟鍙� Iterator<String> its = orders.keySet().iterator(); + String tempOrderId=""; while (its.hasNext()) { try { String orderId = its.next(); + tempOrderId=orderId; // 澶勭悊绾㈠寘涓庡瓙绾㈠寘 // if (isRedisLockOrder(orderId)) // continue; // redisLockOrder(orderId); - processShopingFanliOrder(orderId, orders.get(orderId)); + processShopingFanliOrderNew(orderId, orders.get(orderId)); // redisUnlockOrder(orderId); // 鍑洪敊浜嗗氨涓嶅鐞嗚璁㈠崟浜嗭紝闇�瑕佸畾鏈熸鏌� @@ -243,15 +252,27 @@ } catch (OrderItemException e2) { e2.printStackTrace(); } catch (Exception e) { - + e.printStackTrace(); + try { + LogHelper.errorDetailInfo(e, null, tempOrderId); + } catch (Exception e1) { + e1.printStackTrace(); + } } } } @Transactional @Override - public void processShareGoodsOrder(Map<String, List<PidOrder>> orders) { - pidOrderService.addPidOrderFromTaoBao(orders); + public void processShareGoodsOrder(Map<String, List<TaoBaoOrder>> orders) { + // pidOrderService.addPidOrderFromTaoBao(orders); + if (orders != null) { + Iterator<String> its = orders.keySet().iterator(); + while (its.hasNext()) { + String orderId = its.next(); + processShareGoodsOrderNew(orderId, orders.get(orderId)); + } + } } /** @@ -519,7 +540,7 @@ // 鎻掑叆鏂扮増璧勯噾鏄庣粏 try { UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createFanLi(hb.getUserInfo().getId(), - hb.getOrderId(), 1,hb.getId(), hb.getMoney()); + hb.getOrderId(), 1, hb.getId(), hb.getMoney()); userMoneyDetail.setId(accountDetails.getId()); userMoneyDetailMapper.insert(userMoneyDetail); } catch (UserMoneyDetailException e1) { @@ -663,9 +684,7 @@ } } } - - - + /** * 澶勭悊涓�绾т簩绾у垎浜禋(灞炰簬閭�璇疯禋绫诲瀷) */ @@ -699,9 +718,7 @@ drawBackOrders.add(hb.getOrderId()); } } - - - + // 閭�璇疯禋鍒拌处 if (invitemoney.compareTo(new BigDecimal(0)) > 0) { userInfoMapper.addHongBaoByUid(uid, invitemoney); @@ -776,8 +793,6 @@ } } - - /** * 鍒嗕韩璧氬埌璐� */ @@ -820,4 +835,118 @@ } + @Resource + private CommonOrderService commonOrderService; + + @Resource + private HongBaoV2Service hongBaoV2Service; + + @Transactional + @Override + public void processShopingFanliOrderNew(String orderId, List<TaoBaoOrder> orderList) + throws HongBaoException, OrderItemException { + 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); + // 鍘熸潵涓嶅瓨鍦ㄨ鍗� + Long uid = null; + if (oldOrder == null) { + PidUser pidUser = pidUserMapper.selectByPid(pid); + if (pidUser != null) { + uid = pidUser.getUid(); + + // 鎻掑叆鍒癘rder涓� + // 娣诲姞鍒拌鍗曚腑鍘� + Order order = new Order(); + order.setBeizhu("PID杩斿埄璁㈠崟"); + order.setCreatetime(System.currentTimeMillis()); + order.setOrderId(orderId); + order.setOrderType(1); + order.setState(Order.STATE_YIZHIFU); + order.setUserInfo(new UserInfo(uid)); + order.setVersion(2); + // 鍔犲叆鍒拌鍗曡〃 + orderMapper.insertSelective(order); + oldOrder = order; + } + } else { + uid = oldOrder.getUserInfo().getId(); + + } + // 灏氭湭鎵惧埌鍜孭ID瀵瑰簲鐨勭敤鎴� + if (uid == null) + return; + + // 璁$畻璁㈠崟鎬婚搴� + Order updateOrder = new Order(); + updateOrder.setId(oldOrder.getId()); + BigDecimal money = new BigDecimal(0); + for (TaoBaoOrder o : orderList) { + if (o.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻")) + money = money.add(o.getSettlement()); + else { + money = money.add(o.getPayment()); + } + } + updateOrder.setMoney(money); + String thirdState = null; + for (TaoBaoOrder o : orderList) + if (!o.getOrderState().equalsIgnoreCase("璁㈠崟澶辨晥")) { + thirdState = o.getOrderState(); + break; + } + updateOrder.setThirdState(thirdState); + updateOrder.setThirdCreateTime( + new Date(TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"))); + orderMapper.updateByPrimaryKeySelective(updateOrder); + + // 鐢ㄧ涓�涓瓙璁㈠崟閿佸畾鐢ㄦ埛 + for (TaoBaoOrder taoBaoOrder : orderList) { + try { + CommonOrder commonOrder = commonOrderService.addTaoBaoOrder(taoBaoOrder, uid); + hongBaoV2Service.addHongBao(commonOrder, HongBaoV2.TYPE_ZIGOU); + } catch (CommonOrderException e) { + e.printStackTrace(); + } catch (HongBaoException e1) { + e1.printStackTrace(); + } + } + } + } + + @Override + public void processShareGoodsOrderNew(String orderId, List<TaoBaoOrder> orderList) { + 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()); + // 鍘熸潵涓嶅瓨鍦ㄨ鍗� + Long uid = null; + PidUser pidUser = pidUserMapper.selectByPid(pid); + if (pidUser != null) + uid = pidUser.getUid(); + + // 灏氭湭鎵惧埌鍜孭ID瀵瑰簲鐨勭敤鎴� + if (uid == null) + return; + + // 鐢ㄧ涓�涓瓙璁㈠崟閿佸畾鐢ㄦ埛 + for (TaoBaoOrder taoBaoOrder : orderList) { + try { + CommonOrder commonOrder = commonOrderService.addTaoBaoOrder(taoBaoOrder, uid); + hongBaoV2Service.addHongBao(commonOrder, HongBaoV2.TYPE_SHARE_GOODS); + } catch (CommonOrderException e) { + e.printStackTrace(); + } catch (HongBaoException e1) { + e1.printStackTrace(); + } + } + } + + } + } -- Gitblit v1.8.0