Commit 62a4e8242b924381501ced897e098d0789d81696
1 parent
bf92727b
分销:增加提现接口
Showing
7 changed files
with
126 additions
and
4 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageUserController.java
| @@ -29,6 +29,17 @@ import static java.util.Arrays.asList; | @@ -29,6 +29,17 @@ import static java.util.Arrays.asList; | ||
| 29 | public class AppBrokerageUserController { | 29 | public class AppBrokerageUserController { |
| 30 | 30 | ||
| 31 | // TODO 芋艿:临时 mock => | 31 | // TODO 芋艿:临时 mock => |
| 32 | + @GetMapping("/get") | ||
| 33 | + @Operation(summary = "获得个人分销信息") | ||
| 34 | + @PreAuthenticated | ||
| 35 | + public CommonResult<AppBrokerageUserRespVO> getBrokerageUser() { | ||
| 36 | + AppBrokerageUserRespVO respVO = new AppBrokerageUserRespVO() | ||
| 37 | + .setBrokeragePrice(2000) | ||
| 38 | + .setFrozenBrokeragePrice(3000); | ||
| 39 | + return success(respVO); | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + // TODO 芋艿:临时 mock => | ||
| 32 | @GetMapping("/get-summary") | 43 | @GetMapping("/get-summary") |
| 33 | @Operation(summary = "获得个人分销统计") | 44 | @Operation(summary = "获得个人分销统计") |
| 34 | @PreAuthenticated | 45 | @PreAuthenticated |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageWithdrawController.java
| @@ -3,15 +3,15 @@ package cn.iocoder.yudao.module.trade.controller.app.brokerage; | @@ -3,15 +3,15 @@ package cn.iocoder.yudao.module.trade.controller.app.brokerage; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; | 5 | import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; |
| 6 | +import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw.AppBrokerageWithdrawCreateReqVO; | ||
| 6 | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw.AppBrokerageWithdrawRespVO; | 7 | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw.AppBrokerageWithdrawRespVO; |
| 7 | import io.swagger.v3.oas.annotations.Operation; | 8 | import io.swagger.v3.oas.annotations.Operation; |
| 8 | import io.swagger.v3.oas.annotations.tags.Tag; | 9 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 9 | import lombok.extern.slf4j.Slf4j; | 10 | import lombok.extern.slf4j.Slf4j; |
| 10 | import org.springframework.validation.annotation.Validated; | 11 | import org.springframework.validation.annotation.Validated; |
| 11 | -import org.springframework.web.bind.annotation.GetMapping; | ||
| 12 | -import org.springframework.web.bind.annotation.RequestMapping; | ||
| 13 | -import org.springframework.web.bind.annotation.RestController; | 12 | +import org.springframework.web.bind.annotation.*; |
| 14 | 13 | ||
| 14 | +import javax.validation.Valid; | ||
| 15 | import java.time.LocalDateTime; | 15 | import java.time.LocalDateTime; |
| 16 | 16 | ||
| 17 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 17 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| @@ -36,4 +36,12 @@ public class AppBrokerageWithdrawController { | @@ -36,4 +36,12 @@ public class AppBrokerageWithdrawController { | ||
| 36 | return success(new PageResult<>(asList(vo1, vo2), 10L)); | 36 | return success(new PageResult<>(asList(vo1, vo2), 10L)); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | + // TODO 芋艿:临时 mock => | ||
| 40 | + @PostMapping("/create") | ||
| 41 | + @Operation(summary = "创建分销提现") | ||
| 42 | + @PreAuthenticated | ||
| 43 | + public CommonResult<Long> createBrokerageWithdraw(@RequestBody @Valid AppBrokerageWithdrawCreateReqVO createReqVO) { | ||
| 44 | + return success(1L); | ||
| 45 | + } | ||
| 46 | + | ||
| 39 | } | 47 | } |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/vo/user/AppBrokerageUserRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 6 | +@Schema(description = "用户 App - 分销用户信息 Response VO") | ||
| 7 | +@Data | ||
| 8 | +public class AppBrokerageUserRespVO { | ||
| 9 | + | ||
| 10 | + @Schema(description = "可用的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "2408") | ||
| 11 | + private Integer brokeragePrice; | ||
| 12 | + | ||
| 13 | + @Schema(description = "冻结的佣金,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "234") | ||
| 14 | + private Integer frozenBrokeragePrice; | ||
| 15 | + | ||
| 16 | +} |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/vo/withdraw/AppBrokerageWithdrawCreateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.Data; | ||
| 5 | +import org.hibernate.validator.constraints.URL; | ||
| 6 | + | ||
| 7 | +import javax.validation.constraints.Min; | ||
| 8 | + | ||
| 9 | +@Schema(description = "用户 App - 分销提现创建 Request VO") | ||
| 10 | +@Data | ||
| 11 | +public class AppBrokerageWithdrawCreateReqVO { | ||
| 12 | + | ||
| 13 | + // TODO @疯狂:参数校验逻辑,需要根据 type 进行不同的校验;感觉可以通过分组? | ||
| 14 | + | ||
| 15 | + @Schema(description = "提现方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 16 | + private Integer type; | ||
| 17 | + | ||
| 18 | + @Schema(description = "提现账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456789") // 银行卡号/微信账号/支付宝账号 | ||
| 19 | + private String accountNo; | ||
| 20 | + | ||
| 21 | + @Schema(description = "收款码的图片", example = "https://www.iocoder.cn/1.png") | ||
| 22 | + @URL(message = "收款码的图片,必须是一个 URL") | ||
| 23 | + private String accountQrCodeUrl; | ||
| 24 | + | ||
| 25 | + @Schema(description = "提现金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") | ||
| 26 | + @Min(value = 1, message = "提现金额必须大于 1") | ||
| 27 | + private Integer price; | ||
| 28 | + | ||
| 29 | +} |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/config/AppTradeConfigController.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.app.config; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.yudao.module.trade.controller.app.config.vo.AppTradeConfigRespVO; | ||
| 5 | +import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 6 | +import lombok.RequiredArgsConstructor; | ||
| 7 | +import lombok.extern.slf4j.Slf4j; | ||
| 8 | +import org.springframework.validation.annotation.Validated; | ||
| 9 | +import org.springframework.web.bind.annotation.GetMapping; | ||
| 10 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 11 | +import org.springframework.web.bind.annotation.RestController; | ||
| 12 | + | ||
| 13 | +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 14 | +import static java.util.Arrays.asList; | ||
| 15 | + | ||
| 16 | +@Tag(name = "用户 App - 交易配置") | ||
| 17 | +@RestController | ||
| 18 | +@RequestMapping("/trade/config") | ||
| 19 | +@RequiredArgsConstructor | ||
| 20 | +@Validated | ||
| 21 | +@Slf4j | ||
| 22 | +public class AppTradeConfigController { | ||
| 23 | + | ||
| 24 | + @GetMapping("/get") | ||
| 25 | + public CommonResult<AppTradeConfigRespVO> getTradeConfig() { | ||
| 26 | + AppTradeConfigRespVO respVO = new AppTradeConfigRespVO(); | ||
| 27 | + respVO.setBrokeragePosterUrls(asList( | ||
| 28 | + "https://api.java.crmeb.net/crmebimage/product/2020/08/03/755bf516b1ca4b6db3bfeaa4dd5901cdh71kob20re.jpg", | ||
| 29 | + "https://api.java.crmeb.net/crmebimage/maintain/2021/03/01/406d729b84ed4ec9a2171bfcf6fd0634ughzbz9kfi.jpg", | ||
| 30 | + "https://api.java.crmeb.net/crmebimage/maintain/2021/03/01/efb1e4e7fe604fe1988b4213ce08cb11tdsyijtd2r.jpg" | ||
| 31 | + )); | ||
| 32 | + respVO.setBrokerageFrozenDays(10); | ||
| 33 | + respVO.setBrokerageWithdrawMinPrice(100); | ||
| 34 | + return success(respVO); | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | +} |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/config/vo/AppTradeConfigRespVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.controller.app.config.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 6 | +import java.util.List; | ||
| 7 | + | ||
| 8 | +@Schema(description = "用户 App - 交易配置 Response VO") | ||
| 9 | +@Data | ||
| 10 | +public class AppTradeConfigRespVO { | ||
| 11 | + | ||
| 12 | + @Schema(description = "分销海报地址数组", requiredMode = Schema.RequiredMode.REQUIRED) | ||
| 13 | + private List<String> brokeragePosterUrls; | ||
| 14 | + | ||
| 15 | + @Schema(description = "佣金冻结时间(天)", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") | ||
| 16 | + private Integer brokerageFrozenDays; | ||
| 17 | + | ||
| 18 | + @Schema(description = "佣金提现最小金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") | ||
| 19 | + private Integer brokerageWithdrawMinPrice; | ||
| 20 | + | ||
| 21 | +} |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/delivery/vo/config/AppDeliveryConfigRespVO.java
| @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.trade.controller.app.delivery.vo.config; | @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.trade.controller.app.delivery.vo.config; | ||
| 3 | import io.swagger.v3.oas.annotations.media.Schema; | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | import lombok.Data; | 4 | import lombok.Data; |
| 5 | 5 | ||
| 6 | -// TODO 芋艿:后续要实现下,配送配置 | 6 | +// TODO 芋艿:后续要实现下,配送配置;后续融合到 AppTradeConfigRespVO 中 |
| 7 | @Schema(description = "用户 App - 配送配置 Response VO") | 7 | @Schema(description = "用户 App - 配送配置 Response VO") |
| 8 | @Data | 8 | @Data |
| 9 | public class AppDeliveryConfigRespVO { | 9 | public class AppDeliveryConfigRespVO { |