Jelajahi Sumber

添加大屏通过手机号查询对应的人和关联人,历史出勤,成绩平均数

liu 2 tahun lalu
induk
melakukan
b7c4161347
23 mengubah file dengan 326 tambahan dan 2 penghapusan
  1. 11 0
      src/main/java/com/template/api/SmartAttendanceControllerAPI.java
  2. 6 0
      src/main/java/com/template/api/SmartScoreControllerAPI.java
  3. 11 2
      src/main/java/com/template/api/SmartUserControllerAPI.java
  4. 59 0
      src/main/java/com/template/controller/SmartAttendanceController.java
  5. 26 0
      src/main/java/com/template/controller/SmartScoreController.java
  6. 16 0
      src/main/java/com/template/controller/SmartSemesterController.java
  7. 37 0
      src/main/java/com/template/controller/SmartUserController.java
  8. 4 0
      src/main/java/com/template/mapper/SmartAttendanceMapper.java
  9. 1 0
      src/main/java/com/template/mapper/SmartScoreMapper.java
  10. 2 0
      src/main/java/com/template/mapper/SmartUserMapper.java
  11. 11 0
      src/main/java/com/template/model/vo/AverageScoreVo.java
  12. 18 0
      src/main/java/com/template/model/vo/HistoricalAttendanceVo.java
  13. 5 0
      src/main/java/com/template/services/SmartAttendanceService.java
  14. 10 0
      src/main/java/com/template/services/SmartScoreService.java
  15. 7 0
      src/main/java/com/template/services/SmartSemesterService.java
  16. 15 0
      src/main/java/com/template/services/SmartUserService.java
  17. 17 0
      src/main/java/com/template/services/impl/SmartAttendanceServiceImpl.java
  18. 5 0
      src/main/java/com/template/services/impl/SmartScoreServiceImpl.java
  19. 26 0
      src/main/java/com/template/services/impl/SmartSemesterServiceImpl.java
  20. 14 0
      src/main/java/com/template/services/impl/SmartUserServiceImpl.java
  21. 8 0
      src/main/resources/mapper/template/SmartAttendanceMapper.xml
  22. 9 0
      src/main/resources/mapper/template/SmartScoreMapper.xml
  23. 8 0
      src/main/resources/mapper/template/SmartUserMapper.xml

+ 11 - 0
src/main/java/com/template/api/SmartAttendanceControllerAPI.java

@@ -61,4 +61,15 @@ public interface SmartAttendanceControllerAPI {
     @PostMapping(value = "/askForLeave")
     @ApiOperation(value = "百胜学生请假接口", notes = "百胜学生请假接口", httpMethod = "POST")
     CommonResult askForLeave(@Validated @RequestBody askForLeaveRequest request, BindingResult bindingResult) throws Exception;
+
+    /**
+     * 领导驾驶舱——学生个人画像——历史出勤
+     * @param userId
+     * @param dateTime
+     * @return
+     */
+    @GetMapping(value = "/historicalAttendance")
+    @ApiOperation(value = "历史出勤", notes = "历史出勤", httpMethod = "GET")
+    CommonResult historicalAttendance(@RequestParam int userId,@RequestParam String dateTime);
+
 }

+ 6 - 0
src/main/java/com/template/api/SmartScoreControllerAPI.java

@@ -106,4 +106,10 @@ public interface SmartScoreControllerAPI {
     @GetMapping(value = "/downloadScoreExcel")
     @ApiOperation(value = "导出成绩Excel模板", notes = "导出成绩Excel模板", httpMethod = "GET")
     CommonResult downloadScoreExcel();
+
+    @GetMapping(value = "/averageScore")
+    @ApiOperation(value = "各科成绩的平均分", notes = "各科成绩的平均分", httpMethod = "GET")
+    CommonResult averageScore(@RequestParam int userId);
+
+
 }

+ 11 - 2
src/main/java/com/template/api/SmartUserControllerAPI.java

