夏文涛 1 год назад
Родитель
Сommit
509b276d53

+ 3 - 3
src/main/java/com/template/api/SmartEvaluateTeacherControllerAPI.java

@@ -92,9 +92,9 @@ public interface SmartEvaluateTeacherControllerAPI {
     @ApiOperation(value = "分数对比", httpMethod = "POST")
     CommonResult getScoreComparison(Integer id);
 
-    @RequestMapping(value = "/getScoreRank")
-    @ApiOperation(value = "评分排行", httpMethod = "POST")
-    CommonResult getScoreRank(int currentPage, int pageCount, String subject);
+    @GetMapping(value = "/getScoreRank")
+    @ApiOperation(value = "评分排行", httpMethod = "GET")
+    CommonResult getScoreRank(@RequestParam int id);//int currentPage, int pageCount, String subject);
 
     /**
      * 首页最受欢迎老师TOP6

+ 3 - 1
src/main/java/com/template/api/SmartSemesterControllerAPI.java

@@ -42,6 +42,8 @@ public interface SmartSemesterControllerAPI {
     @ApiOperation(value = "展示学期数据", notes = "展示学期数据", httpMethod = "GET")
     CommonResult getSmartSemester();
 
-
+    @GetMapping(value = "/getNowSmartSemester")
+    @ApiOperation(value = "展示本学期数据", notes = "展示本学期数据", httpMethod = "GET")
+    CommonResult getNowSmartSemester();
 
 }

+ 35 - 12
src/main/java/com/template/controller/SmartEvaluateTeacherController.java

@@ -20,9 +20,7 @@ import com.template.model.request.addScoreManageRequest;
 import com.template.model.request.updateScoreManageRequest;
 import com.template.model.result.CommonResult;
 import com.template.model.result.PageUtils;
-import com.template.model.vo.EvaluateTeacherVo;
-import com.template.model.vo.RankingVo;
-import com.template.model.vo.TemplateRuleVo;
+import com.template.model.vo.*;
 import com.template.services.*;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -645,15 +643,40 @@ public class SmartEvaluateTeacherController implements SmartEvaluateTeacherContr
     }
 
     @PassToken
-    public CommonResult getScoreRank(int currentPage, int pageCount, String subject) {
-        QueryWrapper<SmartEvaluateTeacher> queryWrapper1 = new QueryWrapper<>();
-        queryWrapper1.eq("term", smartScoreManageService.getMaxTerm());
-        if (subject != null) {
-            queryWrapper1.eq("subject", subject);
-        }
-        queryWrapper1.orderByDesc("total_score");
-        PageUtils<SmartEvaluateTeacher> list = smartEvaluateTeacherService.queryPageSmartEvaluateTeacher(currentPage, pageCount, queryWrapper1);
-        return CommonResult.ok(list);
+    public CommonResult getScoreRank(int id){//int currentPage, int pageCount, String subject) {
+//        QueryWrapper<SmartEvaluateTeacher> queryWrapper1 = new QueryWrapper<>();
+//        queryWrapper1.eq("term", smartScoreManageService.getMaxTerm());
+//        if (subject != null) {
+//            queryWrapper1.eq("subject", subject);
+//        }
+//        queryWrapper1.orderByDesc("total_score");
+//        PageUtils<SmartEvaluateTeacher> list = smartEvaluateTeacherService.queryPageSmartEvaluateTeacher(currentPage, pageCount, queryWrapper1);
+
+        SmartEvaluateTeacher set = smartEvaluateTeacherService.getSmartEvaluateTeacherById(id);
+        if(set == null){
+            return CommonResult.fail("教师综合评价为空");
+        }
+
+        List<ScoreRankVo> srv = smartEvaluateTeacherService.getScoreRanks(set.getTerm());
+
+        List<ScoreRankVo> result = new ArrayList<>();
+
+        for(int i = 0;i < 5;i++){
+            ScoreRankVo data = new ScoreRankVo();
+            data = srv.get(i);
+            long existCount = result.stream().filter(e -> e.getUserId().intValue() == set.getUserId().intValue()).count();
+            if(existCount <= 0 && i == 3){
+
+                data = new ScoreRankVo();
+                Optional<ScoreRankVo> oSrv = srv.stream().filter(e -> e.getUserId().intValue() == set.getUserId().intValue()).findFirst();
+                if(oSrv != null && oSrv.isPresent()){
+                    data = oSrv.get();
+                }
+            }
+            result.add(data);
+        }
+
+        return CommonResult.ok(result);
     }
 
     @PassToken

+ 6 - 0
src/main/java/com/template/controller/SmartSemesterController.java

@@ -438,5 +438,11 @@ public class SmartSemesterController implements SmartSemesterControllerAPI {
         return CommonResult.ok(list);
     }
 
+    @Override
+    public CommonResult getNowSmartSemester() {
+        SmartSemester result = smartSemesterService.queryNowSemesterByTime(new Date());
+        return CommonResult.ok(result);
+    }
+
 }
 

+ 22 - 15
src/main/java/com/template/core/CORSConfiguration.java

@@ -2,26 +2,33 @@ package com.template.core;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 @Configuration
 public class CORSConfiguration{
+    private CorsConfiguration buildConfig() {
+        CorsConfiguration corsConfiguration = new CorsConfiguration();
+        //设置属性
+        //允许跨域请求的地址,*表示所以
+//      corsConfiguration.addAllowedOrigin("*");//注意:这个注释,换成下面一行的代码
+        corsConfiguration.addAllowedOriginPattern("*");
+        //跨域的请求头
+        corsConfiguration.addAllowedHeader("*");
+        //跨域的请求方法
+        corsConfiguration.addAllowedMethod("*");
+        //在跨域请求的时候使用同一个Session
+        corsConfiguration.setAllowCredentials(true);
+        return corsConfiguration;
+    }
+
     @Bean
-    public WebMvcConfigurer corsConfigurer() {
-        return new WebMvcConfigurer() {
-            @Override
-            public void addCorsMappings(CorsRegistry registry) {
-                registry.addMapping("/**")
-                        //放行哪些原始域
-                        .allowedOrigins("*")
-                        //是否发送Cookie信息
-                        .allowCredentials(false)
-                        //放行哪些原始域(请求方式)
-                        .allowedMethods("GET", "POST", "DELETE", "PUT", "OPTIONS")
-                        //放行哪些原始域(头部信息)
-                        .allowedHeaders("*");
-            }
-        };
+    public CorsFilter corsFilter() {
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        source.registerCorsConfiguration("/**", buildConfig());
+        return new CorsFilter(source);
     }
 }

+ 3 - 0
src/main/java/com/template/mapper/SmartEvaluateTeacherMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
 import com.template.model.vo.EvaluateTeacherVo;
 import com.template.model.vo.RankingVo;
+import com.template.model.vo.ScoreRankVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -28,4 +29,6 @@ public interface SmartEvaluateTeacherMapper extends BaseMapper<SmartEvaluateTeac
     List<RankingVo> getRankingList(@Param("term") String term);
 
     RankingVo getRanking(@Param("term") String term,@Param("cardNo") String cardNo);
+
+    List<ScoreRankVo> getScoreRanks(@Param("term") String term);
 }

+ 33 - 0
src/main/java/com/template/model/vo/ScoreRankVo.java

@@ -0,0 +1,33 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/12/4 星期一 15:57
+ * @Description: com.template.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class ScoreRankVo {
+    /**
+     * 排名
+     */
+    private Integer number;
+
+    /**
+     * 用户ID
+     */
+    private Integer userId;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 最终得分
+     */
+    private Double totalScore;
+
+}

