|
|
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 {
|
|
|
}
|
|
|
} |