diff --git a/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java b/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java index abd891ed6..f171892a7 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java @@ -90,7 +90,8 @@ public class UShopUserController { */ @GetMapping("/moneyRecord") public CzgResult> getMoneyRecord(@RequestParam Long shopId) { - return CzgResult.success(shopUserFlowService.pageAs(PageUtil.buildPage(), new MyQueryWrapper().eq(ShopUserFlow::getShopId, shopId) + ShopUser shopUserInfo = shopUserService.getShopUserInfo(shopId, StpKit.USER.getLoginIdAsLong()); + return CzgResult.success(shopUserFlowService.pageAs(PageUtil.buildPage(), new MyQueryWrapper().eq(ShopUserFlow::getShopUserId, shopUserInfo.getId()) .selectAll(ShopUserFlow.class) .eq(ShopUserFlow::getUserId, StpKit.USER.getLoginIdAsLong()).leftJoin(ShopInfo.class).on(ShopUserFlow::getShopId, ShopInfo::getId) .select(ShopInfo::getShopName) diff --git a/cash-api/market-server/src/main/java/com/czg/task/DistributionTask.java b/cash-api/market-server/src/main/java/com/czg/task/DistributionTask.java index 9cfe1e6a1..cbc25844b 100644 --- a/cash-api/market-server/src/main/java/com/czg/task/DistributionTask.java +++ b/cash-api/market-server/src/main/java/com/czg/task/DistributionTask.java @@ -49,7 +49,6 @@ public class DistributionTask { // @Scheduled(cron = "0 0 0 * * ?") // @Scheduled(fixedRate = 30000) public void deliver() { - // TODO 逻辑修改 // 1. 订单完成支付时(判断是否分销)产生流水记录。 // 2. 判断入账时间。 // 3. 如果是 0 天,再去判断商户余额是否足够。够则入账,不足则不管。 @@ -58,10 +57,7 @@ public class DistributionTask { // 6. 订单产生退款时,去流水表查询该订单的流水记录,如果未入账改为已入账,并插入一条退款扣钱的流水。 LocalDateTime localDateTime = DateUtil.date().toLocalDateTime(); distributionFlowService.list(new QueryWrapper() - .eq(MkDistributionFlow::getStatus, TableValueConstant.DistributionFlow.Status.PENDING.getCode())).forEach(item -> { - if (item.getDeliverTime() != null && item.getDeliverTime().isAfter(localDateTime)) { - return; - } + .eq(MkDistributionFlow::getStatus, TableValueConstant.DistributionFlow.Status.PENDING.getCode()).le(MkDistributionFlow::getDeliverTime, localDateTime)).forEach(item -> { FunUtils.safeRunVoid(() -> { log.info("开始处理延时分账, id: {}, orderNo: {}, 类型: {}", item.getId(), item.getOrderNo(), item.getType()); @@ -72,15 +68,15 @@ public class DistributionTask { } if (CollUtil.newArrayList(OrderStatusEnums.REFUND.getCode(), OrderStatusEnums.REFUNDING.getCode(), OrderStatusEnums.PART_REFUND.getCode()).contains(orderInfo.getStatus())) { log.warn("订单已退款, 订单号: {}", item.getOrderNo()); - item.setStatus(TableValueConstant.DistributionFlow.Status.REFUND.getCode()); + distributionUserService.refund(orderInfo.getId(), orderInfo.getOrderNo()); } else { item.setStatus(TableValueConstant.DistributionFlow.Status.SUCCESS.getCode()); ShopUser shopUser = shopUserService.getById(item.getDistributionUserId()); distributionUserService.updateShopInfoAmount(orderInfo.getShopId(), item.getRewardAmount().negate(), orderInfo.getId(), TableValueConstant.DistributionAmountFlow.Type.SUB, "分销扣减"); distributionUserService.updateIncome(item.getRewardAmount().negate(), item.getRewardAmount(), BigDecimal.ZERO, item.getDistributionUserId(), shopUser.getUserId(), item.getShopUserId(), item.getShopId(), item.getLevel()); + distributionFlowService.updateById(item); } - distributionFlowService.updateById(item); }); }); } 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 83a40f263..a64de374f 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 @@ -40,10 +40,11 @@ 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.getSourceShopId(), item.getUserId(), TableValueConstant.MemberExpFlow.Type.MEMBER_TASK, null, null, null); + memberConfigService.deliver(item, TableValueConstant.MemberExpFlow.Type.MEMBER_TASK, null, null, null); }); } + @Scheduled(cron = "0 */10 * * * *") public void check() { List shopUsers = shopUserService.list(new QueryWrapper().isNotNull(ShopUser::getEndTime).eq(ShopUser::getIsVip, 1).lt(ShopUser::getEndTime, DateUtil.date())); shopUsers.forEach(item -> { diff --git a/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java b/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java index 7b233d415..a72802774 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson2.JSONObject; import com.czg.CzgPayUtils; import com.czg.entity.CzgBaseRespParams; import com.czg.market.service.MkDistributionUserService; +import com.czg.market.service.TbMemberConfigService; import com.czg.mq.PrintMqListener; import com.czg.order.entity.OrderPayment; import com.czg.order.service.OrderInfoService; @@ -53,10 +54,16 @@ public class NotifyController { private MkDistributionUserService distributionUserService; @Resource private OrderPaymentService paymentService; + @Resource + private TbMemberConfigService memberConfigService; @GetMapping("testOpen") public JSONObject test1(String code) throws Exception { + JSONObject czg = JSONObject.parseObject("{\"amount\":10,\"cashFee\":0,\"channelSendNo\":\"20251113110113130266202235210653\",\"channelTradeNo\":\"4200002932202511131794511090\",\"currency\":\"cny\",\"drType\":\"00\",\"ifCode\":\"lklspay\",\"mchOrderNo\":\"WX1988788559919120384\",\"mercNo\":\"B251107293903\",\"msgType\":\"sft.trade.notify\",\"note\":\"成功\",\"payOrderId\":\"2025111319887885609440501775VT\",\"payTime\":\"2025-11-13 09:58:44\",\"payType\":\"WECHAT\",\"refundAmt\":0,\"refundState\":0,\"settlementType\":\"D1\",\"state\":\"TRADE_SUCCESS\",\"storeId\":\"S2511077140\",\"subject\":\"万维时光的店铺\",\"tradeFee\":0,\"userId\":\"oVxsc1QNZRRsWdWDmTdwPJGT9BWc\"}"); + AssertUtil.isNull(czg, "支付回调数据为空"); + log.info("支付回调数据为:{}", czg); + orderInfoService.payCallBackOrder(czg.getString("mchOrderNo"), czg, 0); return null; } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopuser/ShopUserDetailDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopuser/ShopUserDetailDTO.java index c45719541..138246214 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopuser/ShopUserDetailDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopuser/ShopUserDetailDTO.java @@ -43,6 +43,7 @@ public class ShopUserDetailDTO extends ShopUser { * 支付密码 */ private String payPwd; + private Integer usePayPwd; /** * 店铺拓展参数 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUserFlow.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUserFlow.java index fa9d97635..322d6eb64 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUserFlow.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUserFlow.java @@ -35,6 +35,7 @@ public class ShopUserFlow implements Serializable { private Long id; private Long userId; + private Long shopUserId; private Long shopId; /** 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 8bbd841e4..52fb74d60 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 @@ -1,5 +1,6 @@ package com.czg.market.service; +import com.czg.account.entity.ShopUser; import com.czg.constant.TableValueConstant; import com.czg.exception.ApiNotPrintException; import com.czg.market.dto.MemberConfigDTO; @@ -46,7 +47,7 @@ public interface TbMemberConfigService extends IService { * @param expVal 经验值,只有当type为pay的时候才生效 * @return 是否成功 */ - boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal, Long sourceId); + boolean deliver(ShopUser shopUser, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal, Long sourceId); /** * 获取用户会员列表 diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java index b37996448..2a9f51820 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java @@ -135,6 +135,7 @@ public class ShopUserServiceImpl extends ServiceImpl i userInfo.setAmount(BigDecimal.ZERO); } userFlow.setUserId(userInfo.getUserId()); + userFlow.setShopUserId(shopUserEditDTO.getId()); userFlow.setShopId(userInfo.getSourceShopId()); userFlow.setAmount(shopUserEditDTO.getType() == 0 ? shopUserEditDTO.getMoney().negate() : shopUserEditDTO.getMoney()); userFlow.setBalance(shopUserEditDTO.getType() == 0 ? userInfo.getAmount().subtract(shopUserEditDTO.getMoney()) : userInfo.getAmount().add(shopUserEditDTO.getMoney())); diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UShopUserServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UShopUserServiceImpl.java index 43d7a08f4..1d4e747f2 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UShopUserServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/UShopUserServiceImpl.java @@ -179,6 +179,9 @@ public class UShopUserServiceImpl implements UShopUserService { if (StrUtil.isBlank(shopUser.getCode())) { shopUser.setCode(generateCode(shopId)); } + if (StrUtil.isBlank(shopUser.getBirthDay())) { + shopUser.setBirthDay(null); + } shopUser.setJoinTime(shopUser.getJoinTime() == null ? DateUtil.date().toLocalDateTime() : shopUser.getJoinTime()); @@ -229,6 +232,7 @@ public class UShopUserServiceImpl implements UShopUserService { shopUserDetailDTO.setFreeDineConfig(freeDineConfigService.getConfig(shopInfoService.getMainIdByShopId(shopId))); shopUserDetailDTO.setPayPwd(userInfo.getPayPwd()); + shopUserDetailDTO.setUsePayPwd(userInfo.getUsePayPwd()); return shopUserDetailDTO; } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java index aeb3cd4ce..a88b416ed 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java @@ -546,10 +546,10 @@ public class MkDistributionUserServiceImpl extends ServiceImpl { + exp = expVal; + } + } + + System.out.println(exp); + + } + @Override @Transactional(rollbackFor = Exception.class) - public boolean deliver(Long shopId, Long userId, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal, Long sourceId) { - ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getSourceShopId, shopInfoService.getMainIdByShopId(shopId)).eq(ShopUser::getUserId, userId)); + public boolean deliver(ShopUser shopUser, TableValueConstant.MemberExpFlow.Type type, BigDecimal money, Integer expVal, Long sourceId) { if (shopUser == null || shopUser.getIsVip() == 0) { return false; } if (shopUser.getMemberLevelId() == null) { - log.warn("会员等级不存在, 店铺id: {}, 用户id: {}", shopId, userId); + log.warn("会员等级不存在, 店铺id: {}, 用户id: {}", shopUser.getMainShopId(), shopUser.getUserId()); } - MemberConfigVO memberConfig = detail(shopId); + MemberConfigVO memberConfig = detail(shopUser.getMainShopId()); if (memberConfig == null) { - log.warn("会员配置不存在, 店铺id: {}", shopId); + log.warn("会员配置不存在, 店铺id: {}", shopUser.getMainShopId()); return false; } @@ -304,11 +318,11 @@ public class TbMemberConfigServiceImpl extends ServiceImpl { - shopCouponRecordService.grant(shopId, new MkRewardCouponDTO().setCouponId(item.getCoupon().getId()) + shopCouponRecordService.grant(shopUser.getMainShopId(), new MkRewardCouponDTO().setCouponId(item.getCoupon().getId()) .setNum(item.getNum()) .setUserId(shopUser.getUserId()) - .setShopId(shopId)); + .setShopId(shopUser.getMainShopId())); }); // couponGiftService.addCouponGift(memberOrderId, "会员开通赠券", 1, giftDTOS); @@ -356,8 +370,8 @@ public class TbMemberConfigServiceImpl extends ServiceImpl= nextConfig.getExperienceValue()) { shopUser.setMemberLevelId(nextConfig.getId()); @@ -373,7 +387,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl