From 2b29c9cdb68aba0497fc48c7f03cc8fc875f6270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E5=AE=87=E5=A5=87?= Date: Mon, 28 Apr 2025 20:12:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B5=84=E4=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/xkt/AssetController.java | 29 ++++++++-- .../account/TransDetailStorePageItemVO.java | 52 +++++++++++++++++ .../vo/account/TransDetailUserPageItemVO.java | 58 +++++++++++++++++++ .../account/TransDetailStorePageItemDTO.java | 58 +++++++++++++++++++ .../dto/account/TransDetailStoreQueryDTO.java | 20 +++++++ .../account/TransDetailUserPageItemDTO.java | 47 +++++++++++++++ .../dto/account/TransDetailUserQueryDTO.java | 20 +++++++ .../xkt/mapper/InternalAccountMapper.java | 18 ++++++ .../com/ruoyi/xkt/service/IAssetService.java | 22 +++++-- .../xkt/service/IInternalAccountService.java | 20 +++++++ .../xkt/service/impl/AssetServiceImpl.java | 21 +++++++ .../impl/InternalAccountServiceImpl.java | 12 ++++ .../mapper/InternalAccountMapper.xml | 47 +++++++++++++++ 13 files changed, 416 insertions(+), 8 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/account/TransDetailStorePageItemVO.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/account/TransDetailUserPageItemVO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailStorePageItemDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailStoreQueryDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailUserPageItemDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailUserQueryDTO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AssetController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AssetController.java index d03b876b3..4a86d1238 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AssetController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AssetController.java @@ -1,14 +1,14 @@ package com.ruoyi.web.controller.xkt; import cn.hutool.core.bean.BeanUtil; +import com.github.pagehelper.Page; import com.ruoyi.common.core.controller.XktBaseController; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.page.PageVO; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.web.controller.xkt.vo.BasePageVO; import com.ruoyi.web.controller.xkt.vo.account.*; -import com.ruoyi.xkt.dto.account.AlipayBindDTO; -import com.ruoyi.xkt.dto.account.AssetInfoDTO; -import com.ruoyi.xkt.dto.account.TransactionPasswordSetDTO; -import com.ruoyi.xkt.dto.account.WithdrawPrepareResult; +import com.ruoyi.xkt.dto.account.*; import com.ruoyi.xkt.enums.EAccountOwnerType; import com.ruoyi.xkt.enums.EPayChannel; import com.ruoyi.xkt.manager.impl.AliPaymentMangerImpl; @@ -94,4 +94,25 @@ public class AssetController extends XktBaseController { return success(); } + @PreAuthorize("@ss.hasPermi('system:asset:list')") + @ApiOperation(value = "档口交易明细") + @PostMapping("store/trans-detail/page") + public R> pageStoreTransDetail(@Validated @RequestBody BasePageVO vo) { + TransDetailStoreQueryDTO queryDTO = BeanUtil.toBean(vo, TransDetailStoreQueryDTO.class); + queryDTO.setStoreId(SecurityUtils.getStoreId()); + Page pageDTO = assetService.pageStoreTransDetail(queryDTO); + return success(PageVO.of(pageDTO, TransDetailStorePageItemVO.class)); + } + + @PreAuthorize("@ss.hasPermi('system:asset:list')") + @ApiOperation(value = "卖家交易明细") + @PostMapping("user/trans-detail/page") + public R> pageUserTransDetail(@Validated @RequestBody BasePageVO vo) { + TransDetailUserQueryDTO queryDTO = BeanUtil.toBean(vo, TransDetailUserQueryDTO.class); + queryDTO.setUserId(SecurityUtils.getUserId()); + Page pageDTO = assetService.pageUserTransDetail(queryDTO); + return success(PageVO.of(pageDTO, TransDetailUserPageItemVO.class)); + } + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/account/TransDetailStorePageItemVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/account/TransDetailStorePageItemVO.java new file mode 100644 index 000000000..f388f7a96 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/account/TransDetailStorePageItemVO.java @@ -0,0 +1,52 @@ +package com.ruoyi.web.controller.xkt.vo.account; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liangyq + * @date 2025-04-28 19:01 + */ +@ApiModel +@Data +public class TransDetailStorePageItemVO { + /** + * 订单号 + */ + @ApiModelProperty(value = "订单号") + private String orderNo; + /** + * 交易时间 + */ + @ApiModelProperty(value = "交易时间") + private Date transTime; + /** + * 收入 + */ + @ApiModelProperty(value = "收入") + private BigDecimal inputAmount; + /** + * 支出 + */ + @ApiModelProperty(value = "支出") + private BigDecimal outputAmount; + /** + * 交易说明 + */ + @ApiModelProperty(value = "交易说明") + private String remark; + /** + * 交易类型 + */ + @ApiModelProperty(value = "交易类型") + private String transType; + /** + * 支付方式 + */ + @ApiModelProperty(value = "支付方式") + private String payType; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/account/TransDetailUserPageItemVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/account/TransDetailUserPageItemVO.java new file mode 100644 index 000000000..6b8cce833 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/account/TransDetailUserPageItemVO.java @@ -0,0 +1,58 @@ +package com.ruoyi.web.controller.xkt.vo.account; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liangyq + * @date 2025-04-28 19:01 + */ +@ApiModel +@Data +public class TransDetailUserPageItemVO { + /** + * 订单号 + */ + @ApiModelProperty(value = "订单号") + private String orderNo; + /** + * 交易时间 + */ + @ApiModelProperty(value = "交易时间") + private Date transTime; + /** + * 收入 + */ + @ApiModelProperty(value = "收入") + private BigDecimal inputAmount; + /** + * 支出 + */ + @ApiModelProperty(value = "支出") + private BigDecimal outputAmount; + /** + * 交易说明 + */ + @ApiModelProperty(value = "交易说明") + private String remark; + /** + * 交易类型 + */ + @ApiModelProperty(value = "交易类型") + private String transType; + /** + * 支付方式 + */ + @ApiModelProperty(value = "支付方式") + private String payType; + /** + * 交易对象 + */ + @ApiModelProperty(value = "交易对象") + private String transTarget; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailStorePageItemDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailStorePageItemDTO.java new file mode 100644 index 000000000..bb39655cc --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailStorePageItemDTO.java @@ -0,0 +1,58 @@ +package com.ruoyi.xkt.dto.account; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liangyq + * @date 2025-04-28 19:01 + */ +@Data +public class TransDetailStorePageItemDTO { + /** + * 订单号 + */ + private String orderNo; + /** + * 交易时间 + */ + private Date transTime; + /** + * 交易金额 + */ + private BigDecimal transAmount; + /** + * 借贷方向[1:借(D) 2:贷(C)] + */ + private Integer loanDirection; + /** + * 收入 + */ + private BigDecimal inputAmount; + /** + * 支出 + */ + private BigDecimal outputAmount; + /** + * 交易说明 + */ + private String remark; + /** + * 来源类型[1:代发订单支付 2:代发订单完成 3:提现] + */ + private Integer srcType; + /** + * 交易类型 + */ + private String transType; + /** + * 单据类型[1:收款 2:付款 3:转移] + */ + private Integer billType; + /** + * 支付方式 + */ + private String payType; +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailStoreQueryDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailStoreQueryDTO.java new file mode 100644 index 000000000..a065c2f1e --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailStoreQueryDTO.java @@ -0,0 +1,20 @@ +package com.ruoyi.xkt.dto.account; + +import com.ruoyi.xkt.dto.BasePageDTO; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author liangyq + * @date 2025-04-28 18:59 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class TransDetailStoreQueryDTO extends BasePageDTO { + /** + * 档口ID + */ + private Long storeId; +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailUserPageItemDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailUserPageItemDTO.java new file mode 100644 index 000000000..120118f52 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailUserPageItemDTO.java @@ -0,0 +1,47 @@ +package com.ruoyi.xkt.dto.account; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liangyq + * @date 2025-04-28 19:01 + */ +@Data +public class TransDetailUserPageItemDTO { + /** + * 订单号 + */ + private String orderNo; + /** + * 交易时间 + */ + private Date transTime; + /** + * 收入 + */ + private BigDecimal inputAmount; + /** + * 支出 + */ + private BigDecimal outputAmount; + /** + * 交易说明 + */ + private String remark; + /** + * 交易类型 + */ + private String transType; + /** + * 支付方式 + */ + private String payType; + /** + * 交易对象 + */ + private String transTarget; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailUserQueryDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailUserQueryDTO.java new file mode 100644 index 000000000..373ae44df --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/account/TransDetailUserQueryDTO.java @@ -0,0 +1,20 @@ +package com.ruoyi.xkt.dto.account; + +import com.ruoyi.xkt.dto.BasePageDTO; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author liangyq + * @date 2025-04-28 18:59 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class TransDetailUserQueryDTO extends BasePageDTO { + /** + * 用户ID + */ + private Long userId; +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/InternalAccountMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/InternalAccountMapper.java index be4ed4909..217c12cd4 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/InternalAccountMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/InternalAccountMapper.java @@ -2,6 +2,8 @@ package com.ruoyi.xkt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.InternalAccount; +import com.ruoyi.xkt.dto.account.TransDetailStorePageItemDTO; +import com.ruoyi.xkt.dto.account.TransDetailUserPageItemDTO; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -29,4 +31,20 @@ public interface InternalAccountMapper extends BaseMapper { * @return */ List listForUpdate(@Param("ids") Collection ids); + + /** + * 档口交易明细 + * + * @param id + * @return + */ + List listStoreTransDetailPageItem(@Param("id")Long id); + + /** + * 卖家交易明细 + * + * @param userId + * @return + */ + List listUserTransDetailPageItem(@Param("userId")Long userId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IAssetService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IAssetService.java index d4f407067..7c8da34b5 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IAssetService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IAssetService.java @@ -1,9 +1,7 @@ package com.ruoyi.xkt.service; -import com.ruoyi.xkt.dto.account.AlipayBindDTO; -import com.ruoyi.xkt.dto.account.AssetInfoDTO; -import com.ruoyi.xkt.dto.account.TransactionPasswordSetDTO; -import com.ruoyi.xkt.dto.account.WithdrawPrepareResult; +import com.github.pagehelper.Page; +import com.ruoyi.xkt.dto.account.*; import com.ruoyi.xkt.enums.EPayChannel; import java.math.BigDecimal; @@ -72,4 +70,20 @@ public interface IAssetService { */ AssetInfoDTO bindAlipay(AlipayBindDTO alipayBind); + /** + * 分页查询档口交易明细 + * + * @param queryDTO + * @return + */ + Page pageStoreTransDetail(TransDetailStoreQueryDTO queryDTO); + + /** + * 分页查询卖家交易明细 + * + * @param queryDTO + * @return + */ + Page pageUserTransDetail(TransDetailUserQueryDTO queryDTO); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IInternalAccountService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IInternalAccountService.java index 7c786c50e..1ffd75e6c 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IInternalAccountService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IInternalAccountService.java @@ -2,12 +2,16 @@ package com.ruoyi.xkt.service; import com.ruoyi.xkt.domain.InternalAccount; import com.ruoyi.xkt.dto.account.InternalAccountAddDTO; +import com.ruoyi.xkt.dto.account.TransDetailStorePageItemDTO; +import com.ruoyi.xkt.dto.account.TransDetailUserPageItemDTO; import com.ruoyi.xkt.dto.finance.TransInfo; import com.ruoyi.xkt.enums.EAccountOwnerType; import com.ruoyi.xkt.enums.EEntryStatus; import com.ruoyi.xkt.enums.EFinBillType; import com.ruoyi.xkt.enums.ELoanDirection; +import java.util.List; + /** * @author liangyq * @date 2025-04-08 21:14 @@ -76,4 +80,20 @@ public interface IInternalAccountService { * @param transactionPassword md5 */ void setTransactionPassword(Long id, String phoneNumber, String transactionPassword); + + /** + * 档口交易明细 + * + * @param internalAccountId + * @return + */ + List listStoreTransDetailPageItem(Long internalAccountId); + + /** + * 卖家交易明细 + * + * @param userId + * @return + */ + List listUserTransDetailPageItem(Long userId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/AssetServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/AssetServiceImpl.java index 63b9e8d25..eb45d315e 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/AssetServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/AssetServiceImpl.java @@ -5,6 +5,8 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.xkt.domain.ExternalAccount; import com.ruoyi.xkt.domain.InternalAccount; @@ -166,5 +168,24 @@ public class AssetServiceImpl implements IAssetService { return getStoreAssetInfo(alipayBind.getOwnerId()); } + @Override + public Page pageStoreTransDetail(TransDetailStoreQueryDTO queryDTO) { + Assert.notNull(queryDTO.getStoreId()); + InternalAccount internalAccount = internalAccountService.getAccount(queryDTO.getStoreId(), + EAccountOwnerType.STORE); + Assert.notNull(internalAccount); + Page page = PageHelper.startPage(queryDTO.getPageNum(), queryDTO.getPageSize()); + internalAccountService.listStoreTransDetailPageItem(internalAccount.getId()); + return page; + } + + @Override + public Page pageUserTransDetail(TransDetailUserQueryDTO queryDTO) { + Assert.notNull(queryDTO.getUserId()); + Page page = PageHelper.startPage(queryDTO.getPageNum(), queryDTO.getPageSize()); + internalAccountService.listUserTransDetailPageItem(queryDTO.getUserId()); + return page; + } + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/InternalAccountServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/InternalAccountServiceImpl.java index 7bddea8d5..d70313cec 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/InternalAccountServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/InternalAccountServiceImpl.java @@ -12,6 +12,8 @@ import com.ruoyi.common.utils.bean.BeanValidators; import com.ruoyi.xkt.domain.InternalAccount; import com.ruoyi.xkt.domain.InternalAccountTransDetail; import com.ruoyi.xkt.dto.account.InternalAccountAddDTO; +import com.ruoyi.xkt.dto.account.TransDetailStorePageItemDTO; +import com.ruoyi.xkt.dto.account.TransDetailUserPageItemDTO; import com.ruoyi.xkt.dto.finance.TransInfo; import com.ruoyi.xkt.enums.*; import com.ruoyi.xkt.mapper.InternalAccountMapper; @@ -246,6 +248,16 @@ public class InternalAccountServiceImpl implements IInternalAccountService { internalAccountMapper.updateById(update); } + @Override + public List listStoreTransDetailPageItem(Long internalAccountId) { + return internalAccountMapper.listStoreTransDetailPageItem(internalAccountId); + } + + @Override + public List listUserTransDetailPageItem(Long userId) { + return internalAccountMapper.listUserTransDetailPageItem(userId); + } + /** * 检查账户状态 diff --git a/xkt/src/main/resources/mapper/InternalAccountMapper.xml b/xkt/src/main/resources/mapper/InternalAccountMapper.xml index 247bb217c..160f84841 100644 --- a/xkt/src/main/resources/mapper/InternalAccountMapper.xml +++ b/xkt/src/main/resources/mapper/InternalAccountMapper.xml @@ -13,4 +13,51 @@ WHERE id IN #{id} FOR UPDATE + + + + + \ No newline at end of file