You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zhky/src/main/java/com/zky/manager/MenuManageServlet.java

339 lines
13 KiB

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.zky.manager;
import com.zky.pub.Common;
import com.zky.pub.DbConn;
import com.zky.pub.DispatchServlet;
import com.zky.pub.HashFmlBuf;
import com.zky.util.OptionsBean;
import com.zky.util.PageQuery;
import com.zky.util.jdbc.HashFmlBufResultSetHandler;
import com.zky.util.jdbc.JDBCUtils;
import com.zky.util.jdbc.SingleStringRSHandler;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
public class MenuManageServlet extends DispatchServlet
{
private static final Logger log = Logger.getLogger(MenuManageServlet.class);
public void queryMenu(HttpServletRequest request, HttpServletResponse response) throws Exception {
StringBuffer sql = new StringBuffer("select distinct frameworkid,menuitem,menuitemname from tab_menuitem where 1=1");
String menuitemname = request.getParameter("menuitemnameQ");
String companyid = request.getParameter("companyidQ");
String areaid = request.getParameter("areaidQ");
String menuitem = request.getParameter("menuitemQ");
if ((menuitem != null) && (!(menuitem.equals("")))) {
sql.append(" and menuitem=").append(menuitemname).append("");
} else {
if ((menuitemname != null) && (!(menuitemname.equals("")))) {
sql.append(" and menuitemname like '%").append(menuitemname).append("%'");
}
if ((companyid != null) && (!(companyid.equals(""))))
sql.append(" and frameworkid = '").append(companyid).append("'");
// if ((areaid != null) && (!(areaid.equals(""))))
// sql.append(" and EPARCHYCODE ='").append(areaid).append("'");
}
Connection conn = null;
try {
conn = DbConn.getConn();
//HashFmlBuf buf = (HashFmlBuf)JDBCUtils.query(conn, sql.toString(),new HashFmlBufResultSetHandler());
PageQuery pageQuery = new PageQuery(conn,sql.toString(),new HashFmlBufResultSetHandler(),request);
HashFmlBuf buf=(HashFmlBuf)pageQuery.query(20);
request.setAttribute("menu_buf", buf);
request.getRequestDispatcher("/manage/MenuManage.jsp").forward(request, response);
} catch (SQLException e) {
throw e;
} finally {
JDBCUtils.close(conn);
}
}
public void queryMenu1(HttpServletRequest request, HttpServletResponse response) throws Exception {
StringBuffer sql = new StringBuffer("select distinct frameworkid,menuitem,menuitemname from tab_menuitem where 1=1");
String menuitemname = request.getParameter("menuitemnameQ");
String companyid = request.getParameter("companyidQ");
String areaid = request.getParameter("areaidQ");
String menuitem = request.getParameter("menuitemQ");
Connection conn = null;
try {
conn = DbConn.getConn();
//HashFmlBuf buf = (HashFmlBuf)JDBCUtils.query(conn, sql.toString(),new HashFmlBufResultSetHandler());
PageQuery pageQuery = new PageQuery(conn,sql.toString(),new HashFmlBufResultSetHandler(),request);
HashFmlBuf buf=(HashFmlBuf)pageQuery.query(20);
request.setAttribute("menu_buf", buf);
request.getRequestDispatcher("/manage/MenuManage.jsp").forward(request, response);
} catch (SQLException e) {
throw e;
} finally {
JDBCUtils.close(conn);
}
}
public void deleteMenu(HttpServletRequest request, HttpServletResponse response) throws Exception {
String companyid = request.getParameter("companyid");
String menuitem = request.getParameter("menuitem");
String sql = "select count(*) from tab_jobmenu where frameworkid=? and menuitem=?";
Connection conn = null;
try {
conn = DbConn.getConn();
String count = (String)JDBCUtils.query(conn, sql, companyid, menuitem, new SingleStringRSHandler());
if ((count != null) && (count.compareTo("0") > 0))
throw new Exception(Common.toGb( "此菜单已在角色岗位中使用,无法删除!"));
JDBCUtils.update(conn, "delete from tab_menuitem where menuitem=? and frameworkid=?",
menuitem, companyid);
//oracle数据库手动提交mysql中 自动提交autoCommit();
conn.commit();
queryMenu(request, response);
} catch (SQLException e) {
throw e;
} finally {
JDBCUtils.close(conn);
}
}
public void newMenuTree(HttpServletRequest request, HttpServletResponse response) throws Exception {
String treeid = request.getParameter("menuitem");
String treename = request.getParameter("menuitemname");
String companyid = request.getParameter("companyid");
String areaid = request.getParameter("areaid");
MenuTree tree = new MenuTree(companyid, areaid, treeid, treename);
request.getSession().setAttribute("menu_tree", tree);
request.getRequestDispatcher("/manage/MenuEdit.jsp").forward(request, response);
}
public void getMenuTree(HttpServletRequest request, HttpServletResponse response) throws Exception {
String companyid = request.getParameter("companyid");
String menuitem = request.getParameter("menuitem");
String sql = "select a.frameworkid,a.menuitem,a.menuitemname,a.menuid,a.menuname,a.menulevel,a.uplevel ,(CASE WHEN b.web_workobject IS NULL THEN '0' ELSE '1' END) as type from tab_menuitem a,tab_funcmodu b where a.menuid=b.funcmoducode and a.frameworkid = ? and a.menuitem =? order by type , a.menuid";
Connection conn = null;
try {
conn = DbConn.getConn();
HashFmlBuf buf = (HashFmlBuf)JDBCUtils.query(conn, sql.toString(),
companyid, menuitem, new HashFmlBufResultSetHandler());
MenuTree tree = new MenuTree().init(buf);
request.getSession().setAttribute("menu_tree", tree);
} catch (SQLException e) {
throw e;
} finally {
JDBCUtils.close(conn);
}
request.getRequestDispatcher("/manage/MenuEdit.jsp").forward(request, response);
}
public void addBranch(HttpServletRequest request, HttpServletResponse response) throws Exception {
MenuTree tree = (MenuTree)request.getSession().getAttribute("menu_tree");
if (tree == null)
throw new Exception(Common.toGb("提示!"));
String menuid = request.getParameter("menuid");
String menuName = request.getParameter("menuname");
Connection conn = null;
try {
conn = DbConn.getConn();
JDBCUtils.update(conn, "insert tab_menu(submenuid,submenuname) values(?,?)", menuid, menuName);
//oracle数据库手动提交mysql中 自动提交autoCommit();
conn.commit();
} catch (SQLException e) {
throw e;
} finally {
JDBCUtils.close(conn);
}
}
public void moveNode(HttpServletRequest request, HttpServletResponse response) throws Exception {
MenuTree tree = (MenuTree)request.getSession().getAttribute("menu_tree");
String errorinfo = "";
if (tree != null) {
String upMenuId = request.getParameter("upmenuid");
String menuid = request.getParameter("menuid");
String toMenuId = request.getParameter("tomenuid");
if (!(upMenuId.equals(toMenuId))) {
MenuBean menu = null;
if (upMenuId.equals(tree.getTreeId()))
menu = tree.removeMenu(menuid);
else
menu = tree.getMenuById(upMenuId).removeChild(menuid);
if (toMenuId.equals(tree.getTreeId()))
tree.addMenu(menu);
else
tree.getMenuById(toMenuId).addChild(menu);
}
}
else {
errorinfo = "提示!"; }
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter pw = response.getWriter();
pw.write(errorinfo);
pw.close();
}
public void addNode(HttpServletRequest request, HttpServletResponse response) throws Exception {
MenuTree tree = (MenuTree)request.getSession().getAttribute("menu_tree");
String errorinfo = "";
if (tree != null) {
String upMenuId = request.getParameter("upmenuid");
String menuid = request.getParameter("menuid");
String menuName = request.getParameter("menuname");
String type = request.getParameter("type");
if (upMenuId.equals(tree.getTreeId()))
tree.addMenu(new MenuBean(menuid, menuName, type));
else
tree.addMenu(upMenuId, new MenuBean(menuid, menuName, type));
}
else {
errorinfo =Common.toGb( "提示!");
}
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter pw = response.getWriter();
pw.write(errorinfo);
pw.close();
}
public void removeNode(HttpServletRequest request, HttpServletResponse response) throws Exception {
MenuTree tree = (MenuTree)request.getSession().getAttribute("menu_tree");
String errorinfo = "";
if (tree != null) {
String menuid = request.getParameter("menuid");
String upMenuid = request.getParameter("upmenuid");
if (upMenuid.equals(tree.getTreeId()))
tree.removeMenu(menuid);
else
tree.getMenuById(upMenuid).removeChild(menuid);
}
else {
errorinfo =Common.toGb( "提示!");
}
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter pw = response.getWriter();
pw.write(errorinfo);
pw.close();
}
public void getOperList(HttpServletRequest request, HttpServletResponse response) throws Exception {
MenuTree tree = (MenuTree)request.getSession().getAttribute("menu_tree");
Element root = new Element("root");
if (tree != null) {
String menuid = request.getParameter("menuid");
String upMenuid = request.getParameter("upmenuid");
String type = request.getParameter("type");
if (upMenuid.equals("")) {
root.addContent(new OptionsBean("branch").toXML());
} else {
OptionsBean branchOptions = MenuTreeUtils.getBranchOptions(tree, menuid, upMenuid, type);
root.addContent(branchOptions.toXML());
}
if (type.equals("0")) {
OptionsBean subMenuOptions = MenuTreeUtils.getSubMenuOptions(tree);
root.addContent(subMenuOptions.toXML());
Login login = (Login)request.getSession().getAttribute("login");
String deptlvlid = login.getDepartlvlid();
String menuitem = "";
//控制级别权限
if (!(deptlvlid.equals("0")))
menuitem = login.menuitem;
OptionsBean funcOptions = MenuTreeUtils.getFuncOptions(tree, menuitem);
root.addContent(funcOptions.toXML());
} else {
root.addContent(new OptionsBean("submenu").toXML());
root.addContent(new OptionsBean("func").toXML());
}
}
Document responseDoc = new Document(root);
response.setContentType("text/xml;charset=UTF-8");
new XMLOutputter().output(responseDoc, response.getWriter());
}
public void saveTree(HttpServletRequest request, HttpServletResponse response) throws Exception {
ManagerServlet ms=new ManagerServlet();
String menuitem=request.getParameter("menuitem");
String companyid=request.getParameter("companyid");
HashFmlBuf bufcheck=ms.readTabMenuItem(menuitem,companyid);
if(bufcheck!=null && bufcheck.getRowCount()>0){
String errorSmx="菜单编号为【"+menuitem+"】的记录已经存在!";
request.setAttribute("errorMenuItem",Common.toGb(errorSmx));
request.getRequestDispatcher("/one/smbx/message.jsp?op=menuitem").forward(request, response);
return;
}
MenuTree tree = (MenuTree)request.getSession().getAttribute("menu_tree");
if (tree == null)
throw new Exception("提示!");
String menuitemname = request.getParameter("menuitemname");
tree.setTreeName(menuitemname);
Connection conn = null;
try {
conn = DbConn.getConn();
conn.setAutoCommit(false);
JDBCUtils.update(conn, "delete from tab_menuitem where menuitem=? and frameworkid=?",
tree.getTreeId(), tree.getCompanyId());
MenuTreeUtils.saveTree(conn, tree);
//oracle数据库手动提交mysql中 自动提交autoCommit();
conn.commit();
queryMenu(request, response);
} catch (SQLException e) {
if (conn != null)
conn.rollback();
throw e;
} finally {
JDBCUtils.close(conn);
}
}
public void editTree(HttpServletRequest request, HttpServletResponse response) throws Exception {
ManagerServlet ms=new ManagerServlet();
String menuitem=request.getParameter("menuitem");
String companyid=request.getParameter("companyid");
MenuTree tree = (MenuTree)request.getSession().getAttribute("menu_tree");
if (tree == null)
throw new Exception("提示!");
String menuitemname = request.getParameter("menuitemname");
tree.setTreeName(menuitemname);
Connection conn = null;
try {
conn = DbConn.getConn();
conn.setAutoCommit(false);
JDBCUtils.update(conn, "delete from tab_menuitem where menuitem=? and frameworkid=?",
tree.getTreeId(), tree.getCompanyId());
MenuTreeUtils.saveTree(conn, tree);
//oracle数据库手动提交mysql中 自动提交autoCommit();
conn.commit();
queryMenu1(request, response);
} catch (SQLException e) {
if (conn != null)
conn.rollback();
throw e;
} finally {
JDBCUtils.close(conn);
}
}
public void defaultMethod(HttpServletRequest request, HttpServletResponse response) throws Exception {
}
}