Althars123 3 лет назад
Родитель
Сommit
3355d35a3a

+ 57 - 11
twzd-admin/src/main/java/com/miaxis/pc/controller/question/PcScoreInfoController.java

@@ -1,21 +1,20 @@
 package com.miaxis.pc.controller.question;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.miaxis.common.annotation.Log;
-import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.core.domain.entity.SysRole;
+import com.miaxis.common.core.domain.entity.SysUser;
 import com.miaxis.common.core.page.ResponsePageInfo;
 import com.miaxis.common.enums.BusinessTypeEnum;
 import com.miaxis.common.utils.SecurityUtils;
-import com.miaxis.question.dto.QuestionInfoDTO;
 import com.miaxis.score.domain.ScoreInfo;
-import com.miaxis.score.dto.ScoreInfoAllDTO;
-import com.miaxis.score.dto.ScoreInfoDTO;
 import com.miaxis.score.dto.ScoreInfoPcDTO;
 import com.miaxis.score.service.IScoreInfoService;
-import com.miaxis.score.vo.ScoreInfoPcVo;
+import com.miaxis.score.vo.ScoreIStudentInfoPcVo;
+import com.miaxis.user.service.IUserInfoService;
 import io.swagger.annotations.*;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -35,18 +34,65 @@ public class PcScoreInfoController extends BaseController {
     @Autowired
     private IScoreInfoService scoreInfoService;
 
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+//    /**
+//     * 查询模拟考成绩列表
+//     */
+//    @GetMapping("/list")
+//    @ApiOperation("查询模拟考成绩列表")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
+//            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
+//    })
+//    public ResponsePageInfo<ScoreInfoPcVo> list(@ModelAttribute ScoreInfoPcDTO scoreInfoPcDTO){
+//        startPage();
+//        List<ScoreInfoPcVo> list = scoreInfoService.selectScoreInfoPcList(scoreInfoPcDTO);
+//        return toResponsePageInfo(list);
+//    }
+
+
+    /**
+     * 查询学员列表
+     */
+    @GetMapping("/studentlist")
+    @ApiOperation("查询驾校学员列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
+    })
+    public ResponsePageInfo<ScoreIStudentInfoPcVo> studentList(@ModelAttribute ScoreInfoPcDTO scoreInfoPcDTO){
+        startPage();
+        //判断该用户是否拥有amin或者manager角色
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List<SysRole> roles = user.getRoles();
+        Boolean hasAdminAuthority = false;
+        for (SysRole sysRole : roles){
+            if (sysRole.getRoleKey().equals("admin") || sysRole.getRoleKey().equals("manager")){
+                hasAdminAuthority =true;
+            }
+        }
+        if (!hasAdminAuthority){
+            scoreInfoPcDTO.setSchoolName(user.getNickName());
+        }
+        List<ScoreIStudentInfoPcVo> list = scoreInfoService.selectStudentList(scoreInfoPcDTO);
+        return toResponsePageInfo(list);
+    }
+
     /**
-     * 查询模拟考成绩列表
+     * 查询学员成绩
      */
-    @GetMapping("/list")
-    @ApiOperation("查询模拟考成绩列表")
+    @GetMapping("/studentscore/{userId}")
+    @ApiOperation("查询学员成绩")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
             @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
     })
