فهرست منبع

feat:完成客户端家长登入后查看绑定学生的详情

sakura 1 سال پیش
والد
کامیت
a9a4ccff1f

+ 10 - 0
school-in-out-admin/src/main/java/com/schoolinout/web/controller/api/Api_StudentController.java

@@ -3,9 +3,11 @@ package com.schoolinout.web.controller.api;
 import com.schoolinout.api.service.IApiStudentService;
 import com.schoolinout.common.core.controller.BaseController;
 import com.schoolinout.common.core.domain.AjaxResult;
+import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -21,10 +23,18 @@ public class Api_StudentController extends BaseController {
     @Autowired
     private IApiStudentService studentService;
 
+    @Operation(summary = "获取绑定学生列表")
     @GetMapping("/list")
     public AjaxResult list() {
         Long parentId = getLoginUser().getParentLogin().getId();
         return success(studentService.listStudent(parentId));
     }
 
+    @Operation(summary = "获取绑定学生详情")
+    @GetMapping("/info/{studentId}")
+    public AjaxResult getEditInfo(@PathVariable Long studentId) {
+        Long parentId = getLoginUser().getParentLogin().getId();
+        return success(studentService.listStudentEditInfo(parentId, studentId));
+    }
+
 }

+ 95 - 0
school-in-out-system/src/main/java/com/schoolinout/api/domain/vo/Api_StudentInfoVo.java

@@ -0,0 +1,95 @@
+package com.schoolinout.api.domain.vo;
+
+import com.schoolinout.system.domain.AccessLog;
+import io.swagger.v3.oas.annotations.media.Schema;
+
+import java.util.List;
+
+/**
+ * @author sakura
+ * @date 2024/1/11 15:15:49 Thu
+ */
+@Schema(name = "客户端学生信息详情实体")
+public class Api_StudentInfoVo {
+
+    @Schema(description = "学生id")
+    private Long studentId;
+    @Schema(description = "学生性别")
+    private String studentGender;
+    @Schema(description = "学生姓名")
+    private String studentName;
+    @Schema(description = "学生学号")
+    private String studentNum;
+    @Schema(description = "学生照片")
+    private String studentPic;
+    @Schema(description = "学校姓名")
+    private String schoolName;
+    @Schema(description = "班级姓名")
+    private String className;
+    @Schema(description = "进出学校记录")
+    private List<AccessLog> inoutRecordList;
+
+    public Long getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Long studentId) {
+        this.studentId = studentId;
+    }
+
+    public String getStudentGender() {
+        return studentGender;
+    }
+
+    public void setStudentGender(String studentGender) {
+        this.studentGender = studentGender;
+    }
+
+    public String getStudentName() {
+        return studentName;
+    }
+
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
+
+    public String getStudentNum() {
+        return studentNum;
+    }
+
+    public void setStudentNum(String studentNum) {
+        this.studentNum = studentNum;
+    }
+
+    public String getStudentPic() {
+        return studentPic;
+    }
+
+    public void setStudentPic(String studentPic) {
+        this.studentPic = studentPic;
+    }
+
+    public String getSchoolName() {
+        return schoolName;
+    }
+
+    public void setSchoolName(String schoolName) {
+        this.schoolName = schoolName;
+    }
+
+    public String getClassName() {
+        return className;
+    }
+
+    public void setClassName(String className) {
+        this.className = className;
+    }
+
+    public List<AccessLog> getInoutRecordList() {
+        return inoutRecordList;
+    }
+
+    public void setInoutRecordList(List<AccessLog> inoutRecordList) {
+        this.inoutRecordList = inoutRecordList;
+    }
+}

+ 2 - 0
school-in-out-system/src/main/java/com/schoolinout/api/mapper/ApiStudentMapper.java

@@ -16,4 +16,6 @@ public interface ApiStudentMapper extends BaseMapper<Student> {
     Student selectOnlyOne(Student student);
 
     List<Api_StudentListVo> selectListByParentId(Long parentId);
+
+    Student selectEditInfo(Long studentId);
 }

+ 10 - 0
school-in-out-system/src/main/java/com/schoolinout/api/service/IApiStudentService.java

@@ -1,5 +1,6 @@
 package com.schoolinout.api.service;
 
