feat(memberCenter): 积分消费和充值记录的分页

master
yang 2025-03-06 13:33:52 +08:00
parent c69d7e032f
commit a044b8c367
7 changed files with 94 additions and 37 deletions

View File

@ -1,28 +1,29 @@
package com.mcwl.web.controller.communityCenter; package com.mcwl.web.controller.communityCenter;
import com.mcwl.communityCenter.service.AIService;
import com.mcwl.communityCenter.webSocket.ChatWebSocket; import com.mcwl.communityCenter.webSocket.ChatWebSocket;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
@RequiredArgsConstructor @RequiredArgsConstructor
@RestController @RestController
@RequestMapping("/chat") @RequestMapping("/chat")
public class ChatController { public class ChatController {
private final ChatWebSocket chatWebSocket; private final AIService aiService;
/** /**
* * ai
* @param sessionId
* @throws Exception
*/ */
// @GetMapping("/switchUserMode") @GetMapping("/ai")
// public void switchUserMode(String sessionId) throws Exception { public Flux<String> switchUserMode(String msg) throws Exception {
// chatWebSocket.switchUserMode(sessionId); return aiService.getDeepSeekResponseStream(msg);
// } }

View File

@ -4,6 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
import com.mcwl.common.core.domain.AjaxResult; import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.common.core.domain.R; import com.mcwl.common.core.domain.R;
import com.mcwl.common.core.domain.entity.SysUser; import com.mcwl.common.core.domain.entity.SysUser;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.utils.SecurityUtils; import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.memberCenter.domain.*; import com.mcwl.memberCenter.domain.*;
import com.mcwl.memberCenter.domain.vo.MemberConsumeVO; import com.mcwl.memberCenter.domain.vo.MemberConsumeVO;
@ -82,33 +84,23 @@ public class MemberController {
/** /**
* *
* *
* @return * @return
*/ */
@GetMapping("getPoints") @GetMapping("getConsumePoints")
@ApiOperation(value = "获取积分消费记录") @ApiOperation(value = "获取积分消费记录")
public R<List<MemberConsumeVO>> getPoints() { public TableDataInfo getConsumePoints(@Valid @RequestBody PageDomain pageDomain) {
Long userId = SecurityUtils.getUserId();
// 会员消费记录 return memberConsumeService.getConsumePoints(pageDomain);
List<MemberConsume> memberConsumeList = memberConsumeService
.lambdaQuery()
.eq(MemberConsume::getUserId, userId)
.list();
return R.ok(BeanUtil.copyToList(memberConsumeList, MemberConsumeVO.class));
} }
/** /**
* *
*/ */
@GetMapping("getRechargePoints") @GetMapping("getRechargePoints")
@ApiOperation(value = "获取积分记录") @ApiOperation(value = "获取积分充值记录")
public R<List<RechargeRecordVO>> getRechargePoints() { public TableDataInfo getRechargePoints(@Valid @RequestBody PageDomain pageDomain) {
Long userId = SecurityUtils.getUserId();
List<RechargeRecordVO> rechargeRecordList = memberService.getRechargePoints(userId); return memberService.getRechargePoints(pageDomain);
return R.ok(rechargeRecordList);
} }

View File

@ -1,12 +1,16 @@
package com.mcwl.web.controller.personalCenter; package com.mcwl.web.controller.personalCenter;
import cn.hutool.core.bean.BeanUtil;
import com.mcwl.common.core.domain.R; import com.mcwl.common.core.domain.R;
import com.mcwl.common.core.domain.entity.SysUser; import com.mcwl.common.core.domain.entity.SysUser;
import com.mcwl.common.core.page.PageDomain; import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo; import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.utils.SecurityUtils; import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.memberCenter.domain.Member; import com.mcwl.memberCenter.domain.Member;
import com.mcwl.memberCenter.domain.MemberConsume;
import com.mcwl.memberCenter.domain.vo.MemberConsumeVO;
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
import com.mcwl.memberCenter.service.MemberService; import com.mcwl.memberCenter.service.MemberService;
import com.mcwl.myInvitation.service.ConsumeService; import com.mcwl.myInvitation.service.ConsumeService;
import com.mcwl.pay.service.OrderTradeService; import com.mcwl.pay.service.OrderTradeService;
@ -20,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;

View File

@ -1,10 +1,14 @@
package com.mcwl.memberCenter.service; package com.mcwl.memberCenter.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.memberCenter.domain.MemberConsume; import com.mcwl.memberCenter.domain.MemberConsume;
import javax.validation.Valid;
public interface MemberConsumeService extends IService<MemberConsume> { public interface MemberConsumeService extends IService<MemberConsume> {
TableDataInfo getConsumePoints(PageDomain pageDomain);
} }

View File

@ -1,6 +1,8 @@
package com.mcwl.memberCenter.service; package com.mcwl.memberCenter.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.memberCenter.domain.Member; import com.mcwl.memberCenter.domain.Member;
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO; import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
@ -47,5 +49,5 @@ public interface MemberService extends IService<Member> {
Double calculatePayment(Double unitPrice, Long promotionId); Double calculatePayment(Double unitPrice, Long promotionId);
List<RechargeRecordVO> getRechargePoints(Long userId); TableDataInfo getRechargePoints(PageDomain pageDomain);
} }

View File

@ -1,16 +1,56 @@
package com.mcwl.memberCenter.service.impl; package com.mcwl.memberCenter.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.common.constant.HttpStatus;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.memberCenter.domain.MemberConsume; import com.mcwl.memberCenter.domain.MemberConsume;
import com.mcwl.memberCenter.domain.vo.MemberConsumeVO;
import com.mcwl.memberCenter.mapper.MemberConsumeMapper; import com.mcwl.memberCenter.mapper.MemberConsumeMapper;
import com.mcwl.memberCenter.service.MemberConsumeService; import com.mcwl.memberCenter.service.MemberConsumeService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class MemberConsumeServiceImpl extends ServiceImpl<MemberConsumeMapper, MemberConsume> implements MemberConsumeService { public class MemberConsumeServiceImpl extends ServiceImpl<MemberConsumeMapper, MemberConsume> implements MemberConsumeService {
private final MemberConsumeMapper memberConsumeMapper;
@Override
public TableDataInfo getConsumePoints(PageDomain pageDomain) {
Page<MemberConsume> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
Long userId = SecurityUtils.getUserId();
LambdaQueryWrapper<MemberConsume> lqw = new LambdaQueryWrapper<>();
lqw.eq(MemberConsume::getUserId, userId);
memberConsumeMapper.selectPage(page, lqw);
List<MemberConsume> memberConsumeList = page.getRecords();
List<MemberConsumeVO> memberConsumeVOList = new ArrayList<>();
for (MemberConsume memberConsume : memberConsumeList) {
MemberConsumeVO memberConsumeVO = new MemberConsumeVO();
BeanUtil.copyProperties(memberConsume, memberConsumeVO);
memberConsumeVOList.add(memberConsumeVO);
}
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(memberConsumeVOList);
rspData.setTotal(page.getTotal());
return rspData;
}
} }

View File

@ -3,10 +3,15 @@ package com.mcwl.memberCenter.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.common.constant.HttpStatus;
import com.mcwl.common.core.domain.AjaxResult; import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.common.core.domain.entity.SysUser; import com.mcwl.common.core.domain.entity.SysUser;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.exception.ServiceException; import com.mcwl.common.exception.ServiceException;
import com.mcwl.common.utils.DateUtils;
import com.mcwl.common.utils.SecurityUtils; import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.memberCenter.domain.*; import com.mcwl.memberCenter.domain.*;
import com.mcwl.memberCenter.domain.vo.RechargeRecordVO; import com.mcwl.memberCenter.domain.vo.RechargeRecordVO;
@ -283,22 +288,30 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
@Override @Override
public List<RechargeRecordVO> getRechargePoints(Long userId) { public TableDataInfo getRechargePoints(PageDomain pageDomain) {
if (Objects.isNull(userId)) {
return Collections.emptyList(); Page<RechargeRecord> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
}
List<RechargeRecord> rechargeRecordList = rechargeRecordService.lambdaQuery() rechargeRecordService.page(page, new LambdaQueryWrapper<RechargeRecord>()
.eq(RechargeRecord::getUserId, userId) .eq(RechargeRecord::getUserId, SecurityUtils.getUserId()));
.list();
List<RechargeRecord> rechargeRecordList = page.getRecords();
List<RechargeRecordVO> rechargeRecordVOList = new ArrayList<>(); List<RechargeRecordVO> rechargeRecordVOList = new ArrayList<>();
for (RechargeRecord rechargeRecord : rechargeRecordList) { for (RechargeRecord rechargeRecord : rechargeRecordList) {
RechargeRecordVO rechargeRecordVO = BeanUtil.copyProperties(rechargeRecord, RechargeRecordVO.class); RechargeRecordVO rechargeRecordVO = new RechargeRecordVO();
BeanUtil.copyProperties(rechargeRecord, rechargeRecordVO);
rechargeRecordVO.setRechargeTime(rechargeRecord.getCreateTime()); rechargeRecordVO.setRechargeTime(rechargeRecord.getCreateTime());
rechargeRecordVOList.add(rechargeRecordVO); rechargeRecordVOList.add(rechargeRecordVO);
} }
return rechargeRecordVOList; TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(rechargeRecordVOList);
rspData.setTotal(page.getTotal());
return rspData;
} }
} }