From 1560e5a36fec65de5da627377b586b6645ca0239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 27 Oct 2025 19:48:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E8=B4=A6=E6=8F=90=E7=8E=B0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/UDistributionController.java | 21 +++++ .../dto/MkDistributionWithdrawFlowDTO.java | 32 +++++++ .../czg/market/entity/MkDistributionFlow.java | 2 - .../entity/MkDistributionWithdrawFlow.java | 84 +++++++++++++++++++ .../service/MkDistributionUserService.java | 6 ++ .../MkDistributionWithdrawFlowService.java | 15 ++++ .../mapper/MkDistributionUserMapper.java | 3 + .../MkDistributionWithdrawFlowMapper.java | 14 ++++ .../impl/MkDistributionUserServiceImpl.java | 29 ++++--- ...MkDistributionWithdrawFlowServiceImpl.java | 20 +++++ .../mapper/MkDistributionUserMapper.xml | 8 ++ .../MkDistributionWithdrawFlowMapper.xml | 7 ++ 12 files changed, 227 insertions(+), 14 deletions(-) create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkDistributionWithdrawFlowDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionWithdrawFlow.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionWithdrawFlowService.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionWithdrawFlowMapper.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionWithdrawFlowServiceImpl.java create mode 100644 cash-service/market-service/src/main/resources/mapper/MkDistributionWithdrawFlowMapper.xml diff --git a/cash-api/market-server/src/main/java/com/czg/controller/user/UDistributionController.java b/cash-api/market-server/src/main/java/com/czg/controller/user/UDistributionController.java index 6a6acd15..5bce7ffa 100644 --- a/cash-api/market-server/src/main/java/com/czg/controller/user/UDistributionController.java +++ b/cash-api/market-server/src/main/java/com/czg/controller/user/UDistributionController.java @@ -1,10 +1,17 @@ package com.czg.controller.user; +import com.czg.market.dto.MkDistributionWithdrawFlowDTO; +import com.czg.market.entity.MkDistributionFlow; +import com.czg.market.entity.MkDistributionWithdrawFlow; +import com.czg.market.service.MkDistributionFlowService; import com.czg.market.service.MkDistributionUserService; +import com.czg.market.service.MkDistributionWithdrawFlowService; import com.czg.market.vo.DistributionCenterShopVO; import com.czg.order.dto.MkDistributionPayDTO; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; +import com.czg.service.Impl.AppWxServiceImpl; +import com.czg.utils.AssertUtil; import com.mybatisflex.core.paginate.Page; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -22,6 +29,10 @@ import java.util.Map; public class UDistributionController { @Resource private MkDistributionUserService distributionUserService; + @Resource + private AppWxServiceImpl appWxService; + @Resource + private MkDistributionWithdrawFlowService withdrawFlowService; /** * 分销员购买 @@ -63,4 +74,14 @@ public class UDistributionController { return CzgResult.success(distributionUserService.centerConfig(StpKit.USER.getLoginIdAsLong(), shopId)); } + /** + * 用户提现 + * @param withdrawFlowDTO 提现信息 + * @return 是否成功 + */ + @PostMapping("/withdraw") + public CzgResult withdraw(@Validated @RequestBody MkDistributionWithdrawFlowDTO withdrawFlowDTO) { + return CzgResult.success(distributionUserService.withdraw(StpKit.USER.getLoginIdAsLong(), withdrawFlowDTO)); + } + } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkDistributionWithdrawFlowDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkDistributionWithdrawFlowDTO.java new file mode 100644 index 00000000..cfef5bd8 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkDistributionWithdrawFlowDTO.java @@ -0,0 +1,32 @@ + +package com.czg.market.dto; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.alibaba.fastjson2.annotation.JSONField; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.NotNull; +import lombok.experimental.Accessors; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 提现记录表 实体类。 + * + * @author ww + * @since 2025-10-27 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +public class MkDistributionWithdrawFlowDTO implements Serializable { + @NotNull + private Long shopId; + @NotNull(message = "提现金额不为空") + @DecimalMin(value = "30", message = "提现金额不能小于30") + private BigDecimal amount; +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionFlow.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionFlow.java index 1533d86d..ca476747 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionFlow.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionFlow.java @@ -110,6 +110,4 @@ public class MkDistributionFlow implements Serializable { private String nickName; - private String resp; - private String packageInfo; } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionWithdrawFlow.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionWithdrawFlow.java new file mode 100644 index 00000000..57aad8ee --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionWithdrawFlow.java @@ -0,0 +1,84 @@ +package com.czg.market.entity; + +import com.mybatisflex.annotation.Column; +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-10-27 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("mk_distribution_withdraw_flow") +public class MkDistributionWithdrawFlow implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 店铺id + */ + private Long shopId; + + /** + * 店铺用户id + */ + private Long shopUserId; + + /** + * 提现金额 + */ + private BigDecimal amount; + + /** + * 手续费 + */ + private BigDecimal serviceFee; + + /** + * 微信转账单号 + */ + private String billNo; + + /** + * 提现必须参数 + */ + private String packageInfo; + + /** + * 创建时间 + */ + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + + /** + * pending提现中 success可提现 finish已完成 + */ + private String status; + +} 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 730ecef9..b4dfd9a9 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 @@ -1,6 +1,7 @@ package com.czg.market.service; import com.czg.market.dto.MkDistributionUserDTO; +import com.czg.market.dto.MkDistributionWithdrawFlowDTO; import com.czg.market.entity.MkDistributionUser; import com.czg.market.vo.DistributionCenterShopVO; import com.czg.order.dto.MkDistributionPayDTO; @@ -93,4 +94,9 @@ 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); + + + Boolean withdraw(long userId, MkDistributionWithdrawFlowDTO withdrawFlowDTO); + } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionWithdrawFlowService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionWithdrawFlowService.java new file mode 100644 index 00000000..e20518c2 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionWithdrawFlowService.java @@ -0,0 +1,15 @@ +package com.czg.market.service; + +import com.czg.market.dto.MkDistributionWithdrawFlowDTO; +import com.mybatisflex.core.service.IService; +import com.czg.market.entity.MkDistributionWithdrawFlow; + +/** + * 提现记录表 服务层。 + * + * @author ww + * @since 2025-10-27 + */ +public interface MkDistributionWithdrawFlowService extends IService { + +} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionUserMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionUserMapper.java index 6af9f42d..ea25992a 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionUserMapper.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionUserMapper.java @@ -4,6 +4,7 @@ import com.czg.market.vo.DistributionCenterShopVO; import com.mybatisflex.core.BaseMapper; import com.czg.market.entity.MkDistributionUser; +import java.math.BigDecimal; import java.util.List; /** @@ -22,4 +23,6 @@ public interface MkDistributionUserMapper extends BaseMapper * 查询我的分销店铺列表 未开通 */ List selectUnDistributionShops(Long shopUserId); + + boolean updateIncome(BigDecimal pendingIncome, BigDecimal receivedIncome, BigDecimal withdrawIncome, Long id); } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionWithdrawFlowMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionWithdrawFlowMapper.java new file mode 100644 index 00000000..9fe3d708 --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionWithdrawFlowMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.market.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.market.entity.MkDistributionWithdrawFlow; + +/** + * 提现记录表 映射层。 + * + * @author ww + * @since 2025-10-27 + */ +public interface MkDistributionWithdrawFlowMapper 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 bc2fbd29..fc98c108 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 @@ -13,6 +13,7 @@ import com.czg.account.service.UserInfoService; import com.czg.constant.TableValueConstant; import com.czg.exception.CzgException; import com.czg.market.dto.MkDistributionUserDTO; +import com.czg.market.dto.MkDistributionWithdrawFlowDTO; import com.czg.market.entity.MkDistributionAmountFlow; import com.czg.market.entity.MkDistributionConfig; import com.czg.market.entity.MkDistributionLevelConfig; @@ -73,10 +74,12 @@ public class MkDistributionUserServiceImpl extends ServiceImpl implements MkDistributionWithdrawFlowService{ + +} diff --git a/cash-service/market-service/src/main/resources/mapper/MkDistributionUserMapper.xml b/cash-service/market-service/src/main/resources/mapper/MkDistributionUserMapper.xml index a9ea70fd..0a84d485 100644 --- a/cash-service/market-service/src/main/resources/mapper/MkDistributionUserMapper.xml +++ b/cash-service/market-service/src/main/resources/mapper/MkDistributionUserMapper.xml @@ -3,6 +3,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + update mk_distribution_user + set total_income = total_income + #{pendingIncome}, + pending_income = pending_income + #{pendingIncome}, + received_income = received_income + #{receivedIncome}, + withdrawn_income = withdrawn_income + #{withdrawIncome} + where id = #{id} +