Переглянути джерело

Merge branch 'zx_saas_6-12' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan 2 роки тому
батько
коміт
f3377fbbda
24 змінених файлів з 351 додано та 771 видалено
  1. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentOperatingVisitDao.java
  2. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentVisitDao.java
  3. 4 175
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java
  4. 2 144
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentVisit.java
  5. 1 7
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/CouponDetailTypeEnum.java
  6. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/TemplateTypeEnum.java
  7. 4 263
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/EndCourseScheduleQueryInfo.java
  8. 18 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentVisitService.java
  9. 28 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  10. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java
  11. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexErrDataRecordServiceImpl.java
  12. 31 123
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  13. 149 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentVisitServiceImpl.java
  14. 2 2
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  15. 28 34
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  16. 12 6
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  17. 7 0
      mec-biz/src/main/resources/config/mybatis/StudentOperatingVisitMapper.xml
  18. 18 0
      mec-biz/src/main/resources/config/mybatis/StudentVisitMapper.xml
  19. 1 1
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  20. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  21. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  22. 16 0
      mec-web/src/main/java/com/ym/mec/web/controller/ImportController.java
  23. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/VisitController.java
  24. 9 1
      mec-web/src/main/resources/columnMapper.ini

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentOperatingVisitDao.java

@@ -16,6 +16,8 @@ public interface StudentOperatingVisitDao extends BaseDAO<Long, StudentOperating
     */
     void updateVisit(@Param("studentId") Integer studentId, @Param("month") String month);
 
+    void batchUpdateVisit(@Param("studentIds") List<Integer> studentIds, @Param("month") String month);
+
     void deleteByUserId(@Param("month") String month);
 
     void batchAdd(@Param("userIds") List<Integer> userIds, @Param("month") String month);

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentVisitDao.java

