From 013a3a80d8b91506307995e282337143c7b09783 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 16 七月 2019 12:19:21 +0800
Subject: [PATCH] 添加淘宝订单后台查询功能

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderRepairServiceImpl.java |  209 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 205 insertions(+), 4 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderRepairServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderRepairServiceImpl.java
index ccb03db..f3717f7 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderRepairServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderRepairServiceImpl.java
@@ -19,6 +19,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import com.yeshi.fanli.dao.mybatis.HongBaoV2Mapper;
+import com.yeshi.fanli.dao.mybatis.money.ExtractCheckCompensateMapper;
 import com.yeshi.fanli.dao.mybatis.order.CommonOrderGoodsMapper;
 import com.yeshi.fanli.dao.mybatis.order.CommonOrderMapper;
 import com.yeshi.fanli.dao.mybatis.order.CommonOrderTradeIdMapMapper;
@@ -27,6 +28,7 @@
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.goods.CommonGoods;
+import com.yeshi.fanli.entity.money.ExtractCheckCompensate;
 import com.yeshi.fanli.entity.money.UserMoneyDetail;
 import com.yeshi.fanli.entity.order.CommonOrder;
 import com.yeshi.fanli.entity.order.CommonOrderGoods;
@@ -34,21 +36,27 @@
 import com.yeshi.fanli.entity.order.HongBaoOrder;
 import com.yeshi.fanli.entity.order.OrderRepairHistory;
 import com.yeshi.fanli.entity.order.ShareGoodsActivityOrder;
+import com.yeshi.fanli.entity.push.PushInfo;
+import com.yeshi.fanli.entity.push.PushInfo.PushTypeEnum;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
 import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
 import com.yeshi.fanli.exception.HongBaoException;
+import com.yeshi.fanli.exception.PushException;
 import com.yeshi.fanli.exception.money.UserMoneyDetailException;
+import com.yeshi.fanli.exception.push.PushInfoException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
 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.HongBaoOrderService;
 import com.yeshi.fanli.service.inter.order.OrderRepairHistoryService;
 import com.yeshi.fanli.service.inter.order.OrderRepairService;
 import com.yeshi.fanli.service.inter.order.ShareGoodsActivityOrderService;
+import com.yeshi.fanli.service.inter.push.PushInfoService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanOrderService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
@@ -64,6 +72,8 @@
 import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+
+import net.sf.json.JSONObject;
 
 @Service
 public class OrderRepairServiceImpl implements OrderRepairService {
@@ -127,6 +137,15 @@
 
 	@Resource
 	private UserMoneyService userMoneyService;
+
+	@Resource
+	private PushInfoService pushInfoService;
+
+	@Resource
+	private UserMoneyMsgNotificationService userMoneyMsgNotificationService;
+
+	@Resource
+	private ExtractCheckCompensateMapper extractCheckCompensateMapper;
 
 	@Transactional
 	@Override
@@ -880,6 +899,7 @@
 
 	@Transactional(propagation = Propagation.REQUIRED)
 	private void deleteByCommonOrderId(Long commonOrderId) {
+		commonOrderMapper.deleteByPrimaryKey(commonOrderId);
 		HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrderId);
 		if (hongBaoOrder == null || hongBaoOrder.getHongBaoV2() == null)
 			return;
@@ -890,7 +910,7 @@
 			}
 		hongBaoV2Mapper.deleteByPrimaryKey(hongBaoOrder.getHongBaoV2().getId());
 		hongBaoOrderMapper.deleteByPrimaryKey(hongBaoOrder.getId());
-		commonOrderMapper.deleteByPrimaryKey(commonOrderId);
+
 	}
 
 	@Transactional
@@ -940,8 +960,12 @@
 		return orderInfoMap.get(orderId);
 	}
 