@@ -216,8 +216,6 @@ public interface SmartUserControllerAPI {
     CommonResult queryUserDeletePage(@RequestParam int currentPage, @RequestParam int pageCount);
 
 
-
-
     /**
      * 获取班级下的学生
      */
@@ -233,4 +231,15 @@ public interface SmartUserControllerAPI {
     @ApiOperation(value = "批量设置学生时间组", notes = "批量设置学生时间组", httpMethod = "POST")
     CommonResult setUserTimeGroup(@Validated @RequestBody setUserTimeGroupRequest isur, BindingResult bindingResult) throws Exception;
 
+
+    @GetMapping(value = "/getPhoneUser")
+    @ApiOperation(value = "大屏——通过手机号找到对应的人", notes = "大屏——通过手机号找到对应的人", httpMethod = "GET")
+    CommonResult getPhoneUser(@RequestParam String phone);
+
+
+    @GetMapping(value = "/getPhoneAffiliate")
+    @ApiOperation(value = "大屏——通过手机号找到对应的关联人", notes = "大屏——通过手机号找到对应的关联人", httpMethod = "GET")
+    CommonResult getPhoneAffiliate(@RequestParam String phone);
+
+
 }

+ 59 - 0
src/main/java/com/template/controller/SmartAttendanceController.java

@@ -1,7 +1,9 @@
 package com.template.controller;
 
 
+import com.alibaba.druid.sql.visitor.functions.If;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.seewo.open.sdk.DefaultSeewoClient;
 import com.seewo.open.sdk.SeewoClient;
@@ -14,6 +16,7 @@ import com.template.config.SeewoConfig;
 import com.template.model.enumModel.eAttendanceStatu;
 import com.template.model.enumModel.eIdentityStatu;
 import com.template.model.enumModel.eXwApproveStatu;
+import com.template.model.evaluate.student.SmartEvaluateStudent;
 import com.template.model.pojo.*;
 import com.template.model.request.askForLeaveRequest;
 import com.template.model.result.CommonResult;
@@ -22,6 +25,8 @@ import com.template.model.seewo.PersonalLeaveListSchoolPeriodRecordsRequest;
 import com.template.model.seewo.PersonalLeaveListSchoolPeriodRecordsResult;
 import com.template.model.vo.*;
 import com.template.services.SmartAttendanceService;
+import com.template.services.SmartEvaluateStudentService;
+import com.template.services.SmartSemesterService;
 import com.template.services.SmartUserService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -33,6 +38,8 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -63,6 +70,8 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
     private SmartUserService smartUserService;
     @Autowired
     private SmartAttendanceService smartAttendanceService;
+    @Autowired
+    SmartSemesterService smartSemesterService;
 
 
     @Override
@@ -273,6 +282,56 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
 
     }
 
