diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkShopRechargeService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkShopRechargeService.java index 7658cf5da..f8094004f 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkShopRechargeService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkShopRechargeService.java @@ -34,7 +34,8 @@ public interface MkShopRechargeService extends IService { * @param isNoJoin 是否没有执行 加入会员的方法 * 会员如果是条件开通 则 需要统计 */ - void recharge(Long shopId, Long shopUserId, Long rechargeDetailId, BigDecimal amount, Long paymentId, String payType, ShopUserFlowBizEnum bizEnum, boolean isNoJoin); + void recharge(Long shopId, Long shopUserId, Long rechargeDetailId, BigDecimal amount, Long paymentId, + String payType, ShopUserFlowBizEnum bizEnum, boolean isNoJoin); List getList(long loginIdAsLong); diff --git a/cash-common/cash-common-tools/src/main/java/com/czg/utils/FunUtils.java b/cash-common/cash-common-tools/src/main/java/com/czg/utils/FunUtils.java index aed6fecc1..18bad95c4 100644 --- a/cash-common/cash-common-tools/src/main/java/com/czg/utils/FunUtils.java +++ b/cash-common/cash-common-tools/src/main/java/com/czg/utils/FunUtils.java @@ -1,6 +1,7 @@ package com.czg.utils; import cn.hutool.core.lang.func.Func0; +import cn.hutool.core.thread.ThreadUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronizationManager; @@ -42,6 +43,10 @@ public class FunUtils { } } + public static void asyncSafeRunVoid(Runnable func, String... msg) { + ThreadUtil.execAsync(() -> safeRunVoid(func, msg)); + } + /** * 在事务提交后执行方法 * 异步 执行 diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopRechargeServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopRechargeServiceImpl.java index 83cb5a577..2670d287e 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopRechargeServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopRechargeServiceImpl.java @@ -9,6 +9,7 @@ import com.czg.account.entity.ShopUser; import com.czg.account.service.ShopConfigService; import com.czg.account.service.ShopInfoService; import com.czg.account.service.ShopUserService; +import com.czg.constant.TableValueConstant; import com.czg.enums.ShopUserFlowBizEnum; import com.czg.exception.CzgException; import com.czg.market.dto.CouponInfoDTO; @@ -174,46 +175,44 @@ public class MkShopRechargeServiceImpl extends ServiceImpl { - if (item.getId() == null) { - return; - } -// try { - shopCouponRecordService.grant(shopId, new MkRewardCouponDTO().setCouponId(item.getId()) - .setNum(item.getNum()) - .setUserId(shopUser.getUserId()) - .setShopId(shopId), "充值赠券"); -// } catch (Exception e) { -// log.warn("发放优惠券失败", e); -// } - }); - } + FunUtils.asyncSafeRunVoid(() -> { + MkShopRechargeDetail rechargeDetail = shopRechargeDetailService.getById(rechargeDetailId); + shopUserMoneyEditDTO.setMoney(rechargeDetail.getAmount()); + // 赠送金额 + ShopUserMoneyEditDTO shopUserMoneyEditRewardDTO = new ShopUserMoneyEditDTO() + .setId(shopUserId) + .setType(1) + .setBizEnum(ShopUserFlowBizEnum.AWARD_IN) + .setRelationId(paymentId); + shopUserMoneyEditRewardDTO.setMoney(rechargeDetail.getRewardAmount()); + Long editId = shopUserService.updateMoney(shopUserMoneyEditRewardDTO); + // 发放积分 + if (rechargeDetail.getRewardPoints() != null) { + pointsUserService.alterPoints(null, shopUserId, shopUser.getMainShopId(), PointsConstant.ADD, rechargeDetail.getRewardPoints(), editId, "充值赠送"); + } + // 发放优惠券 + if (StrUtil.isNotBlank(rechargeDetail.getCouponInfoList())) { + JSONArray.parseArray(rechargeDetail.getCouponInfoList()).toJavaList(CouponInfoDTO.class).forEach(item -> { + if (item.getId() == null) { + return; + } + shopCouponRecordService.grant(shopId, new MkRewardCouponDTO().setCouponId(item.getId()) + .setNum(item.getNum()) + .setUserId(shopUser.getUserId()) + .setShopId(shopId), "充值赠券"); + }); + } + }); // 自定义金额 } else { shopUserMoneyEditDTO.setMoney(amount); } shopUserService.updateMoney(shopUserMoneyEditDTO); + FunUtils.asyncSafeRunVoid(() -> { + memberConfigService.deliver(shopUser, TableValueConstant.MemberExpFlow.Type.RECHARGE, amount, null, rechargeDetailId); + }); if (isNoJoin) { - FunUtils.transactionSafeRun(() -> memberConfigService.joinMemberByCondition(shopId, shopUser.getUserId(), shopUser)); + FunUtils.asyncSafeRunVoid(() -> memberConfigService.joinMemberByCondition(shopId, shopUser.getUserId(), shopUser)); } } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/TbMemberConfigServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/TbMemberConfigServiceImpl.java index 8d8e7736e..9d9455d43 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/TbMemberConfigServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/TbMemberConfigServiceImpl.java @@ -431,6 +431,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl