CrazyIter_Bin 2 年之前
父節點
當前提交
fb03e91443

+ 1 - 1
TEAMModelOS.SDK/DI/CoreAPI/CoreAPIHttpService.cs

@@ -890,7 +890,7 @@ lang 语系"zh-cn" ,zh-tw", "en-us"
                 if (!string.IsNullOrEmpty(content))
                 if (!string.IsNullOrEmpty(content))
                 {
                 {
                     CoreUserInfo coreUserInfo = content.ToObject<CoreUserInfo>();
                     CoreUserInfo coreUserInfo = content.ToObject<CoreUserInfo>();
-                    if (coreUserInfo != null)
+                    if (coreUserInfo != null  && !string.IsNullOrWhiteSpace(coreUserInfo.id))
                     {
                     {
                         bool isActivate = !string.IsNullOrWhiteSpace(coreUserInfo.password) || !string.IsNullOrWhiteSpace(coreUserInfo.passwordOld);
                         bool isActivate = !string.IsNullOrWhiteSpace(coreUserInfo.password) || !string.IsNullOrWhiteSpace(coreUserInfo.passwordOld);
                         CoreUser coreUser = new CoreUser
                         CoreUser coreUser = new CoreUser

+ 95 - 15
TEAMModelOS/Controllers/Both/CourseBaseController.cs

@@ -76,11 +76,11 @@ namespace TEAMModelOS.Controllers.Both
                 {
                 {
                     case bool when $"{grant_type}".Equals("list", StringComparison.OrdinalIgnoreCase):
                     case bool when $"{grant_type}".Equals("list", StringComparison.OrdinalIgnoreCase):
                         {
                         {
-                            if (  !request.TryGetProperty("scope", out JsonElement _scope) || !request.TryGetProperty("code", out JsonElement _code))
+                            if (  !request.TryGetProperty("code", out JsonElement _code))
                             {
                             {
                                 return BadRequest();
                                 return BadRequest();
                             }
                             }
-                            string tbname = $"{_scope}".Equals("school", StringComparison.OrdinalIgnoreCase)?Constant.School:Constant.Teacher;
+                            string tbname = $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase)?Constant.School:Constant.Teacher;
                             string code = $"CourseBase-{_code}";
                             string code = $"CourseBase-{_code}";
                             string baseSql = $"select value c from c ";
                             string baseSql = $"select value c from c ";
                             List<CourseBase> courseBases = new List<CourseBase>();
                             List<CourseBase> courseBases = new List<CourseBase>();
@@ -93,11 +93,11 @@ namespace TEAMModelOS.Controllers.Both
                         }
                         }
                     case bool when $"{grant_type}".Equals("delete", StringComparison.OrdinalIgnoreCase):
                     case bool when $"{grant_type}".Equals("delete", StringComparison.OrdinalIgnoreCase):
                         {
                         {
-                            if (!request.TryGetProperty("id", out JsonElement _id) || !request.TryGetProperty("scope", out JsonElement _scope) || !request.TryGetProperty("code", out JsonElement _code))
+                            if (!request.TryGetProperty("id", out JsonElement _id)  || !request.TryGetProperty("code", out JsonElement _code))
                             {
                             {
                                 return BadRequest();
                                 return BadRequest();
                             }
                             }
-                            string tbname = $"{_scope}".Equals("school", StringComparison.OrdinalIgnoreCase) ? Constant.School : Constant.Teacher;
+                            string tbname = $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase) ? Constant.School : Constant.Teacher;
                             Azure.Response response= await client.GetContainer(Constant.TEAMModelOS, tbname).DeleteItemStreamAsync(_id.ToString(), new PartitionKey($"CourseBase-{_code}"));
                             Azure.Response response= await client.GetContainer(Constant.TEAMModelOS, tbname).DeleteItemStreamAsync(_id.ToString(), new PartitionKey($"CourseBase-{_code}"));
                             //需要联动删除排课
                             //需要联动删除排课
                             string taskCode = $"CourseTask-{_code}";
                             string taskCode = $"CourseTask-{_code}";
@@ -114,6 +114,63 @@ namespace TEAMModelOS.Controllers.Both
                             }
                             }
                             return  Ok(new {code= response .Status});
                             return  Ok(new {code= response .Status});
                         }
                         }
+                    case bool when $"{grant_type}".Equals("import-base", StringComparison.OrdinalIgnoreCase) && $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase):
+                        {
+                            if (!request.TryGetProperty("courses", out JsonElement _courses))
+                            {
+                                return BadRequest();
+                            }
+                            if (!request.TryGetProperty("periodId", out JsonElement _periodId)) return BadRequest();
+                            List<CourseBase> courseBases = _courses.ToObject<List<CourseBase>>();
+                            //1.检查导入的课程名称是否有效
+                            StringBuilder sqlName = new StringBuilder(" select  value c from c ");
+                            sqlName.Append($" where c.name in {string.Join(",",courseBases.Select(z=>$"'{z.name}'"))}    and  c.period.id='{_periodId}' ");
+                            string tbname =  Constant.School;
+                            List<CourseBase> courseBasesDB = new List<CourseBase>();
+                            await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, tbname)
+                            .GetItemQueryIterator<CourseBase>(queryText: sqlName.ToString(), requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey($"CourseBase-{school}") }))
+                            {
+                                courseBasesDB.Add(item);
+                            }
+                            School schoolBase = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemAsync<School>(school, new PartitionKey("Base"));
+                            var period = schoolBase.period.Find(x => x.id.Equals($"{_periodId}"));
+                            if (period != null) {
+                                foreach (var item in courseBases)
+                                {
+                                    item.pk = "CourseBase";
+                                    if (string.IsNullOrWhiteSpace(item.id))
+                                    {
+                                        item.id = Guid.NewGuid().ToString();
+                                    }
+                                    item.scope = "school";
+                                    item.school = school;
+                                    item.creatorId = tmdid;
+                                    item.code = $"CourseBase-{school}";
+                                    item.period = new IdName { id = period.id, name = period.name };
+                                    if (!string.IsNullOrWhiteSpace(item.subject?.id))
+                                    {
+                                        var subject = period.subjects.Find(x => x.id.Equals(item.subject.id));
+                                        if (subject != null)
+                                        {
+                                            item.subject.name = subject.name;
+                                        }
+                                    }
+                                    else { 
+                                    }
+                                    var dbcoursebase = courseBasesDB.Find(x => x.name.Equals(item.name));
+                                    if (dbcoursebase != null)
+                                    {
+                                        item.id = dbcoursebase.id;
+                                        item.major = item.major == null ? dbcoursebase.major : item.major;
+                                        item.desc = string.IsNullOrWhiteSpace(item.desc) ? dbcoursebase.desc : item.desc;
+                                        item.color = string.IsNullOrWhiteSpace(item.color) ? dbcoursebase.color : item.color;
+                                        item.no = string.IsNullOrWhiteSpace(item.no) ? dbcoursebase.no : item.no;
+                                        item.grades = !item.grades.Any() ? dbcoursebase.grades : item.grades;
+                                    }
+                                }
+                            }
+                            return Ok(new { course = courseBases });
+                        }
                     case bool when $"{grant_type}".Equals("upsert", StringComparison.OrdinalIgnoreCase) :
                     case bool when $"{grant_type}".Equals("upsert", StringComparison.OrdinalIgnoreCase) :
                         {
                         {
                             if (!request.TryGetProperty("course", out JsonElement _course))
                             if (!request.TryGetProperty("course", out JsonElement _course))
@@ -127,30 +184,53 @@ namespace TEAMModelOS.Controllers.Both
                                 courseBase.id = Guid.NewGuid().ToString();
                                 courseBase.id = Guid.NewGuid().ToString();
                             }
                             }
                             string tbname = $"{courseBase.scope}".Equals("school", StringComparison.OrdinalIgnoreCase) ? Constant.School : Constant.Teacher;
                             string tbname = $"{courseBase.scope}".Equals("school", StringComparison.OrdinalIgnoreCase) ? Constant.School : Constant.Teacher;