+    @Override
+    public CommonResult historicalAttendance(int userId, String dateTime) {
+
+        LocalDateTime now = LocalDateTime.now();
+        Date startTime = null;
+        Date endTime= null;
+        HistoricalAttendanceVo historicalAttendanceVo = new HistoricalAttendanceVo();
+        if ("1".equals(dateTime)) {
+//        本学期
+            SmartSemester smartSemester = smartSemesterService.getSemester(now);
+            if (ObjectUtils.isEmpty(smartSemester)) {
+                return CommonResult.ok(historicalAttendanceVo);
+            }
+            startTime = smartSemester.getStartTime();
+            endTime = smartSemester.getEndTime();
+            System.out.println("smartSemester = " + smartSemester);
+
+        } else if ("2".equals(dateTime)) {
+//        近1个月
+            LocalDateTime localDateTime = now.minusMonths(1);
+            startTime = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
+            endTime = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());
+
+        } else if ("3".equals(dateTime)) {
+//        近一周
+            LocalDateTime localDateTime = now.minusDays(7);
+            startTime = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
+            endTime = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());
+        }
+
+         List<Integer> statusList=smartAttendanceService.getGroup();
+
+        for (Integer status : statusList) {
+            List<SmartAttendance> smartAttendances =smartAttendanceService.getHistoricalAttendance(userId,status,startTime,endTime);
+            if (0==status) {
+                historicalAttendanceVo.setPunctuality(smartAttendances.size());
+            }else if (1==status){
+                historicalAttendanceVo.setBeLate(smartAttendances.size());
+            }else if (3==status){
+                historicalAttendanceVo.setNotClockingIn(smartAttendances.size());
+            }else if (6==status){
+                historicalAttendanceVo.setAskForLeave(smartAttendances.size());
+            }else if (7==status){
+                historicalAttendanceVo.setClockOut(smartAttendances.size());
+            }
+        }
+
+        return CommonResult.ok(historicalAttendanceVo);
+    }
+
     public PersonalLeaveListSchoolPeriodRecordsResult getXwAttendance(String startDate, String endDate, Integer currentPage, Integer pageSize) {
         //初始化客户端
         SeewoClient seewoClient = new DefaultSeewoClient(new Account(seewoConfig.getAppId(), seewoConfig.getAppSecret()));

+ 26 - 0
src/main/java/com/template/controller/SmartScoreController.java

@@ -1,6 +1,8 @@
 package com.template.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.template.annotation.DESRespondSecret;
 import com.template.api.SmartScoreControllerAPI;
 import com.template.common.utils.AesUtils;
@@ -34,6 +36,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.InputStream;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -625,6 +628,29 @@ public class SmartScoreController implements SmartScoreControllerAPI {
         return CommonResult.ok("200", "操作成功", "https://wanzai-1306339220.cos.ap-shanghai.myqcloud.com/excelModel/成绩信息表.xlsx");
     }
 
+    @Override
+    public CommonResult averageScore(int userId) {
+        LocalDateTime now = LocalDateTime.now();
+        SmartSemester smartSemester = smartSemesterService.getSemester(now);
+        if (ObjectUtils.isEmpty(smartSemester)) {
+            return CommonResult.ok("当前时间不属于任何学期");
+        }
+        Integer semesterId = smartSemester.getId();
+//        获取所有学科
+        List<SmartSubject> list = smartSubjectService.list(new LambdaQueryWrapper<>());
+        ArrayList<AverageScoreVo> averageScoreVos = new ArrayList<>();
+        for (SmartSubject smartSubject : list) {
+            AverageScoreVo averageScoreVo = new AverageScoreVo();
+            Integer smartSemesterId = smartSemester.getId();
+            Double score =smartScoreService.getAverageScore(userId,semesterId,smartSemesterId);
+            averageScoreVo.setSubjectName(smartSubject.getName());
+            averageScoreVo.setScore(score);
+            averageScoreVos.add(averageScoreVo);
+        }
+        System.out.println("averageScoreVos = " + averageScoreVos);
+        return CommonResult.ok(averageScoreVos);
+    }
+
     /**
      * 导入Xls文件方法
      *

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

@@ -12,6 +12,7 @@ import com.template.model.result.PageUtils;
 import com.template.model.vo.SemesterVo;
 import com.template.services.SmartIdentityService;
 import com.template.services.SmartSemesterService;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
@@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -53,6 +55,13 @@ public class SmartSemesterController implements SmartSemesterControllerAPI {
             String st = paramUtils.getParamError(bindingResult);
             return CommonResult.fail(st);
         }
+        Date startTime = smartApply.getStartTime();
+        Date endTime = smartApply.getEndTime();
+//        一天里不能是多个学期
+        List<SmartSemester> list=smartSemesterService.getSemesterTime(startTime,endTime);
+        if (ObjectUtils.isNotEmpty(list)&&list.size()>0) {
+            return CommonResult.fail("该时间段已包含其他学期");
+        }
 
         int result = smartSemesterService.insertSmartSemester(smartApply);
 
@@ -73,6 +82,13 @@ public class SmartSemesterController implements SmartSemesterControllerAPI {
             String st = paramUtils.getParamError(bindingResult);
             return CommonResult.fail(st);
         }
+        Date startTime = sa.getStartTime();
+        Date endTime = sa.getEndTime();
+        //        一天里不能是多个学期
+        List<SmartSemester> list=smartSemesterService.getSemesterTime(startTime,endTime);
+        if (ObjectUtils.isNotEmpty(list)&&list.size()>0) {
+            return CommonResult.fail("该时间段已包含其他学期");
+        }
 
         int result = smartSemesterService.updateSmartSemester(sa);
         return result > 0 ? CommonResult.ok("修改成功") : CommonResult.fail("修改失败");

+ 37 - 0
src/main/java/com/template/controller/SmartUserController.java

@@ -5247,6 +5247,43 @@ public class SmartUserController implements SmartUserControllerAPI {
 
         return updateBatch ? CommonResult.ok("批量同步成功") : CommonResult.fail("批量同步失败");
     }
+
+
+
+    @Override
+    public CommonResult getPhoneUser(String phone) {
+
+        if (ObjectUtils.isEmpty(phone)) {
+            return CommonResult.fail("参数异常");
+        }
+//        通过手机号找到对应用户
+        SmartUser smartUser = smartUserService.getPhoneUser(phone);
+
+        return CommonResult.ok(smartUser);
+    }
+
+
+    @Override
+    public CommonResult getPhoneAffiliate(String phone) {
+        if (ObjectUtils.isEmpty(phone)) {
+            return CommonResult.fail("参数异常");
+        }
+
+        SmartUser smartUser = smartUserService.getPhoneUser(phone);
+
+//        用户id,多个就用逗号隔开
+        String affiliate = smartUser.getAffiliate();
+        if (ObjectUtils.isEmpty(affiliate)) {
+            return CommonResult.fail("未关联学生");
+        }
+
+//        通过关联人找到对应用户
+        List<SmartUser> smartUsers=smartUserService.getAffiliateUser(affiliate);
+
+
+        return CommonResult.ok(smartUsers);
+    }
+
     //endregion
 
     //region 查询时间组编号

+ 4 - 0
src/main/java/com/template/mapper/SmartAttendanceMapper.java

@@ -4,6 +4,8 @@ import com.template.model.pojo.SmartAttendance;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * <p>
  * 楼栋表 Mapper 接口
@@ -15,4 +17,6 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface SmartAttendanceMapper extends BaseMapper<SmartAttendance> {
 
+    List<Integer> getGroup();
+
 }

+ 1 - 0
src/main/java/com/template/mapper/SmartScoreMapper.java

@@ -23,4 +23,5 @@ public interface SmartScoreMapper extends BaseMapper<SmartScore> {
 
     List<ScorePageVo> querySmartScores(@Param("name") String name,@Param("semester") String semester, @Param("grade") String grade,@Param("schoolClass") String schoolClass,@Param("subject") Integer subject,@Param("examType") Integer examType,@Param("MinScore") Double MinScore,@Param("MaxScore") Double MaxScore);
 
+    Double getAverageScore(@Param("userId") int userId,@Param("semesterId") Integer semesterId,@Param("smartSemesterId") Integer smartSemesterId);
 }

+ 2 - 0
src/main/java/com/template/mapper/SmartUserMapper.java

@@ -44,4 +44,6 @@ public interface SmartUserMapper extends BaseMapper<SmartUser> {
     int deleteUserBatch(@Param("list") List<deleteUserVo> list);
 
     SmartStudentVo querySmartStudentById(@Param("userId") Integer userId);
+
+    List<SmartUser> getAffiliateUser(@Param("affiliate") String affiliate);
 }

+ 11 - 0
src/main/java/com/template/model/vo/AverageScoreVo.java

@@ -0,0 +1,11 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+@Data
+public class AverageScoreVo {
+    private String subjectName;
+
+    private Double score;
+
+}

+ 18 - 0
src/main/java/com/template/model/vo/HistoricalAttendanceVo.java

@@ -0,0 +1,18 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+@Data
+public class HistoricalAttendanceVo {
+    //  准时
+    private Integer punctuality;
+    //    请假
+    private Integer askForLeave;
+    //    迟到
+    private Integer beLate;
+    //   超时打卡
+    private Integer clockOut;
+    //    未打卡
+    private Integer notClockingIn;
+
+}

+ 5 - 0
src/main/java/com/template/services/SmartAttendanceService.java

@@ -23,4 +23,9 @@ public interface SmartAttendanceService extends IService<SmartAttendance> {
     boolean insertAttendanceBatch(List<SmartAttendance> attendances);
 
     List<SmartAttendance> queryAttendanceList(Date startMonth, Date endMonth);
+
+    List<SmartAttendance> getHistoricalAttendance(Integer userId,Integer status,Date startTime, Date endTime);
+
+    List<Integer> getGroup();
+
 }

+ 10 - 0
src/main/java/com/template/services/SmartScoreService.java

@@ -32,4 +32,14 @@ public interface SmartScoreService extends IService<SmartScore> {
     PageUtils<ScorePageVo> querySmartScorePage(int currentPage, int pageCount, String name, String semester, String grade, String schoolClass, Integer subject, Integer examType, Double MinScore, Double MaxScore, Integer userGradeId, Integer userSchoolClass);
 
     List<ScorePageVo> querySmartScores(String name, String semester, String grade, String schoolClass, Integer subject, Integer examType, Double MinScore, Double MaxScore);
+
+    /**
+     * 获取该学期单个学生的单科总平均分
+     * @param userId
+     * @param semesterId
+     * @param smartSemesterId
+     * @return
+     */
+    Double getAverageScore(int userId, Integer semesterId, Integer smartSemesterId);
+
 }

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

