Commit 82522963 by Jony.L

首页统计1.0

parent d74be380
......@@ -27,4 +27,14 @@ public interface ApiCallLogMapper extends BaseMapperX<ApiCallLogDO> {
.orderByDesc(ApiCallLogDO::getId));
}
default List<ApiCallLogDO> selectList(ApiCallLogPageReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ApiCallLogDO>()
.eqIfPresent(ApiCallLogDO::getUserId, reqVO.getUserId())
.eqIfPresent(ApiCallLogDO::getApiId, reqVO.getApiId())
.eqIfPresent(ApiCallLogDO::getResponseStatus, reqVO.getResponseStatus())
.betweenIfPresent(ApiCallLogDO::getCallTime, reqVO.getCallTime())
.betweenIfPresent(ApiCallLogDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(ApiCallLogDO::getId));
}
}
\ No newline at end of file
......@@ -22,6 +22,20 @@ import com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*;
@Mapper
public interface ApiOrderMapper extends BaseMapperX<ApiOrderDO> {
default List<ApiOrderDO> selectList(ApiOrderPageReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ApiOrderDO>()
.eqIfPresent(ApiOrderDO::getUserId, reqVO.getUserId())
.eqIfPresent(ApiOrderDO::getApiId, reqVO.getApiId())
.eqIfPresent(ApiOrderDO::getPackageId, reqVO.getPackageId())
.eqIfPresent(ApiOrderDO::getOrderNo, reqVO.getOrderNo())
.eqIfPresent(ApiOrderDO::getStatus, reqVO.getStatus())
.eqIfPresent(ApiOrderDO::getPayOrderId, reqVO.getPayOrderId())
.betweenIfPresent(ApiOrderDO::getPayTime, reqVO.getPayTime())
.eqIfPresent(ApiOrderDO::getPayChannelCode, reqVO.getPayChannelCode())
.betweenIfPresent(ApiOrderDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(ApiOrderDO::getId));
}
default PageResult<ApiOrderDO> selectPage(ApiOrderPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ApiOrderDO>()
.eqIfPresent(ApiOrderDO::getUserId, reqVO.getUserId())
......
......@@ -59,4 +59,10 @@ public interface ApiCallLogService {
*/
PageResult<ApiCallLogDO> getApiCallLogPage(ApiCallLogPageReqVO pageReqVO);
/**
* 获得API 调用日志列表
* @param apiCallLogPageReqVO
* @return
*/
List<ApiCallLogDO> getApiCallLogList(ApiCallLogPageReqVO apiCallLogPageReqVO);
}
\ No newline at end of file
......@@ -82,4 +82,9 @@ public class ApiCallLogServiceImpl implements ApiCallLogService {
return apiCallLogMapper.selectPage(pageReqVO);
}
@Override
public List<ApiCallLogDO> getApiCallLogList(ApiCallLogPageReqVO queryVO){
return apiCallLogMapper.selectList(queryVO);
}
}
\ No newline at end of file
......@@ -58,6 +58,14 @@ public interface ApiOrderService {
ApiOrderDO getApiOrder(Long id);
/**
* 获得api订单List
*
* @param reqVO
* @return
*/
List<ApiOrderDO> getOrderList(ApiOrderPageReqVO reqVO);
/**
* 获得api订单分页
*
* @param pageReqVO 分页查询
......
......@@ -130,6 +130,11 @@ public class ApiOrderServiceImpl implements ApiOrderService {
}
@Override
public List<ApiOrderDO> getOrderList(ApiOrderPageReqVO reqVO) {
return apiOrderMapper.selectList(reqVO);
}
@Override
public PageResult<ApiOrderDO> getApiOrderPage(ApiOrderPageReqVO pageReqVO) {
return apiOrderMapper.selectPage(pageReqVO);
}
......
......@@ -20,6 +20,18 @@
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-apihub</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-trade</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-product</artifactId>
<version>${revision}</version>
</dependency>
......
package com.luhu.computility.module.biz.controller.admin.home;
import com.luhu.computility.framework.common.pojo.CommonResult;
import com.luhu.computility.module.apihub.service.apiorder.ApiOrderService;
import com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexApiCallsRespVO;
import com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexOrdersCountRespVO;
import com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexUsersCountRespVO;
import com.luhu.computility.module.biz.service.home.HomeIndexService;
import com.luhu.computility.module.member.service.user.MemberUserService;
import com.luhu.computility.module.trade.service.order.TradeOrderQueryService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import static com.luhu.computility.framework.common.pojo.CommonResult.success;
/**
* @Author: jony
* @Date : 2025/9/10 16:30
* @VERSION v1.0
*/
@Tag(name = "管理后台 - 后台管理首页E-chart统计")
@RestController
@RequestMapping("/index/count")
@Validated
public class HomeIndexController {
@Resource
HomeIndexService homeIndexService;
@GetMapping("/getRegisterUsersCount")
@Operation(summary = "获取注册用户数统计")
public CommonResult<List<HomeIndexUsersCountRespVO>> getRegisterUsersCount() {
return success(homeIndexService.getRegisterUsersCount());
}
@GetMapping("/getUsersData")
@Operation(summary = "获取用户数统计")
public CommonResult<List<HomeIndexUsersCountRespVO>> getHomeIndexUsersCount() {
return success(homeIndexService.getUsersData());
}
@GetMapping("/getOrdersData")
@Operation(summary = "获取订单数据")
public CommonResult<List<HomeIndexOrdersCountRespVO>> getOrdersData() {
return success(homeIndexService.getOrdersData());
}
@GetMapping("/getApiCallsData")
@Operation(summary = "获取api调用次数数据")
public CommonResult<List<HomeIndexApiCallsRespVO>> getApiCallsData(){
return success(homeIndexService.getApiCallsData());
}
}
package com.luhu.computility.module.biz.controller.admin.home.vo;
import lombok.Data;
/**
* @Author: jony
* @Date : 2025/9/11 15:06
* @VERSION v1.0
*/
@Data
public class HomeIndexApiCallsRespVO {
private String countDate;
private Integer callsCount;
}
package com.luhu.computility.module.biz.controller.admin.home.vo;
import lombok.Data;
/**
* @Author: jony
* @Date : 2025/9/11 10:35
* @VERSION v1.0
*/
@Data
public class HomeIndexOrdersCountRespVO {
private String countDate;
private Integer computeOrdersCount; //算力订单数量
private Integer apiOrdersCount; //api订单数量
private Integer totalOrdersCount;//总订单数量
private Integer computeOrdersAmount;//算力订单金额
private Integer apiOrdersAmount;//api订单金额
private Integer totalOrdersAmount;//总订单金额
}
package com.luhu.computility.module.biz.controller.admin.home.vo;
import lombok.Data;
/**
* @Author: jony
* @Date : 2025/9/10 17:00
* @VERSION v1.0
*/
@Data
public class HomeIndexUsersCountRespVO {
private Integer usersCount;
private String countDate;
}
package com.luhu.computility.module.biz.service.home;
import com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexApiCallsRespVO;
import com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexOrdersCountRespVO;
import com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexUsersCountRespVO;
import java.util.List;
/**
* @Author: jony
* @Date : 2025/9/10 14:55
* @VERSION v1.0
*/
public interface HomeIndexService {
List<HomeIndexUsersCountRespVO> getRegisterUsersCount();
List<HomeIndexUsersCountRespVO> getUsersData();
List<HomeIndexOrdersCountRespVO> getOrdersData();
List<HomeIndexApiCallsRespVO> getApiCallsData();
}
package com.luhu.computility.module.biz.service.home;
import cn.hutool.core.util.ObjectUtil;
import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.module.apihub.controller.admin.apicalllog.vo.ApiCallLogPageReqVO;
import com.luhu.computility.module.apihub.controller.admin.apiorder.vo.ApiOrderPageReqVO;
import com.luhu.computility.module.apihub.dal.dataobject.apicalllog.ApiCallLogDO;
import com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO;
import com.luhu.computility.module.apihub.enums.ApiOrderStatus;
import com.luhu.computility.module.apihub.service.apicalllog.ApiCallLogService;
import com.luhu.computility.module.apihub.service.apiorder.ApiOrderService;
import com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexApiCallsRespVO;
import com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexOrdersCountRespVO;
import com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexUsersCountRespVO;
import com.luhu.computility.module.member.controller.admin.user.vo.MemberUserPageReqVO;
import com.luhu.computility.module.member.dal.dataobject.user.MemberUserDO;
import com.luhu.computility.module.member.service.user.MemberUserService;
import com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderPageReqVO;
import com.luhu.computility.module.trade.dal.dataobject.order.TradeOrderDO;
import com.luhu.computility.module.trade.enums.order.TradeOrderStatusEnum;
import com.luhu.computility.module.trade.service.order.TradeOrderQueryService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author: jony
* @Date : 2025/9/10 14:55
* @VERSION v1.0
*/
@Service
@Validated
public class HomeIndexServiceImpl implements HomeIndexService {
@Resource
MemberUserService memberUserService;
@Resource
TradeOrderQueryService tradeOrderQueryService;
@Resource
ApiOrderService apiOrderService;
@Resource
ApiCallLogService apiCallLogService;
@Override
public List<HomeIndexUsersCountRespVO> getRegisterUsersCount() {
MemberUserPageReqVO queryVO = new MemberUserPageReqVO();
LocalDate yesterday = LocalDate.now().minusDays(1); // 昨天(日期)
LocalDate startDate = yesterday.minusDays(6);
LocalDateTime startDateTime = startDate.atStartOfDay();
LocalDateTime endDateTime = yesterday.atTime(23, 59, 59, 999_999_999);
//先查出七天的总数据
LocalDateTime[] dateTimePeriod = new LocalDateTime[2];
dateTimePeriod[0] = startDateTime;
dateTimePeriod[1] = endDateTime;
queryVO.setCreateTime(dateTimePeriod);
PageResult<MemberUserDO> userPage = memberUserService.getUserPage(queryVO);
List<MemberUserDO> userList = userPage.getList();
Map<LocalDate, Long> dateCountMap
= userList.stream().collect(
Collectors.groupingBy(user ->
user.getCreateTime().toLocalDate(), Collectors.counting()));
return dateCountMap.entrySet().stream().map(entry -> {
HomeIndexUsersCountRespVO respVO = new HomeIndexUsersCountRespVO();
respVO.setUsersCount((int) (long) entry.getValue());
respVO.setCountDate(ObjectUtil.toString(entry.getKey()));
return respVO;
}).collect(Collectors.toList());
}
@Override
public List<HomeIndexUsersCountRespVO> getUsersData() {
MemberUserPageReqVO queryVO = new MemberUserPageReqVO();
LocalDate yesterday = LocalDate.now().minusDays(1);
LocalDate startDate = yesterday.minusDays(6); // 近7天:startDate 到 yesterday
// 1. 先查询截至昨天的所有用户(用于计算累计值)
LocalDateTime[] allTimePeriod = new LocalDateTime[2];
allTimePeriod[0] = LocalDate.of(1970, 1, 1).atStartOfDay(); // 最早时间
allTimePeriod[1] = yesterday.atTime(23, 59, 59, 999_999_999); // 昨天结束
queryVO.setCreateTime(allTimePeriod);
List<MemberUserDO> allUserList = memberUserService.getUserList(queryVO);
// 按日期分组:统计“截至当天”的总用户数(累计值)
Map<LocalDate, Long> dailyTotalMap = new HashMap<>();
// 遍历7天的每一天(从最早的一天开始)
for (int i = 0; i < 7; i++) {
LocalDate currentDate = startDate.plusDays(i);
// 计算截至currentDate的总用户数:统计所有注册日期<=currentDate的用户
long currentTotal = allUserList.stream()
.filter(user -> user.getCreateTime().toLocalDate().isBefore(currentDate.plusDays(1)))
.count();
dailyTotalMap.put(currentDate, currentTotal);
}
//构建结果列表
List<HomeIndexUsersCountRespVO> resultList = new ArrayList<>();
for (int i = 0; i < 7; i++) {
LocalDate currentDate = startDate.plusDays(i);
HomeIndexUsersCountRespVO respVO = new HomeIndexUsersCountRespVO();
respVO.setCountDate(currentDate.toString());
respVO.setUsersCount((int) (long) dailyTotalMap.get(currentDate)); // 累计用户数
resultList.add(respVO);
}
//按日期排序
resultList.sort(Comparator.comparing(HomeIndexUsersCountRespVO::getCountDate));
return resultList;
}
@Override
public List<HomeIndexOrdersCountRespVO> getOrdersData() {
LocalDate yesterday = LocalDate.now().minusDays(1);
LocalDate startDate = yesterday.minusDays(6); // 近7天:startDate 到 yesterday
LocalDateTime[] allTimePeriod = new LocalDateTime[2];
allTimePeriod[0] = LocalDate.of(1970, 1, 1).atStartOfDay();
allTimePeriod[1] = yesterday.atTime(23, 59, 59, 999_999_999);
TradeOrderPageReqVO allComputeQueryVO = new TradeOrderPageReqVO();
allComputeQueryVO.setCreateTime(allTimePeriod);
allComputeQueryVO.setStatus(TradeOrderStatusEnum.COMPLETED.getStatus());//只统计已完成的订单
List<TradeOrderDO> allComputeOrderList = tradeOrderQueryService.getOrderList(allComputeQueryVO);
ApiOrderPageReqVO allApiQueryVO = new ApiOrderPageReqVO();
allApiQueryVO.setCreateTime(allTimePeriod);
allApiQueryVO.setStatus(ApiOrderStatus.PAID.getValue());//只统计已支付的订单(似乎api订单没有已完成的状态)
List<ApiOrderDO> allApiOrderList = apiOrderService.getOrderList(allApiQueryVO);
//根据日期分组订单数量
Map<LocalDate, Long> dailyComputeCountMap = groupOrderByDate(allComputeOrderList);
Map<LocalDate, Long> dailyApiCountMap = groupOrderByDate(allApiOrderList);
//按日期分组统计订单金额
Map<LocalDate, Integer> dailyComputeAmountMap = groupComputeOrderByAmount(allComputeOrderList);
Map<LocalDate, Integer> dailyApiAmountMap = groupApiOrderByAmount(allApiOrderList);
//构建完整的7天数据列表
List<HomeIndexOrdersCountRespVO> resultList = new ArrayList<>();
for (int i = 0; i < 7; i++) {
LocalDate currentDate = startDate.plusDays(i);
//订单数量统计
long computeCount = dailyComputeCountMap.getOrDefault(currentDate, 0L); // 算力订单数
long apiCount = dailyApiCountMap.getOrDefault(currentDate, 0L); // API订单数
long totalCount = computeCount + apiCount;
//订单金额统计
int computeAmount = dailyComputeAmountMap.getOrDefault(currentDate, 0);
int apiAmount = dailyApiAmountMap.getOrDefault(currentDate, 0);
int totalAmount = computeAmount + apiAmount;
//封装返回VO(每个日期对应一条统计数据)
HomeIndexOrdersCountRespVO respVO = new HomeIndexOrdersCountRespVO();
respVO.setCountDate(currentDate.toString()); // 日期(格式:yyyy-MM-dd)
//订单数字段
respVO.setComputeOrdersCount((int) computeCount); // 算力订单数(long转int,订单数通常不超int范围)
respVO.setApiOrdersCount((int) apiCount); // API订单数
respVO.setTotalOrdersCount((int) totalCount); // 全部订单数
// 金额字段
respVO.setComputeOrdersAmount(computeAmount);
respVO.setApiOrdersAmount(apiAmount);
respVO.setTotalOrdersAmount(totalAmount);
resultList.add(respVO);
}
//按日期升序排序(确保返回数据从“最早一天”到“昨天”的顺序)
resultList.sort(Comparator.comparing(HomeIndexOrdersCountRespVO::getCountDate));
return resultList;
}
@Override
public List<HomeIndexApiCallsRespVO> getApiCallsData() {
LocalDate yesterday = LocalDate.now().minusDays(1);
LocalDate startDate = yesterday.minusDays(6); // 近7天:startDate 到 yesterday
LocalDateTime[] allTimePeriod = new LocalDateTime[2];
allTimePeriod[0] = LocalDate.of(1970, 1, 1).atStartOfDay();
allTimePeriod[1] = yesterday.atTime(23, 59, 59, 999_999_999);
ApiCallLogPageReqVO queryVO = new ApiCallLogPageReqVO();
queryVO.setCreateTime(allTimePeriod);
List<ApiCallLogDO> apiCallLogList = apiCallLogService.getApiCallLogList(queryVO);
Map<LocalDate, Long> dailyApiCallsMap =
apiCallLogList.stream()
.collect(Collectors.groupingBy(apiCallLog->
apiCallLog.getCreateTime().toLocalDate(), Collectors.counting()));
List<HomeIndexApiCallsRespVO> resultList = new ArrayList<>();
for (int i = 0; i < 7; i++) {
LocalDate currentDate = startDate.plusDays(i);
Long apiCallsCountCurrentDay = dailyApiCallsMap.getOrDefault(currentDate,0L);
HomeIndexApiCallsRespVO homeIndexApiCallsRespVO = new HomeIndexApiCallsRespVO();
homeIndexApiCallsRespVO.setCallsCount((int)(long)apiCallsCountCurrentDay);
homeIndexApiCallsRespVO.setCountDate(ObjectUtil.toString(currentDate));
resultList.add(homeIndexApiCallsRespVO);
}
resultList.sort(Comparator.comparing(HomeIndexApiCallsRespVO::getCountDate));
return resultList;
}
/**
* 通用工具方法:将订单列表按“创建日期”分组,统计每日订单数
*
* @param orderList 订单列表(支持TradeOrderDO、ApiOrderDO,只要有getCreateTime()方法)
* @return key=LocalDate(日期),value=当日订单数
*/
private <T> Map<LocalDate, Long> groupOrderByDate(List<T> orderList) {
// 若订单列表为空,直接返回空Map
if (CollectionUtils.isEmpty(orderList)) {
return new HashMap<>();
}
// 反射获取订单的“创建时间”
return orderList.stream()
.collect(Collectors.groupingBy(
order -> {
try {
// 调用订单对象的getCreateTime()方法,获取LocalDateTime
LocalDateTime createTime = (LocalDateTime) order.getClass()
.getMethod("getCreateTime")
.invoke(order);
return createTime.toLocalDate(); // 提取“日期”作为分组key
} catch (Exception e) {
throw new RuntimeException("订单日期提取失败", e);
}
},
Collectors.counting() // 统计每个日期的订单数量
));
}
/**
* 单独统计API订单金额
*/
private Map<LocalDate, Integer> groupApiOrderByAmount(List<ApiOrderDO> orderList) {
if (CollectionUtils.isEmpty(orderList)) {
return new HashMap<>();
}
return orderList.stream()
.collect(Collectors.groupingBy(
order -> order.getCreateTime().toLocalDate(), // 提取日期
Collectors.summingInt(ApiOrderDO::getCostPrice) // 累加costPrice
));
}
/**
* 单独统计算力订单金额(使用TradeOrderDO的payPrice字段)
*/
private Map<LocalDate, Integer> groupComputeOrderByAmount(List<TradeOrderDO> orderList) {
if (CollectionUtils.isEmpty(orderList)) {
return new HashMap<>();
}
return orderList.stream()
.collect(Collectors.groupingBy(
order -> order.getCreateTime().toLocalDate(), // 提取日期
Collectors.summingInt(TradeOrderDO::getPayPrice) // 累加payPrice
));
}
}
......@@ -24,6 +24,22 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
.eq(TradeOrderDO::getId, id).eq(TradeOrderDO::getStatus, status));
}
default List<TradeOrderDO> selectList(TradeOrderPageReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<TradeOrderDO>()
.likeIfPresent(TradeOrderDO::getNo, reqVO.getNo())
.eqIfPresent(TradeOrderDO::getUserId, reqVO.getUserId())
.eqIfPresent(TradeOrderDO::getDeliveryType, reqVO.getDeliveryType())
.eqIfPresent(TradeOrderDO::getType, reqVO.getType())
.eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus())
.eqIfPresent(TradeOrderDO::getPayChannelCode, reqVO.getPayChannelCode())
.eqIfPresent(TradeOrderDO::getTerminal, reqVO.getTerminal())
.eqIfPresent(TradeOrderDO::getLogisticsId, reqVO.getLogisticsId())
.inIfPresent(TradeOrderDO::getPickUpStoreId, reqVO.getPickUpStoreIds())
.likeIfPresent(TradeOrderDO::getPickUpVerifyCode, reqVO.getPickUpVerifyCode())
.betweenIfPresent(TradeOrderDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(TradeOrderDO::getId));
}
default TradeOrderDO selectByIdAndUserId(Long id, Long userId) {
return selectOne(TradeOrderDO::getId, id, TradeOrderDO::getUserId, userId);
}
......
......@@ -59,6 +59,14 @@ public interface TradeOrderQueryService {
List<TradeOrderDO> getOrderList(Collection<Long> ids);
/**
* 获得订单列表
*
* @param queryVO
* @return
*/
List<TradeOrderDO> getOrderList(TradeOrderPageReqVO queryVO);
/**
* 【管理员】获得交易订单分页
*
* @param reqVO 分页请求
......
......@@ -88,6 +88,11 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
}
@Override
public List<TradeOrderDO> getOrderList(TradeOrderPageReqVO reqVO) {
return tradeOrderMapper.selectList(reqVO);
}
@Override
public PageResult<TradeOrderDO> getOrderPage(TradeOrderPageReqVO reqVO) {
// 根据用户查询条件构建用户编号列表
Set<Long> userIds = buildQueryConditionUserIds(reqVO);
......
......@@ -31,6 +31,17 @@ public interface MemberUserMapper extends BaseMapperX<MemberUserDO> {
.likeIfPresent(MemberUserDO::getNickname, nickname));
}
default List<MemberUserDO> selectList(MemberUserPageReqVO reqVO){
return selectList(new LambdaQueryWrapperX<MemberUserDO>()
.likeIfPresent(MemberUserDO::getMobile, reqVO.getMobile())
.betweenIfPresent(MemberUserDO::getLoginDate, reqVO.getLoginDate())
.likeIfPresent(MemberUserDO::getNickname, reqVO.getNickname())
.betweenIfPresent(MemberUserDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(MemberUserDO::getLevelId, reqVO.getLevelId())
.eqIfPresent(MemberUserDO::getGroupId, reqVO.getGroupId())
.orderByDesc(MemberUserDO::getId));
}
default PageResult<MemberUserDO> selectPage(MemberUserPageReqVO reqVO) {
// 处理 tagIds 过滤条件
String tagIdSql = "";
......
......@@ -83,6 +83,13 @@ public interface MemberUserService {
List<MemberUserDO> getUserList(Collection<Long> ids);
/**
* 查询用户
* @param pageReqVO
* @return
*/
List<MemberUserDO> getUserList(MemberUserPageReqVO pageReqVO);
/**
* 【会员】修改基本信息
*
* @param userId 用户编号
......
......@@ -141,6 +141,11 @@ public class MemberUserServiceImpl implements MemberUserService {
}
@Override
public List<MemberUserDO> getUserList(MemberUserPageReqVO pageReqVO){
return memberUserMapper.selectList(pageReqVO);
}
@Override
public void updateUser(Long userId, AppMemberUserUpdateReqVO reqVO) {
MemberUserDO updateObj = BeanUtils.toBean(reqVO, MemberUserDO.class).setId(userId);
memberUserMapper.updateById(updateObj);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment