瀏覽代碼

更新学生成绩后台首页

Administrator 1 年之前
父節點
當前提交
c3cdd9fdac

+ 10 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/score/ScoreDataController.java

@@ -91,6 +91,16 @@ public class ScoreDataController extends BaseController {
         return R.ok(scoreDataService.queryById(scoreId));
         return R.ok(scoreDataService.queryById(scoreId));
     }
     }
 
 
+    /**
+     * 获取成绩详细信息
+     */
+    @SaCheckPermission("score:data:query")
+    @PostMapping("/query")
+    public AjaxResult getInfo(@RequestBody ScoreData scoreData)
+    {
+        return AjaxResult.success(scoreDataService.selectScoreDataByScoreId(scoreData));
+    }
+
     /**
     /**
      * 新增成绩
      * 新增成绩
      */
      */

+ 1 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/bo/ScoreDataBo.java

@@ -41,6 +41,7 @@ public class ScoreDataBo extends BaseEntity {
      * 考试时间
      * 考试时间
      */
      */
     //@NotNull(message = "考试时间不能为空", groups = { AddGroup.class, EditGroup.class })
     //@NotNull(message = "考试时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date scoreTime;
     private Date scoreTime;
 
 
     /**
     /**

+ 18 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/vo/ScoreDataVo.java

@@ -88,5 +88,22 @@ public class ScoreDataVo implements Serializable {
      * 成绩满分
      * 成绩满分
      */
      */
     @TableField(exist = false)
     @TableField(exist = false)
-    private List<ScoreDataMfBo> scoreDataMfBoList;
+    private List<ScoreDataMfVo> scoreDataMfVoList;
+
+    /**
+     * 已查看
+     */
+    @TableField(exist = false)
+    private Double chaKan;
+    /**
+     * 未查看
+     */
+    @TableField(exist = false)
+    private Double weiChaKan;
+
+    /**
+     * 查看率
+     */
+    @TableField(exist = false)
+    private String percentage;
 }
 }

+ 0 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/score/ScoreDataMapper.java

@@ -11,5 +11,4 @@ import org.dromara.system.domain.score.vo.ScoreDataVo;
  * @date 2023-08-17
  * @date 2023-08-17
  */
  */
 public interface ScoreDataMapper extends BaseMapperPlus<ScoreData, ScoreDataVo> {
 public interface ScoreDataMapper extends BaseMapperPlus<ScoreData, ScoreDataVo> {
-
 }
 }

+ 3 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/score/ScoreDataStudentMapper.java

@@ -3,6 +3,7 @@ package org.dromara.system.mapper.score;
 
 
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.system.domain.score.ScoreDataStudent;
 import org.dromara.system.domain.score.ScoreDataStudent;
+import org.dromara.system.domain.score.bo.ScoreDataStudentBo;
 import org.dromara.system.domain.score.vo.ScoreDataStudentVo;
 import org.dromara.system.domain.score.vo.ScoreDataStudentVo;
 
 
 import java.util.List;
 import java.util.List;
@@ -21,6 +22,8 @@ public interface ScoreDataStudentMapper extends BaseMapperPlus<ScoreDataStudent,
      * @return
      * @return
      */
      */
     public List<ScoreDataStudent> selectScoreDataByScoreClassId(String scoreClassId);
     public List<ScoreDataStudent> selectScoreDataByScoreClassId(String scoreClassId);
+    public List<ScoreDataStudentVo> selectScoreDataForParents(Long scoreId);
+    public List<ScoreDataStudentVo> selectScoreByScoreId(Long scoreId);
 
 
 
 
 }
 }

+ 159 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/score/ScoreDataServiceImpl.java

@@ -1,8 +1,12 @@
 package org.dromara.system.service.impl.score;
 package org.dromara.system.service.impl.score;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.api.client.util.SecurityUtils;
+import org.apache.commons.lang3.ObjectUtils;
 import org.dromara.common.core.constant.CacheConstants;
 import org.dromara.common.core.constant.CacheConstants;