+                            //1.检查导入的课程名称是否有效
+                            StringBuilder sqlName = new StringBuilder(" select  value c from c ");
+                            sqlName.Append($" where c.name ='{courseBase.name}'    ");
                             if (courseBase.scope.Equals("school", StringComparison.OrdinalIgnoreCase))
                             if (courseBase.scope.Equals("school", StringComparison.OrdinalIgnoreCase))
                             {
                             {
                                 courseBase.school = school;
                                 courseBase.school = school;
                                 courseBase.creatorId = tmdid;
                                 courseBase.creatorId = tmdid;
                                 courseBase.code = $"CourseBase-{school}";
                                 courseBase.code = $"CourseBase-{school}";
+                                if (string.IsNullOrWhiteSpace(courseBase.subject?.id)  || !courseBase.grades.Any()) {
+                                    return BadRequest();
+                                }
+                                if (string.IsNullOrWhiteSpace(courseBase.period?.id))
+                                {
+                                    return BadRequest();
+                                }
+                                else {
+                                    sqlName.Append($" and  c.period.id='{courseBase.period.id}' ");
+                                }
                             }
                             }
                             else
                             else
                             {
                             {
                                 courseBase.creatorId = tmdid;
                                 courseBase.creatorId = tmdid;
                                 courseBase.code = $"CourseBase-{tmdid}";
                                 courseBase.code = $"CourseBase-{tmdid}";
                             }
                             }
