package com.manage.controller; import com.manage.annotation.OptionalLog; import com.manage.annotation.RequiresPermissions; import com.manage.entity.Power_Role; import com.manage.entity.Power_User; import com.manage.service.cache.CacheManager; import com.manage.service.Power_RoleService; import com.manage.service.ImportExcel.ImportExcelUtil; import com.manage.util.Msg; import com.manage.util.PageHelper; import com.manage.vo.ImportExcelEntity; import com.manage.vo.Power_RoleVo; import com.manage.vo.Power_UserVo; import org.springframework.beans.factory.annotation.Autowired; 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 org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; 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/28 * @Description: */ @Controller @RequestMapping("/role") public class RoleController { @Autowired Power_RoleService powerRoleService; /** * @Date 2019-4-25 * @Author ly * @Description 分页 * */ @RequiresPermissions(value="/role/pageUI") @RequestMapping("/pageList") @ResponseBody public PageHelper list(Power_RoleVo powerRole,HttpServletRequest request){ PageHelperpageHelper = new PageHelper(); try { //统计总记录数 int total = powerRoleService.getTotal(powerRole,request); pageHelper.setTotal(total); //查询当前页实体对象 List list = powerRoleService.findSomeByMore(powerRole,request); pageHelper.setRows(list); CacheManager.addExcCount("noExc"); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); } return pageHelper; } /** * @Date 2019-4-25 * @Author ly * @Description 返回页面 * */ @OptionalLog(module = "查看",methods = "角色管理页面") @RequiresPermissions(value="/role/pageUI") @RequestMapping("/pageUI") public String pageUI(){ CacheManager.addExcCount("noExc"); return "roleDir/role"; } /** * @Date 2019-4-25 * @Author ly * @Description 返回页面 * */ @OptionalLog(module = "查看",methods = "角色管理页面") @RequiresPermissions(value="/role/pageUINotDown") @RequestMapping("/pageUINotDown") public String pageUINotDown(){ CacheManager.addExcCount("noExc"); return "roleDir/roleNotDown"; } /** * @Date 2019-08-02 * @Author zengwenhe * @Description 验证角色名是否重复 * */ @RequestMapping("/checkRoleName") @ResponseBody public Msg checkRoleName(String roleName){ try { Power_Role role = powerRoleService.checkRoleName(roleName); CacheManager.addExcCount("noExc"); if(null != role){ return Msg.fail("角色名已存在!"); }else{ return Msg.success(); } }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return Msg.fail("验证角色名出错了,请联系系统管理员!"); } } /** * @Date 2019-4-25 * @Author ly * @Description 新增角色 * */ @OptionalLog(module = "新增",methods = "角色管理",fieldName = "roleName") @RequiresPermissions(value="/role/add") @RequestMapping("/add") @ResponseBody public Msg add(Power_Role powerRole){ try { Power_Role role = powerRoleService.checkRoleName(powerRole.getRoleName()); if(null != role){ return Msg.fail("角色名不能重复!"); }else{ powerRoleService.insertSelective(powerRole); } CacheManager.addExcCount("noExc"); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace();; return Msg.fail("新增失败,请联系系统管理员!"); } return Msg.success(); } /** * @Date 2019-4-25 * @Author ly * @Description 更新角色 * */ @OptionalLog(module = "修改",methods = "角色管理",fieldName = "roleName") @RequiresPermissions(value="/role/update") @RequestMapping("/update") @ResponseBody public Msg update(Power_Role powerRole,HttpServletRequest request){ try { Power_Role role = powerRoleService.checkRoleName(powerRole.getRoleName()); if(null != role && !role.getRoleId().equals(powerRole.getRoleId())){ return Msg.fail("角色名不能重复!"); }else{ powerRoleService.updateByPrimaryKeySelective(powerRole,request); } CacheManager.addExcCount("noExc"); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return Msg.fail("更新失败,请联系系统管理员!"); } return Msg.success(); } /** * @Date 2019-4-25 * @Author ly * @Description 删除角色 * */ @OptionalLog(module = "删除",methods = "角色管理",fieldName = "roleName",tableName = "power_role") @RequiresPermissions(value="/role/delete") @RequestMapping("/delete") @ResponseBody public Msg delete(Integer roleId){ try { powerRoleService.deleteByPrimaryKey(roleId); CacheManager.addExcCount("noExc"); return Msg.success(); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return Msg.fail(); } } /** * @Date 2019-4-25 * @Author ly * @Description 查询角色 * */ @RequestMapping("/selectRole") @ResponseBody public Power_Role selectRole(Integer roleId){ try { Power_Role powerRole = powerRoleService.selectByPrimaryKey(roleId); CacheManager.addExcCount("noExc"); return powerRole; }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return null; } } /** * @Date 2019-4-25 * @Author ly * @Description 导出Excel * */ @OptionalLog(module = "导出excel",methods = "角色管理") @RequiresPermissions(value="/role/export") @RequestMapping("/export") public void export(Power_RoleVo powerRole, HttpServletResponse response, HttpServletRequest request){ try { powerRoleService.export(powerRole,response,request); CacheManager.addExcCount("noExc"); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); } } /** * @Date 2019-4-25 * @Author ly * @Description 导出Excel * */ @OptionalLog(module = "导出excel",methods = "角色管理") @RequiresPermissions(value="/role/export") @RequestMapping("/exportNotDown") public void exportNotDown(Power_RoleVo powerRole, HttpServletResponse response, HttpServletRequest request){ try { powerRoleService.exportNotDown(powerRole,response,request); CacheManager.addExcCount("noExc"); }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); } } /** * @Date 2019-4-30 * @Author ly * @Description 查询角色列表 * */ @RequestMapping("/selectList") @ResponseBody public List selectList(HttpServletRequest request){ try { List power_roles = powerRoleService.selectListByPower(request); CacheManager.addExcCount("noExc"); return power_roles; }catch (Exception e){ CacheManager.addExcCount("exc"); e.printStackTrace(); return null; } } /** * @Date 2019-10-11 * @Author zengwh * @Description 导入excel * */ @OptionalLog(module = "导入excel",methods = "角色管理") @RequiresPermissions(value="/role/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 = {"roleName","remark","showRecord","downloadRecord","effective"}; //判断集中类中的方法名 String[] judgeMethods = {"judgeRoleName","judgeRemark","judgeShowRecord","judgeDownloadRecord","convertEffective"}; //导入excel的操作 Power_Role role = new Power_Role(); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); Power_UserVo user = (Power_UserVo)request.getSession().getAttribute("CURRENT_USER"); role.setCreater(user.getUserName()); role.setUpdater(user.getUserName()); role.setCreateDate(fmt.format(new Date())); role.setUpdateDate(fmt.format(new Date())); //实例化 ImportExcelUtil.newInstance("power_RoleMapper",role, Power_Role.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(); } } } } /** * @Date 2019-10-11 * @Author zengwh * @Description 导入excel * */ @OptionalLog(module = "导入excel",methods = "角色管理") @RequiresPermissions(value="/role/importExcel") @RequestMapping(value="/importExcelNotDown",method = {RequestMethod.POST}) @ResponseBody public ResponseEntity importExcelNotDown(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 = {"roleName","remark","effective"}; //判断集中类中的方法名 String[] judgeMethods = {"judgeRoleName","judgeRemark","convertEffective"}; //导入excel的操作 Power_Role role = new Power_Role(); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); Power_UserVo user = (Power_UserVo)request.getSession().getAttribute("CURRENT_USER"); role.setCreater(user.getUserName()); role.setUpdater(user.getUserName()); role.setCreateDate(fmt.format(new Date())); role.setUpdateDate(fmt.format(new Date())); //实例化 ImportExcelUtil.newInstance("power_RoleMapper",role, Power_Role.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(); } } } } }