+ 4 - 0
src/main/java/com/template/services/SmartEvaluateTeacherService.java

@@ -6,6 +6,8 @@ import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
 import com.template.model.result.PageUtils;
 import com.template.model.vo.EvaluateTeacherVo;
 import com.template.model.vo.RankingVo;
+import com.template.model.vo.ScoreRankVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -47,4 +49,6 @@ public interface SmartEvaluateTeacherService extends IService<SmartEvaluateTeach
 
     List<SmartEvaluateTeacher> queryEvaluateTeachersByUserId(Integer userId);
 
+    List<ScoreRankVo> getScoreRanks(String term);
+
 }

+ 2 - 0
src/main/java/com/template/services/SmartSemesterService.java

@@ -40,4 +40,6 @@ public interface SmartSemesterService extends IService<SmartSemester> {
 
     List<SmartSemester> querySemesterByTime(Date dateTime);
 
+    SmartSemester queryNowSemesterByTime(Date dateTime);
+
 }

+ 7 - 0
src/main/java/com/template/services/impl/SmartEvaluateTeacherServiceImpl.java

@@ -9,6 +9,7 @@ import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
 import com.template.model.result.PageUtils;
 import com.template.model.vo.EvaluateTeacherVo;
 import com.template.model.vo.RankingVo;
