package com.lf.server.controller.sys; import com.lf.server.annotation.SysLog; import com.lf.server.controller.all.BaseController; import com.lf.server.entity.all.ResponseMsg; import com.lf.server.entity.sys.RoleEntity; import com.lf.server.entity.sys.UserEntity; import com.lf.server.entity.ctrl.UserUpdateEntity; import com.lf.server.helper.StringHelper; import com.lf.server.service.sys.TokenService; import com.lf.server.service.sys.UserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * 用户表 * @author sws * @date 2022-09-27 */ @Api(tags = "运维管理\\用户管理") @RestController @RequestMapping("/user") public class UserController extends BaseController { @Autowired UserService userService; @Autowired TokenService tokenService; @SysLog() @ApiOperation(value = "分页查询并返回记录数") @ApiImplicitParams({ @ApiImplicitParam(name = "uname", value = "用户名", dataType = "String", paramType = "query", example = "室"), @ApiImplicitParam(name = "depcode", value = "单位编码", dataType = "String", paramType = "query", example = "00"), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "Integer", paramType = "query", example = "10"), @ApiImplicitParam(name = "pageIndex", value = "分页数(从1开始)", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/selectByPageAndCount") public ResponseMsg> selectByPageAndCount(String uname, String depcode, Integer pageSize, Integer pageIndex) { try { if (pageSize < 1 || pageIndex < 1) { return fail("每页页数或分页数小于1", null); } int count = userService.selectCount(uname, depcode); if (count == 0) { return success(0, null); } List rs = userService.selectByPage(uname, depcode, pageSize, pageSize * (pageIndex - 1)); return success(count, rs); } catch (Exception ex) { return fail(ex.getMessage(), null); } } @SysLog() @ApiOperation(value = "根据角色+单位分页查询并返回记录数") @ApiImplicitParams({ @ApiImplicitParam(name = "uname", value = "用户名", dataType = "String", paramType = "query", example = "室"), @ApiImplicitParam(name = "roleid", value = "角色ID", dataType = "Integer", paramType = "query", example = "1"), @ApiImplicitParam(name = "depcode", value = "单位编码", dataType = "String", paramType = "query", example = "00"), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "Integer", paramType = "query", example = "10"), @ApiImplicitParam(name = "pageIndex", value = "分页数(从1开始)", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/selectByPageForRole") public ResponseMsg> selectByPageForRole(String uname, Integer roleid, String depcode, Integer pageSize, Integer pageIndex) { try { if (pageSize < 1 || pageIndex < 1) { return fail("每页页数或分页数小于1", null); } int count = userService.selectCountForRole(uname, roleid, depcode); if (count == 0) { return success(0, null); } List rs = userService.selectByPageForRole(uname, roleid, depcode, pageSize, pageSize * (pageIndex - 1)); return success(count, rs); } catch (Exception ex) { return fail(ex.getMessage(), null); } } @SysLog() @ApiOperation(value = "根据ID查询") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/selectUser") public ResponseMsg selectUser(int id) { try { UserEntity userEntity = userService.selectUser(id); return success(userEntity); } catch (Exception ex) { return fail(ex.getMessage(), null); } } @SysLog() @ApiOperation(value = "根据用户ID查询") @ApiImplicitParams({ @ApiImplicitParam(name = "uid", value = "用户ID", dataType = "String", paramType = "query", example = "admin") }) @GetMapping(value = "/selectByUid") public ResponseMsg selectByUid(String uid) { try { if (StringHelper.isEmpty(uid)) { fail("用户ID不能为空", null); } UserEntity userEntity = userService.selectByUid(uid); return success(userEntity); } catch (Exception ex) { return fail(ex.getMessage(), null); } } @SysLog() @ApiOperation(value = "查询所有") @GetMapping(value = "/selectUserAll") public ResponseMsg> selectUserAll() { try { List list = userService.selectUserAll(); return success(list); } catch (Exception ex) { return fail(ex.getMessage(), null); } } @SysLog() @ApiOperation(value = "查询是/否为管理员") @GetMapping(value = "/selectForIsAdmin") public ResponseMsg selectForIsAdmin(HttpServletRequest req) { try { UserEntity ue = tokenService.getCurrentUser(req); if (ue == null) { return fail("用户未登录", false); } Integer rows = userService.selectForIsAdmin(ue.getId()); return success("成功", rows > 0); } catch (Exception ex) { return fail(ex.getMessage(), false); } } @SysLog() @ApiOperation(value = "查询是/否为管理员") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "用户ID", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/selectIsAdmin") public ResponseMsg selectIsAdmin(Integer id) { try { UserEntity ue = userService.selectUser(id); if (ue == null) { return fail("用户不存在", false); } Integer rows = userService.selectForIsAdmin(ue.getId()); return success("成功", rows > 0); } catch (Exception ex) { return fail(ex.getMessage(), false); } } @SysLog() @ApiOperation(value = "查询管理员用户") @ApiImplicitParams({ @ApiImplicitParam(name = "type", value = "管理员类别", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/selectAdminUsers") public ResponseMsg selectAdminUsers(Integer type) { try { if (null == type || type < 1) { return fail("管理员类别不能为空或小于1", false); } List rs = userService.selectAdminUsers(type); return success(rs); } catch (Exception ex) { return fail(ex.getMessage(), false); } } @SysLog() @ApiOperation(value = "根据用户ID查询角色") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "用户ID", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/selectRoleByUserId") public ResponseMsg selectRoleByUserId(Integer id) { try { if (null == id || id < 1) { return fail("用户ID不能为空或小于1", false); } List rs = userService.selectRoleByUserId(id); return success(rs); } catch (Exception ex) { return fail(ex.getMessage(), false); } } @SysLog() @ApiOperation(value = "根据角色查询用户") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "角色ID", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/selectUserByRoleId") public ResponseMsg selectUserByRoleId(Integer id) { try { if (null == id || id < 1) { return fail("用户ID不能为空或小于1", false); } List rs = userService.selectUserByRoleId(id); return success(rs); } catch (Exception ex) { return fail(ex.getMessage(), false); } } @SysLog() @ApiOperation(value = "插入一条") @ApiImplicitParams({ @ApiImplicitParam(name = "entity", value = "实体类", dataType = "com.lf.server.entity.data.UserEntity", paramType = "body", example = "") }) @PostMapping(value = "/insertUser", produces = "application/json; charset=UTF-8") public ResponseMsg insertUser(@RequestBody UserEntity entity, HttpServletRequest req) { try { String str = userService.validateNewPwd(entity); if (str != null) { return fail(str, -1); } UserEntity ue = tokenService.getCurrentUser(req); if (ue != null) { entity.setCreateUser(ue.getId()); } int count = userService.insertUser(entity); return success(count); } catch (Exception ex) { return fail(ex.getMessage(), -1); } } @SysLog() @ApiOperation(value = "插入多条") @ApiImplicitParams({ @ApiImplicitParam(name = "list", value = "实体类集合", dataType = "List", paramType = "body", example = "") }) @PostMapping(value = "/insertUsers", produces = "application/json; charset=UTF-8") @SuppressWarnings("AlibabaRemoveCommentedCode") public ResponseMsg insertUsers(@RequestBody List list, HttpServletRequest req) { try { if (list == null || list.isEmpty()) { return fail("实体类集合为空", -1); } UserEntity ue = tokenService.getCurrentUser(req); for (UserEntity entity : list) { /*String str = userService.validateNewPwd(entity); if (str != null) { return fail(str, -1); }*/ if (ue != null) { entity.setCreateUser(ue.getId()); } } int count = userService.insertUsers(list); return success(count); } catch (Exception ex) { return fail(ex.getMessage(), -1); } } @SysLog() @ApiOperation(value = "删除一条") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/deleteUser") public ResponseMsg deleteUser(int id) { try { int count = userService.deleteUser(id); return success(count); } catch (Exception ex) { return fail(ex.getMessage(), -1); } } @SysLog() @ApiOperation(value = "删除多条") @ApiImplicitParams({ @ApiImplicitParam(name = "ids", value = "ID数组", dataType = "List", paramType = "query", example = "1,2") }) @GetMapping(value = "/deleteUsers") public ResponseMsg deleteUsers(@RequestParam List ids) { try { if (ids == null || ids.isEmpty()) { return fail("id数组不能为空", -1); } int count = userService.deleteUsers(ids); return success(count); } catch (Exception ex) { return fail(ex.getMessage(), -1); } } @SysLog() @ApiOperation(value = "更新一条") @ApiImplicitParams({ @ApiImplicitParam(name = "entity", value = "实体类", dataType = "UserEntity", paramType = "body", example = "") }) @ResponseBody @PostMapping(value = "/updateUser", produces = "application/json; charset=UTF-8") @SuppressWarnings("AlibabaRemoveCommentedCode") public ResponseMsg updateUser(@RequestBody UserEntity entity, HttpServletRequest req) { try { /*String str = userService.validateOldPwd(entity); if (str != null) { return fail(str, -1); }*/ UserEntity ue = tokenService.getCurrentUser(req); if (ue != null) { entity.setUpdateUser(ue.getId()); } int count = userService.updateUser(entity); return success(count); } catch (Exception ex) { return fail(ex.getMessage(), -1); } } @SysLog() @ApiOperation(value = "更新多个用户密码") @ApiImplicitParams({ @ApiImplicitParam(name = "adminPwd", value = "管理员密码", dataType = "String", paramType = "body", example = ""), @ApiImplicitParam(name = "newPwd", value = "新密码", dataType = "String", paramType = "body", example = ""), @ApiImplicitParam(name = "ids", value = "用户ID集合", dataType = "List", paramType = "body", example = "") }) @PostMapping(value = "/updateUsersPwd", produces = "application/json; charset=UTF-8") public ResponseMsg updateUsersPwd(@RequestBody UserUpdateEntity uue, HttpServletRequest req) { try { if (uue == null || uue.getIds() == null || uue.getIds().isEmpty()) { return fail("没有找到数据", false); } UserEntity ue = tokenService.getCurrentUser(req); String str = userService.validateAdminPwd(ue, uue.getAdminPwd()); if (str != null) { return fail(str, false); } Integer rows = userService.selectForIsAdmin(ue.getId()); if (rows < 1) { return fail("只允许管理员操作", false); } str = userService.validateNewPwd(ue, uue.getNewPwd()); if (str != null) { return fail(str, false); } rows = userService.updateUsersPwd(ue.getId(), ue.getSalt(), uue.getIds()); return success(rows > 0 ? "更新成功" : "更新失败", rows > 0); } catch (Exception ex) { return fail(ex.getMessage(), false); } } }