DicSysBase.cs 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. using Castle.ActiveRecord;
  2. using System;
  3. using System.Data;
  4. using System.Text;
  5. namespace BizCom
  6. {
  7. public class DicSysBase : ComBase<DicSysBase>
  8. {
  9. private string _code = "";
  10. private string _memo = "";
  11. private string _name = "";
  12. private string _path = "";
  13. public string _url = "";
  14. public string _tag = "";
  15. public string _icon = "";
  16. public bool _isOperate = false;
  17. public bool _oldOrder;
  18. /// <summary>
  19. /// 根结点名
  20. /// </summary>
  21. public string rootName;
  22. /// <summary>
  23. /// 页面标题显示
  24. /// </summary>
  25. public string titleName;
  26. public string tableName;
  27. [PrimaryKey(PrimaryKeyType.Identity)]
  28. public int ID { get; set; }
  29. /// <summary>
  30. ///父节点ID
  31. /// </summary>
  32. [Property]
  33. public int ParentID { get; set; }
  34. /// <summary>
  35. ///名称
  36. /// </summary>
  37. [Property]
  38. public string Name
  39. {
  40. get { return _name; }
  41. set { _name = value; }
  42. }
  43. /// <summary>
  44. ///编号
  45. /// </summary>
  46. [Property]
  47. public string Code
  48. {
  49. get { return _code; }
  50. set { _code = value; }
  51. }
  52. /// <summary>
  53. /// 老订单权限
  54. /// </summary>
  55. [Property]
  56. public bool OldOrder
  57. {
  58. get { return _oldOrder; }
  59. set { _oldOrder = value; }
  60. }
  61. /// <summary>
  62. ///路径
  63. /// </summary>
  64. [Property]
  65. public string Path
  66. {
  67. get { return _path; }
  68. set { _path = value; }
  69. }
  70. /// <summary>
  71. ///排序号
  72. /// </summary>
  73. [Property]
  74. public int Sort { get; set; }
  75. /// <summary>
  76. ///删除标志
  77. /// </summary>
  78. [Property]
  79. public bool IsDel { get; set; }
  80. /// <summary>
  81. ///备注
  82. /// </summary>
  83. [Property]
  84. public string Memo
  85. {
  86. get { return _memo; }
  87. set { _memo = value; }
  88. }
  89. //关联店铺
  90. public string _pemShop = "";
  91. public string pemShop
  92. {
  93. get { return _pemShop; }
  94. set { _pemShop = value; }
  95. }
  96. public string Url
  97. {
  98. get { return _url; }
  99. set { _url = value; }
  100. }
  101. public string Tag
  102. {
  103. get { return _tag; }
  104. set { _tag = value; }
  105. }
  106. public string Icon
  107. {
  108. get { return _icon; }
  109. set { _icon = value; }
  110. }
  111. public string _pCode = "";
  112. /// <summary>
  113. ///父代号
  114. /// </summary>
  115. public string PCode
  116. {
  117. get { return _pCode; }
  118. set { _pCode = value; }
  119. }
  120. /// <summary>
  121. ///是否操作
  122. /// </summary>
  123. public bool isOperate
  124. {
  125. get { return _isOperate; }
  126. set { _isOperate = value; }
  127. }
  128. public string _hostFieldName = "";
  129. /// <summary>
  130. ///字段名
  131. /// </summary>
  132. public string HostFieldName
  133. {
  134. get { return _hostFieldName; }
  135. set { _hostFieldName = value; }
  136. }
  137. public string _hostName = "";
  138. /// <summary>
  139. ///主机楼名称
  140. /// </summary>
  141. public string HostName
  142. {
  143. get { return _hostName; }
  144. set { _hostName = value; }
  145. }
  146. public double _maxStock = 0;
  147. public double _warningStock = 0;
  148. public double MaxStock
  149. {
  150. get { return _maxStock; }
  151. set { _maxStock = value; }
  152. }
  153. public double WarningStock
  154. {
  155. get { return _warningStock; }
  156. set { _warningStock = value; }
  157. }
  158. #region 事件
  159. /// <summary>
  160. /// 获取Code
  161. /// </summary>
  162. /// <param name="pCode"></param>
  163. /// <param name="pId"></param>
  164. /// <returns></returns>
  165. public virtual string GetCode(string pCode, int pId)
  166. {
  167. return "";
  168. }
  169. public void TransModular(object id, object pId, int sort, string table)
  170. {
  171. if (table == "") return;
  172. StringBuilder sql = new StringBuilder();
  173. sql.AppendFormat("declare @oldid int;");
  174. sql.AppendFormat("select @oldid=parentid from {1} where id={0} ;", id, table);
  175. sql.AppendFormat("update {2} set path=REPLACE(Path,@oldid,'{0}') where path like '%|'+(select Convert(varchar,id) from {2} where ID={1})+'%|' or ID={1} ;", pId, id, table);
  176. sql.AppendFormat("update {3} set parentid={0},sort={1} where id={2} ;", pId, sort, id, table);
  177. TransExecuteNonQuery(sql.ToString());
  178. }
  179. public void SaveLine(object id, string prev, int st, int et, string table)
  180. {
  181. StringBuilder sql = new StringBuilder();
  182. for (int i = st; i < st + et; i++)
  183. {
  184. sql.AppendFormat("insert into {0}(parentid,name,sort,pemShop)values({1},'{2}',{3}) ;", table, id, prev + (i < 10 ? ("0" + i) : i.ToString()), i);
  185. }
  186. TransExecuteNonQuery(sql.ToString());
  187. }
  188. /// <summary>
  189. /// 获取数据
  190. /// </summary>
  191. /// <returns></returns>
  192. public DataTable GetDataTable()
  193. {
  194. return GetDataTable("");
  195. }
  196. public DataTable GetDataTable(string sWhere)
  197. {
  198. return GetDataTable(0, sWhere);
  199. }
  200. public DataTable GetDataTable(int top, string sWhere)
  201. {
  202. string sTop = top > 0 ? "Top " + top : "";
  203. string sql = "select {2} * from {0} {1} order by ParentID,Sort";
  204. DataSet ds = DbConn.ExecuteDataset(string.Format(sql, TName, sWhere == "" ? "" : " where " + sWhere, sTop));
  205. if (ds != null && ds.Tables.Count > 0) return ds.Tables[0];
  206. else return null;
  207. }
  208. public static DataTable GetTable(string sName, string sWhere)
  209. {
  210. string sql = "select * from {0} {1} Order By ParentID,Sort";
  211. DataSet ds = DbConn.ExecuteDataset(string.Format(sql, sName, sWhere == "" ? "" : " where " + sWhere));
  212. if (ds != null && ds.Tables.Count > 0) return ds.Tables[0];
  213. else return null;
  214. }
  215. public object GetEntity(object id)
  216. {
  217. DataTable dt = GetDataTable("ID=" + id);
  218. ID = Convert.ToInt32(dt.Rows[0]["ID"]);
  219. Name = dt.Rows[0]["Name"].ToString();
  220. ParentID = Convert.ToInt32(dt.Rows[0]["ParentID"]);
  221. if (dt.Columns.Contains("Url"))
  222. Url = dt.Rows[0]["Url"].ToString();
  223. if (dt.Columns.Contains("Tag"))
  224. Tag = dt.Rows[0]["Tag"].ToString();
  225. if (dt.Columns.Contains("isOperate"))
  226. isOperate = Convert.ToBoolean(dt.Rows[0]["isOperate"]);
  227. Code = dt.Rows[0]["Code"].ToString();
  228. Path = dt.Rows[0]["Path"].ToString();
  229. Sort = Convert.ToInt32(dt.Rows[0]["Sort"]);
  230. IsDel = Convert.ToBoolean(dt.Rows[0]["IsDel"]);
  231. OldOrder = Convert.ToBoolean(dt.Rows[0]["OldOrder"]);
  232. Memo = dt.Rows[0]["Memo"].ToString();
  233. return this;
  234. }
  235. public object GetParentName(int pId)
  236. {
  237. string sql = "select Name from {0} where ID={1}";
  238. object result = DbConn.ExecuteScalar(string.Format(sql, TName, pId));
  239. return result;
  240. }
  241. public object GetParentPath(int pId)
  242. {
  243. string sql = "select Path from {0} where ID={1}";
  244. object result = DbConn.ExecuteScalar(string.Format(sql, TName, pId));
  245. return result;
  246. }
  247. public DataRow GetParentFields(string fields, int pId)
  248. {
  249. string sql = "select {2} from {0} where ID={1}";
  250. DataTable dt = ExecuteDataset(string.Format(sql, TName, pId, fields)).Tables[0];
  251. if (dt != null && dt.Rows.Count > 0)
  252. return dt.Rows[0];
  253. return null;
  254. }
  255. public static object GetFieldByName(string field, string table, string name)
  256. {
  257. string sql = "select {0} from {1} where Name='{2}'";
  258. object result = DbConn.ExecuteScalar(string.Format(sql, field, table, name));
  259. return result;
  260. }
  261. public static int GetIDByName(string table, string name)
  262. {
  263. object result = GetFieldByName("ID", table, name);
  264. if (result != null) return (int)result;
  265. return 0;
  266. }
  267. public static void UpdatePath(string table)
  268. {
  269. string sql = "select * from " + table;
  270. DataTable dt = ExecuteDataset(sql).Tables[0];
  271. DataView dv = new DataView(dt);
  272. DataView dv2 = new DataView(dt);
  273. dv.RowFilter = "parentid<>0 and path=''";
  274. StringBuilder tmpSql = new StringBuilder();
  275. string spath = "";
  276. foreach (DataRowView drv in dv)
  277. {
  278. dv2.RowFilter = "id=" + drv["parentid"];
  279. if (dv2.Count > 0)
  280. {
  281. if (dv2[0]["parentid"].ToString() == "0")
  282. {
  283. spath = "|" + dv2[0]["id"] + "|";
  284. }
  285. else
  286. {
  287. spath = dv2[0]["path"].ToString() + dv2[0]["id"] + "|";
  288. }
  289. tmpSql.Append("update " + table + " set path ='" + spath + "' where id=" + drv["id"] + " ;");
  290. }
  291. if (tmpSql.Length > 0)
  292. {
  293. ExecuteNonQuery(tmpSql.ToString());
  294. }
  295. }
  296. }
  297. public void DelChild(int id)
  298. {
  299. string sql = string.Format("delete from {0} where Path like '%|{1}|%' ", TName, id);
  300. ExecuteNonQuery(sql);
  301. }
  302. #endregion
  303. }
  304. }