@@ -62,6 +62,15 @@ public interface StudentVisitDao extends BaseDAO<Integer, StudentVisit> {
     List<Integer> getMusicGroupVisitStudent(@Param("musicGroupId") String musicGroupId, @Param("studentIds") List<Integer> studentIds);
 
     /**
+     * 获取乐团回访的学生
+     *
+     * @param musicGroupId
+     * @param studentId
+     * @return
+     */
+    Integer getMusicVisitStudent(@Param("musicGroupId") String musicGroupId, @Param("studentId") Integer studentId);
+
+    /**
      * 获取老师时间段的回访次数
      *
      * @param teacherIds
@@ -92,4 +101,6 @@ public interface StudentVisitDao extends BaseDAO<Integer, StudentVisit> {
     int countWaitVisit(Map<String, Object> params);
 
     List<StudentPreVisitDto> queryWaitVisit(Map<String, Object> params);
+
+    void batchInsert(@Param("studentVisit") List<StudentVisit> studentVisit);
 }

+ 4 - 175
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.enums.SignInStatusEnum;
 import com.ym.mec.biz.dal.enums.SignOutStatusEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.util.Date;
 
@@ -13,6 +14,7 @@ import java.util.Date;
  * @Author Joburgess
  * @Date 2019/12/27
  */
+@Data
 public class CourseScheduleEndDto extends CourseSchedule {
 
     private String groupName;
@@ -61,179 +63,6 @@ public class CourseScheduleEndDto extends CourseSchedule {
     @ApiModelProperty(value = "被合并的课程ids,多个,分割")
     private String mergedCourseIds;
 
-    public Date getGenerateTime() {
-        return generateTime;
-    }
-
-    public void setGenerateTime(Date generateTime) {
-        this.generateTime = generateTime;
-    }
-
-    public Date getDealTime() {
-        return dealTime;
-    }
-
-    public void setDealTime(Date dealTime) {
-        this.dealTime = dealTime;
-    }
-
-    public String getEducationTeacherName() {
-        return educationTeacherName;
-    }
-
-    public void setEducationTeacherName(String educationTeacherName) {
-        this.educationTeacherName = educationTeacherName;
-    }
-
-    public boolean getBeMerged() {
-        return beMerged;
-    }
-
-    public void setBeMerged(boolean beMerged) {
-        this.beMerged = beMerged;
-    }
-
-    public PracticeGroup getPracticeGroup() {
-        return practiceGroup;
-    }
-
-    public void setPracticeGroup(PracticeGroup practiceGroup) {
-        this.practiceGroup = practiceGroup;
-    }
-
-    public String getSettlementTime() {
-        return settlementTime;
-    }
-
-    public void setSettlementTime(String settlementTime) {
-        this.settlementTime = settlementTime;
-    }
-
-    public SignInStatusEnum getSignInStatusEnum() {
-        return signInStatusEnum;
-    }
-
-    public void setSignInStatusEnum(SignInStatusEnum signInStatusEnum) {
-        this.signInStatusEnum = signInStatusEnum;
-    }
-
-    public SignOutStatusEnum getSignOutStatusEnum() {
-        return signOutStatusEnum;
-    }
-
-    public void setSignOutStatusEnum(SignOutStatusEnum signOutStatusEnum) {
-        this.signOutStatusEnum = signOutStatusEnum;
-    }
-
-    public String getStudentId() {
-        return studentId;
-    }
-
-    public void setStudentId(String studentId) {
-        this.studentId = studentId;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    public Date getSignInTime() {
-        return signInTime;
-    }
-
-    public void setSignInTime(Date signInTime) {
-        this.signInTime = signInTime;
-    }
-
-    public Date getSignOutTime() {
-        return signOutTime;
-    }
-
-    public void setSignOutTime(Date signOutTime) {
-        this.signOutTime = signOutTime;
-    }
-
-    public int getIsSignIn() {
-        return isSignIn;
-    }
-
-    public void setIsSignIn(int isSignIn) {
-        this.isSignIn = isSignIn;
-    }
-
-    public int getIsSignOut() {
-        return isSignOut;
-    }
-
-    public void setIsSignOut(int isSignOut) {
-        this.isSignOut = isSignOut;
-    }
-
-    public YesOrNoEnum getIsCallNames() {
-        return isCallNames;
-    }
-
-    public void setIsCallNames(YesOrNoEnum isCallNames) {
-        this.isCallNames = isCallNames;
-    }
-
-    public String getOrganName() {
-        return organName;
-    }
-
-    public void setOrganName(String organName) {
-        this.organName = organName;
-    }
-
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
-    }
-
-    public String getGroupName() {
-        return groupName;
-    }
-
-    public void setGroupName(String groupName) {
-        this.groupName = groupName;
-    }
-
-	public String getIsComplaints() {
-		return isComplaints;
-	}
-
-	public void setIsComplaints(String isComplaints) {
-		this.isComplaints = isComplaints;
-	}
-
-    public String getCooperationOrgan() {
-        return cooperationOrgan;
-    }
-
-    public void setCooperationOrgan(String cooperationOrgan) {
-        this.cooperationOrgan = cooperationOrgan;
-    }
-
-    public String getMergedCourseIds() {
-        return mergedCourseIds;
-    }
-
-    public void setMergedCourseIds(String mergedCourseIds) {
-        this.mergedCourseIds = mergedCourseIds;
-    }
+    @ApiModelProperty(value = "助教老师姓名")
+    private String teachingUserNames;
 }

+ 2 - 144
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentVisit.java

@@ -4,12 +4,14 @@ import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.common.entity.BaseEntity;
 import com.ym.mec.common.enums.BaseEnum;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.PastOrPresent;
 import javax.validation.constraints.Positive;
 import java.util.Date;
 
+@Data
 public class StudentVisit extends BaseEntity {
 
     public enum VisiterTypeEnum implements BaseEnum<String, TeachModeEnum> {
@@ -201,148 +203,4 @@ public class StudentVisit extends BaseEntity {
 
     @ApiModelProperty(value = "回访图片", required = true)
     private String attachments;
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public String getMusicGroupId() {
-        return musicGroupId;
-    }
-
-    public void setMusicGroupId(String musicGroupId) {
-        this.musicGroupId = musicGroupId;
-    }
-
-    public Integer getOrganId() {
-        return organId;
-    }
-
-    public void setOrganId(Integer organId) {
-        this.organId = organId;
-    }
-
-    public Integer getStudentId() {
-        return studentId;
-    }
-
-    public void setStudentId(Integer studentId) {
-        this.studentId = studentId;
-    }
-
-    public Integer getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Integer teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public VisiterTypeEnum getVisiterType() {
-        return visiterType;
-    }
-
-    public void setVisiterType(VisiterTypeEnum visiterType) {
-        this.visiterType = visiterType;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public String getPurpose() {
-        return purpose;
-    }
-
-    public void setPurpose(String purpose) {
-        this.purpose = purpose;
-    }
-
-    public String getOverview() {
-        return overview;
-    }
-
-    public void setOverview(String overview) {
-        this.overview = overview;
-    }
-
-    public FeedbackTypeEnum getFeedbackType() {
-        return feedbackType;
-    }
-
-    public void setFeedbackType(FeedbackTypeEnum feedbackType) {
-        this.feedbackType = feedbackType;
-    }
-
-    public FeedbackTypeDescEnum getFeedbackTypeDesc() {
-        return feedbackTypeDesc;
-    }
-
-    public void setFeedbackTypeDesc(FeedbackTypeDescEnum feedbackTypeDesc) {
-        this.feedbackTypeDesc = feedbackTypeDesc;
-    }
-
-    public String getFeedback() {
-        return feedback;
-    }
-
-    public void setFeedback(String feedback) {
-        this.feedback = feedback;
-    }
-
-    public Date getVisitTime() {
-        return visitTime;
-    }
-
-    public void setVisitTime(Date visitTime) {
-        this.visitTime = visitTime;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Long getObjectId() {
-        return objectId;
-    }
-
-    public void setObjectId(Long objectId) {
-        this.objectId = objectId;
-    }
-
-    public Integer getProbStatus() {
-        return probStatus;
-    }
-
-    public void setProbStatus(Integer probStatus) {
-        this.probStatus = probStatus;
-    }
-
-    public String getVisitCyCle() {
-        return visitCyCle;
-    }
-
-    public void setVisitCyCle(String visitCyCle) {
-        this.visitCyCle = visitCyCle;
-    }
-
-    public String getAttachments() {
-        return attachments;
-    }
-
-    public void setAttachments(String attachments) {
-        this.attachments = attachments;
-    }
 }

+ 1 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/CouponDetailTypeEnum.java

@@ -30,9 +30,7 @@ public enum CouponDetailTypeEnum implements BaseEnum<String, CouponDetailTypeEnu
     //网管课
     PRACTICE("PRACTICE", "网管课"),
     //声部课 = 单技课 SINGLE、集训单技课 TRAINING_SINGLE
-    SINGLE("SINGLE", "声部课"),
-    //合奏课 = 合奏课 MIX、集训合奏课 TRAINING_MIX ,
-    MIX("MIX", "合奏课"),
+    MUSIC("MUSIC", "乐团课"),
     //VIP = vip课 VIP +乐理课 THEORY_COURSE
     VIP("VIP", "VIP"),
     //会员开通,团练宝   CLOUD_TEACHER  CLOUD_TEACHER_PLUS
@@ -92,12 +90,8 @@ public enum CouponDetailTypeEnum implements BaseEnum<String, CouponDetailTypeEnu
         switch (code) {
             case "INSTRUMENT":
                 return MUSICAL.getCode();
-            case "TRAINING_SINGLE":
-                return SINGLE.getCode();
             case "THEORY_COURSE":
                 return VIP.getCode();
-            case "TRAINING_MIX":
-                return MIX.getCode();
             case "CLOUD_TEACHER":
             case "CLOUD_TEACHER_PLUS":
                 return MEMBER.getCode();

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/TemplateTypeEnum.java

@@ -14,6 +14,7 @@ public enum TemplateTypeEnum implements BaseEnum<String, TemplateTypeEnum> {
     LIVE_ROOM_PURVIEW_USER("LIVE_ROOM_PURVIEW_USER", "直播间用户观看权限表"),
     ADDITIONAL_IMPORT("ADDITIONAL_IMPORT", "经营报表额外的收支导入"),
     MUSIC_GROUP_PAYMENT_IMPORT("MUSIC_GROUP_PAYMENT_IMPORT", "缴费项目外部订单导入"),
+    PAYMENT_MUSIC_VISIT_IMPORT("PAYMENT_MUSIC_VISIT_IMPORT", "缴费中乐团批量回访"),
     ;
 
     private String code;

+ 4 - 263
mec-biz/src/main/java/com/ym/mec/biz/dal/page/EndCourseScheduleQueryInfo.java

@@ -5,6 +5,7 @@ import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.common.page.QueryInfo;
 
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.util.Date;
 
@@ -12,6 +13,7 @@ import java.util.Date;
  * @Author Joburgess
  * @Date 2019/12/27
  */
+@Data
 public class EndCourseScheduleQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "部门编号列表")
@@ -106,267 +108,6 @@ public class EndCourseScheduleQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "是否云教练课程")
     private Integer memberFlag;
 
-    public Integer getStudentId() {
-        return studentId;
-    }
-
-    public void setStudentId(Integer studentId) {
-        this.studentId = studentId;
-    }
-
-    public Integer getMemberFlag() {
-        return memberFlag;
-    }
-
-    public void setMemberFlag(Integer memberFlag) {
-        this.memberFlag = memberFlag;
-    }
-
-    public Integer getEducationUserId() {
-        return educationUserId;
-    }
-
-    public void setEducationUserId(Integer educationUserId) {
-        this.educationUserId = educationUserId;
-    }
-
-    public Boolean getHasDealTime() {
-        return hasDealTime;
-    }
-
-    public void setHasDealTime(Boolean hasDealTime) {
-        this.hasDealTime = hasDealTime;
-    }
-
-    public Long getCourseIdSearch() {
-        return courseIdSearch;
-    }
-
-    public void setCourseIdSearch(Long courseIdSearch) {
-        this.courseIdSearch = courseIdSearch;
-    }
-
-    public String getSearchType() {
-        return searchType;
-    }
-
-    public void setSearchType(String searchType) {
-        this.searchType = searchType;
-    }
-
-    public String getMergeCourseType() {
-        return mergeCourseType;
-    }
-
-    public void setMergeCourseType(String mergeCourseType) {
-        this.mergeCourseType = mergeCourseType;
-    }
-
-    public TeachModeEnum getTeachMode() {
-        return teachMode;
-    }
-
-    public void setTeachMode(TeachModeEnum teachMode) {
-        this.teachMode = teachMode;
-    }
-
-    public Integer getIsCallNames() {
-        return isCallNames;
-    }
-
-    public void setIsCallNames(Integer isCallNames) {
-        this.isCallNames = isCallNames;
-    }
-
-    public boolean getIsExport() {
-        return isExport;
-    }
-
-    public void setIsExport(boolean export) {
-        isExport = export;
-    }
-
-    public Integer getSchoolId() {
-        return schoolId;
-    }
-
-    public void setSchoolId(Integer schoolId) {
-        this.schoolId = schoolId;
-    }
-
-    public String getStudentName() {
-        return studentName;
-    }
-
-    public void setStudentName(String studentName) {
-        this.studentName = studentName;
-    }
-
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
-    }
-
-    public ClassGroupTypeEnum getClassGroupType() {
-        return classGroupType;
-    }
-
-    public void setClassGroupType(ClassGroupTypeEnum classGroupType) {
-        this.classGroupType = classGroupType;
-    }
-
-    public CourseStatusEnum getCourseStatus() {
-        return courseStatus;
-    }
-
-    public void setCourseStatus(CourseStatusEnum courseStatus) {
-        this.courseStatus = courseStatus;
-    }
-
-    public CourseSchedule.CourseScheduleType getCourseType() {
-        return courseType;
-    }
-
-    public void setCourseType(CourseSchedule.CourseScheduleType courseType) {
-        this.courseType = courseType;
-    }
-
-    public Date getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(Date startTime) {
-        this.startTime = startTime;
-    }
-
-    public Date getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(Date endTime) {
-        this.endTime = endTime;
-    }
-
-    public String getOrganIdList() {
-        return organIdList;
-    }
-
-    public void setOrganIdList(String organIdList) {
-        this.organIdList = organIdList;
-    }
-
-    public String getStudentIdList() {
-        return studentIdList;
-    }
-
-    public void setStudentIdList(String studentIdList) {
-        this.studentIdList = studentIdList;
-    }
-
-    public String getTeacherIdList() {
-        return teacherIdList;
-    }
-
-    public void setTeacherIdList(String teacherIdList) {
-        this.teacherIdList = teacherIdList;
-    }
-
-    public GroupType getGroupType() {
-        return groupType;
-    }
-
-    public void setGroupType(GroupType groupType) {
-        this.groupType = groupType;
-    }
-
-    public String getGroupId() {
-        return groupId;
-    }
-
-    public void setGroupId(String groupId) {
-        this.groupId = groupId;
-    }
-
-    public Integer getClassGroupId() {
-        return classGroupId;
-    }
-
-    public void setClassGroupId(Integer classGroupId) {
-        this.classGroupId = classGroupId;
-    }
-
-	public Date getCreateStartDate() {
-		return createStartDate;
-	}
-
-	public void setCreateStartDate(Date createStartDate) {
-		this.createStartDate = createStartDate;
-	}
-
-	public Date getCreateEndDate() {
-		return createEndDate;
-	}
-
-	public void setCreateEndDate(Date createEndDate) {
-		this.createEndDate = createEndDate;
-	}
-
-    public TeachTypeEnum getTeachType() {
-        return teachType;
-    }
-
-    public void setTeachType(TeachTypeEnum teachType) {
-        this.teachType = teachType;
-    }
-
-    public String getGenerateStartTime() {
-        return generateStartTime;
-    }
-
-    public void setGenerateStartTime(String generateStartTime) {
-        this.generateStartTime = generateStartTime;
-    }
-
-    public String getGenerateEndTime() {
-        return generateEndTime;
-    }
-
-    public void setGenerateEndTime(String generateEndTime) {
-        this.generateEndTime = generateEndTime;
-    }
-
-    public String getDealStartTime() {
-        return dealStartTime;
-    }
-
-    public void setDealStartTime(String dealStartTime) {
-        this.dealStartTime = dealStartTime;
-    }
-
-    public String getDealEndTime() {
-        return dealEndTime;
-    }
-
-    public void setDealEndTime(String dealEndTime) {
-        this.dealEndTime = dealEndTime;
-    }
-
-	public String getStartClassTimeStr() {
-		return startClassTimeStr;
-	}
-
-	public void setStartClassTimeStr(String startClassTimeStr) {
-		this.startClassTimeStr = startClassTimeStr;
-	}
-
-	public String getEndClassTimeStr() {
-		return endClassTimeStr;
-	}
-
-	public void setEndClassTimeStr(String endClassTimeStr) {
-		this.endClassTimeStr = endClassTimeStr;
-	}
+    @ApiModelProperty(value = "是否有助教")
+    private Boolean hasTeaching;
 }

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentVisitService.java

@@ -10,6 +10,8 @@ import com.ym.mec.biz.dal.page.StudentPreVisitQueryInfo;
 import com.ym.mec.biz.dal.page.StudentVisitQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
+import org.springframework.web.multipart.MultipartFile;
+
 import java.util.List;
 
 public interface StudentVisitService extends BaseService<Integer, StudentVisit> {
@@ -21,6 +23,13 @@ public interface StudentVisitService extends BaseService<Integer, StudentVisit>
      * @return
      */
     StudentVisit addVisit(StudentVisit studentVisit);
+
+    /**
+     * 添加访问记录
+     * @param studentVisit
+     * @return
+     */
+    void batchAddVisit(List<StudentVisit> studentVisit);
     /**
      * 获取访问详情
      *
@@ -68,4 +77,13 @@ public interface StudentVisitService extends BaseService<Integer, StudentVisit>
     PageInfo<BasicUserDto> getStudents(StudentVisitQueryInfo queryInfo);
 
     PageInfo<StudentPreVisitDto> queryWaitVisit(StudentPreVisitQueryInfo queryInfo);
+
+    /**
+    * @description: 缴费中乐团批量导入学员回访
+     * @param file
+    * @return java.util.List<java.lang.String>
+    * @author zx
+    * @date 2023/6/13 14:34
+    */
+    List<String> importMusicVisit(MultipartFile file) throws Exception;
 }

+ 28 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -4237,7 +4237,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}
 
         int count = courseScheduleDao.endCountCourseSchedules(params);
-        if(queryInfo.getIsExport() && count > 50000){
+        if(queryInfo.isExport() && count > 50000){
             throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
         }
 		pageInfo.setTotal(count);
@@ -4245,9 +4245,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		List<CourseScheduleEndDto> results = courseScheduleDao.endFindCourseSchedules(params);
         if (!CollectionUtils.isEmpty(results)) {
             List<Long> courseScheduleIds = results.stream().map(CourseScheduleEndDto::getId).collect(Collectors.toList());
-            List<Integer> teacherIds=results.stream().filter(t->Objects.nonNull(t.getActualTeacherId())).map(CourseSchedule::getActualTeacherId).collect(Collectors.toList());
-
-            List<Map<Integer, String>> nameIdMaps = teacherDao.queryNameByIdList(teacherIds);
+            List<Integer> teacherIds = results.stream().filter(t->Objects.nonNull(t.getActualTeacherId())).map(CourseSchedule::getActualTeacherId).collect(Collectors.toList());
+			List<Integer> teachingUserIdsList = results.stream()
+					.filter(u -> StringUtils.isNotEmpty(u.getTeachingTeacherIds()))
+					.flatMap(u -> Arrays.stream(u.getTeachingTeacherIds().split(",")))
+					.filter(StringUtils::isNotEmpty)
+					.map(Integer::parseInt)
+					.distinct()
+					.collect(Collectors.toList());
+			if(CollectionUtils.isNotEmpty(teachingUserIdsList)){
+				teacherIds.addAll(teachingUserIdsList);
+			}
+			List<Map<Integer, String>> nameIdMaps = teacherDao.queryNameByIdList(teacherIds);
             Map<Integer, String> nameIdMap = MapUtil.convertIntegerMap(nameIdMaps);
 
 			List<Map<Long, Long>> courseMergeCourseNum = courseScheduleDao.countCourseMergeCourseNum(courseScheduleIds);
@@ -4263,7 +4272,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
             Map<Long, String> eduName = null;
             Map<String, MusicGroupBasicDto> cooperationMap = new HashMap<>();
-            if (queryInfo.getIsExport()) {
+            if (queryInfo.isExport()) {
                 List<Long> musicCourseIds = results.stream().filter(e -> e.getGroupType() == MUSIC).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
                 eduName = new HashMap<>(courseScheduleIds.size());
                 if (musicCourseIds != null && musicCourseIds.size() > 0) {
@@ -4285,6 +4294,20 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             }
 
             for (CourseScheduleEndDto result : results) {
+				if(StringUtils.isNotEmpty(result.getTeachingTeacherIds())){
+					List<String> ids = Arrays.stream(result.getTeachingTeacherIds().split(",")).collect(Collectors.toList());
+					StringBuffer sb = new StringBuffer();
+					for (String teachingId : ids) {
+						String teachingName = nameIdMap.get(Integer.parseInt(teachingId));
+						if(StringUtils.isNotEmpty(teachingName)){
+							if(sb.length() > 0){
+								sb.append(",");
+							}
+							sb.append(teachingName);
+						}
+					}
+					result.setTeachingUserNames(sb.toString());
+				}
                 if (eduName != null) {
                     result.setEducationTeacherName(eduName.get(result.getId()));
                 }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -2824,9 +2824,9 @@ public class ExportServiceImpl implements ExportService {
                 row.setIsComplaints(StringUtils.equals(row.getIsComplaints(), "1") ? "有" : "无");
             }
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部名称", "乐团主管", "课程编号", "课程组编号", "开始时间", "结束时间","班级声部", "课程名称", "课程类型", "教学模式",
-                    "教学点", "课程状态", "指导老师", "是否点名", "是否有考勤申诉", "预计上课人数", "合作单位"}, new String[]{
+                    "教学点", "课程状态", "指导老师",  "助教", "是否点名", "是否有考勤申诉", "预计上课人数", "合作单位"}, new String[]{
                     "organName", "educationTeacherName", "id", "musicGroupId", "startClassTime", "endClassTime", "subjectName", "name",
-                    "groupType.desc", "teachMode.msg", "schoolName", "status.msg", "teacherName", "isCallNames.msg", "isComplaints", "studentNum", "cooperationOrgan"}, rows);
+                    "groupType.desc", "teachMode.msg", "schoolName", "status.msg", "teacherName",  "teachingUserNames", "isCallNames.msg", "isComplaints", "studentNum", "cooperationOrgan"}, rows);
             exportManagerDownload(workbook, managerDownload);
         } catch (Exception e) {
             e.printStackTrace();

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexErrDataRecordServiceImpl.java

@@ -408,7 +408,7 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 			params.put("classGroupIds",classGroupIds);
 		}
 		int count = indexErrDataRecordDao.historyErrCourseDataCount(params);
-		if(queryInfo.getIsExport() && count > 50000){
+		if(queryInfo.isExport() && count > 50000){
 			throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
 		}
 		pageInfo.setTotal(count);
@@ -433,7 +433,7 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 			List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseScheduleIds);
 			Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
 			Map<Long, String> eduName = null;
-			if(queryInfo.getIsExport()){
+			if(queryInfo.isExport()){
 				List<Long> musicCourseIds = results.stream().filter(e -> e.getGroupType() == MUSIC).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
 				eduName = new HashMap<>(courseScheduleIds.size());
 				if(musicCourseIds != null && musicCourseIds.size() > 0){

+ 31 - 123
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.beust.jcommander.internal.Lists;
 import com.microsvc.toolkit.middleware.im.message.ImGroupMemberWrapper;
-import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
@@ -39,7 +38,6 @@ import com.ym.mec.util.excel.POIUtil;
 import com.ym.mec.util.http.HttpUtil;
 import com.ym.mec.util.ini.IniFileUtil;
 import com.ym.mec.util.json.JsonUtil;
-import com.ym.mec.util.string.MessageFormatter;
 import com.ym.mec.util.validator.CommonValidator;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -150,7 +148,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Autowired
     private PayService payService;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
     @Autowired
     private SysMessageService sysMessageService;
     @Autowired
@@ -636,10 +634,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	@Override
     @Transactional(rollbackFor = Exception.class)
     public String createGroup(SubFeeSettingDto subFeeSettingDto) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            throw new BizException("获取用户信息失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = subFeeSettingDto.getMusicGroup();
         if (StringUtils.isBlank(musicGroup.getGradeType()) && StringUtils.isNotBlank(subFeeSettingDto.getGradeType())) {
             musicGroup.setGradeType(subFeeSettingDto.getGradeType());
@@ -807,11 +802,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean finishPreApply(String musicGroupId, boolean isCheckStudentNum) {
-
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            throw new BizException("请重新登录");
-        }
+		SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团信息查询失败");
@@ -1454,7 +1445,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         if ("205".equals(studentPaymentOrder.getPaymentAccountNo())) {
             Integer teacherId = musicGroup.getEducationalTeacherId();
-            SysUser endTeacher = sysUserFeignService.queryUserById(teacherId);
+            SysUser endTeacher = sysUserService.queryUserById(teacherId);
             Map<Integer, String> userPhoneMap = new HashMap<>();
             userPhoneMap.put(endTeacher.getId(), endTeacher.getPhone());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.NO_BUY_CLOUD_TEACHER_MSG,
@@ -1509,10 +1500,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void updateSubjectInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("身份校验失败");
-        }
+		SysUser sysUser = sysUserService.getUser();
         String musicGroupId = subFeeSettingDto.getMusicGroupId();
         //乐团状态是否正确
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
@@ -1610,10 +1598,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void musicGroupAction(String musicGroupId) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+		SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = saveLog(musicGroupId, MusicGroupStatusEnum.PREPARE);
 
         //乐器采购清单是否确认
@@ -1696,10 +1681,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void musicGroupAudit(String musicGroupId) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+		SysUser sysUser = sysUserService.getUser();
         Date date = new Date();
 
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
@@ -1744,10 +1726,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void musicGroupAuditFailed(String musicGroupId, String memo) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+		SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团信息不存在");
@@ -1807,10 +1786,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void musicGroupAuditSuccess(String musicGroupId) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+		SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团信息不存在");
@@ -1945,10 +1921,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     public MusicCardDto queryPersonalMusicGroups(Integer userId) {
-        SysUser sysUser = sysUserFeignService.queryUserById(userId);
-        if (sysUser == null) {
-            throw new BizException("用户不存在");
-        }
+        SysUser sysUser = sysUserService.queryUserById(userId);
         MusicCardDto musicCardDto = musicGroupDao.queryPersonalMusicGroups(userId);
         if (musicCardDto == null) {
             musicCardDto = new MusicCardDto();
@@ -1995,10 +1968,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean cancelMusicGroup(String musicGroupId) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+		SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.getLocked(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
@@ -2089,10 +2059,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean pauseMusicGroup(String musicGroupId) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+		SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
@@ -2122,10 +2089,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean resumeMusicGroup(String musicGroupId) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
@@ -2164,10 +2128,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean extensionPaymentExpireDate(String musicGroupId, Date expireDate) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
@@ -2207,10 +2168,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     public boolean extensionApplyExpireDate(String musicGroupId, Date expireDate) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
@@ -2238,10 +2196,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     public boolean extensionPreApplyExpireDate(String musicGroupId, Date expireDate) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
@@ -2381,7 +2336,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if("STUDENT".equals(client)){
 
             // 乐团信息
-            SysUser student = sysUserFeignService.queryUserById(musicGroupQuit.getUserId());
+            SysUser student = sysUserService.queryUserById(musicGroupQuit.getUserId());
 
             IPage<SchoolStaffWrapper.SchoolStaff> page = schoolStaffService.selectPage(new Page<>(1, -1),
                     SchoolStaffWrapper.SchoolStaffQuery.builder().schoolId(musicGroup.getCooperationOrganId().longValue()).build());
@@ -2406,7 +2361,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 
         if (reqMusicGroupQuit.getStatus() == PROCESSING) {
-            SysUser sysUser = sysUserFeignService.queryUserById(userId);
+            SysUser sysUser = sysUserService.queryUserById(userId);
 
             Set<Integer> integers = employeePositionService.queryUserIdByRoleId(new SysUserRoleEnum[]{ORGAN_MANAGER}, musicGroup.getOrganId());
             if (currentOperatorRoleIds == null || currentOperatorRoleIds.size() == 0) {
@@ -2438,10 +2393,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (musicGroupQuit == null) {
             throw new BizException("操作失败,没有查询到退团记录");
         }
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团不存在");
@@ -2770,7 +2722,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			List<SchoolStaffWrapper.SchoolStaff> records = page.getRecords();
 			if (CollectionUtils.isNotEmpty(records)) {
 
-				SysUser sysUser = sysUserFeignService.queryUserById(userId);
+				SysUser sysUser = sysUserService.queryUserById(userId);
 
 				Map<Integer, String> userMap = new HashMap<>();
 				records.forEach(o -> userMap.put(o.getUserId().intValue(), o.getUserId().toString()));
@@ -2785,7 +2737,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			List<SchoolStaffWrapper.SchoolStaff> records = page.getRecords();
 			if (CollectionUtils.isNotEmpty(records)) {
 
-				SysUser sysUser = sysUserFeignService.queryUserById(userId);
+				SysUser sysUser = sysUserService.queryUserById(userId);
 
 				Map<Integer, String> userMap = new HashMap<>();
 				records.forEach(o -> userMap.put(o.getUserId().intValue(), o.getUserId().toString()));
@@ -2804,10 +2756,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     public boolean directQuitMusicGroup(MusicGroupQuitDto musicGroupQuitDto) {
 		Integer userId = musicGroupQuitDto.getUserId();
 		String musicGroupId = musicGroupQuitDto.getMusicGroupId();
-		SysUser sysUser = sysUserFeignService.queryUserById(userId);
-        if (sysUser == null) {
-            throw new BizException("获取用户信息失败");
-        }
+		SysUser sysUser = sysUserService.queryUserById(userId);
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团不存在");
@@ -3400,10 +3349,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean updateTeacherCoursesSalary(Long courseScheduleId, Integer teacherId, BigDecimal salary, BigDecimal subsidy, String scope) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("获取用户信息失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId);
         if (courseSchedule == null) {
             throw new BizException("课程信息不存在");
@@ -3441,10 +3387,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     public PageInfo<MusicGroup> queryMusicGroupPage(MusicGroupQueryInfo queryInfo) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("获取用户信息失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         //查询有剩余排课时长的乐团
         if("MUSIC_GROUP_HAS_COURSE_TIMES".equals(queryInfo.getSearchType())){
             List<String> musicGroupIds = musicGroupDao.queryHasSubCourseTimes(queryInfo.getOrganId(),queryInfo.getTenantId());
@@ -3594,10 +3537,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         String musicGroupId = subFeeSettingDto.getMusicGroup().getId();
         MusicGroup group = musicGroupDao.getLocked(musicGroupId);
         if (group == null) {
@@ -3756,10 +3696,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public MusicGroup openPay(String musicGroupId, String expireDate) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = saveLog(musicGroupId, MusicGroupStatusEnum.APPLY);
         //记录操作日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "开启缴费(报名中 -->  缴费中)", sysUser.getId(), ""));
@@ -3819,10 +3756,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void musicGroupFound(String musicGroupId) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
             throw new BizException("乐团信息不存在");
@@ -3865,23 +3799,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, event, sysUser.getId(), ""));
         musicGroup.setStatus(MusicGroupStatusEnum.PREPARE);
         musicGroupDao.update(musicGroup);
-//        if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
-//            //给家长发送乐团基础训练课短信
-//            //获取所有乐团学员列表
-//            List<StudentRegistration> students = studentRegistrationDao.queryStudentByMusicGroupId(musicGroupId);
-//            if (students != null && students.size() > 0) {
-//                // 获取所有家长电话
-//                Set<String> parentsPhones = students.stream().map(StudentRegistration::getParentsPhone).collect(Collectors.toSet());
-//                // 获取对应家长的用户编号
-//                Map<Integer, String> userIds = MapUtil.convertMybatisMap(studentRegistrationDao.findParentId(StringUtils.join(parentsPhones, ",")));
-//                userIds = JSONObject.parseObject(JSONObject.toJSONString(userIds), HashMap.class);
-//                if (userIds != null && userIds.size() > 0) {
-//                    String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
-//                    String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
-//                    sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE, userIds, null, 0, "", "", musicGroup.getName(), studentApplyUrl, serverPhone);
-//                }
-//            }
-//        }
         sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{ORGAN_MANAGER},
                 null, musicGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING, musicGroup.getName());
     }
@@ -3914,10 +3831,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HttpResponseResult addMusicGroupRegs(String musicGroupId, List<Long> registerIds) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null || sysUser.getId() == null) {
-            throw new BizException("获取用户信息失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         List<StudentRegistration> studentRegistrations = studentRegistrationDao.findStudentListByIdList(registerIds);
         List<StudentRegistration> oldRegs = studentRegistrationDao.getMusicGroupStu(musicGroupId);
         Map<Integer, List<StudentRegistration>> oldRegMap = oldRegs.stream().collect(Collectors.groupingBy(StudentRegistration::getUserId));
@@ -4007,10 +3921,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         String musicGroupId = closeMusicGroupDto.getMusicGroupId();
 
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
@@ -4119,10 +4030,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     public Object getQuitGroupDetail(String musicGroupId) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("请登录");
-        }
+        SysUser sysUser = sysUserService.getUser();
         Map<String, Object> resultMap = new HashMap<>(8);
         String username = sysUser.getUsername();
         resultMap.put("username", StringUtils.isEmpty(username) ? sysUser.getRealName() : username);
@@ -4140,7 +4048,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			resultMap.put("quitTime", musicGroupQuit.getCreateTime());
         }
         if (musicGroup.getEducationalTeacherId() != null) {
-            SysUser user = sysUserFeignService.queryUserById(musicGroup.getEducationalTeacherId());
+            SysUser user = sysUserService.queryUserById(musicGroup.getEducationalTeacherId());
             resultMap.put("teacherMobile", user.getPhone());
         } else {
             resultMap.put("teacherMobile", "027-87718176");

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

@@ -1,15 +1,18 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.BasicUserDto;
-import com.ym.mec.biz.dal.dto.StudentPreVisitDto;
-import com.ym.mec.biz.dal.dto.StudentVisitDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.HumanCostTypeEnum;
+import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.TemplateTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.StudentPreVisitQueryInfo;
 import com.ym.mec.biz.dal.page.StudentVisitQueryInfo;
 import com.ym.mec.biz.service.StudentVisitService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -17,10 +20,17 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.excel.POIUtil;
+import com.ym.mec.util.ini.IniFileUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -45,6 +55,8 @@ public class StudentVisitServiceImpl extends BaseServiceImpl<Integer, StudentVis
     private StudentAttendanceDao studentAttendanceDao;
     @Autowired
     private StudentOperatingVisitDao studentOperatingVisitDao;
+    @Autowired
+    private SysUserService sysUserService;
 
 
     @Override
@@ -96,6 +108,44 @@ public class StudentVisitServiceImpl extends BaseServiceImpl<Integer, StudentVis
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void batchAddVisit(List<StudentVisit> studentVisit) {
+        Integer userId = sysUserService.getUserId();
+        StudentVisit.VisiterTypeEnum visitType = StudentVisit.VisiterTypeEnum.EDU_TEACHER;
+        List<Integer> studentIds = studentVisit.stream().map(e -> e.getStudentId()).collect(Collectors.toList());
+        List<SimpleUserDto> userDtos = teacherDao.getUsersSimpleInfo(studentIds);
+        Date now = new Date();
+        Map<Integer, SimpleUserDto> userDtoMap = userDtos.stream().collect(Collectors.groupingBy(e -> e.getUserId(), Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0))));
+        Map<String,List<Integer>> visitMap = new HashMap<>();
+        for (StudentVisit visit : studentVisit) {
+            visit.setType("其他");
+            visit.setPurpose("其他");
+            visit.setTeacherId(userId);
+            visit.setVisiterType(visitType);
+            SimpleUserDto userDto = userDtoMap.get(visit.getStudentId());
+            if (Objects.isNull(userDto)){
+                throw new BizException("学员编号{}用户信息不存在",visit.getStudentId());
+            }
+            visit.setOrganId(Integer.parseInt(userDto.getOrganIds()));
+            visit.setCreateTime(now);
+            String month = DateUtil.format(visit.getVisitTime(), DateUtil.ISO_YEAR_MONTH_FORMAT);
+            List<Integer> userIds;
+            if(visitMap.containsKey(month)){
+                userIds = visitMap.get(month);
+            }else {
+                userIds = new ArrayList<>();
+            }
+            userIds.add(visit.getStudentId());
+            visitMap.put(month,userIds);
+        }
+        studentVisitDao.batchInsert(studentVisit);
+        //更新学员回访统计数据
+        for (String month : visitMap.keySet()) {
+            studentOperatingVisitDao.batchUpdateVisit(visitMap.get(month),month);
+        }
+    }
+
+    @Override
     public StudentVisitDto getInfo(Integer id) {
         return studentVisitDao.getInfo(id);
     }
@@ -185,4 +235,100 @@ public class StudentVisitServiceImpl extends BaseServiceImpl<Integer, StudentVis
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    public List<String> importMusicVisit(MultipartFile file) throws Exception{
+        Map<String, List<Map<String, Object>>> sheetsListMap = POIUtil.importExcel(new ByteArrayInputStream(file.getBytes()), 2, file.getOriginalFilename());
+        InputStream inputStream = new ClassPathResource("columnMapper.ini").getInputStream();
+        Map<String, String> columns = IniFileUtil.readIniFile(inputStream, TemplateTypeEnum.PAYMENT_MUSIC_VISIT_IMPORT.getMsg());
+        List<StudentVisit> importDtos = new ArrayList<>();
+        List<String> errMsg = new ArrayList();
+        StringBuffer sb = new StringBuffer();
+        for (String sheetName : sheetsListMap.keySet()) {
+            List<Map<String, Object>> sheet = sheetsListMap.get(sheetName);
+            for (int i = 0; i < sheet.size(); i++) {
+                int rowNum = i + 2;
+                Map<String, Object> row = sheet.get(i);
+                if (row.size() == 0) {
+                    continue;
+                }
+                JSONObject objectMap = new JSONObject();
+                valueIsNull: for (String s : row.keySet()) {
+                    String columnValue = columns.get(s);
+                    if (columnValue.equals("musicGroupId")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:乐团编号不可为空;");
+                            continue valueIsNull;
+                        } else {
+                            objectMap.put(columnValue, row.get(s));
+                        }
+                    } else if (columnValue.equals("studentId")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:学员编号不可为空;");
+                            continue valueIsNull;
+                        } else {
+                            objectMap.put(columnValue, row.get(s));
+                        }
+                    } else if (columnValue.equals("visitTime")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:回访日期不可为空;");
+                            continue valueIsNull;
+                        } else {
+                            objectMap.put(columnValue, row.get(s));
+                        }
+                    } else if (columnValue.equals("overview")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:学员情况不可为空;");
+                            continue valueIsNull;
+                        } else {
+                            objectMap.put(columnValue, row.get(s));
+                        }
+                    } else if (columnValue.equals("feedback")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:家长反馈不可为空;");
+                            continue valueIsNull;
+                        } else {
+                            objectMap.put(columnValue, row.get(s));
+                        }
+                    } else if (columnValue.equals("probStatus")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:问题状态不可为空;");
+                            continue valueIsNull;
+                        } else {
+                            for (HumanCostTypeEnum costTypeEnum : HumanCostTypeEnum.values()) {
+                                if (costTypeEnum.getMsg().equals(row.get(s).toString())) {
+                                    objectMap.put(columnValue, costTypeEnum);
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                }
+                try {
+                    StudentVisit cost = JSONObject.parseObject(objectMap.toJSONString(), StudentVisit.class);
+                    StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(cost.getStudentId(), cost.getMusicGroupId());
+                    if(Objects.isNull(studentRegistration)){
+                        throw new BizException("学员{}不在乐团{}中,无需回访",studentRegistration.getUserId(),studentRegistration.getMusicGroupId());
+                    }
+                    if(studentRegistration.getMusicGroupStatus() != StudentMusicGroupStatusEnum.APPLY){
+                        throw new BizException("学员{}已缴费无需回访",studentRegistration.getUserId());
+                    }
+                    Integer visitStudent = studentVisitDao.getMusicVisitStudent(studentRegistration.getMusicGroupId(), studentRegistration.getUserId());
+                    if(Objects.nonNull(visitStudent)){
+                        throw new BizException("学员{}已回访",visitStudent);
+                    }
+                    importDtos.add(cost);
+                } catch (Exception ex) {
+                    throw new BizException("导入数据出错", ex);
+                }
+            }
+        }
+        if (!org.springframework.util.CollectionUtils.isEmpty(errMsg)) {
+            return errMsg;
+        }
+        if(!org.springframework.util.CollectionUtils.isEmpty(importDtos)){
+            this.batchAddVisit(importDtos);
+        }
+        return null;
+    }
 }

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

@@ -1581,7 +1581,7 @@
     <select id="countClassGroup" resultType="int">
         SELECT COUNT(cg.id_) FROM class_group cg
         <if test="groupType == 'MUSIC'">
-            LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_
+            LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_ AND mg.status_ NOT IN ('CANCELED','PAUSE','CLOSE')
         </if>
         <if test="groupType == 'VIP' or groupType == 'LIVE'">
             LEFT JOIN vip_group mg ON mg.id_ = cg.music_group_id_
@@ -1598,7 +1598,7 @@
         LEFT JOIN sys_user su ON su.id_ = cgtm.user_id_ AND cgtm.teacher_role_ = 'BISHOP'
         LEFT JOIN sys_user su1 ON su1.id_ = cgtm.user_id_ AND cgtm.teacher_role_ = 'TEACHING'
         <if test="groupType == 'MUSIC'">
-            LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_
+            LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_ AND mg.status_ NOT IN ('CANCELED','PAUSE','CLOSE')
         </if>
         <if test="groupType == 'VIP' or groupType == 'LIVE'">
             LEFT JOIN vip_group mg ON mg.id_ = cg.music_group_id_

+ 28 - 34
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -71,6 +71,7 @@
         <result column="isCallNames" property="isCallNames" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="is_complaints_" property="isComplaints"/>
         <result column="merged_course_ids_" property="mergedCourseIds"/>
+        <result column="teachingTeacherIds" property="teachingTeacherIds"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseScheduleDto" id="courseScheduleDto" extends="CourseSchedule">
@@ -2481,33 +2482,17 @@
 
     <select id="endFindCourseSchedules" resultMap="CourseScheduleEndDto">
         SELECT
-            cs.id_ id_,
-            cs.new_course_id_,
-            cs.group_type_,
-            cs.music_group_id_,
-            cs.class_group_id_,
-            cs.status_,
-            cs.name_,
-            cs.class_date_,
-            CONCAT(cs.class_date_,' ',cs.start_class_time_) course_start_time_,
+            cs.id_ id_,cs.new_course_id_,cs.group_type_,cs.music_group_id_,cs.class_group_id_,
+            cs.status_,cs.name_,cs.class_date_,CONCAT(cs.class_date_,' ',cs.start_class_time_) course_start_time_,
             CONCAT(cs.class_date_,' ',cs.end_class_time_) course_end_time_,
-            cs.actual_teacher_id_,
-            cs.teach_mode_,
-            cs.type_,
-            cs.schoole_id_,
-            cs.create_time_,
-            cs.is_lock_,
-            cs.organ_id_,
-            cs.member_flag_,
-            cs.new_course_id_,
-            s.name_ schoole_name_,
-            o.name_ organ_name_,
+            cs.actual_teacher_id_,cs.teach_mode_,cs.type_,cs.schoole_id_,cs.create_time_,cs.is_lock_,
+            cs.organ_id_,cs.member_flag_,cs.new_course_id_,s.name_ schoole_name_,o.name_ organ_name_,
             CASE WHEN COUNT(CASE WHEN sa.id_ IS NULL OR (sa.status_ = 'LEAVE' AND sa.remark_ IS NOT NULL) THEN NULL ELSE 1 END) > 0 THEN 1 ELSE 0 END isCallNames,
             CASE WHEN COUNT(CASE WHEN ta.is_complaints_ = 1 THEN 1 ELSE NULL END) > 0 THEN '1' ELSE '0' END is_complaints_,
             (
                 select group_concat(csd.id_) from course_schedule csd
                 where csd.del_flag_ = 0 and csd.id_ != csd.new_course_id_  and csd.new_course_id_ = cs.new_course_id_
-            ) as merged_course_ids_
+            ) as merged_course_ids_,GROUP_CONCAT(distinct CASE WHEN csts.teacher_role_ = 'TEACHING' THEN csts.user_id_ END) teachingTeacherIds
         FROM
             course_schedule cs
             LEFT JOIN school s ON cs.schoole_id_=s.id_
@@ -2522,22 +2507,22 @@
                 AND cssp.user_id_ = sa.user_id_
             </if>
             <include refid="endFindCourseSchedulesCondition"/>
-        GROUP BY
-            cs.class_date_,
-            cs.start_class_time_,
-            cs.id_
-        ORDER BY
-            cs.class_date_,
-            cs.start_class_time_,
-            cs.id_
+        GROUP BY cs.class_date_, cs.start_class_time_, cs.id_
+        <if test="hasTeaching != null">
+            <if test="hasTeaching == true">
+                HAVING teachingTeacherIds IS NOT NULL
+            </if>
+            <if test="hasTeaching == false">
+                HAVING teachingTeacherIds IS NULL
+            </if>
+        </if>
+        ORDER BY cs.class_date_, cs.start_class_time_, cs.id_
         <include refid="global.limit"/>
     </select>
 
     <select id="endCountCourseSchedules" resultType="int">
-        SELECT
-        COUNT(DISTINCT cs.id_)
-        FROM
-        course_schedule cs
+        SELECT COUNT(c.id_) FROM (
+        SELECT cs.id_,GROUP_CONCAT(distinct CASE WHEN csts.teacher_role_ = 'TEACHING' THEN csts.user_id_ END) teachingTeacherIds FROM course_schedule cs
         <if test="studentId != null or searchType == 'TEACHER_ERR_ATTENDANCE' or searchType == 'STUDENT_ERR_ATTENDANCE'">
             LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
         </if>
@@ -2548,6 +2533,15 @@
         LEFT JOIN teacher_attendance ta on ta.course_schedule_id_ = cs.id_
         LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
         <include refid="endFindCourseSchedulesCondition"/>
+        GROUP BY cs.id_
+        <if test="hasTeaching != null">
+            <if test="hasTeaching == true">
+                HAVING teachingTeacherIds IS NOT NULL
+            </if>
+            <if test="hasTeaching == false">
+                HAVING teachingTeacherIds IS NULL
+            </if>
+        </if>) c
     </select>
     <select id="findClassGroupCourseSchedulesWithDate" resultMap="CourseSchedule">
         SELECT <include refid="resultSql"/>
@@ -2635,7 +2629,7 @@
             AND cs.teach_mode_ = #{teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
         <if test="teacherIdList != null">
-            AND csts.user_id_=#{teacherIdList}
+            AND csts.user_id_ = #{teacherIdList}
         </if>
         <if test="teachType != null">
             AND csts.teacher_role_ = #{teachType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}

+ 12 - 6
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -774,12 +774,6 @@
             <if test="search!=null and search!=''">
                 AND (t.user_id_=#{search} OR su.username_ LIKE CONCAT('%', #{search}, '%'))
             </if>
-            <if test="cloudTeacherTrainStartDate != null">
-                AND date(smcr.create_time_) &gt;= #{cloudTeacherTrainStartDate}
-            </if>
-            <if test="cloudTeacherTrainEndDate != null">
-                AND date(smcr.create_time_) &lt;= #{cloudTeacherTrainEndDate}
-            </if>
         </where>
     </sql>
 
@@ -820,6 +814,12 @@
             LEFT JOIN sys_user su ON stu.user_id_=su.id_
             LEFT JOIN `subject` sub ON stu.subject_id_list_ = sub.id_
             LEFT JOIN sys_music_compare_record smcr ON stu.user_id_ = smcr.user_id_
+            <if test="cloudTeacherTrainStartDate != null">
+                AND date(smcr.create_time_) &gt;= #{cloudTeacherTrainStartDate}
+            </if>
+            <if test="cloudTeacherTrainEndDate != null">
+                AND date(smcr.create_time_) &lt;= #{cloudTeacherTrainEndDate}
+            </if>
         <include refid="queryCloudStudyStudentDataCondition" />
         GROUP BY stu.user_id_
         <trim prefix="ORDER BY " suffixOverrides=",">
@@ -861,6 +861,12 @@
         )) t
         LEFT JOIN sys_user su ON t.user_id_ = su.id_
         LEFT JOIN sys_music_compare_record smcr ON t.user_id_ = smcr.user_id_
+        <if test="cloudTeacherTrainStartDate != null">
+            AND date(smcr.create_time_) &gt;= #{cloudTeacherTrainStartDate}
+        </if>
+        <if test="cloudTeacherTrainEndDate != null">
+            AND date(smcr.create_time_) &lt;= #{cloudTeacherTrainEndDate}
+        </if>
         <include refid="queryCloudStudyStudentDataCondition" />
     </select>
 

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

@@ -61,6 +61,13 @@ month_ = #{month},
 		update student_operating_visit set visit_flag_ = 1
 		where user_id_ = #{studentId} and visit_flag_ = 0 and month_ = #{month}
 	</update>
+    <update id="batchUpdateVisit">
+		update student_operating_visit set visit_flag_ = 1
+		where visit_flag_ = 0 and month_ = #{month} AND user_id_ IN
+		<foreach collection="studentIds" separator="," item="studentId" open="(" close=")">
+			#{studentId}
+		</foreach>
+	</update>
 
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >

+ 18 - 0
mec-biz/src/main/resources/config/mybatis/StudentVisitMapper.xml

@@ -53,6 +53,21 @@
         #{type,jdbcType=VARCHAR}, #{purpose,jdbcType=VARCHAR}, #{overview,jdbcType=VARCHAR},
         #{feedback,jdbcType=VARCHAR}, #{visitTime}, #{createTime},#{objectId},#{tenantId},#{attachments},#{probStatus})
     </insert>
+    <insert id="batchInsert">
+        insert into student_visit (music_group_id_, organ_id_, student_id_, teacher_id_, visiter_type_, feedback_type_,feedback_type_desc_,
+        type_, purpose_, overview_,
+        feedback_, visit_time_, create_time_,object_id_,tenant_id_,attachments_,prob_status)
+        VALUES
+        <foreach collection="studentVisit" item="item" separator=",">
+            (#{item.musicGroupId,jdbcType=VARCHAR}, #{item.organId,jdbcType=INTEGER}, #{item.studentId,jdbcType=INTEGER},
+            #{item.teacherId,jdbcType=INTEGER},#{item.visiterType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{item.feedbackType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{item.feedbackTypeDesc,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{item.type,jdbcType=VARCHAR}, #{item.purpose,jdbcType=VARCHAR}, #{item.overview,jdbcType=VARCHAR},
+            #{item.feedback,jdbcType=VARCHAR}, #{item.visitTime}, #{item.createTime},#{item.objectId},#{item.tenantId},
+             #{item.attachments},#{item.probStatus})
+        </foreach>
+    </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentVisit">
         <!--@mbg.generated-->
         update student_visit
@@ -211,6 +226,9 @@
             #{studentId}
         </foreach>
     </select>
+    <select id="getMusicVisitStudent" resultType="java.lang.Integer">
+        SELECT student_id_ FROM student_visit WHERE music_group_id_ = #{musicGroupId} AND student_id_ = #{studentId}
+    </select>
     <select id="getTeacherVisitCount" resultType="com.ym.mec.biz.dal.dto.TeacherVisitDto">
         SELECT teacher_id_ teacherId,date_format(visit_time_, '%Y-%m') month, COUNT(*) num
         FROM student_visit

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -675,7 +675,7 @@
 
     <select id="findHaveCourseBalanceStudents" resultMap="vipGroupStudentDto">
         SELECT
-            su.id_,
+            su.id_ user_id_,
             su.username_,
             su.phone_,
             suca.course_balance_,

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -329,7 +329,7 @@ public class ClassGroupController extends BaseController {
     @GetMapping("/queryClassGroupPage")
     @PreAuthorize("@pcs.hasPermissions('classGroup/queryClassGroupPage')")
     public HttpResponseResult queryClassGroupPage(ClassGroupQueryInfo queryInfo){
-        queryInfo = organizationService.onlyEducation(queryInfo);
+        queryInfo.setOrganIds(organizationService.getEmployeeOrgan(queryInfo.getOrganIds()));
         return succeed(classGroupService.queryClassGroupPage(queryInfo));
     }
 

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -1892,7 +1892,7 @@ public class ExportController extends BaseController {
         }
         queryInfo.setPage(1);
         queryInfo.setRows(49999);
-        queryInfo.setIsExport(true);
+        queryInfo.setExport(true);
         ManagerDownload managerDownload = exportService.saveManagerDownload(ExportTypeEnum.COURSE_SCHEDULE, sysUser.getId());
         TenantContextHolder.setTenantId(tenantId);
         HttpResponseResult succeed = exportService.asyncExport(() -> exportService.superFindCourseSchedules(queryInfo, managerDownload), managerDownload.getName());

+ 16 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ImportController.java

@@ -3,6 +3,7 @@ package com.ym.mec.web.controller;
 import com.ym.mec.biz.dal.entity.FinancialExpenditure;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
+import com.ym.mec.biz.dal.entity.StudentVisit;
 import com.ym.mec.biz.dal.enums.TemplateTypeEnum;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
@@ -22,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -55,6 +57,8 @@ public class ImportController extends BaseController {
     private TempBuyFreeLiveTheoryCourseService liveTheoryCourseService;
     @Autowired
     private MusicGroupService musicGroupService;
+    @Autowired
+    private StudentVisitService studentVisitService;
 
 
     @ApiOperation(value = "导入商品")
@@ -204,4 +208,16 @@ public class ImportController extends BaseController {
             return failed(StringUtils.join(errMsg, ","));
         }
     }
+
+    @ApiOperation(value = "批量导入乐团回访")
+    @PostMapping(value = "/importMusicVisit")
+    @PreAuthorize("@pcs.hasPermissions('import/importMusicVisit')")
+    public HttpResponseResult<StudentVisit> importMusicVisit(@RequestParam("file") MultipartFile file) throws Exception {
+        List<String> errMsg = studentVisitService.importMusicVisit(file);
+        if (CollectionUtils.isEmpty(errMsg)) {
+            return succeed();
+        } else {
+            return failed(StringUtils.join(errMsg, ","));
+        }
+    }
 }

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/VisitController.java

@@ -54,6 +54,7 @@ public class VisitController extends BaseController {
         studentVisit.setVisiterType(StudentVisit.VisiterTypeEnum.EDU_TEACHER);
         return succeed(studentVisitService.addVisit(studentVisit));
     }
+
     @ApiOperation(value = "修改问题状态")
     @PostMapping(value = "/updateProbStatus")
     @PreAuthorize("@pcs.hasPermissions('visit/updateProbStatus')")
@@ -64,7 +65,6 @@ public class VisitController extends BaseController {
         }else{
             return failed(s);
         }
-
     }
 
 

+ 9 - 1
mec-web/src/main/resources/columnMapper.ini

@@ -121,4 +121,12 @@ ID = id
 手机号 = phone
 声部 = subjectName
 年级 = grade
-班级 = currentClass
+班级 = currentClass
+
+[缴费中乐团批量回访]
+乐团编号 = musicGroupId
+学员编号 = studentId
+回访日期 = visitTime
+学员情况 = overview
+家长反馈 = feedback
+问题状态 = probStatus