项目初始导入

This commit is contained in:
dell
2017-12-29 16:18:40 +08:00
commit 0788f42ae7
3221 changed files with 500217 additions and 0 deletions

View File

@@ -0,0 +1,115 @@
package com.nis.web.controller.sys;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.SysArea;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping("${adminPath}/sys/area")
public class AreaController extends BaseController {
@ModelAttribute
public SysArea get(@RequestParam(required=false) Long id) {
if (!StringUtil.isEmpty(id)){
return areaService.get(id);
}else{
return new SysArea();
}
}
@RequiresPermissions("sys:area:view")
@RequestMapping("index")
public String index(SysArea area, Model model) {
return "/sys/areaIndex";
}
@RequiresPermissions("sys:area:view")
@RequestMapping(value = {"list"})
public String list(SysArea sysArea, Model model) {
model.addAttribute("list", areaService.findAllAreaList(sysArea));
return "/sys/areaList";
}
@RequiresPermissions("sys:area:view")
@RequestMapping(value = "form")
public String form(SysArea area, Model model) {
if (!StringUtil.isEmpty(area.getParent().getId())) {
area.setParent(areaService.get(area.getParent().getId()));
}
model.addAttribute("area", area);
return "/sys/areaForm";
}
@RequiresPermissions("sys:area:edit")
@RequestMapping(value = "saveOrUpdate")
public String saveOrUpdate(SysArea sysArea, Model model, RedirectAttributes redirectAttributes) {
areaService.saveOrUpdate(sysArea);
addMessage(redirectAttributes, "保存区域'" + sysArea.getName() + "'成功");
String id = sysArea.getParentId().equals(0l) ? "" : String.valueOf(sysArea.getParentId());
return "redirect:" + adminPath + "/sys/area/list?id="+id+"&parentIds="+sysArea.getParent().getParentIds();
}
@RequiresPermissions("sys:area:edit")
@RequestMapping(value = "delete")
public String delete(SysArea area, RedirectAttributes redirectAttributes) {
areaService.delete(area);
addMessage(redirectAttributes, "删除区域成功");
return "redirect:" + adminPath + "/sys/area/list?id="+area.getParentId()+"&parentIds="+area.getParent().getParentIds();
}
@RequiresPermissions("user")
@ResponseBody
@RequestMapping(value = "treeData")
public List<Map<String, Object>> treeData(@RequestParam(required=false) String extId, HttpServletResponse response) {
List<Map<String, Object>> mapList = Lists.newArrayList();
List<SysArea> list = areaService.findAll();
for (int i=0; i<list.size(); i++){
SysArea e = list.get(i);
if (StringUtils.isBlank(extId) || (extId!=null && !extId.equals(e.getId()) && e.getParentIds().indexOf(","+extId+",")==-1)){
Map<String, Object> map = Maps.newHashMap();
map.put("id", e.getId());
map.put("pId", e.getParentId());
map.put("pIds", e.getParentIds());
map.put("name", e.getName());
mapList.add(map);
}
}
return mapList;
}
}

View File