+import org.dromara.common.core.domain.model.LoginUser;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -10,24 +14,37 @@ import org.dromara.common.mybatis.core.page.PageQuery;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.system.domain.FormalParentsStudent;
+import org.dromara.system.domain.FormalTeacherClass;
+import org.dromara.system.domain.SysUser;
 import org.dromara.system.domain.score.ScoreData;
 import org.dromara.system.domain.score.ScoreData;
 import org.dromara.system.domain.score.ScoreDataDetail;
 import org.dromara.system.domain.score.ScoreDataDetail;
+import org.dromara.system.domain.score.ScoreDataMf;
 import org.dromara.system.domain.score.ScoreDataStudent;
 import org.dromara.system.domain.score.ScoreDataStudent;
 import org.dromara.system.domain.score.bo.ScoreDataBo;
 import org.dromara.system.domain.score.bo.ScoreDataBo;
 import org.dromara.system.domain.score.bo.ScoreDataDetailBo;
 import org.dromara.system.domain.score.bo.ScoreDataDetailBo;
 import org.dromara.system.domain.score.bo.ScoreDataMfBo;
 import org.dromara.system.domain.score.bo.ScoreDataMfBo;
 import org.dromara.system.domain.score.bo.ScoreDataStudentBo;
 import org.dromara.system.domain.score.bo.ScoreDataStudentBo;
+import org.dromara.system.domain.score.vo.ScoreDataMfVo;
+import org.dromara.system.domain.score.vo.ScoreDataStudentVo;
 import org.dromara.system.domain.score.vo.ScoreDataVo;
 import org.dromara.system.domain.score.vo.ScoreDataVo;
+import org.dromara.system.mapper.FormalParentsStudentMapper;
+import org.dromara.system.mapper.FormalTeacherClassMapper;
 import org.dromara.system.mapper.score.ScoreDataDetailMapper;
 import org.dromara.system.mapper.score.ScoreDataDetailMapper;
 import org.dromara.system.mapper.score.ScoreDataMapper;
 import org.dromara.system.mapper.score.ScoreDataMapper;
 import org.dromara.system.mapper.score.ScoreDataMfMapper;
 import org.dromara.system.mapper.score.ScoreDataMfMapper;
 import org.dromara.system.mapper.score.ScoreDataStudentMapper;
 import org.dromara.system.mapper.score.ScoreDataStudentMapper;
 import org.dromara.system.service.score.IScoreDataService;
 import org.dromara.system.service.score.IScoreDataService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.text.DecimalFormat;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