-    public ResponsePageInfo<ScoreInfoPcVo> list(@ModelAttribute ScoreInfoPcDTO scoreInfoPcDTO){
+    public ResponsePageInfo<ScoreInfo> studentscore( @PathVariable("userId") Long userId){
         startPage();
-        List<ScoreInfoPcVo> list = scoreInfoService.selectScoreInfoPcList(scoreInfoPcDTO);
+        List<ScoreInfo> list = scoreInfoService.list(new QueryWrapper<ScoreInfo>().eq("user_id",userId));
         return toResponsePageInfo(list);
     }
 

+ 3 - 3
twzd-service/src/main/java/com/miaxis/score/dto/ScoreInfoPcDTO.java

@@ -30,8 +30,8 @@ public class ScoreInfoPcDTO extends BaseBusinessEntity {
     @ApiModelProperty(value = "区级")
     private String areaName;
 
-    /** 车型 */
-    @ApiModelProperty(value = "车型")
-    private String type;
+//    /** 车型 */
+//    @ApiModelProperty(value = "车型")
+//    private String type;
 
 }

+ 3 - 0
twzd-service/src/main/java/com/miaxis/score/mapper/ScoreInfoMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.miaxis.score.domain.ScoreInfo;
 import com.miaxis.score.dto.ScoreInfoPcDTO;
 import com.miaxis.score.dto.ScoreInfoUserIdDTO;
+import com.miaxis.score.vo.ScoreIStudentInfoPcVo;
 import com.miaxis.score.vo.ScoreInfoH5Vo;
 import com.miaxis.score.vo.ScoreInfoPcVo;
 
@@ -51,4 +52,6 @@ public interface ScoreInfoMapper extends BaseMapper<ScoreInfo> {
     public List<ScoreInfoPcVo> selectScoreInfoPcList(ScoreInfoPcDTO scoreInfoPcDTO);
 
     List<ScoreInfoH5Vo> getScoreInfoByUserId(ScoreInfoUserIdDTO scoreInfoUserIdDTO);
+
+    List<ScoreIStudentInfoPcVo> selectStudentList(ScoreInfoPcDTO scoreInfoPcDTO);
 }

+ 3 - 0
twzd-service/src/main/java/com/miaxis/score/service/IScoreInfoService.java

@@ -5,6 +5,7 @@ import com.miaxis.score.domain.ScoreInfo;
 import com.miaxis.score.dto.ScoreInfoAllDTO;
 import com.miaxis.score.dto.ScoreInfoPcDTO;
 import com.miaxis.score.dto.ScoreInfoUserIdDTO;
+import com.miaxis.score.vo.ScoreIStudentInfoPcVo;
 import com.miaxis.score.vo.ScoreInfoH5Vo;
 import com.miaxis.score.vo.ScoreInfoPcVo;
 
@@ -60,4 +61,6 @@ public interface IScoreInfoService extends IService<ScoreInfo>{
     List<ScoreInfoPcVo> selectScoreInfoPcList(ScoreInfoPcDTO scoreInfoPcDTO);
 
     List<ScoreInfoH5Vo> getScoreInfoByUserId(ScoreInfoUserIdDTO scoreInfoUserIdDTO);
+
+    List<ScoreIStudentInfoPcVo> selectStudentList(ScoreInfoPcDTO scoreInfoPcDTO);
 }

+ 6 - 3
twzd-service/src/main/java/com/miaxis/score/service/impl/ScoreInfoServiceImpl.java

@@ -1,21 +1,19 @@
 package com.miaxis.score.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.miaxis.school.mapper.SchoolInfoMapper;
 import com.miaxis.score.domain.ScoreInfo;
 import com.miaxis.score.dto.ScoreInfoAllDTO;
 import com.miaxis.score.dto.ScoreInfoPcDTO;
 import com.miaxis.score.dto.ScoreInfoUserIdDTO;
 import com.miaxis.score.mapper.ScoreInfoMapper;
 import com.miaxis.score.service.IScoreInfoService;
+import com.miaxis.score.vo.ScoreIStudentInfoPcVo;
 import com.miaxis.score.vo.ScoreInfoH5Vo;
 import com.miaxis.score.vo.ScoreInfoPcVo;
-import com.miaxis.wx.dto.QueryParams;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * 模拟考成绩Service业务层处理
@@ -92,5 +90,10 @@ public class ScoreInfoServiceImpl extends ServiceImpl<ScoreInfoMapper, ScoreInfo
         return scoreInfoMapper.getScoreInfoByUserId(scoreInfoUserIdDTO);
     }
 
+    @Override
+    public List<ScoreIStudentInfoPcVo> selectStudentList(ScoreInfoPcDTO scoreInfoPcDTO) {
+        return scoreInfoMapper.selectStudentList(scoreInfoPcDTO);
+    }
+
 
 }

+ 46 - 0
twzd-service/src/main/java/com/miaxis/score/vo/ScoreIStudentInfoPcVo.java

@@ -0,0 +1,46 @@
+package com.miaxis.score.vo;
+
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author miaxis
+ * @date 2021-08-23
+ */
+@Data
+public class ScoreIStudentInfoPcVo extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 用户ID */
+    @ApiModelProperty(value = "用户ID")
+    private Long userId;
+
+    /** 头像 */
+    @ApiModelProperty(value = "头像")
+    private String headImage;
+
+    /** 昵称 */
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+
+
+
+    /** 分数 */
+    @ApiModelProperty(value = "最高分数")
+    private Long highScore;
+
+    /** 分数 */
+    @ApiModelProperty(value = "最低分数")
+    private Long lowScore;
+
+    /** 分数 */
+    @ApiModelProperty(value = "平均分数")
+    private double averageScore;
+
+    /** 分数 */
+    @ApiModelProperty(value = "模拟次数")
+    private double times;
+
+}

+ 17 - 4
twzd-service/src/main/resources/mapper/score/ScoreInfoMapper.xml

@@ -83,12 +83,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="getScoreInfoByUserId" parameterType="ScoreInfoUserIdDTO" resultMap="ScoreInfoH5Result">
-        SELECT s.id,s.user_id,u.head_image,u.nick_name,s.type,s.kskm,s.score,s.create_time
-        FROM user_info u JOIN score_info s ON u.id = s.user_id
+    SELECT s.id,s.user_id,u.head_image,u.nick_name,s.type,s.kskm,s.score,s.create_time
+    FROM user_info u JOIN score_info s ON u.id = s.user_id
+    <where>
+        <if test="userId != null"> and s.user_id =  #{userId} </if>
+    </where>
+    order by user_id,create_time desc
+</select>
+
+    <select id="selectStudentList" resultType="com.miaxis.score.vo.ScoreIStudentInfoPcVo" >
+        SELECT s.user_id,head_image,nick_name,max(score) as highScore,min(score) as lowScore,count(1) as times,avg(score) as averageScore
+         FROM user_info u  JOIN score_info s ON u.id = s.user_id
         <where>
-            <if test="userId != null"> and s.user_id =  #{userId} </if>
+            <if test="cityName != null and cityName != ''"> and u.city_name like concat('%', #{cityName}, '%')</if>
+            <if test="areaName != null and areaName != ''"> and u.area_name like concat('%', #{areaName}, '%')</if>
+            <if test="schoolName != null and schoolName != ''"> and u.school_name like concat('%', #{schoolName}, '%')</if>
+            <if test="nickName != null and nickName != ''"> and u.nick_name like concat('%', #{nickName}, '%')</if>
+            <if test="type != null and type != ''"> and s.type = #{type} </if>
         </where>
-        order by user_id,create_time desc
+        group by u.id desc
     </select>