📄 groupmenubean.java
字号:
package com.sxit.wap.groupmenu;
import java.sql.*;
import java.util.*;
import com.sxit.wap.common.*;
import com.sxit.wap.exception.*;
//*
import com.sxit.wap.menuimg.*;
public class GroupMenuBean
extends GroupMenuDao {
//获得整棵树
public static Collection getTree(int MENU_TRADE) throws SysException {
Collection value = new ArrayList();
String sql = "SELECT M.*, I.IMG_URL FROM WAP_MENU_IMG I, ( " +
" SELECT LEVEL, MENU_ID, MENU_PARENT, MENU_CHANNEL, MENU_NAME, IMG_ID " +
" FROM WAP_GROUP_MENU WHERE MENU_TRADE=" + MENU_TRADE +
" START WITH MENU_PARENT ='0' " +
" CONNECT BY MENU_PARENT = PRIOR MENU_ID " +
" ) M WHERE I.ID = M.IMG_ID";
Collection coll = GroupMenuBean.queryBySql(sql);
Iterator it = coll.iterator();
int index = 0;
while (it.hasNext()) {
Hashtable element = (Hashtable) it.next();
String level = (String) element.get("level");
String menuId = (String) element.get("menuId");
String menuParent = (String) element.get("menuParent");
String menuChannel = (String) element.get("menuChannel");
String menuName = (String) element.get("menuName");
int channelId = Integer.parseInt(menuChannel);
String imgUrl = (String) element.get("imgUrl");
GroupTreeModel treeModel = new GroupTreeModel();
treeModel.setIndex(index++);
treeModel.setId(Integer.parseInt(menuId));
treeModel.setPid(Integer.parseInt(menuParent));
treeModel.setName(menuName);
treeModel.setLevel(Integer.parseInt(level));
treeModel.setHasLeaf(channelId == 0 ? 1 : 0);
treeModel.setIsOpen(1);
treeModel.setIsAdmin(1);
treeModel.setChannelId(Integer.parseInt(menuChannel));
treeModel.setImgUrl(imgUrl);
value.add(treeModel);
}
return value;
}
//判断该节点是否存在子节点
public static boolean hasSubMenu(int menuId) throws SysException {
String sql = "SELECT COUNT(*) FROM WAP_GROUP_MENU WHERE MENU_PARENT = " +
menuId;
return getRowCountBySql(sql) != 0;
}
//查询该用户可以看到本集团的和其他的*
public static Collection queryGroupInfoByMdn(String userMdn) throws
Exception {
Connection dbConnection = null;
Statement stmt = null;
ResultSet rs = null;
ArrayList list = new ArrayList();
String sql = "SELECT distinct(g.id) group_id,g.group_name group_name FROM WAP_GROUP_USER u, WAP_GROUP g,WAP_GROUP_CHANNEL c WHERE u.USER_MDN ='" +
userMdn + "' and u.group_id=g.id and c.channel_trade=g.id";
try {
dbConnection = Database.getConnection();
stmt = dbConnection.createStatement();
rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
Hashtable element = new Hashtable();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
String columnName = rsmd.getColumnName(i);
String fieldName = Function.format(columnName);
String fieldType = ColumnType.getFieldType(Database.dbType, rsmd, i);
if (fieldType == null)
continue;
if ("Timestamp".equals(fieldType)) {
element.put(fieldName, rs.getTimestamp(columnName));
}
else if ("String".equals(fieldType)) {
String value = Function.readDBEncode(rs.getString(columnName));
if (value == null)
value = "";
element.put(fieldName, value);
}
else if ("int".equals(fieldType)) {
element.put(fieldName, String.valueOf(rs.getInt(columnName)));
}
else if ("long".equals(fieldType)) {
element.put(fieldName, String.valueOf(rs.getLong(columnName)));
}
else if ("float".equals(fieldType)) {
element.put(fieldName, String.valueOf(rs.getFloat(columnName)));
}
}
list.add(element);
}
}
catch (SQLException e) {
Debug.println(sql + "\n" +
"SQLException while execute queryBySql mothod :\n" + e);
throw new SysException("SQLException while execute queryBySql mothod :\n" +
e);
}
finally {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (dbConnection != null && !dbConnection.isClosed()) {
dbConnection.close();
dbConnection = null;
}
}
catch (Exception e) {}
}
sql = "SELECT distinct(g.id) group_id,g.group_name group_name FROM WAP_GROUP g,WAP_GROUP_CHANNEL c WHERE c.channel_trade=g.id and c.channel_public=1 and g.id not in (SELECT distinct(g.id) FROM WAP_GROUP_USER u, WAP_GROUP g,WAP_GROUP_CHANNEL c WHERE u.USER_MDN ='" +
userMdn + "' and u.group_id=g.id and c.channel_trade=g.id )";
try {
dbConnection = Database.getConnection();
stmt = dbConnection.createStatement();
rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd2 = rs.getMetaData();
while (rs.next()) {
Hashtable element = new Hashtable();
for (int i = 1; i <= rsmd2.getColumnCount(); i++) {
String columnName = rsmd2.getColumnName(i);
String fieldName = Function.format(columnName);
String fieldType = ColumnType.getFieldType(Database.dbType, rsmd2, i);
if (fieldType == null)
continue;
if ("Timestamp".equals(fieldType)) {
element.put(fieldName, rs.getTimestamp(columnName));
}
else if ("String".equals(fieldType)) {
String value = Function.readDBEncode(rs.getString(columnName));
if (value == null)
value = "";
element.put(fieldName, value);
}
else if ("int".equals(fieldType)) {
element.put(fieldName, String.valueOf(rs.getInt(columnName)));
}
else if ("long".equals(fieldType)) {
element.put(fieldName, String.valueOf(rs.getLong(columnName)));
}
else if ("float".equals(fieldType)) {
element.put(fieldName, String.valueOf(rs.getFloat(columnName)));
}
}
list.add(element);
}
return list;
}
catch (SQLException e) {
Debug.println(sql + "\n" +
"SQLException while execute queryBySql mothod :\n" + e);
throw new SysException("SQLException while execute queryBySql mothod :\n" +
e);
}
finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (dbConnection != null && !dbConnection.isClosed()) {
dbConnection.close();
dbConnection = null;
}
}
catch (Exception e) {}
}
}
//判断该用户是否属于该集团*
public static boolean isThisGroup(int groupId, String userMdn) throws
SysException {
String sql = "SELECT COUNT(*) FROM wap_group_user WHERE user_mdn = '" +
userMdn + "' and group_id=" + groupId;
return getRowCountBySql(sql) != 0;
}
//找出非集团用户的菜单(一级目录)*
public static Collection getPublicChannelInfo(int groupId,
String userMdn) throws
Exception {
Collection firstColl = new ArrayList();
Collection LastColl = new ArrayList();
String sql = "";
//先找出公共频道的菜单ID
sql = "select m.menu_id from wap_group_channel c ,wap_group_menu m where channel_trade=" +
groupId + " and channel_public=1 and c.id=m.menu_channel";
firstColl = queryBySql(sql);
//频道数一定>=目录数,如果是同一个根目录的排除
int channelPublicNum = firstColl.size();
int[] menuIdNum = new int[channelPublicNum];
boolean flag = true;
//计数器
int adder = 0;
for (int i = 0; i < channelPublicNum; i++) {
menuIdNum[i] = 0;
}
Iterator it = firstColl.iterator();
while (it.hasNext()) {
Hashtable hs = (Hashtable) it.next();
String StrmenuId = (String) hs.get("menuId");
int menuId = Integer.parseInt(StrmenuId);
GroupMenuModel groupMenuModel = findByPK(menuId);
//根据菜单ID找出一级目录
while (groupMenuModel.getMenuParent() != 0) {
groupMenuModel = findByPK(groupMenuModel.getMenuParent());
}
//检查此跟目录是否已经出现过
for (int i = 0; i < channelPublicNum; i++) {
if (menuIdNum[i] == groupMenuModel.getMenuId()) {
flag = false;
}
}
if (flag) { //1
MenuImgModel menuImgModel = MenuImgBean.findByPK(groupMenuModel.
getImgId());
String imgUrl = menuImgModel.getImgUrl();
//找到菜单一级目录的相关信息
Hashtable newhs = new Hashtable();
newhs.put("menuId", String.valueOf(groupMenuModel.getMenuId()));
newhs.put("imgUrl", imgUrl);
newhs.put("menuName", groupMenuModel.getMenuName());
LastColl.add(newhs);
} //end of 1
menuIdNum[adder] = groupMenuModel.getMenuId();
adder++;
flag = true;
}
return LastColl;
}
//找出此集团用户的菜单(一级目录)*
public static Collection getMenuByGroupId(int groupId, String userMdn) throws
Exception {
String sql = "";
sql = "SELECT g.menu_id,i.img_url,g.menu_name FROM WAP_GROUP_MENU g,wap_menu_img i WHERE MENU_TRADE =" +
groupId + " and g.img_id=i.id and MENU_PARENT=0";
return queryBySql(sql);
}
//找出此菜单的子菜单和频道*
public static Collection getChAndMeByGroupId(int menuId) throws
SysException {
String sql = "";
sql = "select m.*,g.img_url from wap_group_menu m,wap_menu_img g where m.menu_parent="+menuId+" and m.img_id=g.id";
return queryBySql(sql);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -