From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 五月 2020 17:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2 --- 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