RightModel.cs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Collections;
  7. namespace WebAPIBase.NetCore.BusinessCore
  8. {
  9. public class RightModel
  10. {
  11. public static string UnavailableFunctionStructureCodes = "050170,050171,07,0701,070103,070107,070111,070121,070151,070152,070153,070154,0702,070202,0711,071101,150105,560102,670101,1214";
  12. public static List<RightModelItem> RightModelList = new List<RightModelItem>();
  13. public static void InitRightModelList(string licenceVerName, string licenceVerMsg)
  14. {
  15. if (string.IsNullOrEmpty(licenceVerMsg))
  16. {
  17. return;
  18. }
  19. string[] array = licenceVerMsg.Split(',');
  20. if (array.Length <= 0)
  21. {
  22. return;
  23. }
  24. CreateRightModelList(licenceVerName);
  25. for (int i = 1; i < array.Length; i++)
  26. {
  27. string[] array2 = array[i].Split(':');
  28. if (array2.Length != 2)
  29. {
  30. continue;
  31. }
  32. foreach (RightModelItem rightModel in RightModelList)
  33. {
  34. if (!(rightModel.RightModelKey == array2[0]))
  35. {
  36. continue;
  37. }
  38. if (licenceVerName.ToLower() == "v35proj")
  39. {
  40. if (Convert.ToInt32(array2[1]) > 0)
  41. {
  42. rightModel.IsValid = true;
  43. }
  44. }
  45. else
  46. {
  47. rightModel.IsValid = true;
  48. }
  49. break;
  50. }
  51. }
  52. }
  53. private static void CreateRightModelList(string licenceVerName)
  54. {
  55. RightModelList.Clear();
  56. switch (licenceVerName.ToLower())
  57. {
  58. case "v35proj":
  59. {
  60. AddItem("项目管理", "UP", "01,12,14,56,04,05,06,22,24,15");
  61. AddItem("营销管理", "UG", "60,67,61,62,63,64,66");
  62. StringBuilder stringBuilder2 = new StringBuilder();
  63. stringBuilder2.Append(",07,17,1206,560102,560121");
  64. stringBuilder2.Append(",31,1204,560114,560115,560116");
  65. stringBuilder2.Append(",21");
  66. stringBuilder2.Append(",57,58");
  67. stringBuilder2.Append(",09,041116,050113,050114,050115,060108,151306,151506,220108,240106");
  68. stringBuilder2.Append(",69,660103,660104,670202,670205");
  69. stringBuilder2.Append(",68,670203");
  70. stringBuilder2.Append(",660410,660415,660419,660422,660423,660430,660606");
  71. stringBuilder2.Append(",660105,660109,660120,660114,660115,660116,660117,660121,660122,660123,660124");
  72. stringBuilder2.Append(",70,600307,6015,6016,6017,6302,6305,6310,6311,660119,660118,660304,660515,660516,6608,660305,610127");
  73. stringBuilder2.Append(",600308");
  74. stringBuilder2.Append(",65");
  75. AddItem("不提供的功能", "INVALID", stringBuilder2.ToString().Substring(1));
  76. break;
  77. }
  78. case "v35":
  79. AddItem("PM项目信息", "UQ", "01,12,14,56");
  80. AddItem("成本控制", "US", "04");
  81. AddItem("合同管理", "UU", "05");
  82. AddItem("付款管理", "UV", "06");
  83. AddItem("现场签证", "UW", "22");
  84. AddItem("设计变更", "UX", "24");
  85. AddItem("材料管理", "UK", "15");
  86. AddItem("工程进度", "UR", "17");
  87. AddItem("招标管理", "UT", "21");
  88. AddItem("资金计划", "UZ", "31");
  89. AddItem("质量安全", "UY", "57,58");
  90. AddItem("营销项目信息", "UH", "60,67");
  91. AddItem("客户管理", "UI", "61");
  92. AddItem("财务管理", "UL", "63");
  93. AddItem("报表中心", "UN", "66");
  94. AddItem("销售管理", "UJ", "62,64,600304,600305,600306,6004,6005,6006,6007,6009,6010,6014,610113,610114,610115,610116,610117,610118,610119,610120,6301,6303\r\n,660101,660102,660105,660106,660107,660108,660109,660110,660111,660112,660114,660115,660116,660117,660120,660301,660302,660303,6604,660501,660504,660505,660506,660509,660511,660512,660513,660514,6606,660701\r\n,68");
  95. AddItem("会员管理", "UO", "65");
  96. AddItem("客户投诉", "UF", "69,660103,660104");
  97. AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,6302,6305,6310,6311,660118,660119,660304,660515,660516,6608,610127,660121,660122,660123,660124");
  98. AddItem("始终有效的功能", "VALID", "08,09,10,11").IsValid = true;
  99. break;
  100. case "v50":
  101. AddItem("PM项目信息", "UQ", "01,12,14,56");
  102. AddItem("成本控制", "US", "04,560103,560104,560105,560106,560111,560112,560113,560131");
  103. AddItem("合同管理", "UU", "05,210106");
  104. AddItem("付款管理", "UV", "06,560107,560108");
  105. AddItem("现场签证", "UW", "22");
  106. AddItem("设计变更", "UX", "24");
  107. AddItem("材料管理", "UK", "15,050118,050119,050123,060310,060311");
  108. AddItem("工程进度", "UR", "17,1206,560101,560121,560131");
  109. AddItem("招标管理", "UT", "21");
  110. AddItem("资金计划", "UZ", "31,1204,560114,560115,560116");
  111. AddItem("质量安全", "UY", "57,58");
  112. AddItem("合约规划", "EC", "0422");
  113. AddItem("管理驾驶舱", "ED", "80");
  114. AddItem("成本数据库", "EE", "5602");
  115. AddItem("供方管理", "EF", "41");
  116. AddItem("材料信息库", "EG", "1502");
  117. AddItem("营销项目信息", "UH", "60,67");
  118. AddItem("客户管理", "UI", "61,660120,660128,6602,6607");
  119. AddItem("财务管理", "UL", "63,6605,660105,660109,660116,660117");
  120. AddItem("报表中心", "UN", "66");
  121. AddItem("销售管理", "UJ", "62,600304,600305,600306,6004,6005,6006,6007,6009,6010,6014,610113,610114,610115,610116,610117,610118,610119,610120,610121,610122,610125,6301,6303\r\n,660101,660102,660105,660107,660108,660109,660113,660115,660116,660117,660120,660125,660128,660129,6603,660301,660302,660303,6604,660501,660502,660503,660504,660505,660506,660507,660508,660513,660514,660517,660701");
  122. AddItem("企划管理", "UE", "68,6609,660114,660126");
  123. AddItem("售后服务", "UM", "64,6606");
  124. AddItem("会员管理", "UO", "65");
  125. AddItem("客户投诉", "UF", "69,660103,660104,670202,670205");
  126. AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,610127,6302,6305,6310,6311,660118,660119,660127,6603,660304,660515,6608,610127");
  127. AddItem("始终有效的功能", "VALID", "08,09,10,11").IsValid = true;
  128. break;
  129. case "v55":
  130. AddItem("PM项目信息", "UQ", "01,12,14,56");
  131. AddItem("成本控制", "US", "04,560103,560104,560105,560106,560111,560112,560113,560131");
  132. AddItem("合同管理", "UU", "05,210106");
  133. AddItem("付款管理", "UV", "06,560107,560108");
  134. AddItem("现场签证", "UW", "22");
  135. AddItem("设计变更", "UX", "24");
  136. AddItem("材料管理", "UK", "15,050118,050119,050123,060310,060311");
  137. AddItem("工程进度", "UR", "17,1206,560101,560121,560131");
  138. AddItem("招标管理", "UT", "21");
  139. AddItem("资金计划", "UZ", "31,1204,560114,560115,560116");
  140. AddItem("质量安全", "UY", "57,58");
  141. AddItem("合约规划", "EC", "0422");
  142. AddItem("管理驾驶舱", "ED", "80");
  143. AddItem("成本数据库", "EE", "5602");
  144. AddItem("供方管理", "EF", "41");
  145. AddItem("材料信息库", "EG", "1502");
  146. AddItem("营销项目信息", "UH", "60,67");
  147. AddItem("客户管理", "UI", "61,660120,660128,6602,6607");
  148. AddItem("财务管理", "UL", "63,6605,660105,660109,660116,660117");
  149. AddItem("报表中心", "UN", "66");
  150. AddItem("票据管理", "EH", "6312");
  151. AddItem("计划管理", "EI", "18");
  152. AddItem("销售管理", "UJ", "62,600304,600305,600306,6004,6005,6006,6007,6009,6010,6014,610113,610114,610115,610116,610117,610118,610119,610120,610121,610122,610125,610130,610131,610132,610133,610134,610135,610136,610137,610138,610139,6301,6303,6313\r\n,660101,660102,660105,660107,660108,660109,660113,660115,660116,660117,660120,660125,660128,660129,660301,660302,660303,6604,660501,660504,660505,660506,660509,660513,660514,660517,660701");
  153. AddItem("企划管理", "UE", "68,6609,660114,660126");
  154. AddItem("售后服务", "UM", "64,6606");
  155. AddItem("会员管理", "UO", "65");
  156. AddItem("客户投诉", "UF", "69,660103,660104,670202,670205");
  157. AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,610127,6302,6305,6310,6311,660118,660119,660127,660304,660515,6608,610127");
  158. AddItem("始终有效的功能", "VALID", "08,09,10,11").IsValid = true;
  159. break;
  160. case "v56":
  161. AddItem("PM项目信息", "UQ", "01,12,14,56,19");
  162. AddItem("成本控制", "US", "04,560103,560104,560105,560106,560111,560112,560113,560131");
  163. AddItem("合同管理", "UU", "05,210106");
  164. AddItem("付款管理", "UV", "06,560107,560108");
  165. AddItem("现场签证", "UW", "22");
  166. AddItem("设计变更", "UX", "24");
  167. AddItem("材料管理", "UK", "15,050118,050119,050123,060310,060311");
  168. AddItem("工程进度", "UR", "17,1206,560101,560121,560131");
  169. AddItem("招标管理", "UT", "21");
  170. AddItem("资金计划", "UZ", "31,1204,560114,560115,560116");
  171. AddItem("质量安全", "UY", "57,58");
  172. AddItem("合约规划", "EC", "0422");
  173. AddItem("管理驾驶舱", "ED", "80");
  174. AddItem("成本数据库", "EE", "5602");
  175. AddItem("供方管理", "EF", "41");
  176. AddItem("材料信息库", "EG", "1502");
  177. AddItem("营销项目信息", "UH", "60,67");
  178. AddItem("客户管理", "UI", "61,660120,660128,6602,6607");
  179. AddItem("财务管理", "UL", "63,6605,660105,660109,660116,660117");
  180. AddItem("报表中心", "UN", "66");
  181. AddItem("票据管理", "EH", "6312");
  182. AddItem("计划管理", "EI", "18");
  183. AddItem("销售管理", "UJ", "62,600304,600305,600306,600308,600309,6004,6005,6006,6007,6009,6010,6014,610113,610114,610115,610116,610117,610118,610119,610120,610121,610122,610125,610130,610131,610132,610133,610134,610135,610136,610137,610138,610139,6301,6303,6313\r\n,660101,660102,660105,660107,660108,660109,660113,660115,660116,660117,660120,660125,660128,660129,660301,660302,660303,6604,660501,660504,660505,660506,660509,660513,660514,660517,660701\r\n,6313,660130,660131,660132,660133,660134,660203,660204,660306,660704,660701");
  184. AddItem("企划管理", "UE", "68,6609,660114,660126,670203");
  185. AddItem("售后服务", "UM", "64,6606");
  186. AddItem("会员管理", "UO", "65");
  187. AddItem("客户投诉", "UF", "69,660103,660104,670202,670205");
  188. AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,610127,6302,6305,6310,6311,660118,660119,660127,660304,660515,6608,610127,6314");
  189. AddItem("始终有效的功能", "VALID", "08,09,10,11,71").IsValid = true;
  190. break;
  191. case "v561":
  192. AddItem("PM项目信息", "UQ", "01,12,14,56,19");
  193. AddItem("成本控制", "US", "04,560103,560104,560105,560106,560111,560112,560113,560131");
  194. AddItem("合同管理", "UU", "05,210106");
  195. AddItem("付款管理", "UV", "06,560107,560108");
  196. AddItem("现场签证", "UW", "22");
  197. AddItem("设计变更", "UX", "24");
  198. AddItem("材料管理", "UK", "15,050118,050119,050123,060310,060311");
  199. AddItem("工程进度", "UR", "17,1206,560101,560121,560131");
  200. AddItem("招标管理", "UT", "21");
  201. AddItem("资金计划", "UZ", "31,1204,560114,560115,560116");
  202. AddItem("质量安全", "UY", "57,58");
  203. AddItem("合约规划", "EC", "0422");
  204. AddItem("管理驾驶舱", "ED", "80");
  205. AddItem("成本数据库", "EE", "5602");
  206. AddItem("供方管理", "EF", "41");
  207. AddItem("材料信息库", "EG", "1502");
  208. AddItem("营销项目信息", "UH", "60,67");
  209. AddItem("客户管理", "UI", "61,660120,660128,6602,6607");
  210. AddItem("财务管理", "UL", "63,6605,660105,660109,660116,660117");
  211. AddItem("报表中心", "UN", "66");
  212. AddItem("票据管理", "EH", "6312");
  213. AddItem("计划管理", "EI", "18");
  214. AddItem("销售管理", "UJ", "62,600304,600305,600306,600308,600309,6004,6005,6006,6007,6009,6010,6014,610113,610114,610115,610116,610117,610118,610119,610120,610121,610122,610125,610130,610131,610132,610133,610134,610135,610136,610137,610138,610139,6301,6303,6313\r\n,660101,660102,660105,660107,660108,660109,660113,660115,660116,660117,660120,660125,660128,660129,660301,660302,660303,6604,660501,660504,660505,660506,660509,660513,660514,660517,660701\r\n,6313,660130,660131,660132,660133,660134,660203,660204,660306,660704,660701");
  215. AddItem("企划管理", "UE", "68,6609,660114,660126,670203");
  216. AddItem("售后服务", "UM", "64,6606");
  217. AddItem("会员管理", "UO", "65");
  218. AddItem("客户投诉", "UF", "69,660103,660104,670202,670205");
  219. AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,610127,6302,6305,6310,6311,660118,660119,660127,660304,660515,6608,610127,6314");
  220. AddItem("增值税管理", "EK", "81,1115,041161,041623,560132,050188,8092,660519,061109,410207,410208");
  221. AddItem("始终有效的功能", "VALID", "08,09,10,11,71").IsValid = true;
  222. break;
  223. case "v60":
  224. AddItem("PM项目信息", "UQ", "01,12,14,56,19");
  225. AddItem("成本控制", "US", "04,560103,560104,560105,560106,560111,560112,560113,560131");
  226. AddItem("合同管理", "UU", "05,210106");
  227. AddItem("付款管理", "UV", "06,560107,560108");
  228. AddItem("现场签证", "UW", "22");
  229. AddItem("设计变更", "UX", "24");
  230. AddItem("材料管理", "UK", "15,050118,050119,050123");
  231. AddItem("工程进度", "UR", "17,1206,560101,560121,560131");
  232. AddItem("招标管理", "UT", "21");
  233. AddItem("资金计划", "UZ", "31,1204,560114,560115,560116");
  234. AddItem("质量安全", "UY", "57,58");
  235. AddItem("合约规划", "EC", "0422");
  236. AddItem("管理驾驶舱", "ED", "80");
  237. AddItem("成本数据库", "EE", "5602");
  238. AddItem("供方管理", "EF", "41");
  239. AddItem("材料信息库", "EG", "1502");
  240. AddItem("营销项目信息", "UH", "60,67");
  241. AddItem("客户管理", "UI", "61,660120,660128,6602,6607");
  242. AddItem("财务管理", "UL", "63,6605,660105,660109,660116,660117");
  243. AddItem("报表中心", "UN", "66");
  244. AddItem("票据管理", "EH", "6312");
  245. AddItem("计划管理", "EI", "18");
  246. AddItem("销售管理", "UJ", "62,600304,600305,600306,600308,600309,6004,6005,6006,6007,6009,6010,6014,610113,610114,610115,610116,610117,610118,610119,610120,610121,610122,610125,610130,610131,610132,610133,610134,610135,610136,610137,610138,610139,6301,6303,6313\r\n,660101,660102,660105,660107,660108,660109,660113,660115,660116,660117,660120,660125,660128,660129,660301,660302,660303,6604,660501,660504,660505,660506,660509,660513,660514,660517,660701\r\n,6313,660130,660131,660132,660133,660134,660203,660204,660306,660704,660701");
  247. AddItem("企划管理", "UE", "68,6609,660114,660126,670203");
  248. AddItem("售后服务", "UM", "64,6606");
  249. AddItem("会员管理", "UO", "65");
  250. AddItem("客户投诉", "UF", "69,660103,660104,670202,670205");
  251. AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,610127,6302,6305,6310,6311,660118,660119,660127,660304,660515,6608,610127,6314");
  252. AddItem("增值税管理", "EK", "81,1115,041161,041623,560132,050188,8092,660519,061109,410207,410208");
  253. AddItem("商业物业", "EL", "82,88,89,90,91,92,93,94,95,96,97,98,99");
  254. AddItem("始终有效的功能", "VALID", "08,09,10,11,71").IsValid = true;
  255. break;
  256. case "v50proj":
  257. {
  258. AddItem("项目管理", "UP", "01,12,14,56,04,05,06,22,24,15,31,41");
  259. AddItem("营销管理", "UG", "60,67,61,62,63,64,66");
  260. StringBuilder stringBuilder = new StringBuilder();
  261. stringBuilder.Append(",07,17,1206,560102,560121,041621,560131");
  262. stringBuilder.Append(",09,041116,050113,050114,050115,060108,151306,151506,220108,240106");
  263. stringBuilder.Append(",620813,620915");
  264. stringBuilder.Append(",21");
  265. stringBuilder.Append(",4101,4104");
  266. stringBuilder.Append(",57,58");
  267. stringBuilder.Append(",65");
  268. stringBuilder.Append(",68,6609,660114,660126");
  269. stringBuilder.Append(",69,660103,660104,670202,670205");
  270. stringBuilder.Append(",6102");
  271. stringBuilder.Append(",70,600307,6015,6016,6017,6302,6305,6310,6311,660119,660118,660304,660515,6608,660127,610127,660305,660516");
  272. stringBuilder.Append(",600308");
  273. stringBuilder.Append(",660415,660419,660422,660423,660430,660606");
  274. stringBuilder.Append(",660105,660109,660120,660114,660115,660116,660117,660107,660108,660113,660125,660128");
  275. stringBuilder.Append(",610121,610122,610125,660303");
  276. stringBuilder.Append(",80");
  277. stringBuilder.Append(",5602,041117");
  278. stringBuilder.Append(",0422");
  279. AddItem("不提供的功能", "INVALID", stringBuilder.ToString().Substring(1));
  280. break;
  281. }
  282. }
  283. }
  284. private static RightModelItem AddItem(string name, string key, string rootfunctionstructlist)
  285. {
  286. RightModelItem rightModelItem = new RightModelItem(name, key, rootfunctionstructlist);
  287. RightModelList.Add(rightModelItem);
  288. return rightModelItem;
  289. }
  290. public static RightModelItem GetItemByKey(string key)
  291. {
  292. foreach (RightModelItem rightModel in RightModelList)
  293. {
  294. if (key.ToLower() == rightModel.RightModelKey.ToLower())
  295. {
  296. return rightModel;
  297. }
  298. }
  299. return null;
  300. }
  301. public static ArrayList GetRootFunctionStructureByValid(bool isValid)
  302. {
  303. ArrayList arrayList = new ArrayList();
  304. foreach (RightModelItem rightModel in RightModelList)
  305. {
  306. if (rightModel.IsValid == isValid)
  307. {
  308. string[] array = rightModel.RootFunctionStructList.Split(',');
  309. string[] array2 = array;
  310. foreach (string value in array2)
  311. {
  312. arrayList.Add(value);
  313. }
  314. }
  315. }
  316. return arrayList;
  317. }
  318. }
  319. }