黄贺彬 6 лет назад
Родитель
Сommit
957f8be297

+ 1 - 0
TEAMModelOS.Model/Core/Models/RoleIdentityClaim.cs

@@ -14,5 +14,6 @@ namespace TEAMModelOS.Model.Core.Models
         public int RoleLevel { get; set; }
         public string RoleLevelName { get; set; }
         public string ClaimType { get; set; }
+        public int Order { get; set; }
     }
 }

+ 1 - 2
TEAMModelOS.Model/Core/Models/RoleUser.cs

@@ -18,7 +18,6 @@ namespace TEAMModelOS.Model.Core.Models
         public string RoleCode { get; set; }
         public string RoleName { get; set; }
         public string AreaCode { get; set; }
-        //public string SchoolCode { get; set; }
-        //public string SchoolName { get; set; }
+        
     }
 }

+ 32 - 1
TEAMModelOS/Controllers/Core/RoleController.cs

@@ -52,12 +52,43 @@ namespace TEAMModelOS.Controllers.Core
                         List<RoleIdentityClaim> identityClaims = await _roleSeservice.FindListByDict<RoleIdentityClaim>(new Dictionary<string, object> {
                             {"PartitionKey",request.lang },{"RoleCode",role.RowKey },{"RoleLevel",role.Level }
                         });
-                        
                         roles.Add(role);
                     }
                 }
             }
             return builder.Data(roles).build();
         }
+
+        [HttpPost("GetLoginClaim")]
+        public async Task<BaseJosnRPCResponse> GetLoginClaim(JosnRPCRequest<Dictionary<string, object>> request)
+        {
+            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+            List<string> rolecodes = GetLoginUser(JwtClaimTypes.Role);
+            List<string> Id = GetLoginUser(JwtClaimTypes.Id);
+            List<Role> roles = new List<Role>();
+            List<Dictionary<string, object>> roleClaims = new List<Dictionary<string, object>>();
+            if (rolecodes.IsNotEmpty())
+            {
+                foreach (string code in rolecodes)
+                {
+                    List<RoleIdentityClaimValue> claimValues=  await _roleSeservice.FindListByDict<RoleIdentityClaimValue>(
+                    new Dictionary<string, object> { { "RoleCode", code },{ "TeamModelId", Id[0]} });
+                    List<string> keys = new List<string>();
+                    List<Dictionary<string, object>> claims = new List<Dictionary<string, object>>();
+                    foreach (IGrouping<string, RoleIdentityClaimValue> group in claimValues.GroupBy(c =>c.GroupKey))
+                    {
+                        Dictionary<string, object> claim = new Dictionary<string, object>();
+                        claim.Add("claim", claimValues.Where(x => x.GroupKey.Equals(group.Key)).ToList());
+                        claim.Add("group", group.Key);
+                        claims.Add(claim);
+                    }
+                    Dictionary<string, object> roleClaim = new Dictionary<string, object>();
+                    roleClaim.Add("roleClaim", claims);
+                    roleClaim.Add("role",  await _roleSeservice.FindByRowKey<Role>(code));
+                    roleClaims.Add(roleClaim);
+                }
+            }
+            return builder.Data(roleClaims).build();
+        }
     }
 }

+ 50 - 25
TEAMModelOS/JsonFile/Core/RoleClaim.json

