From 4cb15e222cd7d099d533ccbeb7f9a8cd99bf180c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 十二月 2018 16:35:18 +0800
Subject: [PATCH] 替换原来老的资金详情

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoServiceImpl.java |   82 +++++++++++++++++++++++++++++++++--------
 1 files changed, 66 insertions(+), 16 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoServiceImpl.java
index 4e482e4..3b98bc4 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoServiceImpl.java
@@ -10,7 +10,6 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.ibatis.annotations.Param;
 import org.hibernate.HibernateException;
 import org.hibernate.Query;
 import org.hibernate.SQLQuery;
@@ -33,6 +32,7 @@
 import com.yeshi.fanli.dao.mybatis.ThreeSaleMapper;
 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.OrderItemMapper;
 import com.yeshi.fanli.dao.mybatis.order.OrderMapper;
 import com.yeshi.fanli.entity.admin.OrderAdmin;
@@ -47,8 +47,10 @@
 import com.yeshi.fanli.entity.bus.user.ThreeSaleGift;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.common.Config;
+import com.yeshi.fanli.entity.money.UserMoneyDetail;
 import com.yeshi.fanli.entity.taobao.OrderVital;
 import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
+import com.yeshi.fanli.exception.money.UserMoneyDetailException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.config.SystemConfigService;
@@ -59,7 +61,6 @@
 import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
 import com.yeshi.fanli.service.inter.order.OrderItemServcie;
 import com.yeshi.fanli.service.inter.order.OrderService;
-import com.yeshi.fanli.service.inter.push.PushService;
 import com.yeshi.fanli.service.inter.user.AccountDetailsService;
 import com.yeshi.fanli.service.inter.user.AccountMessageService;
 import com.yeshi.fanli.service.inter.user.MoneyRecordService;
@@ -75,6 +76,7 @@
 import com.yeshi.fanli.util.factory.AccountDetailsFactory;
 import com.yeshi.fanli.util.factory.AccountMessageFactory;
 import com.yeshi.fanli.util.factory.HongBaoFactory;
+import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
 import com.yeshi.fanli.util.push.XiaoMiPushUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@@ -164,6 +166,9 @@
 
 	@Resource
 	private UserNotificationService userNotificationService;
+	
+	@Resource
+	private UserMoneyDetailMapper userMoneyDetailMapper;
 
 	private static final String NEW_USER_HONGBAO = "new_user_hongbao";
 
@@ -441,6 +446,18 @@
 
 		AccountDetails ac = AccountDetailsFactory.create("+" + money, AccountDetailsFactory.XINREN, null, null, form);
 		accountDetailsMapper.insertSelective(ac);
+		// 鏂扮増璧勯噾鏄庣粏
+		try {
+			UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createNewerHongBao(hongBao);
+			userMoneyDetail.setId(ac.getId());
+			userMoneyDetailMapper.insert(userMoneyDetail);
+		} catch (UserMoneyDetailException e) {
+			try {
+				LogHelper.errorDetailInfo(e);
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
+		}
 
 		userInfoMapper.addHongBaoByUid(form.getId(), new BigDecimal(money));
 		userNotificationService.newerHongBao(form.getId(), new BigDecimal(money));
@@ -870,8 +887,8 @@
 
 	@Transactional
 	public void updateHongBao(HongBao hongBao, TaoBaoOrder taoBaoOrder) {
-		BigDecimal rate = new BigDecimal(hongBaoManageMapper.selectByKey("hongbao_goods_proportion").getValue())
-				.divide(new BigDecimal(100));
+		BigDecimal proportion = hongBaoManageService.getFanLiRate();
+		BigDecimal rate = proportion.divide(new BigDecimal(100));
 		// 鏇存柊绾㈠寘椤�
 		HongBao updateHongBao = new HongBao();
 		updateHongBao.setId(hongBao.getId());
@@ -910,7 +927,7 @@
 				});
 			}
 		} else if ("璁㈠崟缁撶畻".equals(taoBaoOrder.getOrderState())) {// 鏇存柊棰勪及鑾峰彇鏃堕棿
-			BigDecimal money = MoneyBigDecimalUtil.mul(taoBaoOrder.getEstimate(), rate);
+			BigDecimal money = MoneyBigDecimalUtil.mul(taoBaoOrder.geteIncome(), rate);
 			// 璁剧疆棰勮棰嗗彇鏃堕棿
 			long settlementTime = TimeUtil.convertDateToTemp2(taoBaoOrder.getSettlementTime().trim());
 			// 棰勮棰嗗彇鏃堕棿
@@ -940,7 +957,8 @@
 					hongBaoMapper.updateByPrimaryKeySelective(updateChildHongBao);
 				});
 
-			BigDecimal estimate = taoBaoOrder.getEstimate();
+			BigDecimal estimate = taoBaoOrder.geteIncome();
+			updateHongBao.setPayMoney(taoBaoOrder.getSettlement());
 			updateHongBao.setMoney(MoneyBigDecimalUtil.mul(estimate, rate));
 		}
 