+	@Transactional
 	@Override
 	public void repireFirstAndSecondLevel(String orderId) throws Exception {
+		repireFirstShare(orderId);
+		if (1 > 0)
+			return;
 		OrderInfo info = getOrderInfo(orderId);
 		Map<Long, BigDecimal> oldMoneyMap = new HashMap<>();
 		if (info.getFirstUid() != null)
@@ -964,6 +988,8 @@
 
 			for (CommonOrder commonOrder : list) {
 				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+				if (hongBaoOrder == null)
+					continue;
 				HongBaoV2 hongBao = hongBaoOrder.getHongBaoV2();
 				Long firstUid = info.getFirstUid();
 				Long secondUid = info.getSecondUid();
@@ -1098,6 +1124,118 @@
 
 	}
 
+	private void repireFirstShare(String orderId) throws Exception {
+		OrderInfo info = getOrderInfo(orderId);
+		Long firstUid = info.getFirstUid();
+		Map<Long, BigDecimal> oldMoneyMap = new HashMap<>();
+		if (info.getFirstUid() != null)
+			oldMoneyMap.put(info.getFirstUid(), info.getFirstUidMoney());
+		if (info.getSecondUid() != null)
+			oldMoneyMap.put(info.getSecondUid(), info.getSecondUidMoney());
+
+		if (info != null) {
+			List<CommonOrder> list = commonOrderMapper.listBySourceTypeAndOrderNo(Constant.SOURCE_TYPE_TAOBAO,
+					info.getOrderId());
+			// 鏌ヨ鏄惁鏈夊瓙绾㈠寘
+			for (CommonOrder commonOrder : list) {
+				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+				if (hongBaoOrder == null)
+					continue;
+				List<HongBaoV2> hongBaoList = hongBaoV2Mapper.listChildrenById(hongBaoOrder.getHongBaoV2().getId());
+				if (hongBaoList != null && hongBaoList.size() > 0)// 鏈夊瓙绾㈠寘灏变笉澶勭悊浜�
+					return;
+			}
+
+			for (CommonOrder commonOrder : list) {
+				if (commonOrder.getState() == CommonOrder.STATE_SX || commonOrder.getState() == CommonOrder.STATE_WQ)
+					continue;
+				// 鍒嗕韩璧�
+
+				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+				if (hongBaoOrder == null)
+					continue;
+
+				HongBaoV2 hongBao = hongBaoOrder.getHongBaoV2();
+				// 4鏈�17鏃ュ悗鎵嶆湁涓�绾у垎浜禋
+				if (commonOrder.getThirdCreateTime().getTime() > TimeUtil.convertToTimeTemp("2019-04-17",
+						"yyyy-MM-dd")) {
+					UserInfo boss = null;
+					if (firstUid != null)
+						boss = userInfoService.selectByPKey(firstUid);
+					if (boss != null) {
+						BigDecimal firstLevelRate = hongBaoManageService.getFirstShareRate(1,
+								commonOrder.getThirdCreateTime().getTime());
+						HongBaoV2 child = new HongBaoV2();
+						child.setBeizhu("2019骞�7鏈堟壒閲忎慨鏀�");
+						child.setParent(hongBao);
+						child.setType(HongBaoV2.TYPE_SHARE_YIJI);
+						if (commonOrder.getState() == CommonOrder.STATE_FK) {
+							child.setState(HongBaoV2.STATE_BUKELINGQU);
+							child.setMoney(MoneyBigDecimalUtil.mul(commonOrder.getEstimate(),
+									firstLevelRate.divide(new BigDecimal(100))));
+						} else if (commonOrder.getState() == CommonOrder.STATE_JS) {
+							child.setState(HongBaoV2.STATE_KELINGQU);
+							child.setMoney(MoneyBigDecimalUtil.mul(commonOrder.geteIncome(),
+									firstLevelRate.divide(new BigDecimal(100))));
+							Calendar calendar = Calendar.getInstance();
+							calendar.setTime(commonOrder.getSettleTime());
+							calendar.add(Calendar.MONTH, 1);
+							child.setPreGetTime(new Date(TimeUtil.convertToTimeTemp(
+									calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25",
+									"yyyy-M-dd")));
+
+							if (child.getPreGetTime().getTime() < System.currentTimeMillis()) {
+								child.setGetTime(child.getPreGetTime());
+								child.setState(HongBaoV2.STATE_YILINGQU);
+							}
+
+						}
+						child.setUserInfo(boss);
+						child.setUrank(boss.getRank());
+						child.setVersion(2);
+						child.setCreateTime(new Date());
+						hongBaoV2Mapper.insertSelective(child);
+					}
+				}
+			}
+
+		}
+
+		// 缁熻淇敼鍚庣殑璧勯噾
+		List<CommonOrder> newCommonOrderList = commonOrderMapper.listBySourceTypeAndOrderNo(Constant.SOURCE_TYPE_TAOBAO,
+				orderId);
+		Map<Long, BigDecimal> newMap = new HashMap<>();
+		if (newCommonOrderList != null)
+			for (CommonOrder co : newCommonOrderList) {
+				HongBaoOrder newHongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(co.getId());
+				if (newHongBaoOrder == null)
+					continue;
+				HongBaoV2 hongBao = newHongBaoOrder.getHongBaoV2();
+				List<HongBaoV2> children = hongBaoV2Service.listChildrenById(hongBao.getId());
+				if (children != null)
+					for (HongBaoV2 child : children) {
+						if (newMap.get(child.getUserInfo().getId()) == null)
+							newMap.put(child.getUserInfo().getId(), new BigDecimal(0));
+						if (child.getState() == HongBaoV2.STATE_YILINGQU)
+							newMap.put(child.getUserInfo().getId(),
+									newMap.get(child.getUserInfo().getId()).add(child.getMoney()));
+					}
+			}
+
+		for (Iterator<Long> its = newMap.keySet().iterator(); its.hasNext();) {
+			Long uid = its.next();
+			BigDecimal beforeGetMoney = oldMoneyMap.get(uid);
+			BigDecimal afterGetMoney = newMap.get(uid);
+			OrderRepairHistory history = new OrderRepairHistory();
+			history.setAfterGetMoney(afterGetMoney);
+			history.setBeforeGetMoney(beforeGetMoney);
+			history.setOrderId(orderId);
+			history.setUid(uid);
+			orderRepairHistoryService.addOrderRepairHistory(history);
+		}
+
+	}
+
 	class OrderInfo {
 		private String orderId;
 		private Long firstUid;
@@ -1156,22 +1294,85 @@
 	@Override
 	public void doMoney(Long uid) {
 		List<OrderRepairHistory> historyList = listByUid(uid);
+		for (int i = 0; i < historyList.size(); i++) {
+			if (historyList.get(i).getCreateTime().getTime() < TimeUtil.convertToTimeTemp("2019-07-15 17:00:38",
+					"yyyy-MM-dd HH:mm:ss")) {
+				historyList.remove(i);
+				i--;
+			}
+
+		}
+
 		BigDecimal money = new BigDecimal(0);
+		String orders = "";
 		for (OrderRepairHistory history : historyList) {
-			money.add(history.getAfterGetMoney().subtract(history.getBeforeGetMoney()));
+			money = money.add(history.getAfterGetMoney().subtract(history.getBeforeGetMoney()));
+			orders += history.getOrderId() + ",";
 		}
 		if (money.compareTo(new BigDecimal(0)) > 0)// 璧勯噾闇�瑕佸鍔�
 		{
 			try {
-				UserMoneyDetail detail = UserMoneyDetailFactory.createSystemEqualize(null, money, new UserInfo(uid));
+				UserMoneyDetail detail = UserMoneyDetailFactory.createSystemEqualize("璁㈠崟缁熻寮傚父淇", money,
+						new UserInfo(uid));
 				// 绯荤粺琛ラ綈
+				// 鍔犺祫閲�
 				userMoneyService.addUserMoney(uid, money, detail);
+				pushMsg(uid, "鍏充簬杩戞湡璁㈠崟涓庤祫閲戝紓甯哥殑鎺掓煡涓庝慨澶嶇粨鏋滈�氱煡",
+						"灏婃暚鐨勭敤鎴凤紝缁忎粩缁嗘牳瀵规偍璐︽埛涓殑璁㈠崟锛屽彂鐜版偍璐︽埛涓湁鏈粺璁℃垨閿欒缁熻鐨勮鍗曪紝鎴戜滑宸茬粡涓烘偍琛ラ綈璧勯噾锛屽搴旇祫閲戝凡缁忓瓨鍏ユ偍鐨勮处鎴蜂綑棰濅腑锛屾暚璇锋煡鏀舵敞鏌ユ敹銆傛劅璋俊浠伙紝杩斿埄鍒窤pp缁堝皢鎴愪负鎮ㄦ渶淇′换鐨勮喘鐗╃渷閽卞姪鎵嬨��");
+				userMoneyMsgNotificationService.systemEqualize(uid, "璁㈠崟缁熻寮傚父淇", money, userInfoService.getBalance(uid));
 			} catch (UserMoneyDetailException e) {
 				e.printStackTrace();
 			}
 
-		} else {// 璧勯噾闇�瑕佸噺灏�
+		} else {// 璧勯噾闇�瑕佸噺灏�,涓嶈鎵i挶
+			pushMsg(uid, "鍏充簬杩戞湡璁㈠崟涓庤祫閲戝紓甯哥殑鎺掓煡涓庝慨澶嶇粨鏋滈�氱煡",
+					"灏婃暚鐨勭敤鎴凤紝缁忎粩缁嗘牳瀵规偍璐︽埛涓殑璁㈠崟锛屽彂鐜版偍璐︽埛涓湁閿欒缁熻鐨勮鍗曪紝鎴戜滑宸茬粡涓烘偍鎭㈠姝e父锛屾墍娑夊強璁㈠崟澶氱粺璁″嚭鏉ョ殑璧勯噾锛屼笉浼氳鎵i櫎锛屽嵆鎮ㄨ处鎴蜂腑鐨勮祫閲戝皢淇濇寔涓嶅彉锛屽凡鎻愮幇鐨勮祫閲戯紝涔熶笉浼氭敹鍥烇紝鏁鐭ユ檽銆傛劅璋俊浠伙紝杩斿埄鍒窤pp缁堝皢鎴愪负鎮ㄦ渶淇′换鐨勮喘鐗╃渷閽卞姪鎵嬨��");
+			// userMoneyMsgNotificationService.systemEqualize(uid, "璁㈠崟缁熻寮傚父淇",
+			// money, userInfoService.getBalance(uid));
+			// 鍔犲叆鎻愮幇瀹℃牳寮傚父淇濇姢涓�
+			ExtractCheckCompensate check = new ExtractCheckCompensate();
+			check.setBeiZhu("7鏈堣鍗曞紓甯哥郴缁熷鐞�:" + orders);
+			check.setCreateTime(new Date());
+			check.setMoney(money);
+			check.setUserInfo(new UserInfo(uid));
+			check.setUpdateTime(new Date());
+			extractCheckCompensateMapper.insertSelective(check);
+		}
+	}
 
+	private void pushMsg(Long uid, String title, String content) {
+
+		PushInfo pushInfo = new PushInfo();
+		pushInfo.setTitle(title);
+		pushInfo.setContent(content);
+		pushInfo.setUids(uid + "");
+		JSONObject jsonData = new JSONObject();
+		jsonData.put("url", "");
+		jsonData.put("ios", "鍏ㄦ帹");
+		jsonData.put("android", "鍏ㄦ帹");
+		pushInfo.setJsonData(jsonData.toString());
+		pushInfo.setType(PushTypeEnum.ZNX);
+		pushInfo.setArrayAndroid("[鍏ㄦ帹]");
+		pushInfo.setArrayIOS("[鍏ㄦ帹]");
+
+		pushInfo.setCreateTime(new Date());
+
+		try {
+			pushInfoService.save(pushInfo);
+		} catch (PushInfoException e) {
+			e.printStackTrace();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		try {
+			pushInfoService.handPush(pushInfo.getId());
+		} catch (PushInfoException e) {
+			e.printStackTrace();
+		} catch (PushException e) {
+			e.printStackTrace();
+		} catch (Exception e) {
+			e.printStackTrace();
 		}
 
 	}

--
Gitblit v1.8.0