@@ -0,0 +1,101 @@
package com.nis.web.controller.sys;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.Page;
import com.nis.domain.SysDataDictionaryName;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/sys/dict")
public class DictController extends BaseController {
@ModelAttribute
public SysDataDictionaryName get(@RequestParam(required=false) Integer id) {
if (!StringUtil.isEmpty(id)){
return dictService.getDictByIdWithRelation(id);
}else{
return new SysDataDictionaryName();
}
}
@RequiresPermissions("sys:dict:view")
@RequestMapping(value = {"list", ""})
public String list(SysDataDictionaryName sysDictName,HttpServletRequest request, HttpServletResponse response, Model model) {
Page<SysDataDictionaryName> page = dictService.findDictList(new Page<SysDataDictionaryName>(request, response), sysDictName);
model.addAttribute("page", page);
return "/sys/dictList";
}
/**
* 进入字典添加或修改页面
* @param sysDictName
* @param model
* @return
*/
@RequestMapping(value={"form"})
public String form(SysDataDictionaryName sysDictName, Model model) {
return "/sys/dictForm";
}
@RequiresPermissions("sys:dict:edit")
@RequestMapping(value = "saveOrUpdate")
public String saveOrUpdate(SysDataDictionaryName sysDictName,Model model, RedirectAttributes redirectAttributes) {
try {
dictService.saveOrUpdate(sysDictName);
addMessage(redirectAttributes, "保存字典成功");
} catch (Exception e) {
e.printStackTrace();
addMessage(redirectAttributes, "保存字典失败!");
}
return "redirect:" + adminPath + "/sys/dict/list";
}
@RequiresPermissions("sys:dict:edit")
@RequestMapping(value = "delete")
public String delete(Integer id,Model model, RedirectAttributes redirectAttributes) {
try {
dictService.deleteDict(id);
addMessage(redirectAttributes, "删除字典成功");
} catch (Exception e) {
e.printStackTrace();
addMessage(redirectAttributes, "删除字典失败!");
}
return "redirect:" + adminPath + "/sys/dict/list";
}
@ResponseBody
@RequestMapping(value = "loadDataDict")
public SysDataDictionaryName loadDataDict(@RequestParam(required=false) Integer id,HttpServletRequest request, HttpServletResponse response, Model model){
return dictService.getDictByIdWithRelation(id);
}
}

View File

@@ -0,0 +1,42 @@
package com.nis.web.controller.sys;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.nis.domain.SrcIp;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping("${adminPath}/sys/ipLocation")
public class IpLocationController extends BaseController{
/**
* 进入首页IP定位
* @param office
* @param model
* @return
*/
@RequestMapping("index")
public String index(Model model) {
return "/sys/ipLocation";
}
/**
* 检索获取当前位置信息
* @param srcIp
* @param model
* @return
*/
@RequestMapping("search")
public String search(SrcIp srcIp, Model model) {
systemService.ipLookUp(srcIp.getSearchIp()).get(0);
return "/sys/iplocationResult";
}
}

View File

@@ -0,0 +1,143 @@
package com.nis.web.controller.sys;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.SysMenu;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
@Controller
@RequestMapping("${adminPath}/sys/menu")
public class MenuController extends BaseController {
@ModelAttribute("sysMenu")
public SysMenu get(@RequestParam(required=false) Long id) {
if (!StringUtil.isEmpty(id)){
return menuService.getMenu(id);
}else{
return new SysMenu();
}
}
@RequiresPermissions("sys:menu:view")
@RequestMapping(value = {"list", ""})
public String list(Model model) {
List<SysMenu> list = Lists.newArrayList();
List<SysMenu> sourcelist = menuService.findAllMenu();
SysMenu.sortList(list, sourcelist, SysMenu.getRootId(), true);
model.addAttribute("list", list);
return "/sys/menuList";
}
@RequiresPermissions("sys:menu:view")
@RequestMapping(value = "form")
public String form(SysMenu menu, Model model) {
if (menu.getParent() == null || menu.getParent().getId() == null) {
menu.setParent(new SysMenu(SysMenu.getRootId()));
}
menu.setParent(menuService.getMenu(menu.getParent().getId()));
// 获取排序号,最末节点排序号+30
if (StringUtil.isEmpty(menu.getId())) {
List<SysMenu> list = Lists.newArrayList();
List<SysMenu> sourcelist = menuService.findAllMenu();
SysMenu.sortList(list, sourcelist, menu.getParentId(), false);
if (list.size() > 0){
menu.setSort(list.get(list.size()-1).getSort() + 30);
}
}
model.addAttribute("menu", menu);
return "/sys/menuForm";
}
@RequiresPermissions("sys:menu:edit")
@RequestMapping(value = "saveOrUpdate")
public String saveOrUpdate(SysMenu menu, Model model, RedirectAttributes redirectAttributes) {
if(!UserUtils.getUser().isAdmin()){
addMessage(redirectAttributes, "越权操作,只有超级管理员才能添加或修改数据!");
return "redirect:" + adminPath + "/sys/role/?repage";
}
menuService.saveOrUpdateMenu(menu);
addMessage(redirectAttributes, "保存菜单'" + menu.getName() + "'成功");
return "redirect:" + adminPath + "/sys/menu/";
}
@RequiresPermissions("sys:menu:edit")
@RequestMapping(value = "delete")
public String delete(SysMenu menu, RedirectAttributes redirectAttributes) {
// if (Menu.isRoot(id)){
// addMessage(redirectAttributes, "删除菜单失败, 不允许删除顶级菜单或编号为空");
// }else{
menuService.deleteMenu(menu);
addMessage(redirectAttributes, "删除菜单成功");
// }
return "redirect:" + adminPath + "/sys/menu/";
}
/**
* 批量修改菜单排序
*/
@RequiresPermissions("sys:menu:edit")
@RequestMapping(value = "updateSort")
public String updateSort(Long[] ids, Integer[] sorts, RedirectAttributes redirectAttributes) {
for (int i = 0; i < ids.length; i++) {
SysMenu menu = new SysMenu(ids[i]);
menu.setSort(sorts[i]);
menuService.updateMenuSort(menu);
}
addMessage(redirectAttributes, "保存菜单排序成功!");
return "redirect:" + adminPath + "/sys/menu/";
}
/**
* isShowHide是否显示隐藏菜单
* @param extId
* @param isShowHidden
* @param response
* @return
*/
@RequiresPermissions("user")
@ResponseBody
@RequestMapping(value = "treeData")
public List<Map<String, Object>> treeData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response) {
List<Map<String, Object>> mapList = Lists.newArrayList();
List<SysMenu> list = menuService.findAllMenu();
for (int i=0; i<list.size(); i++){
SysMenu menu = list.get(i);
if (StringUtils.isBlank(extId) || (extId !=null && !extId.equals(menu.getId()) && menu.getParentIds().indexOf(","+extId+",") == -1)) {
if(isShowHide != null && isShowHide.equals("0") && menu.getIsShow().equals(0)){
continue;
}
Map<String, Object> map = Maps.newHashMap();
map.put("id", menu.getId());
map.put("pId", menu.getParentId());
map.put("name",menu.getName());
mapList.add(map);
}
}
return mapList;
}
}

