From 5384e1fa54a73b3f429a70c05f5834a87e5b1884 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期三, 20 五月 2020 12:06:38 +0800
Subject: [PATCH] 发圈活动bug
---
fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderPayServiceImpl.java | 82 +++++++++++++++++++++++++++++++++++++++--
1 files changed, 78 insertions(+), 4 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderPayServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderPayServiceImpl.java
index f2e1da5..3aa632a 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderPayServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderPayServiceImpl.java
@@ -18,16 +18,21 @@
import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg;
import com.yeshi.fanli.dto.msg.MsgRedPackUseContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail.MsgTypeMoneyTypeEnum;
+import com.yeshi.fanli.entity.common.AdminUser;
+import com.yeshi.fanli.entity.common.Config;
import com.yeshi.fanli.entity.redpack.RedPackDetail;
import com.yeshi.fanli.entity.shop.BanLiShopGoods;
import com.yeshi.fanli.entity.shop.BanLiShopGoodsClass;
import com.yeshi.fanli.entity.shop.BanLiShopGoodsSets;
import com.yeshi.fanli.entity.shop.BanLiShopOrder;
import com.yeshi.fanli.entity.shop.ChargeTypeEnum;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.exception.redpack.RedPackBalanceException;
import com.yeshi.fanli.exception.redpack.RedPackDetailException;
import com.yeshi.fanli.exception.shop.BanLiShopOrderException;
import com.yeshi.fanli.exception.shop.FuLuChargeException;
+import com.yeshi.fanli.service.AdminUserService;
+import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
import com.yeshi.fanli.service.inter.redpack.RedPackDetailService;
@@ -38,7 +43,9 @@
import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.charge.FuLuChargeApiUtil;
+import com.yeshi.fanli.util.email.MailSenderUtil;
import com.yeshi.fanli.util.factory.RedPackDetailFactory;
import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
@@ -67,10 +74,16 @@
@Resource
private UserMoneyMsgNotificationService userMoneyMsgNotificationService;
+ @Resource
+ private ConfigService configService;
+
+ @Resource
+ private AdminUserService adminUserService;
+
@Resource(name = "producer")
private Producer producer;
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
@Override
public void payOrderByHongBao(Long orderId) throws BanLiShopOrderException, RedPackBalanceException {
BanLiShopOrder order = banLiShopOrderService.selectByPrimaryKeyForUpdate(orderId);
@@ -119,7 +132,7 @@
}
}
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
@Override
public void payOrderByMoney(Long orderId, BigDecimal money) throws BanLiShopOrderException {
BanLiShopOrder order = banLiShopOrderService.selectByPrimaryKeyForUpdate(orderId);
@@ -162,9 +175,26 @@
* 鏀粯鎴愬姛
*/
private void paySuccess(BanLiShopOrder order) {
+ ThreadUtil.run(new Runnable() {
+
+ @Override
+ public void run() {
+ long[] targetUids = new long[] { 3L, 4L };
+ Config config = configService.getConfig(ConfigKeyEnum.extractCodeEmailFrom.getKey());
+ String[] sts = config.getValue().split(",");
+ String account = sts[0];
+ String pwd = sts[1];
+ for (long adminId : targetUids) {
+ AdminUser adminUser = adminUserService.selectByPrimaryKey(adminId);
+ String msg = "鏈夋柊鐨勭孩鍖呭晢鍩庤鍗�";
+ boolean isS = MailSenderUtil.sendEmail(adminUser.getEmail(), account, pwd, "鏈夋柊鐨勭孩鍖呭晢鍩庤鍗�", msg);
+ }
+ }
+ });
+
}
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
@Override
public void refund(Long orderId) throws BanLiShopOrderException {
// 璁㈠崟閫�娆�
@@ -287,7 +317,7 @@
}
}
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
@Override
public void charge(Long orderId) throws BanLiShopOrderException {
BanLiShopOrder order = banLiShopOrderService.selectByPrimaryKey(orderId);
@@ -361,4 +391,48 @@
}
}
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void invalidOrderByOrderId(Long orderId, String stateDesc) throws BanLiShopOrderException {
+
+ BanLiShopOrder order = banLiShopOrderService.selectByPrimaryKeyForUpdate(orderId);
+ if (order == null)
+ return;
+ // 閫�娆�
+ if (order.getState() == BanLiShopOrder.STATE_NO_PAY) {// 鐘舵�佽繕鏄湭鏀粯
+ // 閫�娆剧孩鍖�
+ if (order.getHongBaoPaymentState() != null
+ && order.getHongBaoPaymentState() == BanLiShopOrder.PAY_STATE_PAID) {
+ BanLiShopGoods goods = banLiShopGoodsService.selectByPrimaryKey(order.getGoods().getId());
+ BanLiShopGoodsClass goodsClass = banLiShopGoodsClassService
+ .selectByPrimaryKey(goods.getGoodsClass().getId());
+ BanLiShopGoodsSets set = banLiShopGoodsSetService.selectByPrimaryKey(order.getGoodsSet().getId());
+ // 绾㈠寘閫�娆�
+ RedPackDetail detail = null;
+ try {
+ detail = RedPackDetailFactory.createShopOrderDrawBack(orderId, order.getUid(), goodsClass.getName(),
+ set.getName(), order.getHongBaoPayment());
+ } catch (RedPackDetailException e) {
+ e.printStackTrace();
+ }
+
+ if (detail == null)
+ throw new BanLiShopOrderException(4, "绾㈠寘璇︽儏澶辫触");
+ try {
+ redPackBalanceService.addRedPack(order.getUid(), order.getHongBaoPayment(), detail);
+ } catch (RedPackBalanceException e) {
+ throw new BanLiShopOrderException(5, "绾㈠寘閫�娆惧け璐�");
+ }
+
+ BanLiShopOrder update = new BanLiShopOrder(order.getId());
+ update.setHongBaoPaymentState(BanLiShopOrder.PAY_STATE_REFUND);
+ update.setUpdateTime(new Date());
+ banLiShopOrderService.udpateSelectiveByPrimaryKey(update);
+ }
+
+ banLiShopOrderService.invalidOrderByOrderId(orderId, stateDesc);
+ }
+
+ }
+
}
--
Gitblit v1.8.0