From e6a4cf882a557be5b8553a9513ad11b69d3ed2f6 Mon Sep 17 00:00:00 2001 From: wells <123456@qq.com> Date: Sat, 8 Aug 2026 22:53:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=E8=AE=B0=E5=BD=95=EF=BC=8C?= =?UTF-8?q?=E7=BA=A2=E5=8C=85=E8=AE=B0=E5=BD=95=E6=9F=A5=E7=9C=8B=E5=B7=B2?= =?UTF-8?q?=E5=8F=91/=E5=B7=B2=E6=94=B6=E7=BA=A2=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tailbet/controller/UserController.java | 40 +++++++++++++++++++ .../tailbet/model/dto/PointsFlowQueryDTO.java | 16 ++++++++ .../tailbet/model/dto/UpdatePasswordDTO.java | 22 ++++++++++ .../com/tailbet/service/IPointsService.java | 7 +++- .../tailbet/service/IRedPacketService.java | 5 +++ .../service/impl/PointsServiceImpl.java | 3 +- .../service/impl/RedPacketServiceImpl.java | 12 ++++++ 7 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/tailbet/model/dto/PointsFlowQueryDTO.java create mode 100644 src/main/java/com/tailbet/model/dto/UpdatePasswordDTO.java diff --git a/src/main/java/com/tailbet/controller/UserController.java b/src/main/java/com/tailbet/controller/UserController.java index a888ba5..43e7338 100644 --- a/src/main/java/com/tailbet/controller/UserController.java +++ b/src/main/java/com/tailbet/controller/UserController.java @@ -1,16 +1,24 @@ package com.tailbet.controller; import com.tailbet.model.dto.LoginDTO; +import com.tailbet.model.dto.PageParam; +import com.tailbet.model.dto.PointsFlowQueryDTO; import com.tailbet.model.dto.RegisterDTO; import com.tailbet.model.dto.UpdatePasswordDTO; import com.tailbet.model.dto.UpdateUserDTO; +import com.tailbet.model.entity.PointsFlow; +import com.tailbet.model.entity.RedPacket; +import com.tailbet.model.entity.RedPacketRecv; import com.tailbet.model.vo.LoginUserVo; import com.tailbet.model.vo.LoginVo; import com.tailbet.model.vo.R; import com.tailbet.model.vo.UserContext; import com.tailbet.openim.OpenIMApiClient; +import com.tailbet.service.IPointsService; +import com.tailbet.service.IRedPacketService; import com.tailbet.service.IUserService; import com.tailbet.util.JwtUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -26,6 +34,8 @@ public class UserController { private final IUserService userService; private final JwtUtil jwtUtil; private final OpenIMApiClient openIMApiClient; + private final IPointsService pointsService; + private final IRedPacketService redPacketService; /** * 注册 @@ -84,6 +94,36 @@ public class UserController { } + /** + * 我的积分流水分页 + */ + @PostMapping("/points/flow") + public R> pointsFlow(@RequestBody PointsFlowQueryDTO query) { + Long userId = UserContext.getUserId(); + var page = pointsService.getFlowPage(userId, query.getType(), query.getPageNum(), query.getPageSize()); + return R.ok(page); + } + + /** + * 已发红包分页 + */ + @PostMapping("/rp/sent") + public R> sentRp(@RequestBody PageParam query) { + Long userId = UserContext.getUserId(); + var page = redPacketService.getRecords(userId, query.getPageNum(), query.getPageSize()); + return R.ok(page); + } + + /** + * 已收红包分页 + */ + @PostMapping("/rp/received") + public R> receivedRp(@RequestBody PageParam query) { + Long userId = UserContext.getUserId(); + var page = redPacketService.getReceivedRecords(userId, query.getPageNum(), query.getPageSize()); + return R.ok(page); + } + /** * 退出登录 */ diff --git a/src/main/java/com/tailbet/model/dto/PointsFlowQueryDTO.java b/src/main/java/com/tailbet/model/dto/PointsFlowQueryDTO.java new file mode 100644 index 0000000..d5b5944 --- /dev/null +++ b/src/main/java/com/tailbet/model/dto/PointsFlowQueryDTO.java @@ -0,0 +1,16 @@ +package com.tailbet.model.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 积分流水分页查询 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PointsFlowQueryDTO extends PageParam { + /** + * 类型(可选):ops_add/ops_sub/bet/award/rp_send/rp_recv + */ + private String type; +} diff --git a/src/main/java/com/tailbet/model/dto/UpdatePasswordDTO.java b/src/main/java/com/tailbet/model/dto/UpdatePasswordDTO.java new file mode 100644 index 0000000..c4c992c --- /dev/null +++ b/src/main/java/com/tailbet/model/dto/UpdatePasswordDTO.java @@ -0,0 +1,22 @@ +package com.tailbet.model.dto; + +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +/** + * 修改密码请求 + */ +@Data +public class UpdatePasswordDTO { + /** + * 原始密码 + */ + @NotEmpty(message = "oldPassword不能为空") + private String oldPassword; + + /** + * 新密码 + */ + @NotEmpty(message = "newPassword不能为空") + private String newPassword; +} diff --git a/src/main/java/com/tailbet/service/IPointsService.java b/src/main/java/com/tailbet/service/IPointsService.java index eaea4ec..7e517c2 100644 --- a/src/main/java/com/tailbet/service/IPointsService.java +++ b/src/main/java/com/tailbet/service/IPointsService.java @@ -33,6 +33,11 @@ public interface IPointsService { /** * 查询积分流水记录 + * + * @param userId 用户ID + * @param type 类型(可选,空表示全部) + * @param pageNum 页码 + * @param pageSize 每页大小 */ - Page getFlowPage(Long userId, Integer pageNum, Integer pageSize); + Page getFlowPage(Long userId, String type, Integer pageNum, Integer pageSize); } diff --git a/src/main/java/com/tailbet/service/IRedPacketService.java b/src/main/java/com/tailbet/service/IRedPacketService.java index 63d2611..4b7ca68 100644 --- a/src/main/java/com/tailbet/service/IRedPacketService.java +++ b/src/main/java/com/tailbet/service/IRedPacketService.java @@ -52,6 +52,11 @@ public interface IRedPacketService { */ Page getRecords(Long userId, Integer pageNum, Integer pageSize); + /** + * 查询已收红包记录 + */ + Page getReceivedRecords(Long userId, Integer pageNum, Integer pageSize); + /** * 查找进行中的游戏红包 */ diff --git a/src/main/java/com/tailbet/service/impl/PointsServiceImpl.java b/src/main/java/com/tailbet/service/impl/PointsServiceImpl.java index 8ba6ad2..72ff5cf 100644 --- a/src/main/java/com/tailbet/service/impl/PointsServiceImpl.java +++ b/src/main/java/com/tailbet/service/impl/PointsServiceImpl.java @@ -108,10 +108,11 @@ public class PointsServiceImpl implements IPointsService { * 查询积分流水记录 */ @Override - public Page getFlowPage(Long userId, Integer pageNum, Integer pageSize) { + public Page getFlowPage(Long userId, String type, Integer pageNum, Integer pageSize) { Page page = new Page<>(pageNum, pageSize); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PointsFlow::getUserId, userId) + .eq(type != null && !type.isEmpty(), PointsFlow::getType, type) .orderByDesc(PointsFlow::getCreateTime); return pointsFlowMapper.selectPage(page, wrapper); } diff --git a/src/main/java/com/tailbet/service/impl/RedPacketServiceImpl.java b/src/main/java/com/tailbet/service/impl/RedPacketServiceImpl.java index 8194c61..bed46b9 100644 --- a/src/main/java/com/tailbet/service/impl/RedPacketServiceImpl.java +++ b/src/main/java/com/tailbet/service/impl/RedPacketServiceImpl.java @@ -254,6 +254,18 @@ public class RedPacketServiceImpl implements IRedPacketService { return redPacketMapper.selectPage(page, wrapper); } + /** + * 查询已收红包记录 + */ + @Override + public Page getReceivedRecords(Long userId, Integer pageNum, Integer pageSize) { + Page page = new Page<>(pageNum, pageSize); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(RedPacketRecv::getUserId, userId) + .orderByDesc(RedPacketRecv::getCreateTime); + return redPacketRecvMapper.selectPage(page, wrapper); + } + /** * 查找进行中的游戏红包 */