You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

332 lines
14 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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<Power_UserVo> list(Power_UserVo powerUser, HttpServletRequest request){
PageHelper<Power_UserVo>pageHelper = new PageHelper<Power_UserVo>();
try {
int total = powerUserService.getTotal(powerUser,request);
pageHelper.setTotal(total);
List<Power_UserVo>list = 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<Power_DeptVo> 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<Power_DeptVo> 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<Power_User> 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<Power_User> 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<Power_User> 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<String> 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<String>("无数据!", responseHeaders, HttpStatus.OK);
}
if(excelEntity.getWrongCount() == 0){
//成功
return new ResponseEntity<String>(null, responseHeaders, HttpStatus.OK);
}else{
//有出错数据
String msgStr = excelEntity.getWorkBookKey()+"@已成功导入"+excelEntity.getSuccessCount()+"条,失败"+excelEntity.getWrongCount()+"条,随后将导出错误记录!";
return new ResponseEntity<String>(msgStr, responseHeaders, HttpStatus.OK);
}
}catch (Exception e){
CacheManager.addExcCount("exc");
//抛异常
return new ResponseEntity<String>(e.getMessage(), responseHeaders, HttpStatus.OK);
}finally {
if(os != null){
try {
os.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
}
}