@@ -5,6 +5,8 @@ import com.template.model.pojo.SmartSemester;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.template.model.result.PageUtils;
 
+import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -29,4 +31,9 @@ public interface SmartSemesterService extends IService<SmartSemester> {
     SmartSemester getSmartById(int id);
 
     List<SmartSemester> queryAppletSemesters();
+
+    SmartSemester getSemester(LocalDateTime now);
+
+    List<SmartSemester> getSemesterTime(Date startTime, Date endTime);
+
 }

+ 15 - 0
src/main/java/com/template/services/SmartUserService.java

@@ -99,4 +99,19 @@ public interface SmartUserService extends IService<SmartUser> {
     List<SmartUser> queryUsersByClass(Integer schoolClass);
 
     List<SmartUser> getListUser();
+
+    /**
+     * 通过手机号找到对应的人
+     * @param phone
+     * @return
+     */
+    SmartUser getPhoneUser(String phone);
+
+    /**
+     * 通过关联人找到对应用户
+     * @param affiliate
+     * @return
+     */
+    List<SmartUser> getAffiliateUser(String affiliate);
+
 }

+ 17 - 0
src/main/java/com/template/services/impl/SmartAttendanceServiceImpl.java

@@ -1,5 +1,6 @@
 package com.template.services.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.template.mapper.SmartAuthorGroupMapper;
 import com.template.model.enumModel.eAttendanceStatu;
