Package com.loc.service

Source Code of com.loc.service.MenuService

package com.loc.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
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 com.loc.dao.MenusDao;
import com.loc.pojo.Menu;

@Controller
@RequestMapping(value = "/menu")
public class MenuService extends BaseService {

  @Autowired
  private MenusDao menuDao;

  @SuppressWarnings("unchecked")
  @RequestMapping(value = "/getMenuTree.json", method = RequestMethod.POST)
  public @ResponseBody Map getMenu(HttpServletRequest request, HttpSession session) {
    UserDetails userDetails = null;
    Map<String, Object> map = new HashMap<String, Object>();
    List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
    if (SecurityContextHolder.getContext().getAuthentication().isAuthenticated()) {
      userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    } else {
      map.put("failture", true);
      map.put("msg", "没有权限!");
      return map;
    }
    try {
      list = menuDao.findMenuByUser(userDetails);
      List returnList = tree(list, 0, 0);
      map.put("success", true);
      map.put("msg", returnList);
    } catch (Exception e) {
      e.printStackTrace();
      map.put("failture", true);
      map.put("msg", "系统出错!请尝试刷新页面!");
    }
    return map;
  }

  @SuppressWarnings("unchecked")
  @RequestMapping(value = "/getAllMenuTree.json", method = RequestMethod.POST)
  public @ResponseBody Map getAllMenu(HttpServletRequest request, HttpSession session) {
    UserDetails userDetails = null;
    Map<String, Object> map = new HashMap<String, Object>();
    List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
    try {
      if (SecurityContextHolder.getContext().getAuthentication().isAuthenticated()) {
        userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
      } else {
        map.put("failture", true);
        map.put("msg", "没有权限!");
        return map;
      }
      list = menuDao.findAllMenu(userDetails);
    } catch (Exception e) {
      e.printStackTrace();
      map.put("failture", true);
      map.put("msg", "系统出错!请尝试刷新页面!");
    }
    map.put("seccess", true);
    map.put("msg", tree(list, 0, 1));
    return map;
  }

