From 419d9a930c9df2568356d9aa8f0b66594f14de08 Mon Sep 17 00:00:00 2001 From: ziin Date: Fri, 26 Dec 2025 18:19:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenant-balance):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E7=A7=AF=E5=88=86=E8=AE=B0=E5=BD=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增租户积分记录(TenantBalanceTransaction)的完整 CRUD 接口,包括分页查询、创建、更新、删除及批量操作,并补充对应错误码。 --- .../TenantBalanceController.java | 53 +++++++++++++++++++ .../TenantBalanceTransactionMapper.java | 19 +++++++ .../tenantbalance/TenantBalanceService.java | 49 +++++++++++++++++ .../TenantBalanceServiceImpl.java | 52 ++++++++++++++++++ .../infra/enums/ErrorCodeConstants.java | 1 + 5 files changed, 174 insertions(+) diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/tenantbalance/TenantBalanceController.java b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/tenantbalance/TenantBalanceController.java index 485f31d..4d3d340 100644 --- a/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/tenantbalance/TenantBalanceController.java +++ b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/tenantbalance/TenantBalanceController.java @@ -1,5 +1,6 @@ package com.yolo.keyboard.controller.admin.tenantbalance; +import com.yolo.keyboard.dal.dataobject.tenantbalancetransaction.TenantBalanceTransactionDO; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -125,4 +126,56 @@ public class TenantBalanceController { return success(BeanUtils.toBean(tenantBalancePage, TenantBalanceRespVO.class)); } + + // ==================== 子表(租户积分记录) ==================== + + @GetMapping("/tenant-balance-transaction/page") + @Operation(summary = "获得租户积分记录分页") + @Parameter(name = "tenantId", description = "租户 Id") + @PreAuthorize("@ss.hasPermission('keyboard:tenant-balance:query')") + public CommonResult> getTenantBalanceTransactionPage(PageParam pageReqVO, + @RequestParam("tenantId") Long tenantId) { + return success(tenantBalanceService.getTenantBalanceTransactionPage(pageReqVO, tenantId)); + } + + @PostMapping("/tenant-balance-transaction/create") + @Operation(summary = "创建租户积分记录") + @PreAuthorize("@ss.hasPermission('keyboard:tenant-balance:create')") + public CommonResult createTenantBalanceTransaction(@Valid @RequestBody TenantBalanceTransactionDO tenantBalanceTransaction) { + return success(tenantBalanceService.createTenantBalanceTransaction(tenantBalanceTransaction)); + } + + @PutMapping("/tenant-balance-transaction/update") + @Operation(summary = "更新租户积分记录") + @PreAuthorize("@ss.hasPermission('keyboard:tenant-balance:update')") + public CommonResult updateTenantBalanceTransaction(@Valid @RequestBody TenantBalanceTransactionDO tenantBalanceTransaction) { + tenantBalanceService.updateTenantBalanceTransaction(tenantBalanceTransaction); + return success(true); + } + + @DeleteMapping("/tenant-balance-transaction/delete") + @Parameter(name = "id", description = "编号", required = true) + @Operation(summary = "删除租户积分记录") + @PreAuthorize("@ss.hasPermission('keyboard:tenant-balance:delete')") + public CommonResult deleteTenantBalanceTransaction(@RequestParam("id") Long id) { + tenantBalanceService.deleteTenantBalanceTransaction(id); + return success(true); + } + + @DeleteMapping("/tenant-balance-transaction/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除租户积分记录") + @PreAuthorize("@ss.hasPermission('keyboard:tenant-balance:delete')") + public CommonResult deleteTenantBalanceTransactionList(@RequestParam("ids") List ids) { + tenantBalanceService.deleteTenantBalanceTransactionListByIds(ids); + return success(true); + } + + @GetMapping("/tenant-balance-transaction/get") + @Operation(summary = "获得租户积分记录") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('keyboard:tenant-balance:query')") + public CommonResult getTenantBalanceTransaction(@RequestParam("id") Long id) { + return success(tenantBalanceService.getTenantBalanceTransaction(id)); + } } \ No newline at end of file diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/tenantbalancetransaction/TenantBalanceTransactionMapper.java b/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/tenantbalancetransaction/TenantBalanceTransactionMapper.java index 5e5bc7a..ffeb38d 100644 --- a/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/tenantbalancetransaction/TenantBalanceTransactionMapper.java +++ b/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/tenantbalancetransaction/TenantBalanceTransactionMapper.java @@ -1,9 +1,14 @@ package com.yolo.keyboard.dal.mysql.tenantbalancetransaction; import com.yolo.keyboard.dal.dataobject.tenantbalancetransaction.TenantBalanceTransactionDO; +import com.yolo.keyboard.framework.common.pojo.PageParam; +import com.yolo.keyboard.framework.common.pojo.PageResult; import com.yolo.keyboard.framework.mybatis.core.mapper.BaseMapperX; +import com.yolo.keyboard.framework.mybatis.core.query.LambdaQueryWrapperX; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 租户积分记录 Mapper * @@ -11,4 +16,18 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface TenantBalanceTransactionMapper extends BaseMapperX { + + default PageResult selectPage(PageParam reqVO, Long tenantId) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eq(TenantBalanceTransactionDO::getTenantId, tenantId) + .orderByDesc(TenantBalanceTransactionDO::getId)); + } + + default int deleteByTenantId(Long tenantId) { + return delete(TenantBalanceTransactionDO::getTenantId, tenantId); + } + + default int deleteByTenantIds(List tenantIds) { + return deleteBatch(TenantBalanceTransactionDO::getTenantId, tenantIds); + } } diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantbalance/TenantBalanceService.java b/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantbalance/TenantBalanceService.java index 1611523..df9f78e 100644 --- a/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantbalance/TenantBalanceService.java +++ b/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantbalance/TenantBalanceService.java @@ -1,6 +1,8 @@ package com.yolo.keyboard.service.tenantbalance; import java.util.*; + +import com.yolo.keyboard.dal.dataobject.tenantbalancetransaction.TenantBalanceTransactionDO; import jakarta.validation.*; import com.yolo.keyboard.controller.admin.tenantbalance.vo.*; import com.yolo.keyboard.dal.dataobject.tenantbalance.TenantBalanceDO; @@ -81,4 +83,51 @@ public interface TenantBalanceService { */ PageResult getSelfSubordinateTenantBalancePage(TenantBalancePageReqVO pageReqVO); + /** + * 获得租户积分记录分页 + * + * @param pageReqVO 分页查询 + * @param tenantId 租户 Id + * @return 租户积分记录分页 + */ + PageResult getTenantBalanceTransactionPage(PageParam pageReqVO, Long tenantId); + + /** + * 创建租户积分记录 + * + * @param tenantBalanceTransaction 创建信息 + * @return 编号 + */ + Long createTenantBalanceTransaction(@Valid TenantBalanceTransactionDO tenantBalanceTransaction); + + /** + * 更新租户积分记录 + * + * @param tenantBalanceTransaction 更新信息 + */ + void updateTenantBalanceTransaction(@Valid TenantBalanceTransactionDO tenantBalanceTransaction); + + /** + * 删除租户积分记录 + * + * @param id 编号 + */ + void deleteTenantBalanceTransaction(Long id); + + /** + * 批量删除租户积分记录 + * + * @param ids 编号 + */ + void deleteTenantBalanceTransactionListByIds(List ids); + + /** + * 获得租户积分记录 + * + * @param id 编号 + * @return 租户积分记录 + */ + TenantBalanceTransactionDO getTenantBalanceTransaction(Long id); + + } \ No newline at end of file diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantbalance/TenantBalanceServiceImpl.java b/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantbalance/TenantBalanceServiceImpl.java index dbb0f25..5161c91 100644 --- a/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantbalance/TenantBalanceServiceImpl.java +++ b/keyboard-server/src/main/java/com/yolo/keyboard/service/tenantbalance/TenantBalanceServiceImpl.java @@ -28,6 +28,7 @@ import static com.yolo.keyboard.framework.common.exception.util.ServiceException import static com.yolo.keyboard.framework.common.util.collection.CollectionUtils.convertList; import static com.yolo.keyboard.framework.common.util.collection.CollectionUtils.diffList; import static com.yolo.keyboard.module.infra.enums.ErrorCodeConstants.TENANT_BALANCE_NOT_EXISTS; +import static com.yolo.keyboard.module.infra.enums.ErrorCodeConstants.TENANT_BALANCE_TRANSACTION_NOT_EXISTS; /** * 租户余额 Service 实现类 @@ -160,4 +161,55 @@ public class TenantBalanceServiceImpl implements TenantBalanceService { return BeanUtils.toBean(pageResult, TenantBalanceRespVO.class); } + @Override + public PageResult getTenantBalanceTransactionPage(PageParam pageReqVO, Long tenantId) { + return tenantBalanceTransactionMapper.selectPage(pageReqVO, tenantId); + } + + @Override + public Long createTenantBalanceTransaction(TenantBalanceTransactionDO tenantBalanceTransaction) { + tenantBalanceTransactionMapper.insert(tenantBalanceTransaction); + return tenantBalanceTransaction.getId(); + } + + @Override + public void updateTenantBalanceTransaction(TenantBalanceTransactionDO tenantBalanceTransaction) { + // 校验存在 + validateTenantBalanceTransactionExists(tenantBalanceTransaction.getId()); + // 更新 + tenantBalanceTransactionMapper.updateById(tenantBalanceTransaction); + } + + @Override + public void deleteTenantBalanceTransaction(Long id) { + // 删除 + tenantBalanceTransactionMapper.deleteById(id); + } + + @Override + public void deleteTenantBalanceTransactionListByIds(List ids) { + // 删除 + tenantBalanceTransactionMapper.deleteByIds(ids); + } + + @Override + public TenantBalanceTransactionDO getTenantBalanceTransaction(Long id) { + return tenantBalanceTransactionMapper.selectById(id); + } + + private void validateTenantBalanceTransactionExists(Long id) { + if (tenantBalanceTransactionMapper.selectById(id) == null) { + throw exception(TENANT_BALANCE_TRANSACTION_NOT_EXISTS); + } + } + + private void deleteTenantBalanceTransactionByTenantId(Long tenantId) { + tenantBalanceTransactionMapper.deleteByTenantId(tenantId); + } + + private void deleteTenantBalanceTransactionByTenantIds(List tenantIds) { + tenantBalanceTransactionMapper.deleteByTenantIds(tenantIds); + } + + } \ No newline at end of file diff --git a/yolo-module-infra/src/main/java/com/yolo/keyboard/module/infra/enums/ErrorCodeConstants.java b/yolo-module-infra/src/main/java/com/yolo/keyboard/module/infra/enums/ErrorCodeConstants.java index 8bee506..fd443eb 100644 --- a/yolo-module-infra/src/main/java/com/yolo/keyboard/module/infra/enums/ErrorCodeConstants.java +++ b/yolo-module-infra/src/main/java/com/yolo/keyboard/module/infra/enums/ErrorCodeConstants.java @@ -86,6 +86,7 @@ public interface ErrorCodeConstants { ErrorCode USER_CHARACTER_NOT_EXISTS = new ErrorCode(1_001_202_012, "用户人设管理不存在"); ErrorCode USER_THEMES_NOT_EXISTS = new ErrorCode(1_001_202_013, "用户主题不存在"); ErrorCode TENANT_BALANCE_NOT_EXISTS = new ErrorCode(1_001_202_014, "租户余额不存在"); + ErrorCode TENANT_BALANCE_TRANSACTION_NOT_EXISTS = new ErrorCode(1_001_202_015, "租户积分记录不存在"); }