+                            List<CourseBase> courseBases = new List<CourseBase>();
+                            await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, tbname)
+                            .GetItemQueryIterator<CourseBase>(queryText: sqlName.ToString(), requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey(courseBase.code) }))
+                            {
+                                if (courseBase.scope.Equals(item.scope))
+                                {
+                                    //不是同一条数据,但是名字相同,则判定名字重复。
+                                    if (!item.id.Equals(courseBase.id) && item.name.Equals(courseBase.name))
+                                    {
+                                        return Ok(new { code = 409, course = courseBase });
+                                    }
+                                }
+                            }
                             await client.GetContainer(Constant.TEAMModelOS, tbname).UpsertItemAsync(courseBase, new PartitionKey(courseBase.code));
                             await client.GetContainer(Constant.TEAMModelOS, tbname).UpsertItemAsync(courseBase, new PartitionKey(courseBase.code));
-                            return Ok(new { course = courseBase });
+                            return Ok(new {code =200, course = courseBase });
                         }
                         }
                     case bool when $"{grant_type}".Equals("read-task", StringComparison.OrdinalIgnoreCase):
                     case bool when $"{grant_type}".Equals("read-task", StringComparison.OrdinalIgnoreCase):
                         {
                         {
-                            if (!request.TryGetProperty("scope", out JsonElement _scope))
-                            {
-                                return BadRequest();
-                            }
+                           
                             if (!request.TryGetProperty("courseId", out JsonElement _courseId)) return BadRequest();
                             if (!request.TryGetProperty("courseId", out JsonElement _courseId)) return BadRequest();
 
 
-                            string tbname = $"{_scope}".Equals("school", StringComparison.OrdinalIgnoreCase) ? Constant.School : Constant.Teacher;
-                            if (_scope.ToString().Equals("school", StringComparison.OrdinalIgnoreCase))
+                            string tbname = $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase) ? Constant.School : Constant.Teacher;
+                            if (scope.ToString().Equals("school", StringComparison.OrdinalIgnoreCase))
                             {
                             {
 
 
                                 if (!request.TryGetProperty("periodId", out JsonElement _periodId)) return BadRequest();
                                 if (!request.TryGetProperty("periodId", out JsonElement _periodId)) return BadRequest();
@@ -226,13 +306,13 @@ namespace TEAMModelOS.Controllers.Both
                                     || $"{grant_type}".Equals("change-scheduleTask", StringComparison.OrdinalIgnoreCase) 
                                     || $"{grant_type}".Equals("change-scheduleTask", StringComparison.OrdinalIgnoreCase) 
                                     || $"{grant_type}".Equals("delete-scheduleTask", StringComparison.OrdinalIgnoreCase):
                                     || $"{grant_type}".Equals("delete-scheduleTask", StringComparison.OrdinalIgnoreCase):
                         {
                         {
-                            if ( !request.TryGetProperty("scope", out JsonElement _scope)|| !request.TryGetProperty("datas", out JsonElement _datas))
+                            if ( !request.TryGetProperty("datas", out JsonElement _datas))
                             {
                             {
                                 return BadRequest();
                                 return BadRequest();
                             }
                             }
-                            string tbname = $"{_scope}".Equals("school", StringComparison.OrdinalIgnoreCase) ? Constant.School : Constant.Teacher;
+                            string tbname = $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase) ? Constant.School : Constant.Teacher;
                             List<CourseTaskChanged> datas = _datas.ToObject<List<CourseTaskChanged>>();
                             List<CourseTaskChanged> datas = _datas.ToObject<List<CourseTaskChanged>>();
-                            if (_scope.ToString().Equals("school", StringComparison.OrdinalIgnoreCase))
+                            if (scope.ToString().Equals("school", StringComparison.OrdinalIgnoreCase))
                             {
                             {
                                 if (!request.TryGetProperty("periodId", out JsonElement _periodId)) return BadRequest();
                                 if (!request.TryGetProperty("periodId", out JsonElement _periodId)) return BadRequest();
                                 //获取相关的名单
                                 //获取相关的名单
@@ -487,7 +567,7 @@ namespace TEAMModelOS.Controllers.Both
                             }
                             }
                         }
                         }
                     //按照模板导入进行数据转换并且进行检查
                     //按照模板导入进行数据转换并且进行检查
-                    case bool when ($"{grant_type}".Equals("import-check") && $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase)):
+                    case bool when $"{grant_type}".Equals("import-check") && $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase):
                         {
                         {
                             //检查完成,生成一个检查通过的token+检查结果(pass,warn,error), 在正式导入的时候,只需要检查token是否存在则进行数据保存。 以确保每次被导入的数据都是检查通过的。
                             //检查完成,生成一个检查通过的token+检查结果(pass,warn,error), 在正式导入的时候,只需要检查token是否存在则进行数据保存。 以确保每次被导入的数据都是检查通过的。
                             //并标记相关检查状态对于的具体数值。
                             //并标记相关检查状态对于的具体数值。

+ 21 - 7
TEAMModelOS/Controllers/Third/LePei/LePeiController.cs

@@ -151,7 +151,7 @@ namespace TEAMModelOS.Controllers.Third.LePei
                             userId = encryptData.userId,
                             userId = encryptData.userId,
                         };
                         };
                     }
                     }
