package com.flf.controller;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.flf.entity.Menu;
import com.flf.entity.Role;
import com.flf.entity.User;
import com.flf.service.MenuService;
import com.flf.service.RoleService;
import com.flf.service.UserService;
import com.flf.util.RightsHelper;
import com.flf.util.Tools;
import com.flf.view.UserExcelView;
@Controller
@RequestMapping(value="/user")
public class UserController {
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;
@Autowired
private MenuService menuService;
/**
* 显示用户列表
* @param user
* @return
*/
@RequestMapping
public ModelAndView list(User user){
//List<User> userList = userService.listAllUser(page);
List<User> userList = userService.listPageUser(user);
List<Role> roleList = roleService.listAllRoles();
ModelAndView mv = new ModelAndView();
mv.setViewName("users");
mv.addObject("userList", userList);
mv.addObject("roleList", roleList);
mv.addObject("user", user);
return mv;
}
/**
* 请求新增用户页面
* @param model
* @return
*/
@RequestMapping(value="/add")
public String toAdd(Model model){
List<Role> roleList = roleService.listAllRoles();
model.addAttribute("roleList", roleList);
return "user_info";
}
/**
* 保存用户信息
* @param user
* @return
*/
@RequestMapping(value="/save",method=RequestMethod.POST)
public ModelAndView saveUser(User user){
ModelAndView mv = new ModelAndView();
if(user.getUserId()==null || user.getUserId().intValue()==0){
if(userService.insertUser(user)==false){
mv.addObject("msg","failed");
}else{
mv.addObject("msg","success");
}
}else{
userService.updateUserBaseInfo(user);
}
mv.setViewName("save_result");
return mv;
}
/**
* 请求编辑用户页面
* @param userId
* @return
*/
@RequestMapping(value="/edit")
public ModelAndView toEdit(@RequestParam int userId){
ModelAndView mv = new ModelAndView();
User user = userService.getUserById(userId);
List<Role> roleList = roleService.listAllRoles();
mv.addObject("user", user);
mv.addObject("roleList", roleList);
mv.setViewName("user_info");
return mv;
}
/**
* 删除某个用户
* @param userId
* @param out
*/
@RequestMapping(value="/delete")
public void deleteUser(@RequestParam int userId,PrintWriter out){
userService.deleteUser(userId);
out.write("success");
out.close();
}
/**
* 请求用户授权页面
* @param userId
* @param model
* @return
*/
@RequestMapping(value="/auth")
public String auth(@RequestParam int userId,Model model){
List<Menu> menuList = menuService.listAllMenu();
User user = userService.getUserById(userId);
String userRights = user.getRights();
if(Tools.notEmpty(userRights)){
for(Menu menu : menuList){
menu.setHasMenu(RightsHelper.testRights(userRights, menu.getMenuId()));
if(menu.isHasMenu()){
List<Menu> subRightsList = menu.getSubMenu();
for(Menu sub : subRightsList){
sub.setHasMenu(RightsHelper.testRights(userRights, sub.getMenuId()));
}
}
}
}
JSONArray arr = JSONArray.fromObject(menuList);
String json = arr.toString();
json = json.replaceAll("menuId", "id").replaceAll("menuName", "name").replaceAll("subMenu", "nodes").replaceAll("hasMenu", "checked");
model.addAttribute("zTreeNodes", json);
model.addAttribute("userId", userId);
return "authorization";
}
/**
* 保存用户权限
* @param userId
* @param menuIds
* @param out
*/
@RequestMapping(value="/auth/save")
public void saveAuth(@RequestParam int userId,@RequestParam String menuIds,PrintWriter out){
BigInteger rights = RightsHelper.sumRights(Tools.str2StrArray(menuIds));
User user = userService.getUserById(userId);
user.setRights(rights.toString());
userService.updateUserRights(user);
out.write("success");
out.close();
}
/**
* 导出用户信息到excel
* @return
*/
@RequestMapping(value="/excel")
public ModelAndView export2Excel(){
Map<String,Object> dataMap = new HashMap<String,Object>();
List<String> titles = new ArrayList<String>();
titles.add("用户名");
titles.add("名称");
titles.add("角色");
titles.add("最近登录");
dataMap.put("titles", titles);
List<User> userList = userService.listAllUser();
dataMap.put("userList", userList);
UserExcelView erv = new UserExcelView();
ModelAndView mv = new ModelAndView(erv,dataMap);
return mv;
}
@InitBinder
public void initBinder(WebDataBinder binder){
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
binder.registerCustomEditor(Date.class, new CustomDateEditor(format,true));
}
}
最近下载更多
hyxhyxhyx LV1
2024年10月24日
黑 LV7
2024年3月25日
1379585889 LV11
2023年6月7日
孟子大叔 LV7
2023年3月27日
hihhhh LV6
2022年12月18日
ming_123_9715 LV23
2022年7月19日
wanglinddad LV55
2022年4月7日
鹿先森 LV3
2022年2月17日
mynewcode LV5
2022年2月9日
Liang LV3
2021年6月23日
最近浏览更多
暂无贡献等级
hyxhyxhyx LV1
2024年10月24日
林守汐 LV2
2024年6月20日
lilitu LV6
2024年5月29日
yyhrhv LV8
2024年5月23日
zsk2024
2024年5月22日
暂无贡献等级
uid0901 LV3
2024年4月2日
1437047954
2024年3月7日
暂无贡献等级
xuweiwowzy LV5
2024年1月14日
bjlabc LV1
2024年1月4日