@@ -66,4 +67,20 @@ public class SmartAttendanceServiceImpl extends ServiceImpl<SmartAttendanceMappe
         List<SmartAttendance> result = smartAttendanceMapper.selectList(queryWrapper);
         return result;
     }
+
+    @Override
+    public List<SmartAttendance> getHistoricalAttendance(Integer userId,Integer status,Date startTime, Date endTime) {
+        LambdaQueryWrapper<SmartAttendance> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.between(SmartAttendance::getAttendTime,startTime,endTime);
+        queryWrapper.eq(SmartAttendance::getStatus,status);
+        queryWrapper.eq(SmartAttendance::getUserId,userId);
+        List<SmartAttendance> result = smartAttendanceMapper.selectList(queryWrapper);
+
+        return result;
+    }
+
+    @Override
+    public List<Integer> getGroup() {
+        return smartAttendanceMapper.getGroup();
+    }
 }

+ 5 - 0
src/main/java/com/template/services/impl/SmartScoreServiceImpl.java

@@ -82,4 +82,9 @@ public class SmartScoreServiceImpl extends ServiceImpl<SmartScoreMapper, SmartSc
         return result;
     }
 
+    @Override
+    public Double getAverageScore(int userId, Integer semesterId, Integer smartSemesterId) {
+        return smartScoreMapper.getAverageScore(userId,semesterId,smartSemesterId);
+    }
+
 }

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