  @SuppressWarnings("unchecked")
  @RequestMapping(value = "/getMenuByMenuId.json", method = RequestMethod.POST)
  public @ResponseBody Map getMenuByMenuId(HttpServletRequest request, HttpSession session) {
    String menu_id = request.getParameter("menu_id");
    String rp = request.getParameter("rp");
    String page = request.getParameter("page");
    int startRow = 0;
    int rowsCount = 20;
    if (menu_id == null || "".equals(menu_id)) {
      menu_id = "0";
    }
    if (rp != null && !"".equals(rp)) {
      rowsCount = Integer.valueOf(rp);
    }
    if (page != null && !"".equals(page)) {
      startRow = (Integer.valueOf(page) - 1) * rowsCount;
    }
    Map<String, Object> map = new HashMap<String, Object>();
    UserDetails userDetails = null;
    List<Map<String, Object>> list = null;
    try {
      if (SecurityContextHolder.getContext().getAuthentication().isAuthenticated()) {
        userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
      } else {
        map.put("failture", true);
        map.put("msg", "没有权限!");
        return map;
      }
      list = menuDao.findMenuByMenuId(userDetails);
      List<Map<String, Object>> returnList = new ArrayList<Map<String, Object>>();
      getMenuByMenuId(list, Integer.valueOf(menu_id), returnList, 1);
      int total = returnList.size();
      map.put("total", total);
      map.put("page", page);
      map.put("rows", returnList.subList(startRow,(startRow + rowsCount) < total ? startRow + rowsCount : total));
    } catch (Exception e) {
      e.printStackTrace();
      map.put("failture", true);
      map.put("msg", "系统出错!请尝试刷新页面!");
    }
    return map;
  }
  @SuppressWarnings("unchecked")
  @RequestMapping(value = "/findMenus.json", method = RequestMethod.POST)
  public @ResponseBody Map findMenus(HttpServletRequest request, HttpSession session) {
    String rp = request.getParameter("rp");
    String page = request.getParameter("page");
    int startRow = 0;
    int rowsCount = 15;
    if (rp != null && !"".equals(rp)) {
      rowsCount = Integer.valueOf(rp);
    }
    if (page != null && !"".equals(page)) {
      startRow = (Integer.valueOf(page) - 1) * rowsCount;
    }
    Map<String, Object> map = new HashMap<String, Object>();
    UserDetails userDetails = null;
    List<Map<String, Object>> list = null;
    try {
      if (SecurityContextHolder.getContext().getAuthentication().isAuthenticated()) {
        userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
      } else {
        map.put("failture", true);
        map.put("msg", "没有权限!");
        return map;
      }
      String menu_name = request.getParameter("menu_name");
      String menu_type = request.getParameter("menu_type");
      String isleaf = request.getParameter("isleaf");
      String isrel = request.getParameter("menu_rel");
      String isvisiable = request.getParameter("isvisiable");
      String menu_parent = request.getParameter("menu_parent");
      Map<String,Object> m = new HashMap<String,Object>();
      if(menu_name!=null&&!"".equals(menu_name)){
        m.put("menu_name", menu_name);
      }
      if(menu_type!=null&&!"".equals(menu_type)){
        m.put("menu_type", menu_type);
      }
      if(isleaf!=null&&!"".equals(isleaf)){
        m.put("isleaf", isleaf);
      }
      if(isrel!=null&&!"".equals(isrel)){
        m.put("menu_rel", isrel);
      }
      if(isvisiable!=null&&!"".equals(isvisiable)){
        m.put("isvisiable", isvisiable);
      }
      if(menu_parent!=null&&!"".equals(menu_parent)){
        m.put("menu_parent", menu_parent);
      }
      list = menuDao.findMenus(m,userDetails,startRow,rowsCount);
      int total = list.size();
      for(int i=0;i<total;i++){
        Map mm = list.get(i);
        mm.put("ids", startRow+i+1);
      }
      map.put("total", total);
      map.put("page", page);
      map.put("rows", list);
    } catch (Exception e) {
      e.printStackTrace();
      map.put("failture", true);
      map.put("msg", "系统出错!请尝试刷新页面!");
    }
    return map;
  }
  @SuppressWarnings("unchecked")
  @RequestMapping(value = "/addMenu.json", method = RequestMethod.POST)
  public @ResponseBody Map addMenu(HttpServletRequest request, HttpSession session) {
    String menu_name = request.getParameter("menu_name");
    String menu_url = request.getParameter("menu_url");
    String menu_parent = request.getParameter("menu_parent");
    String menu_icon = request.getParameter("menu_icon");
    String isleaf = request.getParameter("isleaf");
    String isvisiable = request.getParameter("isvisiable");
    String issys = request.getParameter("issys");
    String menu_rel = request.getParameter("isrel");
    String menu_type = request.getParameter("menu_type");
    String memo = request.getParameter("memo");
    Menu menu = new Menu();
    boolean flag = false;
    Map<String, Object> map = new HashMap<String, Object>();
    if (menu_name == null || "".equals(menu_name)) {
      flag = true;
      map.put("msg", "菜单名称不能空");
    }
    if (menu_url == null || "".equals(menu_url)) {
      flag = true;
      map.put("msg", "URL不能为空");
    }
    int parent = 0;
    if (menu_parent == null || menu_parent.equals("")) {
      flag = true;
      map.put("msg", "父节点不能为空");
    } else {
      parent = Integer.valueOf(menu_parent);
    }
    if (flag) {
      map.put("failture", true);
    } else {
      menu.setMenu_name(menu_name);
      menu.setMenu_url(menu_url);
      menu.setMenu_parent(parent);
      menu.setMenu_icon(menu_icon==null?"":menu_icon);
      menu.setIsleaf(Integer.valueOf(isleaf));
      menu.setIsvisiable(Integer.valueOf(isvisiable));
      menu.setIssys(Integer.valueOf(issys));
      menu.setMenu_rel(Integer.valueOf(menu_rel));
      menu.setMenu_type(Integer.valueOf(menu_type));
      menu.setMemo(memo);
      try {
        menuDao.addMenu(menu);
        map.put("success", true);
        map.put("msg", "添加成功!");
      } catch (Exception e) {
        e.printStackTrace();
        map.put("failtrue", true);
        map.put("msg", "添加失败!请尝试刷新页面!");
      }
    }
    return map;
  }