+import static org.dromara.common.core.constant.CacheConstants.*;
+
 /**
 /**
  * 成绩Service业务层处理
  * 成绩Service业务层处理
  *
  *
@@ -42,6 +59,11 @@ public class ScoreDataServiceImpl implements IScoreDataService {
     private final ScoreDataStudentMapper scoreDataStudentMapper;
     private final ScoreDataStudentMapper scoreDataStudentMapper;
     private final ScoreDataDetailMapper scoreDataDetailMapper;
     private final ScoreDataDetailMapper scoreDataDetailMapper;
     private final ScoreDataMfMapper scoreDataMfMapper;
     private final ScoreDataMfMapper scoreDataMfMapper;
+    @Autowired
+    private FormalTeacherClassMapper formalTeacherClassMapper;
+
+    @Autowired
+    private FormalParentsStudentMapper formalParentsStudentMapper;
 
 
 
 
     /**
     /**
@@ -57,8 +79,77 @@ public class ScoreDataServiceImpl implements IScoreDataService {
      */
      */
     @Override
     @Override
     public TableDataInfo<ScoreDataVo> queryPageList(ScoreDataBo bo, PageQuery pageQuery) {
     public TableDataInfo<ScoreDataVo> queryPageList(ScoreDataBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<ScoreData> lqw = buildQueryWrapper(bo);
-        Page<ScoreDataVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        Page<ScoreDataVo> result = new Page<>();
+        StringBuilder classId = new StringBuilder("0,");
+        Map<String, Object> params = bo.getParams();
+        String role = "admin";
+        if (params != null && params.size() > 0) {
+            role = (String) params.get("role");
+        }
+        if ("teacher".equals(role)) {
+            FormalTeacherClass formalTeacherClass = new FormalTeacherClass();
+            formalTeacherClass.setTeacherId(LoginHelper.getUserId());
+            List<FormalTeacherClass> formalTeacherClasses = formalTeacherClassMapper.selectFormalTeacherClassList(formalTeacherClass);
+            if (formalTeacherClasses != null && formalTeacherClasses.size() > 0) {
+                for (FormalTeacherClass teacherClass : formalTeacherClasses) {
+                    classId.append(teacherClass.getClassId()).append(",");
+                }
+            }
+            if (StringUtils.isNotBlank(classId.toString())) {
+                classId = new StringBuilder(classId.substring(0, classId.length() - 1));
+            }
+            bo.setScoreClassId(classId.toString());
+            LambdaQueryWrapper<ScoreData> lqw = buildQueryWrapper(bo);
+            result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        } else if ("parents".equals(role)) {
+            FormalParentsStudent formalParentsStudent = new FormalParentsStudent();
+            formalParentsStudent.setParentsId(LoginHelper.getUserId());
+            List<FormalParentsStudent> formalParentsStudents = formalParentsStudentMapper.selectFormalParentsStudentList(formalParentsStudent);
+            for (FormalParentsStudent parentsStudent : formalParentsStudents) {
+                classId.append(parentsStudent.getClassId()).append(",");
+            }
+            if (StringUtils.isNotBlank(classId.toString())) {
+                classId = new StringBuilder(classId.substring(0, classId.length() - 1));
+            }
+
+            bo.setScoreClassId(classId.toString());
+            LambdaQueryWrapper<ScoreData> lqw = buildQueryWrapper(bo);
+            result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        } else if ("admin".equals(role)) {
+            LambdaQueryWrapper<ScoreData> lqw = buildQueryWrapper(bo);
+            result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+
+        }
+        //赋值查看率
+        if (result != null && result.getSize() > 0) {
+            DecimalFormat df = new DecimalFormat("##.0%");
+            String percent = "0.00%";
+            List<ScoreDataVo> records = result.getRecords();
+            for (ScoreDataVo data : records) {
+                //全部人数
+                double chaKanAll = 0D;
+                double chaKanCount = 0D;
+                if (ObjectUtils.isNotEmpty(RedisUtils.getCacheObject(SCORE_PEOPLE_ALL + data.getScoreId()))) {
+                    chaKanAll = (int) RedisUtils.getCacheObject(SCORE_PEOPLE_ALL + data.getScoreId());
+                    if (ObjectUtils.isNotEmpty(RedisUtils.getCacheObject(SCORE_PEOPLE_CHAKAN_COUNT + data.getScoreId()))) {
+                        //已查看
+                        chaKanCount = (int) RedisUtils.getCacheObject(SCORE_PEOPLE_CHAKAN_COUNT + data.getScoreId());
+                    }
+                }
+                double weiChaKan = chaKanAll;
+                if (chaKanAll > 0 && chaKanCount >= 0) {
+                    weiChaKan = chaKanAll - chaKanCount;
+                    double z = chaKanCount / chaKanAll;
+                    if (Math.abs(z) >= 0.1) {
+                        //计算百分比
+                        percent = df.format(z);
+                    }
+                }
+                data.setChaKan(chaKanCount);
+                data.setWeiChaKan(weiChaKan);
+                data.setPercentage(percent);
+            }
+        }
         return TableDataInfo.build(result);
         return TableDataInfo.build(result);
     }
     }
 
 
