From b415a7d50caf3feb4748824dd56acdff5d3526a9 Mon Sep 17 00:00:00 2001 From: hokli <2629910752@qq.com> Date: Fri, 4 Jul 2025 18:08:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A4=BC=E5=8C=85=E5=90=8E=E5=8F=B0fixed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../packcenter/UserUsePackRecordAdminVo.java | 35 +++++++ .../UserUsePackRecordAdminService.java | 95 +++++++++++++++++++ .../packcenter/PackInfoAdminController.java | 4 + .../UserPackRecordAdminController.java | 6 +- .../UserUsePackRecordAdminController.java | 36 +++++++ .../model/packcenter/UserUsePackRecord.java | 11 ++- 6 files changed, 181 insertions(+), 6 deletions(-) create mode 100644 accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/packcenter/UserUsePackRecordAdminVo.java create mode 100644 accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/packcenter/UserUsePackRecordAdminService.java create mode 100644 accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/UserUsePackRecordAdminController.java diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/packcenter/UserUsePackRecordAdminVo.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/packcenter/UserUsePackRecordAdminVo.java new file mode 100644 index 000000000..c4eeb1607 --- /dev/null +++ b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/packcenter/UserUsePackRecordAdminVo.java @@ -0,0 +1,35 @@ +package com.accompany.admin.vo.packcenter; + +import com.accompany.core.annotation.I18n; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class UserUsePackRecordAdminVo { + @ApiModelProperty(value = "ID") + private Long id; + private Long uid; + private Integer partitionId; + @ApiModelProperty("分区") + private String partitionDesc; + @ApiModelProperty(value = "平台ID") + private Long erbanNo; + private String nick; + private Long targetUid; + @ApiModelProperty(value = "赠送平台ID") + private Long targeErbanNo; + private String targeNick; + @ApiModelProperty(value = "礼包名称") + @I18n(className = "PackInfo") + private String packName; + @ApiModelProperty(value = "赠送礼包ID") + private Integer packId; + @ApiModelProperty(value = "数量") + private Integer packNum; + @ApiModelProperty(value = "使用时间") + private Date createTime; + @ApiModelProperty(value = "使用类型.1-自己用,2-赠送") + private Byte useType; +} diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/packcenter/UserUsePackRecordAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/packcenter/UserUsePackRecordAdminService.java new file mode 100644 index 000000000..5bd8dbe09 --- /dev/null +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/packcenter/UserUsePackRecordAdminService.java @@ -0,0 +1,95 @@ +package com.accompany.admin.service.packcenter; + +import com.accompany.admin.vo.packcenter.UserUsePackRecordAdminVo; +import com.accompany.business.model.packcenter.PackInfo; +import com.accompany.business.model.packcenter.UserUsePackRecord; +import com.accompany.business.service.packcenter.PackInfoService; +import com.accompany.business.service.packcenter.UserUsePackRecordService; +import com.accompany.business.service.user.UsersService; +import com.accompany.common.result.BusiResult; +import com.accompany.common.result.PageResult; +import com.accompany.core.enumeration.PartitionEnum; +import com.accompany.core.exception.AdminServiceException; +import com.accompany.core.model.Users; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class UserUsePackRecordAdminService { + @Autowired + private UserUsePackRecordService userUsePackRecordService; + @Autowired + private PackInfoService packInfoService; + @Autowired + private UsersService usersService; + public BusiResult> list(Integer pageNo, Integer pageSize, Integer packId, Long erbanNo, Long targetErbanNo) { + PageResult pageResult = new PageResult<>(); + Page page = new Page<>(pageNo, pageSize); + Long uid = null, targetUid = null; + if (erbanNo != null) { + Users user = usersService.getUserByErbanNo(erbanNo); + if (user == null) { + throw new AdminServiceException("ID:" + erbanNo + ",不存在"); + } + uid = user.getUid(); + } + if (targetErbanNo != null) { + Users user = usersService.getUserByErbanNo(targetErbanNo); + if (user == null) { + throw new AdminServiceException("ID:" + targetErbanNo + ",不存在"); + } + targetUid = user.getUid(); + } + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(uid != null, UserUsePackRecord::getUid, uid); + wrapper.eq(packId != null, UserUsePackRecord::getPackId, packId); + wrapper.eq(targetUid != null, UserUsePackRecord::getTargetUid, targetUid); + List list = userUsePackRecordService.list(page, wrapper); + List resultList = new ArrayList<>(); + pageResult.setRows(resultList); + pageResult.setTotal((int)page.getTotal()); + if (CollectionUtils.isEmpty(list)) { + return BusiResult.success(pageResult); + } + List uids = list.stream().map(UserUsePackRecord::getUid).collect(Collectors.toList()); + List targetUids = list.stream().map(UserUsePackRecord::getTargetUid).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(targetUids)) { + uids.addAll(targetUids); + } + List packIds = list.stream().map(UserUsePackRecord::getPackId).collect(Collectors.toList()); + Map usersMap = usersService.getUsersMapByUids(uids); + Map packInfoMap = packInfoService.mapByPackIds(packIds); + for (UserUsePackRecord packRecord : list) { + UserUsePackRecordAdminVo vo = new UserUsePackRecordAdminVo(); + BeanUtils.copyProperties(packRecord, vo); + Users users = usersMap.get(packRecord.getUid()); + if (users != null) { + vo.setErbanNo(users.getErbanNo()); + vo.setNick(users.getNick()); + } + users = usersMap.get(packRecord.getTargetUid()); + if (users != null) { + vo.setTargeErbanNo(users.getErbanNo()); + vo.setTargeNick(users.getNick()); + vo.setPartitionId(users.getPartitionId()); + vo.setPartitionDesc(PartitionEnum.getByPartitionId(users.getPartitionId()).getDesc()); + } + PackInfo packInfo = packInfoMap.get(packRecord.getPackId()); + if (packInfo != null) { + vo.setPackName(packInfo.getPackName()); + } + resultList.add(vo); + } + return BusiResult.success(pageResult); + } +} diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/PackInfoAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/PackInfoAdminController.java index d0c1ec298..9ae0d8014 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/PackInfoAdminController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/PackInfoAdminController.java @@ -30,6 +30,10 @@ public class PackInfoAdminController extends BaseController { @Autowired private AdminLogService adminLogService; + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "第几页", required = true, dataType = "Integer", paramType = "query"), + @ApiImplicitParam(name = "pageSize", value = "每页大小", required = true, dataType = "Integer", paramType = "query") + }) @ApiOperation(value = "礼包配置列表", httpMethod = "GET") @GetMapping("/configList") public BusiResult> list(Integer pageNo, Integer pageSize) { diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/UserPackRecordAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/UserPackRecordAdminController.java index 6168b4cca..39340cf32 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/UserPackRecordAdminController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/UserPackRecordAdminController.java @@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController; @Api(tags = "礼包发放记录", value = "礼包发放记录") @RestController -@RequestMapping("/admin/userPackRecord") +@RequestMapping("/admin/userPack") public class UserPackRecordAdminController extends BaseController { @Autowired @@ -28,7 +28,9 @@ public class UserPackRecordAdminController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "packId", value = "礼包id", required = true), - @ApiImplicitParam(name = "erbanNo", value = "用户id", required = true) + @ApiImplicitParam(name = "erbanNo", value = "用户id", required = true), + @ApiImplicitParam(name = "pageNo", value = "第几页", required = true, dataType = "Integer", paramType = "query"), + @ApiImplicitParam(name = "pageSize", value = "每页大小", required = true, dataType = "Integer", paramType = "query") }) @ApiOperation(value = "发放记录", httpMethod = "GET") @GetMapping("/recordList") diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/UserUsePackRecordAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/UserUsePackRecordAdminController.java new file mode 100644 index 000000000..2db507d0e --- /dev/null +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/packcenter/UserUsePackRecordAdminController.java @@ -0,0 +1,36 @@ +package com.accompany.admin.controller.packcenter; + +import com.accompany.admin.service.packcenter.UserUsePackRecordAdminService; +import com.accompany.admin.vo.packcenter.UserUsePackRecordAdminVo; +import com.accompany.common.result.BusiResult; +import com.accompany.common.result.PageResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags = "礼包使用记录", value = "礼包使用记录") +@RestController +@RequestMapping("/admin/userUsePack") +public class UserUsePackRecordAdminController { + @Autowired + private UserUsePackRecordAdminService userUsePackRecordAdminService; + + + @ApiImplicitParams({ + @ApiImplicitParam(name = "packId", value = "礼包id", required = true), + @ApiImplicitParam(name = "erbanNo", value = "用户id", required = true), + @ApiImplicitParam(name = "targetErbanNo", value = "接收用户id", required = true), + @ApiImplicitParam(name = "pageNo", value = "第几页", required = true, dataType = "Integer", paramType = "query"), + @ApiImplicitParam(name = "pageSize", value = "每页大小", required = true, dataType = "Integer", paramType = "query") + }) + @ApiOperation(value = "礼包使用记录", httpMethod = "GET") + @GetMapping("/recordList") + public BusiResult> list(Integer pageNo, Integer pageSize, Integer packId, Long erbanNo, Long targetErbanNo) { + return userUsePackRecordAdminService.list(pageNo, pageSize, packId, erbanNo, targetErbanNo); + } +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/packcenter/UserUsePackRecord.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/packcenter/UserUsePackRecord.java index a5ef423e9..616601e80 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/packcenter/UserUsePackRecord.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/packcenter/UserUsePackRecord.java @@ -1,11 +1,13 @@ package com.accompany.business.model.packcenter; +import com.accompany.core.mybatis.typehandler.IntegerListTypeHandler; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import java.io.Serializable; -import java.util.Date; +import java.util.List; /** * 用户使用礼包记录实体类 @@ -30,7 +32,7 @@ public class UserUsePackRecord implements Serializable { /** * 用户uid */ - private Long target_uid; + private Long targetUid; private Long userPackId; /** @@ -40,7 +42,8 @@ public class UserUsePackRecord implements Serializable { /** * 礼包奖励id */ - private String numberList; + @TableField(typeHandler = IntegerListTypeHandler.class) + private List numberList; /** * 礼包数量 */ @@ -52,7 +55,7 @@ public class UserUsePackRecord implements Serializable { /** * 创建时间 */ - private Date createTime; + private Byte createTime; }