@@ -2,126 +2,151 @@
   {
     "RoleLevelName": "校级",
     "RoleLevel": 10801,
-    "ClaimType": "TeamModelId"
+    "ClaimType": "TeamModelId",
+    "Order": 3
   },
   {
     "RoleLevelName": "校级",
     "RoleLevel": 10801,
-    "ClaimType": "RoleCode"
+    "ClaimType": "RoleCode",
+    "Order": 2
   },
   {
     "RoleLevelName": "校级",
     "RoleLevel": 10801,
-    "ClaimType": "SchoolCode"
+    "ClaimType": "SchoolCode",
+    "Order": 1
   },
   {
     "RoleLevelName": "校区",
     "RoleLevel": 10901,
-    "ClaimType": "TeamModelId"
+    "ClaimType": "TeamModelId",
+    "Order": 4
   },
   {
     "RoleLevelName": "校区",
     "RoleLevel": 10901,
-    "ClaimType": "RoleCode"
+    "ClaimType": "RoleCode",
+    "Order": 2
   },
   {
     "RoleLevelName": "校区",
     "RoleLevel": 10901,
-    "ClaimType": "SchoolCode"
+    "ClaimType": "SchoolCode",
+    "Order": 1
   },
   {
     "RoleLevelName": "校区",
     "RoleLevel": 10901,
-    "ClaimType": "CampusCode"
+    "ClaimType": "CampusCode",
+    "Order": 3
   },
   {
     "RoleLevelName": "学段",
     "RoleLevel": 11001,
-    "ClaimType": "TeamModelId"
+    "ClaimType": "TeamModelId",
+    "Order": 5
   },
   {
     "RoleLevelName": "学段",
     "RoleLevel": 11001,
-    "ClaimType": "RoleCode"
+    "ClaimType": "RoleCode",
+    "Order": 4
   },
   {
     "RoleLevelName": "学段",
     "RoleLevel": 11001,
-    "ClaimType": "SchoolCode"
+    "ClaimType": "SchoolCode",
+    "Order": 1
   },
   {
     "RoleLevelName": "学段",
     "RoleLevel": 11001,
-    "ClaimType": "CampusCode"
+    "ClaimType": "CampusCode",
+    "Order": 2
   },
   {
     "RoleLevelName": "学段",
     "RoleLevel": 11001,
-    "ClaimType": "PeriodCode"
+    "ClaimType": "PeriodCode",
+    "Order": 3
   },
   {
     "RoleLevelName": "年级",
     "RoleLevel": 11101,
-    "ClaimType": "TeamModelId"
+    "ClaimType": "TeamModelId",
+    "Order": 6
   },
   {
     "RoleLevelName": "年级",
     "RoleLevel": 11101,
-    "ClaimType": "RoleCode"
+    "ClaimType": "RoleCode",
+    "Order": 5
   },
   {
     "RoleLevelName": "年级",
     "RoleLevel": 11101,
-    "ClaimType": "SchoolCode"
+    "ClaimType": "SchoolCode",
+    "Order": 1
   },
   {
     "RoleLevelName": "年级",
     "RoleLevel": 11101,
-    "ClaimType": "CampusCode"
+    "ClaimType": "CampusCode",
+    "Order": 2
   },
   {
     "RoleLevelName": "年级",
     "RoleLevel": 11101,
-    "ClaimType": "PeriodCode"
+    "ClaimType": "PeriodCode",
+    "Order": 3
   },
   {
     "RoleLevelName": "年级",
     "RoleLevel": 11101,
-    "ClaimType": "GradeCode"
+    "ClaimType": "GradeCode",
+    "Order": 4
   },
   {
     "RoleLevelName": "班级",
     "RoleLevel": 11201,
-    "ClaimType": "TeamModelId"
+    "ClaimType": "TeamModelId",
+    "Order": 7
   },
   {
     "RoleLevelName": "班级",
     "RoleLevel": 11201,
-    "ClaimType": "RoleCode"
+    "ClaimType": "RoleCode",
+    "Order": 6
   },
   {
     "RoleLevelName": "班级",
     "RoleLevel": 11201,
-    "ClaimType": "SchoolCode"
+    "ClaimType": "SchoolCode",
+    "Order": 1
   },
   {
     "RoleLevelName": "班级",
     "RoleLevel": 11201,
-    "ClaimType": "CampusCode"
+    "ClaimType": "CampusCode",
+    "Order": 2
   },
   {
     "RoleLevelName": "班级",
     "RoleLevel": 11201,
-    "ClaimType": "PeriodCode"
+    "ClaimType": "PeriodCode",
+    "Order": 3
   },
   {
     "RoleLevelName": "班级",
     "RoleLevel": 11201,
-    "ClaimType": "GradeCode"
+    "ClaimType": "GradeCode",
+    "Order": 4
   },
   {
     "RoleLevelName": "班级",
     "RoleLevel": 11201,
-    "ClaimType": "ClassCode"
+    "ClaimType": "ClassCode",
+    "Order": 5
   }
 ]

+ 1 - 0
TEAMModelOS/SeedData/RoleClaim.cs

@@ -12,5 +12,6 @@ namespace TEAMModelOS.SeedData
         public string ClaimType { get; set; }
         public int RoleLevel { get; set; }
         public string RoleLevelName { get; set; }
+        public int Order { get; set; }
     }
 }

+ 10 - 15
TEAMModelOS/SeedData/SeedDataService.cs

