Commit c7956cd2 by chamberone

feat: 重构用户权限相关代码

1 parent b66966b1
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<properties> <properties>
<druid.version>1.1.10</druid.version> <druid.version>1.1.10</druid.version>
<mysql.version>8.0.28</mysql.version>
</properties> </properties>
<dependencies> <dependencies>
...@@ -93,11 +94,11 @@ ...@@ -93,11 +94,11 @@
<version>2.2.5.RELEASE</version> <version>2.2.5.RELEASE</version>
</dependency> </dependency>
<dependency>
<dependency> <groupId>mysql</groupId>
<groupId>org.postgresql</groupId> <artifactId>mysql-connector-java</artifactId>
<artifactId>postgresql</artifactId> <version>${mysql.version}</version>
</dependency> </dependency>
<!-- temp --> <!-- temp -->
<dependency> <dependency>
......
...@@ -8,9 +8,7 @@ import com.dituhui.pea.enums.ThirdPartyEnum; ...@@ -8,9 +8,7 @@ import com.dituhui.pea.enums.ThirdPartyEnum;
import com.dituhui.pea.pojo.*; import com.dituhui.pea.pojo.*;
import com.dituhui.pea.user.IUser; import com.dituhui.pea.user.IUser;
import com.dituhui.pea.user.commom.RedisService; import com.dituhui.pea.user.commom.RedisService;
import com.dituhui.pea.user.service.TeamService;
import com.dituhui.pea.user.service.UserService; import com.dituhui.pea.user.service.UserService;
import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -30,25 +28,13 @@ public class UserController implements IUser { ...@@ -30,25 +28,13 @@ public class UserController implements IUser {
private UserService userService; private UserService userService;
@Autowired @Autowired
TeamService teamService;
@Autowired
private CurrentUser currentUser;
@Autowired
private RedisService redisService; private RedisService redisService;
@Override @Override
public WebResult<UserInfo> getCurrentUserInfo(String userToken, Boolean needTeamInfo) { public WebResult<UserInfo> getCurrentUserInfo(String userToken, Boolean needTeamInfo) {
UserAuthInfo userInfoCache = getUserAuthInfoFromToken(userToken); UserAuthInfo userInfoCache = getUserAuthInfoFromToken(userToken);
String userId = userInfoCache.getUserId(); String userId = userInfoCache.getUserId();
String teamId = userInfoCache.getTeamId();
UserInfo userInfo = userService.queryUserById(userId); UserInfo userInfo = userService.queryUserById(userId);
if (BooleanUtils.isTrue(needTeamInfo)) {
TeamInfo teamInfo = teamService.queryTeamById(teamId);
userInfo.setTeamInfo(teamInfo);
userInfo.setTeamId(teamId);
}
return WebResult.ok(userInfo); return WebResult.ok(userInfo);
} }
...@@ -78,8 +64,6 @@ public class UserController implements IUser { ...@@ -78,8 +64,6 @@ public class UserController implements IUser {
return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY); return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY);
} }
UserInfo userInfo = userService.queryTeamByAccount(account); UserInfo userInfo = userService.queryTeamByAccount(account);
// 补充团队信息
fillTemInfo(userInfo);
return WebResult.ok(userInfo); return WebResult.ok(userInfo);
} }
...@@ -91,32 +75,15 @@ public class UserController implements IUser { ...@@ -91,32 +75,15 @@ public class UserController implements IUser {
} }
UserInfo userInfo = userService.queryUserByPhone(phone); UserInfo userInfo = userService.queryUserByPhone(phone);
System.out.println("queryUserByPhone UserInfo ["+userInfo+"]"); System.out.println("queryUserByPhone UserInfo ["+userInfo+"]");
// 补充团队信息
fillTemInfo(userInfo);
System.out.println("queryUserByPhone fillTemInfo UserInfo ["+userInfo+"]");
return WebResult.ok(userInfo); return WebResult.ok(userInfo);
} }
/**
* 补充团队信息
*
* @param userInfo
*/
private void fillTemInfo(UserInfo userInfo) {
if (StringUtils.isNotEmpty(userInfo.getTeamId())) {
TeamInfo teamInfo = teamService.queryTeamById(userInfo.getTeamId());
userInfo.setTeamInfo(teamInfo);
}
}
@Override @Override
public WebResult<UserInfo> queryUserByThirdParty(String id, ThirdPartyEnum type) { public WebResult<UserInfo> queryUserByThirdParty(String id, ThirdPartyEnum type) {
if (StringUtils.isBlank(id)) { if (StringUtils.isBlank(id)) {
return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY); return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY);
} }
UserInfo userInfo = userService.queryUserByThirdParty(id, type); UserInfo userInfo = userService.queryUserByThirdParty(id, type);
// 补充团队信息
fillTemInfo(userInfo);
return WebResult.ok(userInfo); return WebResult.ok(userInfo);
} }
...@@ -159,16 +126,12 @@ public class UserController implements IUser { ...@@ -159,16 +126,12 @@ public class UserController implements IUser {
@Override @Override
public WebResult<UserInfo> register(@Validated UserInfo userInfo) { public WebResult<UserInfo> register(@Validated UserInfo userInfo) {
userInfo = userService.register(userInfo); userInfo = userService.register(userInfo);
// 补充团队信息
fillTemInfo(userInfo);
return WebResult.ok(userInfo); return WebResult.ok(userInfo);
} }
@Override @Override
public WebResult<UserInfo> thirdRegister(ThirdUserInfo thirdUserInfo) { public WebResult<UserInfo> thirdRegister(ThirdUserInfo thirdUserInfo) {
UserInfo userInfo = userService.thirdRegister(thirdUserInfo); UserInfo userInfo = userService.thirdRegister(thirdUserInfo);
// 补充团队信息
fillTemInfo(userInfo);
return WebResult.ok(userInfo); return WebResult.ok(userInfo);
} }
......
...@@ -14,66 +14,63 @@ import java.util.Date; ...@@ -14,66 +14,63 @@ import java.util.Date;
/** /**
* 资源表 用户对某种具体权限或者功能的描述(ResourceEntity)实体类 * 资源表 用户对某种具体权限或者功能的描述(ResourceEntity)实体类
* *
* @author zl
* @since 2020-12-09 15:13:43
*/ */
@Data @Data
@Entity @Entity
@Table(name ="resource") @Table(name = "sys_resource")
@EntityListeners(AuditingEntityListener.class) @EntityListeners(AuditingEntityListener.class)
public class ResourceEntity implements Serializable { public class ResourceEntity implements Serializable {
private static final long serialVersionUID = 157258775707540233L; private static final long serialVersionUID = 157258775707540233L;
/** /**
* 主键 * 主键
*/ */
@Id @Id
@GeneratedValue(generator = "uuid") @GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid") @GenericGenerator(name = "uuid", strategy = "uuid")
@Column(name = "ID", unique = true, nullable = false, length = 32) @Column(name = "ID", unique = true, nullable = false, length = 32)
private String id; private String id;
/** /**
* 名称 * 名称
*/ */
@Column(name = "name") @Column(name = "name")
@NotBlank(message = "资源名称不能为空!") @NotBlank(message = "资源名称不能为空!")
private String name; private String name;
/** /**
* 用户自定义条件 * 用户自定义条件
*/ */
@Column(name = "extra") @Column(name = "extra")
private String extra; private String extra;
/** /**
* 团队id * 资源类型1菜单2功能点3所属组织
*/ */
@Column(name = "team_id") @Column(name = "type")
@NotBlank(message = "团队名称不能为空!") private Integer type;
private String teamId; /**
/** * 描述
* 描述 */
*/ @Column(name = "description")
@Column(name = "description") private String description;
private String description; /**
/** * 创建人
* 创建人 */
*/ @Column(name = "CREATED_BY")
@Column(name = "CREATED_BY") private String createdBy;
private String createdBy; /**
/** * 创建时间
* 创建时间 */
*/ @Column(name = "CREATED_TIME")
@Column(name = "CREATED_TIME") @CreatedDate
@CreatedDate private Date createdTime;
private Date createdTime; /**
/** * 更新人
* 更新人 */
*/ @Column(name = "UPDATED_BY")
@Column(name = "UPDATED_BY") private String updatedBy;
private String updatedBy; /**
/** * 更新时间
* 更新时间 */
*/ @Column(name = "UPDATED_TIME")
@Column(name = "UPDATED_TIME") @LastModifiedDate
@LastModifiedDate private Date updatedTime;
private Date updatedTime;
} }
...@@ -14,12 +14,10 @@ import java.util.Date; ...@@ -14,12 +14,10 @@ import java.util.Date;
/** /**
* 角色表(RoleEntity)实体类 * 角色表(RoleEntity)实体类
* *
* @author zl
* @since 2020-12-09 15:13:27
*/ */
@Data @Data
@Entity @Entity
@Table(name ="role") @Table(name ="sys_role")
@EntityListeners(AuditingEntityListener.class) @EntityListeners(AuditingEntityListener.class)
public class RoleEntity implements Serializable { public class RoleEntity implements Serializable {
private static final long serialVersionUID = -71423293715769828L; private static final long serialVersionUID = -71423293715769828L;
...@@ -38,12 +36,6 @@ public class RoleEntity implements Serializable { ...@@ -38,12 +36,6 @@ public class RoleEntity implements Serializable {
@NotBlank(message = "角色名称不能为空!") @NotBlank(message = "角色名称不能为空!")
private String name; private String name;
/** /**
* 团队id
*/
@Column(name = "team_id")
@NotBlank(message = "团队Id不能为空!")
private String teamId;
/**
* 角色组id * 角色组id
*/ */
@Column(name = "group_id") @Column(name = "group_id")
......
...@@ -10,12 +10,10 @@ import java.util.Date; ...@@ -10,12 +10,10 @@ import java.util.Date;
/** /**
* 角色组表(RoleGroupEntity)实体类 * 角色组表(RoleGroupEntity)实体类
* *
* @author zl
* @since 2020-12-09 15:13:18
*/ */
@Data @Data
@Entity @Entity
@Table(name ="role_group") @Table(name ="sys_role_group")
public class RoleGroupEntity implements Serializable { public class RoleGroupEntity implements Serializable {
private static final long serialVersionUID = -66824982136301845L; private static final long serialVersionUID = -66824982136301845L;
/** /**
...@@ -37,11 +35,6 @@ public class RoleGroupEntity implements Serializable { ...@@ -37,11 +35,6 @@ public class RoleGroupEntity implements Serializable {
@Column(name = "description") @Column(name = "description")
private String description; private String description;
/** /**
* 团队id
*/
@Column(name = "team_id")
private String teamId;
/**
* 创建人 * 创建人
*/ */
@Column(name = "CREATED_BY") @Column(name = "CREATED_BY")
......
...@@ -10,12 +10,10 @@ import java.util.Date; ...@@ -10,12 +10,10 @@ import java.util.Date;
/** /**
* 角色资源表(RoleResourceEntity)实体类 * 角色资源表(RoleResourceEntity)实体类
* *
* @author zl
* @since 2020-12-09 15:13:05
*/ */
@Data @Data
@Entity @Entity
@Table(name ="role_resource") @Table(name ="sys_role_resource")
public class RoleResourceEntity implements Serializable { public class RoleResourceEntity implements Serializable {
private static final long serialVersionUID = -10273487455832697L; private static final long serialVersionUID = -10273487455832697L;
/** /**
......
...@@ -13,12 +13,10 @@ import java.util.Date; ...@@ -13,12 +13,10 @@ import java.util.Date;
/** /**
* 用户表(UserEntity)实体类 * 用户表(UserEntity)实体类
* *
* @author zl
* @since 2020-12-09 15:11:38
*/ */
@Data @Data
@Entity @Entity
@Table(name ="user") @Table(name ="sys_user")
@EntityListeners(AuditingEntityListener.class) @EntityListeners(AuditingEntityListener.class)
public class UserEntity implements Serializable { public class UserEntity implements Serializable {
private static final long serialVersionUID = 595672857439664430L; private static final long serialVersionUID = 595672857439664430L;
...@@ -84,16 +82,6 @@ public class UserEntity implements Serializable { ...@@ -84,16 +82,6 @@ public class UserEntity implements Serializable {
@Column(name = "LAST_LOGIN_TIME") @Column(name = "LAST_LOGIN_TIME")
private Date lastLoginTime; private Date lastLoginTime;
/** /**
* 微博唯一识别id
*/
@Column(name = "weibo")
private String weibo;
/**
* qq唯一识别id
*/
@Column(name = "qq")
private String qq;
/**
* 微信小程序识别id * 微信小程序识别id
*/ */
@Column(name = "wechat_mini_program") @Column(name = "wechat_mini_program")
......
...@@ -14,12 +14,10 @@ import java.util.Date; ...@@ -14,12 +14,10 @@ import java.util.Date;
/** /**
* 用户角色关系表(UserRoleEntity)实体类 * 用户角色关系表(UserRoleEntity)实体类
* *
* @author zl
* @since 2020-12-09 15:12:06
*/ */
@Data @Data
@Entity @Entity
@Table(name ="user_role") @Table(name ="sys_user_role")
@EntityListeners(AuditingEntityListener.class) @EntityListeners(AuditingEntityListener.class)
public class UserRoleEntity implements Serializable { public class UserRoleEntity implements Serializable {
private static final long serialVersionUID = -30812324643312481L; private static final long serialVersionUID = -30812324643312481L;
......
...@@ -79,7 +79,7 @@ public class RoleService { ...@@ -79,7 +79,7 @@ public class RoleService {
throw new BusinessException(StatusCodeEnum.ROLE_RESOURCE_EMPTY); throw new BusinessException(StatusCodeEnum.ROLE_RESOURCE_EMPTY);
} }
// 保存用户角色关系 // 保存用户角色关系
UserRoleEntity userRoleEntity = assembleUserRoleEntity(roleId, userId, roleEntity.getTeamId()); UserRoleEntity userRoleEntity = assembleUserRoleEntity(roleId, userId);
userRoleDao.save(userRoleEntity); userRoleDao.save(userRoleEntity);
} }
...@@ -173,11 +173,10 @@ public class RoleService { ...@@ -173,11 +173,10 @@ public class RoleService {
} }
private UserRoleEntity assembleUserRoleEntity(String roleId, String userId, String teamId) { private UserRoleEntity assembleUserRoleEntity(String roleId, String userId) {
UserRoleEntity userRoleEntity = new UserRoleEntity(); UserRoleEntity userRoleEntity = new UserRoleEntity();
userRoleEntity.setRoleId(roleId); userRoleEntity.setRoleId(roleId);
userRoleEntity.setUserId(userId); userRoleEntity.setUserId(userId);
userRoleEntity.setTeamId(teamId);
return userRoleEntity; return userRoleEntity;
} }
......
package com.dituhui.pea.user.service; package com.dituhui.pea.user.service;
import cn.hutool.core.bean.BeanUtil; import java.util.Date;
import cn.hutool.core.collection.CollUtil; import java.util.List;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Validator; import javax.persistence.criteria.Path;
import cn.hutool.core.util.IdUtil; import javax.persistence.criteria.Predicate;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.SecureUtil; import org.apache.commons.lang.StringUtils;
import com.dituhui.pea.constants.TeamConstant; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.dituhui.pea.enums.StatusCodeEnum; import com.dituhui.pea.enums.StatusCodeEnum;
import com.dituhui.pea.enums.TeamContractEnum;
import com.dituhui.pea.enums.ThirdPartyEnum; import com.dituhui.pea.enums.ThirdPartyEnum;
import com.dituhui.pea.enums.UserStatusEnum;
import com.dituhui.pea.exception.BusinessException; import com.dituhui.pea.exception.BusinessException;
import com.dituhui.pea.pojo.ThirdUserInfo; import com.dituhui.pea.pojo.ThirdUserInfo;
import com.dituhui.pea.pojo.UserInfo; import com.dituhui.pea.pojo.UserInfo;
import com.dituhui.pea.user.constant.TextConstant; import com.dituhui.pea.user.constant.TextConstant;
import com.dituhui.pea.user.dao.TeamDao;
import com.dituhui.pea.user.dao.UserDao; import com.dituhui.pea.user.dao.UserDao;
import com.dituhui.pea.user.dao.UserTeamDao;
import com.dituhui.pea.user.entity.TeamEntity;
import com.dituhui.pea.user.entity.UserEntity; import com.dituhui.pea.user.entity.UserEntity;
import com.dituhui.pea.user.entity.UserTeamEntity;
import com.dituhui.pea.user.factory.ThirdStrategy; import com.dituhui.pea.user.factory.ThirdStrategy;
import com.dituhui.pea.user.factory.ThirdStrategyFactory; import com.dituhui.pea.user.factory.ThirdStrategyFactory;
import com.dituhui.pea.user.utils.TextHelper; import com.dituhui.pea.user.utils.TextHelper;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.persistence.criteria.*; import cn.hutool.core.bean.BeanUtil;
import java.util.Date; import cn.hutool.core.collection.CollUtil;
import java.util.List; import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.SecureUtil;
/** /**
* 用户业务层 * 用户业务层
...@@ -43,20 +37,12 @@ import java.util.List; ...@@ -43,20 +37,12 @@ import java.util.List;
@Service @Service
public class UserService { public class UserService {
@Autowired @Autowired
UserDao userDao; UserDao userDao;
@Autowired @Autowired
TeamDao teamDao;
@Autowired
UserTeamDao userTeamDao;
@Autowired
ThirdStrategyFactory thirdStrategyFactory; ThirdStrategyFactory thirdStrategyFactory;
public String getUserName(String userId) { public String getUserName(String userId) {
return "Jown Snow " + userId; return "Jown Snow " + userId;
} }
...@@ -74,8 +60,6 @@ public class UserService { ...@@ -74,8 +60,6 @@ public class UserService {
throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST); throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST);
} }
UserInfo user = BeanUtil.copyProperties(userEntity, UserInfo.class); UserInfo user = BeanUtil.copyProperties(userEntity, UserInfo.class);
// 设置用户信息对应的默认团队
user.setTeamId(queryTeamByUserId(user.getId()));
return user; return user;
} }
...@@ -91,8 +75,6 @@ public class UserService { ...@@ -91,8 +75,6 @@ public class UserService {
throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST); throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST);
} }
UserInfo user = BeanUtil.copyProperties(userEntity, UserInfo.class); UserInfo user = BeanUtil.copyProperties(userEntity, UserInfo.class);
// 设置用户信息对应的默认团队
user.setTeamId(queryTeamByUserId(user.getId()));
return user; return user;
} }
...@@ -118,28 +100,10 @@ public class UserService { ...@@ -118,28 +100,10 @@ public class UserService {
throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST); throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST);
} }
UserInfo user = BeanUtil.copyProperties(userEntity, UserInfo.class); UserInfo user = BeanUtil.copyProperties(userEntity, UserInfo.class);
// 设置用户信息对应的默认团队
user.setTeamId(queryTeamByUserId(user.getId()));
return user; return user;
} }
/** /**
* 查询用户默认团队id
*
* @param userId 用户id
* @return
*/
private String queryTeamByUserId(String userId) {
List<UserTeamEntity> userTeamEntityList = userTeamDao.findAllByUserIdAndStatusOrderByCreatedByDesc(userId,
UserStatusEnum.NORMAL.getStatus());
if (CollectionUtils.isEmpty(userTeamEntityList)) {
throw new BusinessException(StatusCodeEnum.TEAM_DOES_NOT_EXIST);
}
return userTeamEntityList.get(0).getTeamId();
}
/**
* 查询用户信息 * 查询用户信息
* @param id 用户ID * @param id 用户ID
* @return * @return
...@@ -166,16 +130,6 @@ public class UserService { ...@@ -166,16 +130,6 @@ public class UserService {
userEntity.setPassword(SecureUtil.md5(userInfo.getPassword())); userEntity.setPassword(SecureUtil.md5(userInfo.getPassword()));
// 保存用户信息 // 保存用户信息
userEntity = userDao.save(userEntity); userEntity = userDao.save(userEntity);
// 保存用户和团队的关系
String teamId = userInfo.getTeamId();
if (StringUtils.isNotBlank(teamId)) {
TeamEntity teamEntity = teamDao.findById(teamId).orElse(null);
if (ObjectUtil.isNull(teamEntity)) {
throw new BusinessException(StatusCodeEnum.TEAM_DOES_NOT_EXIST);
}
UserTeamEntity userTeamEntity = assembleUserTeamEntity(userEntity, teamEntity);
userTeamDao.save(userTeamEntity);
}
return BeanUtil.copyProperties(userEntity, UserInfo.class); return BeanUtil.copyProperties(userEntity, UserInfo.class);
} }
...@@ -204,14 +158,7 @@ public class UserService { ...@@ -204,14 +158,7 @@ public class UserService {
userEntity.setPassword(SecureUtil.md5(userInfo.getPassword())); userEntity.setPassword(SecureUtil.md5(userInfo.getPassword()));
// 保存用户信息 // 保存用户信息
userEntity = userDao.save(userEntity); userEntity = userDao.save(userEntity);
// 保存团队信息
TeamEntity teamEntity = assembleTeamEntity(userEntity);
teamEntity = teamDao.save(teamEntity);
// 保存用户团队关系表
UserTeamEntity userTeamEntity = assembleUserTeamEntity(userEntity, teamEntity);
userTeamDao.save(userTeamEntity);
userInfo.setId(userEntity.getId()); userInfo.setId(userEntity.getId());
userInfo.setTeamId(teamEntity.getId());
return userInfo; return userInfo;
} }
...@@ -225,15 +172,9 @@ public class UserService { ...@@ -225,15 +172,9 @@ public class UserService {
userEntity.setCreatedTime(new Date()); userEntity.setCreatedTime(new Date());
ThirdPartyEnum thirdPartyEnum = ThirdPartyEnum.valueOf(thirdUserInfo.getThirdType()); ThirdPartyEnum thirdPartyEnum = ThirdPartyEnum.valueOf(thirdUserInfo.getThirdType());
switch (thirdPartyEnum) { switch (thirdPartyEnum) {
case QQ:
userEntity.setQq(thirdUserInfo.getThirdId());
break;
case WECHAT: case WECHAT:
userEntity.setWechat(thirdUserInfo.getThirdId()); userEntity.setWechat(thirdUserInfo.getThirdId());
break; break;
case WEIBO:
userEntity.setWeibo(thirdUserInfo.getThirdId());
break;
case WECHAT_MINI_PROGRAM: case WECHAT_MINI_PROGRAM:
userEntity.setWechatMiniProgram(thirdUserInfo.getThirdId()); userEntity.setWechatMiniProgram(thirdUserInfo.getThirdId());
userEntity.setPhone(thirdUserInfo.getPhone()); userEntity.setPhone(thirdUserInfo.getPhone());
...@@ -252,15 +193,7 @@ public class UserService { ...@@ -252,15 +193,7 @@ public class UserService {
userEntity = userDao.save(userEntity); userEntity = userDao.save(userEntity);
// 对象转换 // 对象转换
UserInfo userInfo = BeanUtil.copyProperties(userEntity, UserInfo.class); UserInfo userInfo = BeanUtil.copyProperties(userEntity, UserInfo.class);
// 保存团队信息
TeamEntity teamEntity = assembleTeamEntity(userEntity);
teamEntity = teamDao.save(teamEntity);
// 保存用户团队关系表
UserTeamEntity userTeamEntity = assembleUserTeamEntity(userEntity, teamEntity);
userTeamDao.save(userTeamEntity);
userInfo.setId(userEntity.getId()); userInfo.setId(userEntity.getId());
userInfo.setTeamId(teamEntity.getId());
return userInfo; return userInfo;
} }
...@@ -276,15 +209,9 @@ public class UserService { ...@@ -276,15 +209,9 @@ public class UserService {
return null; return null;
} }
switch (thirdPartyEnum) { switch (thirdPartyEnum) {
case QQ:
userEntity.setQq(thirdId);
break;
case WECHAT: case WECHAT:
userEntity.setWechat(thirdId); userEntity.setWechat(thirdId);
break; break;
case WEIBO:
userEntity.setWeibo(thirdId);
break;
case WECHAT_MINI_PROGRAM: case WECHAT_MINI_PROGRAM:
userEntity.setWechatMiniProgram(thirdId); userEntity.setWechatMiniProgram(thirdId);
default: default:
...@@ -292,8 +219,6 @@ public class UserService { ...@@ -292,8 +219,6 @@ public class UserService {
userEntity = userDao.save(userEntity); userEntity = userDao.save(userEntity);
// 对象转换 // 对象转换
UserInfo userInfo = BeanUtil.copyProperties(userEntity, UserInfo.class); UserInfo userInfo = BeanUtil.copyProperties(userEntity, UserInfo.class);
UserTeamEntity userTeamEntity = userTeamDao.findByUserId(userInfo.getId());
userInfo.setTeamId(userTeamEntity.getTeamId());
return userInfo; return userInfo;
} }
...@@ -343,20 +268,6 @@ public class UserService { ...@@ -343,20 +268,6 @@ public class UserService {
if (ObjectUtil.isNull(userEntity)) { if (ObjectUtil.isNull(userEntity)) {
throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST); throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST);
} }
// 查询团队是否存在
if (StringUtils.isNotBlank(userInfo.getTeamId())) {
TeamEntity teamEntity = teamDao.findById(userInfo.getTeamId()).orElse(null);
if (ObjectUtil.isNull(teamEntity)) {
throw new BusinessException(StatusCodeEnum.TEAM_DOES_NOT_EXIST);
}
// 查询用户团队关系表 没有记录就添加
UserTeamEntity userTeamEntity =
userTeamDao.findByUserIdAndTeamId(userInfo.getId(), userInfo.getTeamId());
if (ObjectUtil.isNull(userTeamEntity)) {
userTeamEntity = assembleUserTeamEntity(userEntity, teamEntity);
userTeamDao.save(userTeamEntity);
}
}
assembleUpdateUserInfo(userInfo, userEntity); assembleUpdateUserInfo(userInfo, userEntity);
userEntity = userDao.save(userEntity); userEntity = userDao.save(userEntity);
userInfo = BeanUtil.copyProperties(userEntity, UserInfo.class); userInfo = BeanUtil.copyProperties(userEntity, UserInfo.class);
...@@ -376,46 +287,10 @@ public class UserService { ...@@ -376,46 +287,10 @@ public class UserService {
if (ObjectUtil.isNull(userEntity)) { if (ObjectUtil.isNull(userEntity)) {
throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST); throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST);
} }
// 删除用户和团队的关系
userTeamDao.deleteByUserId(userId);
// 删除用户 // 删除用户
userDao.deleteById(userId); userDao.deleteById(userId);
} }
/**
* 组装用户团队关系表
* @param userEntity 用户信息
* @param teamEntity 团队信息
* @return
*/
private UserTeamEntity assembleUserTeamEntity(UserEntity userEntity, TeamEntity teamEntity) {
UserTeamEntity userTeamEntity = new UserTeamEntity();
userTeamEntity.setUserId(userEntity.getId());
userTeamEntity.setTeamId(teamEntity.getId());
userTeamEntity.setStatus(UserStatusEnum.NORMAL.getStatus());
return userTeamEntity;
}
/**
* 组装团队信息
* @param userEntity 用户信息
* @return
*/
private TeamEntity assembleTeamEntity(UserEntity userEntity) {
// 创建团队
TeamEntity teamEntity = new TeamEntity();
teamEntity.setName(userEntity.getNickname() + TeamConstant.TEAM_NAME_SUFFIX);
teamEntity.setAdminId(userEntity.getId());
// 新建团队默认有一周时间的试用期
teamEntity.setExpireDate(DateUtil.offsetDay(new Date(), 7));
teamEntity.setContract(TeamContractEnum.NO_CONTRACT.getStatus());
teamEntity.setAppKey(IdUtil.simpleUUID());
teamEntity.setSecret(IdUtil.simpleUUID());
return teamEntity;
}
/** /**
* 校验 [账号 手机号] 是否存在 * 校验 [账号 手机号] 是否存在
* @param phone 手机号 * @param phone 手机号
......
...@@ -109,16 +109,4 @@ public class TextHelper { ...@@ -109,16 +109,4 @@ public class TextHelper {
return str.matches(regex); return str.matches(regex);
} }
/**
* 执行正则表达式
*
* @param pat 表达式
* @param str 待验证字符串
* @return 返回true, 否则为false
*/
private static boolean match(String pat, String str) {
Pattern pattern = Pattern.compile(pat);
Matcher match = pattern.matcher(str);
return match.find();
}
} }
...@@ -16,15 +16,15 @@ spring: ...@@ -16,15 +16,15 @@ spring:
config: config:
import: import:
- optional:nacos:project-user.yaml?group=project&refreshEnabled=true - optional:nacos:project-user.yaml?group=project&refreshEnabled=true
- optional:nacos:datasource-config.yaml?group=project&refreshEnabled=true
- optional:nacos:redis-config.yaml?group=project&refreshEnabled=true - optional:nacos:redis-config.yaml?group=project&refreshEnabled=true
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
datasource: datasource:
url: jdbc:postgresql://project-pg:8432/project driver-class-name: com.mysql.cj.jdbc.Driver
driver-class-name: org.postgresql.Driver url: jdbc:mysql://10.10.0.54:3306/saas_aftersale_test?serverTimezone=Asia/Shanghai
username: 'postgres' username: root
password: 'postgres' password: 123456
type: com.alibaba.druid.pool.DruidDataSource
redis: redis:
database: 0 database: 0
host: redis host: redis
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!