-                    List<LPSchool> schools = await table.FindListByDict<LPSchool>(new Dictionary<string, object>() { { Constant.PartitionKey, $"LPSchool" }, { Constant.RowKey, encryptData.schoolId }, { "path",encryptData. path } });
+                    List<LPSchool> schools = await table.FindListByDict<LPSchool>(new Dictionary<string, object>() { { Constant.PartitionKey, $"LPSchool" }, { Constant.RowKey,$"{encryptData.schoolId}-{encryptData.appId}" }, { "path",encryptData. path } });
                     if (schools.IsNotEmpty()) 
                     if (schools.IsNotEmpty()) 
                     {
                     {
                         teacherLP.schoolCode = schools[0].schoolCode;
                         teacherLP.schoolCode = schools[0].schoolCode;
@@ -225,7 +225,7 @@ namespace TEAMModelOS.Controllers.Third.LePei
             }
             }
             var rurl = new StringBuilder($"https://{HostName}/lepei-sso");
             var rurl = new StringBuilder($"https://{HostName}/lepei-sso");
             var table = _azureStorage.GetCloudTableClient().GetTableReference("ScYxpt");
             var table = _azureStorage.GetCloudTableClient().GetTableReference("ScYxpt");
-            List<LPConfig> configs = await table.FindListByDict<LPConfig>(new Dictionary<string, object>() { { Constant.PartitionKey, $"LPConfig-{sso.appId}" }, { Constant.RowKey,path } });
+            List<LPSchool> configs = await table.FindListByDict<LPSchool>(new Dictionary<string, object>() { { Constant.PartitionKey, "LPSchool" }, { Constant.RowKey,$"{sso.schoolId}-{sso.appId}"}, { "path",path } });
             LPTeacher teacher = null;
             LPTeacher teacher = null;
             int status = 4;//1项目未配置,2 账号未未关联,3账号已关联
             int status = 4;//1项目未配置,2 账号未未关联,3账号已关联
             string msg = "账号未关联";
             string msg = "账号未关联";
