瀏覽代碼

优化添加/删除学校顾问接口,优化更行钉钉和提莫BI权限

Li 3 年之前
父節點
當前提交
3ffe5399a3

+ 0 - 82
TEAMModelBI/Controllers/BISchool/BatchSchoolController.cs

@@ -119,88 +119,6 @@ namespace TEAMModelBI.Controllers.BISchool
             }
         }
 
-        /// <summary>
-        /// 依据传输的数据更新和删除权限
-        /// </summary>
-        /// <param name="jsonElement"></param>
-        /// <returns></returns>
-        [ProducesDefaultResponseType]
-        [AuthToken(Roles = "assist")]
-        [HttpPost("upd-permissions")]
-        public async Task<IActionResult> SetSchoolPermissions(JsonElement jsonElement)
-        {
-            try
-            {
-                if (!jsonElement.TryGetProperty("ids", out JsonElement ids)) return Ok(new { state = 1, message = "ids参数错误!" });
-                if (!jsonElement.TryGetProperty("school_code", out JsonElement school_code)) return Ok(new { state = 1, message = "school_code参数错误!" });
-                if (!jsonElement.TryGetProperty("mode", out JsonElement mode)) return Ok(new { state = 1, message = "mode参数错误!" });     //del删除权限  up更新权限
-                if (!jsonElement.TryGetProperty("paramPower", out JsonElement paramPower)) return Ok(new { state = 1, message = "paramPower参数错误!" });
-                
-                var (_tmdId, _tmdName, pic, did, dname, dpic) = HttpJwtAnalysis.JwtXAuthBI(HttpContext.GetXAuth("AuthToken"), _option);
-                List<Exist> havepower = new(); //已存在的
-                var client = _azureCosmos.GetCosmosClient();
-
-                StringBuilder stringBuilder = new StringBuilder($"{_tmdName}【{_tmdId}】账户操作:");
-                //更新权限
-                foreach (var id in ids.EnumerateArray())
-                {
-                    SchoolTeacher st = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<SchoolTeacher>($"{id}", new PartitionKey($"Teacher-{school_code}"));
-
-                    if (mode.GetString().Equals("del"))
-                    {
-                        stringBuilder.Append($"{st.name}【{st.id}】的权限,删除权限有:");
-                        foreach (var pm in paramPower.EnumerateArray())
-                        {
-                            var bools = st.permissions.Find(x => x.Equals($"{pm}"));
-                            if (!string.IsNullOrEmpty($"{bools}"))
-                            {
-                                st.permissions.RemoveAll(x => x.Equals($"{bools}"));
-                                stringBuilder.Append(pm);
-                            }
-                        }
-                    }
-                    else if (mode.GetString().Equals("up"))
-                    {
-                        stringBuilder.Append($"{st.name}【{st.id}】的权限,更新权限有:");
-                        var stes = st.roles.Find(x => x.Equals("assistant"));
-                        if (string.IsNullOrEmpty($"{stes}"))
-                        {
-                            st.roles.Add("assistant");
-                        }
-                        foreach (var pm in paramPower.EnumerateArray())
-                        {
-                            var bools = st.permissions.Find(x => x.Equals($"{pm}"));
-                            if (!string.IsNullOrEmpty($"{bools}"))
-                            {
-                                havepower.Add(new Exist { ID = id.GetString(), name = bools });
-                            }
-                            else
-                            {
-                                st.permissions.Add(pm.GetString());
-                                stringBuilder.Append(pm);
-                            }
-                        }
-                        if (havepower.Count > 0)
-                        {
-                            stringBuilder.Append($";已存在的权限:{havepower}");
-                        }
-                    }
-                    else { return Ok(new { state = 1, message = "mode参数错误!" }); }
-                    await client.GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync<SchoolTeacher>(st, id.GetString(), new PartitionKey($"Teacher-{school_code}"));
-                }
-
-                //保存操作记录
-                await _azureStorage.SaveBILog("school-update", stringBuilder?.ToString(), _dingDing, httpContext: HttpContext);
-
-                return Ok(new { state = 200, havepower });
-            }
-            catch (Exception ex)
-            {
-                await _dingDing.SendBotMsg($"BI,{_option.Location}, /batchschool/upd-permissions \n{ex.Message}{ex.StackTrace}", GroupNames.成都开发測試群組);
-                return BadRequest();
-            }
-        }
-
         /// <summary>
         /// 批量创校
         /// </summary>

+ 2 - 10
TEAMModelBI/Controllers/BISchool/SchoolController.cs