@@ -29,7 +29,7 @@ namespace TEAMModelOS.SeedData
 
         public void SeedData()
         {
-            //SeedRootAdmin();
+            SeedRootAdmin();
             SeedRole();
             SeedSchool();
             SeedTextBook();
@@ -43,6 +43,9 @@ namespace TEAMModelOS.SeedData
             //SeedIdentityClaim();
         }
         public async void SeedIdentityClaim() {
+            List<RoleUser> deleteSchoolAdmin = await FindListByKey<RoleUser>("RoleCode", "SchoolAdmin");
+            await DeleteAll<RoleUser>(deleteSchoolAdmin);
+
             List<RootUser> admins = BaseConfigModel.Configuration.GetSection("RoleUser:Admin").Get<List<RootUser>>();
             List<string> roles = new List<string> { "SchoolAdmin" };
             int size = await DeleteAll<RoleIdentityClaimValue>(new Dictionary<string, object> { { "RoleCode", "SchoolAdmin" } });
@@ -91,7 +94,7 @@ namespace TEAMModelOS.SeedData
                     }
                 }
             }
-           await SaveOrUpdateAll<RoleIdentityClaimValue>(claimValues);
+            await SaveOrUpdateAll<RoleIdentityClaimValue>(claimValues);
         }
         public async void SeedSubject() {
             List<Subject> subjects = new List<Subject> {
@@ -329,6 +332,7 @@ namespace TEAMModelOS.SeedData
                             RoleName = role.Name,
                             RoleLevel = roleClaim.RoleLevel,
                             RoleLevelName= roleClaim.RoleLevelName,
+                            Order=roleClaim.Order,
                             ClaimType=roleClaim.ClaimType
                         };
                         roleIdentityClaims.Add(identityClaim);
@@ -342,15 +346,6 @@ namespace TEAMModelOS.SeedData
         {
             List<RootUser> roots = BaseConfigModel.Configuration.GetSection("RoleUser:Root").Get<List<RootUser>>();
             List<RootUser> admins = BaseConfigModel.Configuration.GetSection("RoleUser:Admin").Get<List<RootUser>>();
-
-            List<RoleUser> deleteUsers = await FindListByKey<RoleUser>("RoleCode", "Root");
-            await DeleteAll<RoleUser>(deleteUsers);
-            List<RoleUser> deleteAdmin = await FindListByKey<RoleUser>("RoleCode", "Admin");
-            await DeleteAll<RoleUser>(deleteAdmin);
-            List<RoleUser> deleteTeacher = await FindListByKey<RoleUser>("RoleCode", "Teacher");
-            await DeleteAll<RoleUser>(deleteTeacher);
-            List<RoleUser> deleteSchoolAdmin = await FindListByKey<RoleUser>("RoleCode", "SchoolAdmin");
-            await DeleteAll<RoleUser>(deleteSchoolAdmin);
             //List<RoleUser>  usersRoot = MessagePackHelper.JsonToObject<List<RoleUser>>(roots.ToJson());
             //usersRoot.ForEach(m => {
             //    m.RowKey = Guid.NewGuid().ToString();
@@ -369,17 +364,17 @@ namespace TEAMModelOS.SeedData
             //await SaveOrUpdateAll<RoleUser>(usersAdmin);
             List<RoleUser> usersTeacher = MessagePackHelper.JsonToObject<List<RoleUser>>(admins.ToJson());
             usersTeacher.ForEach(m => {
-                m.RowKey = Guid.NewGuid().ToString();
+                m.RowKey = m.AreaCode+m.Phone+ "Teacher";
                 m.PartitionKey = "Teacher";
                 m.RoleCode = "Teacher";
                 m.RoleName = "任课教师";
             });
             await SaveOrUpdateAll<RoleUser>(usersTeacher);
-            List<RoleUser> usersSchoolAdmin = MessagePackHelper.JsonToObject<List<RoleUser>>(admins.ToJson());
+            List<RoleUser> usersSchoolAdmin = MessagePackHelper.JsonToObject<List<RoleUser>>(roots.ToJson());
             usersSchoolAdmin.ForEach(m => {
-                m.RowKey = Guid.NewGuid().ToString();
+                m.RowKey = m.AreaCode + m.Phone + "SchoolAdmin";
                 m.PartitionKey = "SchoolAdmin";
-                m.RoleCode = "SchoolAdmin"; 
+                m.RoleCode = "SchoolAdmin";
                 m.RoleName = "学校管理员";
             });
             await SaveOrUpdateAll<RoleUser>(usersSchoolAdmin);