@@ -980,14 +998,22 @@
 	public void addHongBao(Order order, TaoBaoOrder taoBaoOrder, Long orderItemId) {
 		OrderItem orderItem = orderItemMapper.selectByPrimaryKey(orderItemId);
 		// 璁㈠崟杩斿埄姣斾緥
-		BigDecimal baseRate = new BigDecimal(hongBaoManageMapper.selectByKey("hongbao_goods_proportion").getValue())
-				.divide(new BigDecimal(100));
+		BigDecimal proportion = hongBaoManageService.getFanLiRate();
+		BigDecimal baseRate = proportion.divide(new BigDecimal(100));
 
 		// 鍒涘缓绾㈠寘
 		JSONObject data = new JSONObject();
-		HongBao hongBao = HongBaoFactory.createHongBao(MoneyBigDecimalUtil.mul(baseRate, taoBaoOrder.getEstimate()),
-				data.toString(), order.getId(), null, order.getUserInfo(), 1, taoBaoOrder.getPayment(),
-				taoBaoOrder.getAuctionId());
+		HongBao hongBao = null;
+		if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻"))
+			// 璁㈠崟缁撶畻搴旇鍙栫粨绠楅噾棰濅笌棰勪及鏀跺叆
+			hongBao = HongBaoFactory.createHongBao(MoneyBigDecimalUtil.mul(baseRate, taoBaoOrder.geteIncome()),
+					data.toString(), order.getId(), null, order.getUserInfo(), 1, taoBaoOrder.getSettlement(),
+					taoBaoOrder.getAuctionId());
+		else
+			hongBao = HongBaoFactory.createHongBao(MoneyBigDecimalUtil.mul(baseRate, taoBaoOrder.getEstimate()),
+					data.toString(), order.getId(), null, order.getUserInfo(), 1, taoBaoOrder.getPayment(),
+					taoBaoOrder.getAuctionId());
+
 		hongBao.setOrderId(taoBaoOrder.getOrderId());
 		hongBao.setOrderItemId(orderItem.getId());
 		hongBao.setPreGettime(0L);
@@ -1001,6 +1027,10 @@
 		if (boss != null) {
 			hongBao.setHasChild(true);
 		}
+
+		// 濡傛灉澶辨晥灏卞垽瀹氬凡缁忓け鏁�
+		if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟澶辨晥"))
+			hongBao.setState(HongBao.STATE_SHIXIAO);
 
 		hongBaoMapper.insertSelective(hongBao);
 		// 閫氱煡鐢ㄦ埛璁㈠崟琚粺璁�
@@ -1024,7 +1054,19 @@
 			else
 				rate = new BigDecimal(hbm.getValue()).divide(new BigDecimal(100));
 			if (rate.compareTo(new BigDecimal(0)) > 0) {
-				HongBao hongBao2 = HongBaoFactory.createHongBao(
+				HongBao hongBao2 = null;
+				if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻")) {
+					// 璁㈠崟缁撶畻搴旇鍙栫粨绠楅噾棰濅笌棰勪及鏀跺叆
+					hongBao2 = HongBaoFactory.createHongBao(
+							MoneyBigDecimalUtil.mul(rate, MoneyBigDecimalUtil.mul(taoBaoOrder.geteIncome(), baseRate)),
+							null, hongBao, boss, Constant.ONESALE);
+				} else {
+					hongBao2 = HongBaoFactory.createHongBao(
+							MoneyBigDecimalUtil.mul(rate, MoneyBigDecimalUtil.mul(taoBaoOrder.getEstimate(), baseRate)),
+							null, hongBao, boss, Constant.ONESALE);
+				}
+
+				HongBaoFactory.createHongBao(
 						MoneyBigDecimalUtil.mul(rate, MoneyBigDecimalUtil.mul(taoBaoOrder.getEstimate(), baseRate)),
 						null, hongBao, boss, Constant.ONESALE);
 				// 璁剧疆璁㈠崟鍙�
@@ -1050,10 +1092,18 @@
 				else
 					rate = new BigDecimal(hbm.getValue()).divide(new BigDecimal(100));
 				if (rate.compareTo(new BigDecimal(0)) > 0) {
-
-					HongBao hongBao3 = HongBaoFactory.createHongBao(
-							MoneyBigDecimalUtil.mul(rate, MoneyBigDecimalUtil.mul(taoBaoOrder.getEstimate(), baseRate)),
-							null, hongBao, boss2, Constant.TWOSALE);
+					// 璁㈠崟缁撶畻搴旇鍙栫粨绠楅噾棰濅笌棰勪及鏀跺叆
+					HongBao hongBao3 = null;
+					if (taoBaoOrder.getOrderState().equalsIgnoreCase("璁㈠崟缁撶畻"))
+						hongBao3 = HongBaoFactory.createHongBao(
+								MoneyBigDecimalUtil.mul(rate,
+										MoneyBigDecimalUtil.mul(taoBaoOrder.geteIncome(), baseRate)),
+								null, hongBao, boss2, Constant.TWOSALE);
+					else
+						hongBao3 = HongBaoFactory.createHongBao(
+								MoneyBigDecimalUtil.mul(rate,
+										MoneyBigDecimalUtil.mul(taoBaoOrder.getEstimate(), baseRate)),
+								null, hongBao, boss2, Constant.TWOSALE);
 					// 璁剧疆杩斿埄璁㈠崟鍙�
 					hongBao3.setOrderId(taoBaoOrder.getOrderId());
 					hongBaoMapper.insertSelective(hongBao3);

--
Gitblit v1.8.0