From 2147d023563a7c9d05d97547c00d6b0162c0644c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 09 十一月 2020 18:37:24 +0800
Subject: [PATCH] 刷单风险规则优化

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java |  232 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 121 insertions(+), 111 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java
index 4f16e9e..fe5cd00 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java
@@ -6,6 +6,9 @@
 
 import javax.annotation.Resource;
 
+import com.yeshi.fanli.exception.money.TeamRewardDebtException;
+import com.yeshi.fanli.exception.order.TaoBaoOrderException;
+import com.yeshi.fanli.service.manger.order.TeamRewardManager;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -31,133 +34,140 @@
 
 @Service
 public class TaoBaoWeiQuanOrderServiceImpl implements TaoBaoWeiQuanOrderService {
-	@Resource
-	private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
+    @Resource
+    private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
 
-	@Resource
-	private UserOrderMsgNotificationService userOrderMsgNotificationService;
+    @Resource
+    private TeamRewardManager teamRewardManager;
 
-	@Resource
-	private MsgOrderDetailService msgOrderDetailService;
 
-	@Resource
-	private CommonOrderService commonOrderService;
+    @Resource
+    private CommonOrderService commonOrderService;
 
-	@Resource
-	private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
+    @Resource
+    private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
 
-	@Resource
-	private RocketMQManager rocketMQManager;
+    @Resource
+    private RocketMQManager rocketMQManager;
 
-	@Transactional(rollbackFor = Exception.class)
-	@Override
-	public void addWeiQuanOrder(TaoBaoWeiQuanOrder order) {
-		if (order == null)
-			return;
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void addWeiQuanOrder(TaoBaoWeiQuanOrder order) {
+        if (order == null)
+            return;
 
-		boolean isAdd = false;
-		boolean isUpdate = false;
-		Long id = null;
+        boolean isAdd = false;
+        boolean isUpdate = false;
+        Long id = null;
 
-		TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderMapper
-				.selectByOrderIdAndOrderItemId(order.getOrderId(), order.getOrderItemId());
-		if (taoBaoWeiQuanOrder != null) {
-			id = taoBaoWeiQuanOrder.getId();
-			// 宸茬粡鏄渶鏂扮殑鐘舵�佷簡
-			if (taoBaoWeiQuanOrder.getState() != null && (taoBaoWeiQuanOrder.getState().contains("缁存潈鎴愬姛")))
-				return;
-			// 鏇存柊閲戦锛岀姸鎬佷笌鏃堕棿
-			TaoBaoWeiQuanOrder update = new TaoBaoWeiQuanOrder();
-			update.setId(taoBaoWeiQuanOrder.getId());
-			update.setFanMoney(order.getFanMoney());
-			update.setJieSuanTime(order.getJieSuanTime());
-			update.setMoney(order.getMoney());
-			update.setState(order.getState());
-			update.setUpdateTime(new Date());
-			update.setWeiQuanFinishTime(order.getWeiQuanFinishTime());
-			taoBaoWeiQuanOrderMapper.updateByPrimaryKeySelective(update);
-			isUpdate = true;
-			try {
-				if (order.getState().contains("缁存潈鎴愬姛")) {
-					// 鏇存敼CommonOrder鐨勭姸鎬�
-					CommonOrder commonOrder = commonOrderService
-							.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, order.getOrderItemId());
-					if (commonOrder != null) {
-						CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
-						updateCommonOrder.setState(CommonOrder.STATE_WQ);
-						updateCommonOrder.setUpdateTime(new Date());
-						commonOrderService.updateByPrimaryKeySelective(updateCommonOrder);
-						userOrderWeiQuanRecordService.addTaoBaoWeiQuan(taoBaoWeiQuanOrder);
-					}
-				}
-			} catch (Exception e) {
+        TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderMapper
+                .selectByOrderIdAndOrderItemId(order.getOrderId(), order.getOrderItemId());
+        if (taoBaoWeiQuanOrder != null) {
+            id = taoBaoWeiQuanOrder.getId();
+            // 宸茬粡鏄渶鏂扮殑鐘舵�佷簡
+            if (taoBaoWeiQuanOrder.getState() != null && (taoBaoWeiQuanOrder.getState().contains("缁存潈鎴愬姛")))
+                return;
+            // 鏇存柊閲戦锛岀姸鎬佷笌鏃堕棿
+            TaoBaoWeiQuanOrder update = new TaoBaoWeiQuanOrder();
+            update.setId(taoBaoWeiQuanOrder.getId());
+            update.setFanMoney(order.getFanMoney());
+            update.setJieSuanTime(order.getJieSuanTime());
+            update.setMoney(order.getMoney());
+            update.setState(order.getState());
+            update.setUpdateTime(new Date());
+            update.setWeiQuanFinishTime(order.getWeiQuanFinishTime());
+            taoBaoWeiQuanOrderMapper.updateByPrimaryKeySelective(update);
+            isUpdate = true;
+            try {
+                if (order.getState().contains("缁存潈鎴愬姛")) {
+                    weiQuanSuccess(order);
+                }
+            } catch (Exception e) {
 
-			}
-		} else {
-			order.setCreateTime(new Date());
-			order.setUpdateTime(new Date());
-			taoBaoWeiQuanOrderMapper.insertSelective(order);
-			id = order.getId();
-			isAdd = true;
-			if (order.getState().contains("缁存潈鎴愬姛")) {
-				// 鏇存敼CommonOrder鐨勭姸鎬�
-				CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
-						order.getOrderItemId());
-				if (commonOrder != null) {
-					CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
-					updateCommonOrder.setState(CommonOrder.STATE_WQ);
-					updateCommonOrder.setUpdateTime(new Date());
-					commonOrderService.updateByPrimaryKeySelective(updateCommonOrder);
-					userOrderWeiQuanRecordService.addTaoBaoWeiQuan(order);
-				}
-			}
-		}
+            }
+        } else {
+            order.setCreateTime(new Date());
+            order.setUpdateTime(new Date());
+            taoBaoWeiQuanOrderMapper.insertSelective(order);
+            id = order.getId();
+            isAdd = true;
+            if (order.getState().contains("缁存潈鎴愬姛")) {
+                weiQuanSuccess(order);
+            }
+        }
 
-		// 澧炲姞鎴栦慨鏀�
-		if (isAdd || isUpdate) {
-			if (id != null) {
-				OrderWeiQuanMQMsg msg = new OrderWeiQuanMQMsg(order.getOrderId(), order.getOrderItemId(),
-						Constant.SOURCE_TYPE_TAOBAO);
-				Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.taoBaoOrderWeiQuan,
-						msg);
-				rocketMQManager.sendNormalMsg(message, null);
-			}
-		}
+        // 澧炲姞鎴栦慨鏀�
+        if (isAdd || isUpdate) {
+            if (id != null) {
+                OrderWeiQuanMQMsg msg = new OrderWeiQuanMQMsg(order.getOrderId(), order.getOrderItemId(),
+                        Constant.SOURCE_TYPE_TAOBAO);
+                Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.taoBaoOrderWeiQuan,
+                        msg);
+                rocketMQManager.sendNormalMsg(message, null);
+            }
+        }
 
