Quellcode durchsuchen

课表手机端接口提交

dzx vor 1 Jahr
Ursprung
Commit
c24619380c

+ 5 - 2
src/main/java/com/xjrsoft/module/courseTable/entity/CourseTable.java

@@ -26,7 +26,7 @@ public class CourseTable implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("主键编号")
-      private Long id;
+    private Long id;
 
     @ApiModelProperty("学期ID(base_semester)")
     private Long baseSemesterId;
@@ -65,7 +65,7 @@ public class CourseTable implements Serializable {
     private Integer timeNumber;
 
     @ApiModelProperty("场地编号(site)")
-    private Integer siteId;
+    private Long siteId;
 
     @ApiModelProperty("场地名称")
     private String siteName;
@@ -82,4 +82,7 @@ public class CourseTable implements Serializable {
     @TableField(fill = FieldFill.UPDATE)
     private LocalDateTime modifyDate;
 
+    @ApiModelProperty("源数据")
+    private String sourceData;
+
 }

+ 2 - 1
src/main/java/com/xjrsoft/module/courseTable/mapper/CourseTableMapper.java

@@ -5,6 +5,7 @@ import com.xjrsoft.module.courseTable.entity.CourseTable;
 import com.xjrsoft.module.schedule.dto.CourseTableDto;
 import com.xjrsoft.module.schedule.vo.CourseDetailVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -18,5 +19,5 @@ import java.util.List;
  */
 @Mapper
 public interface CourseTableMapper extends MPJBaseMapper<CourseTable> {
-    List<CourseDetailVo> getList(CourseTableDto dto);
+    List<CourseDetailVo> getList(@Param("dto") CourseTableDto dto);
 }

+ 27 - 6
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -46,6 +46,10 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.time.Duration;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -162,33 +166,50 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
 
     @Override
     public CourseTableVo getList(CourseTableDto dto) {
-        List<CourseDetailVo> list = courseTableMapper.getList(dto);
+
         List<ClassTime> classTimes = classTimeMapper.selectList(null);
 
         CourseTableVo tableVo = new CourseTableVo();
-        tableVo.setCourseList(list);
-        tableVo.setClassHour(list.size());
         tableVo.setClassTimeList(classTimes);
 
         if(dto.getSemesterId() != null){
             BaseSemester baseSemester = baseSemesterMapper.selectById(dto.getSemesterId());
             tableVo.setSemesterName(baseSemester.getName());
+            LocalDateTime now = LocalDateTime.now();
+            //计算本周是第几周
+            LocalDateTime startDateTime = LocalDateTime.ofInstant(baseSemester.getStartDate().toInstant(), ZoneId.systemDefault());
+            LocalDateTime endDateTime = LocalDateTime.ofInstant(baseSemester.getEndDate().toInstant(), ZoneId.systemDefault());
+            Duration between = Duration.between(startDateTime, endDateTime);
+            long days = between.toDays();
+            int weeks = (int) Math.ceil((double) days / 7);
+            for (int i = 0; i < weeks; i ++){
+                LocalDateTime startDate = startDateTime.plusDays(i * 7).withHour(0).withMinute(0).withSecond(0).withNano(0);
+                LocalDateTime endDate = startDateTime.plusDays((i + 1) * 7).withHour(23).withMinute(59).withSecond(59).withNano(9999);
+                if(now.isAfter(startDate) && now.isBefore(endDate)){
+                    tableVo.setWeek("第" + (i + 1) + "周");
+                }
+            }
         }
-        if(!StrUtil.isEmpty(dto.getTeacherName()) || !StrUtil.isEmpty(dto.getJobNumber())){
+        if(!StrUtil.isEmpty(dto.getTeacherName())){
             List<XjrUser> userList = teacherbaseManagerService.list(
                 new QueryWrapper<XjrUser>().lambda()
                 .like(!StrUtil.isEmpty(dto.getTeacherName()), XjrUser::getName, dto.getTeacherName())
                 .like(!StrUtil.isEmpty(dto.getJobNumber()), XjrUser::getCode, dto.getJobNumber())
             );
             if(userList != null && !userList.isEmpty()){
-                tableVo.setTeacherName(userList.get(0).getName());
+                XjrUser xjrUser = userList.get(0);
+                dto.setTeacherId(xjrUser.getId());
+                tableVo.setTeacherName(xjrUser.getName());
             }
         }
+        List<CourseDetailVo> list = courseTableMapper.getList(dto);
+        tableVo.setCourseList(list);
+        tableVo.setClassHour(list.size());
         if(dto.getClassId() != null){
             BaseClass baseClass = baseClassService.getById(dto.getClassId());
             tableVo.setClassName(baseClass.getName());
         }
-        //设置第几周
+
         return tableVo;
     }
 

+ 39 - 4
src/main/java/com/xjrsoft/module/schedule/controller/ScheduleController.java

@@ -1,8 +1,10 @@
 package com.xjrsoft.module.schedule.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.db.Db;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.gson.JsonArray;
 import com.xjrsoft.common.constant.GlobalConstant;
 import com.xjrsoft.common.enums.DeleteMark;
@@ -17,6 +19,11 @@ import com.xjrsoft.module.schedule.entity.JianyueData;
 import com.xjrsoft.module.schedule.service.ICourseReceiveMsgService;
 import com.xjrsoft.module.schedule.service.IJianyueDataService;
 import com.xjrsoft.module.schedule.util.DataUtil;
+import com.xjrsoft.module.schedule.vo.CourseTableVo;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
+import com.xjrsoft.module.student.service.impl.IBaseStudentSchoolRollService;
+import com.xjrsoft.module.teacher.entity.BaseTeacher;
+import com.xjrsoft.module.teacher.service.IBaseTeacherService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -26,6 +33,8 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.sql.DataSource;
+import java.time.DayOfWeek;
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -49,6 +58,8 @@ public class ScheduleController {
     private final ICourseReceiveMsgService courseReceiveMsgService;
     private final IJianyueDataService jianyueDataService;
     private final ICourseTableService courseTableService;
+    private final IBaseStudentSchoolRollService baseStudentSchoolRollService;
+    private final IBaseTeacherService baseTeacherService;
 
     @GetMapping(value = "/receive-msg")
     @ApiOperation(value="接收消息")
@@ -121,11 +132,35 @@ public class ScheduleController {
     }
 
     @GetMapping(value = "/course-table")
-    @ApiOperation(value="接收消息")
+    @ApiOperation(value="课表接口(PC端)")
+    @SaCheckPermission("room:detail")
+    public RT<CourseTableVo> courseInfo(CourseTableDto dto){
+        CourseTableVo list = courseTableService.getList(dto);
+        return RT.ok(list);
+    }
+
+    @GetMapping(value = "/course-table-day")
+    @ApiOperation(value="今日课表接口(手机端)")
     @SaCheckPermission("room:detail")
-    public RT<CourseReceiveMsg> courseInfo(CourseTableDto dto){
-        courseTableService.list();
-        return null;
+    public RT<CourseTableVo> courseInfoDay(CourseTableDto dto){
+        DayOfWeek dayOfWeek = LocalDateTime.now().getDayOfWeek();
+        dto.setWeekDay(dayOfWeek.getValue());
+        // 查询登录者身份
+        long loginIdAsLong = StpUtil.getLoginIdAsLong();
+        List<BaseStudentSchoolRoll> schoolRolls = baseStudentSchoolRollService.list(
+            new QueryWrapper<BaseStudentSchoolRoll>().lambda().eq(BaseStudentSchoolRoll::getUserId, loginIdAsLong)
+        );
+        if(schoolRolls != null && !schoolRolls.isEmpty()){
+            dto.setCourseType("class");
+            dto.setClassId(schoolRolls.get(0).getClassId());
+        }
+        List<BaseTeacher> teachers = baseTeacherService.list(new QueryWrapper<BaseTeacher>().lambda().eq(BaseTeacher::getUserId, loginIdAsLong));
+        if(teachers != null && !teachers.isEmpty()){
+            dto.setCourseType("teacher");
+            dto.setTeacherId(loginIdAsLong);
+        }
+        CourseTableVo list = courseTableService.getList(dto);
+        return RT.ok(list);
     }
 
 }

+ 6 - 0
src/main/java/com/xjrsoft/module/schedule/dto/CourseTableDto.java

@@ -24,6 +24,9 @@ public class CourseTableDto implements Serializable {
     @ApiModelProperty("周次")
     private Integer week;
 
+    @ApiModelProperty("周几")
+    private Integer weekDay;
+
     @ApiModelProperty("姓名(课表类型为teachar时使用)")
     private String teacherName;
     @ApiModelProperty("工号(课表类型为teachar时使用)")
@@ -36,4 +39,7 @@ public class CourseTableDto implements Serializable {
     @ApiModelProperty("专业方向id(课表类型为class时使用)")
     private Long majorSetId;
 
+    @ApiModelProperty("教师id")
+    private Long teacherId;
+
 }

+ 5 - 2
src/main/java/com/xjrsoft/module/schedule/vo/CourseDetailVo.java

@@ -16,8 +16,11 @@ public class CourseDetailVo {
     @ApiModelProperty("教师名称(课表类型为teacher时使用)")
     private String teacherName;
 
-    @ApiModelProperty("教室名称")
-    private Integer classroomName;
+    @ApiModelProperty("班级名称(课表类型为teacher时使用)")
+    private String className;
+
+    @ApiModelProperty("教室名称(课表类型为class时使用)")
+    private String classroomName;
 
     @ApiModelProperty("星期几(1-7)")
     private Integer weeks;

+ 20 - 0
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentSchoolRollServiceImpl.java

@@ -0,0 +1,20 @@
+package com.xjrsoft.module.student.service.impl;
+
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
+import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+* @title: 助学金申请
+* @Author dzx
+* @Date: 2023-11-24
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class BaseStudentSchoolRollServiceImpl extends MPJBaseServiceImpl<BaseStudentSchoolRollMapper, BaseStudentSchoolRoll> implements IBaseStudentSchoolRollService {
+
+    private final BaseStudentSchoolRollMapper baseStudentSchoolRollMapper;
+}

+ 16 - 0
src/main/java/com/xjrsoft/module/student/service/impl/IBaseStudentSchoolRollService.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.student.service.impl;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
+
+/**
+* @title: 奖学金申请
+* @Author dzx
+* @Date: 2023-11-23
+* @Version 1.0
+*/
+
+public interface IBaseStudentSchoolRollService extends MPJBaseService<BaseStudentSchoolRoll> {
+
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/teacher/service/IBaseTeacherService.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.teacher.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.teacher.entity.BaseTeacher;
+import com.xjrsoft.module.teacher.entity.XjrUser;
+
+import java.util.List;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2023-08-08
+* @Version 1.0
+*/
+
+public interface IBaseTeacherService extends MPJBaseService<BaseTeacher> {
+}

+ 19 - 0
src/main/java/com/xjrsoft/module/teacher/service/impl/BaseTeacherServiceImpl.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.teacher.service.impl;
+
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.teacher.entity.BaseTeacher;
+import com.xjrsoft.module.teacher.mapper.BaseTeacherMapper;
+import com.xjrsoft.module.teacher.service.IBaseTeacherService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+* @title: service
+* @Author 管理员
+* @Date: 2023-08-08
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class BaseTeacherServiceImpl extends MPJBaseServiceImpl<BaseTeacherMapper, BaseTeacher> implements IBaseTeacherService {
+}

+ 6 - 6
src/main/resources/mapper/courseTable/CourseTable.xml

@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.courseTable.mapper.CourseTableMapper">
     <select id="getList" parameterType="com.xjrsoft.module.schedule.dto.CourseTableDto" resultType="com.xjrsoft.module.schedule.vo.CourseDetailVo">
-        SELECT t1.course_name, t2.name AS teacher_name,CONCAT(t4.name,t3.name) AS classroom_name,t1.weeks,t1.time_period,t1.time_number FROM course_table t1
+        SELECT t1.course_name, t2.name AS teacher_name,CONCAT(t4.name,t3.name) AS classroom_name,t1.weeks,t1.time_period,t1.time_number,t5.name as class_name FROM course_table t1
         LEFT JOIN xjr_user t2 ON t1.teacher_id = t2.id
         LEFT JOIN base_classroom t3 ON t1.site_id = t3.id
         LEFT JOIN base_office_build t4 ON t3.office_build_id = t4.id
@@ -14,12 +14,12 @@
         <if test="dto.semesterId != null">
             and t1.base_semester_id = #{dto.semesterId}
         </if>
+        <if test="dto.weekDay != null">
+            and t1.weeks = #{dto.weekDay}
+        </if>
         <if test="dto.courseType != null and dto.courseType != '' and dto.courseType == 'teacher'">
-            <if test="dto.teacherName != null and dto.teacherName != ''">
-                and t2.name like concat('%', #{dto.teacherName},'%')
-            </if>
-            <if test="dto.jobNumber != null and dto.jobNumber != ''">
-                and t2.code like concat('%', #{dto.jobNumber},'%')
+            <if test="dto.teacherId != null ">
+                and t1.teacher_id = #{dto.teacherId}
             </if>
         </if>
 

+ 6 - 1
src/main/resources/sqlScript/20240125_sql.sql

@@ -84,6 +84,11 @@ CREATE TABLE course_receive_msg
     `is_callback` INT NULL DEFAULT NULL COMMENT '是否已回调',
     PRIMARY KEY (`id`)
 ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '课表发布消息接收';
+-- 课表,字段长度调整
+ALTER TABLE course_table`
+    CHANGE `site_id` `site_id` BIGINT DEFAULT 0  NOT NULL   COMMENT '场地编号(site)',
+    ADD COLUMN `source_data` TEXT NULL   COMMENT '源数据' AFTER `jianyue_id`;
+
 
 DROP PROCEDURE IF EXISTS createCom;
 DELIMITER $$
@@ -167,7 +172,7 @@ CREATE TABLE quota_formula_rule
     `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
     `name` VARCHAR(255) NULL DEFAULT NULL COMMENT '规则名称',
     `formula`  VARCHAR(1000) NULL DEFAULT NULL COMMENT '规则公式',
-    `bind_quota` VARCHAR(50) NULL DEFAULT NULL COMMENT '指标',
+    `bind_quota` VARCHAR(2000) NULL DEFAULT NULL COMMENT '指标',
     `remark`  VARCHAR(500) NULL DEFAULT NULL COMMENT '备注',
     PRIMARY KEY (`id`)
 ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '指标公式规则管理';