package com.kmall.admin.fromcomm.controller; import com.kmall.admin.dto.SysUserDto; import com.kmall.admin.utils.ShiroUtils; import com.kmall.common.annotation.SysLog; import com.kmall.common.constant.Dict; import com.kmall.admin.fromcomm.entity.SysUserEntity; import com.kmall.admin.fromcomm.service.SysUserRoleService; import com.kmall.admin.fromcomm.service.SysUserService; import com.kmall.common.constant.JxlsXmlTemplateName; import com.kmall.common.utils.*; import com.kmall.common.utils.excel.ExcelUtil; import com.kmall.common.validator.Assert; 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 org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.HashMap; 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; @Autowired private ExcelUtil excelUtil; /** * 所有用户列表 */ @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() { SysUserEntity userEntity = getUser(); userEntity = sysUserService.queryObject(userEntity.getUserId()); return R.ok().put("user", userEntity); } /** * 修改登录用户密码 */ @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(); } /** * 上传文件 */ @RequestMapping("/sysUserUpload") public R storeUpload(@RequestParam("file") MultipartFile file) { List sysUserDtoList = new ArrayList<>();//信息 try { SysUserDto storeGoodsDto = new SysUserDto(); Map beans = new HashMap(); beans.put("SysUserDto", storeGoodsDto); beans.put("SysUserDtoList", sysUserDtoList); if (file.isEmpty()) { return R.error("文件不能为空!"); } excelUtil.readExcel(JxlsXmlTemplateName.SYS_USER_DTO_LIST, beans, file.getInputStream()); } catch (Exception e) { e.printStackTrace(); return R.error("导入失败!"); } sysUserService.uploadExcel(sysUserDtoList); //上传文件 return R.ok("导入成功!"); } }