@@ -1,5 +1,7 @@
 package com.template.services.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -14,6 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -77,4 +81,26 @@ public class SmartSemesterServiceImpl extends ServiceImpl<SmartSemesterMapper, S
         List<SmartSemester> result = smartSemesterMapper.selectList(queryWrapper);
         return result;
     }
+
+    @Override
+    public SmartSemester getSemester(LocalDateTime now) {
+        LambdaQueryWrapper<SmartSemester> wrapper=new LambdaQueryWrapper<>();
+        wrapper.le(SmartSemester::getStartTime,now)
+                .ge(SmartSemester::getEndTime,now);
+        List<SmartSemester> list = this.list(wrapper);
+        if (list.size()>0) {
+            return list.get(0);
+        }
+        return null;
+    }
+
+    @Override
+    public List<SmartSemester> getSemesterTime(Date startTime, Date endTime) {
+        LambdaQueryWrapper<SmartSemester> wrapper=new LambdaQueryWrapper<>();
+        wrapper.between(SmartSemester::getStartTime,startTime,endTime)
+                .or()
+                .between(SmartSemester::getEndTime,startTime,endTime);
+        List<SmartSemester> list = this.list(wrapper);
+        return list;
+    }
 }

+ 14 - 0
src/main/java/com/template/services/impl/SmartUserServiceImpl.java

@@ -302,4 +302,18 @@ public class SmartUserServiceImpl extends ServiceImpl<SmartUserMapper, SmartUser
         return smartUserList;
     }
 
+    @Override
+    public SmartUser getPhoneUser(String phone) {
+        LambdaQueryWrapper<SmartUser> wrapper=new LambdaQueryWrapper<>();
+        SmartUser smartUser = this.getOne(wrapper);
+        return smartUser;
+    }
+
+
+    @Override
+    public List<SmartUser> getAffiliateUser(String affiliate) {
+        return smartUserMapper.getAffiliateUser(affiliate);
+    }
+
+
 }

+ 8 - 0
src/main/resources/mapper/template/SmartAttendanceMapper.xml

@@ -2,4 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.template.mapper.SmartAttendanceMapper">
 
+    <select id="getGroup" resultType="java.lang.Integer">
+        SELECT
+            `status`
+        FROM
+            `smart_attendance`
+        GROUP BY
+            `status`
+    </select>
 </mapper>

+ 9 - 0
src/main/resources/mapper/template/SmartScoreMapper.xml

@@ -87,5 +87,14 @@
         </if>
     </select>
 
+    <select id="getAverageScore" resultType="java.lang.Double">
+        SELECT ROUND(AVG(score), 2) as score
+        FROM `smart_score`
+        WHERE user_id = #{userId}
+          AND subject_id = #{smartSemesterId}
+          AND semester_id = #{semesterId} AND deleted=0
+
+    </select>
+
 
 </mapper>

+ 8 - 0
src/main/resources/mapper/template/SmartUserMapper.xml

@@ -236,4 +236,12 @@
         </if>
     </select>
 
+    <select id="getAffiliateUser" resultType="com.template.model.pojo.SmartUser">
+        SELECT * FROM `smart_user`
+        where deleted = 0 and is_cancel=0
+        <if test="affiliate != null and affiliate != ''">
+            and FIND_IN_SET(id,#{affiliate})
+        </if>
+    </select>
+
 </mapper>