using Castle.ActiveRecord;
using System.Data;
using System.Text;
namespace BizCom
{
[ActiveRecord("X_Modular")]
public class XModular : DicSysBase
{
public XModular()
{
rootName = "系统模块";
titleName = "系统模块根结点";
tableName = "X_Modular";
}
[Property]
public new string Url
{
get { return _url; }
set { _url = value; }
}
[Property]
public new string Tag
{
get { return _tag; }
set { _tag = value; }
}
///
///是否操作
///
[Property]
public new bool isOperate
{
get { return _isOperate; }
set { _isOperate = value; }
}
///
///图标
///
[Property]
public new string Icon
{
get { return _icon; }
set { _icon = value; }
}
public static DataTable GetModular()
{
return DbConn.ExecuteDataset("select * from X_Modular where isdel=0 order by sort asc").Tables[0];
}
public static DataTable GetOrgModular(string oId)
{
string sql = "select * from X_Modular where ID in( select ModularID from ce_erppermission where orgid=" + oId + " and postID=0) and isDel=0 order by sort asc";
return DbConn.ExecuteDataset(sql).Tables[0];
}
public static DataTable GetModularNoOperate()
{
string sql = "select * from X_Modular where isdel=0 and isoperate=0 order by path asc, sort asc";
return DbConn.ExecuteDataset(sql).Tables[0];
}
//public static void TransModular(object id,object pId,int sort)
//{
// StringBuilder sql=new StringBuilder();
// sql.AppendFormat("declare @oldid int;");
// sql.AppendFormat("select @oldid=parentid from X_Modular where id={0} ;",id);
// sql.AppendFormat("update X_Modular set path=REPLACE(Path,@oldid,'{0}') where path like '%|'+(select Convert(varchar,id) from X_Modular where ID={1})+'%|' or ID={1} ;", pId, id);
// sql.AppendFormat("update X_Modular set parentid={0},sort={1} where id={2} ;", pId,sort,id);
// TransExecuteNonQuery(sql.ToString());
//}
//获取角色模块
public static DataTable GetResourceByRoleID(int roleId)
{
string sql = "select * from X_Modular where Code in(select ResCode from LC_SysRoleToResource where RoleID={0}) and IsDel=0 order by parentid,ordernum ";
return DbConn.ExecuteDataset(string.Format(sql, roleId)).Tables[0];
}
public static void BuilderOperate(string mId)
{
StringBuilder sql = new StringBuilder();
DataTable dt = DbConn.ExecuteDataset("select * from X_Modular where id=" + mId).Tables[0];
if (dt == null || dt.Rows.Count < 1) return;
DataRow dr = dt.Rows[0];
string tag = dr["Tag"].ToString();
string path = dr["Path"] + mId + "|";
sql.AppendFormat("insert into X_Modular(parentid,name,tag,path,sort,isoperate) Values({0},'{1}','{2}','{3}',{4},1) ;",
mId, "查看", tag + "_view", path, 0);
sql.AppendFormat("insert into X_Modular(parentid,name,tag,path,sort,isoperate) Values({0},'{1}','{2}','{3}',{4},1) ;",
mId, "添加", tag + "_add", path, 1);
sql.AppendFormat("insert into X_Modular(parentid,name,tag,path,sort,isoperate) Values({0},'{1}','{2}','{3}',{4},1) ;",
mId, "修改", tag + "_edit", path, 2);
sql.AppendFormat("insert into X_Modular(parentid,name,tag,path,sort,isoperate) Values({0},'{1}','{2}','{3}',{4},1) ;",
mId, "删除", tag + "_del", path, 3);
TransExecuteNonQuery(sql.ToString());
}
}
}