From 27ff6ae2d7b58cf59edf2c28bc7383ca36639ec4 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Thu, 11 Dec 2025 15:12:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=20=E5=8F=91=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/czg/task/MemberTask.java | 5 +- .../czg/market/entity/MemberLevelConfig.java | 3 + .../market/service/MkPointsConfigService.java | 3 +- .../market/service/MkPointsUserService.java | 2 +- .../market/service/TbMemberConfigService.java | 8 +- .../com/czg/constant/TableValueConstant.java | 8 +- .../impl/MkPointsConfigServiceImpl.java | 46 +++-- .../service/impl/MkPointsUserServiceImpl.java | 2 +- .../impl/MkShopRechargeServiceImpl.java | 14 +- .../impl/TbMemberConfigServiceImpl.java | 52 +++--- .../impl/OrderInfoCustomServiceImpl.java | 167 +++++++++--------- 11 files changed, 161 insertions(+), 149 deletions(-) diff --git a/cash-api/market-server/src/main/java/com/czg/task/MemberTask.java b/cash-api/market-server/src/main/java/com/czg/task/MemberTask.java index f2d5ae7e3..82f5550e3 100644 --- a/cash-api/market-server/src/main/java/com/czg/task/MemberTask.java +++ b/cash-api/market-server/src/main/java/com/czg/task/MemberTask.java @@ -36,6 +36,7 @@ public class MemberTask { // @Scheduled(cron = "0 0 1 * * ? ") public void task() { shopUserService.list(new QueryWrapper().eq(ShopUser::getIsVip, 1).lt(ShopUser::getNextDeliverTime, DateUtil.date().toLocalDateTime())).forEach(item -> { + //周任务 memberConfigService.deliver(item, TableValueConstant.MemberExpFlow.Type.MEMBER_TASK, null, null, null); }); } @@ -46,9 +47,7 @@ public class MemberTask { .isNotNull(ShopUser::getEndTime) .eq(ShopUser::getIsVip, 1) .lt(ShopUser::getEndTime, LocalDateTime.now())); - shopUsers.forEach(item -> { - item.setIsVip(0); - }); + shopUsers.forEach(item -> item.setIsVip(0)); shopUserService.updateBatch(shopUsers); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MemberLevelConfig.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MemberLevelConfig.java index fe9b47a8c..6dc129115 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MemberLevelConfig.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MemberLevelConfig.java @@ -101,6 +101,9 @@ public class MemberLevelConfig implements Serializable { @Column(onInsertValue = "now()", onUpdateValue = "now()") private LocalDateTime updateTime; + /** + * 是否启用消费送积分 + */ private Integer isCostRewardPoints; diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkPointsConfigService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkPointsConfigService.java index 6bf7a87f6..9beb6b942 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkPointsConfigService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkPointsConfigService.java @@ -1,5 +1,6 @@ package com.czg.market.service; +import com.czg.account.entity.ShopUser; import com.czg.order.entity.OrderInfo; import com.mybatisflex.core.service.IService; import com.czg.market.entity.MkPointsConfig; @@ -15,5 +16,5 @@ public interface MkPointsConfigService extends IService { * 订单支付成功,通过计算 给用户赠送积分 * */ - void consumeAwardPoints(Long shopUserId, OrderInfo orderInfo); + void consumeAwardPoints(ShopUser shopUser, OrderInfo orderInfo); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkPointsUserService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkPointsUserService.java index 5d24a66c3..3aec4daf5 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkPointsUserService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkPointsUserService.java @@ -2,10 +2,10 @@ package com.czg.market.service; import com.czg.account.vo.PointsShopListVO; import com.czg.market.dto.MkPointsUserDTO; +import com.czg.market.entity.MkPointsUser; import com.czg.market.enums.PointsConstant; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; -import com.czg.market.entity.MkPointsUser; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/TbMemberConfigService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/TbMemberConfigService.java index 7c2cb34b7..2d191b64e 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/TbMemberConfigService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/TbMemberConfigService.java @@ -22,6 +22,7 @@ import java.util.List; public interface TbMemberConfigService extends IService { MemberConfigVO detail(Long shopId); + UMemberConfigVO detail(Long shopId, Long userId); Boolean edit(Long shopId, MemberConfigDTO memberDTO); @@ -34,16 +35,19 @@ public interface TbMemberConfigService extends IService { /** * 根据传入的用户Id,校验是否符合条件,符合加入会员 + * * @param shopId 店铺id * @param userId 用户id * @return 是否加入成功 */ boolean joinMember(Long shopId, Long userId, Long memberOrderId); - boolean joinMemberByCondition(Long shopId, Long userId); + + boolean joinMemberByCondition(Long shopId, Long userId, ShopUser shopUser); /** * 发放会员奖励 - * @param money 实际消费金额 + * + * @param money 实际消费金额 * @param expVal 经验值,只有当type为pay的时候才生效 * @return 是否成功 */ diff --git a/cash-common/cash-common-tools/src/main/java/com/czg/constant/TableValueConstant.java b/cash-common/cash-common-tools/src/main/java/com/czg/constant/TableValueConstant.java index 63ff912e4..16e23609d 100644 --- a/cash-common/cash-common-tools/src/main/java/com/czg/constant/TableValueConstant.java +++ b/cash-common/cash-common-tools/src/main/java/com/czg/constant/TableValueConstant.java @@ -23,13 +23,14 @@ public interface TableValueConstant { } } } + interface MemberExpFlow { @Getter enum Type { - RECHARGE("RECHARGE", "充值增积分"), - PAY("PAY", "购买会员增积分"), + RECHARGE("RECHARGE", "充值成长值 积分发放在扣减余额的地方"), + PAY("PAY", "购买会员"), MEMBER_TASK("MEMBER_TASK", "会员周奖励"), - COST("COST", "消费增积分"); + COST("COST", "消费成长值"); private final String code; private final String msg; @@ -115,6 +116,7 @@ public interface TableValueConstant { } } + interface EnableConfig { @Getter enum Type { diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkPointsConfigServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkPointsConfigServiceImpl.java index a14ccd8a8..a12af81d2 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkPointsConfigServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkPointsConfigServiceImpl.java @@ -1,15 +1,17 @@ package com.czg.service.market.service.impl; import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.czg.account.entity.ShopUser; +import com.czg.market.entity.MemberLevelConfig; +import com.czg.market.entity.MkPointsConfig; import com.czg.market.enums.PointsConstant; +import com.czg.market.service.MemberLevelConfigService; +import com.czg.market.service.MkPointsConfigService; import com.czg.market.service.MkPointsUserService; import com.czg.order.entity.OrderInfo; -import com.mybatisflex.spring.service.impl.ServiceImpl; -import com.czg.market.entity.MkPointsConfig; -import com.czg.market.service.MkPointsConfigService; import com.czg.service.market.mapper.MkPointsConfigMapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -27,29 +29,37 @@ public class MkPointsConfigServiceImpl extends ServiceImpl 0) { + consumeAmount = BigDecimal.valueOf(level.getCostRewardPoints()); + } } - Integer enableRewards = pointsConfig.getEnableRewards(); - if (enableRewards == 0) { - return; - } - BigDecimal consumeAmount = pointsConfig.getConsumeAmount(); if (consumeAmount == null) { - return; - } - if (NumberUtil.isLessOrEqual(consumeAmount, BigDecimal.ZERO)) { - return; + MkPointsConfig pointsConfig = getOne(query().eq(MkPointsConfig::getShopId, orderInfo.getShopId())); + if (pointsConfig == null) { + return; + } + if (pointsConfig.getEnableRewards() == null || pointsConfig.getEnableRewards() == 0) { + return; + } + if (pointsConfig.getConsumeAmount() != null && pointsConfig.getConsumeAmount().compareTo(BigDecimal.ZERO) > 0) { + consumeAmount = pointsConfig.getConsumeAmount(); + } } BigDecimal awardPoints = NumberUtil.roundDown(NumberUtil.div(payAmount, consumeAmount), 0); - mkPointsUserService.alterPoints(null, shopUserId, orderInfo.getShopId(), PointsConstant.ADD, + mkPointsUserService.alterPoints(null, shopUser.getId(), orderInfo.getShopId(), PointsConstant.ADD, awardPoints.intValue(), orderInfo.getId(), StrUtil.format("消费¥{}送{}积分", payAmount, awardPoints.intValue())); } } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkPointsUserServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkPointsUserServiceImpl.java index ca6b9506b..2443e2b73 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkPointsUserServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkPointsUserServiceImpl.java @@ -75,6 +75,7 @@ public class MkPointsUserServiceImpl extends ServiceImpl 0 ? "存储你的账户" : "使用")); acUserMsgService.addUserMsg(msg); - return record.getId(); } } 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 bd935da36..4dcea906e 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 @@ -90,22 +90,22 @@ public class MkShopRechargeServiceImpl extends ServiceImpl detailList = shopRechargeDetailService.list(new QueryWrapper().eq(MkShopRechargeDetail::getShopRechargeId, shopRecharge.getId())).stream().map(mkShopRechargeDetail -> { MkShopRechargeDetailVO detailVO = BeanUtil.copyProperties(mkShopRechargeDetail, MkShopRechargeDetailVO.class, "couponInfoList"); if (StrUtil.isNotBlank(mkShopRechargeDetail.getCouponInfoList())) { - ArrayList couponInfoVOS = new ArrayList<>(); - List couponInfoDTOS = JSONArray.parseArray(mkShopRechargeDetail.getCouponInfoList()).toJavaList(CouponInfoDTO.class); - Set couponIdList = couponInfoDTOS.stream().map(CouponInfoDTO::getId).collect(Collectors.toSet()); + ArrayList couponInfos = new ArrayList<>(); + List couponInfoDTOList = JSONArray.parseArray(mkShopRechargeDetail.getCouponInfoList()).toJavaList(CouponInfoDTO.class); + Set couponIdList = couponInfoDTOList.stream().map(CouponInfoDTO::getId).collect(Collectors.toSet()); if (!couponIdList.isEmpty()) { Map couponMap = shopCouponService.list(new QueryWrapper().in(ShopCoupon::getId, couponIdList)).stream().collect(Collectors.toMap(ShopCoupon::getId, v -> v)); - couponInfoDTOS.forEach(item -> { + couponInfoDTOList.forEach(item -> { ShopCoupon shopCoupon = couponMap.get(item.getId()); if (shopCoupon == null) { return; } shopCoupon.setInfo(); - couponInfoVOS.add(new CouponInfoVO().setCoupon(shopCoupon).setNum(item.getNum())); + couponInfos.add(new CouponInfoVO().setCoupon(shopCoupon).setNum(item.getNum())); }); } - detailVO.setCouponInfoList(couponInfoVOS); + detailVO.setCouponInfoList(couponInfos); } return detailVO; }).collect(Collectors.toList()); @@ -185,7 +185,7 @@ public class MkShopRechargeServiceImpl extends ServiceImpl listLevel(Long shopId) { shopId = shopInfoService.getMainIdByShopId(shopId); - ArrayList memberLevelVOS = new ArrayList<>(); + ArrayList memberLevels = new ArrayList<>(); levelConfigService.list(new QueryWrapper().eq(MemberLevelConfig::getShopId, shopId)).forEach(item -> { MemberLevelVO memberLevelVO = BeanUtil.copyProperties(item, MemberLevelVO.class, "cycleRewardCouponList"); if (StrUtil.isNotBlank(item.getCycleRewardCouponList())) { memberLevelVO.setCycleRewardCouponList(JSONArray.parseArray(item.getCycleRewardCouponList()).toList(MemberLevelDTO.ConfigCoupon.class)); } - memberLevelVOS.add(memberLevelVO); + memberLevels.add(memberLevelVO); }); - return memberLevelVOS; + return memberLevels; } @Override @@ -298,7 +307,6 @@ public class TbMemberConfigServiceImpl extends ServiceImpl { if (memberConfig.getCostReward() != null) { exp = money.longValue() * memberConfig.getCostReward(); } - // 消费送积分 - if (levelVO.getIsCostRewardPoints() == 1 && levelVO.getCostRewardPoints() != null) { - int points = (int) (money.floatValue() / levelVO.getCostRewardPoints()); - log.info("消费送积分: {}", points); - if (points > 0) { - pointsUserService.alterPoints(null, shopUser.getId(), shopUser.getMainShopId(), PointsConstant.ADD, points, sourceId, "会员消费送积分"); - - } - } } case RECHARGE -> { if (memberConfig.getRechargeReward() != null) { @@ -333,7 +331,8 @@ public class TbMemberConfigServiceImpl extends ServiceImpl shopIdList = shopUsers.stream().map(ShopUser::getSourceShopId).collect(Collectors.toSet()); Map shopInfoMap = shopInfoService.list(new QueryWrapper().in(ShopInfo::getId, shopIdList)).stream().collect(Collectors.toMap(ShopInfo::getId, item -> item)); - ArrayList memberListVOS = new ArrayList<>(); + ArrayList memberLists = new ArrayList<>(); shopUsers.forEach(shopUser -> { if (shopUser.getStartTime() != null && shopUser.getEndTime() != null && DateUtil.isIn(DateUtil.date(), DateUtil.date(shopUser.getStartTime()), DateUtil.date(shopUser.getEndTime()))) { ShopInfo shopInfo = shopInfoMap.getOrDefault(shopUser.getSourceShopId(), new ShopInfo()); - memberListVOS.add(new MemberListVO().setShopName(shopInfo.getShopName()) + memberLists.add(new MemberListVO().setShopName(shopInfo.getShopName()) .setShopId(shopInfo.getId()) .setLogo(shopInfo.getLogo())); } else { @@ -548,10 +546,11 @@ public class TbMemberConfigServiceImpl extends ServiceImpl 0) - || (StrUtil.isNotBlank(orderInfo.getCouponInfoList()) && !"null".equals(orderInfo.getCouponInfoList()))) { - log.error("订单积分使用或优惠券扣除失败,订单id:{}", orderInfo.getId()); - } - } else { - //新客立减 - if (orderInfo.getNewCustomerDiscountAmount() != null && orderInfo.getNewCustomerDiscountAmount().compareTo(BigDecimal.ZERO) > 0) { - newConsumerDiscountRecordService.useDiscount(shopUser.getId(), orderInfo.getId(), orderInfo.getNewCustomerDiscountAmount()); - } - //积分使用 - if (orderInfo.getPointsNum() != null && orderInfo.getPointsNum() > 0) { - pointsUserService.alterPoints(null, shopUser.getId(), orderInfo.getShopId(), PointsConstant.SUB, - orderInfo.getPointsNum(), orderInfo.getId(), "积分抵扣账单"); - - } - //更新优惠券信息 - if (StrUtil.isNotBlank(orderInfo.getCouponInfoList()) && !"null".equals(orderInfo.getCouponInfoList())) { - //券消耗 - List coupons = JSON.parseArray(orderInfo.getCouponInfoList(), Long.class); - if (CollUtil.isNotEmpty(coupons)) { - couponService.use(coupons, shopUser.getId(), orderInfo.getId()); - } - } - if (!orderInfo.getPayType().equals(PayEnums.CREDIT_PAY.getValue())) { - //消费赠券 挂账支付不赠送 - try { - consumerCouponService.receiveConsumerCoupon(shopUser.getSourceShopId(), orderInfo.getId(), orderInfo.getPayAmount(), shopUser.getUserId(), shopUser.getId()); - } catch (Exception e) { - log.error("订单{}消费赠券失败", orderInfo.getId(), e); - } - } - String[] payTypes = {PayEnums.VIP_PAY.getValue(), PayEnums.CREDIT_PAY.getValue()}; - if ((orderInfo.getPayType() != null && !ArrayUtil.contains(payTypes, orderInfo.getPayType())) - || (payType != null && !ArrayUtil.contains(payTypes, payType))) { - //下单赠送积分 - pointsConfigService.consumeAwardPoints(shopUser.getId(), orderInfo); - - //消费返现 - if (!orderInfo.getPayType().equals(PayEnums.CASH_PAY.getValue())) { - consumeCashbackService.cashback(orderInfo.getShopId(), shopUser.getUserId(), orderInfo.getPayAmount(), orderInfo.getId(), orderInfo.getOrderNo()); - } - } - } + exShopUserInfo(orderInfo); } if (StrUtil.isNotBlank(orderInfo.getTableCode())) { - ShopTable table = shopTableService.getOneByTableCode(orderInfo.getShopId(), orderInfo.getTableCode()); - if (table != null) { - ShopInfo shopInfo = shopInfoService.getById(orderInfo.getShopId()); - if ("auto".equals(shopInfo.getTableClearType())) { - table.setStatus(ShopTableStatusEnum.IDLE.getValue()); - } else { - DateTime dateTime = DateUtil.offsetMinute(DateUtil.date(), shopInfo.getTableClearTime()); - table.setCreateTime(LocalDateTimeUtil.of(dateTime)); - redisService.set(RedisCst.classKeyExpired.EXPIRED_TABLE + table.getId(), "", 60L * shopInfo.getTableClearTime()); - } - shopTableService.updateById(table); - } + exTable(orderInfo); } // 保存消息参数(避免闭包中引用的变量被修改) final Long orderId = orderInfo.getId(); @@ -1337,6 +1277,76 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService { redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId()); } + //订单回调后 跟用户相关的部分 + @Async + public void exShopUserInfo(OrderInfo orderInfo) { + ShopUser shopUser = shopUserService.getShopUserInfo(orderInfo.getShopId(), orderInfo.getUserId()); + if (shopUser == null) { + if ((orderInfo.getPointsNum() != null && orderInfo.getPointsNum() > 0) || (StrUtil.isNotBlank(orderInfo.getCouponInfoList()) && !"null".equals(orderInfo.getCouponInfoList()))) { + log.error("订单积分使用或优惠券扣除失败,订单id:{}", orderInfo.getId()); + } + return; + } + //使用内容的 执行 + shopUserUseInfo(orderInfo, shopUser); + // 后续 赠送等功能 挂账支付不赠送 + if (!orderInfo.getPayType().equals(PayEnums.CREDIT_PAY.getValue())) { + try { + //消费赠券 + consumerCouponService.receiveConsumerCoupon(shopUser.getSourceShopId(), orderInfo.getId(), orderInfo.getPayAmount(), shopUser.getUserId(), shopUser.getId()); + //下单赠送积分 + pointsConfigService.consumeAwardPoints(shopUser, orderInfo); + //消费返现 + consumeCashbackService.cashback(orderInfo.getShopId(), shopUser.getUserId(), orderInfo.getPayAmount(), orderInfo.getId(), orderInfo.getOrderNo()); + if (shopUser.getIsVip().equals(0)) { + // 消费累计成为会员的情况 + memberConfigService.joinMemberByCondition(orderInfo.getShopId(), orderInfo.getUserId(), shopUser); + } else { + // 消费赠送成长值 + memberConfigService.deliver(shopUser, TableValueConstant.MemberExpFlow.Type.COST, orderInfo.getPayAmount(), null, orderInfo.getId()); + } + } catch (Exception e) { + log.error("订单{}消费赠券失败", orderInfo.getId(), e); + } + } + } + + public void shopUserUseInfo(OrderInfo orderInfo, ShopUser shopUser) { + //新客立减 + if (orderInfo.getNewCustomerDiscountAmount() != null && orderInfo.getNewCustomerDiscountAmount().compareTo(BigDecimal.ZERO) > 0) { + newConsumerDiscountRecordService.useDiscount(shopUser.getId(), orderInfo.getId(), orderInfo.getNewCustomerDiscountAmount()); + } + //积分使用 + if (orderInfo.getPointsNum() != null && orderInfo.getPointsNum() > 0) { + pointsUserService.alterPoints(null, shopUser.getId(), orderInfo.getShopId(), PointsConstant.SUB, + orderInfo.getPointsNum(), orderInfo.getId(), "积分抵扣"); + } + //更新优惠券信息 + if (StrUtil.isNotBlank(orderInfo.getCouponInfoList()) && !"null".equals(orderInfo.getCouponInfoList())) { + //券消耗 + List coupons = JSON.parseArray(orderInfo.getCouponInfoList(), Long.class); + if (CollUtil.isNotEmpty(coupons)) { + couponService.use(coupons, shopUser.getId(), orderInfo.getId()); + } + } + } + + @Async + public void exTable(OrderInfo orderInfo) { + ShopTable table = shopTableService.getOneByTableCode(orderInfo.getShopId(), orderInfo.getTableCode()); + if (table != null) { + ShopInfo shopInfo = shopInfoService.getById(orderInfo.getShopId()); + if ("auto".equals(shopInfo.getTableClearType())) { + table.setStatus(ShopTableStatusEnum.IDLE.getValue()); + } else { + DateTime dateTime = DateUtil.offsetMinute(DateUtil.date(), shopInfo.getTableClearTime()); + table.setCreateTime(LocalDateTimeUtil.of(dateTime)); + redisService.set(RedisCst.classKeyExpired.EXPIRED_TABLE + table.getId(), "", 60L * shopInfo.getTableClearTime()); + } + shopTableService.updateById(table); + } + } + /** * 订单到期 */ @@ -1496,25 +1506,10 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService { log.error("订单积分使用或优惠券扣除失败,订单id:{}", orderInfo.getId()); } } else { - //新客立减 - if (param.getNewCustomerDiscountId() != null) { - newConsumerDiscountRecordService.checkDiscount(orderInfo.getShopId(), shopUser.getUserId(), param.getOrderId(), param.getNewCustomerDiscountAmount()); - } - //积分使用 - if (orderInfo.getPointsNum() != null && orderInfo.getPointsNum() > 0) { - pointsUserService.alterPoints(null, shopUser.getId(), orderInfo.getShopId(), PointsConstant.ADD, - orderInfo.getPointsNum(), orderInfo.getId(), "积分抵扣账单"); - } - //更新优惠券信息 - if (StrUtil.isNotBlank(orderInfo.getCouponInfoList()) && !"null".equals(orderInfo.getCouponInfoList())) { - //券消耗 - List coupons = JSON.parseArray(orderInfo.getCouponInfoList(), Long.class); - if (CollUtil.isNotEmpty(coupons)) { - couponService.use(coupons, shopUser.getId(), orderInfo.getId()); - } - } + shopUserUseInfo(orderInfo, shopUser); } } + exTable(orderInfo); } orderInfoService.saveOrUpdate(orderInfo); }