-	}
+    }
 
-	@Override
-	public List<TaoBaoWeiQuanOrder> getWeiQuanSuccessOrders(String orderId) {
-		return taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(orderId, "缁存潈鎴愬姛");
-	}
 
-	@Override
-	public TaoBaoWeiQuanOrder listByorderItemId(String tradeId) {
-		return taoBaoWeiQuanOrderMapper.selectByOrderItemId(tradeId);
-	}
+    /**
+     * 缁存潈鎴愬姛
+     *
+     * @param order
+     */
+    private void weiQuanSuccess(TaoBaoWeiQuanOrder order) {
+        // 鏇存敼CommonOrder鐨勭姸鎬�
+        CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
+                order.getOrderItemId());
+        if (commonOrder != null) {
+            CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
+            updateCommonOrder.setState(CommonOrder.STATE_WQ);
+            updateCommonOrder.setUpdateTime(new Date());
+            commonOrderService.updateByPrimaryKeySelective(updateCommonOrder);
+            userOrderWeiQuanRecordService.addTaoBaoWeiQuan(order);
+            try {
+                teamRewardManager.weiQuan(order.getOrderId(), Constant.SOURCE_TYPE_TAOBAO, order.getOrderItemId());
+            } catch (TaoBaoOrderException e) {
+                e.printStackTrace();
+            } catch (TeamRewardDebtException e) {
+                e.printStackTrace();
+            }
+        }
 
-	@Override
-	public List<TaoBaoWeiQuanOrder> listByState(String state, int page, int pageSize) {
-		return taoBaoWeiQuanOrderMapper.listByState(state, (page - 1) * pageSize, pageSize);
-	}
+    }
 
-	@Override
-	public long countByState(String state) {
-		return taoBaoWeiQuanOrderMapper.countByState(state);
-	}
+    @Override
+    public List<TaoBaoWeiQuanOrder> getWeiQuanSuccessOrders(String orderId) {
+        return taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(orderId, "缁存潈鎴愬姛");
+    }
 
-	@Override
-	public List<TaoBaoWeiQuanOrder> listByOrderId(String orderId) {
-		return taoBaoWeiQuanOrderMapper.listByOrderId(orderId);
-	}
+    @Override
+    public TaoBaoWeiQuanOrder listByorderItemId(String tradeId) {
+        return taoBaoWeiQuanOrderMapper.selectByOrderItemId(tradeId);
+    }
 
-	@Override
-	public TaoBaoWeiQuanOrder selectByTradeId(String tradeId) {
-		return taoBaoWeiQuanOrderMapper.selectByOrderItem(tradeId);
-	}
+    @Override
+    public List<TaoBaoWeiQuanOrder> listByState(String state, int page, int pageSize) {
+        return taoBaoWeiQuanOrderMapper.listByState(state, (page - 1) * pageSize, pageSize);
+    }
 
-	@Override
-	public List<TaoBaoWeiQuanOrder> listByBeginWeiQuan(int page, int pageSize) {
-		return taoBaoWeiQuanOrderMapper.listByBeginWeiQuan((page - 1) * pageSize, pageSize);
-	}
+    @Override
+    public long countByState(String state) {
+        return taoBaoWeiQuanOrderMapper.countByState(state);
+    }
+
+    @Override
+    public List<TaoBaoWeiQuanOrder> listByOrderId(String orderId) {
+        return taoBaoWeiQuanOrderMapper.listByOrderId(orderId);
+    }
+
+    @Override
+    public TaoBaoWeiQuanOrder selectByTradeId(String tradeId) {
+        return taoBaoWeiQuanOrderMapper.selectByOrderItem(tradeId);
+    }
+
+    @Override
+    public List<TaoBaoWeiQuanOrder> listByBeginWeiQuan(int page, int pageSize) {
+        return taoBaoWeiQuanOrderMapper.listByBeginWeiQuan((page - 1) * pageSize, pageSize);
+    }
 }

--
Gitblit v1.8.0