@@ -485,7 +485,7 @@ namespace TEAMModelBI.Controllers.BISchool
             {
                 if (!jsonElement.TryGetProperty("partitionKey", out JsonElement parKey)) return BadRequest();
                 jsonElement.TryGetProperty("userId", out JsonElement userId);
-                jsonElement.TryGetProperty("tmdId", out JsonElement tmdId);
+                if (!jsonElement.TryGetProperty("tmdId", out JsonElement tmdId)) return BadRequest();
                 if (!jsonElement.TryGetProperty("schoolIds", out JsonElement jsSchoolIds)) return BadRequest();
                 if (!jsonElement.TryGetProperty("busy", out JsonElement busy)) return BadRequest();
 
@@ -494,19 +494,11 @@ namespace TEAMModelBI.Controllers.BISchool
                 var cosmosClient = _azureCosmos.GetCosmosClient();
                 string divide = _option.Location;
 
-                Dictionary<string, object> dic = new() { { "PartitionKey", $"{parKey}" } };
+                Dictionary<string, object> dic = new() { { "PartitionKey", $"{parKey}" },{ "tmdId", $"{tmdId}" } };
                 if (!string.IsNullOrEmpty($"{userId}"))
                 {
                     dic.Add("userId", $"{userId}");
                 }
-                if (!string.IsNullOrEmpty($"{tmdId}"))
-                {
-                    dic.Add("tmdId", $"{tmdId}");
-                }
-                if (string.IsNullOrEmpty($"{userId}") && string.IsNullOrEmpty($"{tmdId}"))
-                {
-                    return Ok(new { state = 400, msg = "钉钉ID和醍摩豆Id都为空!请检查账户信息" });
-                }
                 Dictionary<string, List<string>> noSchools = new();
                 List<DingDingUserInfo> ddUserInfoList = await table.FindListByDict<DingDingUserInfo>(dic);
                 List<DingDingUserInfo> updUsers = new();

+ 17 - 15
TEAMModelBI/Controllers/DingDingStruc/TableDingDingInfoController.cs

@@ -453,38 +453,40 @@ namespace TEAMModelBI.Controllers.DingDingStruc
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [AuthToken(Roles = "admin")]
-        [HttpPost("set-permissions")]
+        [HttpPost("set-rolesper")]
         public async Task<IActionResult> SetPermissions(JsonElement jsonElement)
         {
             try
             {
                 if (!jsonElement.TryGetProperty("partitionKey", out JsonElement partitionKey)) return BadRequest();
-                if (!jsonElement.TryGetProperty("rowKey", out JsonElement userId)) return BadRequest();
+                jsonElement.TryGetProperty("userId", out JsonElement userId);
+                if (!jsonElement.TryGetProperty("tmdId", out JsonElement tmdId)) return BadRequest();
                 if (!jsonElement.TryGetProperty("permissions", out JsonElement _permissions)) return BadRequest();
+                if (!jsonElement.TryGetProperty("roles", out JsonElement _roles)) return BadRequest();
                 var (_tmdId, _tmdName, pic, did, dname, dpic) = HttpJwtAnalysis.JwtXAuthBI(HttpContext.GetXAuth("AuthToken"), _option);
 
                 var table = _azureStorage.GetCloudTableClient().GetTableReference("BIDDUserInfo");
-                StringBuilder stringBuilder = new($"{_tmdName}【{_tmdId}】醍摩豆账号");
                 List<DingDingUserInfo> ddUserInfo = new();
-                var tempUser = await table.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "PartitionKey", $"{partitionKey}" }, { "RowKey", $"{userId}" } });
                 List<string> listper = _permissions.ToObject<List<string>>();
+                List<string> listroles = _roles.ToObject<List<string>>();
                 List<string> roles = new();//角色列表
-                List<string> permissions = new ();//权限列表
+                List<string> permissions = new();//权限列表
+                StringBuilder stringBuilder = new($"{_tmdName}【{_tmdId}】醍摩豆账号");
+                Dictionary<string, object> dic = new() { { "PartitionKey", $"{partitionKey}" }, { "tmdId", $"{tmdId}" } };
+                if (!string.IsNullOrEmpty($"{userId}"))
+                {
+                    dic.Add("userId", $"{userId}");
+                }
+
+                var tempUser = await table.FindListByDict<DingDingUserInfo>(dic);
 
                 foreach (var item in tempUser)
                 {
                     stringBuilder.Append($"操作醍摩豆账户{item.tmdName}【{item.tmdId}】修改权限:{string.Join("|", listper.ToArray())}");
-                    if (string.IsNullOrEmpty($"{item.roles}"))
-                    {
-                        item.roles = "assist";
-                    }
+                   
+                    item.roles = listroles.Count > 0 ? string.Join(",", listroles) : "assist";
+                    item.permissions = string.Join(",", listper);
 
-                    string tempPermissions = "";
-                    foreach (var itemPer in listper)
-                    {
-                        tempPermissions += !string.IsNullOrEmpty($"{tempPermissions}") ? $",{itemPer}" : $"{itemPer}";
-                    }
-                    item.permissions = tempPermissions;
                     ddUserInfo.Add(item);
 
                     roles = !string.IsNullOrEmpty($"{item.roles}") ? new List<string>(item.roles.Split(",")) : new List<string>();