+import com.schoolinout.api.domain.vo.Api_StudentInfoVo;
 import com.schoolinout.api.domain.vo.Api_StudentListVo;
 import com.schoolinout.system.domain.Student;
 
@@ -11,6 +12,15 @@ import java.util.List;
  */
 public interface IApiStudentService {
     /**
+     * 获取绑定学生详情
+     *
+     * @param parentId  家长id
+     * @param studentId 学生id
+     * @return 结果
+     */
+    public Api_StudentInfoVo listStudentEditInfo(Long parentId, Long studentId);
+
+    /**
      * 查询单个用户
      *
      * @param selectConditionStu 查询条件

+ 29 - 0
school-in-out-system/src/main/java/com/schoolinout/api/service/impl/ApiStudentServiceImpl.java

@@ -1,9 +1,14 @@
 package com.schoolinout.api.service.impl;
 
+import com.schoolinout.api.domain.vo.Api_StudentInfoVo;
 import com.schoolinout.api.domain.vo.Api_StudentListVo;
 import com.schoolinout.api.mapper.ApiStudentMapper;
 import com.schoolinout.api.service.IApiStudentService;
+import com.schoolinout.common.exception.ServiceException;
+import com.schoolinout.common.utils.bean.BeanUtils;
+import com.schoolinout.system.domain.AccessLog;
 import com.schoolinout.system.domain.Student;
+import com.schoolinout.system.mapper.AccessLogMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -18,6 +23,28 @@ public class ApiStudentServiceImpl implements IApiStudentService {
 
     @Autowired
     private ApiStudentMapper studentMapper;
+    @Autowired
+    private AccessLogMapper accessLogMapper;
+
+
+    @Override
+    public Api_StudentInfoVo listStudentEditInfo(Long parentId, Long studentId) {
+        Student student = studentMapper.selectEditInfo(studentId);
+        if (student == null) {
+            throw new ServiceException("没有对应的学生");
+        }
+
+        Api_StudentInfoVo infoVo = new Api_StudentInfoVo();
+        BeanUtils.copyBeanProp(infoVo, student);
+        infoVo.setStudentId(student.getId());
+
+        // 读取进出记录
+        AccessLog accessLog = new AccessLog();
+        accessLog.setStudentId(studentId);
+        List<AccessLog> accessLogs = accessLogMapper.selectAccessLogList(accessLog);
+        infoVo.setInoutRecordList(accessLogs);
+        return infoVo;
+    }
 
     @Override
     public Student listStudentSimple(Student selectConditionStu) {
@@ -28,4 +55,6 @@ public class ApiStudentServiceImpl implements IApiStudentService {
     public List<Api_StudentListVo> listStudent(Long parentId) {
         return studentMapper.selectListByParentId(parentId);
     }
+
+
 }

+ 17 - 1
school-in-out-system/src/main/resources/mapper/api/ApiStudentMapper.xml

@@ -28,13 +28,29 @@
                stu.school_id,
                stu.class_id,
                stu.student_name,
+               stu.student_num,
                stu.student_pic,
                stu.student_gender,
                school.school_name,
                class.class_name
         FROM tb_school_student stu
-                 LEFT JOIN tb_school_student_parent_relation tsspr on stu.id = tsspr.student_id AND tsspr.parent_id = 3
+                 LEFT JOIN tb_school_student_parent_relation tsspr
+                           on stu.id = tsspr.student_id AND tsspr.parent_id = #{studentId}
                  LEFT JOIN tb_school school ON stu.school_id = school.id
                  LEFT JOIN tb_school_class class ON stu.class_id = class.id
     </select>
+    <select id="selectEditInfo" resultType="com.schoolinout.system.domain.Student">
+        SELECT stu.id as student_id,
+               stu.student_name,
+               stu.student_num,
+               stu.student_pic,
+               stu.student_gender,
+               school.school_name,
+               class.class_name
+        FROM tb_school_student stu
+                 LEFT JOIN tb_school_student_parent_relation tsspr on stu.id = tsspr.student_id
+                 LEFT JOIN tb_school school ON stu.school_id = school.id
+                 LEFT JOIN tb_school_class class ON stu.class_id = class.id
+        where stu.id = #{id}
+    </select>
 </mapper>