From f0424315721af32838f91a1515e890f686f51049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Wed, 19 Nov 2025 14:51:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:PC=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/dto/wallet/TradeRecordDTO.java | 78 +++++++++++++++++++ .../store/dto/wallet/TradeRecordListDTO.java | 22 ++++++ .../wallet/AccountBatchQueryRequest.java | 7 +- .../wallet/CoolAccountBatchQueryRequest.java | 45 +++++++++++ .../wallet/CoolTradeRecodePageRequest.java | 41 ++++++++++ .../wallet/TradeRecodePageRequest.java | 33 ++++++++ .../service/wallet/WalletApiService.java | 9 +++ .../store/service/wallet/WalletService.java | 16 +++- .../wallet/impl/WalletServiceImpl.java | 14 ++++ .../controller/webb/WalletController.java | 24 +++++- 10 files changed, 283 insertions(+), 6 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/TradeRecordDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/TradeRecordListDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolAccountBatchQueryRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolTradeRecodePageRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/wallet/TradeRecodePageRequest.java diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/TradeRecordDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/TradeRecordDTO.java new file mode 100644 index 000000000..eb5845125 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/TradeRecordDTO.java @@ -0,0 +1,78 @@ +package com.cool.store.dto.wallet; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author suzhuhong + * @Date 2025/11/19 11:14 + * @Version 1.0 + */ +@Data +public class TradeRecordDTO implements Serializable { + + @ApiModelProperty(value = "业务系统付款单号(如 CRM 单号)", required = true) + private String reqNo; + + @ApiModelProperty(value = "交易(营帐通)", required = true) + private Long tradeId; + + @ApiModelProperty(value = "交易流水号(扫呗)", required = true) + private String outTradeNo; + + @ApiModelProperty(value = "费用科目", required = true) + private Integer feeItemId; + + @ApiModelProperty(value = "费用科目名称", required = true) + private String feeItemName; + + @ApiModelProperty(value = "转出方门店编号") + private String outStoreCode; + + @ApiModelProperty(value = "转入方门店编号") + private String inStoreCode; + + @ApiModelProperty(value = "转出方门店名称") + private String outStoreName; + + @ApiModelProperty(value = "转入方门店名称") + private String inStoreName; + + @ApiModelProperty(value = "转出方账户编号") + private String outAccountNo; + + @ApiModelProperty(value = "转入方账户编号") + private String inAccountNo; + + @ApiModelProperty(value = "转出方账户名称") + private String outAccountName; + + @ApiModelProperty(value = "转入方账户名称") + private String inAccountName; + + @ApiModelProperty(value = "提现银行卡号") + private String withdrawalBankCardNo; + + @ApiModelProperty(value = "提现银行卡户名") + private String withdrawalBankCardName; + + @ApiModelProperty(value = "金额(元)", required = true) + private String amount; + + @ApiModelProperty(value = "交易状态1.成功 2.失败 3.处理中 4.已退款", required = true) + private Integer tradeStatus; + + @ApiModelProperty(value = "1.转账2.提现 交易类型", required = true) + private Integer tradeType; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "错误原因") + private String errMsg; + + @ApiModelProperty(value = "交易发起时间YYYY-MM-DD HH:MM:SS", required = true) + private String createTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/TradeRecordListDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/TradeRecordListDTO.java new file mode 100644 index 000000000..97b5899c4 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/TradeRecordListDTO.java @@ -0,0 +1,22 @@ +package com.cool.store.dto.wallet; + +import com.cool.store.request.wallet.WalletBasicPageInfo; +import lombok.Data; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/11/19 11:15 + * @Version 1.0 + */ +@Data +public class TradeRecordListDTO { + + private List pageData; + + + private WalletBasicPageInfo page; + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountBatchQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountBatchQueryRequest.java index f94504ab8..2018730dc 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountBatchQueryRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountBatchQueryRequest.java @@ -11,7 +11,7 @@ import lombok.Data; @Data public class AccountBatchQueryRequest { - @ApiModelProperty(value = "关键字(门店编号、门店名称、账户名称、账户别名)") + @ApiModelProperty(value = "关键字(账户名称、账户别名)") private String keyword; @ApiModelProperty(value = "账户状态 1 待提交 2 待鉴权 3 鉴权中 4开通 账户状态") @@ -20,6 +20,11 @@ public class AccountBatchQueryRequest { @ApiModelProperty(value = "工商类型 1.企业 2.个体工商户 3.小微商户(自然人)") private Integer businessType; + @ApiModelProperty(value = "门店id") + private String outStoreId; + + private Integer walletType; + @ApiModelProperty(value = "分页信息",required = true) private WalletBasicPageInfo page; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolAccountBatchQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolAccountBatchQueryRequest.java new file mode 100644 index 000000000..76b650e5f --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolAccountBatchQueryRequest.java @@ -0,0 +1,45 @@ +package com.cool.store.request.wallet; + +import com.cool.store.common.PageBasicInfo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/11/19 13:56 + * @Version 1.0 + */ +@Data +public class CoolAccountBatchQueryRequest extends PageBasicInfo { + + @ApiModelProperty(value = "关键字(账户名称、账户别名)") + private String keyword; + + @ApiModelProperty(value = "账户状态 1 待提交 2 待鉴权 3 鉴权中 4开通 账户状态") + private Integer accountStatus; + + @ApiModelProperty(value = "工商类型 1.企业 2.个体工商户 3.小微商户(自然人)") + private Integer businessType; + + @ApiModelProperty(value = "门店id") + private String outStoreId; + + private Integer walletType; + + public AccountBatchQueryRequest convertToAccountBatchQueryRequest() { + AccountBatchQueryRequest target = new AccountBatchQueryRequest(); + target.setKeyword(this.getKeyword()); + target.setAccountStatus(this.getAccountStatus()); + target.setBusinessType(this.getBusinessType()); + target.setOutStoreId(this.getOutStoreId()); + target.setWalletType(this.getWalletType()); + + WalletBasicPageInfo walletBasicPageInfo = new WalletBasicPageInfo(); + walletBasicPageInfo.setCurrentPage(this.getPageNum()); + walletBasicPageInfo.setPageSize(this.getPageSize()); + target.setPage(walletBasicPageInfo); + return target; + } + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolTradeRecodePageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolTradeRecodePageRequest.java new file mode 100644 index 000000000..fe98c9eb6 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolTradeRecodePageRequest.java @@ -0,0 +1,41 @@ +package com.cool.store.request.wallet; + +import com.cool.store.common.PageBasicInfo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/11/19 14:09 + * @Version 1.0 + */ +@Data +public class CoolTradeRecodePageRequest extends PageBasicInfo { + + @ApiModelProperty(value = "交易开始时间YYYY-MM-DD HH:MM:SS",required = true) + private String beginDate; + @ApiModelProperty(value = "交易结束时间YYYY-MM-DD HH:MM:SS",required = true) + private String endDate; + @ApiModelProperty(value = "钱包类型 1.平安 2.网商",required = true) + private Integer walletType; + @ApiModelProperty(value = "关键字(账户名称,账户编号,业务系统付款单号,提现银行卡号)",required = true) + private String keyword; + @ApiModelProperty(value = "关键字(门店编号,门店名称)",required = true) + private String storeKeyword; + @ApiModelProperty(value = "费用科目",required = true) + private Integer feeItemId; + + public TradeRecodePageRequest convertToTradeRecodePageRequest() { + TradeRecodePageRequest target = new TradeRecodePageRequest(); + target.setBeginDate(this.getBeginDate()); + target.setEndDate(this.getEndDate()); + target.setWalletType(this.getWalletType()); + target.setKeyword(this.getKeyword()); + target.setStoreKeyword(this.getStoreKeyword()); + target.setFeeItemId(this.getFeeItemId()); + target.setCurrentPage(this.getPageNum()); + target.setPageSize(this.getPageSize()); + return target; + } + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/TradeRecodePageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/TradeRecodePageRequest.java new file mode 100644 index 000000000..abbe74f28 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/TradeRecodePageRequest.java @@ -0,0 +1,33 @@ +package com.cool.store.request.wallet; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/11/19 11:07 + * @Version 1.0 + */ +@Data +public class TradeRecodePageRequest { + + @ApiModelProperty(value = "交易开始时间YYYY-MM-DD HH:MM:SS",required = true) + private String beginDate; + @ApiModelProperty(value = "交易结束时间YYYY-MM-DD HH:MM:SS",required = true) + private String endDate; + @ApiModelProperty(value = "钱包类型 1.平安 2.网商",required = true) + private Integer walletType; + @ApiModelProperty(value = "关键字(账户名称,账户编号,业务系统付款单号,提现银行卡号)",required = true) + private String keyword; + @ApiModelProperty(value = "关键字(门店编号,门店名称)",required = true) + private String storeKeyword; + @ApiModelProperty(value = "费用科目",required = true) + private Integer feeItemId; + @ApiModelProperty(value = "当前页码",required = true) + private Integer currentPage; + @ApiModelProperty(value = "每页数量",required = true) + private Integer pageSize; + + + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletApiService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletApiService.java index 8e51dc7eb..f79e3878e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletApiService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletApiService.java @@ -201,6 +201,15 @@ public class WalletApiService { return walletHttpClientRest.postWithSign(walletBaseUrl+"/open/crm/account/ws/v1/create", request, StoreIdDTO.class); } + /** + * 获取交易记录列表 + * @param request + * @return + */ + public TradeRecordListDTO getTradeRecordList(TradeRecodePageRequest request){ + return walletHttpClientRest.postWithSign(walletBaseUrl+"/open/crm/trans/v1/accRecordPage", request, TradeRecordListDTO.class); + } + 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 3a55d2c89..897321f95 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 @@ -1,6 +1,6 @@ package com.cool.store.service.wallet; -import com.cool.store.dto.wallet.PaymentDTO; +import com.cool.store.dto.wallet.*; import com.cool.store.request.wallet.*; import com.cool.store.vo.wallet.*; import com.github.pagehelper.PageInfo; @@ -129,4 +129,18 @@ public interface WalletService { * @return 是否成功 */ Boolean withDrawer(WalletWithDrawerRequest request); + + /** + * 批量查询账户信息 分页查询 所有门店账户 + * @param request 批量查询账户信息Request + * @return 账户信息VO列表 + */ + PageInfo getAllAccountList(CoolAccountBatchQueryRequest request); + + /** + * 批量查询账户交易流水 + * @param request + * @return + */ + PageInfo getTradeRecordList(CoolTradeRecodePageRequest 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 c7686208a..816cbb818 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 @@ -380,6 +380,20 @@ public class WalletServiceImpl implements WalletService { return true; } + @Override + public PageInfo getAllAccountList(CoolAccountBatchQueryRequest request) { + AccountBatchQueryRequest accountBatchQueryRequest = request.convertToAccountBatchQueryRequest(); + AccountPageDTO accountList = walletApiService.getAccountList(accountBatchQueryRequest); + return toPageInfo(accountList.getPageData(), AccountInfoDTO.class, accountList.getPage()); + } + + @Override + public PageInfo getTradeRecordList(CoolTradeRecodePageRequest request) { + TradeRecodePageRequest tradeRecodePageRequest = request.convertToTradeRecodePageRequest(); + TradeRecordListDTO tradeRecordListDTO = walletApiService.getTradeRecordList(tradeRecodePageRequest); + return toPageInfo(tradeRecordListDTO.getPageData(), TradeRecordDTO.class, tradeRecordListDTO.getPage()); + } + public String getStoreId(StoreShopRequest request) { String storeId = request.getStoreId(); if (StringUtils.isBlank(storeId) && Objects.nonNull(request.getShopId())) { diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/WalletController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/WalletController.java index 22ec9e549..db5cbdafe 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/WalletController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/WalletController.java @@ -1,17 +1,20 @@ package com.cool.store.controller.webb; +import com.cool.store.dto.wallet.AccountInfoDTO; +import com.cool.store.dto.wallet.TradeRecordDTO; +import com.cool.store.request.wallet.CoolAccountBatchQueryRequest; +import com.cool.store.request.wallet.CoolTradeRecodePageRequest; import com.cool.store.request.wallet.StoreShopRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.wallet.WalletService; import com.cool.store.vo.wallet.AccountInfoVO; +import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.util.List; /** @@ -34,4 +37,17 @@ public class WalletController { public ResponseResult> getAccountList(StoreShopRequest request) { return ResponseResult.success(walletService.getAccountList(request)); } + + @ApiOperation("分页查询所有门店账户列表 支持条件查询") + @PostMapping("/getAllAccountList") + public ResponseResult> getAllAccountList(@RequestBody CoolAccountBatchQueryRequest request) { + return ResponseResult.success(walletService.getAllAccountList(request)); + } + + @ApiOperation("分页查询所有流水列表 支持条件查询") + @PostMapping("/getTradeRecordList") + public ResponseResult> getTradeRecordList(@RequestBody CoolTradeRecodePageRequest request) { + return ResponseResult.success(walletService.getTradeRecordList(request)); + } + }