Просмотр исходного кода

Merge branch 'develop' of gitadmin/tuoheng_freeway into release

tags/v1.0.0^2
chengwang 1 год назад
Родитель
Сommit
98b687566b
9 измененных файлов: 214 добавлений и 23 удалений
  1. +15
    -4
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/controller/UserController.java
  2. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/enums/code/user/QueryUserInfoByIdCodeEnum.java
  3. +25
    -1
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/dept/add/AddDeptService.java
  4. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/dept/update/UpdateDeptService.java
  5. +7
    -2
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/user/IUserService.java
  6. +15
    -3
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/user/UserServiceImpl.java
  7. +139
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/user/init/SystemUserInitService.java
  8. +10
    -10
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/user/query/QueryUserInfoByIdService.java
  9. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/resources/mapper/RoadInformationMapper.xml

+ 15
- 4
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/controller/UserController.java Просмотреть файл

@@ -40,12 +40,12 @@ public class UserController {
/**
* 获取用户详情
*
* @param id 用户ID
* @param username
* @return
*/
@GetMapping("/info/{id}")
public JsonResult getUserInfo(@PathVariable("id") String id) {
return userService.getUserInfo(id);
@GetMapping("/info/{username}")
public JsonResult getUserInfo(@PathVariable("username") String username) {
return userService.getUserInfo(username);
}

/**
@@ -114,4 +114,15 @@ public class UserController {
return userService.getListByDeptId(deptId);
}

/**
* 初始化系统超级管理员用户
*
* @param username
* @return
*/
@PostMapping("/init/{username}")
public JsonResult init(@PathVariable("username") String username) {
return userService.init(username);
}

}

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/enums/code/user/QueryUserInfoByIdCodeEnum.java Просмотреть файл

@@ -12,7 +12,7 @@ package com.tuoheng.admin.enums.code.user;
public enum QueryUserInfoByIdCodeEnum {

QUERY_ID_IS_NULL(1100600, "查询失败"),
USER_ID_IS_NULL(1100601, "用户ID为空"),
USERNAME_ID_IS_NULL(1100601, "用户名为空"),
USER_IS_NOT_EXIST(1100602, "用户不存在"),
NON_TENANT_USER(1100603, "当前用户非本租户用户");


+ 25
- 1
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/dept/add/AddDeptService.java Просмотреть файл

@@ -1,11 +1,13 @@
package com.tuoheng.admin.service.dept.add;

import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.tuoheng.admin.entity.*;
import com.tuoheng.admin.enums.code.dept.AddDeptCodeEnum;
import com.tuoheng.admin.mapper.DeptMapper;
import com.tuoheng.admin.mapper.RoadDeptMapper;
import com.tuoheng.admin.mapper.SectionDeptMapper;
import com.tuoheng.admin.mapper.UserMapper;
import com.tuoheng.admin.request.dept.AddDeptRequest;
import com.tuoheng.admin.dto.RoadSectionDto;
import com.tuoheng.admin.utils.CurrentUserUtil;
@@ -37,6 +39,9 @@ public class AddDeptService {
@Autowired
private DeptMapper deptMapper;

@Autowired
private UserMapper userMapper;

@Autowired
private RoadDeptMapper roadDeptMapper;

@@ -61,7 +66,7 @@ public class AddDeptService {
dept.setTenantId(tenantId);
dept.setName(addDeptRequest.getName());
dept.setPid(addDeptRequest.getPid());
// dept.setCreateUser(ShiroUtils.getUserId());
dept.setCreateUser(CurrentUserUtil.getUserId());
dept.setCreateTime(DateUtils.now());
Integer rowId = deptMapper.insert(dept);
log.info("新增部门, 返回结果: deptId={}", dept.getId());
@@ -71,6 +76,8 @@ public class AddDeptService {
return JsonResult.error(AddDeptCodeEnum.ADD_DEPT_IS_FAILED.getCode(), AddDeptCodeEnum.ADD_DEPT_IS_FAILED.getMsg());
}

this.updateSuperAdminUser(dept);

// 新增公路/路段与部门数据
addRoadAndSectionToDept(tenantId, dept.getId(), addDeptRequest.getRoadSectionDtoList());

@@ -236,4 +243,21 @@ public class AddDeptService {
}
}

/**
* 如果创建的是顶级部门,将该部门与超级管理员关联
*/
private void updateSuperAdminUser(Dept dept) {
if (!"0".equals(dept.getPid())) {
return;
}
User user = userMapper.selectOne(new LambdaQueryWrapper<User>()
.eq(User::getRoleId, 1)
.eq(User::getMark, 1));
if (ObjectUtil.isNull(user)) {
return;
}
user.setDeptId(dept.getId());
userMapper.updateById(user);
}

}

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/dept/update/UpdateDeptService.java Просмотреть файл

@@ -169,7 +169,7 @@ public class UpdateDeptService {
dept.setTenantId(tenantId);
dept.setName(newEditDeptRequest.getName());
dept.setFullname(newEditDeptRequest.getName());
// dept.setUpdateUser(ShiroUtils.getUserId());
dept.setUpdateUser(CurrentUserUtil.getUserId());
dept.setUpdateTime(DateUtils.now());

Integer rowId = deptMapper.update(dept);

+ 7
- 2
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/user/IUserService.java Просмотреть файл

@@ -30,10 +30,10 @@ public interface IUserService {
/**
* 获取用户详情
*
* @param id 用户ID
* @param username
* @return
*/
JsonResult getUserInfo(@PathVariable("id") String id);
JsonResult getUserInfo(String username);

/**
* 添加用户
@@ -82,4 +82,9 @@ public interface IUserService {
*/
JsonResult getListByDeptId(String deptId);

/**
* 初始化系统超级管理员用户
*/
JsonResult init(String username);

}

+ 15
- 3
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/user/UserServiceImpl.java Просмотреть файл

@@ -5,6 +5,7 @@ import com.tuoheng.admin.request.user.QueryUserPageListRequest;
import com.tuoheng.admin.request.user.UserResetPwdRequest;
import com.tuoheng.admin.service.user.add.AddUserService;
import com.tuoheng.admin.service.user.delete.DeleteUserService;
import com.tuoheng.admin.service.user.init.SystemUserInitService;
import com.tuoheng.admin.service.user.query.QueryUserInfoByIdService;
import com.tuoheng.admin.service.user.query.QueryUserListByDeptIdService;
import com.tuoheng.admin.service.user.query.QueryUserPageListService;
@@ -57,6 +58,9 @@ public class UserServiceImpl implements IUserService {
@Autowired
private QueryUserInfoByIdService queryUserInfoByIdService;

@Autowired
private SystemUserInitService systemUserInitService;

/**
* 获取用户分页列表
*
@@ -71,12 +75,12 @@ public class UserServiceImpl implements IUserService {
/**
* 获取用户详情
*
* @param id 用户ID
* @param username
* @return
*/
@Override
public JsonResult getUserInfo(String id) {
return queryUserInfoByIdService.getUserInfo(id);
public JsonResult getUserInfo(String username) {
return queryUserInfoByIdService.getUserInfo(username);
}

/**
@@ -145,4 +149,12 @@ public class UserServiceImpl implements IUserService {
return queryUserListByDeptIdService.getListByDeptId(deptId);
}

/**
* 初始化系统超级管理员用户
*/
@Override
public JsonResult init(String username) {
return systemUserInitService.init(username);
}

}

+ 139
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/user/init/SystemUserInitService.java Просмотреть файл

@@ -0,0 +1,139 @@
package com.tuoheng.admin.service.user.init;

import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.tuoheng.admin.constant.SystemConstant;
import com.tuoheng.admin.entity.Role;
import com.tuoheng.admin.entity.Tenant;
import com.tuoheng.admin.entity.User;
import com.tuoheng.admin.mapper.RoleMapper;
import com.tuoheng.admin.mapper.TenantMapper;
import com.tuoheng.admin.mapper.UserMapper;
import com.tuoheng.admin.service.third.oidc.OidcService;
import com.tuoheng.common.core.utils.CommonUtils;
import com.tuoheng.common.core.utils.DateUtils;
import com.tuoheng.common.core.utils.JsonResult;
import com.tuoheng.common.core.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
* 初始化系统用户业务层处理
*
* @author wanjing
* @team tuoheng
* @date 2022-12-29
*/
@Slf4j
@Service
public class SystemUserInitService {

@Autowired
private UserMapper userMapper;

@Autowired
private RoleMapper roleMapper;

@Autowired
private TenantMapper tenantMapper;

@Autowired
private OidcService oidcService;

/**
* 添加用户数据
*
* @return
*/
public JsonResult init(String username) {
log.info("进入添加用户业务接口");

Tenant tenant = tenantMapper.selectOne(new LambdaQueryWrapper<Tenant>()
.eq(Tenant::getMark, 1));
String tenantId = "";
if (ObjectUtil.isNotNull(tenant)) {
tenantId = tenant.getId();
}

User user = this.buildUser(username, tenantId);
JsonResult result = this.check(user, tenantId);
if (0 != result.getCode()) {
log.info("初始化系统用户业务接口:校验失败:{}", result.getMsg());
return result;
}

// 添加oidc
result = oidcService.addUser(user, tenant);
if (0 != result.getCode()) {
log.info("初始化系统用户业务接口:添加oidc数据失败:{}", result.getMsg());
return result;
}

Integer rowCount = userMapper.insert(user);
if (rowCount <= 0) {
return JsonResult.error(400, "初始化系统用户失败");
}

return JsonResult.success();
}

/**
*
* 构建实体字段数据
*
*/
private User buildUser(String username, String tenantId) {
if (StringUtils.isEmpty(username)) {
username = "gs";
}
User user = new User();
user.setCode("gs");
user.setUsername(username);
user.setRealname("超级管理员");
user.setNickname("超级管理员");
user.setCityName("");
user.setPassword(CommonUtils.password(SystemConstant.INIT_PASSWORD));
user.setAvatar("imagedir/n1o1j9ndau_1670488066287.png");
user.setClientId("1,2");
user.setRoleId(1);
user.setDeptId("");
user.setStatus(1);
user.setTenantId(tenantId);
user.setCreateTime(DateUtils.now());
return user;
}

/**
* 检查参数
*
* @param user
* @return
*/
private JsonResult check(User user, String tenantId) {
Integer count = userMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getTenantId, tenantId)
.eq(User::getRoleId, 1)
.eq(User::getMark, 1));
if (count > 0) {
return JsonResult.error(400, "系统中已经存在超级管理员");
}

count = userMapper.selectCount(new LambdaQueryWrapper<User>()
.eq(User::getTenantId, tenantId)
.eq(User::getUsername, user.getUsername())
.eq(User::getMark, 1));
if (count > 0) {
return JsonResult.error(400, "系统中已经存在该用户名");
}
count = roleMapper.selectCount(new LambdaQueryWrapper<Role>()
.eq(Role::getTenantId, tenantId)
.eq(Role::getId, 1)
.eq(Role::getMark, 1));
if (count <= 0) {
return JsonResult.error(400, "该角色不存在");
}
return JsonResult.success();
}

}

+ 10
- 10
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/user/query/QueryUserInfoByIdService.java Просмотреть файл

@@ -19,7 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
* 根据用户Id查询用户信息业务层处理
* 根据用户查询用户信息业务层处理
*
* @author wanjing
* @team tuoheng
@@ -43,11 +43,11 @@ public class QueryUserInfoByIdService {
*
* @return
*/
public JsonResult getUserInfo(String id) {
log.info("进入根据用户Id查询用户信息业务");
JsonResult result = this.check(id);
public JsonResult getUserInfo(String username) {
log.info("进入根据用户查询用户信息业务");
JsonResult result = this.check(username);
if (0 != result.getCode()) {
log.info("根据用户Id查询用户信息业务:校验失败:{}", result.getMsg());
log.info("根据用户查询用户信息业务:校验失败:{}", result.getMsg());
return result;
}

@@ -73,15 +73,15 @@ public class QueryUserInfoByIdService {
/**
* 检查参数
*
* @param id
* @param username
* @return
*/
private JsonResult check(String id) {
if (StringUtils.isEmpty(id)) {
return JsonResult.error(QueryUserInfoByIdCodeEnum.USER_ID_IS_NULL.getCode(), QueryUserInfoByIdCodeEnum.USER_ID_IS_NULL.getMsg());
private JsonResult check(String username) {
if (StringUtils.isEmpty(username)) {
return JsonResult.error(QueryUserInfoByIdCodeEnum.USERNAME_ID_IS_NULL.getCode(), QueryUserInfoByIdCodeEnum.USERNAME_ID_IS_NULL.getMsg());
}
User user = userMapper.selectOne(new LambdaQueryWrapper<User>()
.eq(User::getId, id)
.eq(User::getUsername, username)
.eq(User::getMark, 1));

if (ObjectUtil.isNull(user)) {

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/resources/mapper/RoadInformationMapper.xml Просмотреть файл

@@ -27,7 +27,7 @@
<select id="getListByMap" parameterType="hashmap" resultMap="RoadInformationResult">
select <include refid="Base_Column_List"/>
from th_road
where mark = #{mark} and tenant_id = #{tenantId} and id in
where mark = 1 and tenant_id = #{tenantId} and id in
<foreach collection="roadIdList" item="roadId" separator="," open="(" close=")">
#{roadId}
</foreach>

Загрузка…
Отмена
Сохранить