package com.manage.controller; import com.manage.annotation.OptionalLog; import com.manage.annotation.RequiresPermissions; import com.manage.dao.Power_User_DictMapper; import com.manage.encrypt.Base64; import com.manage.encrypt.MD5; import com.manage.entity.Power_Dept; import com.manage.entity.Power_User; import com.manage.service.Power_DeptService; import com.manage.service.cache.CacheManager; import com.manage.service.ImportExcel.ImportExcelUtil; import com.manage.util.*; import com.manage.vo.*; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import com.manage.service.Power_UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; /** * @Author:ly * @Date:Creatid in 10:10 2019/4/15 * @Description: */ @Controller @RequestMapping("/user") public class UserController { @Autowired private Power_UserService powerUserService; @Autowired private Power_DeptService deptService; @Autowired private Power_User_DictMapper userDictMapper; @RequiresPermissions(value="/user/pageUI") @ResponseBody @RequestMapping("/pageList") public PageHelper list(Power_UserVo powerUser, HttpServletRequest request){ PageHelperpageHelper = new PageHelper(); try { int total = powerUserService.getTotal(powerUser,request); pageHelper.setTotal(total); Listlist = powerUserService.findSomeByMore(powerUser,request); pageHelper.setRows(list); CacheManager.addExcCount("noExc"); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); } return pageHelper; } @OptionalLog(module = "查看",methods = "用户管理页面") @RequiresPermissions(value="/user/pageUI") @RequestMapping("/pageUI") public String pageUI(Model model,HttpServletRequest request){ CacheManager.addExcCount("noExc"); Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); //根据登陆者查询所属医院id。非系统管理员,查询所属医院id Integer dictId = null; if(!user.getRoleId().equals(0)){ Power_User_Dict power_user_dict = userDictMapper.selectDictIdByUserId(user.getUserId()); dictId = power_user_dict.getDictId(); } List depts = deptService.selectDeptByDictId(dictId,null); model.addAttribute("depts",depts); return "userDir/user"; } @OptionalLog(module = "查看",methods = "用户管理页面") @RequiresPermissions(value="/user/pageUI1") @RequestMapping("/pageUI1") public String pageUI1(Model model,HttpServletRequest request){ CacheManager.addExcCount("noExc"); Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); //根据登陆者查询所属医院id。非系统管理员,查询所属医院id Integer dictId = null; if(!user.getRoleId().equals(0)){ Power_User_Dict power_user_dict = userDictMapper.selectDictIdByUserId(user.getUserId()); dictId = power_user_dict.getDictId(); } List depts = deptService.selectDeptByDictId(dictId,null); model.addAttribute("depts",depts); return "userDir/user1"; } @OptionalLog(module = "导出excel",methods = "用户管理") @RequiresPermissions(value="/user/export") @RequestMapping("/export") public void download(Power_UserVo powerUser,HttpServletRequest request,HttpServletResponse response){ try { powerUserService.export(powerUser,request,response); CacheManager.addExcCount("noExc"); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); } } @OptionalLog(module = "导出excel",methods = "用户管理") @RequiresPermissions(value="/user/export") @RequestMapping("/export1") public void download1(Power_UserVo powerUser,HttpServletRequest request,HttpServletResponse response){ try { powerUserService.export1(powerUser,request,response); CacheManager.addExcCount("noExc"); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); } } @RequestMapping("/checkUserName") @ResponseBody public Msg checkUserName(String userName){ try { List list = powerUserService.checkUserName(userName); CacheManager.addExcCount("noExc"); if(null != list && !list.isEmpty()){ return Msg.fail("用户名已存在!"); }else{ return Msg.success(); } }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return Msg.fail(); } } @OptionalLog(module = "新增",methods = "用户管理",fieldName = "userName") @RequiresPermissions(value="/user/add") @RequestMapping("/add") @ResponseBody public Msg add(Power_User powerUser){ try { List user = powerUserService.checkUserName(powerUser.getUserName()); CacheManager.addExcCount("noExc"); if(null != user && !user.isEmpty()){ return Msg.fail("用户已存在!"); }else{ powerUserService.insertSelective(powerUser); return Msg.success(); } }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return Msg.fail(); } } @OptionalLog(module = "删除",methods = "用户管理",fieldName = "userName",tableName = "power_user") @RequiresPermissions(value="/user/delete") @RequestMapping("/delete") @ResponseBody public Msg delete(Integer userId){ try { powerUserService.deleteByPrimaryKey(userId); CacheManager.addExcCount("noExc"); return Msg.success(); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return Msg.fail("删除失败,请联系系统管理员!"); } } @OptionalLog(module = "修改",methods = "用户管理",fieldName = "userName") @RequiresPermissions(value="/user/update") @RequestMapping("/update") @ResponseBody public Msg update(Power_User powerUser,HttpServletRequest request){ try { List user = powerUserService.checkUserName(powerUser.getUserName()); if(null != user && !user.isEmpty() && !user.get(0).getUserId().equals(powerUser.getUserId())){ return Msg.fail("用户名已存在!"); }else{ powerUserService.updateByPrimaryKeySelective(powerUser,request); CacheManager.addExcCount("noExc"); return Msg.success(); } }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return Msg.fail("更新失败,请联系系统管理员!"); } } @OptionalLog(module = "重置密码",methods = "用户管理",fieldName = "userName",tableName = "power_user") @RequiresPermissions(value="/user/resetPassword") @RequestMapping("/resetPassword") @ResponseBody public Msg update(Integer userId){ try { ServletRequestAttributes attr=(ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request =attr.getRequest(); Power_UserVo powerUser = powerUserService.selectByPrimaryKey(userId); powerUser.setUserPwd(Base64.encode(MD5.KL("000000"))); powerUserService.updateByPrimaryKeySelective(powerUser,request); CacheManager.addExcCount("noExc"); return Msg.success(); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return Msg.fail(); } } @RequestMapping("/selectUser") @ResponseBody public Power_User selectUser(Integer userId){ try { Power_User powerUser = powerUserService.selectByPrimaryKey(userId); CacheManager.addExcCount("noExc"); return powerUser; }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return null; } } @RequestMapping(value = "/toUpdatePassword") public String toUpdatePassword(HttpServletRequest request, Model model){ try { Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER"); Power_UserVo userVo = powerUserService.selectByPrimaryKey(user.getUserId()); model.addAttribute("user",userVo); CacheManager.addExcCount("noExc"); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); } return "/userDir/updatePassword"; } @OptionalLog(module = "修改密码",methods = "用户管理") @RequestMapping(value = "/updatePassword") @ResponseBody public Msg updatePassword(String userPwd){ try { boolean result = powerUserService.updatePassword(userPwd); CacheManager.addExcCount("noExc"); return Msg.success().add("result",result); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return Msg.fail(); } } /** * @Date 2019-10-11 * @Author zengwh * @Description 导入excel * */ @OptionalLog(module = "导入excel",methods = "用户管理") @RequiresPermissions(value="/user/importExcel") @RequestMapping(value="/importExcel",method = {RequestMethod.POST}) @ResponseBody public ResponseEntity importExcel(HttpServletRequest request){ OutputStream os = null; HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(new MediaType("text","html", Charset.forName("UTF-8"))); try { //读取文件 MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext()); MultipartHttpServletRequest multipartRequest = resolver.resolveMultipart(request); MultipartFile multipartFile = multipartRequest.getFile("upfile"); //属性名 String[] fieldNames = {"userName","userPwd","name","userSex","userAge","userTel","userEmail","userPosition","roleId","deptId","effective","remark"}; //判断集中类中的方法名 String[] judgeMethods = {"judgeUserName","judgePassWord",null,"convertSex",null,"judgeUserTel","judgeUserEmail",null,"judgeRoleId","judgeDeptId","convertEffective","judgeRemark"}; Power_User userVo = new Power_User(); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); Power_UserVo user = (Power_UserVo)request.getSession().getAttribute("CURRENT_USER"); userVo.setCreater(user.getUserName()); userVo.setUpdater(user.getUserName()); userVo.setCreateDate(fmt.format(new Date())); userVo.setUpdateDate(fmt.format(new Date())); //实例化 ImportExcelUtil.newInstance("power_UserMapper",userVo, Power_User.class); //导入excel的操作 ImportExcelEntity excelEntity = ImportExcelUtil.fileImport(multipartFile,fieldNames, judgeMethods); CacheManager.addExcCount("noExc"); if(excelEntity.getSuccessCount() == 0 && excelEntity.getWrongCount() == 0){ //无数据 return new ResponseEntity("无数据!", responseHeaders, HttpStatus.OK); } if(excelEntity.getWrongCount() == 0){ //成功 return new ResponseEntity(null, responseHeaders, HttpStatus.OK); }else{ //有出错数据 String msgStr = excelEntity.getWorkBookKey()+"@已成功导入"+excelEntity.getSuccessCount()+"条,失败"+excelEntity.getWrongCount()+"条,随后将导出错误记录!"; return new ResponseEntity(msgStr, responseHeaders, HttpStatus.OK); } }catch (Exception e){ CacheManager.addExcCount("exc"); //抛异常 return new ResponseEntity(e.getMessage(), responseHeaders, HttpStatus.OK); }finally { if(os != null){ try { os.close(); }catch (Exception e){ e.printStackTrace(); } } } } }