用户管理

This commit is contained in:
lihongbiao 2025-07-19 21:08:46 +08:00
parent 563455a412
commit 254e0ac233
11 changed files with 195 additions and 257 deletions

View File

@ -63,9 +63,9 @@ public class UserDetailsServiceImpl implements UserDetailsService {
// 获取用户的权限 // 获取用户的权限
List<AuthorityDto> authorities = roleService.buildPermissions(user); List<AuthorityDto> authorities = roleService.buildPermissions(user);
EmEmployees emEmployees = null; EmEmployees emEmployees = null;
if (user.getUserType()==1) { // if (user.getUserType()==1) {
emEmployees = emEmployeesService.findByUserId(user.getId()); // emEmployees = emEmployeesService.findByUserId(user.getId());
} // }
// 初始化JwtUserDto // 初始化JwtUserDto
jwtUserDto = new JwtUserDto(BeanUtil.copyProperties(user, LoginUserDto.class), UserTypeEnum.getByValue(user.getUserType()),dataService.getDeptIds(user), authorities,emEmployees); jwtUserDto = new JwtUserDto(BeanUtil.copyProperties(user, LoginUserDto.class), UserTypeEnum.getByValue(user.getUserType()),dataService.getDeptIds(user), authorities,emEmployees);
// 添加缓存数据 // 添加缓存数据

View File

@ -28,6 +28,7 @@ import com.aircraft.modules.security.service.dto.AuthUserDto;
import com.aircraft.modules.security.service.dto.JwtUserDto; import com.aircraft.modules.security.service.dto.JwtUserDto;
import com.aircraft.modules.system.domain.EmEmployees; import com.aircraft.modules.system.domain.EmEmployees;
import com.aircraft.modules.system.domain.User; import com.aircraft.modules.system.domain.User;
import com.aircraft.modules.system.domain.dto.EmEmployeesQueryCriteria;
import com.aircraft.modules.system.domain.dto.UserPassVo; import com.aircraft.modules.system.domain.dto.UserPassVo;
import com.aircraft.modules.system.domain.vo.EmEmployeesDetailVo; import com.aircraft.modules.system.domain.vo.EmEmployeesDetailVo;
import com.aircraft.modules.system.domain.vo.EmEmployeesVo; import com.aircraft.modules.system.domain.vo.EmEmployeesVo;
@ -36,12 +37,14 @@ import com.aircraft.modules.system.service.UserService;
import com.aircraft.utils.*; import com.aircraft.utils.*;
import com.aircraft.utils.enums.UserTypeEnum; import com.aircraft.utils.enums.UserTypeEnum;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import java.util.HashMap; import java.util.HashMap;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
@ -49,8 +52,10 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import java.util.List;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** /**
@ -79,7 +84,7 @@ public class EmEmployeesController {
// public void exportEmEmployees(HttpServletResponse response, EmEmployeesQueryCriteria criteria) throws IOException { // public void exportEmEmployees(HttpServletResponse response, EmEmployeesQueryCriteria criteria) throws IOException {
// emEmployeesService.download(emEmployeesService.queryAll(criteria), response); // emEmployeesService.download(emEmployeesService.queryAll(criteria), response);
// } // }
//
// @GetMapping // @GetMapping
// @ApiOperation("查询员工管理") // @ApiOperation("查询员工管理")
// @PreAuthorize("@el.check('emEmployees:list')") // @PreAuthorize("@el.check('emEmployees:list')")
@ -87,16 +92,16 @@ public class EmEmployeesController {
// Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); // Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
// return new ResponseEntity<>(emEmployeesService.queryAll(criteria,page),HttpStatus.OK); // return new ResponseEntity<>(emEmployeesService.queryAll(criteria,page),HttpStatus.OK);
// } // }
//
// @PostMapping @PostMapping
// @Log("新增员工管理") @Log("新增员工管理")
// @ApiOperation("新增员工管理") @ApiOperation("新增员工管理")
// @PreAuthorize("@el.check('emEmployees:add')") @PreAuthorize("@el.check('emEmployees:add')")
// public ResponseEntity<Object> createEmEmployees(@Validated @RequestBody EmEmployeesVo resources){ public ResponseEntity<Object> createEmEmployees(@Validated @RequestBody EmEmployeesVo resources){
// emEmployeesService.create(resources); emEmployeesService.create(resources);
// return new ResponseEntity<>(HttpStatus.CREATED); return new ResponseEntity<>(HttpStatus.CREATED);
// } }
//
@PutMapping @PutMapping
@Log("设置个人信息") @Log("设置个人信息")
@ApiOperation("设置个人信息") @ApiOperation("设置个人信息")
@ -111,7 +116,7 @@ public class EmEmployeesController {
@ApiImplicitParam(name = "id", value = "飞行员id", required = true, paramType = "path") @ApiImplicitParam(name = "id", value = "飞行员id", required = true, paramType = "path")
public ResponseEntity<Object> one(@PathVariable final Integer id) { public ResponseEntity<Object> one(@PathVariable final Integer id) {
try { try {
EmEmployees emEmployees = JSON.parseObject(SecurityUtils.getCurrentEmployee(), EmEmployees.class); // EmEmployees emEmployees = JSON.parseObject(SecurityUtils.getCurrentEmployee(), EmEmployees.class);
EmEmployeesDetailVo entity = emEmployeesService.findById(id); EmEmployeesDetailVo entity = emEmployeesService.findById(id);
return new ResponseEntity<>(entity,HttpStatus.OK); return new ResponseEntity<>(entity,HttpStatus.OK);
} catch (Exception e) { } catch (Exception e) {
@ -136,22 +141,22 @@ public class EmEmployeesController {
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
//
// @DeleteMapping
// @Log("删除员工管理")
// @ApiOperation("删除员工管理")
// @PreAuthorize("@el.check('emEmployees:del')")
// public ResponseEntity<Object> deleteEmEmployees(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
// emEmployeesService.deleteAll(ids);
// return new ResponseEntity<>(HttpStatus.OK);
// }
// @GetMapping("findByPage") @DeleteMapping
// @ApiOperation("分页查询员工管理") @Log("删除员工管理")
// public ResponseEntity<PageResult<EmEmployeesDetailVo>> findByPage(final EmEmployeesDetailVo example, final Page page){ @ApiOperation("删除员工管理")
// PageResult<EmEmployeesDetailVo> records = emEmployeesService.page(example,page); @PreAuthorize("@el.check('emEmployees:del')")
// return new ResponseEntity<>(records,HttpStatus.OK); public ResponseEntity<Object> deleteEmEmployees(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
// } emEmployeesService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@GetMapping("findByPage")
@ApiOperation("分页查询员工管理")
public ResponseEntity<PageResult<EmEmployeesDetailVo>> findByPage(final EmEmployeesDetailVo example, final Page page){
PageResult<EmEmployeesDetailVo> records = emEmployeesService.page(example,page);
return new ResponseEntity<>(records,HttpStatus.OK);
}
@Log("用户登录") @Log("用户登录")
@ApiOperation("登录授权") @ApiOperation("登录授权")

View File

@ -16,6 +16,7 @@
package com.aircraft.modules.system.domain; package com.aircraft.modules.system.domain;
import com.aircraft.base.BaseEntity; import com.aircraft.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data; import lombok.Data;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -48,12 +49,24 @@ public class EmEmployees extends BaseEntity {
@ApiModelProperty(value = "员工状态") @ApiModelProperty(value = "员工状态")
private String status; private String status;
@ApiModelProperty(value = "userid")
private Long userid;
@ApiModelProperty(value = "入职时间") @ApiModelProperty(value = "入职时间")
private Timestamp hireDate; private Timestamp hireDate;
@ApiModelProperty(value = "飞行资质")
private String qualification;
@ApiModelProperty(value = "飞行资质附件")
private String qualificationAttachment;
@ApiModelProperty(value = "区域id")
private Long areaId;
@ApiModelProperty(value = "景区id")
private Long scenicId;
@ApiModelProperty(value = "密码")
private String password;
public void copy(EmEmployees source){ public void copy(EmEmployees source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
} }

View File

@ -73,9 +73,9 @@ public class User extends BaseEntity implements Serializable {
@ApiModelProperty(value = "用户昵称") @ApiModelProperty(value = "用户昵称")
private String nickName; private String nickName;
@Email // @Email
@ApiModelProperty(value = "邮箱") // @ApiModelProperty(value = "邮箱")
private String email; // private String email;
@NotBlank @NotBlank
@ApiModelProperty(value = "电话号码") @ApiModelProperty(value = "电话号码")
@ -109,12 +109,6 @@ public class User extends BaseEntity implements Serializable {
@ApiModelProperty(value = "景区id") @ApiModelProperty(value = "景区id")
private Long scenicId; private Long scenicId;
@ApiModelProperty(value = "飞行资质")
private String qualification;
@ApiModelProperty(value = "飞行资质附件")
private String qualificationAttachment;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "区域名称") @ApiModelProperty(value = "区域名称")
private String areaName; private String areaName;

View File

@ -14,8 +14,5 @@ public class EmEmployeesDetailVo extends EmEmployees {
@ApiModelProperty(value = "景区名称") @ApiModelProperty(value = "景区名称")
private String scenicName; private String scenicName;
@ApiModelProperty(value = "用户性别")
private String gender;
} }

View File

@ -182,19 +182,19 @@ public class UserController {
return new ResponseEntity<>(userService.updateAvatar(avatar), HttpStatus.OK); return new ResponseEntity<>(userService.updateAvatar(avatar), HttpStatus.OK);
} }
@Log("修改邮箱") // @Log("修改邮箱")
@ApiOperation("修改邮箱") // @ApiOperation("修改邮箱")
@PostMapping(value = "/updateEmail/{code}") // @PostMapping(value = "/updateEmail/{code}")
public ResponseEntity<Object> updateUserEmail(@PathVariable String code, @RequestBody User resources) throws Exception { // public ResponseEntity<Object> updateUserEmail(@PathVariable String code, @RequestBody User resources) throws Exception {
String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,resources.getPassword()); // String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,resources.getPassword());
User user = userService.findByName(SecurityUtils.getCurrentUsername()); // User user = userService.findByName(SecurityUtils.getCurrentUsername());
if(!passwordEncoder.matches(password, user.getPassword())){ // if(!passwordEncoder.matches(password, user.getPassword())){
throw new BadRequestException("密码错误"); // throw new BadRequestException("密码错误");
} // }
verificationCodeService.validated(CodeEnum.EMAIL_RESET_EMAIL_CODE.getKey() + resources.getEmail(), code); // verificationCodeService.validated(CodeEnum.EMAIL_RESET_EMAIL_CODE.getKey() + resources.getEmail(), code);
userService.updateEmail(user.getUsername(),resources.getEmail()); // userService.updateEmail(user.getUsername(),resources.getEmail());
return new ResponseEntity<>(HttpStatus.OK); // return new ResponseEntity<>(HttpStatus.OK);
} // }
/** /**
* 如果当前用户的角色级别低于创建用户的角色级别则抛出权限不足的错误 * 如果当前用户的角色级别低于创建用户的角色级别则抛出权限不足的错误

View File

@ -51,53 +51,46 @@ public interface EmEmployeesService extends IService<EmEmployees> {
*/ */
List<EmEmployees> queryAll(EmEmployeesQueryCriteria criteria); List<EmEmployees> queryAll(EmEmployeesQueryCriteria criteria);
// /** /**
// * 创建 * 创建
// * @param resources / * @param resources /
// */ */
// void create(EmEmployeesVo resources); void create(EmEmployeesVo resources);
//
/** /**
* 编辑 * 编辑
* @param resources / * @param resources /
*/ */
void update(EmEmployeesVo resources); void update(EmEmployeesVo resources);
//
// /**
// * 多选删除
// * @param ids /
// */
// void deleteAll(List<Long> ids);
//
// /**
// * 导出数据
// * @param all 待导出的数据
// * @param response /
// * @throws IOException /
// */
// void download(List<EmEmployees> all, HttpServletResponse response) throws IOException;
//
// /**
// * 分页查询
// * @param example
// * @param page
// * @return
// */
// PageResult<EmEmployeesDetailVo> page(EmEmployeesDetailVo example, Page page);
//
// /**
// * 获取景区下的用户
// * @param id
// * @return
// */
// List<EmEmployees> findByScenicId(Long id);
/** /**
* 根据userid查找用户 * 多选删除
* @param ids /
*/
void deleteAll(List<Long> ids);
/**
* 导出数据
* @param all 待导出的数据
* @param response /
* @throws IOException /
*/
void download(List<EmEmployees> all, HttpServletResponse response) throws IOException;
/**
* 分页查询
* @param example
* @param page
* @return
*/
PageResult<EmEmployeesDetailVo> page(EmEmployeesDetailVo example, Page page);
/**
* 获取景区下的用户
* @param id * @param id
* @return * @return
*/ */
EmEmployees findByUserId(Long id); List<EmEmployees> findByScenicId(Long id);
/** /**
* 查询详细信息 * 查询详细信息

View File

@ -15,17 +15,15 @@
*/ */
package com.aircraft.modules.system.service.impl; package com.aircraft.modules.system.service.impl;
import com.aircraft.exception.EntityExistException; import com.aircraft.base.BaseEntity;
import com.aircraft.modules.security.service.UserCacheManager; import com.aircraft.modules.security.service.UserCacheManager;
import com.aircraft.modules.system.domain.EmEmployees; import com.aircraft.modules.system.domain.EmEmployees;
import com.aircraft.modules.system.domain.vo.EmEmployeesDetailVo; import com.aircraft.modules.system.domain.vo.EmEmployeesDetailVo;
import com.aircraft.modules.system.domain.vo.EmEmployeesVo; import com.aircraft.modules.system.domain.vo.EmEmployeesVo;
import com.aircraft.modules.system.domain.User; import com.aircraft.modules.system.domain.User;
import com.aircraft.modules.system.mapper.UserMapper; import com.aircraft.modules.system.mapper.UserMapper;
import com.aircraft.modules.system.mapper.UserRoleMapper;
import com.aircraft.modules.system.service.EmAreaService; import com.aircraft.modules.system.service.EmAreaService;
import com.aircraft.modules.system.service.EmScenicService; import com.aircraft.modules.system.service.EmScenicService;
import com.aircraft.modules.system.service.UserService;
import com.aircraft.utils.*; import com.aircraft.utils.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -35,8 +33,7 @@ import com.aircraft.modules.system.service.EmEmployeesService;
import com.aircraft.modules.system.domain.dto.EmEmployeesQueryCriteria; import com.aircraft.modules.system.domain.dto.EmEmployeesQueryCriteria;
import com.aircraft.modules.system.mapper.EmEmployeesMapper; import com.aircraft.modules.system.mapper.EmEmployeesMapper;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -59,6 +56,7 @@ public class EmEmployeesServiceImpl extends ServiceImpl<EmEmployeesMapper, EmEmp
private final UserMapper userMapper; private final UserMapper userMapper;
private final EmAreaService areaService; private final EmAreaService areaService;
private final EmScenicService scenicService; private final EmScenicService scenicService;
private final PasswordEncoder passwordEncoder;
@Override @Override
public PageResult<EmEmployees> queryAll(EmEmployeesQueryCriteria criteria, Page<Object> page){ public PageResult<EmEmployees> queryAll(EmEmployeesQueryCriteria criteria, Page<Object> page){
@ -70,33 +68,24 @@ public class EmEmployeesServiceImpl extends ServiceImpl<EmEmployeesMapper, EmEmp
return emEmployeesMapper.findAll(criteria); return emEmployeesMapper.findAll(criteria);
} }
// @Override @Override
// @Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
// public void create(EmEmployeesVo resources) { public void create(EmEmployeesVo resources) {
// if (userMapper.findByUsername(resources.getUsername()) != null) { EmEmployees emEmployees = new EmEmployees();
// throw new EntityExistException(User.class, "username", resources.getUsername()); BeanUtils.copyProperties(resources, emEmployees);
// } emEmployees.setPassword(passwordEncoder.encode("123456"));
// User user = new User(); emEmployees.setDelFlag(0);
// BeanUtils.copyProperties(resources, user); emEmployees.setStatus("1");
// user.setNickName(resources.getName()); emEmployeesMapper.insert(resources);
// user.setEnabled(true); }
// userMapper.insert(user);
// // 保存用户角色
// userRoleMapper.insertData(user.getId(), resources.getRoles());
// EmEmployees emEmployees = new EmEmployees();
// BeanUtils.copyProperties(resources, emEmployees);
// emEmployees.setDelFlag(0);
// emEmployees.setStatus("1");
// emEmployees.setUserid(user.getId());
// emEmployeesMapper.insert(resources);
// }
//
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void update(EmEmployeesVo resources) { public void update(EmEmployeesVo resources) {
User user1 = userMapper.findByPhone(resources.getPhone()); User user1 = userMapper.findByPhone(resources.getPhone());
EmEmployees emEmployees = getById(resources.getId()); EmEmployees emEmployees = getById(resources.getId());
emEmployees.copy(resources); emEmployees.copy(resources);
user1.setPassword(passwordEncoder.encode(resources.getPassword()));
user1.setPhone(resources.getPhone()); user1.setPhone(resources.getPhone());
user1.setScenicId(resources.getScenicId()); user1.setScenicId(resources.getScenicId());
user1.setAreaId(resources.getAreaId()); user1.setAreaId(resources.getAreaId());
@ -123,76 +112,56 @@ public class EmEmployeesServiceImpl extends ServiceImpl<EmEmployeesMapper, EmEmp
private void flushCache(String username) { private void flushCache(String username) {
userCacheManager.cleanUserCache(username); userCacheManager.cleanUserCache(username);
} }
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void deleteAll(List<Long> ids) {
// Set<Long> userIds = new HashSet<>();
// for (Long id : ids) {
// EmEmployees emEmployees = getById(id);
// emEmployees.setDelFlag(1);
// emEmployeesMapper.updateById(emEmployees);
// // 清理缓存
// User user = userService.getById(emEmployees.getUserid());
// userService.delCaches(user.getId(), user.getUsername());
// userIds.add(emEmployees.getUserid());
// }
// userMapper.deleteBatchIds(ids);
// // 删除用户角色
// userRoleMapper.deleteByUserIds(userIds);
// }
//
// @Override
// public void download(List<EmEmployees> all, HttpServletResponse response) throws IOException {
// List<Map<String, Object>> list = new ArrayList<>();
// for (EmEmployees emEmployees : all) {
// Map<String,Object> map = new LinkedHashMap<>();
// map.put("姓名", emEmployees.getName());
// map.put("电话", emEmployees.getPhone());
// map.put("员工状态", emEmployees.getStatus());
// map.put("创建时间", emEmployees.getCreateTime());
// map.put("更新时间", emEmployees.getUpdateTime());
// map.put("userid", emEmployees.getUserid());
// list.add(map);
// }
// FileUtil.downloadExcel(list, response);
// }
//
// @Override
// public PageResult<EmEmployeesDetailVo> page(EmEmployeesDetailVo example, Page page) {
// page.setOptimizeCountSql(false);
// return PageUtil.toPage(this.baseMapper.findByExample(buildWrapper(example),page));
// }
//
// /**
// * 构建查询
// *
// * @param example
// * @return
// */
// private QueryWrapper<EmEmployeesDetailVo> buildWrapper(EmEmployeesDetailVo example) {
// String name = example.getName();
// QueryWrapper<EmEmployeesDetailVo> wrapper = new QueryWrapper<>();
// wrapper.lambda()
// .like(StringUtils.isNotEmpty(name), EmEmployees::getName, name);
// return wrapper;
// }
//
// @Override
// public List<EmEmployees> findByScenicId(Long areaId) {
// QueryWrapper<EmEmployees> wrapper = new QueryWrapper<>();
// wrapper.lambda()
// .eq(EmEmployees::getAreaId, areaId)
// .eq(EmEmployees::getDelFlag, 0);
// return super.list(wrapper);
// }
//
@Override @Override
public EmEmployees findByUserId(Long id) { @Transactional(rollbackFor = Exception.class)
public void deleteAll(List<Long> ids) {
this.removeByIds(ids);
}
@Override
public void download(List<EmEmployees> all, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (EmEmployees emEmployees : all) {
Map<String,Object> map = new LinkedHashMap<>();
map.put("姓名", emEmployees.getName());
map.put("电话", emEmployees.getPhone());
map.put("员工状态", emEmployees.getStatus());
map.put("创建时间", emEmployees.getCreateTime());
map.put("更新时间", emEmployees.getUpdateTime());
list.add(map);
}
FileUtil.downloadExcel(list, response);
}
@Override
public PageResult<EmEmployeesDetailVo> page(EmEmployeesDetailVo example, Page page) {
page.setOptimizeCountSql(false);
return PageUtil.toPage(this.baseMapper.findByExample(buildWrapper(example),page));
}
/**
* 构建查询
*
* @param example
* @return
*/
private QueryWrapper<EmEmployeesDetailVo> buildWrapper(EmEmployeesDetailVo example) {
String name = example.getName();
QueryWrapper<EmEmployeesDetailVo> wrapper = new QueryWrapper<>();
wrapper.lambda()
.like(StringUtils.isNotEmpty(name), EmEmployees::getName, name)
.eq(BaseEntity::getDelFlag,0);
return wrapper;
}
@Override
public List<EmEmployees> findByScenicId(Long areaId) {
QueryWrapper<EmEmployees> wrapper = new QueryWrapper<>(); QueryWrapper<EmEmployees> wrapper = new QueryWrapper<>();
wrapper.lambda() wrapper.lambda()
.eq(EmEmployees::getUserid,id); .eq(EmEmployees::getAreaId, areaId)
return this.baseMapper.selectOne(wrapper); .eq(EmEmployees::getDelFlag, 0);
return super.list(wrapper);
} }
@Override @Override
@ -200,12 +169,10 @@ public class EmEmployeesServiceImpl extends ServiceImpl<EmEmployeesMapper, EmEmp
EmEmployeesDetailVo emEmployeesDetailVo = new EmEmployeesDetailVo(); EmEmployeesDetailVo emEmployeesDetailVo = new EmEmployeesDetailVo();
EmEmployees emEmployees = getById(id); EmEmployees emEmployees = getById(id);
BeanUtils.copyProperties(emEmployees, emEmployeesDetailVo); BeanUtils.copyProperties(emEmployees, emEmployeesDetailVo);
User user = userMapper.findByPhone(emEmployees.getPhone()); if (emEmployees.getAreaId()!=null){
emEmployeesDetailVo.setGender(user.getGender()); emEmployeesDetailVo.setAreaName(areaService.findById(emEmployees.getAreaId()).getName());
if (user.getAreaId()!=null){ if (emEmployees.getScenicId() != null) {
emEmployeesDetailVo.setAreaName(areaService.findById(user.getAreaId()).getName()); emEmployeesDetailVo.setScenicName(scenicService.findByAreaIdAndName(emEmployeesDetailVo.getScenicId(), emEmployeesDetailVo.getAreaName()).getName());
if (user.getScenicId() != null) {
user.setScenicName(scenicService.findByAreaIdAndName(user.getScenicId(), user.getAreaName()).getName());
} }
} }
return emEmployeesDetailVo; return emEmployeesDetailVo;

View File

@ -15,11 +15,9 @@
*/ */
package com.aircraft.modules.system.service.impl; package com.aircraft.modules.system.service.impl;
import com.aircraft.modules.system.domain.EmEmployees; import com.aircraft.config.properties.RsaProperties;
import com.aircraft.modules.system.service.EmAreaService; import com.aircraft.modules.system.service.EmAreaService;
import com.aircraft.modules.system.service.EmEmployeesService;
import com.aircraft.modules.system.service.EmScenicService; import com.aircraft.modules.system.service.EmScenicService;
import com.aircraft.utils.enums.UserTypeEnum;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -33,13 +31,11 @@ import com.aircraft.modules.system.domain.Role;
import com.aircraft.modules.system.domain.User; import com.aircraft.modules.system.domain.User;
import com.aircraft.exception.EntityExistException; import com.aircraft.exception.EntityExistException;
import com.aircraft.modules.system.domain.dto.UserQueryCriteria; import com.aircraft.modules.system.domain.dto.UserQueryCriteria;
import com.aircraft.modules.system.mapper.UserJobMapper;
import com.aircraft.modules.system.mapper.UserMapper; import com.aircraft.modules.system.mapper.UserMapper;
import com.aircraft.modules.system.mapper.UserRoleMapper; import com.aircraft.modules.system.mapper.UserRoleMapper;
import com.aircraft.modules.system.service.UserService; import com.aircraft.modules.system.service.UserService;
import com.aircraft.utils.*; import com.aircraft.utils.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -60,7 +56,7 @@ import java.util.stream.Collectors;
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
private final UserMapper userMapper; private final UserMapper userMapper;
private final UserJobMapper userJobMapper; private final PasswordEncoder passwordEncoder;
private final UserRoleMapper userRoleMapper; private final UserRoleMapper userRoleMapper;
private final FileProperties properties; private final FileProperties properties;
private final RedisUtils redisUtils; private final RedisUtils redisUtils;
@ -68,22 +64,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
private final OnlineUserService onlineUserService; private final OnlineUserService onlineUserService;
private final EmAreaService areaService; private final EmAreaService areaService;
private final EmScenicService scenicService; private final EmScenicService scenicService;
@Lazy
@Autowired
private final EmEmployeesService employeesService;
@Override @Override
public PageResult<User> queryAll(UserQueryCriteria criteria, Page<Object> page) { public PageResult<User> queryAll(UserQueryCriteria criteria, Page<Object> page) {
criteria.setOffset(page.offset()); criteria.setOffset(page.offset());
List<User> users = userMapper.findAll(criteria); List<User> users = userMapper.findAll(criteria);
for (User user : users) {
if (user.getAreaId() != null) {
user.setAreaName(areaService.findById(user.getAreaId()).getName());
}
if (user.getScenicId() != null) {
user.setScenicName(scenicService.getById(user.getScenicId()).getName());
}
}
Long total = userMapper.countAll(criteria); Long total = userMapper.countAll(criteria);
return PageUtil.toPage(users, total); return PageUtil.toPage(users, total);
} }
@ -121,14 +106,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
throw new EntityExistException(User.class, "phone", resources.getPhone()); throw new EntityExistException(User.class, "phone", resources.getPhone());
} }
save(resources); save(resources);
if (Objects.equals(UserTypeEnum.getByValue(resources.getUserType()), UserTypeEnum.EMPLOYEES)) { // if (Objects.equals(UserTypeEnum.getByValue(resources.getUserType()), UserTypeEnum.EMPLOYEES)) {
EmEmployees emEmployees = new EmEmployees(); // EmEmployees emEmployees = new EmEmployees();
emEmployees.setDelFlag(0); // }
emEmployees.setPhone(resources.getPhone());
emEmployees.setName(resources.getNickName());
emEmployees.setUserid(resources.getId());
employeesService.save(emEmployees);
}
// 保存用户角色 // 保存用户角色
userRoleMapper.insertData(resources.getId(), resources.getRoles()); userRoleMapper.insertData(resources.getId(), resources.getRoles());
} }
@ -156,8 +136,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
if(!resources.getEnabled()){ if(!resources.getEnabled()){
onlineUserService.kickOutForUsername(resources.getUsername()); onlineUserService.kickOutForUsername(resources.getUsername());
} }
user.setQualification(resources.getQualification()); user.setPassword(passwordEncoder.encode(RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,resources.getPassword())));
user.setQualificationAttachment(resources.getQualificationAttachment());
user.setUsername(resources.getUsername()); user.setUsername(resources.getUsername());
user.setScenicId(resources.getScenicId()); user.setScenicId(resources.getScenicId());
user.setEnabled(resources.getEnabled()); user.setEnabled(resources.getEnabled());
@ -168,12 +147,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
user.setNickName(resources.getNickName()); user.setNickName(resources.getNickName());
user.setGender(resources.getGender()); user.setGender(resources.getGender());
saveOrUpdate(user); saveOrUpdate(user);
if (Objects.equals(UserTypeEnum.getByValue(resources.getUserType()), UserTypeEnum.EMPLOYEES)) {
EmEmployees emEmployees = employeesService.findByUserId(resources.getId());
emEmployees.setPhone(resources.getPhone());
emEmployees.setName(resources.getNickName());
employeesService.saveOrUpdate(emEmployees);
}
// 清除缓存 // 清除缓存
delCaches(user.getId(), user.getUsername()); delCaches(user.getId(), user.getUsername());
// 更新用户角色 // 更新用户角色
@ -203,10 +176,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
for (Long id : ids) { for (Long id : ids) {
// 清理缓存 // 清理缓存
User user = getById(id); User user = getById(id);
if (Objects.equals(UserTypeEnum.getByValue(user.getUserType()), UserTypeEnum.EMPLOYEES)) {
EmEmployees emEmployees = employeesService.findByUserId(id);
employeesService.removeById(emEmployees.getId());
}
delCaches(user.getId(), user.getUsername()); delCaches(user.getId(), user.getUsername());
} }
userMapper.deleteBatchIds(ids); userMapper.deleteBatchIds(ids);
@ -290,7 +259,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
map.put("角色", roles); map.put("角色", roles);
map.put("部门", user.getDept().getName()); map.put("部门", user.getDept().getName());
map.put("岗位", user.getJobs().stream().map(Job::getName).collect(Collectors.toList())); map.put("岗位", user.getJobs().stream().map(Job::getName).collect(Collectors.toList()));
map.put("邮箱", user.getEmail()); // map.put("邮箱", user.getEmail());
map.put("状态", user.getEnabled() ? "启用" : "禁用"); map.put("状态", user.getEnabled() ? "启用" : "禁用");
map.put("手机号码", user.getPhone()); map.put("手机号码", user.getPhone());
map.put("修改密码的时间", user.getPwdResetTime()); map.put("修改密码的时间", user.getPwdResetTime());

