新增园区内用户数接口

This commit is contained in:
2024-11-10 15:50:37 +08:00
parent 810d0c140b
commit bb2d911bb2
4 changed files with 236 additions and 215 deletions

View File

@@ -456,4 +456,10 @@ public class UserController extends BaseController {
return fail("更新失败");
}
@ApiOperation("园区内用户数")
@GetMapping("/userNumInPark")
public ApiResult<?> userNumInPark(@RequestBody UserParam param) {
return success(userService.userNumInPark(param));
}
}

View File

@@ -259,4 +259,8 @@ public class UserParam extends BaseParam {
@ApiModelProperty(value = "商户LOGO")
@QueryField(type = QueryType.EQ)
private String merchantAvatar;
@ApiModelProperty(value = "工业园区")
@TableField(exist = false)
private String park;
}

View File

@@ -113,4 +113,5 @@ public interface UserService extends IService<User>, UserDetailsService {
User getAdminByPhone(String phone);
Integer userNumInPark(UserParam param);
}

View File

@@ -2,7 +2,6 @@ package com.gxwebsoft.common.system.service.impl;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -12,10 +11,7 @@ import com.gxwebsoft.common.core.utils.CommonUtil;
import com.gxwebsoft.common.core.utils.RedisUtil;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.Company;
import com.gxwebsoft.common.system.entity.Role;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.common.system.entity.UserRole;
import com.gxwebsoft.common.system.entity.*;
import com.gxwebsoft.common.system.mapper.UserMapper;
import com.gxwebsoft.common.system.param.UserParam;
import com.gxwebsoft.common.system.service.*;
@@ -27,12 +23,9 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.gxwebsoft.common.core.constants.PlatformConstants.MP_WEIXIN;
import static com.gxwebsoft.common.core.constants.PlatformConstants.WEB;
/**
@@ -43,51 +36,53 @@ import static com.gxwebsoft.common.core.constants.PlatformConstants.WEB;
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Resource
private UserRoleService userRoleService;
@Resource
private RoleService roleService;
@Resource
private RoleMenuService roleMenuService;
@Resource
private BCryptPasswordEncoder bCryptPasswordEncoder;
@Resource
private UserService userService;
@Resource
private CompanyService companyService;
@Resource
private RedisUtil redisUtil;
@Resource
private UserRoleService userRoleService;
@Resource
private RoleService roleService;
@Resource
private RoleMenuService roleMenuService;
@Resource
private BCryptPasswordEncoder bCryptPasswordEncoder;
@Resource
private UserService userService;
@Resource
private CompanyService companyService;
@Resource
private RedisUtil redisUtil;
@Resource
private OrganizationService organizationService;
@Override
public PageResult<User> pageRel(UserParam param) {
PageParam<User, UserParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
List<User> list = baseMapper.selectPageRel(page, param);
// 查询用户的角色
selectUserRoles(list);
return new PageResult<>(list, page.getTotal());
}
@Override
public PageResult<User> pageRel(UserParam param) {
PageParam<User, UserParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
List<User> list = baseMapper.selectPageRel(page, param);
// 查询用户的角色
selectUserRoles(list);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<User> listRel(UserParam param) {
List<User> list = baseMapper.selectListRel(param);
// 查询用户的角色
selectUserRoles(list);
// 排序
PageParam<User, UserParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public List<User> listRel(UserParam param) {
List<User> list = baseMapper.selectListRel(param);
// 查询用户的角色
selectUserRoles(list);
// 排序
PageParam<User, UserParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public User getByIdRel(Integer userId) {
UserParam param = new UserParam();
param.setUserId(userId);
User user = param.getOne(baseMapper.selectListRel(param));
if (user != null) {
user.setPassword(null);
user.setRoles(userRoleService.listByUserId(user.getUserId()));
user.setAuthorities(roleMenuService.listMenuByUserId(user.getUserId(), null));
@Override
public User getByIdRel(Integer userId) {
UserParam param = new UserParam();
param.setUserId(userId);
User user = param.getOne(baseMapper.selectListRel(param));
if (user != null) {
user.setPassword(null);
user.setRoles(userRoleService.listByUserId(user.getUserId()));
user.setAuthorities(roleMenuService.listMenuByUserId(user.getUserId(), null));
// // 系统配置信息
// Map<String, Object> map = new HashMap<>();
// // 1)云存储
@@ -100,196 +95,211 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
// map.put("fileUrl",object.getString("fileUrl") + "/");
// user.setSystem(map);
// }
// 企业信息
// 企业信息
// final Company company = companyService.getByTenantIdRel(user.getTenantId());
// if (company != null) {
// user.setCompanyId(company.getCompanyId());
// user.setCompanyInfo(company);
// }
}
return user;
}
return user;
}
@Override
public User getByUsername(String username) {
return getByUsername(username, null);
}
@Override
public User getByUsername(String username, Integer tenantId) {
if (StrUtil.isBlank(username)) {
return null;
@Override
public User getByUsername(String username) {
return getByUsername(username, null);
}
User user = baseMapper.selectByUsername(username, tenantId);
if (user != null) {
user.setRoles(userRoleService.listByUserId(user.getUserId()));
user.setAuthorities(roleMenuService.listMenuByUserId(user.getUserId(), null));
}
return user;
}
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return getByUsername(username);
}
@Transactional(rollbackFor = {Exception.class}, isolation = Isolation.SERIALIZABLE)
@Override
public boolean saveUser(User user) {
if (StrUtil.isNotEmpty(user.getUsername()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getUsername, user.getUsername())) > 0) {
throw new BusinessException("账号已存在");
@Override
public User getByUsername(String username, Integer tenantId) {
if (StrUtil.isBlank(username)) {
return null;
}
User user = baseMapper.selectByUsername(username, tenantId);
if (user != null) {
user.setRoles(userRoleService.listByUserId(user.getUserId()));
user.setAuthorities(roleMenuService.listMenuByUserId(user.getUserId(), null));
}
return user;
}
if (StrUtil.isNotEmpty(user.getPhone()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getPhone, user.getPhone())) > 0) {
throw new BusinessException("手机号已存在");
}
if (StrUtil.isNotEmpty(user.getEmail()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getEmail, user.getEmail())) > 0) {
throw new BusinessException("邮箱已存在");
}
boolean result = baseMapper.insert(user) > 0;
if (result && user.getRoles() != null && user.getRoles().size() > 0) {
List<Integer> roleIds = user.getRoles().stream().map(Role::getRoleId).collect(Collectors.toList());
if (userRoleService.saveBatch(user.getUserId(), roleIds) < roleIds.size()) {
throw new BusinessException("用户角色添加失败");
}
}
return result;
}
@Transactional(rollbackFor = {Exception.class})
@Override
public boolean updateUser(User user) {
if (StrUtil.isNotEmpty(user.getUsername()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getUsername, user.getUsername())
.ne(User::getUserId, user.getUserId())) > 0) {
throw new BusinessException("账号已存在");
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return getByUsername(username);
}
if (StrUtil.isNotEmpty(user.getPhone()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getPhone, user.getPhone())
.ne(User::getUserId, user.getUserId())) > 0) {
throw new BusinessException("手机号已存在");
@Transactional(rollbackFor = {Exception.class}, isolation = Isolation.SERIALIZABLE)
@Override
public boolean saveUser(User user) {
if (StrUtil.isNotEmpty(user.getUsername()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getUsername, user.getUsername())) > 0) {
throw new BusinessException("账号已存在");
}
if (StrUtil.isNotEmpty(user.getPhone()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getPhone, user.getPhone())) > 0) {
throw new BusinessException("手机号已存在");
}
if (StrUtil.isNotEmpty(user.getEmail()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getEmail, user.getEmail())) > 0) {
throw new BusinessException("邮箱已存在");
}
boolean result = baseMapper.insert(user) > 0;
if (result && user.getRoles() != null && user.getRoles().size() > 0) {
List<Integer> roleIds = user.getRoles().stream().map(Role::getRoleId).collect(Collectors.toList());
if (userRoleService.saveBatch(user.getUserId(), roleIds) < roleIds.size()) {
throw new BusinessException("用户角色添加失败");
}
}
return result;
}
if (StrUtil.isNotEmpty(user.getEmail()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getEmail, user.getEmail())
.ne(User::getUserId, user.getUserId())) > 0) {
throw new BusinessException("邮箱已存在");
@Transactional(rollbackFor = {Exception.class})
@Override
public boolean updateUser(User user) {
if (StrUtil.isNotEmpty(user.getUsername()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getUsername, user.getUsername())
.ne(User::getUserId, user.getUserId())) > 0) {
throw new BusinessException("账号已存在");
}
if (StrUtil.isNotEmpty(user.getPhone()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getPhone, user.getPhone())
.ne(User::getUserId, user.getUserId())) > 0) {
throw new BusinessException("手机号已存在");
}
if (StrUtil.isNotEmpty(user.getEmail()) && baseMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getEmail, user.getEmail())
.ne(User::getUserId, user.getUserId())) > 0) {
throw new BusinessException("邮箱已存在");
}
// 更新用户等级
if (user.getGradeId() != null && !user.getGradeId().equals(0)) {
userService.updateById(user);
}
boolean result = baseMapper.updateById(user) > 0;
if (result && user.getRoles() != null && user.getRoles().size() > 0) {
userRoleService.remove(new LambdaUpdateWrapper<UserRole>().eq(UserRole::getUserId, user.getUserId()));
List<Integer> roleIds = user.getRoles().stream().map(Role::getRoleId).collect(Collectors.toList());
if (userRoleService.saveBatch(user.getUserId(), roleIds) < roleIds.size()) {
throw new BusinessException("用户角色添加失败");
}
}
return result;
}
// 更新用户等级
if (user.getGradeId() != null && !user.getGradeId().equals(0)){
userService.updateById(user);
@Override
public boolean comparePassword(String dbPassword, String inputPassword) {
return bCryptPasswordEncoder.matches(inputPassword, dbPassword);
}
boolean result = baseMapper.updateById(user) > 0;
if (result && user.getRoles() != null && user.getRoles().size() > 0) {
userRoleService.remove(new LambdaUpdateWrapper<UserRole>().eq(UserRole::getUserId, user.getUserId()));
List<Integer> roleIds = user.getRoles().stream().map(Role::getRoleId).collect(Collectors.toList());
if (userRoleService.saveBatch(user.getUserId(), roleIds) < roleIds.size()) {
throw new BusinessException("用户角色添加失败");
}
@Override
public String encodePassword(String password) {
return password == null ? null : bCryptPasswordEncoder.encode(password);
}
return result;
}
@Override
public boolean comparePassword(String dbPassword, String inputPassword) {
return bCryptPasswordEncoder.matches(inputPassword, dbPassword);
}
@Override
public User getByPhone(String phone) {
return getOne(
new LambdaQueryWrapper<User>()
.eq(User::getPhone, phone)
.orderByDesc(User::getUserId).last("limit 1")
);
}
@Override
public String encodePassword(String password) {
return password == null ? null : bCryptPasswordEncoder.encode(password);
}
@Override
public User getByUnionId(UserParam param) {
return param.getOne(baseMapper.getOne(param));
}
@Override
public User getByPhone(String phone) {
return getOne(
new LambdaQueryWrapper<User>()
.eq(User::getPhone, phone)
.orderByDesc(User::getUserId).last("limit 1")
);
}
@Override
public User getByOauthId(UserParam userParam) {
return userParam.getOne(baseMapper.getOne(userParam));
}
@Override
public User getByUnionId(UserParam param) {
return param.getOne(baseMapper.getOne(param));
}
@Override
public List<User> listStatisticsRel(UserParam param) {
List<User> list = baseMapper.selectListStatisticsRel(param);
return list;
}
@Override
public User getByOauthId(UserParam userParam) {
return userParam.getOne(baseMapper.getOne(userParam));
}
@Override
public List<User> listStatisticsRel(UserParam param) {
List<User> list = baseMapper.selectListStatisticsRel(param);
return list;
}
/**
* 更新用户信息(跨租户)
*
* @param user 用户信息
*/
@Override
public void updateByUserId(User user) {
baseMapper.updateByUserId(user);
}
/**
* 更新用户信息(跨租户)
*
* @param user 用户信息
*/
@Override
public void updateByUserId(User user) {
baseMapper.updateByUserId(user);
}
@Override
public User addUser(UserParam userParam) {
User addUser = new User();
// 注册用户
addUser.setStatus(0);
addUser.setUsername(userParam.getPhone());
addUser.setNickname(DesensitizedUtil.mobilePhone(userParam.getPhone()));
addUser.setPlatform(WEB);
addUser.setGradeId(2);
if(userParam.getGradeId() != null){
addUser.setGradeId(userParam.getGradeId());
}
if(userParam.getPhone() != null){
addUser.setPhone(userParam.getPhone());
}
if(userParam.getPassword() != null){
addUser.setPassword(encodePassword(userParam.getPassword()));
}else {
addUser.setPassword(encodePassword(CommonUtil.randomUUID16()));
}
addUser.setTenantId(userParam.getTenantId());
addUser.setRecommend(0);
Role role = roleService.getOne(new QueryWrapper<Role>().eq("role_code", "user"), false);
addUser.setRoleId(role.getRoleId());
if (saveUser(addUser)) {
// 添加用户角色
final UserRole userRole = new UserRole();
userRole.setUserId(addUser.getUserId());
userRole.setTenantId(addUser.getTenantId());
userRole.setRoleId(addUser.getRoleId());
userRoleService.save(userRole);
}
return addUser;
User addUser = new User();
// 注册用户
addUser.setStatus(0);
addUser.setUsername(userParam.getPhone());
addUser.setNickname(DesensitizedUtil.mobilePhone(userParam.getPhone()));
addUser.setPlatform(WEB);
addUser.setGradeId(2);
if (userParam.getGradeId() != null) {
addUser.setGradeId(userParam.getGradeId());
}
if (userParam.getPhone() != null) {
addUser.setPhone(userParam.getPhone());
}
if (userParam.getPassword() != null) {
addUser.setPassword(encodePassword(userParam.getPassword()));
} else {
addUser.setPassword(encodePassword(CommonUtil.randomUUID16()));
}
addUser.setTenantId(userParam.getTenantId());
addUser.setRecommend(0);
Role role = roleService.getOne(new QueryWrapper<Role>().eq("role_code", "user"), false);
addUser.setRoleId(role.getRoleId());
if (saveUser(addUser)) {
// 添加用户角色
final UserRole userRole = new UserRole();
userRole.setUserId(addUser.getUserId());
userRole.setTenantId(addUser.getTenantId());
userRole.setRoleId(addUser.getRoleId());
userRoleService.save(userRole);
}
return addUser;
}
@Override
public User getAdminByPhone(String phone) {
return baseMapper.selectAdminByPhone(phone);
}
/**
* 批量查询用户的角色
*
* @param users 用户集合
*/
private void selectUserRoles(List<User> users) {
if (users != null && users.size() > 0) {
List<Integer> userIds = users.stream().map(User::getUserId).collect(Collectors.toList());
List<Role> userRoles = userRoleService.listByUserIds(userIds);
for (User user : users) {
List<Role> roles = userRoles.stream().filter(d -> user.getUserId().equals(d.getUserId()))
.collect(Collectors.toList());
user.setRoles(roles);
}
@Override
public User getAdminByPhone(String phone) {
return baseMapper.selectAdminByPhone(phone);
}
/**
* 批量查询用户的角色
*
* @param users 用户集合
*/
private void selectUserRoles(List<User> users) {
if (users != null && users.size() > 0) {
List<Integer> userIds = users.stream().map(User::getUserId).collect(Collectors.toList());
List<Role> userRoles = userRoleService.listByUserIds(userIds);
for (User user : users) {
List<Role> roles = userRoles.stream().filter(d -> user.getUserId().equals(d.getUserId()))
.collect(Collectors.toList());
user.setRoles(roles);
}
}
}
@Override
public Integer userNumInPark(UserParam param) {
List<Organization> organizationList = organizationService.list(
new LambdaQueryWrapper<Organization>()
.eq(Organization::getPark, param.getPark())
);
if (organizationList != null && !organizationList.isEmpty()) {
return count(
new LambdaQueryWrapper<User>()
.in(User::getOrganizationId, organizationList.stream().map(Organization::getOrganizationId).collect(Collectors.toList()))
);
}
return 0;
}
}
}