瀏覽代碼

Merge branch 'develop' of http://52.130.252.100:10000/TEAMMODEL/TEAMModelOS into develop

OnePsycho 1 年之前
父節點
當前提交
d298b01d24

+ 1 - 1
TEAMModelBI/ClientApp/public/index.html

@@ -12,7 +12,7 @@
     </title>
 </head>
 <script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
-<script src="https://at.alicdn.com/t/c/font_2934132_nf8jqig0xx8.js"></script>
+<script src="https://at.alicdn.com/t/c/font_2934132_z6jnssvqk88.js"></script>
 <script src="../src/access/iconfont.js"></script>
 
 <body>

+ 138 - 34
TEAMModelBI/ClientApp/src/view/userInquire/details.vue

@@ -19,8 +19,8 @@
                         <use :xlink:href="[item.correlation ? '#icon-zhengque3':'#icon-tishi2']"></use>
                     </svg>
                 </div>
-                <el-button type="" size="small" v-show="item.key ==='school'&& !item.correlation" class="changebtn">更改</el-button>
-                <el-button type="" size="small" v-show="item.key ==='local'">更改</el-button>
+                <!-- <el-button type="" size="small" v-show="item.key ==='school'&& !item.correlation" class="changebtn">更改</el-button> -->
+                <!-- <el-button type="" size="small" v-show="item.key ==='local'">更改</el-button> -->
             </div>
            </div>
         </div>
@@ -32,7 +32,7 @@
                             <p class="item-title">{{item.title}}</p>
                             <div class="item-content" v-show="item.state">
                                 <div class="content-left">
-                                    <span>上次登陆时间:{{item.subhead2Value}}</span>
+                                    <span>上次登陆时间:{{item.value}}</span>
                                 </div>
                             </div>
                             <div class="notenabled-title" v-show="!item.state">近期未使用</div>
@@ -50,7 +50,7 @@
             <div class="hiteachboxdiv">
                 <div  class="common-header-title">
                     <div>HiTeach</div>
-                    <div class="expire">到期日:XXXXX</div>
+                    <!-- <div class="expire">到期日:XXXXX</div> -->
                 </div>
                 <el-divider />
                 <Hiteach></Hiteach>
@@ -58,7 +58,7 @@
             <div class="hitadiv">
                 <div  class="common-header-title">
                     <div>HiTA</div>
-                    <div class="expire">到期日:XXXXX</div>
+                    <!-- <div class="expire">到期日:XXXXX</div> -->
                 </div>
                 <el-divider />
                 <HiTA></HiTA>
@@ -66,7 +66,7 @@
             <div class="user-size">
                 <div  class="common-header-title">
                     <div>空间与权益</div>
-                    <div class="expire">到期日:XXXXX</div>
+                    <!-- <div class="expire">到期日:XXXXX</div> -->
                 </div>
                 <el-divider /> 
                 <div class="sizestate" v-if="sizeandequity ==='size'">
@@ -81,17 +81,39 @@
                             <commonGaugeVue :gaugeData="gaugedata"></commonGaugeVue>
                     </div>
                 </div>
+                <!--权益-->
                 <div class="equitystate" v-else>
                     <div class="rightsbox">
-                        <p class="rightsbox-title">权益列表:</p>
                         <div class="rightsbox-content">
-                            <div class="rightsbox-item" v-for="item in rightsdata" :key="item.key">
-                                <div class="rightsbox-item-name">{{item.name}}</div>
-                                <div class="rightsbox-item-time">到期日:{{item.time}}</div>
-                            </div>
+                            <el-carousel trigger="click" height="35vh" autoplay="false">
+                                <el-carousel-item v-for="item in powerList" :key="item">
+                                    <div class="rightsbox-item">
+                                        <div class="rightsbox-item-title">
+                                            <p>ID授权 {{item.name}}</p>
+                                        </div>
+                                        <div class="rightsbox-item-time">
+                                            <p>
+                                                <span>时间:</span>
+                                                <span class="rightsbox-item-time-num">{{item.startDateText}}~{{item.endDateText}}</span>
+                                                <span>共<span class="rightsbox-item-timenums">{{item.intervalTime}}</span>天</span>
+                                            </p>
+                                        </div>
+                                        <div class="rightsbox-item-expansion">
+                                            <p class="expansion-title">产品扩充项</p>
+                                            <div v-for="iteml in item.apruleArr" :key="iteml.key">
+                                                -<span :class="[iteml.state ? 'start-title':'error-title' ]">
+                                                    {{iteml.title}}
+                                                    <span v-show="iteml.key ==='cligroup' || iteml.key ==='client_volume' || iteml.key ==='soknumber'">({{iteml.value}})</span>
+                                                 </span>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </el-carousel-item>
+                            </el-carousel>
                         </div>
                     </div>
                 </div>