@@ -132,12 +223,12 @@ public class ScoreDataServiceImpl implements IScoreDataService {
                     double lastScore = -1;// 最近一次的分
                     double lastScore = -1;// 最近一次的分
                     for (int i = 0; i < scoreDataStudentBoList.size(); i++) {
                     for (int i = 0; i < scoreDataStudentBoList.size(); i++) {
                         ScoreDataStudentBo studentBo = scoreDataStudentBoList.get(i);
                         ScoreDataStudentBo studentBo = scoreDataStudentBoList.get(i);
-                        if (Double.compare(lastScore, studentBo.getZongfen())!=0){
+                        if (Double.compare(lastScore, studentBo.getZongfen()) != 0) {
                             // 如果成绩和上一名的成绩不相同,那么排名+1
                             // 如果成绩和上一名的成绩不相同,那么排名+1
                             lastScore = studentBo.getZongfen();
                             lastScore = studentBo.getZongfen();
                             index++;
                             index++;
                         }
                         }
-                        studentBo.setScoreSort(index+"");
+                        studentBo.setScoreSort(index + "");
                     }
                     }
                     scoreDataStudentMapper.insert(scoreDataStudent);
                     scoreDataStudentMapper.insert(scoreDataStudent);
                     scoreDataDetailMapper.insertBatch(MapstructUtils.convert(scoreDataDetailBoList, ScoreDataDetail.class));
                     scoreDataDetailMapper.insertBatch(MapstructUtils.convert(scoreDataDetailBoList, ScoreDataDetail.class));
@@ -313,4 +404,68 @@ public class ScoreDataServiceImpl implements IScoreDataService {
         map.put("y2", y2);
         map.put("y2", y2);
         return map;
         return map;
     }
     }
+
+    /**
+     * 查询成绩
+     *
+     * @param scoreData 成绩主键
+     * @return 成绩
+     */
+    @Override
+    public ScoreDataVo selectScoreDataByScoreId(ScoreData scoreData) {
+        Long scoreId = scoreData.getScoreId();
+        Map<String, Object> params = scoreData.getParams();
+        String role = "admin";
+        if (params != null && params.size() > 0) {
+            role = (String) params.get("role");
+        }
+        StringBuilder stdId = new StringBuilder("0,");
+        ScoreDataVo scoreDataVo = baseMapper.selectVoById(scoreData.getScoreId());
+        //查询满分
+        LambdaQueryWrapper<ScoreDataMf> lqw = Wrappers.lambdaQuery();
+        lqw.eq(ScoreDataMf::getScoreId, scoreData.getScoreId());
+        List<ScoreDataMfVo> scoreDataMfVos = scoreDataMfMapper.selectVoList(lqw);
+        scoreDataVo.setScoreDataMfVoList(scoreDataMfVos);
+        if ("parents".equals(role)) {
+            Long userId = LoginHelper.getLoginUser().getUserId();
+            //获取该家长的孩子id
+            LoginUser user = LoginHelper.getLoginUser();
+            FormalParentsStudent formalParentsStudent = new FormalParentsStudent();
+            formalParentsStudent.setParentsId(user.getUserId());
+            List<FormalParentsStudent> formalParentsStudents = formalParentsStudentMapper.selectFormalParentsStudentList(formalParentsStudent);
+            for (FormalParentsStudent parentsStudent : formalParentsStudents) {
+                stdId.append(parentsStudent.getId()).append(",");
+            }
+            if (StringUtils.isNotBlank(stdId.toString())) {
+                stdId = new StringBuilder(stdId.substring(0, stdId.length() - 1));
+            }
+
+            Map<String,Object> map = new HashMap<>();
+            map.put("stdId",stdId.toString());
+            scoreData.setParams(map);
+            //获取查看人数
+            Object chaKanCount = RedisUtils.getCacheObject(SCORE_PEOPLE_CHAKAN_COUNT + scoreId);
+            if (ObjectUtils.isEmpty(chaKanCount)) {
+                RedisUtils.setCacheObject(SCORE_PEOPLE_CHAKAN_COUNT + scoreId, 1);
+            } else {
+                //判断该家长是否查看过
+                Object cacheObject = RedisUtils.getCacheObject(SCORE_PEOPLE_CHAKAN + scoreId + ":" + userId);
+                if (ObjectUtils.isEmpty(cacheObject)) {
+                    RedisUtils.setCacheObject(SCORE_PEOPLE_CHAKAN_COUNT + scoreId, Integer.parseInt(String.valueOf(chaKanCount)) + 1);
+                }
+            }
+            //如果是家长要记录到redis中
+            RedisUtils.setCacheObject(SCORE_PEOPLE_CHAKAN + scoreId + ":" + userId, userId);
+            //查询成绩家长查询自己的孩子
+
+            //查询考试对应的学生和成绩
+            List<ScoreDataStudentVo> scoreDataStudentVos = scoreDataStudentMapper.selectScoreDataForParents(scoreData.getScoreId());
+            scoreDataVo.setScoreDataStudentVoList(scoreDataStudentVos);
+            return scoreDataVo;
+        }
+        //查询考试对应的学生和成绩
+        List<ScoreDataStudentVo> scoreDataStudentVos = scoreDataStudentMapper.selectScoreByScoreId(scoreData.getScoreId());
+        scoreDataVo.setScoreDataStudentVoList(scoreDataStudentVos);
+        return scoreDataVo;
+    }
 }
 }

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/score/IScoreDataService.java

