ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
@@ -1,8 +1,30 @@ package com.ruoyi.web.controller.api; import com.alibaba.fastjson2.JSON; 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.UpAndDownDTO; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.model.TAppUser; import com.ruoyi.system.query.TAppUserQuery; import com.ruoyi.system.service.TAppUserService; import com.ruoyi.system.vo.TAppUserPageVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.stream.Collectors; /** * <p> @@ -13,8 +35,152 @@ * @since 2025-09-28 */ @RestController @RequestMapping("/t-app-user") @RequestMapping("") @Api(tags = "人员管理") public class TAppUserController { private final TokenService tokenService; private final TAppUserService appUserService; @Autowired public TAppUserController(TokenService tokenService, TAppUserService appUserService) { this.tokenService = tokenService; this.appUserService = appUserService; } /** * 获取人员列表 */ // @PreAuthorize("@ss.hasPermi('system:user:list')") @ApiOperation(value = "获取人员管理分页列表", response = TAppUser.class) @PostMapping(value = "/api/t-app-user/pageList") public R<PageInfo<TAppUserPageVo>> pageList(@RequestBody String param) { TAppUserQuery query = JSON.parseObject(param, TAppUserQuery.class); return R.ok(appUserService.pageList(query)); } /** * 添加人员 */ // @PreAuthorize("@ss.hasPermi('system:user:addUser')") @ApiOperation(value = "添加人员") @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); return R.ok(); } /** * 编辑人员 */ // @PreAuthorize("@ss.hasPermi('system:user:updateUser')") @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); } tAppUser.setState(1); appUserService.updateById(tAppUser); return R.ok(); } /** * 删除人员 */ // @PreAuthorize("@ss.hasPermi('system:user:delUser')") @ApiOperation(value = "删除人员") @PostMapping(value = "/api/t-app-user/delUser") public R<?> delUser(@RequestBody String param) { String id = JSON.parseObject(param, String.class); TAppUser appUser = appUserService.getById(id); appUser.setDisabled(true); appUserService.updateById(appUser); return R.ok(); } /** * 禁用/启用 */ // @PreAuthorize("@ss.hasPermi('system:user:updateStatus')") @ApiOperation(value = "禁用/启用") @PostMapping(value = "/api/t-app-user/updateStatus") public R<?> updateStatus(@RequestBody String param) { UpAndDownDTO dto = JSON.parseObject(param, UpAndDownDTO.class); TAppUser appUser = appUserService.getById(dto.getId()); appUser.setStatus(dto.getStatus()); appUserService.updateById(appUser); return R.ok(); } /** * 禁用/启用 */ // @PreAuthorize("@ss.hasPermi('system:user:resetPwd')") @ApiOperation(value = "重置密码") @PostMapping(value = "/api/t-app-user/resetPwd") public R<?> resetPwd(@RequestBody String param) { String id = JSON.parseObject(param, String.class); TAppUser appUser = appUserService.getById(id); String pwd = SecurityUtils.encryptPassword("123456"); appUser.setPassword(pwd); appUserService.updateById(appUser); return R.ok(); } /** * 获取人员审核管理分页列表 */ // @PreAuthorize("@ss.hasPermi('system:user:pageAuditList')") @ApiOperation(value = "获取人员审核管理分页列表", response = TAppUserQuery.class) @PostMapping(value = "/api/t-app-user/pageAuditList") public R<PageInfo<TAppUserPageVo>> pageAuditList(@RequestBody String param) { TAppUserQuery query = JSON.parseObject(param, TAppUserQuery.class); return R.ok(appUserService.pageAuditList(query)); } /** * 获取人员审核管理详情 */ // @PreAuthorize("@ss.hasPermi('system:user:auditDetail')") @ApiOperation(value = "获取人员审核管理详情", response = TAppUserPageVo.class) @PostMapping(value = "/api/t-app-user/auditDetail") public R<TAppUserPageVo> auditDetail(@RequestBody String param) { String id = JSON.parseObject(param, String.class); return R.ok(appUserService.pageAuditDetail(id)); } /** * 编辑人员 */ // @PreAuthorize("@ss.hasPermi('system:user:auditUser')") @ApiOperation(value = "人员审核", response = AuditUserDto.class) @PostMapping(value = "/api/t-app-user/auditUser") public R<?> auditUser(@RequestBody String param) { AuditUserDto dto = JSON.parseObject(param, AuditUserDto.class); TAppUser tAppUser = appUserService.getById(dto.getId()); tAppUser.setStatus(dto.getStatus()); tAppUser.setTeamId(dto.getTeamId()); appUserService.updateById(tAppUser); return R.ok(); } } ruoyi-system/src/main/java/com/ruoyi/system/dto/AuditUserDto.java
New file @@ -0,0 +1,22 @@ package com.ruoyi.system.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @Data @ApiModel("人员审核Dto") public class AuditUserDto { @ApiModelProperty(value = "人员id") @NotBlank(message = "人员id不能为空") private String id; @ApiModelProperty(value = "状态 1通过 2拒绝") @NotNull(message = "状态不能为空") private Integer status; @ApiModelProperty(value = "分队id") @NotBlank(message = "分队id不能为空") private String teamId; } ruoyi-system/src/main/java/com/ruoyi/system/dto/UpAndDownDTO.java
@@ -7,13 +7,13 @@ import java.io.Serializable; @Data @ApiModel(value = "项目组、项目课题方案、启用禁用DTO") @ApiModel(value = "启用禁用DTO") public class UpAndDownDTO implements Serializable { @ApiModelProperty(value = "id") private String id; @ApiModelProperty(value = "状态 (项目组)1=正常 2=封存 、 (项目课题方案) -1=草稿箱 1=审批中 2=已通过 3=已驳回 4=已撤销 5=已封存") @ApiModelProperty(value = "状态 状态 1=启用 2=禁用") private Integer status; ruoyi-system/src/main/java/com/ruoyi/system/mapper/TAppUserMapper.java
@@ -1,7 +1,13 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TAppUser; import com.ruoyi.system.query.TAppUserQuery; import com.ruoyi.system.vo.TAppUserPageVo; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -13,4 +19,10 @@ */ public interface TAppUserMapper extends BaseMapper<TAppUser> { List<TAppUserPageVo> pageList(@Param("pageInfo") PageInfo<TAppUserPageVo> pageInfo, @Param("query") TAppUserQuery query); List<TAppUserPageVo> pageAuditList(@Param("pageInfo") PageInfo<TAppUserPageVo> pageInfo, @Param("query") TAppUserQuery query); } ruoyi-system/src/main/java/com/ruoyi/system/model/TAppUser.java
@@ -70,4 +70,11 @@ private Integer state; @ApiModelProperty(value = "状态 0待审核 1通过 2拒绝") private Integer state; @ApiModelProperty(value = "职业技能") private String level; } ruoyi-system/src/main/java/com/ruoyi/system/query/TAppUserQuery.java
New file @@ -0,0 +1,18 @@ package com.ruoyi.system.query; import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.common.core.domain.BasePage; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "人员管理/审核query") public class TAppUserQuery extends BasePage { @ApiModelProperty(value = "姓名") private String nickName; @ApiModelProperty(value = "状态 1=启用 0=禁用") private Integer status; } ruoyi-system/src/main/java/com/ruoyi/system/service/TAppUserService.java
@@ -1,7 +1,10 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TAppUser; import com.ruoyi.system.query.TAppUserQuery; import com.ruoyi.system.vo.TAppUserPageVo; /** * <p> @@ -13,4 +16,11 @@ */ public interface TAppUserService extends IService<TAppUser> { PageInfo<TAppUserPageVo> pageList(TAppUserQuery query); PageInfo<TAppUserPageVo> pageAuditList(TAppUserQuery query); TAppUserPageVo pageAuditDetail(String id); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TAppUserServiceImpl.java
@@ -1,10 +1,16 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.mapper.TAppUserMapper; import com.ruoyi.system.model.TAppUser; import com.ruoyi.system.query.TAppUserQuery; import com.ruoyi.system.service.TAppUserService; import com.ruoyi.system.vo.TAppUserPageVo; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.List; /** * <p> @@ -17,4 +23,27 @@ @Service public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService { @Override public PageInfo<TAppUserPageVo> pageList(TAppUserQuery query) { PageInfo<TAppUserPageVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TAppUserPageVo> list = this.baseMapper.pageList(pageInfo, query); pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo<TAppUserPageVo> pageAuditList(TAppUserQuery query) { PageInfo<TAppUserPageVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TAppUserPageVo> list = this.baseMapper.pageAuditList(pageInfo, query); pageInfo.setRecords(list); return pageInfo; } @Override public TAppUserPageVo pageAuditDetail(String id) { TAppUser tAppUser = this.baseMapper.selectById(id); TAppUserPageVo tAppUserPageVo = new TAppUserPageVo(); BeanUtils.copyProperties(tAppUser, tAppUserPageVo); return tAppUserPageVo; } } ruoyi-system/src/main/java/com/ruoyi/system/vo/TAppUserPageVo.java
New file @@ -0,0 +1,13 @@ package com.ruoyi.system.vo; import com.ruoyi.system.model.TAppUser; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("人员管理Vo") public class TAppUserPageVo extends TAppUser { @ApiModelProperty(value = "分队名称") private String teamName; } ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml
@@ -25,5 +25,44 @@ <sql id="Base_Column_List"> id, nick_name, phone, account, password, team_name, team_id, status, practical_train_count, other_count, create_time, update_time, create_by, update_by, disabled </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TAppUserPageVo"> SELECT t1.id, t1.nick_name, t1.phone, t1.account, t1.password, t1.team_name, t1.team_id, t1.status, t1.practical_train_count, t1.other_count, t1.create_time, t1.update_time, t1.create_by, t1.update_by, t1.disabled,t2.team_name FROM t_app_user t1 left join t_division_team t2 on t1.team_id = t2.id WHERE t1.disabled = 0 and t1.state =1 <if test="query.nickName != null and query.nickName!=''"> and (t1.nick_name like concat('%',#{query.nickName},'%') or t1.phone like concat('%',#{query.nickName},'%')) </if> <if test="query.status != null "> and t1.status =#{query.status} </if> order by t1.create_time desc </select> <select id="pageAuditList" resultType="com.ruoyi.system.vo.TAppUserPageVo"> SELECT t1.id, t1.nick_name, t1.phone, t1.account, t1.password, t1.team_name, t1.team_id, t1.status, t1.practical_train_count, t1.other_count, t1.create_time, t1.update_time, t1.create_by, t1.update_by, t1.disabled,t2.team_name FROM t_app_user t1 left join t_division_team t2 on t1.team_id = t2.id WHERE t1.disabled = 0 <if test="query.nickName != null and query.nickName!=''"> and (t1.nick_name like concat('%',#{query.nickName},'%') or t1.phone like concat('%',#{query.nickName},'%')) </if> <if test="query.status != null "> and t1.status =#{query.status} </if> order by t1.create_time desc </select> </mapper>