+import com.template.model.vo.ScoreRankVo;
 import com.template.services.SmartEvaluateTeacherService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -118,4 +119,10 @@ public class SmartEvaluateTeacherServiceImpl extends ServiceImpl<SmartEvaluateTe
         return result;
     }
 
+    @Override
+    public List<ScoreRankVo> getScoreRanks(String term) {
+        List<ScoreRankVo> result = smartEvaluateTeacherMapper.getScoreRanks(term);
+        return result;
+    }
+
 }

+ 9 - 0
src/main/java/com/template/services/impl/SmartSemesterServiceImpl.java

@@ -117,4 +117,13 @@ public class SmartSemesterServiceImpl extends ServiceImpl<SmartSemesterMapper, S
         List<SmartSemester> result = smartSemesterMapper.selectList(queryWrapper);
         return result;
     }
+
+    @Override
+    public SmartSemester queryNowSemesterByTime(Date dateTime) {
+        QueryWrapper<SmartSemester> queryWrapper = new QueryWrapper<>();
+        queryWrapper.ge("end_time", dateTime);
+        queryWrapper.orderByAsc("end_time");
+        List<SmartSemester> result = smartSemesterMapper.selectList(queryWrapper);
+        return result.size() >0 ? result.get(0) : new SmartSemester();
+    }
 }

+ 19 - 1
src/main/resources/mapper/template/SmartEvaluateTeacherMapper.xml

@@ -13,7 +13,8 @@
         <result property="term" column="term"/>
     </resultMap>
 
-    <select id="smartTopTeacherList" resultType="com.template.model.vo.EvaluateTeacherVo" resultMap="smartTopTeacherMap">
+    <select id="smartTopTeacherList" resultType="com.template.model.vo.EvaluateTeacherVo"
+            resultMap="smartTopTeacherMap">
         select id,name,term from smart_evaluate_teacher
         where deleted = 0
         <if test="termId != null and termId != ''">
@@ -47,5 +48,22 @@
             b.card_no= #{cardNo}
     </select>
 
+    <resultMap type="com.template.model.vo.ScoreRankVo" id="scoreRankMap">
+        <result property="number" column="number"/>
+        <result property="userId" column="user_id"/>
+        <result property="name" column="name"/>
+        <result property="totalScore" column="total_score"/>
+    </resultMap>
+
+    <select id="getScoreRanks" resultType="com.template.model.vo.ScoreRankVo" resultMap="scoreRankMap">
+        select ROW_NUMBER() OVER (ORDER BY total_score desc) AS number,user_id,name,total_score from
+        smart_evaluate_teacher
+        where deleted = 0
+        <if test="term != null and term != ''">
+            and term = #{term}
+        </if>
+        order by total_score desc
+    </select>
+
 
 </mapper>