Commit 33a7dc33 by 刘鑫

Merge remote-tracking branch 'origin/develop' into develop

2 parents dff89591 a30807c5
...@@ -78,7 +78,7 @@ public class UserInfo { ...@@ -78,7 +78,7 @@ public class UserInfo {
/** /**
* 最后登录时间 * 最后登录时间
*/ */
//private Date lastLoginTime; private Date lastLoginTime;
/** /**
* 用户自定义条件 * 用户自定义条件
*/ */
...@@ -98,18 +98,43 @@ public class UserInfo { ...@@ -98,18 +98,43 @@ public class UserInfo {
/** /**
* 创建人 * 创建人
*/ */
//private String createdBy; private String createdBy;
/** /**
* 创建时间 * 创建时间
*/ */
// private Date createdTime; private Date createdTime;
/** /**
* 更新人 * 更新人
*/ */
//private String updatedBy; private String updatedBy;
/** /**
* 更新时间 * 更新时间
*/ */
// private Date updatedTime; private Date updatedTime;
/**
* 是否禁用 0: 否 1:是 默认0
*/
private Integer ban = 0;
/**
* 用户来源:0:bean 1:新建
*/
private Integer source;
/**
* 工程师工号
*/
private String engineerCode;
/**
* 备注
*/
private String notes;
/**
* 是否正常 0: 否 1:是 默认1
*/
private Integer status = 1;
} }
...@@ -65,7 +65,7 @@ public class UserInfoSearch extends PageRequest implements Serializable { ...@@ -65,7 +65,7 @@ public class UserInfoSearch extends PageRequest implements Serializable {
/** /**
* 最后登录时间 * 最后登录时间
*/ */
//private Date lastLoginTime; private String lastLoginTime;
/** /**
* 用户自定义条件 * 用户自定义条件
*/ */
...@@ -104,18 +104,22 @@ public class UserInfoSearch extends PageRequest implements Serializable { ...@@ -104,18 +104,22 @@ public class UserInfoSearch extends PageRequest implements Serializable {
/** /**
* 创建人 * 创建人
*/ */
//private String createdBy; private String createdBy;
/** /**
* 创建时间 * 创建时间
*/ */
// private Date createdTime; private String createdTime;
/** /**
* 更新人 * 更新人
*/ */
//private String updatedBy; private String updatedBy;
/** /**
* 更新时间 * 更新时间
*/ */
// private Date updatedTime; private String updatedTime;
/**
* 更新时间
*/
private String notes;
} }
package com.dituhui.pea.pojo.user;
import lombok.Data;
import java.io.Serializable;
@Data
public class OrgInfo implements Serializable {
/**
* 机构id
*/
private Integer id;
/**
* 机构名称
*/
private String name;
}
...@@ -31,6 +31,16 @@ public interface IRole { ...@@ -31,6 +31,16 @@ public interface IRole {
/** /**
* 添加角色
*
* @param roleInfo 角色信息
* @return
*/
@RequestMapping(value = "/pea-user/role/delete2", method = RequestMethod.POST)
Result<RoleInfo> deleteRole2(@RequestBody RoleInfo roleInfo);
/**
* 修改角色 * 修改角色
* *
* @param roleInfo 角色信息 * @param roleInfo 角色信息
......
...@@ -2,6 +2,7 @@ package com.dituhui.pea.user; ...@@ -2,6 +2,7 @@ package com.dituhui.pea.user;
import com.dituhui.pea.common.PageResult; import com.dituhui.pea.common.PageResult;
import com.dituhui.pea.pojo.*; import com.dituhui.pea.pojo.*;
import com.dituhui.pea.pojo.user.OrgInfo;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
...@@ -12,39 +13,42 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -12,39 +13,42 @@ import org.springframework.web.bind.annotation.RequestParam;
import com.dituhui.pea.common.Result; import com.dituhui.pea.common.Result;
import com.dituhui.pea.enums.ThirdPartyEnum; import com.dituhui.pea.enums.ThirdPartyEnum;
import java.util.List;
/** /**
* 用户相关接口 * 用户相关接口
*
* @author * @author
*/ */
@FeignClient(value = "project-user", contextId = "user") @FeignClient(value = "project-user", contextId = "user")
public interface IUser { public interface IUser {
/** /**
* 登录接口 * 登录接口
* *
* @param user * @param user
* @return * @return
*/ */
@RequestMapping(value = "/pea-user/login", method = RequestMethod.POST) @RequestMapping(value = "/pea-user/login", method = RequestMethod.POST)
public Result<UserLoginDTO> userLogin(@RequestBody UserLoginParam user); public Result<UserLoginDTO> userLogin(@RequestBody UserLoginParam user);
/** /**
* 获取用户信息 * 获取用户信息
* *
* @param userId * @param userId
* @return * @return
*/ */
@RequestMapping(value = "/pea-user/userInfo", method = RequestMethod.GET) @RequestMapping(value = "/pea-user/userInfo", method = RequestMethod.GET)
public Result<UserLoginDTO> getUserInfo(@RequestHeader(name="userId", required = true) String userId); public Result<UserLoginDTO> getUserInfo(@RequestHeader(name = "userId", required = true) String userId);
/** /**
* 刷新appkey接口<br> * 刷新appkey接口<br>
* 初始化系统ak缓存,例如系统上线,新ak入库的时候 * 初始化系统ak缓存,例如系统上线,新ak入库的时候
* *
* @return * @return
*/ */
@RequestMapping(value = "/pea-user/refreshAppkey", method = RequestMethod.POST) @RequestMapping(value = "/pea-user/refreshAppkey", method = RequestMethod.POST)
public Result<Boolean> refreshAppkey(); public Result<Boolean> refreshAppkey();
/** /**
* 获取当前登陆用户信息 * 获取当前登陆用户信息
...@@ -59,6 +63,7 @@ public interface IUser { ...@@ -59,6 +63,7 @@ public interface IUser {
/** /**
* 获取用户信息 * 获取用户信息
*
* @param id 用户ID * @param id 用户ID
* @return * @return
*/ */
...@@ -86,7 +91,7 @@ public interface IUser { ...@@ -86,7 +91,7 @@ public interface IUser {
/** /**
* 获取用户信息 * 获取用户信息
* *
* @param id 第三方标志 * @param id 第三方标志
* @param type 第三方类型 * @param type 第三方类型
* @return * @return
*/ */
...@@ -96,31 +101,35 @@ public interface IUser { ...@@ -96,31 +101,35 @@ public interface IUser {
/** /**
* 添加用户 * 添加用户
*
* @param userInfo 用户信息 * @param userInfo 用户信息
* @return * @return
*/ */
@RequestMapping(value = "/pea-user/add", method = RequestMethod.POST) @RequestMapping(value = "/pea-user/add", method = RequestMethod.POST)
WebResult<UserInfo> addUser(@RequestBody UserInfo userInfo); Result<UserInfo> addUser(@RequestBody UserInfo userInfo);
/** /**
* 更新用户 * 更新用户
*
* @param userInfo 用户信息 * @param userInfo 用户信息
* @return * @return
*/ */
@RequestMapping(value = "/pea-user/update", method = RequestMethod.POST) @RequestMapping(value = "/pea-user/update", method = RequestMethod.POST)
WebResult<UserInfo> updateUser(@RequestBody UserInfo userInfo); Result<UserInfo> updateUser(@RequestBody UserInfo userInfo);
/** /**
* 删除用户 * 删除用户
*
* @param userId 用户ID * @param userId 用户ID
* @return * @return
*/ */
@RequestMapping(value = "/pea-user/delete", method = RequestMethod.POST) @RequestMapping(value = "/pea-user/delete", method = RequestMethod.POST)
WebResult<Boolean> deleteUser(@RequestParam("id") String userId); Result<Boolean> deleteUser(@RequestBody UserInfoSearch search);
/** /**
* 注册用户 * 注册用户
*
* @param userInfo 用户信息 * @param userInfo 用户信息
* @return * @return
*/ */
...@@ -129,6 +138,7 @@ public interface IUser { ...@@ -129,6 +138,7 @@ public interface IUser {
/** /**
* 第三方用户注册 * 第三方用户注册
*
* @param thirdUserInfo 第三方用户信息 * @param thirdUserInfo 第三方用户信息
* @return * @return
*/ */
...@@ -138,6 +148,7 @@ public interface IUser { ...@@ -138,6 +148,7 @@ public interface IUser {
/** /**
* 用户列表 * 用户列表
*
* @param search 查询条件 * @param search 查询条件
* @return * @return
*/ */
...@@ -147,10 +158,21 @@ public interface IUser { ...@@ -147,10 +158,21 @@ public interface IUser {
/** /**
* 禁用用户 * 禁用用户
*
* @param search 查询条件 * @param search 查询条件
* @return * @return
*/ */
@RequestMapping(value = "/pea-user/ban", method = RequestMethod.GET) @RequestMapping(value = "/pea-user/ban", method = RequestMethod.POST)
Result<Boolean> ban(UserInfoSearch search); Result<Boolean> ban(@RequestBody UserInfoSearch search);
/**
* 获取用户组织
*
* @param userId 查询条件
* @return
*/
@RequestMapping(value = "/pea-user/orgs", method = RequestMethod.GET)
Result<List<OrgInfo>> orgs(String userId);
} }
...@@ -34,10 +34,10 @@ ...@@ -34,10 +34,10 @@
<version>${druid.version}</version> <version>${druid.version}</version>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>com.alibaba.cloud</groupId> <!-- <groupId>com.alibaba.cloud</groupId>-->
<artifactId>spring-cloud-starter-alibaba-seata</artifactId> <!-- <artifactId>spring-cloud-starter-alibaba-seata</artifactId>-->
</dependency> <!-- </dependency>-->
<dependency> <dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>
......
...@@ -5,11 +5,13 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; ...@@ -5,11 +5,13 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing; import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication @SpringBootApplication
@ComponentScan(basePackages = "com.dituhui.pea") @ComponentScan(basePackages = "com.dituhui.pea")
@EnableFeignClients(basePackages = {"com.dituhui.pea.order"}) @EnableFeignClients(basePackages = {"com.dituhui.pea.order"})
@EnableJpaAuditing @EnableJpaAuditing
@EnableTransactionManagement
public class Application { public class Application {
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -40,6 +40,14 @@ public class RoleController implements IRole { ...@@ -40,6 +40,14 @@ public class RoleController implements IRole {
} }
@Override
public Result<RoleInfo> deleteRole2(@Validated RoleInfo roleInfo) {
roleInfo = roleService.deleteRole2(roleInfo);
return Result.success(roleInfo);
}
@Override @Override
public Result<RoleInfo> updateRole(@Validated RoleInfo roleInfo) { public Result<RoleInfo> updateRole(@Validated RoleInfo roleInfo) {
roleInfo = roleService.updateRole(roleInfo); roleInfo = roleService.updateRole(roleInfo);
......
...@@ -3,6 +3,8 @@ package com.dituhui.pea.user.controller; ...@@ -3,6 +3,8 @@ package com.dituhui.pea.user.controller;
import com.dituhui.pea.common.PageResult; import com.dituhui.pea.common.PageResult;
import com.dituhui.pea.pojo.*; import com.dituhui.pea.pojo.*;
import com.dituhui.pea.pojo.user.OrgInfo;
import com.dituhui.pea.user.dao.UserOrgDao;
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;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -16,6 +18,8 @@ import com.dituhui.pea.user.service.UserService; ...@@ -16,6 +18,8 @@ import com.dituhui.pea.user.service.UserService;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import java.util.List;
/** /**
* 用户控制层 * 用户控制层
*/ */
...@@ -84,39 +88,38 @@ public class UserController implements IUser { ...@@ -84,39 +88,38 @@ public class UserController implements IUser {
} }
@Override @Override
public WebResult<UserInfo> addUser(UserInfo userInfo) { public Result<UserInfo> addUser(UserInfo userInfo) {
if (ObjectUtil.isNull(userInfo)) { if (ObjectUtil.isNull(userInfo)) {
return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY); return Result.failed(StatusCodeEnum.COMMON_PARAM_EMPTY, null);
} }
if (StringUtils.isBlank(userInfo.getAccount())) { if (StringUtils.isBlank(userInfo.getAccount())) {
return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY); return Result.failed(StatusCodeEnum.COMMON_PARAM_EMPTY, null);
} }
if (StringUtils.isBlank(userInfo.getPassword())) { // if (StringUtils.isBlank(userInfo.getPassword())) {
return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY); // return Result.failed(StatusCodeEnum.COMMON_PARAM_EMPTY, null);
} // }
userInfo = userService.saveUser(userInfo); return userService.saveUser(userInfo);
return WebResult.ok(userInfo);
} }
@Override @Override
public WebResult<UserInfo> updateUser(UserInfo userInfo) { public Result<UserInfo> updateUser(UserInfo userInfo) {
if (userInfo == null) { if (userInfo == null) {
return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY); return Result.failed(StatusCodeEnum.COMMON_PARAM_EMPTY, null);
} }
if (StringUtils.isBlank(userInfo.getId())) { if (StringUtils.isBlank(userInfo.getId())) {
return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY); return Result.failed(StatusCodeEnum.COMMON_PARAM_EMPTY, null);
} }
userInfo = userService.updateUser(userInfo); return userService.updateUser(userInfo);
return WebResult.ok(userInfo);
} }
@Override @Override
public WebResult<Boolean> deleteUser(String userId) { public Result<Boolean> deleteUser(UserInfoSearch search) {
String userId = search.getId();
if (StringUtils.isBlank(userId)) { if (StringUtils.isBlank(userId)) {
return WebResult.failed(StatusCodeEnum.COMMON_PARAM_EMPTY); return Result.failed(StatusCodeEnum.COMMON_PARAM_EMPTY, null);
} }
userService.deleteUser(userId); userService.deleteUser(userId);
return WebResult.ok(); return Result.success(true);
} }
@Override @Override
...@@ -157,4 +160,10 @@ public class UserController implements IUser { ...@@ -157,4 +160,10 @@ public class UserController implements IUser {
return Result.success(true); return Result.success(true);
} }
@Override
public Result<List<OrgInfo>> orgs(String userId) {
List<OrgInfo> orgInfos = userService.orgs(userId);
return Result.success(orgInfos);
}
} }
...@@ -5,6 +5,8 @@ import org.springframework.data.jpa.repository.JpaRepository; ...@@ -5,6 +5,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.CrudRepository;
import java.util.List;
/** /**
* 用户组织关联表 * 用户组织关联表
*/ */
...@@ -17,7 +19,7 @@ public interface UserOrgDao extends JpaRepository<UserOrgEntity, String>, JpaSpe ...@@ -17,7 +19,7 @@ public interface UserOrgDao extends JpaRepository<UserOrgEntity, String>, JpaSpe
* @param id * @param id
* @return * @return
*/ */
UserOrgEntity findByUserId(String id); List<UserOrgEntity> findByUserId(String userId);
void deleteByUserId(String userId); void deleteByUserId(String userId);
} }
...@@ -9,6 +9,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; ...@@ -9,6 +9,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
/** /**
...@@ -18,7 +19,7 @@ import java.util.Date; ...@@ -18,7 +19,7 @@ import java.util.Date;
@Data @Data
@Entity @Entity
@Table(name ="sys_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;
/** /**
...@@ -27,7 +28,7 @@ public class RoleEntity implements Serializable { ...@@ -27,7 +28,7 @@ public class RoleEntity implements Serializable {
@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 = 60)
private String id; private String id;
/** /**
* 名称 * 名称
...@@ -54,9 +55,9 @@ public class RoleEntity implements Serializable { ...@@ -54,9 +55,9 @@ public class RoleEntity implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
@Column(name = "CREATED_TIME") // @Column(name = "CREATED_TIME")
@CreatedDate @Column(name = "CREATED_TIME", nullable = false, updatable = false, columnDefinition = "timestamp default current_timestamp")
private Date createdTime; private LocalDateTime createdTime;
/** /**
* 更新人 * 更新人
*/ */
...@@ -65,13 +66,14 @@ public class RoleEntity implements Serializable { ...@@ -65,13 +66,14 @@ public class RoleEntity implements Serializable {
/** /**
* 更新时间 * 更新时间
*/ */
@Column(name = "UPDATED_TIME") // @Column(name = "UPDATED_TIME")
@LastModifiedDate @Column(name = "UPDATED_TIME", nullable = false, columnDefinition = "timestamp default current_timestamp on update current_timestamp")
private Date updatedTime; private LocalDateTime updatedTime;
/** /**
* 备注 * 备注
*/ */
@Column(name = "notes")
private String notes; private String notes;
} }
...@@ -120,6 +120,12 @@ public class UserEntity implements Serializable { ...@@ -120,6 +120,12 @@ public class UserEntity implements Serializable {
private Integer ban = 0; private Integer ban = 0;
/** /**
* 是否正常 0: 否 1:是 默认1
*/
@Column(name = "status")
private Integer status = 1;
/**
* 用户来源:0:bean 1:新建 * 用户来源:0:bean 1:新建
*/ */
@Column(name = "source") @Column(name = "source")
...@@ -130,4 +136,10 @@ public class UserEntity implements Serializable { ...@@ -130,4 +136,10 @@ public class UserEntity implements Serializable {
*/ */
@Column(name = "engineer_code") @Column(name = "engineer_code")
private String engineerCode; private String engineerCode;
/**
* 备注
*/
@Column(name = "notes")
private String notes;
} }
...@@ -24,9 +24,14 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -24,9 +24,14 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
...@@ -59,7 +64,8 @@ public class RoleService { ...@@ -59,7 +64,8 @@ public class RoleService {
@Autowired @Autowired
RedisService redisService; RedisService redisService;
// @Autowired
// private DataSourceTransactionManager dataSourceTransactionManager;
/** /**
* 失效时间ms * 失效时间ms
*/ */
...@@ -68,19 +74,27 @@ public class RoleService { ...@@ -68,19 +74,27 @@ public class RoleService {
@Transactional @Transactional
public RoleInfo addRole(RoleInfo roleInfo) { public RoleInfo addRole(RoleInfo roleInfo) {
RoleEntity roleEntity = assembleRole(roleInfo); String name = roleInfo.getName();
String createdBy = roleInfo.getCreatedBy();
String notes = roleInfo.getNotes();
RoleEntity roleEntity = new RoleEntity();
roleEntity.setName(name);
roleEntity.setCreatedBy(createdBy);
roleEntity.setCreatedTime(LocalDateTime.now());
roleEntity.setNotes(notes);
// RoleEntity roleEntity = assembleRole(roleInfo);
log.info("新增角色入参:" + JSONObject.toJSONString(roleEntity)); log.info("新增角色入参:" + JSONObject.toJSONString(roleEntity));
roleEntity = roleDao.save(roleEntity); roleEntity = roleDao.save(roleEntity);
// roleInfo = BeanUtil.copyProperties(roleEntity, RoleInfo.class);
roleInfo.setId(roleEntity.getId());
List<RoleResourceInfo> resourceInfos = roleInfo.getResourceInfos(); List<RoleResourceInfo> resourceInfos = roleInfo.getResourceInfos();
if (CollectionUtils.isNotEmpty(resourceInfos)) { if (CollectionUtils.isNotEmpty(resourceInfos)) {
for (RoleResourceInfo resourceInfo : resourceInfos) { for (RoleResourceInfo resourceInfo : resourceInfos) {
RoleResourceEntity roleResourceEntity = assembleRoleResource(roleEntity.getId(), resourceInfo.getResourceId()); RoleResourceEntity roleResourceEntity = assembleRoleResource(roleInfo.getId(), resourceInfo.getResourceId());
roleResourceDao.save(roleResourceEntity); roleResourceDao.save(roleResourceEntity);
} }
} }
// roleInfo = BeanUtil.copyProperties(roleEntity, RoleInfo.class); log.info("新增角色信息:" + JSONObject.toJSONString(roleInfo));
roleInfo.setId(roleEntity.getId());
log.info("新增角色信息:" + JSONObject.toJSONString(roleEntity));
return roleInfo; return roleInfo;
} }
...@@ -117,6 +131,34 @@ public class RoleService { ...@@ -117,6 +131,34 @@ public class RoleService {
roleResourceDao.deleteByRoleId(roleId); roleResourceDao.deleteByRoleId(roleId);
} }
@Transactional(rollbackFor = Exception.class)
public RoleInfo deleteRole2(RoleInfo roleInfo) {
String name = roleInfo.getName();
String createdBy = roleInfo.getCreatedBy();
String notes = roleInfo.getNotes();
RoleEntity roleEntity = new RoleEntity();
roleEntity.setName(name);
roleEntity.setCreatedBy(createdBy);
roleEntity.setCreatedTime(LocalDateTime.now());
roleEntity.setNotes(notes);
// RoleEntity roleEntity = assembleRole(roleInfo);
log.info("新增角色入参:" + JSONObject.toJSONString(roleEntity));
roleEntity = roleDao.save(roleEntity);
// roleInfo = BeanUtil.copyProperties(roleEntity, RoleInfo.class);
roleInfo.setId(roleEntity.getId());
List<RoleResourceInfo> resourceInfos = roleInfo.getResourceInfos();
if (CollectionUtils.isNotEmpty(resourceInfos)) {
for (RoleResourceInfo resourceInfo : resourceInfos) {
RoleResourceEntity roleResourceEntity = assembleRoleResource(roleInfo.getId(), resourceInfo.getResourceId());
roleResourceDao.save(roleResourceEntity);
}
}
log.info("新增角色信息:" + JSONObject.toJSONString(roleInfo));
return roleInfo;
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void addUserRole(String roleId, String userId) { public void addUserRole(String roleId, String userId) {
// 查询角色是否存在 // 查询角色是否存在
...@@ -249,7 +291,7 @@ public class RoleService { ...@@ -249,7 +291,7 @@ public class RoleService {
RoleEntity roleEntity = new RoleEntity(); RoleEntity roleEntity = new RoleEntity();
roleEntity.setName(roleInfo.getName()); roleEntity.setName(roleInfo.getName());
roleEntity.setCreatedBy(roleInfo.getCreatedBy()); roleEntity.setCreatedBy(roleInfo.getCreatedBy());
roleEntity.setCreatedTime(new Date()); roleEntity.setCreatedTime(LocalDateTime.now());
roleEntity.setNotes(roleInfo.getNotes()); roleEntity.setNotes(roleInfo.getNotes());
return roleEntity; return roleEntity;
} }
......
...@@ -13,16 +13,16 @@ import javax.persistence.criteria.Predicate; ...@@ -13,16 +13,16 @@ import javax.persistence.criteria.Predicate;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.dituhui.pea.common.PageResult; import com.dituhui.pea.common.PageResult;
import com.dituhui.pea.pojo.*; import com.dituhui.pea.pojo.*;
import com.dituhui.pea.pojo.user.OrgInfo;
import com.dituhui.pea.user.dao.*; import com.dituhui.pea.user.dao.*;
import com.dituhui.pea.user.entity.*; import com.dituhui.pea.user.entity.*;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.hibernate.query.internal.NativeQueryImpl; import org.hibernate.query.internal.NativeQueryImpl;
import org.hibernate.transform.Transformers; import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -63,6 +63,8 @@ public class UserService { ...@@ -63,6 +63,8 @@ public class UserService {
*/ */
private static final int LIVE_TIME_MILLIS = 7200000; private static final int LIVE_TIME_MILLIS = 7200000;
private static final Gson gson = new Gson(); private static final Gson gson = new Gson();
private static final java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
;
@Autowired @Autowired
UserDao userDao; UserDao userDao;
...@@ -285,16 +287,22 @@ public class UserService { ...@@ -285,16 +287,22 @@ public class UserService {
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public UserInfo saveUser(UserInfo userInfo) { public Result<UserInfo> saveUser(UserInfo userInfo) {
// 校验用户信息 // 校验用户信息
checkAccount(userInfo); Result<UserInfo> checkAccount = checkAccount(userInfo);
if (null != checkAccount) {
return checkAccount;
}
UserEntity userEntity = BeanUtil.copyProperties(userInfo, UserEntity.class); UserEntity userEntity = BeanUtil.copyProperties(userInfo, UserEntity.class);
// 密码MD5加密 // 密码MD5加密
userEntity.setPassword(SecureUtil.md5(userInfo.getPassword())); userEntity.setPassword(SecureUtil.md5(userEntity.getPhone().substring(userEntity.getPhone().length() - 6)));
// 保存用户信息 // 保存用户信息
userEntity = userDao.save(userEntity); userEntity = userDao.save(userEntity);
userInfo.setId(userEntity.getId());
savaUserRoleAndOrgInfo(userInfo); savaUserRoleAndOrgInfo(userInfo);
return BeanUtil.copyProperties(userEntity, UserInfo.class); UserInfo info = BeanUtil.copyProperties(userEntity, UserInfo.class);
info.setPassword(null);
return Result.success(info);
} }
/** /**
...@@ -424,19 +432,23 @@ public class UserService { ...@@ -424,19 +432,23 @@ public class UserService {
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public UserInfo updateUser(UserInfo userInfo) { public Result<UserInfo> updateUser(UserInfo userInfo) {
// 校验用户信息 // 校验用户信息
checkAccount(userInfo); Result<UserInfo> checkAccount = checkAccount(userInfo);
if (null != checkAccount) {
return checkAccount;
}
// 查询用户信息是否存在 // 查询用户信息是否存在
UserEntity userEntity = userDao.findById(userInfo.getId()).orElse(null); UserEntity userEntity = userDao.findById(userInfo.getId()).orElse(null);
if (ObjectUtil.isNull(userEntity)) { if (ObjectUtil.isNull(userEntity)) {
throw new BusinessException(StatusCodeEnum.USER_DOES_NOT_EXIST); return Result.failed(StatusCodeEnum.USER_DOES_NOT_EXIST, null);
} }
assembleUpdateUserInfo(userInfo, userEntity); assembleUpdateUserInfo(userInfo, userEntity);
userEntity = userDao.save(userEntity); userEntity = userDao.save(userEntity);
savaUserRoleAndOrgInfo(userInfo); savaUserRoleAndOrgInfo(userInfo);
userInfo = BeanUtil.copyProperties(userEntity, UserInfo.class); userInfo = BeanUtil.copyProperties(userEntity, UserInfo.class);
return userInfo; userInfo.setPassword(null);
return Result.success(userInfo);
} }
/** /**
...@@ -460,11 +472,17 @@ public class UserService { ...@@ -460,11 +472,17 @@ public class UserService {
userRoleDao.save(userRoleEntity); userRoleDao.save(userRoleEntity);
} }
} }
if (MapUtils.isNotEmpty(userRoleMap)) {
for (String roleId : userRoleMap.keySet()) {
UserRoleEntity userRoleEntity = userRoleMap.get(roleId);
userRoleDao.deleteById(userRoleEntity.getId());
}
}
} }
//处理用户机构关联信息 //处理用户机构关联信息
if (CollectionUtils.isNotEmpty(userInfo.getOrgIds()) && null != userInfo.getOrgIds()) { if (CollectionUtils.isNotEmpty(userInfo.getOrgIds()) && null != userInfo.getOrgIds()) {
userOrgDao.deleteByUserId(userInfo.getId());
for (Integer orgId : userInfo.getOrgIds()) { for (Integer orgId : userInfo.getOrgIds()) {
userOrgDao.deleteByUserId(userInfo.getId());
UserOrgEntity userOrgEntity = new UserOrgEntity(); UserOrgEntity userOrgEntity = new UserOrgEntity();
userOrgEntity.setUserId(userInfo.getId()); userOrgEntity.setUserId(userInfo.getId());
userOrgEntity.setOrgId(orgId); userOrgEntity.setOrgId(orgId);
...@@ -515,33 +533,39 @@ public class UserService { ...@@ -515,33 +533,39 @@ public class UserService {
* *
* @param userInfo 用户信息 * @param userInfo 用户信息
*/ */
private void checkAccount(UserInfo userInfo) { private Result<UserInfo> checkAccount(UserInfo userInfo) {
// 校验账号 // 校验账号
if (StringUtils.isNotBlank(userInfo.getAccount())) { if (StringUtils.isNotBlank(userInfo.getAccount())) {
if (checkAccount(userInfo.getAccount(), userInfo.getId())) { if (checkAccount(userInfo.getAccount(), userInfo.getId())) {
throw new BusinessException(StatusCodeEnum.ACCOUNT_EXISTS); return Result.failed(StatusCodeEnum.ACCOUNT_EXISTS, null);
// throw new BusinessException(StatusCodeEnum.ACCOUNT_EXISTS);
} }
} }
// 校验手机号 // 校验手机号
if (StringUtils.isNotBlank(userInfo.getPhone())) { if (StringUtils.isNotBlank(userInfo.getPhone())) {
// 校验手机格式是否正确 // 校验手机格式是否正确
if (!Validator.isMobile(userInfo.getPhone())) { if (!Validator.isMobile(userInfo.getPhone())) {
throw new BusinessException(StatusCodeEnum.COMMON_PARAM_ERROR); return Result.failed(StatusCodeEnum.COMMON_PARAM_ERROR, null);
// throw new BusinessException(StatusCodeEnum.COMMON_PARAM_ERROR);
} }
if (checkPhone(userInfo.getPhone(), userInfo.getId())) { if (checkPhone(userInfo.getPhone(), userInfo.getId())) {
throw new BusinessException(StatusCodeEnum.MOBILE_NUMBER_EXISTS); return Result.failed(StatusCodeEnum.MOBILE_NUMBER_EXISTS, null);
// throw new BusinessException(StatusCodeEnum.MOBILE_NUMBER_EXISTS);
} }
} }
// 校验邮箱 // 校验邮箱
if (StringUtils.isNotBlank(userInfo.getEmail())) { if (StringUtils.isNotBlank(userInfo.getEmail())) {
// 校验邮箱格式是否正确 // 校验邮箱格式是否正确
if (!Validator.isEmail(userInfo.getEmail())) { if (!Validator.isEmail(userInfo.getEmail())) {
throw new BusinessException(StatusCodeEnum.COMMON_PARAM_ERROR); return Result.failed(StatusCodeEnum.COMMON_PARAM_ERROR, null);
// throw new BusinessException(StatusCodeEnum.COMMON_PARAM_ERROR);
} }
if (checkEmail(userInfo.getEmail(), userInfo.getId())) { if (checkEmail(userInfo.getEmail(), userInfo.getId())) {
throw new BusinessException(StatusCodeEnum.EMAIL_EXISTS); return Result.failed(StatusCodeEnum.EMAIL_EXISTS, null);
// throw new BusinessException(StatusCodeEnum.EMAIL_EXISTS);
} }
} }
return null;
} }
/** /**
...@@ -680,7 +704,7 @@ public class UserService { ...@@ -680,7 +704,7 @@ public class UserService {
querySql.append("and su.source =" + search.getSource() + " "); querySql.append("and su.source =" + search.getSource() + " ");
} }
if (null != search.getOrgId()) { if (null != search.getOrgId()) {
querySql.append("and suo.org_id =" + search.getOrgId() + " "); querySql.append("and suo.org_id ='" + search.getOrgId() + "'");
} }
if (null != search.getQueryString()) { if (null != search.getQueryString()) {
querySql.append("and (su.engineer_code LIKE '%" + search.getQueryString() + "%' or su.nickname like '%" + search.getQueryString() + "%' or su.phone like '%" + search.getQueryString() + "%' or su.email like '%" + search.getQueryString() + "%' )"); querySql.append("and (su.engineer_code LIKE '%" + search.getQueryString() + "%' or su.nickname like '%" + search.getQueryString() + "%' or su.phone like '%" + search.getQueryString() + "%' or su.email like '%" + search.getQueryString() + "%' )");
...@@ -726,6 +750,13 @@ public class UserService { ...@@ -726,6 +750,13 @@ public class UserService {
search.setPhone(map.containsKey("phone") && ObjectUtil.isNotEmpty(map.get("phone")) ? map.get("phone").toString() : null); search.setPhone(map.containsKey("phone") && ObjectUtil.isNotEmpty(map.get("phone")) ? map.get("phone").toString() : null);
search.setEngineerCode(map.containsKey("engineer_code") && ObjectUtil.isNotEmpty(map.get("engineer_code")) ? map.get("engineer_code").toString() : null); search.setEngineerCode(map.containsKey("engineer_code") && ObjectUtil.isNotEmpty(map.get("engineer_code")) ? map.get("engineer_code").toString() : null);
search.setRoleName(map.containsKey("roleName") && ObjectUtil.isNotEmpty(map.get("roleName")) ? map.get("roleName").toString() : null); search.setRoleName(map.containsKey("roleName") && ObjectUtil.isNotEmpty(map.get("roleName")) ? map.get("roleName").toString() : null);
search.setBan(map.containsKey("ban") && ObjectUtil.isNotEmpty(map.get("ban")) ? Integer.parseInt(map.get("ban").toString()) : null);
search.setCreatedBy(map.containsKey("CREATED_BY") && ObjectUtil.isNotEmpty(map.get("CREATED_BY")) ? map.get("CREATED_BY").toString() : null);
search.setUpdatedBy(map.containsKey("UPDATED_BY") && ObjectUtil.isNotEmpty(map.get("UPDATED_BY")) ? map.get("UPDATED_BY").toString() : null);
search.setNotes(map.containsKey("notes") && ObjectUtil.isNotEmpty(map.get("notes")) ? map.get("notes").toString() : null);
search.setCreatedTime(map.containsKey("CREATED_TIME") && ObjectUtil.isNotEmpty(map.get("CREATED_TIME")) ? formatter.format(map.get("CREATED_TIME")) : null);
search.setUpdatedTime(map.containsKey("UPDATED_TIME") && ObjectUtil.isNotEmpty(map.get("UPDATED_TIME")) ? formatter.format(map.get("UPDATED_TIME")) : null);
search.setLastLoginTime(map.containsKey("LAST_LOGIN_TIME") && ObjectUtil.isNotEmpty(map.get("LAST_LOGIN_TIME")) ? formatter.format(map.get("LAST_LOGIN_TIME")) : null);
return search; return search;
} }
...@@ -742,4 +773,18 @@ public class UserService { ...@@ -742,4 +773,18 @@ public class UserService {
userDao.save(byId); userDao.save(byId);
} }
} }
public List<OrgInfo> orgs(String userId) {
List<OrgInfo> orgInfos = new ArrayList<>();
List<UserOrgEntity> byUserId = userOrgDao.findByUserId(userId);
if (CollectionUtils.isEmpty(byUserId)) {
return orgInfos;
}
byUserId.forEach(e -> {
OrgInfo orgInfo = new OrgInfo();
orgInfo.setId(e.getOrgId());
orgInfos.add(orgInfo);
});
return orgInfos;
}
} }
...@@ -42,11 +42,11 @@ spring: ...@@ -42,11 +42,11 @@ spring:
seata: #seata:
application-id: ${spring.application.name} # application-id: ${spring.application.name}
tx-service-group: ${spring.application.name}-group # tx-service-group: ${spring.application.name}-group
service: # service:
vgroup-mapping: # vgroup-mapping:
project-user-group: default # project-user-group: default
grouplist: # grouplist:
default: seata-server:8091 # default: seata-server:8091
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!