View File

@ -42,8 +42,6 @@
SELECT id, SELECT id,
name, name,
phone, phone,
gender,
department_id,
status, status,
create_time, create_time,
update_time, update_time,
@ -53,13 +51,11 @@
qualification_attachment, qualification_attachment,
areaName, areaName,
scenicName, scenicName,
roleName, username,
username del_flag
FROM (SELECT em_employees.id as id, FROM (SELECT em_employees.id as id,
em_employees.name as name, em_employees.name as name,
em_employees.phone as phone, em_employees.phone as phone,
em_employees.gender as gender,
em_employees.department_id as department_id,
em_employees.status as status, em_employees.status as status,
em_employees.create_time as create_time, em_employees.create_time as create_time,
em_employees.update_time as update_time, em_employees.update_time as update_time,
@ -69,14 +65,10 @@
em_employees.qualification_attachment as qualification_attachment, em_employees.qualification_attachment as qualification_attachment,
em_area.name as areaName, em_area.name as areaName,
em_scenic.name as scenicName, em_scenic.name as scenicName,
sys_user.username as username, em_employees.username as username,
sys_role.name as roleName em_employees.del_flag as del_flag
FROM em_employees FROM em_employees
LEFT JOIN em_area LEFT JOIN em_area ON em_area.id = em_employees.area_id
ON em_area.id = em_employees.area_id
left join sys_user on sys_user.user_id = em_employees.user_id
left join sys_users_roles on sys_users_roles.user_id = em_employees.user_id
left join sys_role on sys_users_roles.role_id = sys_role.role_id
left join em_scenic on em_scenic.id = em_employees.scenic_id) t left join em_scenic on em_scenic.id = em_employees.scenic_id) t
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>

