Kaynağa Gözat

Merge branch 'develop' of http://163.228.141.122:3000/TEAMMODEL/TEAMModelOS into develop

hhb 7 ay önce
ebeveyn
işleme
76a52adfa2

+ 46 - 1
TEAMModelOS/ClientApp/src/view/evaluation/components/BaseImport.vue

@@ -74,6 +74,7 @@
 <script>
 import excel from '@/utils/excel.js'
 import FileSaver from "file-saver";
+import { post } from '@/api/http'
 export default {
   props: ['period', 'subject'],
   data() {
@@ -171,9 +172,14 @@ export default {
     },
 
     /** 选择文件上传之前 */
-    beforeUpload(file) {
+    async beforeUpload(file) {
       this.isBtnLoading = true
       this.isSelectFinish = true
+      let isRefreshToken = await this.checkToken()
+      if(isRefreshToken) {
+        this.$Message.warning(this.$t('http.error401'))
+        return
+      }
       this.fileName = file.name ? this.getFileName(file.name) : ''
       // 如果是excel格式文档 则需要进行对应解析
       if (this.isExcel(file)) {
@@ -235,6 +241,45 @@ export default {
       }
     },
 
+    /** 检查token是否过期 */
+    checkToken() {
+      return new Promise((resolve, reject) => {
+        if (!localStorage.getItem('expires_in')) return false
+
+        var nowTime = new Date();
+        var offset = nowTime.getTimezoneOffset() / 60
+        let cT = Date.parse(nowTime)
+        let eT = Date.parse(localStorage.getItem('expires_in'))
+        let oT = 0
+        let btw = eT - oT - cT
+        if (btw > 10 * 60 * 1000) {
+          resolve(false)
+        } else {
+          try {
+            let url = this.$store.state.config[this.$store.state.config.srvAdr].coreAPIUrl
+            post(url + '/oauth2/token', {
+                "grant_type": "refresh_token",
+                'client_id': this.$store.state.config[this.$store.state.config.srvAdr].clientID,
+                "access_token": localStorage.getItem('access_token')
+            }).then(
+                res => {
+                    localStorage.setItem("access_token", res.access_token)
+                    localStorage.setItem("expires_in", res.expires_in)
+                    resolve(false)
+                },
+                err => {
+                    sessionStorage.setItem('loginOut', 'token刷新失败,退出重新登录')
+                    reject(true)
+                }
+            )
+          } catch (error) {
+            console.error(error);
+            reject(true)
+          }
+        }
+      })
+    },
+
     /* 获取文件名 */
     getFileName(name) {
       let regRule = /[`~?$^&*\|]/g

+ 8 - 4
TEAMModelOS/Controllers/Common/ExamController.cs

@@ -2188,6 +2188,7 @@ namespace TEAMModelOS.Controllers
                                             foreach (ufo fo in tmdInfos)
                                             {
                                                 fo.type = 1;
+                                                fo.no = members.Where(m => m.type == 1 && m.id.Equals(fo.id)).FirstOrDefault().no;
                                             }
                                             ufos.AddRange(tmdInfos);
                                         }
@@ -2206,7 +2207,7 @@ namespace TEAMModelOS.Controllers
                             delIds.AddRange(ids.Except(sIds).ToList());
                             if (stus.Any())
                             {
-                                await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Student").GetItemQueryStreamIteratorSql(queryText: $"select distinct c.id,c.name from c where c.id in ({string.Join(",", stus.Select(o => $"'{o}'"))}) and c.pk = 'Base'",
+                                await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Student").GetItemQueryStreamIteratorSql(queryText: $"select distinct c.id,c.name,c.no from c where c.id in ({string.Join(",", stus.Select(o => $"'{o}'"))}) and c.pk = 'Base'",
                                     requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Base-{school}") }))
                                 {
                                     using var stuJson = await JsonDocument.ParseAsync(item.Content);
@@ -2221,7 +2222,8 @@ namespace TEAMModelOS.Controllers
                                                 id = account.GetProperty("id").GetString(),
                                                 name = account.GetProperty("name").GetString(),
                                                 //schoolId = account.GetProperty("schoolId").GetString(),
-                                                type = 2
+                                                type = 2,
+                                                no = account.GetProperty("no").GetString()
                                             };
                                             students.Add(fo);
                                         }
@@ -2242,7 +2244,8 @@ namespace TEAMModelOS.Controllers
                                     {
                                         id = simple.id,
                                         name = (!string.IsNullOrWhiteSpace(simple.name)) ? simple.name : (!string.IsNullOrWhiteSpace(simple.nickname)) ? simple.nickname : "",
-                                        type = simple.type
+                                        type = simple.type,
+                                        no = simple.no
                                     });
                                 }
                             }
@@ -2321,7 +2324,7 @@ namespace TEAMModelOS.Controllers
         /// <summary>
         /// 查询複數评测详细信息(教师用)
         /// </summary>
-        /// <param name="request"></param>
+        /// <param name="request"></param>find-summary-record
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [Authorize(Roles = "IES")]
@@ -5173,6 +5176,7 @@ namespace TEAMModelOS.Controllers
         public string id { get; set; }
         public string name { get; set; }
         public int type { get; set; }
+        public string no { get; set; }
     }
     public class stuErrorItemCnt
     {