瀏覽代碼

老師列表

chengpeng 5 年之前
父節點
當前提交
ccc88e2f6c

+ 6 - 0
mec-education/src/main/java/com/ym/mec/education/controller/TeacherController.java

@@ -53,4 +53,10 @@ public class TeacherController {
 
         return teacherService.teacherList(req);
     }
+
+    @PostMapping(value = "/teacherDetail")
+    public BaseResponse teacherDetail(@RequestBody TeacherReq req) {
+        BaseResponse baseResponse = new BaseResponse();
+        return teacherService.teacherDetail(req);
+    }
 }

+ 61 - 22
mec-education/src/main/java/com/ym/mec/education/entity/DemoGroupCoursesPlan.java

@@ -1,12 +1,12 @@
 package com.ym.mec.education.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.enums.IdType;
 import java.util.Date;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
 
 /**
  * <p>
@@ -14,7 +14,7 @@ import java.util.Date;
  * </p>
  *
  * @author lemeng
- * @since 2019-09-25
+ * @since 2019-09-30
  */
 @TableName("demo_group_courses_plan")
 public class DemoGroupCoursesPlan extends Model<DemoGroupCoursesPlan> {
@@ -25,10 +25,19 @@ public class DemoGroupCoursesPlan extends Model<DemoGroupCoursesPlan> {
     private Long id;
     @TableField("demo_group_id_")
     private Long demoGroupId;
-    @TableField("courses_start_time_")
-    private Date coursesStartTime;
     @TableField("create_time_")
     private Date createTime;
+    /**
+     * 是否被预约:0未预约;1已预约
+     */
+    @TableField("status_")
+    private Integer status;
+    @TableField("course_date_")
+    private Date courseDate;
+    @TableField("start_time_")
+    private Date startTime;
+    @TableField("end_time_")
+    private Date endTime;
 
 
     public Long getId() {
@@ -49,21 +58,48 @@ public class DemoGroupCoursesPlan extends Model<DemoGroupCoursesPlan> {
         return this;
     }
 
-    public Date getCoursesStartTime() {
-        return coursesStartTime;
+    public Date getCreateTime() {
+        return createTime;
     }
 
-    public DemoGroupCoursesPlan setCoursesStartTime(Date coursesStartTime) {
-        this.coursesStartTime = coursesStartTime;
+    public DemoGroupCoursesPlan setCreateTime(Date createTime) {
+        this.createTime = createTime;
         return this;
     }
 
-    public Date getCreateTime() {
-        return createTime;
+    public Integer getStatus() {
+        return status;
     }
 
-    public DemoGroupCoursesPlan setCreateTime(Date createTime) {
-        this.createTime = createTime;
+    public DemoGroupCoursesPlan setStatus(Integer status) {
+        this.status = status;
+        return this;
+    }
+
+    public Date getCourseDate() {
+        return courseDate;
+    }
+
+    public DemoGroupCoursesPlan setCourseDate(Date courseDate) {
+        this.courseDate = courseDate;
+        return this;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public DemoGroupCoursesPlan setStartTime(Date startTime) {
+        this.startTime = startTime;
+        return this;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public DemoGroupCoursesPlan setEndTime(Date endTime) {
+        this.endTime = endTime;
         return this;
     }
 
@@ -75,10 +111,13 @@ public class DemoGroupCoursesPlan extends Model<DemoGroupCoursesPlan> {
     @Override
     public String toString() {
         return "DemoGroupCoursesPlan{" +
-        ", id=" + id +
-        ", demoGroupId=" + demoGroupId +
-        ", coursesStartTime=" + coursesStartTime +
-        ", createTime=" + createTime +
-        "}";
+                ", id=" + id +
+                ", demoGroupId=" + demoGroupId +
+                ", createTime=" + createTime +
+                ", status=" + status +
+                ", courseDate=" + courseDate +
+                ", startTime=" + startTime +
+                ", endTime=" + endTime +
+                "}";
     }
 }

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/mapper/DemoGroupCoursesPlanMapper.java

@@ -1,7 +1,7 @@
 package com.ym.mec.education.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ym.mec.education.entity.DemoGroupCoursesPlan;
-import com.baomidou.mybatisplus.mapper.BaseMapper;
 
 /**
  * <p>

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/mapper/DemoGroupMapper.java

@@ -1,6 +1,6 @@
 package com.ym.mec.education.mapper;
 
-import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ym.mec.education.entity.DemoGroup;
 
 /**

+ 5 - 2
mec-education/src/main/java/com/ym/mec/education/mapper/xml/DemoGroupCoursesPlanMapper.xml

@@ -6,13 +6,16 @@
     <resultMap id="BaseResultMap" type="com.ym.mec.education.entity.DemoGroupCoursesPlan">
         <id column="id_" property="id" />
         <result column="demo_group_id_" property="demoGroupId" />
-        <result column="courses_start_time_" property="coursesStartTime" />
         <result column="create_time_" property="createTime" />
+        <result column="status_" property="status" />
+        <result column="course_date_" property="courseDate" />
+        <result column="start_time_" property="startTime" />
+        <result column="end_time_" property="endTime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id_, demo_group_id_, courses_start_time_, create_time_
+        id_, demo_group_id_, create_time_, status_, course_date_, start_time_, end_time_
     </sql>
 
 </mapper>

+ 2 - 0
mec-education/src/main/java/com/ym/mec/education/req/TeacherReq.java

@@ -14,4 +14,6 @@ import lombok.ToString;
 public class TeacherReq extends BaseQuery {
 
     private String name;
+
+    private Integer userId;
 }

+ 54 - 0
mec-education/src/main/java/com/ym/mec/education/resp/TeacherDetailResp.java

@@ -0,0 +1,54 @@
+package com.ym.mec.education.resp;
+
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @version V1.0
+ * @Description: TODO
+ * @date Date : 2019年09月29日 13:45
+ */
+@Data
+@ToString
+public class TeacherDetailResp implements Serializable {
+
+    private Integer userId;
+
+    private String name;
+
+    private String avatar;
+
+    private List<String> subjectName;
+
+    private List<String> className;
+
+    private Integer vipClassNum;
+
+    private Integer groupClassNum;
+
+    private List<InnerDemoGroup> demoGroups;
+
+
+
+    @Data
+    public static class InnerDemoGroup{
+        private String dateStr;
+
+        private String week;
+
+        private List<DemoGroupPlan> demoGroupPlans;
+
+
+    }
+
+    @Data
+    public static  class DemoGroupPlan{
+
+        private String startTime;
+
+        private String endTime;
+    }
+}

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/service/IDemoGroupCoursesPlanService.java

@@ -1,7 +1,7 @@
 package com.ym.mec.education.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.education.entity.DemoGroupCoursesPlan;
-import com.baomidou.mybatisplus.service.IService;
 
 /**
  * <p>

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/service/IDemoGroupService.java

@@ -1,7 +1,7 @@
 package com.ym.mec.education.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.education.entity.DemoGroup;
-import com.baomidou.mybatisplus.service.IService;
 
 /**
  * <p>

+ 3 - 0
mec-education/src/main/java/com/ym/mec/education/service/ITeacherService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.education.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.education.base.BaseResponse;
 import com.ym.mec.education.base.PageResponse;
 import com.ym.mec.education.entity.Teacher;
 import com.ym.mec.education.req.TeacherReq;
@@ -16,4 +17,6 @@ import com.ym.mec.education.req.TeacherReq;
 public interface ITeacherService extends IService<Teacher> {
 
     PageResponse teacherList(TeacherReq req);
+
+    BaseResponse teacherDetail(TeacherReq req);
 }

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/service/impl/DemoGroupCoursesPlanServiceImpl.java

@@ -1,9 +1,9 @@
 package com.ym.mec.education.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.education.entity.DemoGroupCoursesPlan;
 import com.ym.mec.education.mapper.DemoGroupCoursesPlanMapper;
 import com.ym.mec.education.service.IDemoGroupCoursesPlanService;
-import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 /**

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/service/impl/DemoGroupServiceImpl.java

@@ -1,9 +1,9 @@
 package com.ym.mec.education.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.education.entity.DemoGroup;
 import com.ym.mec.education.mapper.DemoGroupMapper;
 import com.ym.mec.education.service.IDemoGroupService;
-import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 /**

+ 89 - 4
mec-education/src/main/java/com/ym/mec/education/service/impl/TeacherServiceImpl.java

@@ -4,21 +4,23 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ym.mec.education.base.BaseResponse;
 import com.ym.mec.education.base.PageResponse;
 import com.ym.mec.education.entity.*;
+import com.ym.mec.education.enums.ClassGroupTypeEnum;
 import com.ym.mec.education.enums.ReturnCodeEnum;
 import com.ym.mec.education.mapper.TeacherMapper;
 import com.ym.mec.education.req.TeacherReq;
+import com.ym.mec.education.resp.TeacherDetailResp;
 import com.ym.mec.education.resp.TeacherResp;
 import com.ym.mec.education.service.*;
+import com.ym.mec.education.utils.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -40,9 +42,15 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
 
     @Autowired
     private IClassGroupService classGroupService;
+
+    @Autowired
+    private IDemoGroupService demoGroupService;
     @Autowired
     private IClassGroupTeacherMapperService classGroupTeacherMapperService;
 
+    @Autowired
+    private IDemoGroupCoursesPlanService demoGroupCoursesPlanService;
+
     @Override
     public PageResponse teacherList(TeacherReq req) {
         PageResponse response = new PageResponse();
@@ -105,6 +113,83 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
         response.setMessage(ReturnCodeEnum.CODE_200.getValue());
         response.setRecords(teacherRespList);
         response.setTotal(Math.toIntExact(teacherIPage.getTotal()));
-        return null;
+        return response;
+    }
+
+    @Override
+    public BaseResponse teacherDetail(TeacherReq req) {
+
+        TeacherDetailResp teacherDetailResp = new TeacherDetailResp();
+        if(req == null || req.getUserId() == null){
+            return  BaseResponse.errorParam();
+        }
+        QueryWrapper<ClassGroupTeacherMapper> mapperQueryWrapper = new QueryWrapper<>();
+        mapperQueryWrapper.eq("user_id_",req.getUserId());
+        List<ClassGroupTeacherMapper> groupTeacherMapperList =  classGroupTeacherMapperService.list(mapperQueryWrapper);
+
+        if(!CollectionUtils.isEmpty(groupTeacherMapperList)){
+            List<Integer> classIds = groupTeacherMapperList.stream().map(ClassGroupTeacherMapper :: getClassGroupId).collect(Collectors.toList());
+            QueryWrapper<ClassGroup> queryWrapper = new QueryWrapper<>();
+            queryWrapper.in("id_",classIds);
+            List<ClassGroup> classGroups = classGroupService.list(queryWrapper);
+            if(!CollectionUtils.isEmpty(classGroups)){
+                List<ClassGroup> norClass = classGroups.stream().filter(e -> ClassGroupTypeEnum.NORMAL.getCode().equalsIgnoreCase(e.getType()) ||
+                                ClassGroupTypeEnum.MIX.getCode().equalsIgnoreCase(e.getType()) ||  ClassGroupTypeEnum.HIGH.getCode().equalsIgnoreCase(e.getType())).collect(Collectors.toList());
+
+                List<ClassGroup> vipClass = classGroups.stream().filter(e -> ClassGroupTypeEnum.VIP.getCode().equalsIgnoreCase(e.getType())).collect(Collectors.toList());
+                if(!CollectionUtils.isEmpty(norClass)){
+                    Integer norCount = norClass.stream().mapToInt(ClassGroup::getTotalClassTimes).sum();
+                    teacherDetailResp.setGroupClassNum(norCount * norClass.size());
+                }
+
+                if(!CollectionUtils.isEmpty(vipClass)){
+                    Integer vipCount = vipClass.stream().mapToInt(ClassGroup::getTotalClassTimes).sum();
+                    teacherDetailResp.setVipClassNum(vipCount * vipClass.size());
+                }
+                QueryWrapper<DemoGroup> demoGroupQueryWrapper = new QueryWrapper<>();
+                demoGroupQueryWrapper.eq("user_id_",req.getUserId());
+                List<DemoGroup> demoGroupList = demoGroupService.list(demoGroupQueryWrapper);
+                if(!CollectionUtils.isEmpty(demoGroupList)){
+                    List<Long> demoId = demoGroupList.stream().map(e ->e.getId()).collect(Collectors.toList());
+                    QueryWrapper<DemoGroupCoursesPlan> planQueryWrapper = new QueryWrapper<>();
+                    planQueryWrapper.in("demo_group_id_",demoId);
+                    List<DemoGroupCoursesPlan> demoGroupCoursesPlans =  demoGroupCoursesPlanService.list(planQueryWrapper);
+                    if(!CollectionUtils.isEmpty(demoGroupCoursesPlans)){
+                        Map<Date, List<DemoGroupCoursesPlan>> collect = demoGroupCoursesPlans.stream()
+                                .collect(
+                                        Collectors.groupingBy(DemoGroupCoursesPlan::getCourseDate));
+
+
+
+                        if(!CollectionUtils.isEmpty(collect)) {
+                            List<TeacherDetailResp.InnerDemoGroup> innerDemoGroups = new ArrayList<>();
+                            for (Date key : collect.keySet()) {
+                                TeacherDetailResp.InnerDemoGroup demoGroup = new TeacherDetailResp.InnerDemoGroup();
+                                demoGroup.setDateStr(DateUtil.date2String(key,DateUtil.DATE_FORMAT));
+                                demoGroup.setWeek(DateUtil.date2Week(key));
+
+                                List<DemoGroupCoursesPlan> demoGroupCoursesPlans1 = collect.get(key);
+                                if(!CollectionUtils.isEmpty(demoGroupCoursesPlans1)){
+                                    List<TeacherDetailResp.DemoGroupPlan> planList = new ArrayList<>();
+                                    demoGroupCoursesPlans1.forEach(e ->{
+                                        TeacherDetailResp.DemoGroupPlan demoGroupPlan = new TeacherDetailResp.DemoGroupPlan();
+                                        demoGroupPlan.setStartTime(DateUtil.date2String(e.getStartTime(),DateUtil.TIME_FORMAT));
+                                        demoGroupPlan.setEndTime(DateUtil.date2String(e.getEndTime(),DateUtil.TIME_FORMAT));
+                                        planList.add(demoGroupPlan);
+                                    });
+                                    demoGroup.setDemoGroupPlans(planList);
+                                }
+                            }
+                            teacherDetailResp.setDemoGroups(innerDemoGroups);
+
+                        }
+
+                    }
+                }
+
+            }
+
+        }
+        return BaseResponse.success(teacherDetailResp);
     }
 }

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/utils/DateUtil.java

@@ -17,7 +17,7 @@ import java.util.Date;
 public class DateUtil {
 
     private static final String DATE_FORMAT_CHINESE = "MM月dd日";
-    private static final String TIME_FORMAT = "HH:mm";
+    public static final String TIME_FORMAT = "HH:mm";
     public static final String DATE_FORMAT = "MM-dd";
     public static final String DATE_FORMAT_HOUR = "MM-dd HH:mm";
     private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>();

+ 1 - 1
mec-education/src/main/java/test/MpGenerator.java

@@ -72,7 +72,7 @@ public class MpGenerator {
         // strategy.setCapitalMode(true);// 全局大写命名 ORACLE 注意
         //strategy.setTablePrefix(new String[]{"tb_", "tsys_"});// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-         //strategy.setInclude(new String[] { "sys_user" }); // 需要生成的表
+         strategy.setInclude(new String[] { "demo_group_courses_plan" }); // 需要生成的表
          //strategy.setExclude(new String[]{"sys_user"}); // 排除生成的表
         // 自定义实体父类
         // strategy.setSuperEntityClass("com.baomidou.demo.TestEntity");