@@ -62,4 +62,12 @@ public interface IScoreDataService {
      * 后台首页成绩统计分段人数折线图
      * 后台首页成绩统计分段人数折线图
      */
      */
     public Map<String,Object> indexZheXian(ScoreData scoreData);
     public Map<String,Object> indexZheXian(ScoreData scoreData);
+
+    /**
+     * 查询成绩
+     *
+     * @param scoreData 成绩主键
+     * @return 成绩
+     */
+    public ScoreDataVo selectScoreDataByScoreId(ScoreData scoreData);
 }
 }

+ 40 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/score/ScoreDataMapper.xml

@@ -4,4 +4,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.system.mapper.score.ScoreDataMapper">
 <mapper namespace="org.dromara.system.mapper.score.ScoreDataMapper">
 
 
+    <resultMap type="org.dromara.system.domain.score.vo.ScoreDataVo" id="ScoreDataVoResult">
+        <result property="scoreId"    column="score_id"    />
+        <result property="scoreTitle"    column="score_title"    />
+        <result property="scoreTime"    column="score_time"    />
+        <result property="scoreClassId"    column="score_class_id"    />
+        <result property="scoreClassName"    column="score_class_name"    />
+        <result property="privacyType"    column="privacy_type"    />
+        <result property="scoreType"    column="score_type"    />
+        <collection property="scoreDataStudentVoList"    javaType="java.util.List"           resultMap="ScoreDataDetailsResult" />
+        <collection property="scoreDataMfVoList"   javaType="java.util.List"           resultMap="ScoreDataMfResult"   />
+    </resultMap>
+
+    <resultMap type="org.dromara.system.domain.score.vo.ScoreDataStudentVo" id="ScoreDataDetailsResult">
+        <result property="scoreStudentId"    column="sds_score_student_id"    />
+        <result property="scoreId"    column="sds_score_id"    />
+        <result property="scoreSort"    column="sds_score_sort"    />
+        <result property="scoreDataName"    column="sds_score_data_name"    />
+        <result property="scoreDataNameId"    column="sds_score_data_name_id"    />
+        <result property="zongfen"    column="sds_zongfen"    />
+        <result property="avg"    column="sds_avg"    />
+        <collection property="scoreDataDetailVoList"   javaType="java.util.List"           resultMap="ScoreDataDetailResult"   />
+    </resultMap>
+
+    <resultMap type="org.dromara.system.domain.score.vo.ScoreDataDetailVo" id="ScoreDataDetailResult">
+        <result property="scoreDetailId"    column="sdd_score_detail_id"    />
+        <result property="scoreId"    column="sdd_score_id"    />
+        <result property="xueke"    column="sdd_xueke"    />
+        <result property="score"    column="sdd_score"    />
+        <result property="scoreDataName"    column="sdd_score_data_name"    />
+        <result property="scoreDataNameId"    column="sdd_score_data_name_id"    />
+    </resultMap>
+    <resultMap type="org.dromara.system.domain.score.vo.ScoreDataMfVo" id="ScoreDataMfResult">
+        <result property="mfId"    column="sdm_mf_id"    />
+        <result property="scoreId"    column="sdm_score_id"    />
+        <result property="xueke"    column="sdm_xueke"    />
+        <result property="manfen"    column="sdm_manfen"    />
+        <result property="avg"    column="sdm_avg"    />
+    </resultMap>
+
+
 </mapper>
 </mapper>