+                 <!--权益 end-->
                 <div class="tab-state">
                     <div :class="[sizeandequity ==='size' ? 'opts':'','tab-state-btn']" @click="sizeandequity='size'">我的空间</div>
                     <div :class="[sizeandequity !=='size' ? 'opts':'','tab-state-btn']" @click="sizeandequity='equity'">我的权益</div>
@@ -157,7 +179,7 @@ let userdata = ref([
     { id: 2, icon: '#icon-shouji', value: '0', title: '',key:'phone',check:true,hint:'手机号码'},
     { id: 3, icon: '#icon-dibudaohanglan-', value: '', title: '',key:'school',correlation:false,check:true,hint:'学校'},
     { id: 4, icon: '#icon-youxiang', value: '', title: '', key: 'email', check: true, hint: '邮箱' },
-    { id: 5, icon: '#icon-yuyan-shi', value: '中文(简体)', title: '',key:'local',check:false ,hint:'语系'},
+    { id: 5, icon: '#icon-weizhi', value: '', title: '',key:'local',check:false ,hint:'地区位置'},
     { id: 6, icon: '#icon-shijian2', value: '2023-04-23', title: '', key: 'time', check: false ,hint:'上次登录时间' },
 ])
 let productdata = ref([
@@ -320,7 +342,7 @@ let gaugedata = ref({
         x: 'center',
         bottom:'33%',
         textStyle: {
-            fontSize: '14',
+            fontSize: '16',
             color: '#313a5e',
             foontWeight: '600',
         },
@@ -328,7 +350,7 @@ let gaugedata = ref({
     series: [
         {
         type: 'gauge',
-        radius: '135%',
+        radius: '85%',
         center: ['50%', '70%'],
         startAngle: 180,
         endAngle: 0,
@@ -388,7 +410,7 @@ let gaugedata = ref({
             offsetCenter: [0, '0%'], // x, y,单位px
             textStyle: {
               color: '#313a5e',
-              fontSize: 12
+              fontSize: 14
             }
         },
         detail: {
@@ -430,34 +452,87 @@ let sokratesData=detailsData.value[0].sokrates
 let pointsData=detailsData.value[0].points
 console.log(props.searchdata, '传输的值')
 console.log(detailsData.value, '最终数据')
+let powerExtension=ref([
+    {title:'USB錄影支援',key:'hdcam',state:false},
+    {title:'蘇格拉底議課APP',key:'sokapp',state:false},
+    {title:'蘇格拉底影片',key:'sokvdo',state:false},
+    {title:'AI智能終端',key:'ezs',state:false},
+    {title:'AI文句分析',key:'wordanls',state:false},
+    {title:'電子學生證',key:'dgistuid',state:false},
+    {title:'蘇格拉底小數據',key:'soksdata',state:false},
+    {title:'雲端診斷分析系統',key:'cloudas',state:false},
+    {title:'分組數',key:'cligroup',value:0,state:false},
+    {title:'IRS連線授權數',key:'client_volume',value:0,state:false},
+    {title:'議課人數',key:'soknumber',value:0,state:false},
+    {title:'IRS硬體遙控器',key:'irs',state:true},
+])
+let powerList=ref([])
 const handleChildEvent = (payload) => {
     userdetailState.value=false
-};
+}
 function initdata() {
     let transmitData = detailsData.value[0]
     console.log(transmitData,'数据')
     //header 基础信息 
-    let { name,id,mobile, mail, schoolCode, schoolCodeW, points } = transmitData
+    let { name,id,mobile, mail, schoolCode, schoolCodeW, points,country,province,city,} = transmitData
     usernames.value=name
     userdata.value[0].value = id
     userdata.value[1].value = mobile
-    userdata.value[2].value = 'XXXX'
+    userdata.value[2].value = schoolCodeW ? schoolCodeW : schoolCode ? schoolCode:'无'
+    schoolCodeW ? userdata.value[2].correlation=true:false
     userdata.value[3].value = mail
-    userdata.value[4].value = 'XXXX'
-    userdata.value[5].value = 'XXXX-XX-XX'
+    userdata.value[4].value = country && province && city ? country+'-'+province+city:country+'-'+province
     //产品使用及安装情况
     let {login}=transmitData
+    let logintimes = login.length >0 ? login.sort(function(a,b){return b.time-a.time}):'无'
+    userdata.value[5].value=proxy.$common.timestampToTime(logintimes[0].time,'all')
     if(login.length >0){
        login.forEach(item => {
          let typename=item.product
          productdata.value.forEach(items=>{
-            typename === items.key ? items.value === 0 ? (items.value=item.time,items.state=true): item.time > items.value ? (items.value=item.time,items.state=true):'':''
+            typename === items.key ? items.value === 0 ? (items.value=proxy.$common.timestampToTime(item.time,'all'),items.state=true): item.time > items.value ? (items.value=proxy.$common.timestampToTime(item.time,'all'),items.state=true):'':''
          })
        })
     }
     //空间与权益
     let {usedSize,teachSize,totalSize,surplusSize}=transmitData.ies5
     let usePercentum=parseInt(((Number(bytesToGB(usedSize))+Number(bytesToGB(teachSize)))/Number(bytesToGB(totalSize)))*100);let useGsize=proxy.$common.convertSize(usedSize)
+    
+    //权益内容
+    let {prod}=transmitData
+    prod.forEach((item)=>{
+        //处理名字
+        item.name=item.prodCode ==='Z6ELB6EZ' ? 'HiTeach 5':item.prodCode ==='IPALB6EY' ? 'IES 5 個人空間':''
+        //处理扩展内容
+        let apruleItem=item.aprule
+        item.apruleArr=[]
+        if(apruleItem !==null && item.prodCode ==='Z6ELB6EZ'){
+            apruleItem.hdcam ? powerExtension.value[0].state=true:powerExtension.value[0].state=false
+            apruleItem.sokapp ? powerExtension.value[1].state=true:powerExtension.value[1].state=false
+            apruleItem.sokvdo ? powerExtension.value[2].state=true:powerExtension.value[2].state=false
+            apruleItem.ezs ? powerExtension.value[3].state=true:powerExtension.value[3].state=false
+            apruleItem.wordanls ? powerExtension.value[4].state=true:powerExtension.value[4].state=false
+            apruleItem.dgistuid ? powerExtension.value[5].state=true:powerExtension.value[5].state=false
+            apruleItem.soksdata ? powerExtension.value[6].state=true:powerExtension.value[6].state=false
+            apruleItem.cloudas ? powerExtension.value[7].state=true:powerExtension.value[7].state=false
+            apruleItem.cligroup !==0 ? (powerExtension.value[8].state=true,powerExtension.value[8].value=apruleItem.cligroup):powerExtension.value[8].state=false
+            apruleItem.client_volume !==0 ? (powerExtension.value[9].state=true,powerExtension.value[9].value=apruleItem.client_volume):powerExtension.value[9].state=false
+            apruleItem.soknumber !==0 ? (powerExtension.value[10].state=true,powerExtension.value[10].value=apruleItem.soknumber):powerExtension.value[10].state=false
+            apruleItem.hasOwnProperty('irs') ? powerExtension.value[11].state=false:powerExtension.value[11].state=true
+            item.apruleArr=powerExtension.value
+        }
+        //处理时间
+        let startDates=new Date(item.startDate);let endDates=new Date(item.endDate)
+        let timeDifference = endDates.getTime() - startDates.getTime();
+        console.log(timeDifference)
+        let days = Math.floor(timeDifference / (24 * 60 * 60 ));
+        console.log(days,'天数')
+        item.intervalTime=days
+        item.startDateText=proxy.$common.timestampToTime(item.startDate)
+        item.endDateText=proxy.$common.timestampToTime(item.endDate)
+        powerList.value.push(item)  
+    })
+    console.log(powerList,'处理数据的结果')
     //空间图表
     gaugedata.value.series[0].data[0].value=usePercentum
     gaugedata.value.title[0].text=useGsize+'G'
@@ -562,7 +637,7 @@ onMounted(() => {
 .listbox-item{
     width:18%;
     line-height: 30px;
-    padding: 0% 2%;
+    padding: 1%;
     border-radius: 5px;
     margin:0% 4%;
 }
@@ -580,7 +655,7 @@ onMounted(() => {
 }
 .content-left,.content-right{
     margin-top:5px;
-    font-size:16px;
+    font-size:14px;
 }
 .content-left p,.content-right p{
     margin-bottom: 0px;
@@ -588,7 +663,7 @@ onMounted(() => {
 }
 .content-left span,.content-right span{
     color:#fff;
-    font-size:16px;
+    font-size:14px;
 }
 .HiTeach{
     background: linear-gradient(to top right, #7d82fe, #6fa5fe);
@@ -743,7 +818,7 @@ onMounted(() => {
 }
 .login-echart{
     width:100%;
-    height:15vh;
+    height:40vh;
     display: flex;
     align-items: center;
 }
@@ -775,24 +850,53 @@ onMounted(() => {
     padding: 1%;
     display: flex;
     flex-direction: column;
-    height: 18vh;
+    /* height: 18vh; */
     overflow: hidden;
     overflow-y: auto;
 }
 .rightsbox-item{
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
+    text-align: left;
     border-bottom: 1px solid #ccc;
-}
-.rightsbox-item{
     font-size:14px;
+    padding: 1%;
+    line-height: 30px;
 }
-.rightsbox-item-name{
-    font-weight: bold;
+.rightsbox-item p{
+    margin-bottom: 5px;
+}
+.rightsbox-item-title{
+    width:100%;
+    font-size:16px;
+    font-weight: 700;
+    padding-left: 2px;
 }
 .rightsbox-item-time{
-    color:#3ca1cd;
+    width:100%;
+    font-size:14px;
+    padding-left: 8px;
+}
+.rightsbox-item-expansion{
+    width:100%;
+    font-size:14px;
+    padding-left: 8px;
+}
+.rightsbox-item-expansion div{
+    line-height: 20px;
+    padding-left: 4px;
+}
+.rightsbox-item-time span:nth-child(3){
+    margin-left:5px;
+}
+.expansion-title{
+    font-size:14px;
+    line-height: 20px;
+    font-weight: 700;
+}
+.rightsbox-item-time-num,.rightsbox-item-timenums,.start-title{
+    color:#409EFF;
+}
+.error-title{
+    color:#909399;
 }
 .scorebox{
     width: 23%;

+ 1 - 1
TEAMModelBI/ClientApp/src/view/userInquire/userdetail.vue

@@ -27,7 +27,7 @@
                         <span>2019-05-28</span>
                     </div>
                 </el-form-item>
-                <el-form-item label="国家/地区">
+                <el-form-item label="账户语系">
                     <div class="user-from-integral">
                         <div v-show="!userdata.countrystate">
                             <el-input v-model="userdata.country" disabled placeholder="Please input" />

+ 3 - 3
TEAMModelBI/TEAMModelBI.csproj

@@ -65,9 +65,9 @@
 		<SpaRoot>ClientApp\</SpaRoot>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
 		<UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
-		<Version>5.2310.11</Version>
-		<AssemblyVersion>5.2310.11.1</AssemblyVersion>
-		<FileVersion>5.2310.11.1</FileVersion>
+		<Version>5.2310.18</Version>
+		<AssemblyVersion>5.2310.18.1</AssemblyVersion>
+		<FileVersion>5.2310.18.1</FileVersion>
 		<Description>TEAMModelBI(BI)</Description>
 		<PackageReleaseNotes>BI版本说明版本切换标记2022000908</PackageReleaseNotes>
 		<PackageId>TEAMModelBI</PackageId>

+ 3 - 3
TEAMModelOS.FunctionV4/TEAMModelOS.FunctionV4.csproj

@@ -5,9 +5,9 @@
 		<OutputType>Exe</OutputType>
 		<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
 		<SignAssembly>true</SignAssembly>
-		<Version>5.2310.11</Version>
-		<AssemblyVersion>5.2310.11.1</AssemblyVersion>
-		<FileVersion>5.2310.11.1</FileVersion>
+		<Version>5.2310.18</Version>
+		<AssemblyVersion>5.2310.18.1</AssemblyVersion>
+		<FileVersion>5.2310.18.1</FileVersion>
 		<PackageId>TEAMModelOS.FunctionV4</PackageId>
 		<Authors>teammodel</Authors>
 		<Company>醍摩豆(成都)信息技术有限公司</Company>

+ 37 - 4
TEAMModelOS.SDK/Models/Cosmos/Common/Activity.cs

@@ -21,7 +21,9 @@ namespace TEAMModelOS.SDK.Models
         public string subject { get; set; }
         public string description { get; set; }
         public string address { get; set; }
+        [Range(1697622366000, 4102415999000, ErrorMessage = $"时间范围错误")]
         public long stime { get; set; }
+        [Range(1697622366000, 4102415999000, ErrorMessage = $"时间范围错误")]
         public long etime { get; set; }
         public string poster { get; set; }
         public List<Attachment> attachment { get; set; } = new List<Attachment>();
@@ -33,7 +35,7 @@ namespace TEAMModelOS.SDK.Models
         [Required(ErrorMessage = "Required")]
         public string owner { get; set; }
         /// <summary>
-        /// "public公开/area区级/school校级",
+        /// "public公开/area区级/school校级",  public公开活动 只能是醍摩豆智慧学区才能选择,
         /// </summary>
         [Required(ErrorMessage = "Required")]
         public string scope { get; set; }
@@ -45,14 +47,16 @@ namespace TEAMModelOS.SDK.Models
         /// <summary>
         /// //区级活动时允许参与的学校,如果为空则全部学校
         /// </summary>
-        public List<IdNamePicture> schools { get; set; } = new List<IdNamePicture>();
+        public List<ActivitySchool > schools { get; set; } = new List<ActivitySchool>();
         /// <summary>
         /// //邀请制,允许参加的教师
         /// </summary>
-        public List<IdNameSchool> inviteTeachers { get; set; } = new List<IdNameSchool>();
+        public List<ActivityTeacher> inviteTeachers { get; set; } = new List<ActivityTeacher>();
         /// <summary>
         /// 模块"Contest/赛课活动",  "Training/线上培训", "Research/教研活动"
         /// </summary>
+        [Required(ErrorMessage = "模块不能为空")]
+        [MinLength(1, ErrorMessage = "模块不能为空")]
         public List<string> modules { get; set; } = new List<string>();
         /// <summary>
         /// 本次活动的评审专家
@@ -70,6 +74,33 @@ namespace TEAMModelOS.SDK.Models
         /// 创建者
         /// </summary>
         public string creatorId { get; set; }
+        /// <summary>
+        /// 0未发布,1已发布,2.已结束
+        /// </summary>
+        public int publish { get; set; }
+    }
+
+    public class ActivityTeacher
+    {
+        public string id { get; set; }
+        public string name { get; set; }
+        public string picture { get; set; }
+        public string school { get; set; }
+        /// <summary>
+        /// 0 未确认,1已确认,用于区级发布, publish=1,joinMode=invite,学校可以去进行邀请某一些教师。
+        /// </summary>
+        public int status { get; set; }
+    }
+    public class ActivitySchool
+    {
+        public string id { get; set; }
+        public string name { get; set; }
+        public string picture { get; set; }
+        public string school { get; set; }
+        /// <summary>
+        /// 0 未确认,1已确认,用于区级发布, publish=1,joinMode=invite,学校可以去进行邀请某一些教师。
+        /// </summary>
+        public int status { get; set; }
     }
 
     /// <summary>
@@ -86,10 +117,12 @@ namespace TEAMModelOS.SDK.Models
         /// <summary>
         ///  //参加活动获得积分。根据最后评委打分,0-100的比例获得积分,不足一分按一分计算。
         /// </summary>
-        public int balance { get; set; }
+        public int balance { get; set; } = 0;
         /// <summary>
         /// "sign","upload","review","score"//报名模块,上传作品模块,评审模块,成绩公布模块
         /// </summary>
+        [Required(ErrorMessage = "优课评选子模块不能为空")]
+        [MinLength(1, ErrorMessage = "优课评选子模块不能为空")]
         public List<string> modules { get; set; } = new List<string>();
 
         public ContestSign sign { get; set; }

+ 1 - 13
TEAMModelOS.SDK/Models/Cosmos/Common/GroupList.cs

@@ -487,19 +487,7 @@ namespace TEAMModelOS.SDK.Models
         public string stulist { get; set; }
         public string teacherId { get; set; }
     }
-    public class IdNamePicture
-    {
-        public string id { get; set; }
-        public string name { get; set; }
-        public string picture { get; set; }
-    }
-    public class IdNameSchool
-    {
-        public string id { get; set; }
-        public string name { get; set; }
-        public string picture { get; set; }
-        public string school { get; set; }
-    }
+    
     public class IdNameCode
     {
         public string id { get; set; }

+ 3 - 3
TEAMModelOS.SDK/TEAMModelOS.SDK.csproj

@@ -2,9 +2,9 @@
 
   <PropertyGroup>
     <TargetFramework>net6.0</TargetFramework>
-    <Version>5.2310.11</Version>
-    <AssemblyVersion>5.2310.11.1</AssemblyVersion>
-    <FileVersion>5.2310.11.1</FileVersion>
+    <Version>5.2310.18</Version>
+    <AssemblyVersion>5.2310.18.1</AssemblyVersion>
+    <FileVersion>5.2310.18.1</FileVersion>
     <PackageReleaseNotes>发版</PackageReleaseNotes>
   </PropertyGroup>
 

+ 1 - 1
TEAMModelOS/Controllers/Both/CourseBaseController.cs

@@ -530,7 +530,7 @@ namespace TEAMModelOS.Controllers.Both
                                     }
                                 }else
                                 {
-                                    var groupList =   await GroupListService.GetMemberByListids(_coreAPIHttpService,  _azureCosmos.GetCosmosClient(), _dingDing, groupIds.ToList(), school);
+                                    var groupList =   await GroupListService.GetMemberByListids(_coreAPIHttpService,_azureCosmos.GetCosmosClient(), _dingDing, groupIds.ToList(), school);
                                     groups= groupList.groups.Select(z => new GroupListDto(z)).ToList();
                                     string teacherSQLBase = $"select     c.id,c.name,c.picture from c where  c.id   in ({string.Join(",", teacherIds.Select(z => $"'{z}'"))}) ";
                                     var resultBase = await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<IdNameCode>(teacherSQLBase, $"Base");

+ 54 - 6
TEAMModelOS/Controllers/Common/ActivityController.cs

@@ -80,6 +80,17 @@ namespace TEAMModelOS.Controllers
                             activity.id=!string.IsNullOrWhiteSpace(activity.id)?activity.id: Guid.NewGuid().ToString();
                             activity.code="Activity";
                             activity.pk="Activity";
+
+                            //如果是区级活动,enroll报名制,则学校的确认状态默认为1 。
+                            if (activity.scope.Equals("area", StringComparison.OrdinalIgnoreCase) && activity.joinMode.Equals("enroll", StringComparison.OrdinalIgnoreCase)) 
+                            {
+                                activity.schools.ForEach(z => z.status=1);
+                            }
+                            //醍摩豆智慧学区
+                            if (!activity.owner.Equals("02944f32-f534-3397-ea56-e6f1fc6c3714", StringComparison.OrdinalIgnoreCase)  && activity.scope.Equals("public", StringComparison.OrdinalIgnoreCase))
+                            {
+                                 return Ok(new { error = ResponseCode._400ParamsError, msg = "公开的活动只能由醍摩豆智慧学区发布!" });
+                            }
                             ValidResult validResult = activity.Valid();
                             if (validResult.isVaild)
                             {
@@ -92,12 +103,24 @@ namespace TEAMModelOS.Controllers
                                         //赛课
                                         case bool when module.Equals("Contest"):
                                             {
-                                                if (!request.TryGetProperty("Contest", out JsonElement _contest)) return Ok(new { error = ResponseCode._400ParamsError, msg = "赛课信息参数错误" });
+                                                if (!request.TryGetProperty("Contest", out JsonElement _contest))
+                                                {
+                                                    return Ok(new { error = ResponseCode._400ParamsError, msg = "赛课信息参数错误" });
+                                                }
                                                 Contest contest = _activity.ToObject<Contest>();
-                                                contest.id=activity.id;
-                                                contest.code="Contest";
-                                                contest.pk="Contest";
-
+                                                if (contest!=null) {
+                                                    contest.id=activity.id;
+                                                    contest.code="Contest";
+                                                    contest.pk="Contest";
+                                                    ValidResult validResultContest = contest.Valid();
+                                                    if (validResultContest.isVaild)
+                                                    {
+                                                        await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).UpsertItemAsync(contest, new PartitionKey(contest.code));
+                                                    }
+                                                    else {
+                                                        return Ok(validResult);
+                                                    }
+                                                }
                                                 break;
                                             }
                                         //培训
@@ -112,6 +135,8 @@ namespace TEAMModelOS.Controllers
                                             }
                                     }
                                 }
+                                //保存活动基础信息
+                                await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).UpsertItemAsync(activity, new PartitionKey(activity.code));
                             }
                             else
                             {
@@ -119,7 +144,30 @@ namespace TEAMModelOS.Controllers
                             }
                             break;
                         }
-                   
+                    case bool when $"{grant_type}".Equals("list-area", StringComparison.OrdinalIgnoreCase):
+                        {
+                            if (!request.TryGetProperty("areaId", out JsonElement _areaId)) return BadRequest();
+                            string sql = $"select value c from c where c.scope='area' and c.owner='{_areaId}'  ";
+                            //醍摩豆智慧学区
+                            if (_areaId.GetString().Equals("02944f32-f534-3397-ea56-e6f1fc6c3714", StringComparison.OrdinalIgnoreCase)) {
+                                sql = $"select value c from c where   c.owner='{_areaId}' and ( c.scope='area' or c.scope='public' ) ";
+                            }
+                            var  result =  await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sql, "Activity");
+                            return Ok(new { activities = result.list.OrderByDescending(z=>z.stime) });
+                        }
+                    case bool when $"{grant_type}".Equals("list-school", StringComparison.OrdinalIgnoreCase):
+                        {
+                            break;
+                        }
+                 
+                    case bool when $"{grant_type}".Equals("list-teacher", StringComparison.OrdinalIgnoreCase):
+                        {
+                            break;
+                        }
+                    case bool when $"{grant_type}".Equals("list-portal", StringComparison.OrdinalIgnoreCase):
+                        {
+                            break;
+                        }
                 }
             }catch (Exception ex)
             {

+ 4 - 4
TEAMModelOS/TEAMModelOS.csproj

@@ -74,11 +74,11 @@
     <SpaRoot>ClientApp\</SpaRoot>
     <DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
     <UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
-    <Version>5.2310.11</Version>
-    <AssemblyVersion>5.2310.11.1</AssemblyVersion>
-    <FileVersion>5.2310.11.1</FileVersion>
+    <Version>5.2310.18</Version>
+    <AssemblyVersion>5.2310.18.1</AssemblyVersion>
+    <FileVersion>5.2310.18.1</FileVersion>
     <Description>TEAMModelOS(IES5)</Description>
-    <PackageReleaseNotes>IES版本说明版本切换标记5.2310.11.1</PackageReleaseNotes>
+    <PackageReleaseNotes>IES版本说明版本切换标记5.2310.18.1</PackageReleaseNotes>
     <PackageId>TEAMModelOS</PackageId>
     <Authors>teammodel</Authors>
     <Company>醍摩豆(成都)信息技术有限公司</Company>

+ 1 - 1
TEAMModelOS/appsettings.Development.json

@@ -18,7 +18,7 @@
     "IdTokenSalt": "8263692E2213497BB55E74792B7900B4",
     "HttpTrigger": "https://teammodelosfunction-test.chinacloudsites.cn/api/",
     //"HttpTrigger": "http://localhost:7071/api/"
-    "Version": "5.2310.11.1"
+    "Version": "5.2310.18.1"
   },
   "Azure": {
     // 测试站数据库

+ 1 - 1
TEAMModelOS/appsettings.json

@@ -18,7 +18,7 @@
     "Exp": 86400,
     "IdTokenSalt": "8263692E2213497BB55E74792B7900B4",
     "HttpTrigger": "https://teammodelosfunction.chinacloudsites.cn/api/",
-    "Version": "5.2310.11.1"
+    "Version": "5.2310.18.1"
   },
   "Azure": {
     "Storage": {