package com.kmall.common.controller; import com.kmall.common.annotation.SysLog; import com.kmall.common.constant.Dict; import com.kmall.common.entity.SysUserEntity; import com.kmall.common.service.SysUserRoleService; import com.kmall.common.service.SysUserService; import com.kmall.common.utils.*; import com.kmall.common.validator.Assert; import com.kmall.common.validator.ValidatorUtils; import com.kmall.common.validator.group.AddGroup; import com.kmall.common.validator.group.UpdateGroup; import org.apache.commons.lang.ArrayUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.crypto.hash.Sha256Hash; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; /** * 系统用户 * * @author Scott * @email * @date 2016年10月31日 上午10:40:10 */ @RestController @RequestMapping("/sys/user") public class SysUserController extends AbstractController { @Autowired private SysUserService sysUserService; @Autowired private SysUserRoleService sysUserRoleService; /** * 所有用户列表 */ @RequestMapping("/list") @RequiresPermissions("sys:user:list") public R list(@RequestParam Map params) { // //只有超级管理员,才能查看所有管理员列表 // if (getUserId() != Constant.SUPER_ADMIN) { // params.put("createUserId", getUserId()); // } if(!ShiroUtils.getUserEntity().getRoleType().equalsIgnoreCase(Dict.roleType.item_1.getItem())){ params.put("createUserId", getUserId()); } //查询列表数据 Query query = new Query(params); List userList = sysUserService.queryList(query); int total = sysUserService.queryTotal(query); PageUtils pageUtil = new PageUtils(userList, total, query.getLimit(), query.getPage()); return R.ok().put("page", pageUtil); } /** * 获取登录的用户信息 */ @RequestMapping("/info") public R info() { return R.ok().put("user", getUser()); } /** * 修改登录用户密码 */ @SysLog("修改密码") @RequestMapping("/password") public R password(String password, String newPassword) { Assert.isBlank(password, "原密码不为能空"); Assert.isBlank(newPassword, "新密码不为能空"); //sha256加密 password = new Sha256Hash(password).toHex(); //sha256加密 newPassword = new Sha256Hash(newPassword).toHex(); //更新密码 int count = sysUserService.updatePassword(getUserId(), password, newPassword); if (count == 0) { return R.error("原密码不正确"); } //退出 ShiroUtils.logout(); return R.ok(); } /** * 用户信息 */ @RequestMapping("/info/{userId}") @RequiresPermissions("sys:user:info") public R info(@PathVariable("userId") Long userId) { SysUserEntity user = sysUserService.queryObject(userId); //获取用户所属的角色列表 List roleIdList = sysUserRoleService.queryRoleIdList(userId); user.setRoleIdList(roleIdList); return R.ok().put("user", user); } /** * 保存用户 */ @SysLog("保存用户") @RequestMapping("/save") @RequiresPermissions("sys:user:save") public R save(@RequestBody SysUserEntity user) { //ValidatorUtils.validateEntity(user); user.setCreateUserId(getUserId()); sysUserService.save(user); return R.ok(); } /** * 修改用户 */ @SysLog("修改用户") @RequestMapping("/update") @RequiresPermissions("sys:user:update") public R update(@RequestBody SysUserEntity user) { //ValidatorUtils.validateEntity(user); user.setCreateUserId(getUserId()); sysUserService.update(user); return R.ok(); } /** * 删除用户 */ @SysLog("删除用户") @RequestMapping("/delete") @RequiresPermissions("sys:user:delete") public R delete(@RequestBody Long[] userIds) { if (ArrayUtils.contains(userIds, 1L)) { return R.error("系统管理员不能删除"); } if (ArrayUtils.contains(userIds, getUserId())) { return R.error("当前用户不能删除"); } sysUserService.deleteBatch(userIds); return R.ok(); } }