+ 50 - 3
ruoyi-modules/ruoyi-system/src/main/resources/mapper/score/ScoreDataStudentMapper.xml

@@ -3,9 +3,27 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.system.mapper.score.ScoreDataStudentMapper">
 <mapper namespace="org.dromara.system.mapper.score.ScoreDataStudentMapper">
-    <resultMap type="org.dromara.system.domain.score.vo.ScoreDataStudentVo" id="ScoreDataDetailsResult">
+
+    <resultMap type="org.dromara.system.domain.score.vo.ScoreDataStudentVo" id="ScoreDataStudentResult">
+        <result property="scoreStudentId"    column="score_student_id"    />
+        <result property="scoreId"    column="score_id"    />
+        <result property="scoreSort"    column="score_sort"    />
+        <result property="scoreDataName"    column="score_data_name"    />
+        <result property="scoreDataNameId"    column="score_data_name_id"    />
+        <result property="zongfen"    column="zongfen"    />
+        <result property="avg"    column="avg"    />
+        <collection property="scoreDataDetailVoList"   javaType="java.util.List"           resultMap="ScoreDataDetailResult"   />
     </resultMap>
     </resultMap>
-    <select id="selectScoreDataByScoreClassId" parameterType="string" resultMap="ScoreDataDetailsResult">
+
+    <resultMap type="org.dromara.system.domain.score.vo.ScoreDataDetailVo" id="ScoreDataDetailResult">
+        <result property="scoreDetailId"    column="sdd_score_detail_id"    />
+        <result property="scoreId"    column="sdd_score_id"    />
+        <result property="xueke"    column="sdd_xueke"    />
+        <result property="score"    column="sdd_score"    />
+        <result property="scoreDataName"    column="sdd_score_data_name"    />
+        <result property="scoreDataNameId"    column="sdd_score_data_name_id"    />
+    </resultMap>
+    <select id="selectScoreDataByScoreClassId" parameterType="string" resultMap="ScoreDataStudentResult">
         select
         select
             s.zongfen,s.score_id,s.avg,s.details_type,s.score_sort
             s.zongfen,s.score_id,s.avg,s.details_type,s.score_sort
         from
         from
@@ -18,6 +36,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     score_data
                     score_data
                 WHERE
                 WHERE
                     score_class_id = #{scoreClassId} order by score_time DESC limit 1)
                     score_class_id = #{scoreClassId} order by score_time DESC limit 1)
-        order by b.score_sort s.zongfen DESC
+        order by s.zongfen DESC
+    </select>
+
+
+    <select id="selectScoreDataForParents" parameterType="Long" resultMap="ScoreDataStudentResult">
+        SELECT
+            b.zongfen ,
+            b.score_sort ,
+            b.score_data_name ,
+            d.xueke as sdd_xueke,
+            d.score as sdd_score,
+            d.score_data_name as sdd_score_data_name
+        FROM
+            score_data_student b
+                LEFT JOIN score_data_detail d ON d.score_id = b.score_id
+        where b.score_id = #{scoreId} and  find_in_set(b.score_data_name_id,#{params.stdId})
+    </select>
+
+    <select id="selectScoreByScoreId" parameterType="Long" resultMap="ScoreDataStudentResult">
+        SELECT
+            b.zongfen ,
+            b.score_sort ,
+            b.score_data_name ,
+            d.xueke as sdd_xueke,
+            d.score as sdd_score,
+            d.score_data_name as sdd_score_data_name
+        FROM
+            score_data_student b
+                LEFT JOIN score_data_detail d ON d.score_id = b.score_id
+        where b.score_id = #{scoreId}
     </select>
     </select>
 </mapper>
 </mapper>