From ce3d1cd14804f5a68c1f564296ebd2ec4d284428 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 24 十二月 2018 14:48:26 +0800
Subject: [PATCH] 订单申诉失效bug修改
---
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 238 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 201 insertions(+), 37 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 de2f463..2ab204d 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
@@ -23,9 +23,11 @@
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.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.entity.bus.user.HongBaoExtra;
@@ -33,6 +35,7 @@
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.taobao.PidOrder;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
@@ -43,7 +46,10 @@
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;
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.order.LostOrderService;
import com.yeshi.fanli.service.inter.order.OrderItemServcie;
@@ -61,6 +67,7 @@
import com.yeshi.fanli.util.StringUtil;
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.TaoBaoOrderUtil;
@Service
@@ -131,6 +138,18 @@
@Resource
private LostOrderService lostOrderService;
+
+ @Resource
+ private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
+
+ @Resource
+ private HongBaoManageService hongBaoManageService;
+
+ @Resource
+ private AccountDetailsHongBaoMapService accountDetailsHongBaoMapService;
+
+ @Resource
+ private UserMoneyDetailMapper userMoneyDetailMapper;
@Override
public void processOrder(Map<String, List<TaoBaoOrder>> orders) {
@@ -394,8 +413,13 @@
} else// 璁$畻璁㈠崟鐨勬�婚噾棰�
{
BigDecimal money = new BigDecimal(0);
- for (TaoBaoOrder o : orderList)
- money = money.add(o.getPayment());
+ 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)
@@ -408,7 +432,7 @@
orderMapper.updateByPrimaryKeySelective(updateOrder);
Order order = oldOrder;
// 璁㈠崟杩斿埄姣斾緥
- BigDecimal rate = new BigDecimal(hongBaoManageMapper.selectByKey("hongbao_goods_proportion").getValue());
+ BigDecimal rate = hongBaoManageService.getFanLiRate();
// 鏌ユ壘鏄惁瀛樺湪绾㈠寘
List<HongBao> hongBaoList = hongBaoMapper.selectByOid(order.getId());
@@ -449,6 +473,16 @@
public void fanli(HongBao hb) throws TaoBaoWeiQuanException {
// 鏌ヨ鏈�鏂扮殑绾㈠寘鏁版嵁
hb = hongBaoMapper.selectByPrimaryKeyForUpdate(hb.getId());
+ // 缁存潈涓殑涓嶈繑鍒�
+ List<TaoBaoWeiQuanOrder> taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper
+ .selectListByOrderIdAndState(hb.getOrderId(), "缁存潈鍒涘缓");
+ if (taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0)
+ return;
+
+ taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(hb.getOrderId(), "绛夊緟澶勭悊");
+ if (taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0)
+ return;
+
long currentTimeMillis = System.currentTimeMillis();
if (hb.getState() != HongBao.STATE_SHIXIAO) {
// 璁剧疆涓哄凡杩斿埄
@@ -481,6 +515,23 @@
AccountDetails accountDetails = AccountDetailsFactory.create("+" + hb.getMoney(),
AccountDetailsFactory.FANLI, orderItem, null, hb.getUserInfo());
accountDetailsMapper.insertSelective(accountDetails);
+
+ // 鎻掑叆鏂扮増璧勯噾鏄庣粏
+ try {
+ UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createFanLi(hb.getUserInfo().getId(),
+ hb.getOrderId(), 1,hb.getId(), hb.getMoney());
+ userMoneyDetail.setId(accountDetails.getId());
+ userMoneyDetailMapper.insert(userMoneyDetail);
+ } catch (UserMoneyDetailException e1) {
+ try {
+ LogHelper.errorDetailInfo(e1);
+ } catch (Exception e2) {
+ e2.printStackTrace();
+ }
+ }
+
+ // 娣诲姞璧勯噾鏄庣粏涓庣孩鍖呯殑鏄犲皠鍏崇郴
+ accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hb.getId(), accountDetails.getId());
// 缁存潈鎵f锛�2018-08-05鍚庡紑濮嬪疄琛岋級
if (hb.getBalanceTime() != null
@@ -516,9 +567,9 @@
List<TaoBaoOrder> orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(order.getOrderId());
if (orderList != null && orderList.size() > 0 & !StringUtil.isNullOrEmpty(orderList.get(0).getSettlementTime()))
- order.setJieSuanTime(orderList.get(0).getSettlementTime());
- if (TimeUtil.convertToTimeTemp(order.getJieSuanTime(), "yyyy-MM-dd HH:mm:ss") >= TimeUtil
- .convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) {
+ order.setJieSuanTime(
+ new Date(TimeUtil.convertToTimeTemp(orderList.get(0).getSettlementTime(), "yyyy-MM-dd HH:mm:ss")));
+ if (order.getJieSuanTime().getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) {
return;
}
try {
@@ -554,25 +605,49 @@
}
}
+ private HongBao filterWeiQuanINGHongBao(HongBao hongBao) {
+
+ List<TaoBaoWeiQuanOrder> taoBaoWeiQuanList = taoBaoWeiQuanOrderMapper
+ .selectListByOrderIdAndState(hongBao.getOrderId(), "缁存潈鍒涘缓");
+
+ List<TaoBaoWeiQuanOrder> taoBaoWeiQuanList1 = taoBaoWeiQuanOrderMapper
+ .selectListByOrderIdAndState(hongBao.getOrderId(), "绛夊緟澶勭悊");
+ if ((taoBaoWeiQuanList != null && taoBaoWeiQuanList.size() > 0)
+ || (taoBaoWeiQuanList1 != null && taoBaoWeiQuanList1.size() > 0)) {
+ return null;
+ }
+ return hongBao;
+ }
+
@Override
@Transactional
public void fanliInvaiteAndShare(Long uid) throws TaoBaoWeiQuanException {
+ /**
+ * 澶勭悊閭�璇疯禋璁㈠崟
+ */
// 鏌ヨUID鐨勯個璇疯禋璁㈠崟
List<HongBao> hongBaoList = hongBaoMapper.selectCanBalanceHongBaoByChildHongBaoAndUid(uid);
- BigDecimal money = new BigDecimal(0);
+ List<Long> hbIdList = new ArrayList<>();
+
+ BigDecimal invitemoney = new BigDecimal(0);
// 闇�瑕佸垽鏂��娆剧殑璁㈠崟鍙�
Set<String> drawBackOrders = new HashSet<String>();
-
for (HongBao hongBao : hongBaoList) {
+ hongBao = filterWeiQuanINGHongBao(hongBao);
+ if (hongBao == null)
+ continue;
+
hongBao = hongBaoMapper.selectByPrimaryKeyForUpdate(hongBao.getId());
if (hongBao.getState() == HongBao.STATE_BUKELINGQU || hongBao.getState() == HongBao.STATE_KELINGQU) {
- money = money.add(hongBao.getMoney());
+ invitemoney = invitemoney.add(hongBao.getMoney());
HongBao updateHongBao = new HongBao();
updateHongBao.setId(hongBao.getId());
updateHongBao.setGetTime(System.currentTimeMillis());
updateHongBao.setState(HongBao.STATE_YILINGQU);
hongBaoMapper.updateByPrimaryKeySelective(updateHongBao);
+ // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
+ hbIdList.add(hongBao.getId());
// 2018-08-05 杩囧悗鐨勮鍗曟墠澶勭悊缁存潈
Date balanceTime = null;
if (hongBao.getParent() != null)
@@ -588,18 +663,106 @@
}
}
}
+
+
+
+ /**
+ * 澶勭悊涓�绾т簩绾у垎浜禋(灞炰簬閭�璇疯禋绫诲瀷)
+ */
+ List<HongBao> totalHongBaoList = new ArrayList<>();
+ // 鏌ヨUID鐨勪簩绾ф垨鑰呬笁绾у垎浜禋璁㈠崟
+ // TODO 鏆傛椂鏌ヨ10000鏉℃暟鎹紝鍚庨潰鍐嶅仛鍒嗛〉
+ List<HongBao> hbList = hongBaoMapper.selectCanBalanceHongBaoByTypeAndUid(HongBao.TYPE_SHARE_YIJI, uid, 10000);
+
+ if (hbList != null && hbList.size() > 0)
+ totalHongBaoList.addAll(hbList);
+
+ hbList = hongBaoMapper.selectCanBalanceHongBaoByTypeAndUid(HongBao.TYPE_SHARE_ERJI, uid, 10000);
+ if (hbList != null && hbList.size() > 0)
+ totalHongBaoList.addAll(hbList);
+
+ for (HongBao hb : totalHongBaoList) {
+ if (hb.getState() == HongBao.STATE_BUKELINGQU || hb.getState() == HongBao.STATE_KELINGQU) {
+ hb = filterWeiQuanINGHongBao(hb);
+ if (hb == null)
+ continue;
+ invitemoney = invitemoney.add(hb.getMoney());
+ HongBao updateHongBao = new HongBao();
+ updateHongBao.setId(hb.getId());
+ updateHongBao.setGetTime(System.currentTimeMillis());
+ updateHongBao.setState(HongBao.STATE_YILINGQU);
+ hongBaoMapper.updateByPrimaryKeySelective(updateHongBao);
+ // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
+ hbIdList.add(hb.getId());
+ if (!StringUtil.isNullOrEmpty(hb.getOrderId()))
+ drawBackOrders.add(hb.getOrderId());
+ }
+ }
+
+
+
+ // 閭�璇疯禋鍒拌处
+ 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 {
+ UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, 0, 0, 0, invitemoney,
+ new Date());
+ userMoneyDetail.setId(accountDetails.getId());
+ userMoneyDetailMapper.insert(userMoneyDetail);
+ } catch (UserMoneyDetailException e) {
+ try {
+ LogHelper.errorDetailInfo(e);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+
+ // 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴
+
+ // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
+ accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId());
+
+ // 鍙戦�佹帹閫�
+ try {
+ // 鎻愭垚鍒拌处娑堟伅閫氱煡
+ userNotificationService.tiChengInviteRecieved(uid, invitemoney);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ for (String orderId : drawBackOrders)
+ taoBaoWeiQuanDrawBackService.doWeiQuanInvite(orderId);
+ }
+
+ hbIdList.clear();
+ drawBackOrders.clear();
+
+ /**
+ * 澶勭悊鍒嗕韩璧�
+ */
+ BigDecimal sharemoney = new BigDecimal(0);
// 鏌ヨUID鐨勫垎浜禋璁㈠崟
List<PidOrder> pidOrderList = pidOrderMapper.getCanBalanceListByUid(uid);
for (PidOrder pidOrder : pidOrderList) {
HongBao hongBao = hongBaoMapper.selectByPrimaryKeyForUpdate(pidOrder.getHongBao().getId());
+ hongBao = filterWeiQuanINGHongBao(hongBao);
+ if (hongBao == null)
+ continue;
if (hongBao.getState() == HongBao.STATE_BUKELINGQU || hongBao.getState() == HongBao.STATE_KELINGQU) {
- money = money.add(hongBao.getMoney());
+ sharemoney = sharemoney.add(hongBao.getMoney());
HongBao updateHongBao = new HongBao();
updateHongBao.setId(hongBao.getId());
updateHongBao.setGetTime(System.currentTimeMillis());
updateHongBao.setState(HongBao.STATE_YILINGQU);
hongBaoMapper.updateByPrimaryKeySelective(updateHongBao);
+ // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
+ hbIdList.add(hongBao.getId());
// 2018-08-05 杩囧悗鐨勮鍗曟墠澶勭悊缁存潈
Date balanceTime = null;
if (hongBao.getParent() != null)
@@ -613,47 +776,48 @@
}
}
- List<HongBao> totalHongBaoList = new ArrayList<>();
- // 鏌ヨUID鐨勪簩绾ф垨鑰呬笁绾у垎浜禋璁㈠崟
- // TODO 鏆傛椂鏌ヨ10000鏉℃暟鎹紝鍚庨潰鍐嶅仛鍒嗛〉
- List<HongBao> hbList = hongBaoMapper.selectCanBalanceHongBaoByTypeAndUid(HongBao.TYPE_SHARE_YIJI, uid, 10000);
- if (hbList != null && hbList.size() > 0)
- totalHongBaoList.addAll(hbList);
+
- hbList = hongBaoMapper.selectCanBalanceHongBaoByTypeAndUid(HongBao.TYPE_SHARE_ERJI, uid, 10000);
- if (hbList != null && hbList.size() > 0)
- totalHongBaoList.addAll(hbList);
+ /**
+ * 鍒嗕韩璧氬埌璐�
+ */
- for (HongBao hb : totalHongBaoList) {
- if (hb.getState() == HongBao.STATE_BUKELINGQU || hb.getState() == HongBao.STATE_KELINGQU) {
- money = money.add(hb.getMoney());
- HongBao updateHongBao = new HongBao();
- updateHongBao.setId(hb.getId());
- updateHongBao.setGetTime(System.currentTimeMillis());
- updateHongBao.setState(HongBao.STATE_YILINGQU);
- hongBaoMapper.updateByPrimaryKeySelective(updateHongBao);
- if (!StringUtil.isNullOrEmpty(hb.getOrderId()))
- drawBackOrders.add(hb.getOrderId());
- }
- }
-
- if (money.compareTo(new BigDecimal(0)) > 0) {
- userInfoMapper.addHongBaoByUid(uid, money);
+ if (sharemoney.compareTo(new BigDecimal(0)) > 0) {
+ userInfoMapper.addHongBaoByUid(uid, sharemoney);
// 娣诲姞璁板綍
- AccountDetails accountDetails = AccountDetailsFactory.create("+" + money, AccountDetailsFactory.TICHENG,
- null, null, new UserInfo(uid));
+ AccountDetails accountDetails = AccountDetailsFactory.create("+" + sharemoney,
+ AccountDetailsFactory.SHARE_GOODS, null, null, new UserInfo(uid));
accountDetailsMapper.insertSelective(accountDetails);
+
+ // 娣诲姞鏂扮増璇︽儏璁板綍
+ try {
+ UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, 0, 0, 0, sharemoney,
+ new Date());
+ userMoneyDetail.setId(accountDetails.getId());
+ userMoneyDetailMapper.insert(userMoneyDetail);
+ } catch (UserMoneyDetailException e) {
+ try {
+ LogHelper.errorDetailInfo(e);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+ // 璁板綍杩斿埄绾㈠寘涓庤祫閲戣鎯呯殑瀵瑰簲鍏崇郴
+
+ // 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
+ accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, accountDetails.getId());
// 鍙戦�佹帹閫�
try {
// 鎻愭垚鍒拌处娑堟伅閫氱煡
- userNotificationService.tiChengRecieved(uid, money);
+ userNotificationService.tiChengShareRecieved(uid, sharemoney);
} catch (Exception e) {
e.printStackTrace();
}
for (String orderId : drawBackOrders)
taoBaoWeiQuanDrawBackService.doWeiQuanShare(orderId);
}
+
}
}
--
Gitblit v1.8.0