@@ -234,7 +234,7 @@ namespace TEAMModelOS.Controllers.Third.LePei
             if (configs.Any())
             if (configs.Any())
             {
             {
 
 
-                LPConfig config = configs[0];
+                LPSchool config = configs[0];
                 string data = AESHelper.Decryptor(sso.encryptData, config.secretKey, config.secretKey.Substring(0, 16));
                 string data = AESHelper.Decryptor(sso.encryptData, config.secretKey, config.secretKey.Substring(0, 16));
                 encryptData = data.ToObject<LPSSOEncryptData>();
                 encryptData = data.ToObject<LPSSOEncryptData>();
                 encryptData.path = path;
                 encryptData.path = path;
@@ -269,7 +269,7 @@ namespace TEAMModelOS.Controllers.Third.LePei
                 {
                 {
                     if (!string.IsNullOrWhiteSpace(encryptData.mobile))
                     if (!string.IsNullOrWhiteSpace(encryptData.mobile))
                     {
                     {
-                        List<LPSchool> schools = await table.FindListByDict<LPSchool>(new Dictionary<string, object>() { { Constant.PartitionKey, $"LPSchool" }, { Constant.RowKey, encryptData.schoolId }, { "path", path } });
+                        List<LPSchool> schools = await table.FindListByDict<LPSchool>(new Dictionary<string, object>() { { Constant.PartitionKey, $"LPSchool" }, { Constant.RowKey, $"{sso.schoolId}-{sso.appId}" }, { "path", path } });
                         if (schools.IsNotEmpty())
                         if (schools.IsNotEmpty())
                         {
                         {
                             teacher = new LPTeacher()
                             teacher = new LPTeacher()
@@ -362,7 +362,7 @@ namespace TEAMModelOS.Controllers.Third.LePei
             if (status == 200)
             if (status == 200)
             {
             {
                 rurl.Append($"?status={status}&msg={HttpUtility.UrlEncode(msg, Encoding.UTF8)}&id_token={implicit_token?.id_token}&access_token={implicit_token?.access_token}&expires_in={HttpUtility.UrlEncode(implicit_token?.expires_in)}&token_type={HttpUtility.UrlEncode(implicit_token?.token_type)}").ToString();
                 rurl.Append($"?status={status}&msg={HttpUtility.UrlEncode(msg, Encoding.UTF8)}&id_token={implicit_token?.id_token}&access_token={implicit_token?.access_token}&expires_in={HttpUtility.UrlEncode(implicit_token?.expires_in)}&token_type={HttpUtility.UrlEncode(implicit_token?.token_type)}").ToString();
-#if DEBUG
+#if !DEBUG
                 return Redirect(rurl.ToString());
                 return Redirect(rurl.ToString());
 #else
 #else
                 return Ok(new { code = 200, message = msg, data = rurl.ToString() });
                 return Ok(new { code = 200, message = msg, data = rurl.ToString() });
@@ -371,7 +371,7 @@ namespace TEAMModelOS.Controllers.Third.LePei
             else if (status == 4) {
             else if (status == 4) {
                 msg = $"教师账号:{encryptData.userId},{encryptData.mobile}未关联";
                 msg = $"教师账号:{encryptData.userId},{encryptData.mobile}未关联";
                 rurl.Append($"?status={status}&msg={HttpUtility.UrlEncode(msg, Encoding.UTF8)}&mobile={encryptData.mobile}&param={HttpUtility.UrlEncode(encryptData.ToJsonString(), Encoding.UTF8)}");
                 rurl.Append($"?status={status}&msg={HttpUtility.UrlEncode(msg, Encoding.UTF8)}&mobile={encryptData.mobile}&param={HttpUtility.UrlEncode(encryptData.ToJsonString(), Encoding.UTF8)}");
-#if DEBUG
+#if !DEBUG
                 return Redirect(rurl.ToString());
                 return Redirect(rurl.ToString());
 #else
 #else
                 return Ok(new { code = 200, message = msg, data = rurl.ToString() });
                 return Ok(new { code = 200, message = msg, data = rurl.ToString() });
@@ -380,7 +380,7 @@ namespace TEAMModelOS.Controllers.Third.LePei
             else
             else
             {
             {
                 rurl.Append($"?status={status}&msg={HttpUtility.UrlEncode(msg, Encoding.UTF8)}");
                 rurl.Append($"?status={status}&msg={HttpUtility.UrlEncode(msg, Encoding.UTF8)}");
-#if DEBUG
+#if !DEBUG
                 return  Redirect(rurl.ToString());
                 return  Redirect(rurl.ToString());
 #else
 #else
                 return Ok(new { code = 400, message = msg, data =rurl.ToString() });
                 return Ok(new { code = 400, message = msg, data =rurl.ToString() });
@@ -539,6 +539,8 @@ namespace TEAMModelOS.Controllers.Third.LePei
         /// {path}/lepei-sso 中的path
         /// {path}/lepei-sso 中的path
         /// </summary>
         /// </summary>
         public string path { get; set; }
         public string path { get; set; }
+        public string appId { get; set; }
+        public string secretKey { get; set; }
     }
     }
     [TableName(Name = "ScYxpt")]
     [TableName(Name = "ScYxpt")]
     public class LPConfig : TableEntity
     public class LPConfig : TableEntity
@@ -554,4 +556,16 @@ namespace TEAMModelOS.Controllers.Third.LePei
         public  string appId { get; set;}
         public  string appId { get; set;}
         public string secretKey { get; set; }
         public string secretKey { get; set; }
     }
     }
+    /*
+     * https://easydoc.net/doc/61463617/Ufnsdona/k3Zb68pX
+     	新津区外国语实验学校
+乐陪学校ID:115
+乐陪appId:1602542204202872832
+乐陪密钥:Pk5Bmb4dl8aFYR5ezbgGpjdpXS4aFp4l
+
+	新津区五津初级中学  
+乐陪学校ID:116
+乐陪appId:1602542306216734720
+乐陪密钥:R7mCHT2QlidOxF8MasKjSKeWmaKXGOvG
+     */
 }
 }

+ 28 - 28
TEAMModelOS/appsettings.Development.json

@@ -22,43 +22,43 @@
   },
   },
   "Azure": {
   "Azure": {
     // 测试站数据库
     // 测试站数据库
-    //"Storage": {
-    //  "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=teammodeltest;AccountKey=O2W2vadCqexDxWO+px+QK7y1sHwsYj8f/WwKLdOdG5RwHgW/Dupz9dDUb4c1gi6ojzQaRpFUeAAmOu4N9E+37A==;EndpointSuffix=core.chinacloudapi.cn"
-    //},
-    //"Cosmos": {
-    //  "ConnectionString": "AccountEndpoint=https://cdhabookdep-free.documents.azure.cn:443/;AccountKey=JTUVk92Gjsx17L0xqxn0X4wX2thDPMKiw4daeTyV1HzPb6JmBeHdtFY1MF1jdctW1ofgzqkDMFOtcqS46by31A==;"
-    //},
-    //"Redis": {
-    //  "ConnectionString": "52.130.252.100:6379,password=habook,ssl=false,abortConnect=False,writeBuffer=10240"
-    //},
-    //"ServiceBus": {
-    //  "ConnectionString": "Endpoint=sb://teammodelos.servicebus.chinacloudapi.cn/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=Sy4h4EQ8zP+7w/lOLi1X3tGord/7ShFHimHs1vC50Dc=",
-    //  "ActiveTask": "dep-active-task",
-    //  "ItemCondQueue": "dep-itemcond",
-    //  "GenPdfQueue": "dep-genpdf"
-    //},
-    //"SignalR": {
-    //  "ConnectionString": "Endpoint=https://channel.service.signalr.net;AccessKey=KrblW06tuA4a/GyqRPDU0ynFFmAWxbAvyJihHclSXbQ=;Version=1.0;"
-    //},
-    // 正式站数据库
     "Storage": {
     "Storage": {
-      "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=teammodelos;AccountKey=Dl04mfZ9hE9cdPVO1UtqTUQYN/kz/dD/p1nGvSq4tUu/4WhiKcNRVdY9tbe8620nPXo/RaXxs+1F9sVrWRo0bg==;EndpointSuffix=core.chinacloudapi.cn"
+      "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=teammodeltest;AccountKey=O2W2vadCqexDxWO+px+QK7y1sHwsYj8f/WwKLdOdG5RwHgW/Dupz9dDUb4c1gi6ojzQaRpFUeAAmOu4N9E+37A==;EndpointSuffix=core.chinacloudapi.cn"
     },
     },
     "Cosmos": {
     "Cosmos": {
-      "ConnectionString": "AccountEndpoint=https://teammodelos.documents.azure.cn:443/;AccountKey=clF73GwPECfP1lKZTCvs8gLMMyCZig1HODFbhDUsarsAURO7TcOjVz6ZFfPqr1HzYrfjCXpMuVD5TlEG5bFGGg==;"
+      "ConnectionString": "AccountEndpoint=https://cdhabookdep-free.documents.azure.cn:443/;AccountKey=JTUVk92Gjsx17L0xqxn0X4wX2thDPMKiw4daeTyV1HzPb6JmBeHdtFY1MF1jdctW1ofgzqkDMFOtcqS46by31A==;"
     },
     },
     "Redis": {
     "Redis": {
-      "ConnectionString": "CoreRedisCN.redis.cache.chinacloudapi.cn:6380,password=LyJWP1ORJdv+poXWofAF97lhCEQPg1wXWqvtzXGXQuE=,ssl=True,abortConnect=False"
+      "ConnectionString": "52.130.252.100:6379,password=habook,ssl=false,abortConnect=False,writeBuffer=10240"
     },
     },
     "ServiceBus": {
     "ServiceBus": {
-      "ConnectionString": "Endpoint=sb://coreiotservicebuscnpro.servicebus.chinacloudapi.cn/;SharedAccessKeyName=TEAMModelOS;SharedAccessKey=llRPBMDJG9w1Nnifj+pGhV0g4H2REcq0PjvX2qqpcOg=",
-      "ActiveTask": "active-task",
-      "ItemCondQueue": "itemcond",
-      "GenPdfQueue": "genpdf"
+      "ConnectionString": "Endpoint=sb://teammodelos.servicebus.chinacloudapi.cn/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=Sy4h4EQ8zP+7w/lOLi1X3tGord/7ShFHimHs1vC50Dc=",
+      "ActiveTask": "dep-active-task",
+      "ItemCondQueue": "dep-itemcond",
+      "GenPdfQueue": "dep-genpdf"
     },
     },
     "SignalR": {
     "SignalR": {
-      "ConnectionString": "Endpoint=https://channel.signalr.azure.cn;AccessKey=AtcB7JYFNUbUXb1rGxa3PVksQ2X5YSv3JOHZR9J88tw=;Version=1.0;"
-    }
+      "ConnectionString": "Endpoint=https://channel.service.signalr.net;AccessKey=KrblW06tuA4a/GyqRPDU0ynFFmAWxbAvyJihHclSXbQ=;Version=1.0;"
+    },
+    // 正式站数据库
+    //"Storage": {
+    //  "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=teammodelos;AccountKey=Dl04mfZ9hE9cdPVO1UtqTUQYN/kz/dD/p1nGvSq4tUu/4WhiKcNRVdY9tbe8620nPXo/RaXxs+1F9sVrWRo0bg==;EndpointSuffix=core.chinacloudapi.cn"
+    //},
+    //"Cosmos": {
+    //  "ConnectionString": "AccountEndpoint=https://teammodelos.documents.azure.cn:443/;AccountKey=clF73GwPECfP1lKZTCvs8gLMMyCZig1HODFbhDUsarsAURO7TcOjVz6ZFfPqr1HzYrfjCXpMuVD5TlEG5bFGGg==;"
+    //},
+    //"Redis": {
+    //  "ConnectionString": "CoreRedisCN.redis.cache.chinacloudapi.cn:6380,password=LyJWP1ORJdv+poXWofAF97lhCEQPg1wXWqvtzXGXQuE=,ssl=True,abortConnect=False"
+    //},
+    //"ServiceBus": {
+    //  "ConnectionString": "Endpoint=sb://coreiotservicebuscnpro.servicebus.chinacloudapi.cn/;SharedAccessKeyName=TEAMModelOS;SharedAccessKey=llRPBMDJG9w1Nnifj+pGhV0g4H2REcq0PjvX2qqpcOg=",
+    //  "ActiveTask": "active-task",
+    //  "ItemCondQueue": "itemcond",
+    //  "GenPdfQueue": "genpdf"
+    //},
+    //"SignalR": {
+    //  "ConnectionString": "Endpoint=https://channel.signalr.azure.cn;AccessKey=AtcB7JYFNUbUXb1rGxa3PVksQ2X5YSv3JOHZR9J88tw=;Version=1.0;"
+    //}
   },
   },
   "HaBookAuth": {
   "HaBookAuth": {
     "CoreId": {
     "CoreId": {