diff --git a/luoo_user/src/main/java/com/luoo/user/controller/PointController.java b/luoo_user/src/main/java/com/luoo/user/controller/PointController.java index 9159e3e..72cc04e 100644 --- a/luoo_user/src/main/java/com/luoo/user/controller/PointController.java +++ b/luoo_user/src/main/java/com/luoo/user/controller/PointController.java @@ -240,6 +240,17 @@ public class PointController { return Result.success(); } + @ApiOperation(value = "2.6.获取用户邀请记录(APP)") + @GetMapping("/log/invitation") + @GlobalInterceptor(checkAppUserLogin = true) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "token", required = true, dataType = "String", paramType = "header") + }) + public Result getUserInvitationLog( + @RequestHeader(value = "Authorization", required = true) String authorization) { + return Result.success(userPointLogService.getUserInvitationLog(authorization)); + } + @ApiOperation(value = "3.1.添加抽奖(PC)", notes = "仅限admin权限用户调用") @PostMapping("/lottery/add") diff --git a/luoo_user/src/main/java/com/luoo/user/dao/UserPointLogDao.java b/luoo_user/src/main/java/com/luoo/user/dao/UserPointLogDao.java index f77aeb4..3f17238 100644 --- a/luoo_user/src/main/java/com/luoo/user/dao/UserPointLogDao.java +++ b/luoo_user/src/main/java/com/luoo/user/dao/UserPointLogDao.java @@ -23,4 +23,6 @@ public interface UserPointLogDao extends JpaRepository, Jp public List findDaysByUserIdAndTaskPointId(String userId, String pointId, Integer days); public List findUserPointLogsByUserIdAndTaskPointId(String userId, String taskPointId); + + public List findUserPointLogByTaskPointIdInAndUserId(List taskPointIds, String userId); } diff --git a/luoo_user/src/main/java/com/luoo/user/service/UserPointLogService.java b/luoo_user/src/main/java/com/luoo/user/service/UserPointLogService.java index 612f4ea..c977537 100644 --- a/luoo_user/src/main/java/com/luoo/user/service/UserPointLogService.java +++ b/luoo_user/src/main/java/com/luoo/user/service/UserPointLogService.java @@ -9,6 +9,7 @@ import com.luoo.user.dao.UserPointLogDao; import com.luoo.user.dto.point.DrawDTO; import com.luoo.user.dto.point.UserPointLogSearchDto; import com.luoo.user.pojo.*; +import com.luoo.user.vo.point.UserInvitationLogVO; import com.luoo.user.vo.point.UserPointLogVO; import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.Projections; @@ -23,6 +24,7 @@ import enums.PointEnums; import java.io.IOException; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -124,16 +126,15 @@ public class UserPointLogService { /** * 通过任务添加积分明细,直接使用userId - * */ public void addByTaskDailyAndUserId(String taskPointId, String userId) { UserPointLog userPointLog = UserPointLog.builder() - .id(String.valueOf(idWorker.nextId())) - .type(PointEnums.TASK_POINT_TYPE_ADD.getCode()) - .createUser(userId) - .taskPointId(taskPointId) - .userId(userId) - .build(); + .id(String.valueOf(idWorker.nextId())) + .type(PointEnums.TASK_POINT_TYPE_ADD.getCode()) + .createUser(userId) + .taskPointId(taskPointId) + .userId(userId) + .build(); ObjectMapper objectMapper = new ObjectMapper(); @@ -184,8 +185,8 @@ public class UserPointLogService { if (taskPointId != null) { TaskPoint taskPoint = taskPointService.getTaskPoint(taskPointId); - if(taskPoint == null) { - return ; + if (taskPoint == null) { + return; } // 获取积分任务类型 @@ -227,7 +228,7 @@ public class UserPointLogService { // 调整用户积分 UserInfo userInfo = userInfoDao.findById(drawDTO.getUserId()).get(); int point = userInfo.getPoint() == null ? 0 : userInfo.getPoint(); - if(point < drawDTO.getScore()) { + if (point < drawDTO.getScore()) { throw new BizException(ErrorConstants.POINT_NOT_ENOUGH); } userInfo.setPoint(point - drawDTO.getScore()); @@ -301,6 +302,27 @@ public class UserPointLogService { addByTaskDaily(TaskPointIdConstants.SHARE_JOURNAL, token); } + public UserInvitationLogVO getUserInvitationLog(String token) { + UserLoginDto userLoginDto = jwtUtil.getUser(); + + String userId = userLoginDto.getUserId(); + + List taskPointIds = new ArrayList<>(); + taskPointIds.add(TaskPointIdConstants.NEW_USER_INVITE); + taskPointIds.add(TaskPointIdConstants.INVITE_USER_3); + taskPointIds.add(TaskPointIdConstants.INVITE_USER_6); + taskPointIds.add(TaskPointIdConstants.INVITE_USER_10); + taskPointIds.add(TaskPointIdConstants.INVITE_USER_20); + + List userPointLogByTaskPointIdInAndUserId = userPointLogDao.findUserPointLogByTaskPointIdInAndUserId(taskPointIds, userId); + UserInvitationLogVO userInvitationLogVO = new UserInvitationLogVO(); + userInvitationLogVO.setNum(userPointLogByTaskPointIdInAndUserId.isEmpty() ? 0 : userPointLogByTaskPointIdInAndUserId.size()); + userInvitationLogVO.setPoint(userPointLogByTaskPointIdInAndUserId.isEmpty() ? 0 : + userPointLogByTaskPointIdInAndUserId.stream().map(UserPointLog::getScore).reduce(0, Integer::sum) + ); + return userInvitationLogVO; + } + /** * 分页查询用户积分列表 * @@ -310,8 +332,8 @@ public class UserPointLogService { * @return 用户积分列表 */ public PageResult getUserPointLogList(String token, - UserPointLogSearchDto userPointLogSearchDto, Integer page, - Integer size) { + UserPointLogSearchDto userPointLogSearchDto, Integer page, + Integer size) { BooleanBuilder booleanBuilder = new BooleanBuilder(); QUserPointLog qUserPointLog = QUserPointLog.userPointLog; @@ -327,15 +349,15 @@ public class UserPointLogService { List userPointLogPage = jpaQueryFactory.select( Projections.constructor(UserPointLogVO.class, - qUserPointLog.id, - qUserPointLog.score, - qUserPointLog.type, - qUserPointLog.userId, - qUserPointLog.taskPointId, - qUserPointLog.description, - qUserPointLog.createTime, - formattedCreateTime.as("createMonth") - )) + qUserPointLog.id, + qUserPointLog.score, + qUserPointLog.type, + qUserPointLog.userId, + qUserPointLog.taskPointId, + qUserPointLog.description, + qUserPointLog.createTime, + formattedCreateTime.as("createMonth") + )) .from(qUserPointLog) .where(booleanBuilder) .orderBy(qUserPointLog.createTime.desc()) @@ -349,14 +371,14 @@ public class UserPointLogService { return new PageResult<>(totalElements, userPointLogPage); } - public void checkCondition(BooleanBuilder booleanBuilder, QUserPointLog qUserPointLog, UserPointLogSearchDto userPointLogSearchDto){ - if(!StringUtils.isEmpty(userPointLogSearchDto.getUserId())) { + public void checkCondition(BooleanBuilder booleanBuilder, QUserPointLog qUserPointLog, UserPointLogSearchDto userPointLogSearchDto) { + if (!StringUtils.isEmpty(userPointLogSearchDto.getUserId())) { booleanBuilder.and(qUserPointLog.createUser.eq(userPointLogSearchDto.getUserId())); } - if(userPointLogSearchDto.getType() != null) { + if (userPointLogSearchDto.getType() != null) { booleanBuilder.and(qUserPointLog.type.eq(userPointLogSearchDto.getType())); } - if(!StringUtils.isEmpty(userPointLogSearchDto.getCreateMonth())) { + if (!StringUtils.isEmpty(userPointLogSearchDto.getCreateMonth())) { // 判断userPointLogSearchDto.getCreateMonth() 是否是当月时间 LocalDate now = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMM"); @@ -365,7 +387,7 @@ public class UserPointLogService { // 判断是否是当前月份 boolean isCurrentMonth = userPointLogSearchDto.getCreateMonth().equals(currentMonth); - if(!isCurrentMonth) { + if (!isCurrentMonth) { // 不是当前月份,仅展示传入月份的记录 StringExpression formattedCreateTime = Expressions.stringTemplate( diff --git a/luoo_user/src/main/java/com/luoo/user/vo/point/UserInvitationLogVO.java b/luoo_user/src/main/java/com/luoo/user/vo/point/UserInvitationLogVO.java new file mode 100644 index 0000000..415ec88 --- /dev/null +++ b/luoo_user/src/main/java/com/luoo/user/vo/point/UserInvitationLogVO.java @@ -0,0 +1,22 @@ +package com.luoo.user.vo.point; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @program: luoo_parent + * @description: 用户邀请详情 + * @author: yawei.huang + * @create: 2024-09-23 08:14 + **/ +@Data +public class UserInvitationLogVO implements Serializable { + + @ApiModelProperty(value = "邀请人数") + private Integer num; + + @ApiModelProperty(value = "已获取的分数") + private Integer point; +}