View File

@@ -0,0 +1,163 @@
package com.nis.web.controller.sys;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.SysOffice;
import com.nis.domain.SysUser;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
@Controller
@RequestMapping("${adminPath}/sys/office")
public class OfficeController extends BaseController {
@ModelAttribute
public SysOffice get(@RequestParam(required=false) Long id) {
if (!StringUtil.isEmpty(id)){
return officeService.get(id);
}else{
return new SysOffice();
}
}
/**
* 进入机构首页
* @param office
* @param model
* @return
*/
@RequiresPermissions("sys:office:view")
@RequestMapping("")
public String index(SysOffice office,Model model) {
return "/sys/officeIndex";
}
@RequiresPermissions("sys:office:view")
@RequestMapping("list")
public String list(SysOffice sysOffice, Model model) {
model.addAttribute("list", officeService.findAllOfficeList(sysOffice));
return "/sys/officeList";
}
@RequiresPermissions("sys:office:view")
@RequestMapping(value = "form")
public String form(SysOffice office, Model model) {
SysUser user = UserUtils.getUser();
if (office.getParent() == null || office.getParent().getId() == null){
office.setParent(user.getOffice());
} else {
office.setParent(officeService.get(office.getParent().getId()));
}
if (office.getArea() == null) {
office.setArea(user.getOffice().getArea());
}
// 自动获取排序号
if (StringUtil.isEmpty(office.getId()) && office.getParent() != null) {
int size = 0;
List<SysOffice> list = officeService.findAll();
for (int i=0; i<list.size(); i++){
SysOffice e = list.get(i);
if (e.getParent() != null && e.getParent().getId() !=null
&& e.getParent().getId().equals(office.getParent().getId())){
size++;
}
}
office.setCode(office.getParent().getCode() + StringUtils.leftPad(String.valueOf(size > 0 ? size+1 : 1), 3, "0"));
}
model.addAttribute("office", office);
return "/sys/officeForm";
}
@RequiresPermissions("sys:office:edit")
@RequestMapping(value = "saveOrUpdate")
public String saveOrUpdate(SysOffice office, Model model, RedirectAttributes redirectAttributes) {
officeService.saveOrUpdate(office);
addMessage(redirectAttributes, "保存机构'" + office.getName() + "'成功");
String id = office.getParentId().equals(0l) ? "" : String.valueOf(office.getParentId());
return "redirect:" + adminPath + "/sys/office/list?id="+id+"&parentIds="+office.getParentIds();
}
@RequiresPermissions("sys:office:edit")
@RequestMapping(value = "delete")
public String delete(SysOffice office, RedirectAttributes redirectAttributes) {
// if (Office.isRoot(id)){
// addMessage(redirectAttributes, "删除机构失败, 不允许删除顶级机构或编号空");
// }else{
officeService.delete(office);
addMessage(redirectAttributes, "删除机构成功");
// }
String id = office.getParentId().equals(0l) ? "" : String.valueOf(office.getParentId());
return "redirect:" + adminPath + "/sys/office/list?id="+id+"&parentIds="+office.getParentIds();
}
/**
* 获取机构JSON数据。
* @param extId 排除的ID
* @param type 类型1公司2 单位3部门4信访办5其它6携带用户
* @param grade 显示级别
* @param response
* @return
*/
@RequiresPermissions("user")
@ResponseBody
@RequestMapping(value = "treeData")
public List<Map<String, Object>> treeData(@RequestParam(required=false) String extId, @RequestParam(required=false) String type,
@RequestParam(required=false) Long grade, @RequestParam(required=false) Boolean isAll, HttpServletResponse response) {
List<Map<String, Object>> mapList = Lists.newArrayList();
List<SysOffice> list = officeService.findList(isAll);
for (int i=0; i<list.size(); i++){
SysOffice e = list.get(i);
if ((StringUtils.isBlank(extId) || (extId != null && !extId.equals(e.getId()) && e.getParentIds().indexOf(","+extId+",") == -1))
&& (type == null || (type != null && e.getType() <= Integer.valueOf(type)))
&& (grade == null || (grade != null && e.getGrade() <= grade.intValue()))){
Map<String, Object> map = Maps.newHashMap();
map.put("id", e.getId());
map.put("pId", e.getParentId());
map.put("pIds", e.getParentIds());
map.put("name", e.getName());
if (type != null && "6".equals(type)){
map.put("isParent", true);
}
mapList.add(map);
}
}
return mapList;
}
}

