Commit c146c98b7230d281c0b5a3236595fa96e342345c

Authored by owen
1 parent f72a0870

分佣: 提现

yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageUserController.java
... ... @@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6 import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
7 7 import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.*;
  8 +import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO;
8 9 import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum;
9 10 import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawStatusEnum;
10 11 import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageRecordService;
... ... @@ -41,15 +42,15 @@ public class AppBrokerageUserController {
41 42 @Resource
42 43 private BrokerageWithdrawService brokerageWithdrawService;
43 44  
44   - // TODO 芋艿:临时 mock =>
45 45 @GetMapping("/get")
46 46 @Operation(summary = "获得个人分销信息")
47 47 @PreAuthenticated
48 48 public CommonResult<AppBrokerageUserRespVO> getBrokerageUser() {
  49 + Optional<BrokerageUserDO> user = Optional.ofNullable(brokerageUserService.getBrokerageUser(getLoginUserId()));
49 50 AppBrokerageUserRespVO respVO = new AppBrokerageUserRespVO()
50   - .setBrokerageEnabled(true)
51   - .setBrokeragePrice(2000)
52   - .setFrozenPrice(3000);
  51 + .setBrokerageEnabled(user.map(BrokerageUserDO::getBrokerageEnabled).orElse(false))
  52 + .setBrokeragePrice(user.map(BrokerageUserDO::getBrokeragePrice).orElse(0))
  53 + .setFrozenPrice(user.map(BrokerageUserDO::getFrozenPrice).orElse(0));
53 54 return success(respVO);
54 55 }
55 56  
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/vo/withdraw/AppBrokerageWithdrawCreateReqVO.java
... ... @@ -43,7 +43,7 @@ public class AppBrokerageWithdrawCreateReqVO {
43 43 @NotBlank(message = "持卡人姓名不能为空", groups = {Bank.class})
44 44 private String name;
45 45 @Schema(description = "提现银行", example = "1")
46   - @NotBlank(message = "提现银行不能为空", groups = {Bank.class})
  46 + @NotNull(message = "提现银行不能为空", groups = {Bank.class})
47 47 private Integer bankName;
48 48 @Schema(description = "开户地址", example = "海淀支行")
49 49 private String bankAddress;
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/config/AppTradeConfigController.java
1 1 package cn.iocoder.yudao.module.trade.controller.app.config;
2 2  
  3 +import cn.hutool.core.util.ObjUtil;
3 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 5 import cn.iocoder.yudao.module.trade.controller.app.config.vo.AppTradeConfigRespVO;
  6 +import cn.iocoder.yudao.module.trade.dal.dataobject.config.TradeConfigDO;
  7 +import cn.iocoder.yudao.module.trade.service.config.TradeConfigService;
5 8 import io.swagger.v3.oas.annotations.tags.Tag;
6 9 import lombok.RequiredArgsConstructor;
7 10 import lombok.extern.slf4j.Slf4j;
... ... @@ -10,8 +13,9 @@ import org.springframework.web.bind.annotation.GetMapping;
10 13 import org.springframework.web.bind.annotation.RequestMapping;
11 14 import org.springframework.web.bind.annotation.RestController;
12 15  
  16 +import javax.annotation.Resource;
  17 +
13 18 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
14   -import static java.util.Arrays.asList;
15 19  
16 20 @Tag(name = "用户 App - 交易配置")
17 21 @RestController
... ... @@ -20,17 +24,18 @@ import static java.util.Arrays.asList;
20 24 @Validated
21 25 @Slf4j
22 26 public class AppTradeConfigController {
  27 + @Resource
  28 + private TradeConfigService tradeConfigService;
23 29  
24 30 @GetMapping("/get")
25 31 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);
  32 + TradeConfigDO tradeConfig = ObjUtil.defaultIfNull(tradeConfigService.getTradeConfig(), new TradeConfigDO());
  33 +
  34 + AppTradeConfigRespVO respVO = new AppTradeConfigRespVO()
  35 + .setBrokeragePosterUrls(tradeConfig.getBrokeragePostUrls())
  36 + .setBrokerageFrozenDays(tradeConfig.getBrokerageFrozenDays())
  37 + .setBrokerageWithdrawMinPrice(tradeConfig.getBrokerageWithdrawMinPrice())
  38 + .setBrokerageWithdrawType(tradeConfig.getBrokerageWithdrawType());
34 39 return success(respVO);
35 40 }
36 41  
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/config/vo/AppTradeConfigRespVO.java
... ... @@ -18,4 +18,7 @@ public class AppTradeConfigRespVO {
18 18 @Schema(description = "佣金提现最小金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
19 19 private Integer brokerageWithdrawMinPrice;
20 20  
  21 + @Schema(description = "提现方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1, 2]")
  22 + private List<Integer> brokerageWithdrawType;
  23 +
21 24 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageRecordService.java
... ... @@ -52,7 +52,7 @@ public interface BrokerageRecordService {
52 52 * @param brokeragePrice 佣金
53 53 * @param title 标题
54 54 */
55   - void addBrokerage(Long userId, BrokerageRecordBizTypeEnum bizType, String bizId, int brokeragePrice, String title);
  55 + void addBrokerage(Long userId, BrokerageRecordBizTypeEnum bizType, String bizId, Integer brokeragePrice, String title);
56 56  
57 57 /**
58 58 * 取消佣金:将佣金记录,状态修改为已失效
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageRecordServiceImpl.java
... ... @@ -229,12 +229,12 @@ public class BrokerageRecordServiceImpl implements BrokerageRecordService {
229 229  
230 230 @Override
231 231 @Transactional(rollbackFor = Exception.class)
232   - public void addBrokerage(Long userId, BrokerageRecordBizTypeEnum bizType, String bizId, int brokeragePrice, String title) {
  232 + public void addBrokerage(Long userId, BrokerageRecordBizTypeEnum bizType, String bizId, Integer brokeragePrice, String title) {
233 233 // 校验佣金余额
234 234 BrokerageUserDO user = brokerageUserService.getBrokerageUser(userId);
235 235 int balance = Optional.of(user)
236 236 .map(BrokerageUserDO::getBrokeragePrice).orElse(0);
237   - if (balance < brokeragePrice) {
  237 + if (balance + brokeragePrice < 0) {
238 238 throw exception(BROKERAGE_WITHDRAW_USER_BALANCE_NOT_ENOUGH, new Money(0, balance));
239 239 }
240 240  
... ...