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 e10e9c76..3ed00743 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 @@ -79,9 +79,9 @@ public class DistributionTask { } else { item.setStatus(TableValueConstant.DistributionFlow.Status.SUCCESS.getCode()); ShopUser shopUser = shopUserService.getById(item.getDistributionUserId()); - distributionUserService.updateIncome(item.getRewardAmount().negate(), item.getRewardAmount(), BigDecimal.ZERO, - item.getDistributionUserId(), shopUser.getUserId(), item.getShopId(), item.getLevel()); 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); }); diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUser.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUser.java index 591d925a..f1cd9ada 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUser.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopUser.java @@ -150,14 +150,6 @@ public class ShopUser implements Serializable { private LocalDateTime endTime; private LocalDateTime deliverTime; private LocalDateTime nextDeliverTime; - // 分销员ID 邀请人id - private Long distributionUserId; - // 分销员ID 邀请人上级id - private Long distributionUserParentId; - //邀请人累计收益/一级分润 - private BigDecimal oneIncome; - //邀请人上级累计收益/二级分润 - private BigDecimal twoIncome; // 是否分销员 private String distributionShops; diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopUserService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopUserService.java index 2e1e2b05..72397348 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopUserService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopUserService.java @@ -36,5 +36,5 @@ public interface ShopUserService extends IService { List selectBirthdayUser(LocalDate current, Long mainShopId, String userType); - void updateOneOrTwoAmount(Long userId, Long mainShopId, BigDecimal bigDecimal, Integer isOne); + void updateOneOrTwoAmount(Long shopUserId, Long shopId, BigDecimal bigDecimal, Integer isOne); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/dto/ShopUserInviteDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/ShopUserInviteDTO.java new file mode 100644 index 00000000..3c21780f --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/ShopUserInviteDTO.java @@ -0,0 +1,70 @@ + +package com.czg.market.dto; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.experimental.Accessors; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 邀请与上级关联表 实体类。 + * + * @author ww + * @since 2025-11-06 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +public class ShopUserInviteDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * (随机) + */ + private Long id; + + /** + * 店铺ID + */ + private Long shopId; + + /** + * 店铺用户ID + */ + private Long shopUserId; + + /** + * 邀请人ID mk_distribution_user.id + */ + private Long distributionUserId; + + /** + * 邀请人上级ID mk_distribution_user.id + */ + private Long distributionUserParentId; + + /** + * 邀请人收益/一级分润 + */ + private BigDecimal oneIncome; + + /** + * 邀请人上级收益/二级分润 + */ + private BigDecimal twoIncome; + + /** + * 邀请时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime inviteTime; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/ShopUserInvite.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/ShopUserInvite.java new file mode 100644 index 00000000..fa0afa8d --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/ShopUserInvite.java @@ -0,0 +1,74 @@ +package com.czg.market.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 邀请与上级关联表 实体类。 + * + * @author ww + * @since 2025-11-06 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_shop_user_invite") +public class ShopUserInvite implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * (随机) + */ + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 店铺ID + */ + private Long shopId; + + /** + * 店铺用户ID + */ + private Long shopUserId; + + /** + * 邀请人ID mk_distribution_user.id + */ + private Long distributionUserId; + + /** + * 邀请人上级ID mk_distribution_user.id + */ + private Long distributionUserParentId; + + /** + * 邀请人收益/一级分润 + */ + private BigDecimal oneIncome; + + /** + * 邀请人上级收益/二级分润 + */ + private BigDecimal twoIncome; + + /** + * 邀请时间 + */ + private LocalDateTime inviteTime; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java index bacda8fe..97dc57c6 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java @@ -132,7 +132,7 @@ public interface MkDistributionUserService extends IService */ void distribute(Long sourceId, String orderNo, BigDecimal amount, Long userId, Long shopId, String type); - void updateIncome(BigDecimal pendingIncome, BigDecimal receivedIncome, BigDecimal withdrawIncome, Long id, Long userId, Long shopId, Integer isOne); + void updateIncome(BigDecimal pendingIncome, BigDecimal receivedIncome, BigDecimal withdrawIncome, Long id, Long userId, Long shopUserId, Long shopId, Integer isOne); Boolean withdraw(long userId, MkDistributionWithdrawFlowDTO withdrawFlowDTO); diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/ShopUserInviteService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/ShopUserInviteService.java new file mode 100644 index 00000000..e9d10908 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/ShopUserInviteService.java @@ -0,0 +1,22 @@ +package com.czg.market.service; + +import com.mybatisflex.core.service.IService; +import com.czg.market.entity.ShopUserInvite; + +/** + * 邀请与上级关联表 服务层。 + * + * @author ww + * @since 2025-11-06 + */ +public interface ShopUserInviteService extends IService { + + /** + * 根据店铺ID和店铺用户ID查询邀请记录 + * + * @param shopId 店铺ID + * @param shopUserId 店铺用户ID + * @return 邀请记录 + */ + ShopUserInvite getOneByShopIdAndShopUserId(Long shopId, Long shopUserId); +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopUserMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopUserMapper.java index d8500c0c..8127a45c 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopUserMapper.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopUserMapper.java @@ -72,6 +72,6 @@ public interface ShopUserMapper extends BaseMapper { */ List getInviteUser(Long distributionUserId, Long shopUserId, Long distributionLevelId); - void updateOneOrTwoAmount(Long userId, Long mainShopId, BigDecimal amount, Integer isOne); + void updateOneOrTwoAmount(Long shopUserId, Long shopId, BigDecimal amount, Integer isOne); } 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 d2ddfe3a..14ee0c00 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 @@ -171,7 +171,7 @@ public class ShopUserServiceImpl extends ServiceImpl i } @Override - public void updateOneOrTwoAmount(Long userId, Long mainShopId, BigDecimal bigDecimal, Integer isOne) { - mapper.updateOneOrTwoAmount(userId, mainShopId, bigDecimal, isOne); + public void updateOneOrTwoAmount(Long shopUserId, Long shopId, BigDecimal bigDecimal, Integer isOne) { + mapper.updateOneOrTwoAmount(shopUserId, shopId, bigDecimal, isOne); } } diff --git a/cash-service/account-service/src/main/resources/mapper/ShopUserMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopUserMapper.xml index a240e0bf..c6c28b34 100644 --- a/cash-service/account-service/src/main/resources/mapper/ShopUserMapper.xml +++ b/cash-service/account-service/src/main/resources/mapper/ShopUserMapper.xml @@ -18,7 +18,7 @@ and amount - #{money} >= 0 - update tb_shop_user + update tb_shop_user_invite one_income = one_income + #{amount} @@ -27,8 +27,8 @@ two_income = two_income + #{amount} - where user_id = #{userId} - and main_shop_id = #{mainShopId} + where shop_user_id = #{shopUserId} + and shop_id = #{shopId} @@ -281,8 +281,8 @@ u.head_img AS headImg, u.nick_name AS shopUserName, u.phone AS shopUserPhone, - u.one_income AS oneIncome, - u.invite_time AS inviteTime, + invite.one_income AS oneIncome, + invite.invite_time AS inviteTime, dist.total_income AS totalIncome, dist.pending_income AS pendingIncome, dist.received_income AS receivedIncome, @@ -291,8 +291,9 @@ dist.distribution_level_id AS levelId, dist.distribution_level_name AS levelName, u.distribution_shops AS distributionShops - FROM `tb_shop_user` as u - left join mk_distribution_user dist on u.id = dist.id + FROM tb_shop_user_invite invite + left join tb_shop_user u on invite.shop_user_id = u.id + left join mk_distribution_user dist on u.id = dist.id WHERE u.`distribution_user_id` = #{distributionUserId} and dist.distribution_level_id = #{distributionLevelId} and u.id = #{shopUserId} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/ShopUserInviteMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/ShopUserInviteMapper.java new file mode 100644 index 00000000..5e2c6bcc --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/ShopUserInviteMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.market.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.market.entity.ShopUserInvite; + +/** + * 邀请与上级关联表 映射层。 + * + * @author ww + * @since 2025-11-06 + */ +public interface ShopUserInviteMapper extends BaseMapper { + +} 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 2cc12615..fa0afd58 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 @@ -74,6 +74,8 @@ public class MkDistributionUserServiceImpl extends ServiceImpl implements ShopUserInviteService { + + @Override + public ShopUserInvite getOneByShopIdAndShopUserId(Long shopId, Long shopUserId) { + return getOne(QueryWrapper.create() + .eq(ShopUserInvite::getShopId, shopId) + .eq(ShopUserInvite::getShopUserId, shopUserId)); + } +} diff --git a/cash-service/market-service/src/main/resources/mapper/ShopUserInviteMapper.xml b/cash-service/market-service/src/main/resources/mapper/ShopUserInviteMapper.xml new file mode 100644 index 00000000..57c4a60a --- /dev/null +++ b/cash-service/market-service/src/main/resources/mapper/ShopUserInviteMapper.xml @@ -0,0 +1,7 @@ + + + + +