添加邀请统计接口
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package org.jiayunet.controller;
|
package org.jiayunet.controller;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.jiayunet.pojo.dto.user.InviteStatsDto;
|
||||||
import org.jiayunet.pojo.dto.user.UserInfoDto;
|
import org.jiayunet.pojo.dto.user.UserInfoDto;
|
||||||
import org.jiayunet.pojo.param.user.UserInfoParam;
|
import org.jiayunet.pojo.param.user.UserInfoParam;
|
||||||
import org.jiayunet.service.UserManageService;
|
import org.jiayunet.service.UserManageService;
|
||||||
@@ -42,4 +43,12 @@ public class UserManageController {
|
|||||||
public void cancelAccount() {
|
public void cancelAccount() {
|
||||||
userManageService.cancelAccount();
|
userManageService.cancelAccount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邀请统计(累计邀请人数、累计获得会员天数)
|
||||||
|
*/
|
||||||
|
@GetMapping("/inviteStats")
|
||||||
|
public InviteStatsDto getInviteStats() {
|
||||||
|
return userManageService.getInviteStats();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package org.jiayunet.pojo.dto.user;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户邀请统计DTO
|
||||||
|
*
|
||||||
|
* @author zk
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class InviteStatsDto {
|
||||||
|
/** 累计邀请人数 */
|
||||||
|
private Long inviteCount;
|
||||||
|
/** 累计获得会员天数 */
|
||||||
|
private Integer rewardDays;
|
||||||
|
}
|
||||||
@@ -1,12 +1,16 @@
|
|||||||
package org.jiayunet.service;
|
package org.jiayunet.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jiayunet.constant.PreRedisKeyName;
|
import org.jiayunet.constant.PreRedisKeyName;
|
||||||
|
import org.jiayunet.mapper.UserInviteMapper;
|
||||||
import org.jiayunet.mapper.UserMapper;
|
import org.jiayunet.mapper.UserMapper;
|
||||||
|
import org.jiayunet.pojo.dto.user.InviteStatsDto;
|
||||||
import org.jiayunet.pojo.dto.user.UserInfoDto;
|
import org.jiayunet.pojo.dto.user.UserInfoDto;
|
||||||
import org.jiayunet.pojo.param.user.UserInfoParam;
|
import org.jiayunet.pojo.param.user.UserInfoParam;
|
||||||
import org.jiayunet.pojo.po.User;
|
import org.jiayunet.pojo.po.User;
|
||||||
|
import org.jiayunet.pojo.po.UserInvite;
|
||||||
import org.jiayunet.tool.UserSecurityTool;
|
import org.jiayunet.tool.UserSecurityTool;
|
||||||
import org.jiayunet.tool.server.RedisServerTool;
|
import org.jiayunet.tool.server.RedisServerTool;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
@@ -15,10 +19,12 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户账号管理服务
|
* 用户账号管理服务
|
||||||
* <p>主要功能:查看个人信息、修改个人信息、注销账号</p>
|
* <p>主要功能:查看个人信息、修改个人信息、注销账号、邀请统计</p>
|
||||||
* <p>使用表:bg_user(查询/更新/逻辑删除)</p>
|
* <p>使用表:bg_user(查询/更新/逻辑删除)、bg_user_invite(邀请统计)</p>
|
||||||
* <p>使用Redis:login:token:{userId}(注销时清理登录态)</p>
|
* <p>使用Redis:login:token:{userId}(注销时清理登录态)</p>
|
||||||
*
|
*
|
||||||
* @author zk
|
* @author zk
|
||||||
@@ -30,6 +36,9 @@ public class UserManageService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserMapper userMapper;
|
private UserMapper userMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserInviteMapper userInviteMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisServerTool redisServerTool;
|
private RedisServerTool redisServerTool;
|
||||||
|
|
||||||
@@ -80,4 +89,19 @@ public class UserManageService {
|
|||||||
|
|
||||||
log.info("用户注销账号 userId:{}", userId);
|
log.info("用户注销账号 userId:{}", userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邀请统计
|
||||||
|
* <p>查询当前用户的累计邀请人数和累计获得会员天数</p>
|
||||||
|
*/
|
||||||
|
public InviteStatsDto getInviteStats() {
|
||||||
|
Long userId = UserSecurityTool.getUserId();
|
||||||
|
List<UserInvite> invites = userInviteMapper.selectList(new LambdaQueryWrapper<UserInvite>().eq(UserInvite::getInviterId, userId));
|
||||||
|
|
||||||
|
InviteStatsDto dto = new InviteStatsDto();
|
||||||
|
|
||||||
|
dto.setInviteCount((long) invites.size());
|
||||||
|
dto.setRewardDays(invites.stream().mapToInt(i -> i.getRewardDays() == null ? 0 : i.getRewardDays()).sum());
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user