积分记录,红包记录查看已发/已收红包

This commit is contained in:
wells
2026-08-08 22:53:52 +08:00
parent 223966b59f
commit e6a4cf882a
7 changed files with 103 additions and 2 deletions
@@ -1,16 +1,24 @@
package com.tailbet.controller; package com.tailbet.controller;
import com.tailbet.model.dto.LoginDTO; 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.RegisterDTO;
import com.tailbet.model.dto.UpdatePasswordDTO; import com.tailbet.model.dto.UpdatePasswordDTO;
import com.tailbet.model.dto.UpdateUserDTO; 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.LoginUserVo;
import com.tailbet.model.vo.LoginVo; import com.tailbet.model.vo.LoginVo;
import com.tailbet.model.vo.R; import com.tailbet.model.vo.R;
import com.tailbet.model.vo.UserContext; import com.tailbet.model.vo.UserContext;
import com.tailbet.openim.OpenIMApiClient; import com.tailbet.openim.OpenIMApiClient;
import com.tailbet.service.IPointsService;
import com.tailbet.service.IRedPacketService;
import com.tailbet.service.IUserService; import com.tailbet.service.IUserService;
import com.tailbet.util.JwtUtil; import com.tailbet.util.JwtUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -26,6 +34,8 @@ public class UserController {
private final IUserService userService; private final IUserService userService;
private final JwtUtil jwtUtil; private final JwtUtil jwtUtil;
private final OpenIMApiClient openIMApiClient; private final OpenIMApiClient openIMApiClient;
private final IPointsService pointsService;
private final IRedPacketService redPacketService;
/** /**
* 注册 * 注册
@@ -84,6 +94,36 @@ public class UserController {
} }
/**
* 我的积分流水分页
*/
@PostMapping("/points/flow")
public R<Page<PointsFlow>> 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<Page<RedPacket>> 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<Page<RedPacketRecv>> receivedRp(@RequestBody PageParam query) {
Long userId = UserContext.getUserId();
var page = redPacketService.getReceivedRecords(userId, query.getPageNum(), query.getPageSize());
return R.ok(page);
}
/** /**
* 退出登录 * 退出登录
*/ */
@@ -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;
}
@@ -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;
}
@@ -33,6 +33,11 @@ public interface IPointsService {
/** /**
* 查询积分流水记录 * 查询积分流水记录
*
* @param userId 用户ID
* @param type 类型(可选,空表示全部)
* @param pageNum 页码
* @param pageSize 每页大小
*/ */
Page<PointsFlow> getFlowPage(Long userId, Integer pageNum, Integer pageSize); Page<PointsFlow> getFlowPage(Long userId, String type, Integer pageNum, Integer pageSize);
} }
@@ -52,6 +52,11 @@ public interface IRedPacketService {
*/ */
Page<RedPacket> getRecords(Long userId, Integer pageNum, Integer pageSize); Page<RedPacket> getRecords(Long userId, Integer pageNum, Integer pageSize);
/**
* 查询已收红包记录
*/
Page<RedPacketRecv> getReceivedRecords(Long userId, Integer pageNum, Integer pageSize);
/** /**
* 查找进行中的游戏红包 * 查找进行中的游戏红包
*/ */
@@ -108,10 +108,11 @@ public class PointsServiceImpl implements IPointsService {
* 查询积分流水记录 * 查询积分流水记录
*/ */
@Override @Override
public Page<PointsFlow> getFlowPage(Long userId, Integer pageNum, Integer pageSize) { public Page<PointsFlow> getFlowPage(Long userId, String type, Integer pageNum, Integer pageSize) {
Page<PointsFlow> page = new Page<>(pageNum, pageSize); Page<PointsFlow> page = new Page<>(pageNum, pageSize);
LambdaQueryWrapper<PointsFlow> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PointsFlow> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PointsFlow::getUserId, userId) wrapper.eq(PointsFlow::getUserId, userId)
.eq(type != null && !type.isEmpty(), PointsFlow::getType, type)
.orderByDesc(PointsFlow::getCreateTime); .orderByDesc(PointsFlow::getCreateTime);
return pointsFlowMapper.selectPage(page, wrapper); return pointsFlowMapper.selectPage(page, wrapper);
} }
@@ -254,6 +254,18 @@ public class RedPacketServiceImpl implements IRedPacketService {
return redPacketMapper.selectPage(page, wrapper); return redPacketMapper.selectPage(page, wrapper);
} }
/**
* 查询已收红包记录
*/
@Override
public Page<RedPacketRecv> getReceivedRecords(Long userId, Integer pageNum, Integer pageSize) {
Page<RedPacketRecv> page = new Page<>(pageNum, pageSize);
LambdaQueryWrapper<RedPacketRecv> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(RedPacketRecv::getUserId, userId)
.orderByDesc(RedPacketRecv::getCreateTime);
return redPacketRecvMapper.selectPage(page, wrapper);
}
/** /**
* 查找进行中的游戏红包 * 查找进行中的游戏红包
*/ */