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

285 lines
11 KiB

1 year ago
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(100);
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,decode(b.web_workobject,null,'0','1') 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 = Common.IsoConvertGb(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");
log.debug("type=========="+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 defaultMethod(HttpServletRequest request, HttpServletResponse response) throws Exception {
}
}