|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson2.JSON; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 
|---|
|  |  |  | import com.ruoyi.common.basic.PageInfo; | 
|---|
|  |  |  | import com.ruoyi.common.core.domain.R; | 
|---|
|  |  |  | import com.ruoyi.common.utils.SecurityUtils; | 
|---|
|  |  |  | import com.ruoyi.framework.web.service.TokenService; | 
|---|
|  |  |  | import com.ruoyi.system.dto.AuditUserDto; | 
|---|
|  |  |  | import com.ruoyi.system.dto.TAppUserDTO; | 
|---|
|  |  |  | import com.ruoyi.system.dto.UpAndDownDTO; | 
|---|
|  |  |  | import com.ruoyi.system.dto.UserIdDto; | 
|---|
|  |  |  | import com.ruoyi.system.model.TAppUser; | 
|---|
|  |  |  | import com.ruoyi.system.model.TAppUserSkill; | 
|---|
|  |  |  | import com.ruoyi.system.model.TMajor; | 
|---|
|  |  |  | import com.ruoyi.system.model.TUserMajor; | 
|---|
|  |  |  | import com.ruoyi.system.query.TAppUserQuery; | 
|---|
|  |  |  | import com.ruoyi.system.service.TAppUserService; | 
|---|
|  |  |  | import com.ruoyi.system.service.TAppUserSkillService; | 
|---|
|  |  |  | import com.ruoyi.system.service.TMajorService; | 
|---|
|  |  |  | import com.ruoyi.system.service.TUserMajorService; | 
|---|
|  |  |  | import com.ruoyi.system.vo.TAppUserDetailVO; | 
|---|
|  |  |  | import com.ruoyi.system.vo.TAppUserPageVo; | 
|---|
|  |  |  | import io.swagger.annotations.Api; | 
|---|
|  |  |  | import io.swagger.annotations.ApiOperation; | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.util.CollectionUtils; | 
|---|
|  |  |  | import org.springframework.util.StringUtils; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * <p> | 
|---|
|  |  |  | 
|---|
|  |  |  | private final TokenService tokenService; | 
|---|
|  |  |  | private final TAppUserService appUserService; | 
|---|
|  |  |  | private final TUserMajorService userMajorService; | 
|---|
|  |  |  | private final TMajorService majorService; | 
|---|
|  |  |  | private final TAppUserSkillService appUserSkillService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | public TAppUserController(TokenService tokenService, TAppUserService appUserService, TUserMajorService userMajorService) { | 
|---|
|  |  |  | public TAppUserController(TokenService tokenService, TAppUserService appUserService, TUserMajorService userMajorService, TMajorService majorService, TAppUserSkillService appUserSkillService) { | 
|---|
|  |  |  | this.tokenService = tokenService; | 
|---|
|  |  |  | this.appUserService = appUserService; | 
|---|
|  |  |  | this.userMajorService = userMajorService; | 
|---|
|  |  |  | this.majorService = majorService; | 
|---|
|  |  |  | this.appUserSkillService = appUserSkillService; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | * 添加人员 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | //    @PreAuthorize("@ss.hasPermi('system:user:addUser')") | 
|---|
|  |  |  | @ApiOperation(value = "添加人员") | 
|---|
|  |  |  | @ApiOperation(value = "添加人员",notes = "请求参数:TAppUserDTO对象",response = TAppUserDTO.class) | 
|---|
|  |  |  | @PostMapping(value = "/api/t-app-user/addUser") | 
|---|
|  |  |  | public R<?> addUser(@RequestBody String param) { | 
|---|
|  |  |  | TAppUser tAppUser = JSON.parseObject(param, TAppUser.class); | 
|---|
|  |  |  | String pwd = SecurityUtils.encryptPassword(tAppUser.getPassword()); | 
|---|
|  |  |  | tAppUser.setPassword(pwd); | 
|---|
|  |  |  | tAppUser.setState(1); | 
|---|
|  |  |  | appUserService.save(tAppUser); | 
|---|
|  |  |  | TAppUserDTO dto = JSON.parseObject(param, TAppUserDTO.class); | 
|---|
|  |  |  | if(!StringUtils.hasLength(dto.getAccount())){ | 
|---|
|  |  |  | return R.fail("请输入账号"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (appUserService.isExit(dto)) { | 
|---|
|  |  |  | return R.fail("该账号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TUserMajor> userMajors = dto.getUserMajors(); | 
|---|
|  |  |  | if(CollectionUtils.isEmpty(userMajors)){ | 
|---|
|  |  |  | return R.fail("请选择专业"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TAppUserSkill appUserSkill = dto.getAppUserSkill(); | 
|---|
|  |  |  | if(appUserSkill==null){ | 
|---|
|  |  |  | return R.fail("请输入职业技能"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String pwd = SecurityUtils.encryptPassword(dto.getPassword()); | 
|---|
|  |  |  | dto.setPassword(pwd); | 
|---|
|  |  |  | dto.setState(1); | 
|---|
|  |  |  | appUserService.save(dto); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (TUserMajor userMajor : userMajors) { | 
|---|
|  |  |  | userMajor.setAppUserId(dto.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | userMajorService.saveBatch(userMajors); | 
|---|
|  |  |  | // 职业技能 | 
|---|
|  |  |  | appUserSkill.setAppUserId(dto.getId()); | 
|---|
|  |  |  | appUserSkillService.save(appUserSkill); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiOperation(value = "编辑人员", response = TAppUser.class) | 
|---|
|  |  |  | @PostMapping(value = "/api/t-app-user/updateUser") | 
|---|
|  |  |  | public R<?> updateUser(@RequestBody String param) { | 
|---|
|  |  |  | TAppUser tAppUser = JSON.parseObject(param, TAppUser.class); | 
|---|
|  |  |  | if(tAppUser.getPassword()!=null && !tAppUser.getPassword().isEmpty()){ | 
|---|
|  |  |  | String pwd = SecurityUtils.encryptPassword(tAppUser.getPassword()); | 
|---|
|  |  |  | tAppUser.setPassword(pwd); | 
|---|
|  |  |  | TAppUserDTO dto = JSON.parseObject(param, TAppUserDTO.class); | 
|---|
|  |  |  | if (appUserService.isExit(dto)) { | 
|---|
|  |  |  | return R.fail("该账号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tAppUser.setState(1); | 
|---|
|  |  |  | appUserService.updateById(tAppUser); | 
|---|
|  |  |  | List<TUserMajor> userMajors = dto.getUserMajors(); | 
|---|
|  |  |  | if(dto.getPassword()!=null && !dto.getPassword().isEmpty()){ | 
|---|
|  |  |  | String pwd = SecurityUtils.encryptPassword(dto.getPassword()); | 
|---|
|  |  |  | dto.setPassword(pwd); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | dto.setState(1); | 
|---|
|  |  |  | appUserService.updateById(dto); | 
|---|
|  |  |  | userMajorService.remove(Wrappers.lambdaQuery(TUserMajor.class).eq(TUserMajor::getAppUserId,dto.getId())); | 
|---|
|  |  |  | for (TUserMajor userMajor : userMajors) { | 
|---|
|  |  |  | userMajor.setAppUserId(dto.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | userMajorService.saveBatch(userMajors); | 
|---|
|  |  |  | // 职业技能 | 
|---|
|  |  |  | TAppUserSkill appUserSkill = dto.getAppUserSkill(); | 
|---|
|  |  |  | appUserSkillService.updateById(appUserSkill); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @PostMapping(value = "/api/t-app-user/delUser") | 
|---|
|  |  |  | public R<?> delUser(@RequestBody String param) { | 
|---|
|  |  |  | UserIdDto dto = JSON.parseObject(param, UserIdDto.class); | 
|---|
|  |  |  | TAppUser appUser = appUserService.getById(dto.getId()); | 
|---|
|  |  |  | appUser.setDisabled(true); | 
|---|
|  |  |  | appUserService.updateById(appUser); | 
|---|
|  |  |  | //        TAppUser appUser = appUserService.getById(dto.getId()); | 
|---|
|  |  |  | //        appUser.setDisabled(true); | 
|---|
|  |  |  | // 删除人员专业 | 
|---|
|  |  |  | userMajorService.remove(Wrappers.lambdaQuery(TUserMajor.class).eq(TUserMajor::getAppUserId,dto.getId())); | 
|---|
|  |  |  | // 删除人员职业技能 | 
|---|
|  |  |  | appUserSkillService.remove(Wrappers.lambdaQuery(TAppUserSkill.class).eq(TAppUserSkill::getAppUserId,dto.getId())); | 
|---|
|  |  |  | appUserService.removeById(dto.getId()); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * 禁用/启用 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | //    @PreAuthorize("@ss.hasPermi('system:user:updateStatus')") | 
|---|
|  |  |  | @ApiOperation(value = "禁用/启用") | 
|---|
|  |  |  | @ApiOperation(value = "禁用/启用", response = UpAndDownDTO.class) | 
|---|
|  |  |  | @PostMapping(value = "/api/t-app-user/updateStatus") | 
|---|
|  |  |  | public R<?> updateStatus(@RequestBody String param) { | 
|---|
|  |  |  | UpAndDownDTO dto = JSON.parseObject(param, UpAndDownDTO.class); | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | //    @PreAuthorize("@ss.hasPermi('system:user:auditUser')") | 
|---|
|  |  |  | @ApiOperation(value = "人员详情", response = AuditUserDto.class) | 
|---|
|  |  |  | @GetMapping(value = "/api/t-app-user/detailUser") | 
|---|
|  |  |  | public R<TAppUser> detailUser(@RequestBody String param) { | 
|---|
|  |  |  | @PostMapping(value = "/api/t-app-user/detailUser") | 
|---|
|  |  |  | public R<TAppUserDetailVO> detailUser(@RequestBody String param) { | 
|---|
|  |  |  | UserIdDto dto = JSON.parseObject(param, UserIdDto.class); | 
|---|
|  |  |  | TAppUser tAppUser = appUserService.getById(dto.getId()); | 
|---|
|  |  |  | TAppUserDetailVO appUserDetailVO = new TAppUserDetailVO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(tAppUser,appUserDetailVO); | 
|---|
|  |  |  | List<TUserMajor> list = userMajorService.list(new LambdaQueryWrapper<TUserMajor>().eq(TUserMajor::getAppUserId, dto.getId())); | 
|---|
|  |  |  | tAppUser.setUserMajors(list); | 
|---|
|  |  |  | return R.ok(tAppUser); | 
|---|
|  |  |  | if(!list.isEmpty()){ | 
|---|
|  |  |  | List<String> mjIds = list.stream().map(TUserMajor::getMajorId).collect(Collectors.toList()); | 
|---|
|  |  |  | List<TMajor> mjList = majorService.list(new LambdaQueryWrapper<TMajor>().in(TMajor::getId, mjIds)); | 
|---|
|  |  |  | for (TUserMajor tUserMajor : list) { | 
|---|
|  |  |  | TMajor tMajor = mjList.stream().filter(mj -> mj.getId().equals(tUserMajor.getMajorId())).findFirst().orElse(null); | 
|---|
|  |  |  | if(tMajor!=null){ | 
|---|
|  |  |  | tUserMajor.setIndicator(tMajor.getMajorName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | appUserDetailVO.setUserMajors(list); | 
|---|
|  |  |  | // 查询职业技能 | 
|---|
|  |  |  | TAppUserSkill appUserSkill = appUserSkillService.getOne(new LambdaQueryWrapper<TAppUserSkill>() | 
|---|
|  |  |  | .eq(TAppUserSkill::getAppUserId, dto.getId()) | 
|---|
|  |  |  | .last("LIMIT 1")); | 
|---|
|  |  |  | appUserDetailVO.setAppUserSkill(appUserSkill); | 
|---|
|  |  |  | return R.ok(appUserDetailVO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|