View File

@@ -0,0 +1,212 @@
package com.nis.web.controller.sys;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.SysRole;
import com.nis.domain.SysUser;
import com.nis.util.Collections3;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
@Controller
@RequestMapping(value = "${adminPath}/sys/role")
public class RoleController extends BaseController {
@ModelAttribute("sysRole")
public SysRole get(@RequestParam(required=false) Long id) {
if (!StringUtil.isEmpty(id)){
return roleService.getRole(id);
}else{
return new SysRole();
}
}
@RequiresPermissions("sys:role:view")
@RequestMapping(value = {"list", ""})
public String list(SysRole role, Model model) {
List<SysRole> list = roleService.findAllRole();
model.addAttribute("list", list);
return "/sys/roleList";
}
@RequiresPermissions("sys:role:view")
@RequestMapping(value = "form")
public String form(SysRole role, Model model) {
model.addAttribute("role", role);
model.addAttribute("menuList", menuService.findAllMenu());
return "/sys/roleForm";
}
/**
* 角色分配页面
* @param role
* @param model
* @return
*/
@RequiresPermissions("sys:role:edit")
@RequestMapping(value = "assign")
public String assign(SysRole role, Model model) {
List<SysUser> userList = userService.findUserByRoleId(role.getId());
model.addAttribute("userList", userList);
return "/sys/roleAssign";
}
/**
* 角色分配 -- 打开角色分配对话框
* @param role
* @param model
* @return
*/
@RequiresPermissions("sys:role:view")
@RequestMapping(value = "usertorole")
public String selectUserToRole(SysRole role, Model model) {
List<SysUser> userList = userService.findUserByRoleId(role.getId());
model.addAttribute("role", role);
model.addAttribute("userList", userList);
model.addAttribute("selectIds", Collections3.extractToString(userList, "id", ","));
model.addAttribute("officeList", officeService.findAll());
return "/sys/selectUserToRole";
}
/**
* 角色分配 -- 根据部门编号获取用户列表
* @param officeId
* @param response
* @return
*/
@RequiresPermissions("sys:role:view")
@ResponseBody
@RequestMapping(value = "users")
public List<Map<String, Object>> users(Long officeId, HttpServletResponse response) {
List<Map<String, Object>> mapList = Lists.newArrayList();
List<SysUser> userList = userService.findUserByOfficeId(officeId);
for (SysUser e : userList) {
Map<String, Object> map = Maps.newHashMap();
map.put("id", e.getId());
map.put("pId", 0);
map.put("name", e.getName());
mapList.add(map);
}
return mapList;
}
/**
* 角色分配
* @param role
* @param idsArr
* @param redirectAttributes
* @return
*/
@RequiresPermissions("sys:role:edit")
@RequestMapping(value = "assignrole")
public String assignRole(SysRole role, String[] idsArr, RedirectAttributes redirectAttributes) {
StringBuilder msg = new StringBuilder();
int newNum = 0;
for (int i = 0; i < idsArr.length; i++) {
SysUser user = systemService.assignUserToRole(role, userService.getUser(idsArr[i]));
if (null != user) {
msg.append("<br/>新增用户【" + user.getName() + "】到角色【" + role.getName() + "】!");
newNum++;
}
}
addMessage(redirectAttributes, "已成功分配 "+newNum+" 个用户"+msg);
return "redirect:" + adminPath + "/sys/role/assign?id="+role.getId();
}
@RequiresPermissions("sys:role:edit")
@RequestMapping(value = "saveOrUpdate")
public String saveOrUpdate(SysRole role, Model model, RedirectAttributes redirectAttributes) {
if (!"true".equals(checkName(role.getOldName(), role.getName()))){
addMessage(model, "保存角色'" + role.getName() + "'失败, 角色名已存在");
return form(role, model);
}
roleService.saveOrUpdate(role);
addMessage(redirectAttributes, "保存角色'" + role.getName() + "'成功");
return "redirect:" + adminPath + "/sys/role/?repage";
}
@RequiresPermissions("sys:role:edit")
@RequestMapping(value = "delete")
public String delete(SysRole role, RedirectAttributes redirectAttributes) {
roleService.deleteRole(role);
addMessage(redirectAttributes, "删除角色成功");
return "redirect:" + adminPath + "/sys/role/?repage";
}
/**
* 验证角色名是否有效
* @param oldName
* @param name
* @return
*/
@RequiresPermissions("user")
@ResponseBody
@RequestMapping(value = "checkName")
public String checkName(String oldName, String name) {
if (name!=null && name.equals(oldName)) {
return "true";
} else if (name!=null && roleService.getRoleByName(name) == null) {
return "true";
}
return "false";
}
/**
* 角色分配 -- 从角色中移除用户
* @param userId
* @param roleId
* @param redirectAttributes
* @return
*/
@RequiresPermissions("sys:role:edit")
@RequestMapping(value = "outrole")
public String outrole(Long userId, Long roleId, RedirectAttributes redirectAttributes) {
SysRole role = roleService.getRole(roleId);
SysUser user = userService.getUser(userId.toString());
if (UserUtils.getUser().getId().equals(userId)) {
addMessage(redirectAttributes, "无法从角色【" + role.getName() + "】中移除用户【" + user.getName() + "】自己!");
}else {
if (user.getUserRoleList().size() <= 1){
addMessage(redirectAttributes, "用户【" + user.getName() + "】从角色【" + role.getName() + "】中移除失败!这已经是该用户的唯一角色,不能移除。");
}else{
Boolean flag = systemService.outUserInRole(role, user);
if (!flag) {
addMessage(redirectAttributes, "用户【" + user.getName() + "】从角色【" + role.getName() + "】中移除失败!");
}else {
addMessage(redirectAttributes, "用户【" + user.getName() + "】从角色【" + role.getName() + "】中移除成功!");
}
}
}
return "redirect:" + adminPath + "/sys/role/assign?id="+role.getId();
}
}

