优化部门显示

This commit is contained in:
zhuangqian 2016-11-19 10:47:47 +08:00
parent 06eab586b9
commit 57cde9c15d
10 changed files with 151 additions and 113 deletions

File diff suppressed because one or more lines are too long

View File

@ -15,6 +15,7 @@
*/
package com.smallchill.common.config;
import com.smallchill.common.intercept.DefaultSelectFactory;
import com.smallchill.common.plugins.GlobalPlugin;
import com.smallchill.core.constant.Cst;
import com.smallchill.core.interfaces.IConfig;
@ -48,10 +49,13 @@ public class WebConfig implements IConfig {
//设定文件下载头文件夹
me.setDownloadPath(prop.get("config.downloadPath", "/download"));
//设定grid工厂类
me.setDefaultGridFactory(new JqGridFactory());
//设定select工厂类
me.setDefaultSelectFactory(new DefaultSelectFactory());
//设定shiro工厂类
me.setDefaultShiroFactory(new DefaultShiroFactroy());

View File

@ -10,7 +10,7 @@ public class SelectDeptIntercept extends QueryInterceptor {
public void queryBefore(AopContext ac) {
if (ShiroKit.lacksRole(ConstShiro.ADMINISTRATOR)) {
String depts = ShiroKit.getUser().getDeptId() + "," + ShiroKit.getUser().getSubDepts();
String depts = ShiroKit.getUser().getSuperDepts() + "," + ShiroKit.getUser().getDeptId() + "," + ShiroKit.getUser().getSubDepts();
String condition = "where id in (" + StrKit.removeSuffix(depts, ",") + ")";
ac.setCondition(condition);
}

View File

@ -42,6 +42,7 @@ public class ShiroUser implements Serializable {
private String name;// 姓名
private List<String> roleList;// 角色集
private String roles;// 角色集
private Object superDepts;// 上级部门集合
private Object subDepts;// 子部门集合
private Object subRoles;// 子角色集合
private Object subUsers;// 子账号集合
@ -55,18 +56,36 @@ public class ShiroUser implements Serializable {
this.roleList = roleList;
this.roles = CollectionKit.join(roleList.toArray(), ",");
// 递归查找部门id集合
String deptSql;
String subDepts = null;
// 递归查找上级部门id集合
String superDeptSql;
String superDepts = null;
if (Func.isOracle()) {
deptSql = "select wm_concat(ID) subDepts from (select ID,PID,SIMPLENAME from TFW_DEPT start with ID in (#{join(deptIds)}) connect by prior ID=PID order by ID) a where a.ID not in (#{join(deptIds)})";
subDepts = Db.queryStr(deptSql, Paras.create().set("deptIds", deptId.toString().split(",")));
superDeptSql = "select wm_concat(ID) subDepts from (select ID,PID,SIMPLENAME from TFW_DEPT start with ID in (#{join(deptIds)}) connect by prior PID=ID order by ID) a where a.ID not in (#{join(deptIds)})";
superDepts = Db.queryStr(superDeptSql, Paras.create().set("deptIds", deptId.toString().split(",")));
} else {
String[] arr = deptId.toString().split(",");
StringBuilder sb = new StringBuilder();
for (String deptid : arr) {
deptSql = "select queryChildren(#{deptid},'tfw_dept') as subdepts";
String str = Db.queryStr(deptSql, Paras.create().set("deptid", deptid));
superDeptSql = "select queryParent(#{deptid},'tfw_dept') as superdepts";
String str = Db.queryStr(superDeptSql, Paras.create().set("deptid", deptid));
sb.append(str).append(",");
}
superDepts = StrKit.removeSuffix(sb.toString(), ",");
}
this.superDepts = superDepts;
// 递归查找子部门id集合
String subDeptSql;
String subDepts = null;
if (Func.isOracle()) {
subDeptSql = "select wm_concat(ID) subDepts from (select ID,PID,SIMPLENAME from TFW_DEPT start with ID in (#{join(deptIds)}) connect by prior ID=PID order by ID) a where a.ID not in (#{join(deptIds)})";
subDepts = Db.queryStr(subDeptSql, Paras.create().set("deptIds", deptId.toString().split(",")));
} else {
String[] arr = deptId.toString().split(",");
StringBuilder sb = new StringBuilder();
for (String deptid : arr) {
subDeptSql = "select queryChildren(#{deptid},'tfw_dept') as subdepts";
String str = Db.queryStr(subDeptSql, Paras.create().set("deptid", deptid));
sb.append(str).append(",");
}
subDepts = StrKit.removeSuffix(sb.toString(), ",");
@ -167,6 +186,14 @@ public class ShiroUser implements Serializable {
this.deptName = deptName;
}
public Object getSuperDepts() {
return superDepts;
}
public void setSuperDepts(Object superDepts) {
this.superDepts = superDepts;
}
public Object getSubDepts() {
return subDepts;
}

View File

@ -32,7 +32,6 @@ import org.springframework.web.servlet.ModelAndView;
import com.smallchill.core.constant.Const;
import com.smallchill.core.constant.ConstShiro;
import com.smallchill.core.constant.Cst;
import com.smallchill.core.exception.NoPermissionException;
import com.smallchill.core.exception.NoUserException;
import com.smallchill.core.interfaces.IQuery;
@ -314,7 +313,7 @@ public class BladeController {
* @return
*/
protected Object paginate(String source){
return basepage(null, source, Cst.me().getDefaultPageFactory());
return basepage(null, source, null);
}
/**
@ -332,7 +331,7 @@ public class BladeController {
* @return
*/
protected Object paginate(String slaveName, String source){
return basepage(slaveName, source, Cst.me().getDefaultPageFactory());
return basepage(slaveName, source, null);
}
/**

View File

@ -120,11 +120,6 @@ public class Cst {
*/
private ICURD defaultCURDFactory = new CURDInterceptor();
/**
* 默认分页工厂类
*/
private IQuery defaultPageFactory = new QueryInterceptor();
/**
* 默认查询工厂类
*/
@ -281,14 +276,6 @@ public class Cst {
this.defaultCURDFactory = defaultCURDFactory;
}
public IQuery getDefaultPageFactory() {
return defaultPageFactory;
}
public void setDefaultPageFactory(IQuery defaultPageFactory) {
this.defaultPageFactory = defaultPageFactory;
}
public IQuery getDefaultQueryFactory() {
return defaultQueryFactory;
}

View File

@ -214,28 +214,6 @@ public class Db {
return getDbManager().queryListStr(sqlTemplate, paras);
}
/** 查询aop返回单条数据
* @param sqlTemplate
* @param paras
* @param ac
* @return
*/
@SuppressWarnings("rawtypes")
public static Map selectOne(String sqlTemplate, Map<String, Object> param, AopContext ac) {
return getDbManager().selectOne(sqlTemplate, param, ac);
}
/**查询aop返回多条数据
* @param sqlTemplate
* @param paras
* @param ac
* @return
*/
@SuppressWarnings("rawtypes")
public static List<Map> selectList(String sqlTemplate, Map<String, Object> param, AopContext ac) {
return getDbManager().selectList(sqlTemplate, param, ac);
}
/** 查询aop返回单条数据
* @param sqlTemplate
* @param paras

View File

@ -23,7 +23,6 @@ import org.beetl.sql.core.SQLManager;
import org.beetl.sql.core.SQLReady;
import com.smallchill.core.aop.AopContext;
import com.smallchill.core.constant.Cst;
import com.smallchill.core.interfaces.ILoader;
import com.smallchill.core.interfaces.IQuery;
import com.smallchill.core.plugins.connection.ConnectionPlugin;
@ -283,26 +282,6 @@ public class DbManager {
return list;
}
/** 查询aop返回单条数据
* @param sqlTemplate
* @param paras
* @param ac
* @return
*/
public Map selectOne(String sqlTemplate, Map<String, Object> param, AopContext ac) {
return selectOne(sqlTemplate, param, ac, Cst.me().getDefaultQueryFactory());
}
/**查询aop返回多条数据
* @param sqlTemplate
* @param paras
* @param ac
* @return
*/
public List<Map> selectList(String sqlTemplate, Map<String, Object> param, AopContext ac) {
return selectList(sqlTemplate, param, ac, Cst.me().getDefaultQueryFactory());
}
/** 查询aop返回单条数据
* @param sqlTemplate
* @param paras

View File

@ -167,7 +167,7 @@ public class CacheController extends BaseController {
List<Map<String, Object>> dict = CacheKit.get(DICT_CACHE, DICT_COMBO + code,
new ILoader() {
public Object load() {
return Db.selectList("select num as \"id\",name as \"text\" from TFW_DICT where code=#{code} and num>0", Paras.create().set("code", code), new AopContext());
return Db.selectList("select num as \"id\",name as \"text\" from TFW_DICT where code=#{code} and num>0", Paras.create().set("code", code));
}
});
@ -251,7 +251,7 @@ public class CacheController extends BaseController {
List<Map<String, Object>> diy = CacheKit.get(DIY_CACHE, DIY_SELECT + source,
new ILoader() {
public Object load() {
return Db.selectList(Md.getSql(source), map, new AopContext());
return Db.selectList(Md.getSql(source), map);
}
});
StringBuilder sb = new StringBuilder();
@ -310,7 +310,7 @@ public class CacheController extends BaseController {
List<Map<String, Object>> dict = CacheKit.get(DICT_CACHE, DICT_CODE + id,
new ILoader() {
public Object load() {
return Db.selectList("select CODE from TFW_DICT where id=#{id}",Paras.create().set("id", id), new AopContext());
return Db.selectList("select CODE from TFW_DICT where id=#{id}",Paras.create().set("id", id));
}
});
return json(dict);

View File

@ -63,17 +63,18 @@
}
function zTreeBeforeClick(treeId, treeNode, clickFlag) {
var id=treeNode.id;
if(id==""){
exwhere="";
searchGrid();
return;
}
else{
exwhere="{\"pId_equal\":\""+id+"\",\"or_id_equal\":\""+id+"\"}";
searchGrid();
}
@ if(shiro.hasRole("administrator")) {
var id=treeNode.id;
if(id==""){
exwhere="";
searchGrid();
return;
}
else{
exwhere="{\"pId_equal\":\""+id+"\",\"or_id_equal\":\""+id+"\"}";
searchGrid();
}
@ }
};
</script>