diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index b2b5ee840..5068cb4b2 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -316,6 +316,7 @@ public enum ErrorCodeEnum { STORE_NOT_FIND(1610013,"门店不存在",null), WALLET_OPEN_ACCOUNT_FAIL(1620001,"钱包开通失败",null), + WALLET_WITH_DRAWER_FAIL(1620002,"提现失败",null), ; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java index c10400783..e3c9bff3a 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java @@ -72,6 +72,13 @@ public class ShopInfoDAO { return shopInfo; } + public ShopInfoDO getShopInfoByStoreId(String storeId) { + ShopInfoDO shopInfoDO = new ShopInfoDO(); + shopInfoDO.setStoreId(storeId); + shopInfoDO.setDeleted(false); + return shopInfoMapper.selectOne(shopInfoDO); + } + public List getShopList(Long lineId){ if(Objects.isNull(lineId)){ return new ArrayList<>(); diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/WalletLargePaymentDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/WalletLargePaymentDAO.java deleted file mode 100644 index b6a7b8b22..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/WalletLargePaymentDAO.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.cool.store.dao.wallet; - -import com.cool.store.mapper.wallet.WalletLargePaymentMapper; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Repository; - -/** - *

- * 钱包大额支付DAO - *

- * - * @author wangff - * @since 2025/11/18 - */ -@Repository -@RequiredArgsConstructor -public class WalletLargePaymentDAO { - private final WalletLargePaymentMapper walletLargePaymentMapper; - - -} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/WalletPaymentOrderDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/WalletPaymentOrderDAO.java new file mode 100644 index 000000000..603714210 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/WalletPaymentOrderDAO.java @@ -0,0 +1,40 @@ +package com.cool.store.dao.wallet; + +import com.cool.store.entity.wallet.WalletPaymentOrderDO; +import com.cool.store.mapper.wallet.WalletPaymentOrderMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; +import tk.mybatis.mapper.entity.Example; + +import java.util.List; + +/** + *

+ * 钱包大额支付DAO + *

+ * + * @author wangff + * @since 2025/11/18 + */ +@Repository +@RequiredArgsConstructor +public class WalletPaymentOrderDAO { + private final WalletPaymentOrderMapper walletPaymentOrderMapper; + + public void insertSelective(WalletPaymentOrderDO walletPaymentOrderDO) { + walletPaymentOrderMapper.insertSelective(walletPaymentOrderDO); + } + + /** + * 查询未支付的充值订单 + */ + public List getNonPaymentList(String storeId) { + Example example = new Example(WalletPaymentOrderDO.class); + example.createCriteria() + .andEqualTo("storeId", storeId) + .andEqualTo("orderStatus", 3) + .andEqualTo("type", 0); + example.setOrderByClause("create_time DESC"); + return walletPaymentOrderMapper.selectByExample(example); + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/WalletLargePaymentMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/WalletLargePaymentMapper.java deleted file mode 100644 index 2ba9bcb02..000000000 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/WalletLargePaymentMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.cool.store.mapper.wallet; - -import com.cool.store.entity.wallet.WalletLargePaymentDO; -import tk.mybatis.mapper.common.Mapper; - -public interface WalletLargePaymentMapper extends Mapper { -} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/WalletPaymentOrderMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/WalletPaymentOrderMapper.java new file mode 100644 index 000000000..774abb085 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/WalletPaymentOrderMapper.java @@ -0,0 +1,7 @@ +package com.cool.store.mapper.wallet; + +import com.cool.store.entity.wallet.WalletPaymentOrderDO; +import tk.mybatis.mapper.common.Mapper; + +public interface WalletPaymentOrderMapper extends Mapper { +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/wallet/WalletLargePaymentMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/wallet/WalletPaymentOrderMapper.xml similarity index 83% rename from coolstore-partner-dao/src/main/resources/mapper/wallet/WalletLargePaymentMapper.xml rename to coolstore-partner-dao/src/main/resources/mapper/wallet/WalletPaymentOrderMapper.xml index 8da4bac12..ea5ed9ece 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/wallet/WalletLargePaymentMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/wallet/WalletPaymentOrderMapper.xml @@ -1,13 +1,14 @@ - - + + + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/WalletLargePaymentDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/WalletPaymentOrderDO.java similarity index 71% rename from coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/WalletLargePaymentDO.java rename to coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/WalletPaymentOrderDO.java index ef0c535fa..11f192489 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/WalletLargePaymentDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/WalletPaymentOrderDO.java @@ -1,17 +1,23 @@ package com.cool.store.entity.wallet; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.math.BigDecimal; import java.util.Date; import javax.persistence.*; /** - * 钱包大额支付订单 + * 钱包支付订单 */ -@Table(name = "zxjp_wallet_large_payment") +@Table(name = "zxjp_wallet_payment_order") @Data -public class WalletLargePaymentDO { +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class WalletPaymentOrderDO { /** * id */ @@ -31,6 +37,12 @@ public class WalletLargePaymentDO { @Column(name = "payment_id") private String paymentId; + /** + * 订单类型,0充值 1提现 + */ + @Column(name = "type") + private Integer type; + /** * 金额 */ @@ -46,7 +58,7 @@ public class WalletLargePaymentDO { * 订单状态:1-成功 2-失败 3-支付中 4-撤销 */ @Column(name = "order_status") - private Boolean orderStatus; + private Integer orderStatus; /** * 创建时间 diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountPasswordRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountPasswordRequest.java index ad069da88..42ac0fe68 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountPasswordRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountPasswordRequest.java @@ -29,6 +29,5 @@ public class AccountPasswordRequest extends StoreShopRequest { private String confirmPayPwd; @ApiModelProperty("当前使用的支付密码(sm3加密后字符串),维护类型为修改密码时必填") - @NotNull(message = "当前使用的支付密码不能为空") private String currentPayPwd; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountPaymentRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountPaymentRequest.java index e8ab99b32..76fb33d0c 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountPaymentRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountPaymentRequest.java @@ -3,7 +3,8 @@ package com.cool.store.request.wallet; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.Pattern; +import javax.validation.constraints.Digits; +import java.math.BigDecimal; /** *

@@ -16,6 +17,7 @@ import javax.validation.constraints.Pattern; @Data public class AccountPaymentRequest extends StoreShopRequest { @ApiModelProperty(value = "支付金额") - @Pattern(regexp = "^\\d+(\\.\\d{1,2})?$", message = "金额格式不正确") - private String amount; + @Digits(integer = 10, fraction = 2, message = "金额整数位最多10位,小数位最多2位") + private BigDecimal amount; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/LargePaymentQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/LargePaymentQueryRequest.java new file mode 100644 index 000000000..182e297f4 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/LargePaymentQueryRequest.java @@ -0,0 +1,21 @@ +package com.cool.store.request.wallet; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 大额支付订单查询Request + *

+ * + * @author wangff + * @since 2025/11/18 + */ +@Data +public class LargePaymentQueryRequest extends StoreShopRequest { + @ApiModelProperty("页码") + private Integer pageNum = 1; + + @ApiModelProperty("页数量") + private Integer pageSize = 10; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/WalletWithDrawerRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/WalletWithDrawerRequest.java new file mode 100644 index 000000000..509dec55f --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/WalletWithDrawerRequest.java @@ -0,0 +1,30 @@ +package com.cool.store.request.wallet; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.Digits; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + *

+ * 钱包提现Request + *

+ * + * @author wangff + * @since 2025/11/18 + */ +@Data +public class WalletWithDrawerRequest extends StoreShopRequest { + @ApiModelProperty("提现金额") + @Digits(integer = 10, fraction = 2, message = "金额整数位最多10位,小数位最多2位") + @NotNull(message = "提现金额不能为空") + private BigDecimal amount; + + @ApiModelProperty("支付密码(sm3加密后字符串)") + @NotBlank(message = "支付密码不能为空") + private String payPwd; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/WithDrawerRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/WithDrawerRequest.java index ef0f65ace..97786ec27 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/WithDrawerRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/WithDrawerRequest.java @@ -1,7 +1,9 @@ package com.cool.store.request.wallet; import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @Author suzhuhong @@ -9,6 +11,8 @@ import lombok.Data; * @Version 1.0 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class WithDrawerRequest { @ApiModelProperty(value = "门店ID") diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/wallet/AccountPaymentVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/wallet/AccountPaymentVO.java index 9991399b6..519046904 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/wallet/AccountPaymentVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/wallet/AccountPaymentVO.java @@ -22,9 +22,6 @@ public class AccountPaymentVO { @ApiModelProperty(value = "收款银行名称", required = true) private String payeeBankName; - - @ApiModelProperty(value = "账号过期时间") - private String expireTime; @ApiModelProperty("过期倒计时(秒)") private Long expiryCountdown; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/wallet/WalletPaymentOrderVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/wallet/WalletPaymentOrderVO.java new file mode 100644 index 000000000..cc03ef2cf --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/wallet/WalletPaymentOrderVO.java @@ -0,0 +1,30 @@ +package com.cool.store.vo.wallet; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * 钱包支付订单VO + *

+ * + * @author wangff + * @since 2025/11/18 + */ +@Data +public class WalletPaymentOrderVO { + @ApiModelProperty("预支付id") + private String paymentId; + + @ApiModelProperty("金额") + private BigDecimal amount; + + @ApiModelProperty("订单状态:1-成功 2-失败 3-支付中 4-撤销") + private Integer orderStatus; + + @ApiModelProperty("创建时间") + private Date createTime; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java index 0593bcd66..776dc7397 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java @@ -85,4 +85,25 @@ public interface WalletService { * @return 账户充值VO */ AccountPaymentVO payment(AccountPaymentRequest request); + + /** + * 未完成充值订单查询 + * @param request 查询request + * @return 钱包支付订单VO列表 + */ + PageInfo nonPaymentOrderPage(LargePaymentQueryRequest request); + + /** + * 根据预支付id查询收款账户详情 + * @param paymentId 预支付id + * @return 账户充值VO + */ + AccountPaymentVO paymentDetail(String paymentId); + + /** + * 提现 + * @param request 钱包提现Request + * @return 是否成功 + */ + Boolean withDrawer(WalletWithDrawerRequest request); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java index fefd0cde8..3c0cd0de8 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java @@ -3,15 +3,14 @@ package com.cool.store.service.wallet.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; +import com.cool.store.dao.LineInfoDAO; import com.cool.store.dao.RegionDao; import com.cool.store.dao.ShopInfoDAO; import com.cool.store.dao.ShopStageInfoDAO; -import com.cool.store.dao.wallet.WalletLargePaymentDAO; +import com.cool.store.dao.wallet.WalletPaymentOrderDAO; import com.cool.store.dto.wallet.*; -import com.cool.store.entity.LicenseTransactDO; -import com.cool.store.entity.RegionDO; -import com.cool.store.entity.ShopInfoDO; -import com.cool.store.entity.ShopStageInfoDO; +import com.cool.store.entity.*; +import com.cool.store.entity.wallet.WalletPaymentOrderDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.point.ShopSubStageEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; @@ -25,6 +24,7 @@ import com.cool.store.service.wallet.WalletService; import com.cool.store.utils.BeanUtil; import com.cool.store.utils.UUIDUtils; import com.cool.store.vo.wallet.*; +import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -32,8 +32,12 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.sql.Date; +import java.time.Duration; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -56,7 +60,10 @@ public class WalletServiceImpl implements WalletService { private final ApplyLicenseMapper applyLicenseMapper; private final WalletApiService walletApiService; private final RegionDao regionDao; - private final WalletLargePaymentDAO walletLargePaymentDAO; + private final WalletPaymentOrderDAO walletPaymentOrderDAO; + private final LineInfoDAO lineInfoDAO; + + private final static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @Override public Boolean accountCreate(AccountCreateRequest request) { @@ -234,11 +241,84 @@ public class WalletServiceImpl implements WalletService { @Override public AccountPaymentVO payment(AccountPaymentRequest request) { - String storeId = getStoreId(request); + ShopInfoDO shopInfo = null; + if (Objects.nonNull(request.getShopId())) { + shopInfo = shopInfoDAO.getShopInfo(request.getShopId()); + } else if (StringUtils.isNotBlank(request.getStoreId())) { + shopInfo = shopInfoDAO.getShopInfoByStoreId(request.getStoreId()); + } + if (Objects.isNull(shopInfo)) { + throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST); + } + String storeId = shopInfo.getStoreId(); + LineInfoDO lineInfo = lineInfoDAO.getByPartnerId(shopInfo.getPartnerId()); + if (Objects.isNull(lineInfo)) { + throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); + } String paymentId = UUIDUtils.get32UUID(); -// new LargePaymentRequest(storeId, paymentId, "", request.getAmount()); + LargePaymentRequest paymentRequest = new LargePaymentRequest(storeId, paymentId, lineInfo.getUsername(), request.getAmount().toString()); + LargePaymentDTO resultDTO = walletApiService.largePayment(paymentRequest); - return null; + long expiryCountdown = 0; + if (StringUtils.isNotBlank(resultDTO.getExpireTime())) { + expiryCountdown = Math.max(0, Duration.between(LocalDateTime.now(), LocalDateTime.parse(resultDTO.getExpireTime(), formatter)).getSeconds()); + } + WalletPaymentOrderDO orderDO = WalletPaymentOrderDO.builder() + .storeId(storeId) + .paymentId(paymentId) + .type(0) + .amount(request.getAmount()) + .expireTime(resultDTO.getExpireTime()) + .orderStatus(3) + .build(); + walletPaymentOrderDAO.insertSelective(orderDO); + AccountPaymentVO result = BeanUtil.toBean(resultDTO, AccountPaymentVO.class); + result.setExpiryCountdown(expiryCountdown); + return result; + } + + @Override + public PageInfo nonPaymentOrderPage(LargePaymentQueryRequest request) { + PageHelper.startPage(request.getPageNum(), request.getPageSize()); + String storeId = getStoreId(request); + List list = walletPaymentOrderDAO.getNonPaymentList(storeId); + PageInfo page = new PageInfo<>(list); + return BeanUtil.toPage(page, WalletPaymentOrderVO.class); + } + + @Override + public AccountPaymentVO paymentDetail(String paymentId) { + PaymentDetailRequest request = new PaymentDetailRequest(); + request.setPaymentId(paymentId); + PaymentDTO resultDTO = walletApiService.largePaymentQuery(request); + + long expiryCountdown = 0; + if (StringUtils.isNotBlank(resultDTO.getExpireTime())) { + expiryCountdown = Math.max(0, Duration.between(LocalDateTime.now(), LocalDateTime.parse(resultDTO.getExpireTime(), formatter)).getSeconds()); + } + AccountPaymentVO result = BeanUtil.toBean(resultDTO, AccountPaymentVO.class); + result.setExpiryCountdown(expiryCountdown); + return result; + } + + @Override + public Boolean withDrawer(WalletWithDrawerRequest request) { + String storeId = getStoreId(request); + String reqNo = UUIDUtils.get32UUID(); + WithDrawerRequest withDrawerRequest = new WithDrawerRequest(storeId, request.getPayPwd(), reqNo, request.getAmount().toString(), "提现"); + WithDrawerDTO withdraw = walletApiService.withdraw(withDrawerRequest); + if ("2".equals(withdraw.getTradeStatus())) { + throw new ServiceException(ErrorCodeEnum.WALLET_WITH_DRAWER_FAIL); + } + WalletPaymentOrderDO orderDO = WalletPaymentOrderDO.builder() + .storeId(storeId) + .paymentId(reqNo) + .type(1) + .amount(request.getAmount()) + .orderStatus(1) + .build(); + walletPaymentOrderDAO.insertSelective(orderDO); + return true; } public String getStoreId(StoreShopRequest request) { diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java index 8fa1d89d8..c9eebc6d1 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java @@ -3,10 +3,7 @@ package com.cool.store.controller.webc; import com.cool.store.request.wallet.*; import com.cool.store.response.ResponseResult; import com.cool.store.service.wallet.WalletService; -import com.cool.store.vo.wallet.AccountAuthenticationVO; -import com.cool.store.vo.wallet.AccountBillListVO; -import com.cool.store.vo.wallet.AccountInfoVO; -import com.cool.store.vo.wallet.BankVO; +import com.cool.store.vo.wallet.*; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -14,6 +11,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.validation.constraints.NotBlank; import java.util.List; /** @@ -66,4 +64,34 @@ public class MiniWalletController { public ResponseResult> getBillPage(@RequestBody AccountBillQueryRequest request) { return ResponseResult.success(walletService.getBillPage(request)); } + + @ApiOperation("密码维护") + @PostMapping("/passwordUpdate") + public ResponseResult passwordUpdate(@RequestBody @Validated AccountPasswordRequest request) { + return ResponseResult.success(walletService.passwordUpdate(request)); + } + + @ApiOperation("账户充值") + @PostMapping("/payment") + public ResponseResult payment(@RequestBody @Validated AccountPaymentRequest request) { + return ResponseResult.success(walletService.payment(request)); + } + + @ApiOperation("未支付充值订单分页查询") + @GetMapping("/nonPaymentPage") + public ResponseResult> nonPaymentPage(LargePaymentQueryRequest request) { + return ResponseResult.success(walletService.nonPaymentOrderPage(request)); + } + + @ApiOperation("根据预支付id查询收款账户详情") + @GetMapping("/paymentDetail") + public ResponseResult paymentDetail(@NotBlank(message = "预支付id不能为空") String paymentId) { + return ResponseResult.success(walletService.paymentDetail(paymentId)); + } + + @ApiOperation("提现") + @PostMapping("/withDrawer") + public ResponseResult withDrawer(@RequestBody @Validated WalletWithDrawerRequest request) { + return ResponseResult.success(walletService.withDrawer(request)); + } }