View File

@ -7,7 +7,7 @@
<result column="user_type" property="userType"/> <result column="user_type" property="userType"/>
<result column="user_username" property="username"/> <result column="user_username" property="username"/>
<result column="user_nick_name" property="nickName"/> <result column="user_nick_name" property="nickName"/>
<result column="user_email" property="email"/> <!-- <result column="user_email" property="email"/>-->
<result column="user_phone" property="phone"/> <result column="user_phone" property="phone"/>
<result column="user_gender" property="gender"/> <result column="user_gender" property="gender"/>
<result column="user_avatar_name" property="avatarName"/> <result column="user_avatar_name" property="avatarName"/>
@ -22,8 +22,8 @@
<result column="user_update_time" property="updateTime"/> <result column="user_update_time" property="updateTime"/>
<result column="user_area_id" property="areaId"/> <result column="user_area_id" property="areaId"/>
<result column="user_scenic_id" property="scenicId"/> <result column="user_scenic_id" property="scenicId"/>
<result column="user_qualification" property="qualification"/> <result column="area_name" property="areaName"/>
<result column="user_qualification_attachment" property="qualificationAttachment"/> <result column="scenic_name" property="scenicName"/>
<association property="dept" javaType="com.aircraft.modules.system.domain.Dept"> <association property="dept" javaType="com.aircraft.modules.system.domain.Dept">
<id column="dept_id" property="id"/> <id column="dept_id" property="id"/>
<result column="dept_name" property="name"/> <result column="dept_name" property="name"/>
@ -41,19 +41,23 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
u.user_id as user_user_id,u.user_type as user_type, u.dept_id as user_dept_id, u.username as user_username, u.user_id as user_user_id, u.user_type as user_type, u.dept_id as user_dept_id, u.username as user_username,
u.nick_name as user_nick_name, u.email as user_email, u.phone as user_phone, u.nick_name as user_nick_name, u.email as user_email, u.phone as user_phone,
u.gender as user_gender, u.avatar_name as user_avatar_name, u.avatar_path as user_avatar_path, u.gender as user_gender, u.avatar_name as user_avatar_name, u.avatar_path as user_avatar_path,
u.enabled as user_enabled, u.pwd_reset_time as user_pwd_reset_time, u.create_by as user_create_by, u.enabled as user_enabled, u.pwd_reset_time as user_pwd_reset_time, u.create_by as user_create_by,
u.update_by as user_update_by, u.create_time as user_create_time, u.update_time as user_update_time, u.update_by as user_update_by, u.create_time as user_create_time, u.update_time as user_update_time,
u.area_id as user_area_id, u.scenic_id as user_scenic_id, u.area_id as user_area_id, u.scenic_id as user_scenic_id
u.qualification as user_qualification, u.qualification_attachment as user_qualification_attachment
</sql> </sql>
<sql id="Job_Column_List"> <sql id="Job_Column_List">
j.job_id as job_id, j.name as job_name j.job_id as job_id, j.name as job_name
</sql> </sql>
<sql id="Area_Column_List">
a.name as area_name
</sql>
<sql id="Scenic_Column_List">
s.name as scenic_name
</sql>
<sql id="Role_Column_List"> <sql id="Role_Column_List">
r.role_id as role_id, r.name as role_name, r.level as role_level, r.data_scope as role_data_scope r.role_id as role_id, r.name as role_name, r.level as role_level, r.data_scope as role_data_scope
</sql> </sql>
@ -82,6 +86,8 @@
<select id="findAll" resultMap="BaseResultMap"> <select id="findAll" resultMap="BaseResultMap">
select u.*, select u.*,
<include refid="Area_Column_List"/>,
<include refid="Scenic_Column_List"/>,
<include refid="Role_Column_List"/> <include refid="Role_Column_List"/>
from ( from (
select select
@ -95,6 +101,8 @@
) u ) u
left join sys_users_roles sur on u.user_user_id = sur.user_id left join sys_users_roles sur on u.user_user_id = sur.user_id
left join sys_role r on sur.role_id = r.role_id left join sys_role r on sur.role_id = r.role_id
left join em_area a on u.user_area_id = a.id
left join em_scenic s on u.user_scenic_id = s.id
order by u.user_user_id desc order by u.user_user_id desc
</select> </select>