From b59fef5c00b15fdfdfa9d4be26e5bf6b41c75458 Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期日, 23 二月 2020 00:16:52 +0800 Subject: [PATCH] 2.0.7相关服务端功能添加 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java | 121 +++++++++++++++++++++------------------- 1 files changed, 64 insertions(+), 57 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java index b3c5e56..e054f1c 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java @@ -114,7 +114,16 @@ @Resource private HongBaoV2SettleTempService hongBaoV2SettleTempService; - @Transactional + //涓嬬骇琚皝绂侊紝绾㈠寘澶辨晥 + private void invalidHongBaoForbidden(Long id) { + HongBaoV2 updateHongBaoV2 = new HongBaoV2(id); + updateHongBaoV2.setState(HongBaoV2.STATE_SHIXIAO); + updateHongBaoV2.setBeizhu("灏佺澶辨晥"); + updateHongBaoV2.setUpdateTime(new Date()); + hongBaoV2Mapper.updateByPrimaryKeySelective(updateHongBaoV2); + } + + @Transactional(rollbackFor = Exception.class) @Override public void inviteSettleTB(Long uid) throws OrderMoneySettleException { // 鏌ヨUID鐨勪竴浜岀骇閭�璇疯禋 @@ -145,6 +154,7 @@ // 涓婄骇鐢ㄦ埛涓嶆槸姝e父鐢ㄦ埛锛岃鍗曞潎涓嶈兘鍒拌处 UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId()); if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) { + invalidHongBaoForbidden(item.getId()); hongBaoList.remove(i); i--; } @@ -155,9 +165,9 @@ // 閭�璇疯禋鍒拌处浜嬪姟娑堟伅 OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_INVITE, uid, - sourceType, null, null, new Date(),0); - Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, - mqMsg); + sourceType, null, null, new Date(), 0); + + Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg); String taskKey = getTaskKey(uid); msg.setKey(taskKey); // 娣诲姞浜嬪姟娑堟伅 @@ -176,9 +186,10 @@ } catch (Exception e) { LogHelper.mqError(e.getMessage(), msg.getTopic(), msg.getTag(), new Gson().toJson(mqMsg)); } + System.out.println(new Gson().toJson(mqMsg)); } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void inviteSettleJD(Long uid) throws OrderMoneySettleException { // 鏌ヨUID鐨勪竴浜岀骇閭�璇疯禋 @@ -209,6 +220,7 @@ // 涓婄骇鐢ㄦ埛涓嶆槸姝e父鐢ㄦ埛锛岃鍗曞潎涓嶈兘鍒拌处 UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId()); if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) { + invalidHongBaoForbidden(item.getId()); hongBaoList.remove(i); i--; } @@ -219,7 +231,7 @@ // 閭�璇疯禋鍒拌处浜嬪姟娑堟伅 OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_INVITE, uid, - sourceType, null, null, new Date(),0); + sourceType, null, null, new Date(), 0); Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg); String taskKey = getTaskKey(uid); msg.setKey(taskKey); @@ -237,7 +249,7 @@ } } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void inviteSettlePDD(Long uid) throws OrderMoneySettleException { // 鏌ヨUID鐨勪竴浜岀骇閭�璇疯禋 @@ -268,6 +280,7 @@ // 涓婄骇鐢ㄦ埛涓嶆槸姝e父鐢ㄦ埛锛岃鍗曞潎涓嶈兘鍒拌处 UserInfo userInfo = userInfoMapper.selectAvailableByPrimaryKey(co.getUserInfo().getId()); if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) { + invalidHongBaoForbidden(item.getId()); hongBaoList.remove(i); i--; } @@ -278,7 +291,7 @@ // 閭�璇疯禋鍒拌处浜嬪姟娑堟伅 OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_INVITE, uid, - sourceType, null, null, new Date(),0); + sourceType, null, null, new Date(), 0); Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg); String taskKey = getTaskKey(uid); msg.setKey(taskKey); @@ -296,7 +309,7 @@ } } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void shareSettleTB(Long uid) throws OrderMoneySettleException { /** @@ -318,9 +331,9 @@ hongBaoList.addAll(tempHongBaoList); } - OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_SHARE, uid, - sourceType, null, null, new Date(),0); - Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER,OrderTopicTagEnum.orderFanLiActual, mqMsg); + OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_SHARE, uid, sourceType, + null, null, new Date(), 0); + Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg); String taskKey = getTaskKey(uid); msg.setKey(taskKey); // 娣诲姞浜嬪姟娑堟伅 @@ -341,7 +354,7 @@ } } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void shareSettleJD(Long uid) throws OrderMoneySettleException { /** @@ -363,8 +376,8 @@ hongBaoList.addAll(tempHongBaoList); } - OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_SHARE, uid, - sourceType, null, null, new Date(),0); + OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_SHARE, uid, sourceType, + null, null, new Date(), 0); Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg); String taskKey = getTaskKey(uid); msg.setKey(taskKey); @@ -382,7 +395,7 @@ } } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void shareSettlePDD(Long uid) throws OrderMoneySettleException { /** @@ -404,9 +417,9 @@ hongBaoList.addAll(tempHongBaoList); } - OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_SHARE, uid, - sourceType, null, null, new Date(),0); - Message msg =MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg); + OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_SHARE, uid, sourceType, + null, null, new Date(), 0); + Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg); String taskKey = getTaskKey(uid); msg.setKey(taskKey); // 娣诲姞浜嬪姟娑堟伅 @@ -423,7 +436,7 @@ } } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void ziGouSettle(String orderId, int sourceType, String taskKey) throws OrderMoneySettleException { // 鏌ヨ鍚屼竴璁㈠崟鍙风殑绾㈠寘 @@ -466,6 +479,25 @@ userHongBao.put(uid, new ArrayList<>()); userHongBao.get(uid).add(hb); } + } + } + + // 鑾峰彇缁存潈璧勯噾 + if (sourceType == Constant.SOURCE_TYPE_TAOBAO) { + try { + Map<Long, BigDecimal> userSubMoneyMap = taoBaoWeiQuanDrawBackService.doWeiQuanFanli(orderId, false); + if (userSubMoneyMap != null) { + for (Iterator<Long> its = userMoney.keySet().iterator(); its.hasNext();) { + Long uid = its.next(); + if (userSubMoneyMap.get(uid) != null) { + // 鍑忓幓缁存潈璧勯噾 + userMoney.put(uid, userMoney.get(uid).subtract(userSubMoneyMap.get(uid))); + } + } + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + throw new OrderMoneySettleException(2, "缁存潈璁㈠崟鍑洪敊"); } } @@ -522,31 +554,6 @@ e.printStackTrace(); } - // 缁存潈鎵f锛�2018-08-05鍚庡紑濮嬪疄琛岋級 - - try { - if (sourceType == Constant.SOURCE_TYPE_TAOBAO) - taoBaoWeiQuanDrawBackService.doWeiQuanFanli(orderId); - } catch (TaoBaoWeiQuanException e) { - if (e.getCode() == TaoBaoWeiQuanException.CODE_NEDD_UPDATE_ORDER) { - List<TaoBaoOrder> olist = taoBaoOrderService.getTaoBaoOrderByOrderId(orderId); - if (olist != null && olist.size() > 0) { - long time = TimeUtil.convertToTimeTemp(olist.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss"); - olist = TaoKeOrderApiUtil.getTaoBaoCommonOrderList(time, time + 1000 * 2L, 1); - if (olist != null && olist.size() > 0) { - for (int i = 0; i < olist.size(); i++) { - if (!olist.get(i).getOrderId().equalsIgnoreCase(orderId)) {// 鍒犻櫎鏃犲叧璁㈠崟 - olist.remove(i); - i--; - } - } - taoBaoOrderService.addTaoBaoOrderList(olist); - } - } - } else - throw new OrderMoneySettleException(e.getCode(), "缁存潈澶勭悊鍑洪敊:" + e.getMsg()); - } - // 娣诲姞缁撶畻鏄犲皠 } @@ -575,7 +582,7 @@ return hongBao; } - @Transactional + @Transactional(rollbackFor = Exception.class) private void fanliInviteTB(List<HongBaoV2> hongBaoList, Long uid, String key) throws TaoBaoWeiQuanException { List<Long> hbIdList = new ArrayList<>(); BigDecimal invitemoney = new BigDecimal(0); @@ -628,9 +635,9 @@ Date minDate = new Date(TimeUtil .convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M")); long validCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS, - minDate, maxDate); + minDate, maxDate, Constant.SOURCE_TYPE_TAOBAO); long weiQuanCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ, - minDate, maxDate); + minDate, maxDate, Constant.SOURCE_TYPE_TAOBAO); UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, Constant.SOURCE_TYPE_TAOBAO, (int) validCount, (int) weiQuanCount, invitemoney, new Date()); @@ -714,9 +721,9 @@ Date minDate = new Date(TimeUtil .convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M")); long validCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS, - minDate, maxDate); + minDate, maxDate, sourceType); long weiQuanCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ, - minDate, maxDate); + minDate, maxDate, sourceType); UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, sourceType, (int) validCount, (int) weiQuanCount, invitemoney, new Date()); @@ -812,9 +819,9 @@ Date minDate = new Date(TimeUtil .convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M")); long validCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS, - minDate, maxDate); + minDate, maxDate, Constant.SOURCE_TYPE_TAOBAO); long weiQuanCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ, - minDate, maxDate); + minDate, maxDate, Constant.SOURCE_TYPE_TAOBAO); UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, Constant.SOURCE_TYPE_TAOBAO, (int) validCount, (int) weiQuanCount, sharemoney, new Date()); @@ -910,12 +917,12 @@ Date minDate = new Date(TimeUtil .convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M")); long validCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS, - minDate, maxDate); + minDate, maxDate, sourceType); long weiQuanCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ, - minDate, maxDate); + minDate, maxDate, sourceType); - UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, Constant.SOURCE_TYPE_TAOBAO, - (int) validCount, (int) weiQuanCount, sharemoney, new Date()); + UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, sourceType, (int) validCount, + (int) weiQuanCount, sharemoney, new Date()); // 娣诲姞璧勯噾 userMoneyService.addUserMoney(uid, sharemoney, userMoneyDetail); @@ -955,7 +962,7 @@ * @param orderId * @param sourceType */ - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void inviteSubsidySettle(Long uid, String taskKey) throws OrderMoneySettleException { // 鏌ヨkey -- Gitblit v1.8.0