View File

@@ -0,0 +1,27 @@
package com.nis.web.controller.sys;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.nis.domain.Page;
import com.nis.domain.SysLog;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping("${adminPath}/sys/log")
public class SysLogController extends BaseController {
@RequiresPermissions("sys:log:view")
@RequestMapping(value = {"list", ""})
public String list(SysLog sysLog, HttpServletRequest request, HttpServletResponse response, Model model) {
Page<SysLog> page = logService.findPage(new Page<SysLog>(request, response), sysLog);
model.addAttribute("page", page);
return "/sys/logList";
}
}

View File

@@ -0,0 +1,289 @@
package com.nis.web.controller.sys;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
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.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.Page;
import com.nis.domain.SysRole;
import com.nis.domain.SysUser;
import com.nis.util.DateUtils;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.util.excel.ExportExcel;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
@Controller
@RequestMapping("${adminPath}/sys/user")
public class UserController extends BaseController{
@ModelAttribute
public SysUser get(@RequestParam(required=false) Long id) {
if (!StringUtil.isEmpty(id)){
return userService.getUserByIdWithRelation(id);
}else{
return new SysUser();
}
}
@RequiresPermissions("sys:user:view")
@RequestMapping(value = {"index"})
public String index(SysUser user, Model model) {
return "/sys/userIndex";
}
/**
* 进入用户添加或修改页面
* @param user
* @param model
* @return
*/
@RequestMapping(value={"form"})
public String form(SysUser user, Model model) {
if (user.getCompany()==null || user.getCompany().getId()==null){
user.setCompany(UserUtils.getUser().getCompany());
}
if (user.getEntity() == null || user.getEntity().getId() == null) {
user.setEntity(UserUtils.getUser().getEntity());
} else {
user.setEntity(user.getEntity());
}
if (user.getOffice() == null || user.getOffice().getId() == null) {
user.setOffice(UserUtils.getUser().getOffice());
} else {
user.setOffice(user.getOffice());
}
model.addAttribute("user", user);
model.addAttribute("allRoles", roleService.findAllRole());
return "/sys/userForm";
}
@RequiresPermissions("sys:user:edit")
@RequestMapping(value = "saveOrUpdate")
public String saveOrUpdate(SysUser user, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) {
// 如果新密码为空,则不更换密码
if (StringUtils.isNotBlank(user.getNewPassword())) {
user.setPassword(StringUtils.entryptPassword(user.getNewPassword()));
}
/*if (!beanValidator(model, user)){
return form(user, model);
}*/
if (!"true".equals(checkLoginName(user.getOldLoginId(), user.getLoginId()))){
addMessage(model, "保存用户'" + user.getLoginId() + "'失败,登录名已存在");
return form(user, model);
}
// 角色数据有效性验证,过滤不在授权内的角色
List<SysRole> roleList = Lists.newArrayList();
List<Long> roleIdList = user.getRoleIdList();
for (SysRole r : roleService.findAllRole()) {
if (roleIdList.contains(r.getId())){
roleList.add(r);
}
}
user.setUserRoleList(roleList);
// 保存用户信息
userService.saveOrUpdate(user);
// 清除当前用户缓存
if (user.getLoginId().equals(UserUtils.getUser().getLoginId())){
UserUtils.clearCache();
}
addMessage(redirectAttributes, "保存用户'" + user.getLoginId() + "'成功");
return "redirect:" + adminPath + "/sys/user/list?repage";
}
@RequiresPermissions("sys:user:edit")
@RequestMapping(value = "delete")
public String delete(SysUser user, RedirectAttributes redirectAttributes) {
if (UserUtils.getUser().getId().equals(user.getId())){
addMessage(redirectAttributes, "删除用户失败, 不允许删除当前用户");
}else if (user.isAdmin()){
addMessage(redirectAttributes, "删除用户失败, 不允许删除超级管理员用户");
}else{
userService.deleteUser(user);
addMessage(redirectAttributes, "删除用户成功");
}
return "redirect:" + adminPath + "/sys/user/list?repage";
}
/**
* 验证登录名是否有效
* @param oldLoginName
* @param loginName
* @return
*/
@ResponseBody
@RequiresPermissions("sys:user:edit")
@RequestMapping(value = "checkLoginName")
public String checkLoginName(String oldLoginId, String loginId) {
if (loginId !=null && loginId.equals(oldLoginId)) {
return "true";
} else if (loginId !=null && systemService.getUserByLoginName(loginId) == null) {
return "true";
}
return "false";
}
@ResponseBody
@RequiresPermissions("sys:user:edit")
@RequestMapping(value = "checkOffice")
public String checkOffice(Long officeId, Long companyId) {
boolean isValid = !StringUtil.isEmpty(officeId) && !StringUtil.isEmpty(companyId);
if (isValid) {
isValid = systemService.officeIsValid(officeId, companyId);
}
return String.valueOf(isValid);
}
@RequiresPermissions("sys:user:view")
@RequestMapping(value = {"list"})
public String list(SysUser user, HttpServletRequest request, HttpServletResponse response, Model model) {
Page<SysUser> page = userService.findUser(new Page<SysUser>(request, response), user);
model.addAttribute("page", page);
return "/sys/userList";
}
/**
* 导出用户数据
* @param user
* @param request
* @param response
* @param redirectAttributes
* @return
*/
@RequiresPermissions("sys:user:view")
@RequestMapping(value = "export", method=RequestMethod.POST)
public String exportFile(SysUser user, HttpServletRequest request, HttpServletResponse response,
RedirectAttributes redirectAttributes) {
try {
String fileName = "用户数据-"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
Page<SysUser> page = userService.findUser(new Page<SysUser>(request, response, -1), user);
new ExportExcel("用户数据", SysUser.class).setDataList(page.getList()).write(response, fileName).dispose();
return null;
} catch (Exception e) {
addMessage(redirectAttributes, "导出用户失败!失败信息:"+e.getMessage());
}
return "redirect:" + adminPath + "/sys/user/list?repage";
}
@RequiresPermissions("user")
@ResponseBody
@RequestMapping(value = "treeData")
public List<Map<String, Object>> treeData(@RequestParam(required=false) Long officeId, HttpServletResponse response) {
List<Map<String, Object>> mapList = Lists.newArrayList();
List<SysUser> list = userService.findUserByOfficeId(officeId);
for (int i=0; i<list.size() ; i++){
SysUser e = list.get(i);
Map<String, Object> map = Maps.newHashMap();
map.put("id", "u_"+e.getId());
map.put("pId", officeId);
map.put("name", StringUtils.replace(e.getName(), " ", ""));
mapList.add(map);
}
return mapList;
}
/**
* 用户信息显示及保存
* @param user
* @param model
* @return
*/
@RequiresPermissions("user")
@RequestMapping(value = "info")
public String info(SysUser user, HttpServletResponse response, Model model) {
SysUser currentUser = UserUtils.getUser();
if (StringUtils.isNotBlank(user.getName())){
currentUser.setEmail(user.getEmail());
currentUser.setPhoto(user.getPhoto());
userService.updateUserInfo(currentUser);
model.addAttribute("message", "保存用户信息成功");
}
model.addAttribute("user", currentUser);
return "/sys/userInfo";
}
/**
* 返回用户信息
* @return
*/
@RequiresPermissions("user")
@ResponseBody
@RequestMapping(value = "infoData")
public SysUser infoData() {
return UserUtils.getUser();
}
/**
* 修改个人用户密码
* @param oldPassword
* @param newPassword
* @param model
* @return
*/
@RequiresPermissions("user")
@RequestMapping(value = "modifyPwd")
public String modifyPwd(String oldPassword, String newPassword, Model model) {
SysUser user = UserUtils.getUser();
if (StringUtils.isNotBlank(oldPassword) && StringUtils.isNotBlank(newPassword)){
if (StringUtils.validatePassword(oldPassword, user.getPassword())){
userService.updatePasswordById(user.getId(), user.getLoginId(), newPassword);
model.addAttribute("message", "修改密码成功");
}else{
model.addAttribute("message", "修改密码失败,旧密码错误");
}
}
model.addAttribute("user", user);
return "/sys/userModifyPwd";
}
}