Selaa lähdekoodia

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 vuotta sitten
vanhempi
commit
8cbbc50fd8
16 muutettua tiedostoa jossa 393 lisäystä ja 47 poistoa
  1. 0 2
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java
  2. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercises.java
  3. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercisesReply.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java
  5. 61 21
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseQueryInfo.java
  6. 72 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseReplyQueryInfo.java
  7. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesMessageServiceImpl.java
  8. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java
  9. 13 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java
  10. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java
  11. 26 2
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml
  12. 38 2
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml
  13. 7 7
      mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml
  14. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java
  15. 43 0
      mec-web/src/main/java/com/ym/mec/web/controller/ExtracurricularExercisesController.java
  16. 29 0
      mec-web/src/main/java/com/ym/mec/web/controller/ExtracurricularExercisesReplyController.java

+ 0 - 2
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java

@@ -1,8 +1,6 @@
 package com.ym.mec.auth.api.entity;
 
-import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.io.Serializable;
 import java.util.Date;

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercises.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.dal.entity;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import com.ym.mec.auth.api.entity.SysUser;
+
 /**
  * 对应数据库表(extracurricular_exercises):
  */
@@ -13,6 +15,8 @@ public class ExtracurricularExercises {
 	/** 老师编号 */
 	private Integer teacherId;
 	
+	private SysUser teacher = new SysUser();
+	
 	/** 学生列表 */
 	private String studentIdList;
 	
@@ -159,6 +163,14 @@ public class ExtracurricularExercises {
 		return this.updateTime;
 	}
 			
+	public SysUser getTeacher() {
+		return teacher;
+	}
+
+	public void setTeacher(SysUser teacher) {
+		this.teacher = teacher;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercisesReply.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.dal.entity;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import com.ym.mec.auth.api.entity.SysUser;
+
 /**
  * 对应数据库表(extracurricular_exercises_reply):
  */
@@ -13,9 +15,13 @@ public class ExtracurricularExercisesReply {
 	/**  */
 	private Long extracurricularExercisesId;
 	
+	private ExtracurricularExercises extracurricularExercises = new ExtracurricularExercises();
+	
 	/**  */
 	private Integer userId;
 	
+	private SysUser user = new SysUser();
+	
 	/** 作品附件 */
 	private String attachments;
 	
@@ -37,6 +43,14 @@ public class ExtracurricularExercisesReply {
 	/** 是否已查看 */
 	private Integer isView;
 	
+	public ExtracurricularExercises getExtracurricularExercises() {
+		return extracurricularExercises;
+	}
+
+	public void setExtracurricularExercises(ExtracurricularExercises extracurricularExercises) {
+		this.extracurricularExercises = extracurricularExercises;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -117,6 +131,14 @@ public class ExtracurricularExercisesReply {
 		return this.isView;
 	}
 			
+	public SysUser getUser() {
+		return user;
+	}
+
+	public void setUser(SysUser user) {
+		this.user = user;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -57,6 +57,16 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     HOMEWORK_STUDENT_REPLY_PUSH("HOMEWORK_STUDENT_REPLY_PUSH", "学生作业回复提醒"),
     HOMEWORK_TEACHER_REPLY_PUSH("HOMEWORK_TEACHER_REPLY_PUSH", "教师回复作业提醒"),
 
+    /** 课外训练消息 */
+    EXTRA_REMIND_PUSH("EXTRA_REMIND_PUSH", "作业提醒"),
+    EXTRA_REMIND_IM("EXTRA_REMIND_IM", "作业提醒"),
+    EXTRA_TEACHER_REPLY_PUSH("EXTRA_TEACHER_REPLY_PUSH", "作业点评提醒"),
+    EXTRA_TEACHER_REPLY_IM("EXTRA_TEACHER_REPLY_IM", "作业点评提醒"),
+    EXTRA_SUBMIT_PUSH("EXTRA_SUBMIT_PUSH", "作业提交提醒"),
+    EXTRA_SUBMIT_IM("EXTRA_SUBMIT_IM", "作业提交提醒"),
+    EXTRA_STUDENT_REPLY_PUSH("EXTRA_STUDENT_REPLY_PUSH", "作业回复提醒"),
+    EXTRA_STUDENT_REPLY_IM("EXTRA_STUDENT_REPLY_IM", "作业回复提醒"),
+
     TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN("TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN", "乐团课新增安排"),
     TEACHER_SMS_VIP_COURSE_APPLY_RESULT("TEACHER_SMS_VIP_COURSE_APPLY_RESULT", "VIP课申请结果"),
     TEACHER_PUSH_VIP_COURSE_APPLY_RESULT("TEACHER_PUSH_VIP_COURSE_APPLY_RESULT", "VIP课申请结果"),

+ 61 - 21
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseQueryInfo.java

@@ -10,33 +10,73 @@ import java.util.Date;
  */
 public class ExtraExercilseQueryInfo extends QueryInfo {
 
-    private Integer teacherId;
+	private String batchNo;// 批次号
 
-    private Integer studentId;
+	private Integer teacherId;
 
-    private Date createTime;
+	private Integer studentId;
 
-    public Integer getTeacherId() {
-        return teacherId;
-    }
+	private Date createTime;
 
-    public void setTeacherId(Integer teacherId) {
-        this.teacherId = teacherId;
-    }
+	private String title;// 作业标题
 
-    public Integer getStudentId() {
-        return studentId;
-    }
+	private Date assignStartTime;// 布置作业的开始时间
 
-    public void setStudentId(Integer studentId) {
-        this.studentId = studentId;
-    }
+	private Date assignEndTime;// 布置作业的结束时间
 
-    public Date getCreateTime() {
-        return createTime;
-    }
+	public Integer getTeacherId() {
+		return teacherId;
+	}
 
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
+	public void setTeacherId(Integer teacherId) {
+		this.teacherId = teacherId;
+	}
+
+	public Integer getStudentId() {
+		return studentId;
+	}
+
+	public void setStudentId(Integer studentId) {
+		this.studentId = studentId;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public String getBatchNo() {
+		return batchNo;
+	}
+
+	public void setBatchNo(String batchNo) {
+		this.batchNo = batchNo;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	public Date getAssignStartTime() {
+		return assignStartTime;
+	}
+
+	public void setAssignStartTime(Date assignStartTime) {
+		this.assignStartTime = assignStartTime;
+	}
+
+	public Date getAssignEndTime() {
+		return assignEndTime;
+	}
+
+	public void setAssignEndTime(Date assignEndTime) {
+		this.assignEndTime = assignEndTime;
+	}
 }

+ 72 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseReplyQueryInfo.java

@@ -0,0 +1,72 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/3/26
+ */
+public class ExtraExercilseReplyQueryInfo extends QueryInfo {
+	
+	private Long extracurricularExercisesId;
+
+	private Integer teacherId;
+
+	private Integer studentId;
+
+	private String title;
+
+	private Date submitStartTime;// 提交作业的开始时间
+
+	private Date submitEndTime;// 提交作业的结束时间
+
+	public Long getExtracurricularExercisesId() {
+		return extracurricularExercisesId;
+	}
+
+	public void setExtracurricularExercisesId(Long extracurricularExercisesId) {
+		this.extracurricularExercisesId = extracurricularExercisesId;
+	}
+
+	public Integer getTeacherId() {
+		return teacherId;
+	}
+
+	public void setTeacherId(Integer teacherId) {
+		this.teacherId = teacherId;
+	}
+
+	public Integer getStudentId() {
+		return studentId;
+	}
+
+	public void setStudentId(Integer studentId) {
+		this.studentId = studentId;
+	}
+
+	public Date getSubmitStartTime() {
+		return submitStartTime;
+	}
+
+	public void setSubmitStartTime(Date submitStartTime) {
+		this.submitStartTime = submitStartTime;
+	}
+
+	public Date getSubmitEndTime() {
+		return submitEndTime;
+	}
+
+	public void setSubmitEndTime(Date submitEndTime) {
+		this.submitEndTime = submitEndTime;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+}

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesMessageServiceImpl.java

@@ -1,16 +1,23 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.ExtracurricularExercisesDao;
 import com.ym.mec.biz.dal.dao.ExtracurricularExercisesMessageDao;
 import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.StudentCourseHomeworkCommentDto;
+import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesMessage;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.page.StudentCourseHomeworkReplyQueryInfo;
 import com.ym.mec.biz.service.ExtracurricularExercisesMessageService;
+import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +33,12 @@ public class ExtracurricularExercisesMessageServiceImpl extends BaseServiceImpl<
 	private ExtracurricularExercisesMessageDao extracurricularExercisesMessageDao;
 	@Autowired
 	private ExtracurricularExercisesReplyDao extracurricularExercisesReplyDao;
+	@Autowired
+	private ExtracurricularExercisesDao extracurricularExercisesDao;
+	@Autowired
+	private SysMessageService sysMessageService;
+	@Autowired
+	private TeacherDao teacherDao;
 
 	@Override
 	public BaseDAO<Long, ExtracurricularExercisesMessage> getDAO() {
@@ -46,9 +59,32 @@ public class ExtracurricularExercisesMessageServiceImpl extends BaseServiceImpl<
 		if(Objects.isNull(extracurricularExercisesReply)){
 			throw new BizException("课外训练不存在");
 		}
+		ExtracurricularExercises extracurricularExercises = extracurricularExercisesDao.get(extracurricularExercisesReply.getExtracurricularExercisesId());
 		if("TEACHER".equals(extracurricularExercisesMessage.getRole())&&Objects.nonNull(extracurricularExercisesReply.getAttachments())){
 			extracurricularExercisesReply.setIsReplied(1);
 			extracurricularExercisesReplyDao.update(extracurricularExercisesReply);
+
+			Map<Integer, String> userMap = new HashMap<>();
+			userMap.put(extracurricularExercisesReply.getUserId(),extracurricularExercisesReply.getUserId().toString());
+			String notifyUrl = "3?courseScheduleID=" + extracurricularExercisesReply.getId() + "&studentCourseHomeworkId=" + extracurricularExercisesReply.getId();
+
+			sysMessageService.batchSendImMessage(MessageTypeEnum.EXTRA_TEACHER_REPLY_IM,extracurricularExercises.getTeacherId().toString(),
+					new String[]{extracurricularExercisesReply.getUserId().toString()},
+					null, extracurricularExercises.getTitle(), extracurricularExercisesMessage.getContent());
+			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.EXTRA_TEACHER_REPLY_PUSH,
+					userMap, null, 0, notifyUrl, "STUDENT", extracurricularExercises.getTitle());
+		}else{
+			Map<Integer, String> userMap = new HashMap<>();
+			userMap.put(extracurricularExercises.getTeacherId(), extracurricularExercises.getTeacherId().toString());
+			SysUser user = teacherDao.getUser(extracurricularExercisesReply.getUserId());
+
+			String notifyUrl = "9?courseScheduleID=" + extracurricularExercisesReply.getId() +
+					"&userId=" + extracurricularExercisesReply.getUserId() + "&studentCourseHomeworkId=" + extracurricularExercisesReply.getId();
+			sysMessageService.batchSendImMessage(MessageTypeEnum.EXTRA_STUDENT_REPLY_IM,extracurricularExercisesReply.getUserId().toString(),
+					new String[]{extracurricularExercises.getTeacherId().toString()},
+					null,extracurricularExercises.getTitle(), extracurricularExercisesMessage.getContent());
+			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.EXTRA_REMIND_PUSH,
+					userMap, null, 0, notifyUrl, "TEACHER", extracurricularExercises.getTitle(), user.getUsername());
 		}
 	}
 

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java

@@ -1,19 +1,24 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ExtracurricularExercisesDao;
 import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
 import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
+import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +34,10 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 	private ExtracurricularExercisesReplyDao extracurricularExercisesReplyDao;
 	@Autowired
 	private ExtracurricularExercisesDao extracurricularExercisesDao;
+	@Autowired
+	private SysMessageService sysMessageService;
+	@Autowired
+	private TeacherDao teacherDao;
 
 	@Override
 	public BaseDAO<Long, ExtracurricularExercisesReply> getDAO() {
@@ -117,5 +126,16 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 		int submitStudentNum=extracurricularExercisesReplyDao.countIsSubmitStudents(existExtra.getExtracurricularExercisesId());
 		extracurricularExercises.setCompletedNum(submitStudentNum);
 		extracurricularExercisesDao.update(extracurricularExercises);
+
+		Map<Integer, String> userMap = new HashMap<>();
+		userMap.put(extracurricularExercises.getTeacherId(), extracurricularExercises.getTeacherId().toString());
+		SysUser user = teacherDao.getUser(existExtra.getUserId());
+		String notifyUrl = "9?courseScheduleID=" + existExtra.getId() + "&userId=" + existExtra.getUserId() + "&studentCourseHomeworkId=" + existExtra.getId();
+		sysMessageService.batchSendImMessage(MessageTypeEnum.EXTRA_SUBMIT_IM,existExtra.getUserId().toString(),
+				new String[]{extracurricularExercises.getTeacherId().toString()},
+				null,extracurricularExercises.getTitle());
+		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.EXTRA_SUBMIT_PUSH,
+				userMap, null, 0, notifyUrl, "TEACHER",
+				extracurricularExercises.getTitle(), user.getUsername());
 	}
 }

+ 13 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java

@@ -6,12 +6,14 @@ import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.biz.service.ExtracurricularExercisesService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -62,7 +64,7 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
 		exercises.setBatchNo(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
 		exercises.setExpectNum(studentIds.size());
 		extracurricularExercisesDao.insert(exercises);
-		String dateStr = DateUtil.dateToString(DateUtil.addDays(new Date(), 1), "MM月dd日");
+		String dateStr = DateUtil.dateToString(exercises.getExpireDate(), "MM月dd日HH点");
 		Teacher teacher = teacherDao.get(exercises.getTeacherId());
 		for (Integer studentId : studentIds) {
 			ExtracurricularExercisesReply studentExtraExercise=new ExtracurricularExercisesReply();
@@ -73,14 +75,16 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
 			studentExtraExercise.setIsView(0);
 			extracurricularExercisesReplyDao.insert(studentExtraExercise);
 
-//			Map<Integer, String> userMap = new HashMap<>();
-//			userMap.put(studentId, studentId.toString());
-//			String notifyUrl = "3?courseScheduleID=" + studentExtraExercise.getId() + "&studentCourseHomeworkId=" + studentExtraExercise.getId();
-//			sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND,exercises.getTeacherId().toString(),
-//					new String[]{studentId.toString()},
-//					null,exercises.getTitle(), dateStr,exercises.getContent());
-//			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
-//					userMap, null, 0, notifyUrl, "STUDENT", teacher.getRealName(), exercises.getTitle(), dateStr);
+			String notifyUrl = "3?courseScheduleID=" + studentExtraExercise.getId() + "&studentCourseHomeworkId=" + studentExtraExercise.getId();
+			sysMessageService.batchSendImMessage(MessageTypeEnum.EXTRA_REMIND_IM,exercises.getTeacherId().toString(),
+					new String[]{studentId.toString()},
+					null, exercises.getTitle(), dateStr,exercises.getContent());
+
+			Map<Integer, String> userMap = new HashMap<>();
+			userMap.put(studentId, studentId.toString());
+			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.EXTRA_REMIND_PUSH,
+					userMap, null, 0, notifyUrl, "STUDENT",
+					teacher.getRealName(),exercises.getTitle(), dateStr);
 		}
 	}
 

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -140,7 +140,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
     private static List<String> applyDayTimes = new ArrayList<>();
 
-    private static final Set<Integer> ENABLE_APPLY_ORGANIDS = new HashSet<>(Arrays.asList(new Integer[]{1, 43, 47}));
+    private static final Set<Integer> ENABLE_APPLY_ORGANIDS = new HashSet<>(Arrays.asList(new Integer[]{28,34,37}));
 
     static {
         applyStartDay = DateUtil.stringToDate("2020-03-25 00:00:00");
@@ -752,7 +752,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         List<Subject> subjects = subjectDao.findBySubjectByIdList(practiceSubjectIdListConfig.getParanValue());
         List<Integer> subjectIds = Arrays.asList(practiceSubjectIdListConfig.getParanValue().split(",")).stream().mapToInt(idStr -> Integer.valueOf(idStr)).boxed().collect(Collectors.toList());
         List<Integer> userDefaultSubjectIds = Objects.isNull(student) || Objects.isNull(student.getSubjectIdList()) ? null : Arrays.asList(student.getSubjectIdList().split(",")).stream().mapToInt(idStr -> Integer.valueOf(idStr)).boxed().collect(Collectors.toList());
-        if (!CollectionUtils.isEmpty(userDefaultSubjectIds)) {
+        if (!CollectionUtils.isEmpty(userDefaultSubjectIds)&&userDefaultSubjectIds.size()<=1) {
             userDefaultSubjectIds = userDefaultSubjectIds.stream().filter(userDefaultSubjectId -> subjectIds.contains(userDefaultSubjectId)).collect(Collectors.toList());
         } else {
             userDefaultSubjectIds = new ArrayList<>();
@@ -2212,7 +2212,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         List<Subject> subjects = subjectDao.findBySubjectByIdList(practiceSubjectIdListConfig.getParanValue());
         List<Integer> subjectIds = Arrays.asList(practiceSubjectIdListConfig.getParanValue().split(",")).stream().mapToInt(idStr -> Integer.valueOf(idStr)).boxed().collect(Collectors.toList());
         List<Integer> userDefaultSubjectIds = Objects.isNull(student) || Objects.isNull(student.getSubjectIdList()) ? null : Arrays.asList(student.getSubjectIdList().split(",")).stream().mapToInt(idStr -> Integer.valueOf(idStr)).boxed().collect(Collectors.toList());
-        if (!CollectionUtils.isEmpty(userDefaultSubjectIds)) {
+        if (!CollectionUtils.isEmpty(userDefaultSubjectIds)&&userDefaultSubjectIds.size()<=1) {
             userDefaultSubjectIds = userDefaultSubjectIds.stream().filter(userDefaultSubjectId -> subjectIds.contains(userDefaultSubjectId)).collect(Collectors.toList());
         } else {
             userDefaultSubjectIds = new ArrayList<>();

+ 26 - 2
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml

@@ -9,6 +9,7 @@
 	<resultMap type="com.ym.mec.biz.dal.entity.ExtracurricularExercises" id="ExtracurricularExercises">
 		<result column="id_" property="id" />
 		<result column="teacher_id_" property="teacherId" />
+		<result column="username_" property="teacher.username" />
 		<result column="student_id_list_" property="studentIdList" />
 		<result column="batch_no_" property="batchNo" />
 		<result column="title_" property="title" />
@@ -20,6 +21,26 @@
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 	</resultMap>
+
+	<sql id="queryPageCondition">
+		<where>
+			<if test="teacherId != null">
+				teacher_id_ = #{teacherId}
+			</if>
+			<if test="title != null">
+				title_ = #{title}
+			</if>
+			<if test="batchNo != null">
+				batch_no_ = #{batchNo}
+			</if>
+			<if test="assignStartTime != null">
+				AND ee.create_time_ &gt;= #{assignStartTime}
+			</if>
+			<if test="assignEndTime != null">
+				AND ee.create_time_ &lt;= #{assignEndTime}
+			</if>
+		</where>
+	</sql>
 	
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="ExtracurricularExercises" >
@@ -87,12 +108,15 @@
 	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="ExtracurricularExercises" parameterType="map">
-		SELECT * FROM extracurricular_exercises ORDER BY id_ <include refid="global.limit"/>
+		SELECT ee.*,u.username_ FROM extracurricular_exercises ee left join sys_user u on ee.teacher_id_ = u.id_
+		<include refid="queryPageCondition"/>
+		ORDER BY id_ <include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM extracurricular_exercises
+		SELECT COUNT(ee.id_) FROM extracurricular_exercises ee
+		<include refid="queryPageCondition"/>
 	</select>
 
 	<sql id="queryExtraExercisesCondition">

+ 38 - 2
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml

@@ -9,7 +9,9 @@
 	<resultMap type="com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply" id="ExtracurricularExercisesReply">
 		<result column="id_" property="id" />
 		<result column="extracurricular_exercises_id_" property="extracurricularExercisesId" />
+		<result column="title_" property="extracurricularExercises.title" />
 		<result column="user_id_" property="userId" />
+		<result column="username_" property="user.username" />
 		<result column="attachments_" property="attachments" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
@@ -27,6 +29,32 @@
 		<result column="content_" property="content"/>
 		<result column="expire_date_" property="expireDate"/>
 	</resultMap>
+
+	<sql id="queryPageCondition">
+		<where>
+			<if test="extracurricularExercisesId != null">
+				extracurricular_exercises_id_ = #{extracurricularExercisesId}
+			</if>
+			<if test="teacherId != null">
+				teacher_id_ = #{teacherId}
+			</if>
+			<if test="studentId != null">
+				user_id_ = #{studentId}
+			</if>
+			<if test="title != null">
+				title_ = #{title}
+			</if>
+			<if test="search != null">
+				title_ like concat('%',#{search},'%') or u.username_ like concat('%',#{search},'%')
+			</if>
+			<if test="submitStartTime != null">
+				AND eer.create_time_ &gt;= #{submitStartTime}
+			</if>
+			<if test="submitEndTime != null">
+				AND eer.create_time_ &lt;= #{submitEndTime}
+			</if>
+		</where>
+	</sql>
 	
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="ExtracurricularExercisesReply" >
@@ -97,13 +125,19 @@
 	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="ExtracurricularExercisesReply" parameterType="map">
-		SELECT * FROM extracurricular_exercises_reply ORDER BY id_ <include refid="global.limit"/>
+		SELECT eer.*,u.username_,ee.title_ FROM extracurricular_exercises_reply eer left join extracurricular_exercises ee on eer.extracurricular_exercises_id_ = ee.id_
+		left join sys_user u on eer.user_id_ = u.id_
+		<include refid="queryPageCondition"/>
+		 ORDER BY eer.id_ <include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM extracurricular_exercises_reply
+		SELECT COUNT(eer.id_) FROM extracurricular_exercises_reply eer left join extracurricular_exercises ee on eer.extracurricular_exercises_id_ = ee.id_
+		left join sys_user u on eer.user_id_ = u.id_
+		<include refid="queryPageCondition"/>
 	</select>
+	
 	<select id="findExtraExerciseStudents" resultMap="ExtraExerciseStudentsDto">
 		SELECT
 			eer.*,
@@ -157,6 +191,8 @@
 	<select id="findStudentExtraExercises" resultMap="ExtraExerciseStudentsDto">
 		SELECT
 			eer.*,
+			ee.title_,
+			ee.expire_date_,
 			ee.teacher_id_,
 			tea.real_name_ teacher_name_,
 			su.username_ student_name_

+ 7 - 7
mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml

@@ -228,7 +228,7 @@
 
     <sql id="practiceGroupQueryCondition">
         <where>
-            pg.group_status_='NORMAL'
+            pg.group_status_ IN ('NORMAL', 'FINISH')
             <if test="hasEducationalTeacherId != null and hasEducationalTeacherId == true">
                 AND pg.educational_teacher_id_ IS NOT NULL
             </if>
@@ -247,13 +247,13 @@
             <if test="educationalTeacherId!=null">
                 AND pg.educational_teacher_id_=#{educationalTeacherId}
             </if>
-            <if test="type != null and firstOrRenew == 1">
-                AND pg.be_renew_group_id_ IS NULL
+            <if test="type != null and type == 1">
+                AND pg.be_renew_group_id_ IS NULL AND pg.buy_months_ IS NOT NULL
             </if>
-            <if test="type != null and firstOrRenew == 0">
-                AND pg.be_renew_group_id_ IS NOT NULL
+            <if test="type != null and type == 0">
+                AND pg.be_renew_group_id_ IS NOT NULL AND pg.buy_months_ IS NOT NULL
             </if>
-            <if test="type != null and firstOrRenew == 2">
+            <if test="type != null and type == 2">
                 AND pg.buy_months_ IS NULL
             </if>
         </where>
@@ -357,7 +357,7 @@
                pg.subject_id_
         FROM practice_group pg
                  LEFT JOIN class_group cg on pg.id_ = cg.music_group_id_ AND cg.group_type_ = 'PRACTICE'
-         WHERE pg.group_status_ = 'NORMAL' AND cg.group_type_ = 'PRACTICE'
+         WHERE pg.group_status_ IN ('NORMAL','FINISH') AND cg.group_type_ = 'PRACTICE'
           AND pg.buy_months_ >= 1
           AND pg.courses_start_date_ <= #{nowDate,jdbcType=DATE}
           AND pg.courses_expire_date_ >= #{afterDate,jdbcType=DATE}

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java

@@ -53,7 +53,7 @@ public class PracticeGroupController extends BaseController {
     @Autowired
     private CourseScheduleEvaluateDao courseScheduleEvaluateDao;
 
-    private static final Set<Integer> ENABLE_APPLY_ORGANIDS = new HashSet<>(Arrays.asList(new Integer[]{1, 43, 47}));
+    private static final Set<Integer> ENABLE_APPLY_ORGANIDS = new HashSet<>(Arrays.asList(new Integer[]{28,34,37}));
 
     @ApiOperation("获取学生的陪练课")
     @GetMapping(value = "/findUserPracticeCourses")

+ 43 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ExtracurricularExercisesController.java

@@ -0,0 +1,43 @@
+package com.ym.mec.web.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.util.Objects;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
+import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
+import com.ym.mec.biz.service.ExtracurricularExercisesService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+
+@Api(tags = "课外训练服务")
+@RequestMapping("extracurricularExercises")
+@RestController
+public class ExtracurricularExercisesController extends BaseController {
+
+    @Autowired
+    private ExtracurricularExercisesService extracurricularExercisesService;
+    @Autowired
+    private ExtracurricularExercisesReplyService extracurricularExercisesReplyService;
+
+    @ApiOperation(value = "获取课外训练列表")
+    @GetMapping("/queryPageList")
+    private HttpResponseResult findExtraExercilses(ExtraExercilseQueryInfo queryInfo){
+        return succeed(extracurricularExercisesService.queryPage(queryInfo));
+    }
+
+    @ApiOperation(value = "获取课外训练详情")
+    @GetMapping("/findStudentExtraExerciseDetail")
+    private HttpResponseResult findStudentExtraExerciseDetail(Long studentExerciseId){
+        if(Objects.isNull(studentExerciseId)){
+            return failed("请选择课外训练作业");
+        }
+        return succeed(extracurricularExercisesReplyService.findStudentExtraExerciseDetail(studentExerciseId));
+    }
+}

+ 29 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ExtracurricularExercisesReplyController.java

@@ -0,0 +1,29 @@
+package com.ym.mec.web.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.biz.dal.page.ExtraExercilseReplyQueryInfo;
+import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+
+@Api(tags = "课外训练学生作业服务")
+@RequestMapping("extracurricularExercisesReply")
+@RestController
+public class ExtracurricularExercisesReplyController extends BaseController {
+
+    @Autowired
+    private ExtracurricularExercisesReplyService extracurricularExercisesReplyService;
+
+    @ApiOperation(value = "获取课外训练作业列表")
+    @GetMapping("/queryPageList")
+    private HttpResponseResult findExtraExercilses(ExtraExercilseReplyQueryInfo queryInfo){
+        return succeed(extracurricularExercisesReplyService.queryPage(queryInfo));
+    }
+}