using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections; namespace WebAPIBase.NetCore.BusinessCore { public class RightModel { public static string UnavailableFunctionStructureCodes = "050170,050171,07,0701,070103,070107,070111,070121,070151,070152,070153,070154,0702,070202,0711,071101,150105,560102,670101,1214"; public static List RightModelList = new List(); public static void InitRightModelList(string licenceVerName, string licenceVerMsg) { if (string.IsNullOrEmpty(licenceVerMsg)) { return; } string[] array = licenceVerMsg.Split(','); if (array.Length <= 0) { return; } CreateRightModelList(licenceVerName); for (int i = 1; i < array.Length; i++) { string[] array2 = array[i].Split(':'); if (array2.Length != 2) { continue; } foreach (RightModelItem rightModel in RightModelList) { if (!(rightModel.RightModelKey == array2[0])) { continue; } if (licenceVerName.ToLower() == "v35proj") { if (Convert.ToInt32(array2[1]) > 0) { rightModel.IsValid = true; } } else { rightModel.IsValid = true; } break; } } } private static void CreateRightModelList(string licenceVerName) { RightModelList.Clear(); switch (licenceVerName.ToLower()) { case "v35proj": { AddItem("项目管理", "UP", "01,12,14,56,04,05,06,22,24,15"); AddItem("营销管理", "UG", "60,67,61,62,63,64,66"); StringBuilder stringBuilder2 = new StringBuilder(); stringBuilder2.Append(",07,17,1206,560102,560121"); stringBuilder2.Append(",31,1204,560114,560115,560116"); stringBuilder2.Append(",21"); stringBuilder2.Append(",57,58"); stringBuilder2.Append(",09,041116,050113,050114,050115,060108,151306,151506,220108,240106"); stringBuilder2.Append(",69,660103,660104,670202,670205"); stringBuilder2.Append(",68,670203"); stringBuilder2.Append(",660410,660415,660419,660422,660423,660430,660606"); stringBuilder2.Append(",660105,660109,660120,660114,660115,660116,660117,660121,660122,660123,660124"); stringBuilder2.Append(",70,600307,6015,6016,6017,6302,6305,6310,6311,660119,660118,660304,660515,660516,6608,660305,610127"); stringBuilder2.Append(",600308"); stringBuilder2.Append(",65"); AddItem("不提供的功能", "INVALID", stringBuilder2.ToString().Substring(1)); break; } case "v35": AddItem("PM项目信息", "UQ", "01,12,14,56"); AddItem("成本控制", "US", "04"); AddItem("合同管理", "UU", "05"); AddItem("付款管理", "UV", "06"); AddItem("现场签证", "UW", "22"); AddItem("设计变更", "UX", "24"); AddItem("材料管理", "UK", "15"); AddItem("工程进度", "UR", "17"); AddItem("招标管理", "UT", "21"); AddItem("资金计划", "UZ", "31"); AddItem("质量安全", "UY", "57,58"); AddItem("营销项目信息", "UH", "60,67"); AddItem("客户管理", "UI", "61"); AddItem("财务管理", "UL", "63"); AddItem("报表中心", "UN", "66"); 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"); AddItem("会员管理", "UO", "65"); AddItem("客户投诉", "UF", "69,660103,660104"); AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,6302,6305,6310,6311,660118,660119,660304,660515,660516,6608,610127,660121,660122,660123,660124"); AddItem("始终有效的功能", "VALID", "08,09,10,11").IsValid = true; break; case "v50": AddItem("PM项目信息", "UQ", "01,12,14,56"); AddItem("成本控制", "US", "04,560103,560104,560105,560106,560111,560112,560113,560131"); AddItem("合同管理", "UU", "05,210106"); AddItem("付款管理", "UV", "06,560107,560108"); AddItem("现场签证", "UW", "22"); AddItem("设计变更", "UX", "24"); AddItem("材料管理", "UK", "15,050118,050119,050123,060310,060311"); AddItem("工程进度", "UR", "17,1206,560101,560121,560131"); AddItem("招标管理", "UT", "21"); AddItem("资金计划", "UZ", "31,1204,560114,560115,560116"); AddItem("质量安全", "UY", "57,58"); AddItem("合约规划", "EC", "0422"); AddItem("管理驾驶舱", "ED", "80"); AddItem("成本数据库", "EE", "5602"); AddItem("供方管理", "EF", "41"); AddItem("材料信息库", "EG", "1502"); AddItem("营销项目信息", "UH", "60,67"); AddItem("客户管理", "UI", "61,660120,660128,6602,6607"); AddItem("财务管理", "UL", "63,6605,660105,660109,660116,660117"); AddItem("报表中心", "UN", "66"); 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"); AddItem("企划管理", "UE", "68,6609,660114,660126"); AddItem("售后服务", "UM", "64,6606"); AddItem("会员管理", "UO", "65"); AddItem("客户投诉", "UF", "69,660103,660104,670202,670205"); AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,610127,6302,6305,6310,6311,660118,660119,660127,6603,660304,660515,6608,610127"); AddItem("始终有效的功能", "VALID", "08,09,10,11").IsValid = true; break; case "v55": AddItem("PM项目信息", "UQ", "01,12,14,56"); AddItem("成本控制", "US", "04,560103,560104,560105,560106,560111,560112,560113,560131"); AddItem("合同管理", "UU", "05,210106"); AddItem("付款管理", "UV", "06,560107,560108"); AddItem("现场签证", "UW", "22"); AddItem("设计变更", "UX", "24"); AddItem("材料管理", "UK", "15,050118,050119,050123,060310,060311"); AddItem("工程进度", "UR", "17,1206,560101,560121,560131"); AddItem("招标管理", "UT", "21"); AddItem("资金计划", "UZ", "31,1204,560114,560115,560116"); AddItem("质量安全", "UY", "57,58"); AddItem("合约规划", "EC", "0422"); AddItem("管理驾驶舱", "ED", "80"); AddItem("成本数据库", "EE", "5602"); AddItem("供方管理", "EF", "41"); AddItem("材料信息库", "EG", "1502"); AddItem("营销项目信息", "UH", "60,67"); AddItem("客户管理", "UI", "61,660120,660128,6602,6607"); AddItem("财务管理", "UL", "63,6605,660105,660109,660116,660117"); AddItem("报表中心", "UN", "66"); AddItem("票据管理", "EH", "6312"); AddItem("计划管理", "EI", "18"); 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"); AddItem("企划管理", "UE", "68,6609,660114,660126"); AddItem("售后服务", "UM", "64,6606"); AddItem("会员管理", "UO", "65"); AddItem("客户投诉", "UF", "69,660103,660104,670202,670205"); AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,610127,6302,6305,6310,6311,660118,660119,660127,660304,660515,6608,610127"); AddItem("始终有效的功能", "VALID", "08,09,10,11").IsValid = true; break; case "v56": AddItem("PM项目信息", "UQ", "01,12,14,56,19"); AddItem("成本控制", "US", "04,560103,560104,560105,560106,560111,560112,560113,560131"); AddItem("合同管理", "UU", "05,210106"); AddItem("付款管理", "UV", "06,560107,560108"); AddItem("现场签证", "UW", "22"); AddItem("设计变更", "UX", "24"); AddItem("材料管理", "UK", "15,050118,050119,050123,060310,060311"); AddItem("工程进度", "UR", "17,1206,560101,560121,560131"); AddItem("招标管理", "UT", "21"); AddItem("资金计划", "UZ", "31,1204,560114,560115,560116"); AddItem("质量安全", "UY", "57,58"); AddItem("合约规划", "EC", "0422"); AddItem("管理驾驶舱", "ED", "80"); AddItem("成本数据库", "EE", "5602"); AddItem("供方管理", "EF", "41"); AddItem("材料信息库", "EG", "1502"); AddItem("营销项目信息", "UH", "60,67"); AddItem("客户管理", "UI", "61,660120,660128,6602,6607"); AddItem("财务管理", "UL", "63,6605,660105,660109,660116,660117"); AddItem("报表中心", "UN", "66"); AddItem("票据管理", "EH", "6312"); AddItem("计划管理", "EI", "18"); 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"); AddItem("企划管理", "UE", "68,6609,660114,660126,670203"); AddItem("售后服务", "UM", "64,6606"); AddItem("会员管理", "UO", "65"); AddItem("客户投诉", "UF", "69,660103,660104,670202,670205"); AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,610127,6302,6305,6310,6311,660118,660119,660127,660304,660515,6608,610127,6314"); AddItem("始终有效的功能", "VALID", "08,09,10,11,71").IsValid = true; break; case "v561": AddItem("PM项目信息", "UQ", "01,12,14,56,19"); AddItem("成本控制", "US", "04,560103,560104,560105,560106,560111,560112,560113,560131"); AddItem("合同管理", "UU", "05,210106"); AddItem("付款管理", "UV", "06,560107,560108"); AddItem("现场签证", "UW", "22"); AddItem("设计变更", "UX", "24"); AddItem("材料管理", "UK", "15,050118,050119,050123,060310,060311"); AddItem("工程进度", "UR", "17,1206,560101,560121,560131"); AddItem("招标管理", "UT", "21"); AddItem("资金计划", "UZ", "31,1204,560114,560115,560116"); AddItem("质量安全", "UY", "57,58"); AddItem("合约规划", "EC", "0422"); AddItem("管理驾驶舱", "ED", "80"); AddItem("成本数据库", "EE", "5602"); AddItem("供方管理", "EF", "41"); AddItem("材料信息库", "EG", "1502"); AddItem("营销项目信息", "UH", "60,67"); AddItem("客户管理", "UI", "61,660120,660128,6602,6607"); AddItem("财务管理", "UL", "63,6605,660105,660109,660116,660117"); AddItem("报表中心", "UN", "66"); AddItem("票据管理", "EH", "6312"); AddItem("计划管理", "EI", "18"); 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"); AddItem("企划管理", "UE", "68,6609,660114,660126,670203"); AddItem("售后服务", "UM", "64,6606"); AddItem("会员管理", "UO", "65"); AddItem("客户投诉", "UF", "69,660103,660104,670202,670205"); AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,610127,6302,6305,6310,6311,660118,660119,660127,660304,660515,6608,610127,6314"); AddItem("增值税管理", "EK", "81,1115,041161,041623,560132,050188,8092,660519,061109,410207,410208"); AddItem("始终有效的功能", "VALID", "08,09,10,11,71").IsValid = true; break; case "v60": AddItem("PM项目信息", "UQ", "01,12,14,56,19"); AddItem("成本控制", "US", "04,560103,560104,560105,560106,560111,560112,560113,560131"); AddItem("合同管理", "UU", "05,210106"); AddItem("付款管理", "UV", "06,560107,560108"); AddItem("现场签证", "UW", "22"); AddItem("设计变更", "UX", "24"); AddItem("材料管理", "UK", "15,050118,050119,050123"); AddItem("工程进度", "UR", "17,1206,560101,560121,560131"); AddItem("招标管理", "UT", "21"); AddItem("资金计划", "UZ", "31,1204,560114,560115,560116"); AddItem("质量安全", "UY", "57,58"); AddItem("合约规划", "EC", "0422"); AddItem("管理驾驶舱", "ED", "80"); AddItem("成本数据库", "EE", "5602"); AddItem("供方管理", "EF", "41"); AddItem("材料信息库", "EG", "1502"); AddItem("营销项目信息", "UH", "60,67"); AddItem("客户管理", "UI", "61,660120,660128,6602,6607"); AddItem("财务管理", "UL", "63,6605,660105,660109,660116,660117"); AddItem("报表中心", "UN", "66"); AddItem("票据管理", "EH", "6312"); AddItem("计划管理", "EI", "18"); 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"); AddItem("企划管理", "UE", "68,6609,660114,660126,670203"); AddItem("售后服务", "UM", "64,6606"); AddItem("会员管理", "UO", "65"); AddItem("客户投诉", "UF", "69,660103,660104,670202,670205"); AddItem("租赁管理", "EB", "70,600307,6015,6016,6017,610127,6302,6305,6310,6311,660118,660119,660127,660304,660515,6608,610127,6314"); AddItem("增值税管理", "EK", "81,1115,041161,041623,560132,050188,8092,660519,061109,410207,410208"); AddItem("商业物业", "EL", "82,88,89,90,91,92,93,94,95,96,97,98,99"); AddItem("始终有效的功能", "VALID", "08,09,10,11,71").IsValid = true; break; case "v50proj": { AddItem("项目管理", "UP", "01,12,14,56,04,05,06,22,24,15,31,41"); AddItem("营销管理", "UG", "60,67,61,62,63,64,66"); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(",07,17,1206,560102,560121,041621,560131"); stringBuilder.Append(",09,041116,050113,050114,050115,060108,151306,151506,220108,240106"); stringBuilder.Append(",620813,620915"); stringBuilder.Append(",21"); stringBuilder.Append(",4101,4104"); stringBuilder.Append(",57,58"); stringBuilder.Append(",65"); stringBuilder.Append(",68,6609,660114,660126"); stringBuilder.Append(",69,660103,660104,670202,670205"); stringBuilder.Append(",6102"); stringBuilder.Append(",70,600307,6015,6016,6017,6302,6305,6310,6311,660119,660118,660304,660515,6608,660127,610127,660305,660516"); stringBuilder.Append(",600308"); stringBuilder.Append(",660415,660419,660422,660423,660430,660606"); stringBuilder.Append(",660105,660109,660120,660114,660115,660116,660117,660107,660108,660113,660125,660128"); stringBuilder.Append(",610121,610122,610125,660303"); stringBuilder.Append(",80"); stringBuilder.Append(",5602,041117"); stringBuilder.Append(",0422"); AddItem("不提供的功能", "INVALID", stringBuilder.ToString().Substring(1)); break; } } } private static RightModelItem AddItem(string name, string key, string rootfunctionstructlist) { RightModelItem rightModelItem = new RightModelItem(name, key, rootfunctionstructlist); RightModelList.Add(rightModelItem); return rightModelItem; } public static RightModelItem GetItemByKey(string key) { foreach (RightModelItem rightModel in RightModelList) { if (key.ToLower() == rightModel.RightModelKey.ToLower()) { return rightModel; } } return null; } public static ArrayList GetRootFunctionStructureByValid(bool isValid) { ArrayList arrayList = new ArrayList(); foreach (RightModelItem rightModel in RightModelList) { if (rightModel.IsValid == isValid) { string[] array = rightModel.RootFunctionStructList.Split(','); string[] array2 = array; foreach (string value in array2) { arrayList.Add(value); } } } return arrayList; } } }