  @SuppressWarnings("unchecked")
  @RequestMapping(value = "/selectMenu.json", method = RequestMethod.POST)
  public @ResponseBody Map selectMenu(HttpServletRequest request, HttpSession session) {
    String menu_id = request.getParameter("menu_id");
    Map<String, Object> map = new HashMap<String, Object>();
    if (menu_id == null || "".equals("menu_id")) {
      map.put("failtrue", true);
      map.put("msg", "获取失败!请尝试刷新页面!");
    }
    try {
      map = menuDao.selectMenu(menu_id);
      if (map.get("issys").toString().equals("1")) {
        map = new HashMap<String, Object>();
        map.put("failtrue", true);
        map.put("msg", "系统默认不能修改!");
      }
    } catch (Exception e) {
      e.printStackTrace();
      map.put("failtrue", true);
      map.put("msg", "获取失败!请尝试刷新页面!");
    }
    return map;
  }

  @SuppressWarnings("unchecked")
  @RequestMapping(value = "/updateMenu.json", method = RequestMethod.POST)
  public @ResponseBody Map updateMenu(HttpServletRequest request, HttpSession session) {
    String menu_id = request.getParameter("menu_id");
    String menu_name = request.getParameter("menu_name");
    String menu_url = request.getParameter("menu_url");
    String menu_parent = request.getParameter("menu_parent");
    String menu_icon = request.getParameter("menu_icon");
    String isleaf = request.getParameter("isleaf");
    String isvisiable = request.getParameter("isvisiable");
    String issys = request.getParameter("issys");
    String menu_rel = request.getParameter("isrel");
    String menu_type = request.getParameter("menu_type");
    String memo = request.getParameter("memo");
    Menu menu = new Menu();
    boolean flag = false;
    Map<String, Object> map = new HashMap<String, Object>();
    if (menu_name == null || "".equals(menu_name)) {
      flag = true;
      map.put("msg", "菜单名称不能空");
    }
    if (menu_url == null || "".equals(menu_url)) {
      flag = true;
      map.put("msg", "URL不能为空");
    }
    int parent = 0;
    if (menu_parent == null || menu_parent.equals("")) {
      flag = true;
      map.put("msg", "父节点不能为空");
    } else {
      parent = Integer.valueOf(menu_parent);
    }
    if (flag) {
      map.put("failture", true);
    } else {
      menu.setMenu_id(Integer.valueOf(menu_id));
      menu.setMenu_name(menu_name);
      menu.setMenu_url(menu_url);
      menu.setMenu_parent(parent);
      menu.setMenu_icon(menu_icon);
      menu.setIsleaf(Integer.valueOf(isleaf));
      menu.setIsvisiable(Integer.valueOf(isvisiable));
      menu.setIssys(Integer.valueOf(issys));
      menu.setMenu_rel(Integer.valueOf(menu_rel));
      menu.setMenu_type(Integer.valueOf(menu_type));
      menu.setMemo(memo);
      try {
        menuDao.updateMenu(menu);
        map.put("success", true);
        map.put("msg", "修改成功!");
      } catch (Exception e) {
        e.printStackTrace();
        map.put("failtrue", true);
        map.put("msg", "修改失败!请尝试刷新页面!");
      }
    }
    return map;
  }
  @SuppressWarnings("unchecked")
  @RequestMapping(value = "/deleteMenu.json", method = RequestMethod.POST)
  public @ResponseBody Map deleteMenu(HttpServletRequest request, HttpSession session) {
    Map<String, Object> map = new HashMap<String, Object>();
    try {
      String menu_ids = request.getParameter("menu_ids");
      if(menu_ids==null||menu_ids.equals("")){
        map.put("failtrue", true);
        map.put("msg","删除失败!请尝试刷新页面!");
      }else{
        menu_ids = new StringBuffer(menu_ids.trim()).deleteCharAt(menu_ids.length()-1).toString();
      }
      List<Menu> list = menuDao.getMenuByIds(menu_ids);
      for(Menu menu:list){
        if(menu.getIssys()!=0){
          map.put("failtrue", true);
          map.put("msg","<font color='red'>["+menu.getMenu_name()+"]</font>-----系统默认不能删除!");
          return map;
        }else{
          menuDao.deleteMenu(menu.getMenu_id()+"");
        }
      }
      map.put("success", true);
      map.put("msg","删除成功!");
    } catch (Exception e) {
      e.printStackTrace();
      map.put("failtrue", true);
      map.put("msg","删除失败!请尝试刷新页面!");
    }
    return map;
  }
  private List<Map<String, Object>> tree(List<Map<String, Object>> list,int menu_id, int type) {
    List<Map<String, Object>> tempList = new ArrayList<Map<String, Object>>();
    for (Map<String, Object> map : list) {
      Map<String, Object> m = null;
      if (Integer.valueOf(map.get("menu_parent").toString()) == menu_id) {
        m = new HashMap<String, Object>();
        m.put("name", map.get("menu_name"));
        m.put("menu_type", map.get("menu_type"));
        m.put("menu_id", map.get("menu_id"));
        if (type == 1) {
          m.put("isParent",map.get("menu_type").toString().equals("0")|| map.get("menu_type").toString().equals("2") ? true : false);
          if (map.get("menu_type").toString().equals("0")|| map.get("menu_type").toString().equals("2")) {
            List<Map<String, Object>> l = tree(list, Integer.valueOf(map.get("menu_id").toString()), type);
            if (l != null) {
              m.put("childs", l);
            }
          }
        } else {
          m.put("isParent",map.get("isleaf").toString().equals("0") ? true: false);
          if (map.get("isleaf").toString().equals("0")) {
            List<Map<String, Object>> l = tree(list, Integer.valueOf(map.get("menu_id").toString()), type);
            if (l != null) {
              m.put("childs", l);
            }
          }
        }
        m.put("menu_url", map.get("menu_url"));
        if (map.get("menu_icon") != null) {
          m.put("icon", map.get("menu_icon"));
        }
        tempList.add(m);
      }
    }
    if (tempList.size() == 0) {
      tempList = null;
    }
    return tempList;
  }

  private int getMenuByMenuId(List<Map<String, Object>> doList, int menu_id,List<Map<String, Object>> returnList, int count) throws Exception{
    for (Map<String, Object> map : doList) {
      if (Integer.valueOf(map.get("menu_id").toString()) == menu_id) {
        if (map.get("menu_icon") == null) {
          map.put("menu_icon", "");
        }
        map.put("id", map.get("menu_id"));
        map.put("ids", count);
        returnList.add(map);
        count++;
      }
      if (Integer.valueOf(map.get("menu_parent").toString()) == menu_id) {
        if (map.get("isleaf").toString().equals("0")|| map.get("menu_type").toString().equals("0")) {
          count = getMenuByMenuId(doList, Integer.valueOf(map.get("menu_id").toString()), returnList, count);
        } else {
          if (map.get("menu_icon") == null) {
            map.put("menu_icon", "");
          }
          map.put("id", map.get("menu_id"));
          map.put("ids", count);
          returnList.add(map);
          count++;
        }
      }
    }
    return count;
  }
}
TOP

Related Classes of com.loc.service.MenuService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.