浏览代码

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

yonge 2 年之前
父节点
当前提交
5079109274
共有 56 个文件被更改,包括 496 次插入1848 次删除
  1. 5 3
      cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsInformationServiceImpl.java
  2. 0 9
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ActivityUserMapperDao.java
  3. 0 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CloudTeacherDao.java
  4. 7 37
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java
  5. 6 14
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java
  6. 6 30
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  7. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentTeacherMapperDao.java
  8. 0 10
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  9. 0 22
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EduOrganStudentListDto.java
  10. 0 22
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EduOrganStudentListExportDto.java
  11. 0 130
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentServeDto.java
  12. 0 8
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ActivityUserMapper.java
  13. 59 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentTeacherMapper.java
  14. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ExportEnum.java
  15. 5 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/FeeProjectEnum.java
  16. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/ActivityUserMapperService.java
  17. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesReplyService.java
  18. 5 25
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentExtracurricularExercisesSituationService.java
  19. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java
  20. 2 21
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentServeService.java
  21. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentTeacherMapperService.java
  22. 0 8
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  23. 2 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ActivityUserMapperServiceImpl.java
  24. 6 20
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java
  25. 8 94
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java
  26. 127 62
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  27. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java
  28. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java
  29. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  30. 1 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java
  31. 17 99
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java
  32. 0 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  33. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  34. 17 313
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java
  35. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentTeacherMapperServiceImpl.java
  36. 20 117
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  37. 4 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java
  38. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  39. 35 28
      mec-biz/src/main/resources/config/mybatis/ActivityUserMapperMapper.xml
  40. 0 20
      mec-biz/src/main/resources/config/mybatis/CloudTeacherMapper.xml
  41. 2 2
      mec-biz/src/main/resources/config/mybatis/OperatingReportNewMapper.xml
  42. 4 4
      mec-biz/src/main/resources/config/mybatis/SellOrderMapper.xml
  43. 0 8
      mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml
  44. 0 159
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  45. 27 14
      mec-biz/src/main/resources/config/mybatis/StudentStatisticsMapper.xml
  46. 39 0
      mec-biz/src/main/resources/config/mybatis/StudentTeacherMapperMapper.xml
  47. 0 27
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  48. 16 4
      mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml
  49. 24 380
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  50. 0 14
      mec-web/src/main/java/com/ym/mec/web/controller/ExtracurricularExercisesReplyController.java
  51. 0 30
      mec-web/src/main/java/com/ym/mec/web/controller/StudentExtracurricularExercisesSituationController.java
  52. 0 7
      mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java
  53. 0 7
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java
  54. 2 43
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduStudentExtracurricularExercisesSituationController.java
  55. 4 5
      mec-web/src/main/java/com/ym/mec/web/controller/education/OaContractsController.java
  56. 2 6
      mec-web/src/main/resources/exportColumnMapper.ini

+ 5 - 3
cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsInformationServiceImpl.java

@@ -95,9 +95,11 @@ public class SysNewsInformationServiceImpl extends BaseServiceImpl<Long, SysNews
 			SysNewsInformation sni = null;
     		while(iterator.hasNext()){
     			sni = iterator.next();
-    			if(TenantContextHolder.getTenantId() != 1 && StringUtils.indexOf(sni.getTitle(), "商城") >= 0){
-    				iterator.remove();
-    				app.setTotal(app.getTotal() - 1);
+    			if(StringUtils.indexOf(sni.getTitle(), "商城") >= 0){
+					if (TenantContextHolder.getTenantId() != 1 || queryInfo.getOrganId() == 4) {
+						iterator.remove();
+						app.setTotal(app.getTotal() - 1);
+					}
     			}else if(sni.getTitle().equals("进阶课堂")){
 					try {
 						//当前学员是否有可购买vip课

+ 0 - 9
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ActivityUserMapperDao.java

@@ -70,15 +70,6 @@ public interface ActivityUserMapperDao extends BaseDAO<Integer, ActivityUserMapp
                                          @Param("groupType") String groupType,
                                          @Param("studentId") Integer studentId);
 
-    /**
-     * @description: 修改指导老师
-     * @param userId
-     * @param teacherId
-     * @return void
-     * @author zx
-     * @date 2021/11/1 16:21
-     */
-    void updateTeacherId(@Param("userId") Integer userId, @Param("teacherId") Integer teacherId);
 
     /**
     * @description: 获取学员活动排课资格列表

+ 0 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CloudTeacherDao.java

@@ -22,9 +22,4 @@ public interface CloudTeacherDao extends BaseDAO<Long, CloudTeacher> {
     int getOrganVipStudentNum(@Param("organId") Integer organId);
     int getOrgansTotalVipStudentNum(@Param("organIds") List<Integer> organIds);
     List<Map<Integer, Integer>> getOrgansVipStudentNum(@Param("organIds") List<Integer> organId);
-
-
-    List<Map<Integer, Integer>> getTeachersMemberStudentNum(@Param("teacherIds") List<Integer> teacherIds,
-                                                            @Param("organId") Integer organId);
-
 }

+ 7 - 37
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -1,18 +1,17 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import com.ym.mec.biz.dal.dto.*;
-import org.apache.ibatis.annotations.Param;
-
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
 import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.enums.GroupType;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Student> {
 
@@ -90,8 +89,6 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
      * @date 2020.04.29
      */
 
-    List<Student> getServiceStudents(Integer tenantId);
-
     /**
      * @return java.util.List<java.lang.Integer>
      * @describe 获取被服务学员id列表
@@ -106,16 +103,6 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
                                                            @Param("sunday") String sunday,
                                                            @Param("studentIds") List<Integer> studentIds, @Param("tenantId") Integer tenantId);
 
-    List<StudentServeCourseDto> getNoCourseBeServeStudentInfo(@Param("studentIds") List<Integer> noCourseStudentIds, @Param("tenantId") Integer tenantId);
-
-
-    List<StudentServeDto> getBeServiceStudentsInfoWithStudents(@Param("monday") String monday,
-                                                               @Param("courseExpireDate") Date courseExpireDate,
-                                                               @Param("studentIds") List<Integer> studentIds);
-
-    List<StudentServeDto> getBeServiceStudentsInfoWithStudentsForHistory(@Param("monday") String monday,
-                                                                         @Param("courseExpireDate") Date courseExpireDate,
-                                                                         @Param("studentIds") List<Integer> studentIds);
 
     /**
      * @param studentId:    学生编号
@@ -150,12 +137,6 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
      */
     void batchUpdateAdviser(@Param("teacherId") Integer teacherId, @Param("studentIds") String studentIds);
 
-    /**
-     * 获取学生的老师
-     * @param studentIds
-     * @return
-     */
-    List<Student> getStudentTeacher(@Param("studentIds") List<Integer> studentIds);
 
     /**
      * 当前服务指标已开启,但在系统中没有剩余课时,且在乐团中不是在读状态,这种用户需要关闭服务指标
@@ -261,11 +242,6 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
     
     List<Map<Integer, Integer>> getOrgansStudentNum(@Param("organIds") List<Integer> organIds);
 
-    List<Map<Integer, Integer>> getOrganTeacherStudentNum(@Param("teacherIds") List<Integer> teacherIds,
-                                                          @Param("organId") Integer organId);
-
-    int getOrganNoTeacherStudentNum(@Param("organId") Integer organId);
-
     /**
      * @describe 统计云教练试用人数
      * @author Joburgess
@@ -277,9 +253,6 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
     int getOrgansTotalCloudStudyStudentNum(@Param("organIds") List<Integer> organIds);
     List<Map<Integer, Integer>> getOrganCloudStudyStudentNum(@Param("organIds") List<Integer> organIds);
 
-    List<Map<Integer, Integer>> getOrganTeacherCloudStudyStudentNum(@Param("teacherIds") List<Integer> teacherIds,
-                                                                    @Param("organId") Integer organId);
-
     /**
      * @describe 统计云教练今日使用人数
      * @author Joburgess
@@ -350,9 +323,6 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
     int getOrganEVipStudentNum(@Param("organId") Integer organId);
     int getOrgansTotalEVipStudentNum(@Param("organIds") List<Integer> organIds);
 
-    List<Map<Integer, Integer>> getTeacherExperienceMemberStudentNum(@Param("teacherIds") List<Integer> teacherIds,
-                                                                     @Param("organId") Integer organId);
-
     List<Map<Integer, String>> getStudentSubjectMapList(@Param("studentIds") List<Integer> studentIds);
 
     List<IndexBaseMonthData> groupOrganId(@Param("organIds") List<Integer> organIds, @Param("userIds") List<Integer> userIds);

+ 6 - 14
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java

@@ -1,19 +1,14 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.ibatis.annotations.Param;
-
-import com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto;
-import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
-import com.ym.mec.biz.dal.dto.StudentServeExportDto;
-import com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto;
-import com.ym.mec.biz.dal.dto.TeacherServeDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
 import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 public interface StudentExtracurricularExercisesSituationDao extends BaseDAO<Long, StudentExtracurricularExercisesSituation> {
 
@@ -147,9 +142,6 @@ public interface StudentExtracurricularExercisesSituationDao extends BaseDAO<Lon
                                                                                @Param("teacherId") Integer teacherId,
                                                                                @Param("studentIds") List<Integer> studentIds);
 
-    List<StudentExtracurricularExercisesSituation> findServiceWithCourse(@Param("monday") String monday,
-                                                                         @Param("courseId") Long courseId);
-
     List<TeacherServeDto> queryTeacherServeInfo(Map<String, Object> params);
 
     int countTeacherServeInfo(Map<String, Object> params);

+ 6 - 30
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -1,39 +1,15 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.math.BigDecimal;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.ibatis.annotations.Param;
-
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.Mapper;
-import com.ym.mec.biz.dal.dto.MusicGroupRegAndMoneyDto;
-import com.ym.mec.biz.dal.dto.NoClassMusicStudentDto;
-import com.ym.mec.biz.dal.dto.OrderStatisDto;
-import com.ym.mec.biz.dal.dto.RegisterDto;
-import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
-import com.ym.mec.biz.dal.dto.StudentClassInfoDto;
-import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
-import com.ym.mec.biz.dal.dto.StudentInfo;
-import com.ym.mec.biz.dal.dto.StudentMusicDetailDto;
-import com.ym.mec.biz.dal.dto.StudentMusicGroupDto;
-import com.ym.mec.biz.dal.dto.StudentOrganDto;
-import com.ym.mec.biz.dal.dto.StudentRegisterInstrumentsDetailDto;
-import com.ym.mec.biz.dal.dto.StudentRegisterPerDto;
-import com.ym.mec.biz.dal.dto.SubjectApplyDetailDto;
-import com.ym.mec.biz.dal.dto.UserGroupDto;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
-import com.ym.mec.biz.dal.entity.StudentInstrument;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
 import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.*;
 
 public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistration> {
 

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentTeacherMapperDao.java

@@ -0,0 +1,9 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.StudentTeacherMapper;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface StudentTeacherMapperDao extends BaseDAO<Integer, StudentTeacherMapper> {
+
+	
+}

+ 0 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -8,11 +8,9 @@ import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImUserModel;
-
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -514,14 +512,6 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
     List<String> queryTeacherMusicIds(Map<String, Object> params);
     int countTeacherMusics(Map<String, Object> params);
 
-    /**
-     * 查询分部下教师关联的会员数据
-     * @param params
-     * @return
-     */
-    List<TeacherStudentDataDto> queryMemberStudentData(Map<String, Object> params);
-    int countMemberStudentData(Map<String, Object> params);
-
     int countTeacherBasicInfo(Map<String, Object> params);
 
     List<SysUserDto> queryTeacherBasicInfo(Map<String, Object> params);

+ 0 - 22
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EduOrganStudentListDto.java

@@ -16,12 +16,6 @@ public class EduOrganStudentListDto {
     @ApiModelProperty("姓名")
     private String studentName;
 
-    @ApiModelProperty("指导老师编号")
-    private Integer teacherId;
-
-    @ApiModelProperty("指导老师名称")
-    private String teacherName;
-
     @ApiModelProperty("声部编号")
     private Integer subjectId;
 
@@ -98,22 +92,6 @@ public class EduOrganStudentListDto {
         this.studentName = studentName;
     }
 
-    public Integer getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Integer teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
-    }
-
     public Integer getSubjectId() {
         return subjectId;
     }

+ 0 - 22
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EduOrganStudentListExportDto.java

@@ -19,12 +19,6 @@ public class EduOrganStudentListExportDto {
     @ApiModelProperty("手机号")
     private String phone;
 
-    @ApiModelProperty("指导老师编号")
-    private Integer teacherId;
-
-    @ApiModelProperty("指导老师名称")
-    private String teacherName;
-
     @ApiModelProperty("声部编号")
     private Integer subjectId;
 
@@ -148,22 +142,6 @@ public class EduOrganStudentListExportDto {
         this.studentName = studentName;
     }
 
-    public Integer getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Integer teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
-    }
-
     public Integer getSubjectId() {
         return subjectId;
     }

+ 0 - 130
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentServeDto.java

@@ -1,130 +0,0 @@
-package com.ym.mec.biz.dal.dto;
-
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.TeachModeEnum;
-
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.util.Date;
-
-/**
- * @Author Joburgess
- * @Date 2020.05.27
- */
-public class StudentServeDto extends Student {
-
-    private GroupType groupType;
-
-    private TeachModeEnum teachMode;
-
-    private Date courseStartTime;
-
-    private String musicGroupName;
-
-    private String servePeriod;
-
-    private String serveNum;
-
-    private Integer actualExercisesNum;
-
-    private Integer exercisesReplyNum;
-
-    private Integer exercisesMessageNum;
-
-    private BigDecimal signRate;
-
-    private BigDecimal passRate;
-
-    public GroupType getGroupType() {
-        return groupType;
-    }
-
-    public void setGroupType(GroupType groupType) {
-        this.groupType = groupType;
-    }
-
-    public TeachModeEnum getTeachMode() {
-        return teachMode;
-    }
-
-    public void setTeachMode(TeachModeEnum teachMode) {
-        this.teachMode = teachMode;
-    }
-
-    public Date getCourseStartTime() {
-        return courseStartTime;
-    }
-
-    public void setCourseStartTime(Date courseStartTime) {
-        this.courseStartTime = courseStartTime;
-    }
-
-    public String getMusicGroupName() {
-        return musicGroupName;
-    }
-
-    public void setMusicGroupName(String musicGroupName) {
-        this.musicGroupName = musicGroupName;
-    }
-
-    public String getServePeriod() {
-        return servePeriod;
-    }
-
-    public void setServePeriod(String servePeriod) {
-        this.servePeriod = servePeriod;
-    }
-
-    public String getServeNum() {
-        return serveNum;
-    }
-
-    public void setServeNum(String serveNum) {
-        this.serveNum = serveNum;
-    }
-
-    public Integer getActualExercisesNum() {
-        return actualExercisesNum;
-    }
-
-    public void setActualExercisesNum(Integer actualExercisesNum) {
-        this.actualExercisesNum = actualExercisesNum;
-    }
-
-    public Integer getExercisesReplyNum() {
-        return exercisesReplyNum;
-    }
-
-    public void setExercisesReplyNum(Integer exercisesReplyNum) {
-        this.exercisesReplyNum = exercisesReplyNum;
-    }
-
-    public Integer getExercisesMessageNum() {
-        return exercisesMessageNum;
-    }
-
-    public void setExercisesMessageNum(Integer exercisesMessageNum) {
-        this.exercisesMessageNum = exercisesMessageNum;
-    }
-
-    public BigDecimal getSignRate() {
-        return signRate;
-    }
-
-    public void setSignRate(BigDecimal signRate) {
-        if (null != signRate) {
-            this.signRate = signRate.setScale(2, RoundingMode.HALF_UP);
-        }
-    }
-
-    public BigDecimal getPassRate() {
-        return passRate;
-    }
-
-    public void setPassRate(BigDecimal passRate) {
-        if (null != passRate) {
-            this.passRate = passRate.setScale(2, RoundingMode.HALF_UP);
-        }
-    }
-}

+ 0 - 8
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ActivityUserMapper.java

@@ -289,14 +289,6 @@ public class ActivityUserMapper extends BaseEntity {
 		this.actualPrice = actualPrice;
 	}
 
-	public Integer getTeacherId() {
-		return teacherId;
-	}
-
-	public void setTeacherId(Integer teacherId) {
-		this.teacherId = teacherId;
-	}
-
 	public Long getMemberOrderId() {
 		return memberOrderId;
 	}

+ 59 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentTeacherMapper.java

@@ -0,0 +1,59 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(student_teacher_mapper):
+ */
+public class StudentTeacherMapper {
+
+	/**  */
+	private Integer studentId;
+	
+	/**  */
+	private Integer teacherId;
+	
+	/** 老师姓名 */
+	private String teacherName;
+	
+	/** 老师类型SINGLE|MIX|VIP|PRACTICE */
+	private String teacherType;
+	
+	public void setStudentId(Integer studentId){
+		this.studentId = studentId;
+	}
+	
+	public Integer getStudentId(){
+		return this.studentId;
+	}
+			
+	public void setTeacherId(Integer teacherId){
+		this.teacherId = teacherId;
+	}
+	
+	public Integer getTeacherId(){
+		return this.teacherId;
+	}
+			
+	public void setTeacherName(String teacherName){
+		this.teacherName = teacherName;
+	}
+	
+	public String getTeacherName(){
+		return this.teacherName;
+	}
+			
+	public void setTeacherType(String teacherType){
+		this.teacherType = teacherType;
+	}
+	
+	public String getTeacherType(){
+		return this.teacherType;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ExportEnum.java

@@ -31,7 +31,7 @@ public enum ExportEnum implements BaseEnum<String, ExportEnum> {
     MUSICAL_LIST_DETAIL_EXPORT("MUSICAL_LIST_DETAIL_EXPORT", "导出学员采购清单明细"),
     QUERY_STUDENT_APPLY_DETAIL_EXPORT("QUERY_STUDENT_APPLY_DETAIL_EXPORT", "学生详情列表导出"),
     COURSE_SCHEDULE_TEACHER_SALARY("COURSE_SCHEDULE_TEACHER_SALARY", "分页导出教师薪酬列表"),
-    MALL_ORDER_LIST("ORDER_LIST", "商城订单列表导出"),
+    MALL_ORDER_LIST("MALL_ORDER_LIST", "商城订单列表导出"),
     ORDER_LIST1("ORDER_LIST1", "订单列表导出1"),
     ORDER_LIST2("ORDER_LIST2", "订单列表导出2"),
     ORDER_LIST_SUM("ORDER_LIST_SUM", "订单列表汇总导出"),
@@ -63,7 +63,6 @@ public enum ExportEnum implements BaseEnum<String, ExportEnum> {
     EXPORT_INDEX_HISTORY_ERR_DATA("EXPORT_INDEX_HISTORY_ERR_DATA", "首页历史异常统计导出"),
     TEACHER_LIST("TEACHER_LIST", "老师列表导出"),
     EMPLOYEE_INFO("EMPLOYEE_INFO", "人力资源导出"),
-    ORGAN_TEACHER_MEMBER_STUDENT_DATA("ORGAN_TEACHER_MEMBER_STUDENT_DATA", "分部下教师关联的会员数据导出"),
     ORGAN_STUDENT_OVER_VIEW("ORGAN_STUDENT_OVER_VIEW", "分部云教练学员数据预览导出"),
     CLOUD_STUDY_STUDENT_OVER_VIEW("CLOUD_STUDY_STUDENT_OVER_VIEW", "分部云教练学员数据详情导出"),
     CLOUD_STUDY_STUDENT_TRAIN_DATA("CLOUD_STUDY_STUDENT_TRAIN_DATA", "分部云教练学员训练数据导出"),

+ 5 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/FeeProjectEnum.java

@@ -24,7 +24,11 @@ public enum FeeProjectEnum implements BaseEnum<Integer, FeeProjectEnum> {
     REFUND(19, "退费"),
     TEACHING_POINT_RENTAL(20, "教学点租赁"),
     MUSICAL_INSTRUMENT_REPAIR(21, "乐器维修"),
-    INTERNAL_SETTLEMENT(22, "内部结算");
+    INTERNAL_SETTLEMENT(22, "内部结算"),
+    MUSICAL(23, "乐器"),
+    COST_PARTS(24, "配件费"),
+    DEPOSIT(25, "押金"),
+    OTHER(26, "其他");
 
     private Integer code;
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/ActivityUserMapperService.java

@@ -211,5 +211,5 @@ public interface ActivityUserMapperService extends BaseService<Integer, Activity
 
     PageInfo<ActivityUserMapperSumDto> querySumPage(ActivityUserMapperDetailQueryInfo queryInfo);
 
-    void saveToOrder(StudentPaymentOrder studentPaymentOrder,Integer teacherId);
+    void saveToOrder(StudentPaymentOrder studentPaymentOrder);
 }

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesReplyService.java

@@ -62,7 +62,5 @@ public interface ExtracurricularExercisesReplyService extends BaseService<Long,
      */
     PageInfo<ExtraExerciseStudentsDto> findExtraExercises(ExtraExercilseReplyQueryInfo queryInfo);
 
-    void exercisesSituationStatistics2(String monday);
-
     PageInfo<EduHomeworkCardDto> getEduHomeworkList(StudentCourseHomeWorkQueryInfo queryInfo);
 }

+ 5 - 25
mec-biz/src/main/java/com/ym/mec/biz/service/StudentExtracurricularExercisesSituationService.java

@@ -1,25 +1,14 @@
 package com.ym.mec.biz.service;
 
-import java.util.List;
-import java.util.Map;
-
-import com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto;
-import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
-import com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto;
-import com.ym.mec.biz.dal.dto.TeacherServeDto;
-import com.ym.mec.biz.dal.dto.TeacherServeExtraDto;
-import com.ym.mec.biz.dal.dto.TeacherServeHomeworkDto;
-import com.ym.mec.biz.dal.dto.TeacherServeHomeworkPojo;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
-import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
-import com.ym.mec.biz.dal.page.StudentExerciseMusicGroupQueryInfo;
-import com.ym.mec.biz.dal.page.StudentExercisesSituationQueryInfo;
-import com.ym.mec.biz.dal.page.StudentServiceDetailQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherServeHomeworkQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+import java.util.Map;
+
 public interface StudentExtracurricularExercisesSituationService extends BaseService<Long, StudentExtracurricularExercisesSituation> {
 	
 	PageInfo<MusicGroupExtracurricularSummaryDto> queryStudentExerciseMusicGroupList(StudentExerciseMusicGroupQueryInfo queryInfo);
@@ -27,15 +16,6 @@ public interface StudentExtracurricularExercisesSituationService extends BaseSer
     PageInfo<StudentExercisesSituationDto> findStudentExtracurricularExercisesSituations(StudentExercisesSituationQueryInfo queryInfo);
 
     /**
-     * @describe 获取学员服务信息列表
-     * @author Joburgess
-     * @date 2020.04.29
-     * @param queryInfo:
-     * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.StudentExercisesSituationDto>
-     */
-    PageInfo<StudentExercisesSituationDto> findServiceStudentSituations(StudentExercisesSituationQueryInfo queryInfo);
-
-    /**
      * @describe 获取学生服务详情
      * @author Joburgess
      * @date 2020.04.29

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -200,8 +200,7 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
     Integer activityGive(Integer vipGroupActivityId,
                          StudentPaymentOrder studentPaymentOrder,
                          String vipGroupId,
-                         String practiceGroupId,
-                         Integer teacherId);
+                         String practiceGroupId);
 
     /**
      * @param order

+ 2 - 21
mec-biz/src/main/java/com/ym/mec/biz/service/StudentServeService.java

@@ -1,27 +1,18 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.IndexBaseDto;
+
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import com.ym.mec.biz.dal.dto.IndexBaseDto;
-
 /**
  * @Author Joburgess
  * @Date 2020.05.27
  */
 public interface StudentServeService {
 
-    /**
-     * @describe 学生服务信息统计
-     * @author Joburgess
-     * @date 2020/4/10
-     * @param :
-     * @return void
-     */
-    void exercisesSituationStatistics(String monday, Integer tenantId);
-
     void exercisesSituationStatistics2(String monday, Integer tenantId);
 
     /**
@@ -56,16 +47,6 @@ public interface StudentServeService {
     void updateExercisesSituation(String musicGroupId, Date date, List<Integer> studentIds, Integer teacherId);
 
     /**
-     * @describe 获取与课程相关的应被服务的学员
-     * @author Joburgess
-     * @date 2020/12/29 0029
-     * @param date:
-     * @param courseId:
-     * @return java.util.Set<java.lang.Integer>
-     */
-    Set<Integer> getStudentWithCourse(Long courseId);
-
-    /**
      * 更新学生服务指标
      */
     void closeStudentServiceTag();

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentTeacherMapperService.java

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.StudentTeacherMapper;
+import com.ym.mec.common.service.BaseService;
+
+public interface StudentTeacherMapperService extends BaseService<Integer, StudentTeacherMapper>{
+
+}

+ 0 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java

@@ -232,14 +232,6 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      */
     PageInfo<TeacherMusicStudentOverViewDto> queryTeacherMusicStudentOverView(TeacherServeQueryInfo queryInfo);
 
-    /**
-     * 查询分部下教师关联的会员数据
-     *
-     * @param queryInfo
-     * @return
-     */
-    PageInfo<TeacherStudentDataDto> queryMemberStudentData(TeacherServeQueryInfo queryInfo);
-
     PageInfo<SysUserDto> queryTeacherBasicInfo(UserBasicQueryInfo queryInfo);
 
     /**

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

@@ -208,11 +208,6 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 			if(activityUserMapperNum <= 0){
 				throw new BizException("操作失败:加课次数不可为空");
 			}
-			List<Student> students = collect.get(adjustDto.getUserId());
-			Integer teacherId = null;
-			if(students != null && students.size() > 0){
-				teacherId = students.get(0).getTeacherId();
-			}
 			for (int i = 0; i < activityUserMapperNum; i++) {
 				ActivityUserMapper activityUserMapper = new ActivityUserMapper();
 				activityUserMapper.setActivityId(activityId);
@@ -220,7 +215,6 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 				activityUserMapper.setActualPrice(BigDecimal.ZERO);
 				activityUserMapper.setSubNoCoursePrice(BigDecimal.ZERO);
 				activityUserMapper.setReturnFee(false);
-				activityUserMapper.setTeacherId(teacherId);
 				activityUserMapper.setAddMemo(memo);
 				activityUserMapper.setOrganId(sysUser.getOrganId());
 				boolean buyFlag = adjustDto.getCourseNum() > i;
@@ -346,9 +340,7 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 			//这里的studentInstrumentId存的是活动编号
 			activityUserMapper.setActivityId(orderDetail.getStudentInstrumentId().intValue());
 			VipGroupActivity vipGroupActivity = collect.get(activityUserMapper.getActivityId());
-			Student student = studentDao.get(studentPaymentOrder.getUserId());
 			activityUserMapper.setUserId(studentPaymentOrder.getUserId());
-			activityUserMapper.setTeacherId(student.getTeacherId());
 			activityUserMapper.setPaymentOrderId(studentPaymentOrder.getId());
 			activityUserMapper.setCalenderId(calenderId);
 			activityUserMapper.setOrganId(studentPaymentOrder.getOrganId());
@@ -1109,9 +1101,7 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 		BigDecimal reduce = studentPayments.stream().map(e -> e.getActualPrice()).reduce(ZERO, BigDecimal::add);
 		activityUserMapper.setActualPrice(reduce);
 		activityUserMapper.setSubNoCoursePrice(reduce);
-		Student student = studentDao.get(studentId);
-		activityUserMapper.setTenantId(student.getTenantId());
-		activityUserMapper.setTeacherId(student.getTeacherId());
+		activityUserMapper.setTenantId(vipGroup.getTenantId());
 		activityUserMapper.setUserId(studentId);
 		activityUserMapper.setOrganId(vipGroup.getOrganId());
 		activityUserMapperDao.insert(activityUserMapper);
@@ -1210,7 +1200,7 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 
     @Override
 	@Transactional(rollbackFor = Exception.class)
-    public void saveToOrder(StudentPaymentOrder studentPaymentOrder,Integer teacherId) {
+    public void saveToOrder(StudentPaymentOrder studentPaymentOrder) {
 		String activityIds = studentPaymentOrder.getActivityId();
 		List<VipGroupActivity> activities = vipGroupActivityDao.queryByIds(activityIds);
 		BigDecimal reduce = activities.stream().map(e -> e.getMarketPrice()).reduce(ZERO, BigDecimal::add);
@@ -1222,7 +1212,6 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 			activityUserMapper.setPaymentOrderId(studentPaymentOrder.getId());
 			activityUserMapper.setUserId(studentPaymentOrder.getUserId());
 			activityUserMapper.setActivityId(activity.getId());
-			activityUserMapper.setTeacherId(teacherId);
 			activityUserMapper.setAddMemo(activity.getName());
 			activityUserMapper.setOrganId(studentPaymentOrder.getOrganId());
 			if (i == activities.size() - 1) {

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

@@ -132,8 +132,6 @@ public class ExportServiceImpl implements ExportService {
     @Autowired
     private StudentPaymentOrderDao studentPaymentOrderDao;
     @Autowired
-    private StudentDao studentDao;
-    @Autowired
     private MusicGroupPaymentCalenderDetailService musicGroupPaymentCalenderDetailService;
     @Autowired
     private TeacherService teacherService;
@@ -337,7 +335,6 @@ public class ExportServiceImpl implements ExportService {
         exportFuncMap.put(ExportEnum.EXPORT_INDEX_HISTORY_ERR_DATA, info -> indexErrDataRecordService.queryRecord(getQueryInfo(info, IndexErrRecordQueryInfo.class, true)).getRows());
         exportFuncMap.put(ExportEnum.TEACHER_LIST, info -> teacherService.queryPageDetail(getQueryInfo(info, TeacherQueryInfo.class, true)).getRows());
         exportFuncMap.put(ExportEnum.EMPLOYEE_INFO, info -> employeeInfoService.queryPage(getQueryInfo(info, EmployeeInfoQueryInfo.class, true)).getRows());
-        exportFuncMap.put(ExportEnum.ORGAN_TEACHER_MEMBER_STUDENT_DATA, info -> teacherService.queryMemberStudentData(getQueryInfo(info, TeacherServeQueryInfo.class, true)).getRows());
         exportFuncMap.put(ExportEnum.ORGAN_STUDENT_OVER_VIEW, info -> organStudentOverView(info));
         exportFuncMap.put(ExportEnum.CLOUD_STUDY_STUDENT_OVER_VIEW, info -> cloudStudyStudentOverView(info));
         exportFuncMap.put(ExportEnum.CLOUD_STUDY_STUDENT_TRAIN_DATA, info -> cloudStudyStudentTrainData(info));
@@ -1006,11 +1003,9 @@ public class ExportServiceImpl implements ExportService {
         }
         List<Long> vipGroupIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.VIP)).map(OrderByTypeExportDto::getMusicGroupId).collect(Collectors.toList());
         List<Long> practiceGroupIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.PRACTICE)).map(OrderByTypeExportDto::getMusicGroupId).collect(Collectors.toList());
-        List<Integer> studentIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.SPORADIC)).map(OrderByTypeExportDto::getStudentId).collect(Collectors.toList());
 
         List<VipBuyResultDto> vipGroupTeachers = new ArrayList<>();
         List<PracticeCourseDto> practiceGroupsTeacher = new ArrayList<>();
-        List<Student> studentTeachers = new ArrayList<>();
         if (vipGroupIds.size() > 0) {
             vipGroupTeachers = vipGroupDao.getGroupTeachers(vipGroupIds, TenantContextHolder.getTenantId());
         }
@@ -1018,9 +1013,6 @@ public class ExportServiceImpl implements ExportService {
         if (practiceGroupIds.size() > 0) {
             practiceGroupsTeacher = practiceGroupDao.getPracticeGroupByIds(practiceGroupIds);
         }
-        if (studentIds.size() > 0) {
-            studentTeachers = studentDao.getStudentTeacher(studentIds);
-        }
 
         for (OrderByTypeExportDto order : orders) {
             for (VipBuyResultDto vipGroupTeacher : vipGroupTeachers) {
@@ -1037,12 +1029,6 @@ public class ExportServiceImpl implements ExportService {
                     break;
                 }
             }
-            for (Student studentTeacher : studentTeachers) {
-                if (order.getGroupType().equals(GroupType.SPORADIC) && studentTeacher.getUserId().equals(order.getStudentId())) {
-                    order.setTeacherName(studentTeacher.getTeacherName());
-                    break;
-                }
-            }
         }
         return orders;
     }
@@ -1701,8 +1687,8 @@ public class ExportServiceImpl implements ExportService {
             List<JSONObject> orderItemList = JSONObject.parseArray(JSONObject.parseObject(goodsJson).getString("orderItemList"), JSONObject.class);
             productIdList.addAll(orderItemList.stream().map(e -> e.get("productId").toString()).collect(Collectors.toSet()));
         }
-        List<String> categoryNames = sellOrderDao.getMallProductCategory("mall_dev");
-        Map<Long,String> productCategoryMap = MapUtil.convertMybatisMap(sellOrderDao.getMallProductMap(productIdList,"mall_dev"));
+        List<String> categoryNames = sellOrderDao.getMallProductCategory("mall_pro");
+        Map<Long,String> productCategoryMap = MapUtil.convertMybatisMap(sellOrderDao.getMallProductMap(productIdList,"mall_pro"));
         for (StudentPaymentOrderMallExportDto row : studentPaymentOrderExportDtos) {
             if (row.getActualAmount() == null) {
                 row.setActualAmount(BigDecimal.ZERO);
@@ -2520,11 +2506,13 @@ public class ExportServiceImpl implements ExportService {
             List<JSONObject> orderItemList = JSONObject.parseArray(JSONObject.parseObject(goodsJson).getString("orderItemList"), JSONObject.class);
             productIdList.addAll(orderItemList.stream().map(e -> e.get("productId").toString()).collect(Collectors.toSet()));
         }
-        List<String> categoryNames = sellOrderDao.getMallProductCategory("mall_dev");
-        Map<Long,String> productCategoryMap = MapUtil.convertMybatisMap(sellOrderDao.getMallProductMap(productIdList,"mall_dev"));
+        List<String> categoryNames = sellOrderDao.getMallProductCategory("mall_pro");
+        Map<Long,String> productCategoryMap = MapUtil.convertMybatisMap(sellOrderDao.getMallProductMap(productIdList,"mall_pro"));
         for (StudentPaymentOrderMallExportDto basicOrder : studentPaymentOrderExportDtos) {
             basicOrder.getUser().setUsername(studentNameMap.get(basicOrder.getUserId()));
             basicOrder.setUserOrganName(userOrganNameMap.get(basicOrder.getOrganId()));
+            //计算手续费
+            this.calcPlatformFee(basicOrder, serviceChargeMap, orderCountMap, tenantConfig, feeFlagMap);
             String paymentChannel = "";
             if (basicOrder.getPaymentChannel() == null) {
             } else if (basicOrder.getPaymentChannel().equals("YQPAY")) {
@@ -2538,8 +2526,6 @@ public class ExportServiceImpl implements ExportService {
             if (basicOrder.getRouteAmount().compareTo(BigDecimal.ZERO) == 0) {
                 continue;
             }
-            //计算手续费
-            this.calcPlatformFee(basicOrder, serviceChargeMap, orderCountMap, tenantConfig, feeFlagMap);
             //解析json
             this.parseGoodsJson(basicOrder,categoryNames,productCategoryMap);
         }

+ 8 - 94
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java

@@ -2,19 +2,24 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
+import com.ym.mec.biz.dal.dto.EduHomeworkCardDto;
+import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.*;
 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.dal.page.ExtraExercilseReplyQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseHomeWorkQueryInfo;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
+import com.ym.mec.biz.service.StudentServeService;
+import com.ym.mec.biz.service.SysConfigService;
+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.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
@@ -22,13 +27,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
-import java.math.BigDecimal;
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -40,10 +39,6 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 	@Autowired
 	private ExtracurricularExercisesDao extracurricularExercisesDao;
 	@Autowired
-	private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
-	@Autowired
-	private StudentExtracurricularExercisesSituationService studentExtracurricularExercisesSituationService;
-	@Autowired
 	private SysMessageService sysMessageService;
 	@Autowired
 	private TeacherDao teacherDao;
@@ -249,87 +244,6 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 	}
 
 	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void exercisesSituationStatistics2(String monday) {
-		Integer tenantId = TenantContextHolder.getTenantId();
-		
-		LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
-
-		if(nowDate.getDayOfWeek()==DayOfWeek.MONDAY){
-			int lastWeekTodayUpdateNum = studentExtracurricularExercisesSituationDao.findLastWeekTodayUpdateNum(nowDate.plusDays(-1).toString(),tenantId);
-			if(lastWeekTodayUpdateNum<=0){
-				nowDate = nowDate.plusDays(-1);
-			}
-		}
-
-		if(StringUtils.isNotBlank(monday)){
-			nowDate=LocalDate.parse(monday, DateUtil.dateFormatter);
-		}
-		LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
-		LocalDate sunDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.SUNDAY.getValue());
-
-		List<Student> serviceStudents = studentDao.getServiceStudents(tenantId);
-		if(CollectionUtils.isEmpty(serviceStudents)){
-			return;
-		}
-
-		List<StudentServiceHomeworkDto> studentHomeworksInWeek = extracurricularExercisesReplyDao.findStudentHomewarksInWeek(monDayDate.toString(), sunDayDate.toString(), TenantContextHolder.getTenantId());
-		Map<Integer, List<StudentServiceHomeworkDto>> studentExercisesMap = studentHomeworksInWeek.stream().collect(Collectors.groupingBy(StudentServiceHomeworkDto::getUserId));
-
-		List<StudentExtracurricularExercisesSituation> results=new ArrayList<>();
-		for (Student serviceStudent : serviceStudents) {
-			StudentExtracurricularExercisesSituation studentExtracurricularExercisesSituation=new StudentExtracurricularExercisesSituation();
-			studentExtracurricularExercisesSituation.setStudentId(serviceStudent.getUserId());
-			studentExtracurricularExercisesSituation.setTeacherId(serviceStudent.getTeacherId());
-			studentExtracurricularExercisesSituation.setExpectExercisesNum(1);
-			studentExtracurricularExercisesSituation.setWeekOfYear(nowDate.get(DateUtil.weekFields.weekOfYear()));
-			studentExtracurricularExercisesSituation.setMonday(DateUtil.stringToDate(monDayDate.toString(), "yyyy-MM-dd"));
-			studentExtracurricularExercisesSituation.setSunday(DateUtil.stringToDate(sunDayDate.toString(), "yyyy-MM-dd"));
-			List<StudentServiceHomeworkDto> studentHomeworks = studentExercisesMap.get(serviceStudent.getUserId());
-			if(CollectionUtils.isEmpty(studentHomeworks)){
-				studentExtracurricularExercisesSituation.setActualExercisesNum(0);
-				studentExtracurricularExercisesSituation.setExercisesReplyNum(0);
-				studentExtracurricularExercisesSituation.setExercisesMessageNum(0);
-				studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(0);
-				results.add(studentExtracurricularExercisesSituation);
-				continue;
-			}
-			studentExtracurricularExercisesSituation.setActualExercisesNum(1);
-			long replyNum = studentHomeworks.stream().filter(e -> e.getStatus()==1).count();
-			studentExtracurricularExercisesSituation.setExercisesReplyNum(replyNum>0?1:0);
-			int exercisesMessageNum=0;
-			int exercisesMessageTimelyNum=0;
-			for (StudentServiceHomeworkDto studentHomework : studentHomeworks) {
-				if(!new Integer(1).equals(studentHomework.getStatus())){
-					continue;
-				}
-				if(!new Integer(1).equals(studentHomework.getIsReplied())){
-					continue;
-				}
-				exercisesMessageNum+=1;
-				if(new Integer(1).equals(studentHomework.getIsRepliedTimely())){
-					exercisesMessageTimelyNum+=1;
-				}
-			}
-			studentExtracurricularExercisesSituation.setExercisesMessageNum(exercisesMessageNum>0?1:0);
-			studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
-			results.add(studentExtracurricularExercisesSituation);
-		}
-
-		studentExtracurricularExercisesSituationService.deleteByMonday(monDayDate.toString(),null);
-
-		BigDecimal currentPage=BigDecimal.ONE,
-                pageSize=new BigDecimal(10000),
-                total=new BigDecimal(results.size()),
-                totalPage=total.divide(pageSize, BigDecimal.ROUND_UP);
-        while (currentPage.compareTo(totalPage)<=0){
-            List<StudentExtracurricularExercisesSituation> rows=results.stream().skip(pageSize.multiply(currentPage.subtract(BigDecimal.ONE)).longValue()).limit(pageSize.longValue()).collect(Collectors.toList());
-			studentExtracurricularExercisesSituationService.batchInsert(rows);
-            currentPage=currentPage.add(BigDecimal.ONE);
-        }
-	}
-
-	@Override
 	public PageInfo<EduHomeworkCardDto> getEduHomeworkList(StudentCourseHomeWorkQueryInfo queryInfo) {
 		PageInfo<EduHomeworkCardDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<String, Object>();

+ 127 - 62
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.extension.api.R;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
@@ -19,6 +20,7 @@ import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -29,6 +31,10 @@ import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.enums.IndexDataType.*;
@@ -58,13 +64,12 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 	@Autowired
 	private StudentRegistrationDao studentRegistrationDao;
 	@Autowired
-	private MusicGroupPerformanceDao musicGroupPerformanceDao;
-	@Autowired
 	private StudentDao studentDao;
 	@Autowired
 	private SysEmployeePositionService employeePositionService;
 	@Autowired
 	private MusicGroupCalenderRefundPeriodDao musicGroupCalenderRefundPeriodDao;
+	private static final ExecutorService exportExecutorService = Executors.newFixedThreadPool(10);
 
 	private static ThreadLocal<Set<Integer>> organIds = new ThreadLocal<Set<Integer>>(){
 		@Override
@@ -116,7 +121,14 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			dataTypes = Arrays.stream(queryInfo.getDataTypes().split(",")).collect(Collectors.toSet());
 		}
 
-		List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getIndexBaseData(organIds, dataTypes, startDate.toString(), endDate.toString(),queryInfo.getTenantId());
+		String startDate1 = startDate.toString();
+		String endDate1 = endDate.toString();
+		List<Integer> arrayList = null;
+		if(!CollectionUtils.isEmpty(organIds)){
+			arrayList = new ArrayList<>(organIds);
+		}
+		Integer tenantId = queryInfo.getTenantId();
+		List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getIndexBaseData(organIds, dataTypes, startDate1, endDate1,tenantId);
 		if(Objects.isNull(indexBaseDatas)){
 			indexBaseDatas = new ArrayList<>();
 		}
@@ -127,7 +139,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			vipDataTypes.add("VIP_GROUP_COURSE");
 			vipDataTypes.add("VIP_GROUP_ONLINE_COURSE");
 			vipDataTypes.add("VIP_GROUP_OFFLINE_COURSE");
-			List<IndexBaseMonthData> indexBaseDataList = indexBaseMonthDataDao.getVipCourseDataList(organIds, vipDataTypes, startDate.toString(), endDate.toString(),queryInfo.getTenantId());
+			List<IndexBaseMonthData> indexBaseDataList = indexBaseMonthDataDao.getVipCourseDataList(organIds, vipDataTypes, startDate1, endDate1,tenantId);
 			if(!CollectionUtils.isEmpty(indexBaseDataList)){
 				for (IndexBaseMonthData indexBaseMonthData : indexBaseDataList) {
 					if(StringUtils.isBlank(indexBaseMonthData.getExtendInfo())){
@@ -152,61 +164,24 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 
 		Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap = indexBaseDatas.stream().filter(d->Objects.nonNull(d.getDataType())).collect(Collectors.groupingBy(IndexBaseMonthData::getDataType));
 
-		//按天汇总
-		if((CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(FINANCE_PAY.getCode())||dataTypes.contains(FINANCE_BALANCE_AMOUNT.getCode())||dataTypes.contains(FINANCE_AMOUNT.getCode())) && organIds != null){
-			List<IndexBaseMonthData> financePayDataWithTimely = indexBaseMonthDataDao.getFinancePayDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
-			typeDateMap.put(IndexDataType.FINANCE_PAY,financePayDataWithTimely);
-			typeDateMap.put(IndexDataType.FINANCE_BALANCE_AMOUNT,indexBaseMonthDataDao.getFinanceBalanceDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId()));
-			typeDateMap.put(FINANCE_AMOUNT,indexBaseMonthDataDao.getFinanceActualDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId()));
-			List<IndexBaseMonthData> totalAmountDataWithTimely = indexBaseMonthDataDao.getTotalAmountDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
-			typeDateMap.put(IndexDataType.TOTAL_AMOUNT,totalAmountDataWithTimely);
-			//经营报表细化
-			List<IndexBaseMonthData> applyAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"APPLY,ADD_STUDENT",null,queryInfo.getTenantId());
-			typeDateMap.put(APPLY_AMOUNT,applyAmount);
-			List<IndexBaseMonthData> renewAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"RENEW",null,queryInfo.getTenantId());
-			typeDateMap.put(RENEW_AMOUNT,renewAmount);
-			List<IndexBaseMonthData> vipAmount = indexBaseMonthDataDao.getVipAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
-			typeDateMap.put(VIP_AMOUNT,vipAmount);
-			List<IndexBaseMonthData> practiceAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"PRACTICE_GROUP_BUY,PRACTICE_GROUP_RENEW",null,queryInfo.getTenantId());
-			typeDateMap.put(PRACTICE_AMOUNT,practiceAmount);
-			List<IndexBaseMonthData> otherAmount = indexBaseMonthDataDao.getOtherAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
-			typeDateMap.put(OTHER_AMOUNT,otherAmount);
-		}
 		//按分部汇总
-		List<IndexBaseDto> indexBaseDtoList = new ArrayList<>();
-		if((CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(ORGAN_FINANCE_PAY.getCode())||dataTypes.contains(ORGAN_FINANCE_BALANCE_AMOUNT.getCode())||
+		if((CollectionUtils.isEmpty(dataTypes) || dataTypes.contains(ORGAN_FINANCE_BALANCE_AMOUNT.getCode()) ||
 				dataTypes.contains(ORGAN_FINANCE_AMOUNT.getCode())) && organIds != null){
-			List<IndexBaseMonthData> financePayDataWithTimely = indexBaseMonthDataDao.getOrganFinancePayDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
-			indexBaseDtoList.add(this.getIndexBaseDto(IndexDataType.ORGAN_FINANCE_PAY,financePayDataWithTimely));
-
-			indexBaseDtoList.add(this.getIndexBaseDto(IndexDataType.ORGAN_FINANCE_BALANCE_AMOUNT,indexBaseMonthDataDao.getOrganFinanceBalanceDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId())));
-			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_FINANCE_AMOUNT,indexBaseMonthDataDao.getOrganFinanceActualDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId())));
-			List<IndexBaseMonthData> totalAmountDataWithTimely = indexBaseMonthDataDao.getOrganTotalAmountDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
-			indexBaseDtoList.add(this.getIndexBaseDto(IndexDataType.ORGAN_TOTAL_AMOUNT,totalAmountDataWithTimely));
-			//经营报表细化
-			List<IndexBaseMonthData> applyAmount = indexBaseMonthDataDao.getOrganTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"APPLY,ADD_STUDENT",null,queryInfo.getTenantId());
-			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_APPLY_AMOUNT,applyAmount));
-			List<IndexBaseMonthData> renewAmount = indexBaseMonthDataDao.getOrganTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"RENEW",null,queryInfo.getTenantId());
-			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_RENEW_AMOUNT,renewAmount));
-			List<IndexBaseMonthData> vipAmount = indexBaseMonthDataDao.getOrganVipAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
-			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_VIP_AMOUNT,vipAmount));
-			List<IndexBaseMonthData> practiceAmount = indexBaseMonthDataDao.getOrganTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"PRACTICE_GROUP_BUY,PRACTICE_GROUP_RENEW",null,queryInfo.getTenantId());
-			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_PRACTICE_AMOUNT,practiceAmount));
-			List<IndexBaseMonthData> otherAmount = indexBaseMonthDataDao.getOrganOtherAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),queryInfo.getTenantId());
-			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_OTHER_AMOUNT,otherAmount));
+			//经营数据查询
+			this.syncOperation(startDate1,endDate1,arrayList,tenantId,result,typeDateMap);
 		}
 
 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(MUSIC_GROUP_COURSE.getCode())||dataTypes.contains(VIP_GROUP_COURSE.getCode())
 				||dataTypes.contains(VIP_GROUP_ONLINE_COURSE.getCode())||dataTypes.contains(VIP_GROUP_OFFLINE_COURSE.getCode())
 				||dataTypes.contains(PRACTICE_GROUP_COURSE.getCode())){
 			if((CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MUSIC_GROUP_COURSE.getCode())) && organIds != null) {
-				List<IndexBaseMonthData> musicCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.MUSIC, null, null, new ArrayList<>(organIds),queryInfo.getTenantId());
+				List<IndexBaseMonthData> musicCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate1, endDate1, GroupType.MUSIC, null, null, arrayList,tenantId);
 				typeDateMap.put(MUSIC_GROUP_COURSE,musicCourseData);
 			}
 
 			if((CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_COURSE.getCode())) && organIds != null) {
-				List<IndexBaseMonthData> vipCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, null, new ArrayList<>(organIds),queryInfo.getTenantId());
-				List<OrganVipGroupCategoryCourseNumDto> vipGroupCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, null, new ArrayList<>(organIds),queryInfo.getTenantId());
+				List<IndexBaseMonthData> vipCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate1, endDate1, GroupType.VIP, null, null, arrayList,tenantId);
+				List<OrganVipGroupCategoryCourseNumDto> vipGroupCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate1, endDate1, GroupType.VIP, null, null, arrayList,tenantId);
 				Map<Integer, Map<String, Integer>> organCategoryCourseMap = new HashMap<>();
 				if (!CollectionUtils.isEmpty(vipGroupCategoryCourseData)) {
 					organCategoryCourseMap = vipGroupCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
@@ -220,8 +195,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 
 			if((CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_ONLINE_COURSE.getCode())) && organIds != null) {
-				List<IndexBaseMonthData> vipOnlineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.ONLINE, new ArrayList<>(organIds),queryInfo.getTenantId());
-				List<OrganVipGroupCategoryCourseNumDto> vipGroupOnlineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.ONLINE, new ArrayList<>(organIds),queryInfo.getTenantId());
+				List<IndexBaseMonthData> vipOnlineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate1, endDate1, GroupType.VIP, null, TeachModeEnum.ONLINE, arrayList,tenantId);
+				List<OrganVipGroupCategoryCourseNumDto> vipGroupOnlineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate1, endDate1, GroupType.VIP, null, TeachModeEnum.ONLINE, arrayList,tenantId);
 				Map<Integer, Map<String, Integer>> organOnlineCategoryCourseMap = new HashMap<>();
 				if (!CollectionUtils.isEmpty(vipGroupOnlineCategoryCourseData)) {
 					organOnlineCategoryCourseMap = vipGroupOnlineCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
@@ -235,8 +210,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 
 			if((CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_OFFLINE_COURSE.getCode())) && organIds != null) {
-				List<IndexBaseMonthData> vipOfflineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.OFFLINE, new ArrayList<>(organIds),queryInfo.getTenantId());
-				List<OrganVipGroupCategoryCourseNumDto> vipGroupOfflineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate.toString(), endDate.toString(), GroupType.VIP, null, TeachModeEnum.OFFLINE, new ArrayList<>(organIds),queryInfo.getTenantId());
+				List<IndexBaseMonthData> vipOfflineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate1, endDate1, GroupType.VIP, null, TeachModeEnum.OFFLINE, arrayList,tenantId);
+				List<OrganVipGroupCategoryCourseNumDto> vipGroupOfflineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(null, startDate1, endDate1, GroupType.VIP, null, TeachModeEnum.OFFLINE, arrayList,tenantId);
 				Map<Integer, Map<String, Integer>> organOfflineCategoryCourseMap = new HashMap<>();
 				if (!CollectionUtils.isEmpty(vipGroupOfflineCategoryCourseData)) {
 					organOfflineCategoryCourseMap = vipGroupOfflineCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
@@ -250,7 +225,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 
 			if((CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PRACTICE_GROUP_COURSE.getCode())) && organIds != null) {
-				List<IndexBaseMonthData> practiceCourses = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate.toString(), endDate.toString(), GroupType.PRACTICE, null, null, new ArrayList<>(organIds),queryInfo.getTenantId());
+				List<IndexBaseMonthData> practiceCourses = indexBaseMonthDataDao.getGroupCourseDataWithGroup(null, startDate1, endDate1, GroupType.PRACTICE, null, null, arrayList,tenantId);
 				typeDateMap.put(PRACTICE_GROUP_COURSE,practiceCourses);
 			}
 		}
@@ -277,7 +252,10 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			typeDateMap.put(dataType, new ArrayList<>(Arrays.asList(indexBaseMonthData)));
 		}
 
-
+		Boolean addFlag = false;
+		if(CollectionUtils.isEmpty(result)){
+			addFlag = true;
+		}
 		for (Map.Entry<IndexDataType, List<IndexBaseMonthData>> typeDateMapEntry : typeDateMap.entrySet()) {
 			List<IndexBaseMonthData> value = typeDateMapEntry.getValue();
 			Set<String> hasMonths = value.stream().filter(e->e.getMonth() != null).map(d -> DateUtil.dateToString(d.getMonth(), "yyyy-MM-dd")).collect(Collectors.toSet());
@@ -313,9 +291,10 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 					indexBaseMonthData.setPercent(indexBaseMonthData.getActivateNum().divide(indexBaseMonthData.getTotalNum(), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN));
 				}
 			}
-			IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
-			indexBaseData.setIndexMonthData(value, currentMonth);
+
 			if(OTHER_AMOUNT.equals(typeDateMapEntry.getKey())){
+				IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
+				indexBaseData.setIndexMonthData(value, currentMonth);
 				List<IndexBaseMonthData> otherAmountDetails = new ArrayList<>();
 				if(value != null && value.size() > 0){
 					Map<String, List<IndexBaseMonthData>> collect = value.stream().filter(c->StringUtils.isNotEmpty(c.getOrderType())).collect(Collectors.groupingBy(e -> e.getOrderType()));
@@ -328,46 +307,132 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 					});
 				}
 				indexBaseData.setIndexMonthDataDetail(otherAmountDetails);
+				indexBaseData.setIndexMonthData(value, currentMonth);
+				indexBaseData.setPercent(value.stream().map(IndexBaseMonthData::getPercent).reduce(BigDecimal.ZERO, BigDecimal::add));
+				result.add(indexBaseData);
+				continue;
 			}
-			if(FINANCE_PAY.equals(typeDateMapEntry.getKey()) || FINANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
+			if(FINANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 				FINANCE_BALANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 					TOTAL_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 					APPLY_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 					RENEW_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 					VIP_AMOUNT.equals(typeDateMapEntry.getKey()) ||
-					PRACTICE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
-					OTHER_AMOUNT.equals(typeDateMapEntry.getKey())){
+					PRACTICE_AMOUNT.equals(typeDateMapEntry.getKey())){
+				IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
+				indexBaseData.setIndexMonthData(value, currentMonth);
 				indexBaseData.setPercent(value.stream().map(IndexBaseMonthData::getPercent).reduce(BigDecimal.ZERO, BigDecimal::add));
+				result.add(indexBaseData);
+				continue;
 			}
 			if(IndexDataType.VIP_GROUP_COURSE.equals(typeDateMapEntry.getKey()) || VIP_GROUP_ONLINE_COURSE.equals(typeDateMapEntry.getKey()) ||
 					IndexDataType.VIP_GROUP_OFFLINE_COURSE.equals(typeDateMapEntry.getKey())){
+				IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
+				indexBaseData.setIndexMonthData(value, currentMonth);
 				for (IndexBaseMonthData indexBaseMonthData : indexBaseData.getIndexMonthData()) {
 					if(vipCategoryCourseListMap.containsKey(indexBaseMonthData.getMonth())&&vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).containsKey(indexBaseData.getDataType())){
 						TreeMap<String, Integer> extendSortMap = new TreeMap<>(vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).get(indexBaseData.getDataType()));
 						indexBaseMonthData.setExtendInfo(JSON.toJSONString(extendSortMap));
 					}
 				}
+				result.add(indexBaseData);
+				continue;
 			}
 			if(QUIT_MUSIC_GROUP_STUDENT_NUM.equals(typeDateMapEntry.getKey())){
 				//查询时间段内学员成功退团申请的数量
+				IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
+				indexBaseData.setIndexMonthData(value, currentMonth);
 				Integer quitNum = musicGroupDao.countQuitNum(queryInfo);
 				indexBaseData.setIndexMonthData(new ArrayList<>(),null);
 				indexBaseData.setIndexMonthDataDetail(new ArrayList<>());
 				indexBaseData.setDataType(QUIT_MUSIC_GROUP_STUDENT_NUM);
 				indexBaseData.setPercent(new BigDecimal(quitNum));
 				indexBaseData.setTitle(QUIT_MUSIC_GROUP_STUDENT_NUM.getMsg());
+				result.add(indexBaseData);
+				continue;
+			}
+			if(addFlag){
+				IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
+				indexBaseData.setIndexMonthData(value, currentMonth);
+				result.add(indexBaseData);
 			}
-			result.add(indexBaseData);
 		}
-		result.addAll(indexBaseDtoList);
 		return result;
 	}
 
+	//异步处理经营数据查询
+	public void syncOperation(String startDate1,String endDate1,List<Integer> arrayList,Integer tenantId,List<IndexBaseDto> indexBaseDtoList,Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap){
+		CompletableFuture future1 = CompletableFuture.supplyAsync(() -> {
+//			List<IndexBaseDto> indexBaseDtoList = new ArrayList<>();
+			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_RENEW_AMOUNT,indexBaseMonthDataDao.getOrganTotalAmountDataWithTimelyDetails(startDate1, endDate1, arrayList,"RENEW",null,tenantId)));
+			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_VIP_AMOUNT,indexBaseMonthDataDao.getOrganVipAmountDataWithTimelyDetails(startDate1, endDate1, arrayList,tenantId)));
+//			return indexBaseDtoList;
+			return true;
+		},exportExecutorService);
+		CompletableFuture future2 = CompletableFuture.supplyAsync(() -> {
+//			List<IndexBaseDto> indexBaseDtoList = new ArrayList<>();
+			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_PRACTICE_AMOUNT,indexBaseMonthDataDao.getOrganTotalAmountDataWithTimelyDetails(startDate1, endDate1, arrayList,"PRACTICE_GROUP_BUY,PRACTICE_GROUP_RENEW",null,tenantId)));
+			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_OTHER_AMOUNT,indexBaseMonthDataDao.getOrganOtherAmountDataWithTimelyDetails(startDate1, endDate1, arrayList,tenantId)));
+//			return indexBaseDtoList;
+			return true;
+		},exportExecutorService);
+		CompletableFuture future3 = CompletableFuture.supplyAsync(() -> {
+//			List<IndexBaseDto> indexBaseDtoList = new ArrayList<>();
+			indexBaseDtoList.add(this.getIndexBaseDto(IndexDataType.ORGAN_TOTAL_AMOUNT,indexBaseMonthDataDao.getOrganTotalAmountDataWithTimely(startDate1, endDate1, arrayList,tenantId)));
+			//经营报表细化
+			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_APPLY_AMOUNT,indexBaseMonthDataDao.getOrganTotalAmountDataWithTimelyDetails(startDate1, endDate1, arrayList,"APPLY,ADD_STUDENT",null,tenantId)));
+//			return indexBaseDtoList;
+			return true;
+		},exportExecutorService);
+		CompletableFuture future4 = CompletableFuture.supplyAsync(() -> {
+//			List<IndexBaseDto> indexBaseDtoList = new ArrayList<>();
+			indexBaseDtoList.add(this.getIndexBaseDto(IndexDataType.ORGAN_FINANCE_BALANCE_AMOUNT,indexBaseMonthDataDao.getOrganFinanceBalanceDataWithTimely(startDate1, endDate1, arrayList,tenantId)));
+			indexBaseDtoList.add(this.getIndexBaseDto(ORGAN_FINANCE_AMOUNT,indexBaseMonthDataDao.getOrganFinanceActualDataWithTimely(startDate1, endDate1, arrayList,tenantId)));
+//			return indexBaseDtoList;
+			return true;
+		},exportExecutorService);
+
+		CompletableFuture future5 = CompletableFuture.supplyAsync(()->{
+//			Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap = new HashMap<>(2);
+			typeDateMap.put(IndexDataType.FINANCE_BALANCE_AMOUNT,indexBaseMonthDataDao.getFinanceBalanceDataWithTimely(startDate1, endDate1, arrayList,tenantId));
+			typeDateMap.put(FINANCE_AMOUNT,indexBaseMonthDataDao.getFinanceActualDataWithTimely(startDate1, endDate1, arrayList,tenantId));
+			return true;
+		},exportExecutorService);
+		CompletableFuture future6 = CompletableFuture.supplyAsync(()->{
+//			Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap = new HashMap<>(2);
+			List<IndexBaseMonthData> renewAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate1, endDate1, arrayList,"RENEW",null,tenantId);
+			typeDateMap.put(RENEW_AMOUNT,renewAmount);
+			List<IndexBaseMonthData> vipAmount = indexBaseMonthDataDao.getVipAmountDataWithTimelyDetails(startDate1, endDate1, arrayList,tenantId);
+			typeDateMap.put(VIP_AMOUNT,vipAmount);
+			return true;
+		},exportExecutorService);
+		CompletableFuture future7 = CompletableFuture.supplyAsync(()->{
+//			Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap = new HashMap<>(2);
+			List<IndexBaseMonthData> totalAmountDataWithTimely = indexBaseMonthDataDao.getTotalAmountDataWithTimely(startDate1, endDate1, arrayList,tenantId);
+			typeDateMap.put(IndexDataType.TOTAL_AMOUNT,totalAmountDataWithTimely);
+			//经营报表细化
+			List<IndexBaseMonthData> applyAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate1, endDate1, arrayList,"APPLY,ADD_STUDENT",null,tenantId);
+			typeDateMap.put(APPLY_AMOUNT,applyAmount);
+			return true;
+		},exportExecutorService);
+		CompletableFuture future8 = CompletableFuture.supplyAsync(()->{
+//			Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap = new HashMap<>(2);
+			List<IndexBaseMonthData> practiceAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate1, endDate1, arrayList,"PRACTICE_GROUP_BUY,PRACTICE_GROUP_RENEW",null,tenantId);
+			typeDateMap.put(PRACTICE_AMOUNT,practiceAmount);
+			List<IndexBaseMonthData> otherAmount = indexBaseMonthDataDao.getOtherAmountDataWithTimelyDetails(startDate1, endDate1, arrayList,tenantId);
+			typeDateMap.put(OTHER_AMOUNT,otherAmount);
+			return true;
+		},exportExecutorService);
+		future1.join();future2.join();future3.join();future4.join();
+		future5.join();future6.join();future7.join();future8.join();
+	}
+
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void indexBaseDataTask(Integer tenantId, String dayStr, Set<IndexDataType> dataTypes) {
 		LocalDate nowDate = LocalDate.now();
-		
+
 		List<Organization> allOrgans = organizationService.findAllOrgans(tenantId);
 		this.organIds.get().clear();
 		this.organIds.get().addAll(allOrgans.stream().map(Organization::getId).collect(Collectors.toSet()));
@@ -887,7 +952,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		Map<Integer, Integer> studentErrorLeaveMap = new HashMap<>();
 		//会员过期学员数
 		Map<Integer, Integer> noMemberStudentMap = new HashMap<>();
-		
+
 		Integer tenantId = TenantContextHolder.getTenantId();
 
 		if(IndexErrorType.MUSIC_PATROL.equals(errorType)||Objects.isNull(errorType)){

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

@@ -684,7 +684,6 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 
         // 支付成功
         if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
-            Student student = studentService.get(userId);
             VipGroupActivity activity = vipGroupActivityDao.get(Integer.parseInt(studentPaymentOrder.getActivityId()));
             //保存团练宝数据
             CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
@@ -700,7 +699,6 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             cloudTeacherOrderService.save(cloudTeacherOrder,tenantConfigService.autoActivationFlag(cloudTeacherOrder.getTenantId()));
             //赠送陪练课
             ActivityUserMapper activityUserMapper = new ActivityUserMapper();
-            activityUserMapper.setTeacherId(student.getTeacherId());
             activityUserMapper.setPaymentOrderId(studentPaymentOrder.getId());
             activityUserMapper.setUserId(studentPaymentOrder.getUserId());
             activityUserMapper.setActivityId(activity.getId());

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

@@ -276,9 +276,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
                         activityUserMapper.setActualPrice(BigDecimal.ZERO);
                         activityUserMapper.setSubNoCoursePrice(BigDecimal.ZERO);
                         activityUserMapper.setActivityId(calenderActivity.getActivityId());
-                        Student student = studentDao.get(studentId);
                         activityUserMapper.setUserId(studentId);
-                        activityUserMapper.setTeacherId(student.getTeacherId());
                         activityUserMapper.setOrganId(musicGroup.getOrganId());
                         if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
                             activityUserMapper.setAddMemo("学校缴费新增学员");

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

@@ -761,9 +761,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                             activityUserMapper.setActualPrice(BigDecimal.ZERO);
                             activityUserMapper.setSubNoCoursePrice(BigDecimal.ZERO);
                             activityUserMapper.setActivityId(calenderActivity.getActivityId());
-                            Student student = studentDao.get(Integer.parseInt(studentId));
                             activityUserMapper.setUserId(Integer.parseInt(studentId));
-                            activityUserMapper.setTeacherId(student.getTeacherId());
                             activityUserMapper.setOrganId(musicGroup.getOrganId());
                             if ("网管课".equals(calenderActivity.getCategoryName())) {
                                 activityUserMapper.setPracticeFlag(1);

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

@@ -3145,7 +3145,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         if (order.getStatus().equals(DealStatusEnum.SUCCESS)) {
             Integer activityUserMapperId = studentPaymentOrderService.activityGive(practiceGroup.getVipGroupActivityId(), order,
                     null,
-                    practiceGroup.getId().toString(), practiceGroup.getUserId());
+                    practiceGroup.getId().toString());
             practiceGroup.setActivityUserMapperId(activityUserMapperId);
             if (classGroup.getDelFlag() == 1) {
                 this.updatePracticeGroupStudentNumAndStatus(practiceGroup, classGroup, order);
@@ -4327,14 +4327,12 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             throw new BizException("订单更新失败");
         }
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
-            Student student = studentDao.get(order.getUserId());
             Integer activityId = Integer.parseInt(order.getActivityId());
             VipGroupActivity activity = vipGroupActivityDao.get(activityId);
             ActivityUserMapper activityUserMapper = new ActivityUserMapper();
             activityUserMapper.setActivityId(activityId);
             activityUserMapper.setUserId(order.getUserId());
             activityUserMapper.setPaymentOrderId(order.getId());
-            activityUserMapper.setTeacherId(student.getTeacherId());
             activityUserMapper.setVipFlag(1);
             activityUserMapper.setActualPrice(order.getExpectAmount());
             activityUserMapper.setSubNoCoursePrice(order.getExpectAmount());

+ 17 - 99
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java

@@ -1,69 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
-import com.ym.mec.biz.dal.dao.CourseHomeworkDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStatisticsDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
-import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
-import com.ym.mec.biz.dal.dao.StudentDao;
-import com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.SubjectDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.dao.TeacherRemindDao;
-import com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto;
-import com.ym.mec.biz.dal.dto.SimpleUserDto;
-import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
-import com.ym.mec.biz.dal.dto.StudentServiceDetailDto;
-import com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto;
-import com.ym.mec.biz.dal.dto.TeacherServeDto;
-import com.ym.mec.biz.dal.dto.TeacherServeExtraDto;
-import com.ym.mec.biz.dal.dto.TeacherServeHomeworkDto;
-import com.ym.mec.biz.dal.dto.TeacherServeHomeworkPojo;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.CourseHomework;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
-import com.ym.mec.biz.dal.entity.Subject;
-import com.ym.mec.biz.dal.entity.TeacherRemind;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.TeacherRemindTypeEnum;
-import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
-import com.ym.mec.biz.dal.page.StudentExerciseMusicGroupQueryInfo;
-import com.ym.mec.biz.dal.page.StudentExercisesSituationQueryInfo;
-import com.ym.mec.biz.dal.page.StudentServiceDetailQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherServeHomeworkQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.constant.CommonConstants;
@@ -74,6 +19,19 @@ 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;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class StudentExtracurricularExercisesSituationServiceImpl extends BaseServiceImpl<Long, StudentExtracurricularExercisesSituation> implements StudentExtracurricularExercisesSituationService {
@@ -87,10 +45,6 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 	@Autowired
 	private TeacherDao teacherDao;
 	@Autowired
-	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
-	@Autowired
-	private StudentRegistrationDao studentRegistrationDao;
-	@Autowired
 	private TeacherRemindDao teacherRemindDao;
 	@Autowired
 	private SysMessageService sysMessageService;
@@ -210,42 +164,6 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 	}
 
 	@Override
-	public PageInfo<StudentExercisesSituationDto> findServiceStudentSituations(StudentExercisesSituationQueryInfo queryInfo) {
-		PageInfo<StudentExercisesSituationDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-		Map<String, Object> params = new HashMap<>();
-		MapUtil.populateMap(params, queryInfo);
-
-		List<StudentExercisesSituationDto> dataList = null;
-		int count = studentExtracurricularExercisesSituationDao.countExercisesSituations(params);
-		if (count > 0) {
-			pageInfo.setTotal(count);
-			params.put("offset", pageInfo.getOffset());
-			dataList = studentExtracurricularExercisesSituationDao.findExercisesSituations(params);
-			Map<Integer, Long> studentVipCourseMap=new HashMap<>();
-			if(Objects.isNull(queryInfo.getExistVipCourse())){
-				List<Integer> studentIds = dataList.stream().map(StudentExtracurricularExercisesSituation::getStudentId).collect(Collectors.toList());
-				List<Map<Integer, Long>> studentVipCoursesMaps = courseScheduleDao.countStudentVipCoursesWithDate(studentIds, queryInfo.getMonday(), queryInfo.getSunday(),GroupType.VIP);
-				studentVipCourseMap = MapUtil.convertIntegerMap(studentVipCoursesMaps);
-			}
-			for (StudentExercisesSituationDto exercisesSituationDto : dataList) {
-				if(Objects.isNull(queryInfo.getExistVipCourse())){
-					Long vipCourses=studentVipCourseMap.get(exercisesSituationDto.getStudentId());
-					if(Objects.isNull(vipCourses)||vipCourses<=0){
-						exercisesSituationDto.setExistVipCourse(0);
-					}else{
-						exercisesSituationDto.setExistVipCourse(1);
-					}
-				}
-			}
-		}
-		if (count == 0) {
-			dataList = new ArrayList<>();
-		}
-		pageInfo.setRows(dataList);
-		return pageInfo;
-	}
-
-	@Override
 	public PageInfo<TeacherServeDto> queryTeacherServeInfo(TeacherServeQueryInfo queryInfo) {
 		PageInfo<TeacherServeDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<>();

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

@@ -99,8 +99,6 @@ public class StudentManageServiceImpl implements StudentManageService {
     @Autowired
     private OrganizationDegreeCourseFeeDao organizationDegreeCourseFeeDao;
     @Autowired
-    private ActivityUserMapperDao activityUserMapperDao;
-    @Autowired
     private SysTenantConfigService sysTenantConfigService;
     @Autowired
     private SysEmployeePositionService employeePositionService;
@@ -740,7 +738,6 @@ public class StudentManageServiceImpl implements StudentManageService {
         // 同步更新机构手机号 如果它存在
         SysUser user = teacherDao.getUser(student.getId());
         tenantInfoService.updatePhone(student.getPhone(), user.getPhone());
-        activityUserMapperDao.updateTeacherId(student.getUserId(), student.getTeacherId());
         if (Objects.nonNull(student.getCarePackage()) || Objects.nonNull(student.getComeOnPackage())) {
             Student oldStudent = studentDao.get(userId);
             if (Objects.nonNull(oldStudent.getCarePackage()) && oldStudent.getCarePackage().equals(2)) {

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

@@ -821,7 +821,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Integer activityGive(Integer vipGroupActivityId, StudentPaymentOrder studentPaymentOrder, String vipGroupId, String practiceGroupId, Integer teacherId) {
+    public Integer activityGive(Integer vipGroupActivityId, StudentPaymentOrder studentPaymentOrder, String vipGroupId, String practiceGroupId) {
         Integer activityUserMapperId = null;
         if (vipGroupActivityId != null) {
             VipGroupActivity activity = vipGroupActivityService.get(vipGroupActivityId);
@@ -831,7 +831,6 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             activityUserMapper.setPaymentOrderId(studentPaymentOrder.getId());
             activityUserMapper.setUserId(studentPaymentOrder.getUserId());
             activityUserMapper.setActivityId(vipGroupActivityId);
-            activityUserMapper.setTeacherId(teacherId);
             activityUserMapper.setActualPrice(studentPaymentOrder.getExpectAmount());
             activityUserMapper.setAddMemo(activity.getName());
             activityUserMapper.setOrganId(studentPaymentOrder.getOrganId());

+ 17 - 313
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -1,61 +1,11 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
 import com.alibaba.fastjson.JSON;
-import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.StudentCourseHomeworkDao;
-import com.ym.mec.biz.dal.dao.StudentDao;
-import com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dto.BasicUserDto;
-import com.ym.mec.biz.dal.dto.ClassGroupStudentMapperDto;
-import com.ym.mec.biz.dal.dto.IndexBaseDto;
-import com.ym.mec.biz.dal.dto.StudentServeCourseDto;
-import com.ym.mec.biz.dal.dto.StudentServeCourseHomeworkDto;
-import com.ym.mec.biz.dal.dto.StudentServeDto;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
-import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
-import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.StudentCourseHomework;
-import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.IndexDataType;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
 import com.ym.mec.biz.service.StudentServeService;
 import com.ym.mec.biz.service.SysConfigService;
@@ -63,6 +13,19 @@ import com.ym.mec.biz.service.SysTenantConfigService;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.date.DateUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.Map.Entry;
+import java.util.stream.Collectors;
 
 /**
  * @Author Joburgess
@@ -98,247 +61,6 @@ public class StudentServeServiceImpl implements StudentServeService {
     
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void exercisesSituationStatistics(String monday, Integer tenantId) {
-        LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
-
-        int lastWeekTodayUpdateNum = studentExtracurricularExercisesSituationDao.findLastWeekTodayUpdateNum(nowDate.plusDays(-nowDate.getDayOfWeek().getValue()).toString(), tenantId);
-        if(lastWeekTodayUpdateNum<=0){
-            nowDate = nowDate.plusDays(-nowDate.getDayOfWeek().getValue());
-        }
-
-        if(StringUtils.isNotBlank(monday)){
-            nowDate=LocalDate.parse(monday, DateUtil.dateFormatter);
-        }
-
-        LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
-        LocalDate sunDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.SUNDAY.getValue());
-        Date nextMonday = Date.from(sunDayDate.plusDays(1).atStartOfDay(DateUtil.zoneId).toInstant());
-
-        List<Integer> beServeStudentIds=studentDao.getServeStudentIds(tenantId);
-        List<Integer> serveStudentIds=new ArrayList<>();
-        List<StudentServeCourseDto> serveStudentCourseStartTimes = studentDao.getServeStudentCourseStartTimes(monDayDate.toString(),tenantId);
-        Map<Integer, List<StudentServeCourseDto>> studentTimesMap = new HashMap<>();
-        if(!CollectionUtils.isEmpty(serveStudentCourseStartTimes)){
-            studentTimesMap = serveStudentCourseStartTimes.stream().collect(Collectors.groupingBy(StudentServeCourseDto::getStudentId));
-        }
-        for (Integer beServeStudentId : beServeStudentIds) {
-            List<StudentServeCourseDto> studentServeCourseDtos = studentTimesMap.get(beServeStudentId);
-            if(CollectionUtils.isEmpty(studentServeCourseDtos)
-                    ||Objects.isNull(studentServeCourseDtos.get(0).getServiceTagUpdateTime())){
-                serveStudentIds.add(beServeStudentId);
-                continue;
-            }
-            long thisWeekCourses = studentServeCourseDtos.stream().filter(e -> !e.getCourseStartTime().before(e.getServiceTagUpdateTime()) && e.getCourseStartTime().compareTo(nextMonday) <= 0).count();
-            if(thisWeekCourses>0){
-                serveStudentIds.add(beServeStudentId);
-            }
-        }
-
-        BigDecimal currentPage=BigDecimal.ONE,
-                pageSize=new BigDecimal(1000),
-                total=new BigDecimal(serveStudentIds.size()),
-                totalPage=total.divide(pageSize, BigDecimal.ROUND_UP);
-
-        List<StudentExtracurricularExercisesSituation> results=new ArrayList<>();
-
-        while (currentPage.compareTo(totalPage)<=0){
-            List<Integer> studentIds=serveStudentIds.stream().skip(pageSize.multiply(currentPage.subtract(BigDecimal.ONE)).longValue()).limit(pageSize.longValue()).collect(Collectors.toList());
-
-            List<StudentServeDto> serviceStudents;
-            if(sunDayDate.isBefore(LocalDate.now())){
-                serviceStudents = studentDao.getBeServiceStudentsInfoWithStudentsForHistory(monDayDate.toString(), nextMonday,studentIds);
-            }else{
-                serviceStudents = studentDao.getBeServiceStudentsInfoWithStudents(monDayDate.toString(), new Date(),studentIds);
-            }
-            if(CollectionUtils.isEmpty(serviceStudents)){
-                return;
-            }
-
-            Map<Integer, List<StudentServeDto>> studentCoursesMap = serviceStudents.stream().collect(Collectors.groupingBy(StudentServeDto::getUserId));
-
-            //本周不服务学员列表
-            Set<Integer> dontServeInCurrentWeekStudentIds=new HashSet<>();
-            //本周有课学员编号集合
-            Set<Integer> haveClassStudentIds=new HashSet<>();
-            //本周无课学员编号集合
-            Set<Integer> noClassStudentIds=new HashSet<>();
-            for (Map.Entry<Integer, List<StudentServeDto>> studentCoursesEntry : studentCoursesMap.entrySet()) {
-
-                List<StudentServeDto> haveCourseStudents = studentCoursesEntry.getValue().stream().filter(e -> Objects.nonNull(e.getCourseStartTime())).collect(Collectors.toList());
-                if(CollectionUtils.isEmpty(haveCourseStudents)){
-                    noClassStudentIds.add(studentCoursesEntry.getKey());
-                    continue;
-                }
-                StudentServeDto studentServeDto = haveCourseStudents.stream().min(Comparator.comparing(StudentServeDto::getCourseStartTime)).get();
-                if(Objects.isNull(studentServeDto.getCourseStartTime())){
-                    noClassStudentIds.add(studentCoursesEntry.getKey());
-                    continue;
-                }
-                if(!studentServeDto.getCourseStartTime().before(nextMonday)){
-                    dontServeInCurrentWeekStudentIds.add(studentCoursesEntry.getKey());
-                    continue;
-                }
-                long count = haveCourseStudents.stream().filter(e -> (GroupType.PRACTICE.equals(e.getGroupType()) ||
-                        GroupType.VIP.equals(e.getGroupType()))
-                        &&nextMonday.after(e.getCourseStartTime())).count();
-                if(count>0){
-                    haveClassStudentIds.add(studentCoursesEntry.getKey());
-                }else{
-                    noClassStudentIds.add(studentCoursesEntry.getKey());
-                }
-            }
-
-            Set<Integer> allServeStudentIds=new HashSet<>();
-            allServeStudentIds.addAll(haveClassStudentIds);
-            allServeStudentIds.addAll(noClassStudentIds);
-
-            Map<Integer, List<StudentServeCourseHomeworkDto>> studentHomeworkMap=new HashMap<>();
-            Map<Integer, List<ExtracurricularExercisesReply>> studentExercisesMap=new HashMap<>();
-
-            if (!CollectionUtils.isEmpty(allServeStudentIds)){
-                List<StudentServeCourseHomeworkDto> studentHomeworks = studentCourseHomeworkDao.findStudentHomeworkWithCourseDateRange(monDayDate.toString(), sunDayDate.toString(), new ArrayList<>(allServeStudentIds));
-                List<StudentServeCourseHomeworkDto> studentHomeworksTmp =new ArrayList<>();
-                for (StudentServeCourseHomeworkDto studentHomework : studentHomeworks) {
-                    LocalDate courseStartLocalDate = LocalDateTime.ofInstant(studentHomework.getCourseStartTime().toInstant(), DateUtil.zoneId).toLocalDate();
-                    switch (courseStartLocalDate.getDayOfWeek()){
-                        case SATURDAY:
-                            if(DateUtil.daysBetween(studentHomework.getCourseStartTime(), studentHomework.getHomeworkCreateTime())<4){
-                                studentHomeworksTmp.add(studentHomework);
-                            }
-                            break;
-                        case SUNDAY:
-                            if(DateUtil.daysBetween(studentHomework.getCourseStartTime(), studentHomework.getHomeworkCreateTime())<3){
-                                studentHomeworksTmp.add(studentHomework);
-                            }
-                            break;
-                        default:
-                            LocalDate homeworkCreateTime = LocalDateTime.ofInstant(studentHomework.getHomeworkCreateTime().toInstant(), DateUtil.zoneId).toLocalDate();
-                            if(courseStartLocalDate.get(DateUtil.weekFields.weekOfYear())==homeworkCreateTime.get(DateUtil.weekFields.weekOfYear())){
-                                studentHomeworksTmp.add(studentHomework);
-                            }
-                            break;
-                    }
-                }
-                studentHomeworkMap = studentHomeworksTmp.stream()
-                        .collect(Collectors.groupingBy(StudentServeCourseHomeworkDto::getUserId));
-            }
-
-            if(!CollectionUtils.isEmpty(allServeStudentIds)){
-                List<ExtracurricularExercisesReply> studentExercises = extracurricularExercisesReplyDao.getStudentExercisesWithTimeZone(monDayDate.toString(), sunDayDate.toString(), new ArrayList<>(allServeStudentIds), TenantContextHolder.getTenantId());
-                studentExercisesMap = studentExercises.stream().collect(Collectors.groupingBy(ExtracurricularExercisesReply::getUserId));
-            }
-
-            for (Map.Entry<Integer, List<StudentServeDto>> studentCoursesEntry : studentCoursesMap.entrySet()) {
-
-                if(dontServeInCurrentWeekStudentIds.contains(studentCoursesEntry.getKey())){
-                    continue;
-                }
-
-                StudentExtracurricularExercisesSituation studentExtracurricularExercisesSituation=new StudentExtracurricularExercisesSituation();
-                studentExtracurricularExercisesSituation.setStudentId(studentCoursesEntry.getKey());
-                studentExtracurricularExercisesSituation.setTeacherId(studentCoursesEntry.getValue().get(0).getTeacherId());
-                studentExtracurricularExercisesSituation.setExpectExercisesNum(1);
-                studentExtracurricularExercisesSituation.setActualExercisesNum(0);
-                studentExtracurricularExercisesSituation.setExercisesReplyNum(0);
-                studentExtracurricularExercisesSituation.setExercisesMessageNum(0);
-                studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(0);
-                studentExtracurricularExercisesSituation.setWeekOfYear(nowDate.get(DateUtil.weekFields.weekOfYear()));
-                studentExtracurricularExercisesSituation.setMonday(DateUtil.stringToDate(monDayDate.toString(), "yyyy-MM-dd"));
-                studentExtracurricularExercisesSituation.setSunday(DateUtil.stringToDate(sunDayDate.toString(), "yyyy-MM-dd"));
-
-                if(haveClassStudentIds.contains(studentCoursesEntry.getKey())){
-                    studentExtracurricularExercisesSituation.setServeType("HOMEWORK");
-                }
-
-                if(noClassStudentIds.contains(studentCoursesEntry.getKey())){
-                    studentExtracurricularExercisesSituation.setServeType("EXERCISE");
-                }
-
-                List<StudentServeCourseHomeworkDto> studentHomeworks = studentHomeworkMap.get(studentCoursesEntry.getKey());
-                if(!CollectionUtils.isEmpty(studentHomeworks)){
-                    studentExtracurricularExercisesSituation.setActualExercisesNum(1);
-                    long replyNum = studentHomeworks.stream().filter(e -> YesOrNoEnum.YES.equals(e.getStatus())).count();
-                    studentExtracurricularExercisesSituation.setExercisesReplyNum(replyNum>0?1:0);
-                    long haveSubmitTimes = studentHomeworks.stream().filter(e -> Objects.nonNull(e.getSubmitTime())).count();
-                    if(replyNum>0&&haveSubmitTimes>0){
-                        Date lastSubmitTime = studentHomeworks.stream().filter(e->Objects.nonNull(e.getSubmitTime())).max(Comparator.comparing(StudentServeCourseHomeworkDto::getSubmitTime)).get().getSubmitTime();
-                        studentExtracurricularExercisesSituation.setLastSubmitTime(lastSubmitTime);
-                    }
-                    int exercisesMessageNum=0;
-                    int exercisesMessageTimelyNum=0;
-                    for (StudentServeCourseHomeworkDto studentHomework : studentHomeworks) {
-                        if(!YesOrNoEnum.YES.equals(studentHomework.getStatus())){
-                            continue;
-                        }
-                        if(!YesOrNoEnum.YES.equals(studentHomework.getIsReplied())){
-                            continue;
-                        }
-                        exercisesMessageNum+=1;
-                        if(new Integer(1).equals(studentHomework.getIsRepliedTimely())){
-                            exercisesMessageTimelyNum+=1;
-                        }
-                    }
-                    studentExtracurricularExercisesSituation.setExercisesMessageNum(exercisesMessageNum>0?1:0);
-                    studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
-                }
-
-                List<ExtracurricularExercisesReply> studentExercises = studentExercisesMap.get(studentCoursesEntry.getKey());
-                if(!CollectionUtils.isEmpty(studentExercises)){
-                    studentExtracurricularExercisesSituation.setActualExercisesNum(1);
-                    long replyNum = studentExercises.stream().filter(e -> e.getStatus()==1).count();
-                    if(studentExtracurricularExercisesSituation.getExercisesReplyNum()<=0){
-                        studentExtracurricularExercisesSituation.setExercisesReplyNum(replyNum>0?1:0);
-                    }
-                    long haveSubmitTimes = studentExercises.stream().filter(e->Objects.nonNull(e.getSubmitTime())).count();
-                    if(replyNum>0&&haveSubmitTimes>0){
-                        Date lastSubmitTime = studentExercises.stream().filter(e->Objects.nonNull(e.getSubmitTime())).max(Comparator.comparing(ExtracurricularExercisesReply::getSubmitTime)).get().getSubmitTime();
-                        if(Objects.isNull(studentExtracurricularExercisesSituation.getLastSubmitTime())||lastSubmitTime.after(studentExtracurricularExercisesSituation.getLastSubmitTime())){
-                            studentExtracurricularExercisesSituation.setLastSubmitTime(lastSubmitTime);
-                        }
-                    }
-                    int exercisesMessageNum=0;
-                    int exercisesMessageTimelyNum=0;
-                    for (ExtracurricularExercisesReply studentHomework : studentExercises) {
-                        if(!new Integer(1).equals(studentHomework.getStatus())){
-                            continue;
-                        }
-                        if(!new Integer(1).equals(studentHomework.getIsReplied())){
-                            continue;
-                        }
-                        exercisesMessageNum+=1;
-                        if(new Integer(1).equals(studentHomework.getIsRepliedTimely())){
-                            exercisesMessageTimelyNum+=1;
-                        }
-                    }
-                    if(studentExtracurricularExercisesSituation.getExercisesMessageNum()<=0){
-                        studentExtracurricularExercisesSituation.setExercisesMessageNum(exercisesMessageNum>0?1:0);
-                    }
-                    if(studentExtracurricularExercisesSituation.getExercisesMessageTimelyNum()<=0){
-                        studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
-                    }
-                }
-                results.add(studentExtracurricularExercisesSituation);
-            }
-
-            currentPage=currentPage.add(BigDecimal.ONE);
-        }
-
-        studentExtracurricularExercisesSituationService.deleteByMonday(monDayDate.toString(), null);
-
-        BigDecimal currentPage1=BigDecimal.ONE,
-                pageSize1=new BigDecimal(10000),
-                total1=new BigDecimal(results.size()),
-                totalPage1=total1.divide(pageSize1, BigDecimal.ROUND_UP);
-
-        while (currentPage1.compareTo(totalPage1)<=0){
-            List<StudentExtracurricularExercisesSituation> rows=results.stream().skip(pageSize1.multiply(currentPage1.subtract(BigDecimal.ONE)).longValue()).limit(pageSize1.longValue()).collect(Collectors.toList());
-            studentExtracurricularExercisesSituationService.batchInsert(rows);
-            currentPage1=currentPage1.add(BigDecimal.ONE);
-        }
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
     public void exercisesSituationStatistics2(String monday, Integer tenantId) {
         LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
         
@@ -940,24 +662,6 @@ public class StudentServeServiceImpl implements StudentServeService {
     }
 
     @Override
-    public Set<Integer> getStudentWithCourse(Long courseId) {
-        CourseSchedule courseSchedule = courseScheduleDao.get(courseId);
-        if(Objects.isNull(courseSchedule)){
-            return new HashSet<>();
-        }
-        LocalDate nowDate = LocalDateTime.ofInstant(courseSchedule.getClassDate().toInstant(), DateUtil.zoneId).toLocalDate();
-
-        LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
-        List<StudentExtracurricularExercisesSituation> serviceWithCourse = studentExtracurricularExercisesSituationDao.findServiceWithCourse(monDayDate.toString(), courseId);
-        if(CollectionUtils.isEmpty(serviceWithCourse)){
-            return new HashSet<>();
-        }
-        return serviceWithCourse.stream().map(StudentExtracurricularExercisesSituation::getStudentId).collect(Collectors.toSet());
-    }
-
-
-
-    @Override
     @Transactional(rollbackFor = Exception.class)
     public void closeStudentServiceTag() {
         /**

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentTeacherMapperServiceImpl.java

@@ -0,0 +1,22 @@
+package com.ym.mec.biz.service.impl;
+
+import com.ym.mec.biz.dal.dao.StudentTeacherMapperDao;
+import com.ym.mec.biz.dal.entity.StudentStatistics;
+import com.ym.mec.biz.dal.entity.StudentTeacherMapper;
+import com.ym.mec.biz.service.StudentTeacherMapperService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class StudentTeacherMapperServiceImpl extends BaseServiceImpl<Integer,StudentTeacherMapper> implements StudentTeacherMapperService{
+
+    @Autowired
+    private StudentTeacherMapperDao studentTeacherMapperDao;
+
+    @Override
+    public BaseDAO<Integer, StudentTeacherMapper> getDAO() {
+        return studentTeacherMapperDao;
+    }
+}

+ 20 - 117
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -1,63 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.page.*;
-import com.ym.mec.common.page.PageUtil;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.CloudTeacherDao;
-import com.ym.mec.biz.dal.dao.DemoGroupDao;
-import com.ym.mec.biz.dal.dao.ImGroupDao;
-import com.ym.mec.biz.dal.dao.ImUserFriendDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.dao.SchoolDao;
-import com.ym.mec.biz.dal.dao.StudentDao;
-import com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.SubjectDao;
-import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.entity.CourseHomework;
-import com.ym.mec.biz.dal.entity.ImUserFriend;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.biz.dal.entity.School;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
-import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.OaUserService;
 import com.ym.mec.biz.service.TeacherService;
@@ -69,6 +20,7 @@ import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.PageUtil;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
@@ -78,6 +30,20 @@ import com.ym.mec.thirdparty.user.realname.provider.LinkfaceRealnameAuthenticati
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.idcard.IdcardValidator;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher> implements TeacherService {
@@ -797,69 +763,6 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher> implem
     }
 
     @Override
-    public PageInfo<TeacherStudentDataDto> queryMemberStudentData(TeacherServeQueryInfo queryInfo) {
-        PageInfo<TeacherStudentDataDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-        Map<String, Object> params = new HashMap<String, Object>();
-        MapUtil.populateMap(params, queryInfo);
-
-        List<TeacherStudentDataDto> dataList = new ArrayList<>();
-        int count = teacherDao.countMemberStudentData(params);
-        if (count > 0) {
-            pageInfo.setTotal(count);
-            params.put("offset", pageInfo.getOffset());
-            dataList = teacherDao.queryMemberStudentData(params);
-            List<Integer> teacherIds = dataList.stream().map(TeacherStudentDataDto::getTeacherId).collect(Collectors.toList());
-
-            List<Map<Integer, Integer>> teachersStudentNumMapList = studentDao.getOrganTeacherStudentNum(teacherIds, Integer.valueOf(queryInfo.getOrganId()));
-            Map<Integer, Long> teachersStudentNumMap = new HashMap<>();
-            if (!CollectionUtils.isEmpty(teachersStudentNumMapList)) {
-                teachersStudentNumMap = MapUtil.convertIntegerMap(teachersStudentNumMapList);
-            }
-
-            List<Map<Integer, Integer>> teachersMemberStudentNumMapList = cloudTeacherDao.getTeachersMemberStudentNum(teacherIds, Integer.valueOf(queryInfo.getOrganId()));
-            Map<Integer, Long> teachersMemberStudentNumMap = new HashMap<>();
-            if (!CollectionUtils.isEmpty(teachersMemberStudentNumMapList)) {
-                teachersMemberStudentNumMap = MapUtil.convertIntegerMap(teachersMemberStudentNumMapList);
-            }
-            List<Map<Integer, Integer>> teacherExperienceMemberStudentNumMapList = studentDao.getTeacherExperienceMemberStudentNum(teacherIds, Integer.valueOf(queryInfo.getOrganId()));
-            Map<Integer, Long> teacherExperienceMemberStudentNumMap = new HashMap<>();
-            if (!CollectionUtils.isEmpty(teacherExperienceMemberStudentNumMapList)) {
-                teacherExperienceMemberStudentNumMap = MapUtil.convertIntegerMap(teacherExperienceMemberStudentNumMapList);
-            }
-            List<Map<Integer, Integer>> organTeacherCloudStudyStudentNumMapList = studentDao.getOrganTeacherCloudStudyStudentNum(teacherIds, Integer.valueOf(queryInfo.getOrganId()));
-            Map<String, Long> organTeacherCloudStudyStudentNumMap = new HashMap<>();
-            if (!CollectionUtils.isEmpty(organTeacherCloudStudyStudentNumMapList)) {
-                organTeacherCloudStudyStudentNumMap = MapUtil.convertIntegerMap(organTeacherCloudStudyStudentNumMapList);
-            }
-            for (TeacherStudentDataDto teacherStudentDataDto : dataList) {
-                if (teachersStudentNumMap.containsKey(teacherStudentDataDto.getTeacherId())) {
-                    teacherStudentDataDto.setTotalStudentNum(teachersStudentNumMap.get(teacherStudentDataDto.getTeacherId()).intValue());
-                }
-                if (teachersMemberStudentNumMap.containsKey(teacherStudentDataDto.getTeacherId())) {
-                    teacherStudentDataDto.setVipStudentNum(teachersMemberStudentNumMap.get(teacherStudentDataDto.getTeacherId()).intValue());
-                }
-                if (teacherExperienceMemberStudentNumMap.containsKey(teacherStudentDataDto.getTeacherId())) {
-                    teacherStudentDataDto.seteVipStudentNum(teacherExperienceMemberStudentNumMap.get(teacherStudentDataDto.getTeacherId()).intValue());
-                }
-                if (teacherStudentDataDto.getVipStudentNum() > 0 && teacherStudentDataDto.getTotalStudentNum() > 0) {
-                    teacherStudentDataDto.setVipStudentDuty(new BigDecimal(teacherStudentDataDto.getVipStudentNum()).divide(new BigDecimal(teacherStudentDataDto.getTotalStudentNum()), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).floatValue());
-                }
-                if (organTeacherCloudStudyStudentNumMap.containsKey(teacherStudentDataDto.getTeacherId())) {
-                    teacherStudentDataDto.setCloudStudyUseStudentNum(organTeacherCloudStudyStudentNumMap.get(teacherStudentDataDto.getTeacherId()).intValue());
-                }
-                if (teacherStudentDataDto.getCloudStudyUseStudentNum() > 0 && teacherStudentDataDto.getTotalStudentNum() > 0) {
-                    teacherStudentDataDto.setCloudStudyUseStudentDuty(new BigDecimal(teacherStudentDataDto.getCloudStudyUseStudentNum()).divide(new BigDecimal(teacherStudentDataDto.getTotalStudentNum()), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).floatValue());
-                }
-            }
-        }
-        pageInfo.setStatInfo(new HashMap<String, Object>() {{
-            put("noTeacherStudentNum", studentDao.getOrganNoTeacherStudentNum(Integer.valueOf(queryInfo.getOrganId())));
-        }});
-        pageInfo.setRows(dataList);
-        return pageInfo;
-    }
-
-    @Override
     public PageInfo<SysUserDto> queryTeacherBasicInfo(UserBasicQueryInfo queryInfo) {
         PageInfo<SysUserDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();

+ 4 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java

@@ -650,12 +650,11 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 			throw new BizException("订单更新失败");
 		}
 		if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
-			Student student = studentDao.get(studentPaymentOrder.getUserId());
 			//处理双十一活动特殊赠送
-			boolean elevenFlag = this.doubleElevenGive(studentPaymentOrder, student.getTeacherId());
+			boolean elevenFlag = this.doubleElevenGive(studentPaymentOrder);
 			if(!elevenFlag){
 				studentPaymentOrderService.activityGive(Integer.parseInt(studentPaymentOrder.getActivityId()), studentPaymentOrder,
-						null, null, student.getTeacherId());
+						null, null);
 			}
 			//保存账户信息
 			sysUserCashAccountDetailService.saveSysUserCashAccountDetail(studentPaymentOrder,studentPaymentOrder.getMemo());
@@ -676,7 +675,7 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 	}
 
 	//处理双十一活动特殊赠送
-	private boolean doubleElevenGive(StudentPaymentOrder studentPaymentOrder,Integer teacherId){
+	private boolean doubleElevenGive(StudentPaymentOrder studentPaymentOrder){
 		String[] split = studentPaymentOrder.getActivityId().split(",");
 		String activeConfig = sysConfigDao.findConfigValue("2022_double_eleven_give_config");
 		String giveStartTime = sysConfigDao.findConfigValue("2021_double_eleven_give_member_start_time");
@@ -716,7 +715,7 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 		}
 		if (doubleElevenFlag){
 			//处理活动特殊排课资格
-			activityUserMapperService.saveToOrder(studentPaymentOrder,teacherId);
+			activityUserMapperService.saveToOrder(studentPaymentOrder);
 		}
 		return doubleElevenFlag;
 	}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -2336,7 +2336,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             } else {
                 //活动赠送
                 Integer activityUserMapperId = studentPaymentOrderService.activityGive(vipGroup.getVipGroupActivityId(), order,
-                        vipGroup.getId().toString(), null, vipGroup.getUserId());
+                        vipGroup.getId().toString(), null);
 
                 //生成班级学员关联
                 ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();

+ 35 - 28
mec-biz/src/main/resources/config/mybatis/ActivityUserMapperMapper.xml

@@ -5,7 +5,7 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.ym.mec.biz.dal.dao.ActivityUserMapperDao">
-	
+
 	<resultMap type="com.ym.mec.biz.dal.entity.ActivityUserMapper" id="ActivityUserMapper">
 		<result column="id_" property="id" />
 		<result column="category_id_" property="categoryId" />
@@ -14,7 +14,6 @@
 		<result column="give_single_course_time_" property="giveSingleCourseTime" />
 		<result column="activity_id_" property="activityId" />
 		<result column="user_id_" property="userId" />
-		<result column="teacher_id_" property="teacherId" />
 		<result column="vip_flag_" property="vipFlag" />
 		<result column="give_vip_flag_" property="giveVipFlag" />
 		<result column="practice_flag_" property="practiceFlag" />
@@ -44,29 +43,29 @@
 		<result column="update_time_" property="updateTime" />
 		<result column="tenant_id_" property="tenantId" />
 	</resultMap>
-	
+
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="ActivityUserMapper" >
-		SELECT * FROM activity_user_mapper WHERE id_ = #{id} 
+		SELECT * FROM activity_user_mapper WHERE id_ = #{id}
 	</select>
-	
+
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="ActivityUserMapper">
 		SELECT * FROM activity_user_mapper where tenant_id_ = #{tenantId} ORDER BY id_
 	</select>
-	
+
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ActivityUserMapper" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO activity_user_mapper (activity_id_,user_id_,vip_flag_,give_vip_flag_,
 		                                  practice_flag_,give_practice_flag_,member_flag_,give_member_flag_,create_time_,update_time_,payment_order_id_,
 										  vip_group_id_,give_vip_group_id_,practice_group_id_,give_practice_group_id_,return_fee_,
-		                                  member_order_id_,give_member_order_id_,teacher_id_,actual_price_,add_memo_,cut_memo_,tenant_id_,give_coupon_id_,
+		                                  member_order_id_,give_member_order_id_,actual_price_,add_memo_,cut_memo_,tenant_id_,give_coupon_id_,
 										  total_course_num_,total_give_course_num_,sub_course_num_,sub_give_course_num_,sub_no_course_price_,single_course_time_,
 		                                  give_single_course_time_,category_id_,give_category_id_,calender_id_,organ_id_)
 		                                  VALUES(#{activityId},#{userId},#{vipFlag},#{giveVipFlag},#{practiceFlag},
 		                                         #{givePracticeFlag},#{memberFlag},#{giveMemberFlag},NOW(),NOW(),#{paymentOrderId},#{vipGroupId},
 		                                         #{giveVipGroupId},#{practiceGroupId},#{givePracticeGroupId},#{returnFee},
-		                                         #{memberOrderId},#{giveMemberOrderId},#{teacherId},#{actualPrice},#{addMemo},#{cutMemo},#{tenantId},#{giveCouponId},
+		                                         #{memberOrderId},#{giveMemberOrderId},#{actualPrice},#{addMemo},#{cutMemo},#{tenantId},#{giveCouponId},
 		                                         #{totalCourseNum},#{totalGiveCourseNum},#{subCourseNum},#{subGiveCourseNum},#{subNoCoursePrice},
 		                                         #{singleCourseTime},#{giveSingleCourseTime},#{categoryId},#{giveCategoryId},#{calenderId},#{organId})
 	</insert>
@@ -74,7 +73,7 @@
 		INSERT INTO activity_user_mapper (activity_id_,user_id_,vip_flag_,give_vip_flag_,
 		practice_flag_,give_practice_flag_,member_flag_,give_member_flag_,create_time_,update_time_,payment_order_id_,
 		vip_group_id_,give_vip_group_id_,practice_group_id_,give_practice_group_id_,return_fee_,member_order_id_,
-		                                  give_member_order_id_,teacher_id_,actual_price_,add_memo_,cut_memo_,tenant_id_,give_coupon_id_,
+		                                  give_member_order_id_,actual_price_,add_memo_,cut_memo_,tenant_id_,give_coupon_id_,
 		total_course_num_,total_give_course_num_,sub_course_num_,sub_give_course_num_,sub_no_course_price_,single_course_time_,
 		                                  give_single_course_time_,category_id_,give_category_id_,calender_id_,organ_id_)
 		VALUES
@@ -82,7 +81,7 @@
 			(#{item.activityId},#{item.userId},#{item.vipFlag},#{item.giveVipFlag},#{item.practiceFlag},
 			#{item.givePracticeFlag},#{item.memberFlag},#{item.giveMemberFlag},NOW(),NOW(),#{item.paymentOrderId},#{item.vipGroupId},
 			#{item.giveVipGroupId},#{item.practiceGroupId},#{item.givePracticeGroupId},#{item.returnFee},
-			 #{item.memberOrderId},#{item.giveMemberOrderId},#{item.teacherId},#{item.actualPrice},#{item.addMemo},#{item.cutMemo},
+			 #{item.memberOrderId},#{item.giveMemberOrderId},#{item.actualPrice},#{item.addMemo},#{item.cutMemo},
 			 #{item.tenantId},#{item.giveCouponId},#{item.totalCourseNum},#{item.totalGiveCourseNum},#{item.subCourseNum},
 			 #{item.subGiveCourseNum},#{item.subNoCoursePrice},#{item.singleCourseTime},#{item.giveSingleCourseTime},
 			 #{item.categoryId},#{item.giveCategoryId},#{item.calenderId},#{item.organId})
@@ -128,9 +127,6 @@
 			<if test="actualPrice != null">
 				actual_price_ = #{actualPrice},
 			</if>
-			<if test="teacherId != null">
-				teacher_id_ = #{teacherId},
-			</if>
 			<if test="memberOrderId != null">
 				member_order_id_ = #{memberOrderId},
 			</if>
@@ -202,9 +198,6 @@
 		</if>
 		AND FIND_IN_SET(id_,#{activityUserMapperIds}) AND FIND_IN_SET(user_id_,#{studentIds}) AND return_fee_ = 0
 	</update>
-    <update id="updateTeacherId">
-		UPDATE activity_user_mapper SET teacher_id_ = #{teacherId} WHERE user_id_ = #{userId}
-	</update>
 	<update id="batchUpdate">
 		<foreach collection="useActivityUserMappers" item="entity" separator=";">
 			UPDATE activity_user_mapper
@@ -272,9 +265,9 @@
 
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
-		DELETE FROM activity_user_mapper WHERE id_ = #{id} 
+		DELETE FROM activity_user_mapper WHERE id_ = #{id}
 	</delete>
-	
+
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="ActivityUserMapper" parameterType="map">
 		SELECT * FROM activity_user_mapper where tenant_id_ = #{tenantId}
@@ -287,7 +280,7 @@
 		ORDER BY id_ DESC
 		<include refid="global.limit"/>
 	</select>
-	
+
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM activity_user_mapper where tenant_id_ = #{tenantId}
@@ -385,7 +378,7 @@
 		WHERE aum.return_fee_ = 0 AND aum.user_id_ = #{userId} AND aum.activity_id_ = #{activityId}
 		GROUP BY aum.user_id_
 	</select>
-	
+
 	<select id="exportStudentSubCourse" resultType="com.ym.mec.biz.dal.dto.ExportStudentSubCourse">
 		select
 			t.user_id_ as userId,
@@ -416,17 +409,22 @@
 		SELECT CASE WHEN vgc.id_ IS NULL THEN '网管课' ELSE vgc.name_ END name_,
 		CASE WHEN vgc.id_ IS NULL THEN 0 ELSE vgc.id_ END id_,COUNT(DISTINCT aum.user_id_) num_,
 		CASE WHEN vgc.id_ IS NULL THEN 1 ELSE vgc.student_num_ END student_num_
-		FROM (select category_id_,user_id_,teacher_id_ from activity_user_mapper aum WHERE aum.sub_course_num_ > 0 AND aum.return_fee_ = 0
+		FROM (select category_id_,user_id_,case when category_id_ IS NULL THEN 'PRACTICE' ELSE 'VIP' END type_
+		from activity_user_mapper aum WHERE aum.sub_course_num_ > 0 AND aum.return_fee_ = 0
 		UNION ALL
-		select give_category_id_ category_id_,user_id_,teacher_id_ from activity_user_mapper aum
+		select give_category_id_ category_id_,user_id_,case when give_category_id_ IS NULL THEN 'PRACTICE' ELSE 'VIP' END type_
+		from activity_user_mapper aum
 		WHERE aum.sub_give_course_num_ > 0 AND aum.return_fee_ = 0) aum
 		LEFT JOIN vip_group_category vgc ON aum.category_id_ = vgc.id_
+		<if test="userId != null">
+			left join student_teacher_mapper stm ON stm.student_id_ = aum.user_id_
+		</if>
 		<if test="organIds != null and organIds != ''">
 			LEFT JOIN sys_user su ON su.id_ = aum.user_id_
 		</if>
 		<where>
 			<if test="userId != null">
-				AND aum.teacher_id_ = #{userId}
+				AND stm.teacher_id_ = #{userId} AND aum.type_ = stm.teacher_type_
 			</if>
 			<if test="organIds != null and organIds != ''">
 				AND FIND_IN_SET(su.organ_id_,#{organIds})
@@ -445,7 +443,7 @@
 	<select id="queryActivityStudentList" resultMap="ActivityUserDto">
 		SELECT aum.user_id_,su.avatar_,sj.id_ subject_id_,su.username_,su.phone_,sj.name_ subject_name_,SUM(aum.sub_course_num_) sub_course_num_
 		FROM (SELECT aum.id_,aum.user_id_,aum.sub_course_num_,
-		             aum.single_course_time_,aum.teacher_id_ from activity_user_mapper aum
+		             aum.single_course_time_,case when category_id_ IS NULL THEN 'PRACTICE' ELSE 'VIP' END type_ from activity_user_mapper aum
 		WHERE aum.sub_course_num_ > 0 AND aum.return_fee_ = 0
 		<if test="queryInfo.categoryId != null">
 			AND aum.category_id_ = #{queryInfo.categoryId}
@@ -455,7 +453,7 @@
 		</if>
 		UNION ALL
 		SELECT aum.id_,aum.user_id_,aum.sub_give_course_num_ sub_course_num_,
-		       aum.give_single_course_time_ single_course_time_,aum.teacher_id_ from activity_user_mapper aum
+		       aum.give_single_course_time_ single_course_time_,case when give_category_id_ IS NULL THEN 'PRACTICE' ELSE 'VIP' END type_ from activity_user_mapper aum
 		WHERE aum.sub_give_course_num_ > 0 AND aum.return_fee_ = 0
 		<if test="queryInfo.categoryId != null">
 			AND aum.give_category_id_ = #{queryInfo.categoryId}
@@ -464,6 +462,9 @@
 			AND aum.give_category_id_ IS NULL
 		</if>
 		) aum
+		<if test="queryInfo.teacherId != null">
+			left join student_teacher_mapper stm ON stm.student_id_ = aum.user_id_
+		</if>
 		LEFT JOIN sys_user su ON su.id_ = aum.user_id_
 		LEFT JOIN student s ON s.user_id_ = aum.user_id_
 		LEFT JOIN subject sj ON sj.id_ = s.subject_id_list_
@@ -483,7 +484,7 @@
 				AND FIND_IN_SET(sj.id_,#{queryInfo.subjectIds})
 			</if>
 			<if test="queryInfo.teacherId != null">
-				AND aum.teacher_id_ = #{queryInfo.teacherId}
+				AND stm.teacher_id_ = #{queryInfo.teacherId} AND aum.type_ = stm.teacher_type_
 			</if>
 			<if test="queryInfo.studentIds != null and queryInfo.studentIds.size > 0">
 				AND aum.user_id_ IN
@@ -498,6 +499,9 @@
 	<select id="queryActivityCourseTimeList" resultType="java.lang.Integer">
 		select distinct aum.single_course_time_ from activity_user_mapper aum
 		left join sys_user su on su.id_ = aum.user_id_
+		<if test="queryInfo.teacherId != null">
+			left join student_teacher_mapper stm ON stm.student_id_ = aum.user_id_
+		</if>
 		where aum.return_fee_ = 0 and aum.total_course_num_ > 0
 		<if test="queryInfo.categoryId != null">
 			AND aum.category_id_ = #{queryInfo.categoryId}
@@ -506,7 +510,7 @@
 			AND aum.category_id_ IS NULL
 		</if>
 		<if test="queryInfo.teacherId != null">
-			AND aum.teacher_id_ = #{queryInfo.teacherId}
+			AND stm.teacher_id_ = #{queryInfo.teacherId} AND stm.teacher_type_ = case when category_id_ IS NULL THEN 'PRACTICE' ELSE 'VIP' END
 		</if>
 		<if test="queryInfo.organIds != null and queryInfo.organIds != ''">
 			AND FIND_IN_SET(su.organ_id_,#{queryInfo.organIds})
@@ -514,6 +518,9 @@
 		union
 		select distinct aum.give_single_course_time_ from activity_user_mapper aum
 		left join sys_user su on su.id_ = aum.user_id_
+		<if test="queryInfo.teacherId != null">
+			left join student_teacher_mapper stm ON stm.student_id_ = aum.user_id_
+		</if>
 		where aum.return_fee_ = 0 and aum.sub_give_course_num_ > 0
 		<if test="queryInfo.categoryId != null">
 			AND aum.give_category_id_ = #{queryInfo.categoryId}
@@ -522,7 +529,7 @@
 			AND aum.give_category_id_ IS NULL
 		</if>
 		<if test="queryInfo.teacherId != null">
-			AND aum.teacher_id_ = #{queryInfo.teacherId}
+			AND stm.teacher_id_ = #{queryInfo.teacherId} AND stm.teacher_type_ = case when give_category_id_ IS NULL THEN 'PRACTICE' ELSE 'VIP' END
 		</if>
 		<if test="queryInfo.organIds != null and queryInfo.organIds != ''">
 			AND FIND_IN_SET(su.organ_id_,#{queryInfo.organIds})

+ 0 - 20
mec-biz/src/main/resources/config/mybatis/CloudTeacherMapper.xml

@@ -119,24 +119,4 @@
         </if>
         GROUP BY su.organ_id_
     </select>
-
-    <select id="getTeachersMemberStudentNum" resultType="map">
-        SELECT
-        stu.teacher_id_ 'key',
-        COUNT(DISTINCT cto.student_id_) 'value'
-        FROM cloud_teacher_order cto
-        LEFT JOIN student stu ON cto.student_id_=stu.user_id_
-        LEFT JOIN sys_user su ON cto.student_id_=su.id_
-        WHERE su.del_flag_=0 AND cto.status_ IN (1,2)
-        <if test="organId!=null">
-            AND su.organ_id_=#{organId}
-        </if>
-        <if test="teacherIds!=null and teacherIds.size()>0">
-            AND stu.teacher_id_ IN
-            <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
-                #{teacherId}
-            </foreach>
-        </if>
-        GROUP BY stu.teacher_id_
-    </select>
 </mapper>

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

@@ -213,8 +213,8 @@
 		where #{month} BETWEEN DATE_FORMAT(orc.start_date_,'%Y-%m') AND DATE_FORMAT(orc.end_date_,'%Y-%m') AND orc.cloud_price_ > 0 AND orc.start_date_  IS NOT NULL;
 	</select>
 	<select id="sumRefundAmount" resultType="java.util.Map">
-		select suc.organ_id_ 'key',SUM(amount_) 'value' from sys_user_cash_account_log suc
-		where DATE_FORMAT(suc.create_time_,'%Y-%m') = #{month} AND suc.amount_ > 0 group by suc.organ_id_;
+		select organ_id_ 'key',SUM(amount_) 'value' from financial_expenditure where process_id_ IN (19,20,23) AND fee_project_ != 25
+		AND DATE_FORMAT(create_time_,'%Y-%m') = #{month} AND amount_ > 0 group by organ_id_;
 	</select>
 	<select id="sumVariableCosts" resultType="java.util.Map">
 		select fe.organ_id_ 'key',SUM(amount_) 'value' from financial_expenditure fe

+ 4 - 4
mec-biz/src/main/resources/config/mybatis/SellOrderMapper.xml

@@ -658,16 +658,16 @@
         </foreach>
     </select>
     <select id="getMallProductMap" resultType="java.util.Map">
-        select pp.id 'key',ppc.name 'value' from mall_dev.pms_product_category ppc
-        left join mall_dev.pms_product_category ppcc ON ppcc.parent_id = ppc.id
-        left join mall_dev.pms_product pp ON pp.product_category_id = ppcc.id
+        select pp.id 'key',ppc.name 'value' from mall_pro.pms_product_category ppc
+        left join mall_pro.pms_product_category ppcc ON ppcc.parent_id = ppc.id
+        left join mall_pro.pms_product pp ON pp.product_category_id = ppcc.id
         where pp.id IN
         <foreach collection="productIdList" item="id" open="(" close=")" separator=",">
             #{id}
         </foreach>
     </select>
     <select id="getMallProductCategory" resultType="java.lang.String">
-        select name from mall_dev.pms_product_category where parent_id = 0
+        select name from mall_pro.pms_product_category where parent_id = 0
     </select>
 
 </mapper>

+ 0 - 8
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -610,14 +610,6 @@
         </if>
     </select>
 
-    <select id="findServiceWithCourse"
-            resultMap="StudentExtracurricularExercisesSituation">
-        SELECT *
-        FROM student_extracurricular_exercises_situation_
-        WHERE monday_ = #{monday}
-          AND FIND_IN_SET(#{courseId}, course_ids_)
-    </select>
-
     <resultMap id="TeacherServeDto" type="com.ym.mec.biz.dal.dto.TeacherServeDto">
         <result column="organ_name_" property="organName"/>
         <result column="monday_" property="monday"/>

+ 0 - 159
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -518,57 +518,7 @@
           AND pg.buy_months_ >= 1
         GROUP BY s.teacher_id_
     </select>
-    <select id="getServiceStudents" resultMap="Student">
-        SELECT su.id_ user_id_,s.teacher_id_ FROM sys_user su
-        LEFT JOIN student s ON s.user_id_=su.id_
-        WHERE s.service_tag_=1 AND FIND_IN_SET('STUDENT', su.user_type_) and s.tenant_id_ = #{tenantId}
-    </select>
 
-    <resultMap id="StudentServeDto" type="com.ym.mec.biz.dal.dto.StudentServeDto" extends="Student">
-        <result column="group_type_" property="groupType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result property="courseStartTime" column="course_start_time_"/>
-    </resultMap>
-    <select id="getBeServiceStudentsInfoWithStudents" resultMap="StudentServeDto">
-        SELECT
-            s.user_id_,
-            s.teacher_id_,
-            cs.group_type_,
-            cs.teach_mode_,
-            IF(CONCAT( cs.class_date_, ' ', cs.end_class_time_ )&lt;#{courseExpireDate} AND (sa.status_ != 'NORMAL' OR sa.status_ IS NULL), NULL, cs.class_date_) course_start_time_
-        FROM
-          student s
-        LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = s.user_id_
-        LEFT JOIN student_attendance sa ON cssp.course_schedule_id_=sa.course_schedule_id_ AND sa.user_id_=cssp.user_id_
-        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
-        AND cs.group_type_ IN ('VIP', 'PRACTICE')
-        AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) > #{monday}
-        WHERE
-        s.service_tag_ = 1 AND s.user_id_ IN
-        <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
-            #{studentId}
-        </foreach>
-    </select>
-    <select id="getBeServiceStudentsInfoWithStudentsForHistory" resultMap="StudentServeDto">
-        SELECT
-            s.student_id_ user_id_,
-            s.teacher_id_,
-            cs.group_type_,
-            cs.teach_mode_,
-            IF(CONCAT( cs.class_date_, ' ', cs.end_class_time_ )&lt;#{courseExpireDate} AND (sa.status_ != 'NORMAL' OR sa.status_ IS NULL), NULL, cs.class_date_) course_start_time_
-        FROM
-          student_extracurricular_exercises_situation_ s
-        LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = s.student_id_
-        LEFT JOIN student_attendance sa ON cssp.course_schedule_id_=sa.course_schedule_id_ AND sa.user_id_=cssp.user_id_
-        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
-        AND cs.group_type_ IN ('VIP', 'PRACTICE')
-        AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) > #{monday}
-        WHERE
-        s.monday_ = #{monday} AND s.student_id_ IN
-        <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
-            #{studentId}
-        </foreach>
-    </select>
     <select id="getServeStudentIds" resultType="int">
         SELECT user_id_
         FROM student stu
@@ -629,29 +579,6 @@
         ORDER BY cssp.user_id_,course_start_time_
     </select>
 
-    <select id="getNoCourseBeServeStudentInfo" resultMap="StudentServeCourseDto">
-        SELECT
-            sr.user_id_ student_id_,
-            stu.teacher_id_ lead_teacher_id_,
-            'MUSIC' group_type_,
-            sr.music_group_id_
-        FROM
-            student_registration sr
-            LEFT JOIN student stu ON sr.user_id_ = stu.user_id_
-            LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
-        WHERE
-            mg.del_flag_ = 0 and sr.tenant_id_ = #{tenantId}
-            AND mg.organ_id_ IS NOT NULL
-            AND mg.status_ = 'PROGRESS'
-            AND sr.music_group_status_ = 'NORMAL'
-            <if test="studentIds!=null and studentIds.size()>0">
-                AND sr.user_id_ IN
-                <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
-                    #{studentId}
-                </foreach>
-            </if>
-    </select>
-
     <select id="getStudentNames" resultType="string">
         SELECT username_ FROM sys_user WHERE id_ IN
         <foreach collection="studentIds" item="studentId" separator="," open="(" close=")">
@@ -700,15 +627,6 @@
             </if>
     </select>
 
-    <select id="getStudentTeacher" resultMap="Student">
-        SELECT s.user_id_,t.real_name_ teacher_name_ FROM student s
-        LEFT JOIN sys_user t ON t.id_ = s.teacher_id_
-        WHERE s.user_id_ IN
-        <foreach collection="studentIds" item="id" open="(" close=")" separator=",">
-            #{id}
-        </foreach>
-    </select>
-
     <select id="findByStudentIds" resultMap="Student">
         SELECT * FROM student WHERE user_id_ IN
         <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
@@ -868,43 +786,6 @@
         GROUP BY su.organ_id_
     </select>
 
-    <select id="getOrganTeacherStudentNum" resultType="map">
-        SELECT stu.teacher_id_ 'key',COUNT(DISTINCT t.user_id_) 'value'
-        FROM ((SELECT sr.user_id_
-        FROM student_registration sr
-        LEFT JOIN music_group mg ON sr.music_group_id_=mg.id_
-        WHERE mg.status_='PROGRESS' AND sr.music_group_status_='NORMAL')
-        UNION ALL
-        (SELECT
-        cssp.user_id_
-        FROM
-        course_schedule_student_payment cssp
-        LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
-        WHERE
-            cssp.group_type_ IN ('VIP', 'PRACTICE')
-            AND cs.status_='NOT_START')) t
-        LEFT JOIN student stu ON t.user_id_=stu.user_id_
-        LEFT JOIN sys_user su ON t.user_id_ = su.id_
-        LEFT JOIN teacher tea ON stu.teacher_id_=tea.id_
-        WHERE su.del_flag_=0
-        <if test="organId!=null">
-            AND tea.organ_id_=#{organId}
-        </if>
-            AND stu.teacher_id_ IN
-            <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
-                #{teacherId}
-            </foreach>
-        GROUP BY stu.teacher_id_
-    </select>
-
-    <select id="getOrganNoTeacherStudentNum" resultType="int">
-        SELECT COUNT(DISTINCT stu.user_id_)
-        FROM student stu
-        LEFT JOIN sys_user su ON stu.user_id_ = su.id_
-        WHERE su.del_flag_=0 AND stu.teacher_id_ IS NULL
-            AND su.organ_id_=#{organId}
-    </select>
-
     <select id="getCloudStudyStudentNum" resultType="int">
         SELECT
             COUNT(DISTINCT smcr.user_id_)
@@ -956,25 +837,6 @@
         GROUP BY su.organ_id_
     </select>
 
-    <select id="getOrganTeacherCloudStudyStudentNum" resultType="map">
-        SELECT
-        stu.teacher_id_ 'key',
-        COUNT(DISTINCT smcr.user_id_) 'value'
-        FROM sys_music_compare_record smcr
-        LEFT JOIN sys_user su ON smcr.user_id_=su.id_
-        LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
-        LEFT JOIN teacher tea ON stu.teacher_id_=tea.id_
-        WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL
-        <if test="organId!=null">
-            AND tea.organ_id_=#{organId}
-        </if>
-            AND stu.teacher_id_ IN
-            <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
-                #{teacherId}
-            </foreach>
-        GROUP BY stu.teacher_id_
-    </select>
-
     <select id="getCloudStudyLivelyStudentNum" resultType="int">
         SELECT COUNT(user_id_)
         FROM (SELECT
@@ -1074,8 +936,6 @@
         SELECT
             stu.user_id_ studentId,
             su.username_ studentName,
-            stu.teacher_id_ teacherId,
-            tea.real_name_ teacherName,
             sub.name_	subjectName,
             stu.cloud_study_sequence_days_ cloudStudyRunningDays,
             COUNT(DISTINCT smcr.behavior_id_) cloudStudyUseNum,
@@ -1105,7 +965,6 @@
                 )) t1) t
             LEFT JOIN student stu ON t.user_id_=stu.user_id_
             LEFT JOIN sys_user su ON stu.user_id_=su.id_
-            LEFT JOIN sys_user tea ON stu.teacher_id_=tea.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_
         <include refid="queryCloudStudyStudentDataCondition" />
@@ -1173,24 +1032,6 @@
             </foreach>
     </select>
 
-    <select id="getTeacherExperienceMemberStudentNum" resultType="map">
-        SELECT
-        stu.teacher_id_ 'key',
-        COUNT(DISTINCT stu.user_id_) 'value'
-        FROM student stu
-        LEFT JOIN cloud_teacher_order cto ON stu.user_id_=cto.student_id_
-        LEFT JOIN sys_user su ON su.id_=stu.user_id_
-        WHERE su.del_flag_=0 AND stu.experience_member_rank_setting_id_ IS NOT NULL AND (cto.id_ IS NULL OR cto.status_ NOT IN (1, 2))
-        <if test="organId!=null">
-            AND su.organ_id_=#{organId}
-        </if>
-            AND stu.teacher_id_ IN
-            <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
-                #{teacherId}
-            </foreach>
-        GROUP BY stu.teacher_id_
-    </select>
-
     <select id="getStudentSubjectMapList" resultType="java.util.Map">
         SELECT stu.user_id_ 'key',sub.name_ 'value'
         FROM student stu

+ 27 - 14
mec-biz/src/main/resources/config/mybatis/StudentStatisticsMapper.xml

@@ -397,24 +397,37 @@
 	<select id="countRenewStudentNum" resultType="java.lang.Integer">
 		SELECT COUNT(cssp.user_id_) FROM (
 		<if test="groupType == 'VIP'">
-			SELECT cssp.user_id_,MIN(vg.create_time_) first_order_time_,MAX(vg.create_time_) last_order_time_ FROM course_schedule_student_payment cssp
-			LEFT JOIN vip_group vg ON CONVERT(vg.id_ , CHAR) = cssp.music_group_id_
-			LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
-			WHERE cssp.actual_price_ > 0 AND cssp.group_type_ = 'VIP' AND vgc.music_theory_ = 0 AND DATE_FORMAT(vg.create_time_, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
-			GROUP BY cssp.user_id_
+			select aum.user_id_,MIN(aum.create_time_) first_order_time_,MAX(aum.create_time_) last_order_time_ from activity_user_mapper aum
+			where aum.vip_flag_ != 0 and aum.category_id_ != 16 AND DATE_FORMAT(aum.create_time_, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+			<if test="organIdList != null and organIdList.size > 0">
+				AND aum.organ_id_ IN
+				<foreach collection="organIdList" item="organId" open="(" close=")" separator=",">
+					#{organId}
+				</foreach>
+			</if>
+			group by aum.user_id_
 		</if>
 		<if test="groupType == 'THEORY'">
-			SELECT cssp.user_id_,MIN(vg.create_time_) first_order_time_,MAX(vg.create_time_) last_order_time_ FROM course_schedule_student_payment cssp
-			LEFT JOIN vip_group vg ON CONVERT(vg.id_ , CHAR) = cssp.music_group_id_
-			LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
-			WHERE cssp.actual_price_ > 0 AND cssp.group_type_ = 'VIP' AND vgc.music_theory_ AND DATE_FORMAT(vg.create_time_, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
-			GROUP BY cssp.user_id_
+			select aum.user_id_,MIN(aum.create_time_) first_order_time_,MAX(aum.create_time_) last_order_time_ from activity_user_mapper aum
+			where aum.vip_flag_ != 0 and aum.category_id_ = 16 AND DATE_FORMAT(aum.create_time_, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+			<if test="organIdList != null and organIdList.size > 0">
+				AND aum.organ_id_ IN
+				<foreach collection="organIdList" item="organId" open="(" close=")" separator=",">
+					#{organId}
+				</foreach>
+			</if>
+			group by aum.user_id_
 		</if>
 		<if test="groupType == 'PRACTICE'">
-			SELECT cssp.user_id_,MIN(pg.create_time_) first_order_time_,MAX(pg.create_time_) last_order_time_ FROM course_schedule_student_payment cssp
-			LEFT JOIN practice_group pg ON CONVERT(pg.id_ , CHAR) = cssp.music_group_id_
-			WHERE cssp.actual_price_ > 0 AND cssp.group_type_ = 'PRACTICE' AND DATE_FORMAT(pg.create_time_, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
-			GROUP BY cssp.user_id_
+			select aum.user_id_,MIN(aum.create_time_) first_order_time_,MAX(aum.create_time_) last_order_time_ from activity_user_mapper aum
+			where aum.practice_flag_ != 0 AND DATE_FORMAT(aum.create_time_, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+			<if test="organIdList != null and organIdList.size > 0">
+				AND aum.organ_id_ IN
+				<foreach collection="organIdList" item="organId" open="(" close=")" separator=",">
+					#{organId}
+				</foreach>
+			</if>
+			group by aum.user_id_
 		</if> ) cssp
 		LEFT JOIN student_statistics ss ON cssp.user_id_ = ss.user_id_
 		WHERE ss.group_type_ = #{groupType} AND (cssp.first_order_time_ != ss.first_order_time_ OR cssp.last_order_time_ != ss.first_order_time_)

+ 39 - 0
mec-biz/src/main/resources/config/mybatis/StudentTeacherMapperMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.StudentTeacherMapperDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.StudentTeacherMapper" id="StudentTeacherMapper">
+		<result column="student_id_" property="studentId" />
+		<result column="teacher_id_" property="teacherId" />
+		<result column="teacher_name_" property="teacherName" />
+		<result column="teacher_type_" property="teacherType" />
+	</resultMap>
+	
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="StudentTeacherMapper">
+		SELECT * FROM student_teacher_mapper
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentTeacherMapper" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		INSERT INTO student_teacher_mapper (student_id_,teacher_id_,teacher_name_,teacher_type_)
+		VALUES(#{studentId},#{teacherId},#{teacherName},#{teacherType})
+	</insert>
+	
+	
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="StudentTeacherMapper" parameterType="map">
+		SELECT * FROM student_teacher_mapper <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM student_teacher_mapper
+	</select>
+</mapper>

+ 0 - 27
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -1453,33 +1453,6 @@
         <include refid="queryTeacherMusicIdsCondition"></include>
     </select>
 
-    <sql id="queryMemberStudentDataCondition">
-        <where>
-            su.del_flag_=0 AND su.lock_flag_=0 and tea.tenant_id_ = #{tenantId}
-            <if test="organId!=null and organId!=''">
-                AND tea.organ_id_ = #{organId}
-            </if>
-        </where>
-    </sql>
-
-    <select id="queryMemberStudentData" resultType="com.ym.mec.biz.dal.dto.TeacherStudentDataDto">
-        select tea.id_ teacherId,
-               su.real_name_ teacherName
-        from teacher tea
-        LEFT JOIN sys_user su ON su.id_=tea.id_
-        <include refid="queryMemberStudentDataCondition"></include>
-        group by tea.id_
-        ORDER BY tea.id_
-        <include refid="global.limit"></include>
-    </select>
-
-    <select id="countMemberStudentData" resultType="int">
-        select count(tea.id_)
-        from teacher tea
-        LEFT JOIN sys_user su ON su.id_=tea.id_
-        <include refid="queryMemberStudentDataCondition"></include>
-        <include refid="global.limit"/>
-    </select>
     <select id="getSimpleUser" resultType="com.ym.mec.biz.dal.dto.SimpleUserDto">
         SELECT
             su.id_ userId,

+ 16 - 4
mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml

@@ -301,9 +301,12 @@
 	<select id="queryWaitCourseActivity" resultMap="WaitCourseActivityDto">
 		SELECT aum.id_,aum.activity_id_,vga.name_ activity_name_,COUNT(DISTINCT aum.user_id_) student_num_ FROM activity_user_mapper aum
 		LEFT JOIN vip_group_activity vga ON aum.activity_id_ = vga.id_
+		<if test="teacherId != null">
+			left join student_teacher_mapper stm ON stm.student_id_ = aum.user_id_
+		</if>
 		WHERE aum.return_fee_ = 0 and aum.tenant_id_ = #{tenantId}
 		<if test="teacherId != null">
-			AND aum.teacher_id_ = #{teacherId}
+			AND stm.teacher_id_ = #{teacherId} AND stm.teacher_type_ = case when category_id_ IS NULL THEN 'PRACTICE' ELSE 'VIP' END
 		</if>
 		<if test="organId != null and organId != ''">
 			AND INTE_ARRAY(#{organId},vga.organ_id_)
@@ -332,9 +335,12 @@
 		COUNT(CASE WHEN give_vip_flag_ = 1 THEN 1 ELSE NULL END) give_vip_num_,
 		COUNT(CASE WHEN give_practice_flag_ = 1 THEN 1 ELSE NULL END) give_practice_num_
 		FROM activity_user_mapper aum
+		<if test="userId != null">
+			left join student_teacher_mapper stm ON stm.student_id_ = aum.user_id_
+		</if>
 		WHERE aum.return_fee_ = 0 AND aum.activity_id_ = #{activityId}
 		<if test="userId != null">
-			AND aum.teacher_id_ = #{userId}
+			AND stm.teacher_id_ = #{userId} AND stm.teacher_type_ = case when category_id_ IS NULL THEN 'PRACTICE' ELSE 'VIP' END
 		</if>
 		GROUP BY aum.user_id_)c
 	</select>
@@ -347,9 +353,12 @@
 				su.username_,su.avatar_,aum.user_id_,su.phone_
 		FROM activity_user_mapper aum
 		LEFT JOIN sys_user su ON su.id_ = aum.user_id_
+		<if test="userId != null">
+			left join student_teacher_mapper stm ON stm.student_id_ = aum.user_id_
+		</if>
 		WHERE aum.return_fee_ = 0 AND aum.activity_id_ = #{activityId}
 		<if test="userId != null">
-			AND aum.teacher_id_ = #{userId}
+			AND stm.teacher_id_ = #{userId} AND stm.teacher_type_ = case when category_id_ IS NULL THEN 'PRACTICE' ELSE 'VIP' END
 		</if>
 		<if test="search != null and search != ''">
 			AND (aum.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
@@ -373,9 +382,12 @@
 		COUNT(CASE WHEN aum.give_practice_flag_ = 1 THEN 1 ELSE NULL END) give_practice_num_,aum.user_id_
 		FROM activity_user_mapper aum
 		LEFT JOIN sys_user su ON su.id_ = aum.user_id_
+		<if test="userId != null">
+			left join student_teacher_mapper stm ON stm.student_id_ = aum.user_id_
+		</if>
 		WHERE aum.return_fee_ = 0 AND aum.activity_id_ = #{activityId}
 		<if test="userId != null">
-			AND aum.teacher_id_ = #{userId}
+			AND stm.teacher_id_ = #{userId} AND stm.teacher_type_ = case when category_id_ IS NULL THEN 'PRACTICE' ELSE 'VIP' END
 		</if>
 		<if test="search != null and search != ''">
 			AND (aum.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))

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

@@ -1,219 +1,14 @@
 package com.ym.mec.web.controller;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.PracticeGroupDao;
-import com.ym.mec.biz.dal.dao.StudentDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.SysUserCashAccountDetailDao;
-import com.ym.mec.biz.dal.dao.SysUserCoursesAccountDetailDao;
-import com.ym.mec.biz.dal.dao.TempBuyFreeLiveTheoryCourseDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
-import com.ym.mec.biz.dal.dto.ChildrenStatisticsDetailDto;
-import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
-import com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDetailDto;
-import com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDto;
-import com.ym.mec.biz.dal.dto.CourseGroupExportDto;
-import com.ym.mec.biz.dal.dto.CourseReviewDto;
-import com.ym.mec.biz.dal.dto.DoubleEleven2021Dto;
-import com.ym.mec.biz.dal.dto.DoubleEleven2021OrderDetailDto;
-import com.ym.mec.biz.dal.dto.EduOrganStudentDataDto;
-import com.ym.mec.biz.dal.dto.EduOrganStudentListExportDto;
-import com.ym.mec.biz.dal.dto.ExportDto;
-import com.ym.mec.biz.dal.dto.ExportStudentAttendanceDto;
-import com.ym.mec.biz.dal.dto.ExportTeacherSalaryDto;
-import com.ym.mec.biz.dal.dto.ExportVipGroupActivityDto;
-import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
-import com.ym.mec.biz.dal.dto.IndexErrorDataExportDto;
-import com.ym.mec.biz.dal.dto.MusicArrearageStudentDto;
-import com.ym.mec.biz.dal.dto.MusicGroupCourseScheduleDto;
-import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDto;
-import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderDetailDto;
-import com.ym.mec.biz.dal.dto.MusicGroupStudentsDto;
-import com.ym.mec.biz.dal.dto.MusicalListDetailDto;
-import com.ym.mec.biz.dal.dto.NoClassMusicStudentDto;
-import com.ym.mec.biz.dal.dto.OrderByTypeExportDto;
-import com.ym.mec.biz.dal.dto.OrganDoubleEleven2021StatisDto;
-import com.ym.mec.biz.dal.dto.PageInfoDegree;
-import com.ym.mec.biz.dal.dto.PracticeCourseDto;
-import com.ym.mec.biz.dal.dto.PracticeGroupDto;
-import com.ym.mec.biz.dal.dto.Student4operating;
-import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
-import com.ym.mec.biz.dal.dto.StudentBuyPracticeDto;
-import com.ym.mec.biz.dal.dto.StudentErrorLeaveDto;
-import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
-import com.ym.mec.biz.dal.dto.StudentManageListDto;
-import com.ym.mec.biz.dal.dto.StudentVisitDto;
-import com.ym.mec.biz.dal.dto.TeacherCourseSalaryDetail4WebDto;
-import com.ym.mec.biz.dal.dto.TeacherDefaultSalaryDto;
-import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
-import com.ym.mec.biz.dal.dto.TeacherServeDto;
-import com.ym.mec.biz.dal.dto.TeacherStudentDataDto;
-import com.ym.mec.biz.dal.dto.VipBuyResultDto;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
-import com.ym.mec.biz.dal.entity.CooperationOrgan;
-import com.ym.mec.biz.dal.entity.DegreeRegistration;
-import com.ym.mec.biz.dal.entity.EmployeeInfo;
-import com.ym.mec.biz.dal.entity.Goods;
-import com.ym.mec.biz.dal.entity.ManagerDownload;
-import com.ym.mec.biz.dal.entity.MusicEnlightenmentQuestionnaire;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupQuit;
-import com.ym.mec.biz.dal.entity.SellOrder;
-import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.StudentAttendance;
-import com.ym.mec.biz.dal.entity.SysMusicScore;
-import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
-import com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail;
-import com.ym.mec.biz.dal.entity.Teacher;
-import com.ym.mec.biz.dal.entity.TeacherCourseReward;
-import com.ym.mec.biz.dal.entity.TeacherCourseStatistics;
-import com.ym.mec.biz.dal.entity.TeacherSalaryComplaints;
-import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
-import com.ym.mec.biz.dal.entity.TenantPaymentOrder;
-import com.ym.mec.biz.dal.entity.VipGroup;
-import com.ym.mec.biz.dal.enums.AccountType;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.ExamSongTypeEnum;
-import com.ym.mec.biz.dal.enums.ExportEnum;
-import com.ym.mec.biz.dal.enums.ExportTypeEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.IndexErrorType;
-import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
-import com.ym.mec.biz.dal.enums.LevelEnum;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
-import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
-import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-import com.ym.mec.biz.dal.page.ArrearageStudentsQueryInfo;
-import com.ym.mec.biz.dal.page.ChildrenReserveQueryInfo;
-import com.ym.mec.biz.dal.page.ClassGroupQueryInfo;
-import com.ym.mec.biz.dal.page.CloudTeacherActiveQueryInfo;
-import com.ym.mec.biz.dal.page.CooperationOrganQueryInfo;
-import com.ym.mec.biz.dal.page.CourseReviewQueryInfo;
-import com.ym.mec.biz.dal.page.CourseSalaryQueryInfo4Web;
-import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
-import com.ym.mec.biz.dal.page.DegreeQueryInfo;
-import com.ym.mec.biz.dal.page.DoubleEleven2021QueryInfo;
-import com.ym.mec.biz.dal.page.EmployeeInfoQueryInfo;
-import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.ExportStudentAttendanceQueryInfo;
-import com.ym.mec.biz.dal.page.ExportTeacherSalaryQueryInfo;
-import com.ym.mec.biz.dal.page.ExportUserAccountQueryInfo;
-import com.ym.mec.biz.dal.page.ExtraExercilseReplyQueryInfo;
-import com.ym.mec.biz.dal.page.GoodsQueryInfo;
-import com.ym.mec.biz.dal.page.IndexErrRecordQueryInfo;
-import com.ym.mec.biz.dal.page.LiveBroadcastRoomMemberQueryInfo;
-import com.ym.mec.biz.dal.page.MusicCalenderDetailQueryInfo;
-import com.ym.mec.biz.dal.page.MusicEnlightenmentQuestionnaireQueryInfo;
-import com.ym.mec.biz.dal.page.MusicGroupPaymentCalenderQueryInfo;
-import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
-import com.ym.mec.biz.dal.page.MusicGroupQuitQueryInfo;
-import com.ym.mec.biz.dal.page.MusicGroupStudentQueryInfo;
-import com.ym.mec.biz.dal.page.NoClassMusicStudentQueryInfo;
-import com.ym.mec.biz.dal.page.OrganCloudStudyStudentDataQueryInfo;
-import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
-import com.ym.mec.biz.dal.page.SellOrderQueryInfo;
-import com.ym.mec.biz.dal.page.SporadicChargeInfoQueryInfo;
-import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
-import com.ym.mec.biz.dal.page.StudentBuyPracticeQueryInfo;
-import com.ym.mec.biz.dal.page.StudentErrorLeaveQueryInfo;
-import com.ym.mec.biz.dal.page.StudentExercisesSituationQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
-import com.ym.mec.biz.dal.page.StudentOperatingQueryInfo;
-import com.ym.mec.biz.dal.page.StudentQueryInfo;
-import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
-import com.ym.mec.biz.dal.page.StudentVisitQueryInfo;
-import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherCourseRewardQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherCourseStatisticsQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherSalaryModifyQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
-import com.ym.mec.biz.dal.page.TenantPaymentOrderQueryInfo;
-import com.ym.mec.biz.dal.page.VipGroupActivityQueryInfo;
-import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
-import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomMemberVo;
-import com.ym.mec.biz.service.ChildrenDayReserveService;
-import com.ym.mec.biz.service.ClassGroupService;
-import com.ym.mec.biz.service.CooperationOrganService;
-import com.ym.mec.biz.service.CourseReviewService;
-import com.ym.mec.biz.service.CourseScheduleService;
-import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
-import com.ym.mec.biz.service.DegreeRegistrationService;
-import com.ym.mec.biz.service.EmployeeInfoService;
-import com.ym.mec.biz.service.ExportService;
-import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
-import com.ym.mec.biz.service.GoodsService;
-import com.ym.mec.biz.service.ImLiveBroadcastRoomMemberService;
-import com.ym.mec.biz.service.IndexBaseMonthDataService;
-import com.ym.mec.biz.service.IndexErrDataRecordService;
-import com.ym.mec.biz.service.MusicEnlightenmentQuestionnaireService;
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderDetailService;
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
-import com.ym.mec.biz.service.MusicGroupQuitService;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.OrganizationService;
-import com.ym.mec.biz.service.PracticeGroupService;
-import com.ym.mec.biz.service.SellOrderService;
-import com.ym.mec.biz.service.SporadicChargeInfoService;
-import com.ym.mec.biz.service.StudentAttendanceService;
-import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
-import com.ym.mec.biz.service.StudentManageService;
-import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
-import com.ym.mec.biz.service.StudentRegistrationService;
-import com.ym.mec.biz.service.StudentService;
-import com.ym.mec.biz.service.StudentVisitService;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysMusicScoreService;
-import com.ym.mec.biz.service.SysTenantConfigService;
-import com.ym.mec.biz.service.TeacherAttendanceService;
-import com.ym.mec.biz.service.TeacherCourseRewardService;
-import com.ym.mec.biz.service.TeacherCourseStatisticsService;
-import com.ym.mec.biz.service.TeacherSalaryComplaintsService;
-import com.ym.mec.biz.service.TeacherService;
-import com.ym.mec.biz.service.TenantPaymentOrderService;
-import com.ym.mec.biz.service.VipGroupActivityService;
-import com.ym.mec.biz.service.VipGroupService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -223,6 +18,24 @@ 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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @RequestMapping
 @Api(tags = "数据导出服务")
@@ -2188,92 +2001,6 @@ public class ExportController extends BaseController {
         }
     }
 
-    @ApiOperation(value = "回款统计")
-    @RequestMapping("export/studentOrder")
-    @PreAuthorize("@pcs.hasPermissions('export/studentOrder')")
-    public void studentOrder(String organIds, Date date, HttpServletResponse response) throws IOException {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        organIds = organizationService.getEmployeeOrgan(sysUser.getId(), organIds, sysUser.getIsSuperAdmin());
-        Date startTime = DateUtil.getFirstDayOfMonth(date);
-        Date EndTime = DateUtil.getLastSecondWithDay(DateUtil.getLastDayOfMonth(date));
-
-        List<OrderTypeEnum> orderTypeList = new ArrayList<>();
-        orderTypeList.add(OrderTypeEnum.SPORADIC);
-        orderTypeList.add(OrderTypeEnum.PRACTICE_GROUP_BUY);
-        orderTypeList.add(OrderTypeEnum.PRACTICE_GROUP_RENEW);
-        orderTypeList.add(OrderTypeEnum.SMALL_CLASS_TO_BUY);
-        List<OrderByTypeExportDto> orders = studentPaymentOrderDao.getOrderByMonthAndType(organIds, orderTypeList, startTime, EndTime);
-
-        if (orders.size() <= 0) {
-            throw new BizException("没有可导出的记录");
-        }
-        List<Long> vipGroupIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.VIP)).map(OrderByTypeExportDto::getMusicGroupId).collect(Collectors.toList());
-        List<Long> practiceGroupIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.PRACTICE)).map(OrderByTypeExportDto::getMusicGroupId).collect(Collectors.toList());
-        List<Integer> studentIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.SPORADIC)).map(OrderByTypeExportDto::getStudentId).collect(Collectors.toList());
-
-        List<VipBuyResultDto> vipGroupTeachers = new ArrayList<>();
-        List<PracticeCourseDto> practiceGroupsTeacher = new ArrayList<>();
-        List<Student> studentTeachers = new ArrayList<>();
-        if (vipGroupIds.size() > 0) {
-            vipGroupTeachers = vipGroupDao.getGroupTeachers(vipGroupIds, TenantContextHolder.getTenantId());
-        }
-
-        if (practiceGroupIds.size() > 0) {
-            practiceGroupsTeacher = practiceGroupDao.getPracticeGroupByIds(practiceGroupIds);
-        }
-        if (studentIds.size() > 0) {
-            studentTeachers = studentDao.getStudentTeacher(studentIds);
-        }
-
-        for (OrderByTypeExportDto order : orders) {
-            for (VipBuyResultDto vipGroupTeacher : vipGroupTeachers) {
-                if (order.getGroupType().equals(GroupType.VIP) && order.getMusicGroupId().equals(vipGroupTeacher.getVipGroupId().longValue())) {
-                    order.setTeacherName(vipGroupTeacher.getTeacherName());
-                    order.setEduTeacherName(vipGroupTeacher.getEduTeacherName());
-                    break;
-                }
-            }
-            for (PracticeCourseDto practiceCourseDto : practiceGroupsTeacher) {
-                if (order.getGroupType().equals(GroupType.PRACTICE) && order.getMusicGroupId().equals(practiceCourseDto.getId())) {
-                    order.setTeacherName(practiceCourseDto.getTeacherName());
-                    order.setEduTeacherName(practiceCourseDto.getEduTeacherName());
-                    break;
-                }
-            }
-            for (Student studentTeacher : studentTeachers) {
-                if (order.getGroupType().equals(GroupType.SPORADIC) && studentTeacher.getUserId().equals(order.getStudentId())) {
-                    order.setTeacherName(studentTeacher.getTeacherName());
-                    break;
-                }
-            }
-
-        }
-
-        OutputStream outputStream = response.getOutputStream();
-        try {
-            String[] header = {"学员编号", "学员姓名", "指导老师", "教务老师", "订单日期", "交易类型", "实际金额"};
-            String[] body = {"studentId", "studentName", "teacherName", "eduTeacherName", "createTime", "orderType.msg", "actualAmount"};
-
-            HSSFWorkbook workbook = POIUtil.exportExcel(header, body, orders);
-            response.setContentType("application/octet-stream");
-            response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
-
-            outputStream = response.getOutputStream();
-            workbook.write(outputStream);
-            outputStream.flush();
-        } catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            if (outputStream != null) {
-                try {
-                    outputStream.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-
     @ApiOperation(value = "销售列表导出")
     @RequestMapping("export/exportSellOrders")
     @PreAuthorize("@pcs.hasPermissions('export/exportSellOrders')")
@@ -2684,40 +2411,6 @@ public class ExportController extends BaseController {
         }
     }
 
-    @ApiOperation(value = "分部下教师关联的会员数据导出")
-    @RequestMapping("export/organTeacherMemberStudentData")
-    @PreAuthorize("@pcs.hasPermissions('export/organTeacherMemberStudentData')")
-    public void exportEmployeeInfo(TeacherServeQueryInfo queryInfo, HttpServletResponse response) throws IOException {
-        queryInfo.setPage(1);
-        queryInfo.setRows(49999);
-        List<TeacherStudentDataDto> rows = teacherService.queryMemberStudentData(queryInfo).getRows();
-        if (CollectionUtils.isEmpty(rows)) {
-            throw new BizException("没有可导出的记录");
-        }
-        OutputStream outputStream = response.getOutputStream();
-        try {
-            String[] header = {"老师编号", "老师姓名", "学员总数", "使用人数", "使用人数比", "付费学员数量", "会员占比"};
-            String[] body = {"teacherId", "teacherName", "totalStudentNum", "cloudStudyUseStudentNum", "cloudStudyUseStudentDuty+\"%\"",
-                    "vipStudentNum", "vipStudentDuty+\"%\""};
-            HSSFWorkbook workbook = POIUtil.exportExcel(header, body, rows);
-            response.setContentType("application/octet-stream");
-            response.setHeader("Content-Disposition", "attachment;filename=employeeInfo-" + DateUtil.getDate(new Date()) + ".xls");
-
-            outputStream = response.getOutputStream();
-            workbook.write(outputStream);
-            outputStream.flush();
-        } catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            if (outputStream != null) {
-                try {
-                    outputStream.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
 
     @ApiOperation(value = "分部云教练学员数据预览导出")
     @RequestMapping("export/organStudentOverView")
@@ -2815,55 +2508,6 @@ public class ExportController extends BaseController {
         }
     }
 
-    @ApiOperation(value = "分部云教练学员训练数据导出")
-    @RequestMapping("export/cloudStudyStudentTrainData")
-    @PreAuthorize("@pcs.hasPermissions('export/cloudStudyStudentTrainData')")
-    public void cloudStudyStudentTrainData(StudentQueryInfo queryInfo, HttpServletResponse response) throws IOException {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("用户信息获取失败");
-        }
-        queryInfo.setPage(1);
-        queryInfo.setRows(49999);
-
-        List<EduOrganStudentListExportDto> rows = ((PageInfo<EduOrganStudentListExportDto>) studentService.exportOrganStudentData(queryInfo).getDetail()).getRows();
-        if (CollectionUtils.isEmpty(rows)) {
-            throw new BizException("没有可导出的记录");
-        }
-        for (EduOrganStudentListExportDto row : rows) {
-            row.setCloudStudyUseTime(Math.round(row.getCloudStudyUseTime()));
-            row.setCloudStudyUseAvgTime(Math.round(row.getCloudStudyUseAvgTime()));
-        }
-        OutputStream outputStream = response.getOutputStream();
-        try {
-            String[] header = {"学员编号", "学员", "年级", "班级", "手机号", "是否新用户", "是否激活", "训练总时长", "连续训练天数", "乐团", "乐团主管", "所属学校", "指导老师", "声部", "是否有小课",
-                    "训练次数", "训练天数", "训练平均时长", "会员有效期", "是否服务", "是否运营", "是否云教练活动目标学员", "活动消费金额", "关心包", "加油包", "未上课数", "vip课剩余课时", "网管课剩余课时"};
-            String[] body = {"studentId", "studentName", "currentGradeNum", "currentClass", "phone", "newUser?\"是\":\"否\"", "enable?\"是\":\"否\"",
-                    "cloudStudyUseTime+\"分钟\"", "cloudStudyRunningDays+\"天\"", "musicGroupNames", "educationName", "schoolNames",
-                    "teacherName", "subjectName", "hasVipGroup>0?\"是\":\"否\"", "cloudStudyUseNum+\"次\"", "cloudStudyUseDays+\"天\"",
-                    "cloudStudyUseAvgTime+\"分钟\"", "membershipEndTime", "serviceTag>0?\"是\":\"否\"", "operatingTag>0?\"是\":\"否\"", "countFlag == null?'否':countFlag == 1?'是':'否'", "activeAmount",
-                    "carePackage>0?carePackage>1?\"已使用\":\"可用\":\"不可用\"", "comeOnPackage>0?comeOnPackage>1?\"已使用\":\"可用\":\"不可用\"",
-                    "notStartCourseNum", "notStartVipCourseNum", "notStartPracticeCourseNum"};
-            HSSFWorkbook workbook = POIUtil.exportExcel(header, body, rows);
-            response.setContentType("application/octet-stream");
-            response.setHeader("Content-Disposition", "attachment;filename=employeeInfo-" + DateUtil.getDate(new Date()) + ".xls");
-
-            outputStream = response.getOutputStream();
-            workbook.write(outputStream);
-            outputStream.flush();
-        } catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            if (outputStream != null) {
-                try {
-                    outputStream.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-
     @ApiOperation(value = "分部云教练活动统计数据导出")
     @RequestMapping("export/countCloudTeacherActive")
     @PreAuthorize("@pcs.hasPermissions('export/countCloudTeacherActive')")

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

@@ -7,7 +7,6 @@ import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -29,17 +28,4 @@ public class ExtracurricularExercisesReplyController extends BaseController {
         queryInfo.setOrganIdList(organizationService.getEmployeeOrgan(queryInfo.getOrganIdList()));
         return succeed(extracurricularExercisesReplyService.findExtraExercises(queryInfo));
     }
-
-    @GetMapping("/exercisesSituationStatistics")
-    public HttpResponseResult exercisesSituationStatistics(String monday){
-        if(StringUtils.isNotBlank(monday)){
-            extracurricularExercisesReplyService.exercisesSituationStatistics2(monday);
-        }else{
-            String[] mondays=new String[]{"2020-05-13","2020-05-20","2020-05-27"};
-            for (String mondayStr : mondays) {
-                extracurricularExercisesReplyService.exercisesSituationStatistics2(mondayStr);
-            }
-        }
-        return succeed();
-    }
 }

+ 0 - 30
mec-web/src/main/java/com/ym/mec/web/controller/StudentExtracurricularExercisesSituationController.java

@@ -2,27 +2,17 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dto.TeacherServeDto;
-import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.tenant.TenantContextHolder;
-import com.ym.mec.util.date.DateUtil;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -85,26 +75,6 @@ public class StudentExtracurricularExercisesSituationController extends BaseCont
         }
     }
 
-    @GetMapping("/exercisesSituationStatistics")
-    public HttpResponseResult exercisesSituationStatistics(String startDay, String monday){
-    	Integer tenantId = TenantContextHolder.getTenantId();
-        if(StringUtils.isNotBlank(monday)){
-            studentServeService.exercisesSituationStatistics(monday, tenantId);
-        }
-        if(StringUtils.isNotBlank(startDay)){
-            LocalDate date=LocalDate.now();
-            if(StringUtils.isNotBlank(startDay)){
-                date= LocalDate.parse(startDay, DateUtil.dateFormatter);
-            }
-            while (date.isBefore(LocalDate.now())){
-                date = date.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
-                studentServeService.exercisesSituationStatistics(date.format(DateUtil.dateFormatter), tenantId);
-                date = date.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.SUNDAY.getValue()).plusDays(1);
-            }
-        }
-        return succeed();
-    }
-
     @ApiOperation(value = "教师作业布置提醒")
     @PostMapping("/teacherServeRemindPush")
     @PreAuthorize("@pcs.hasPermissions('exercisesSituation/teacherServeRemindPush')")

+ 0 - 7
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -469,13 +469,6 @@ public class StudentManageController extends BaseController {
         return succeed(studentService.queryOrganStudentOverView(ids, queryInfo));
     }
 
-    @ApiOperation(value = "云教练学员数据")
-    @GetMapping("/organStudentData")
-    @PreAuthorize("@pcs.hasPermissions('studentManage/organStudentData')")
-    public HttpResponseResult<StatDto> organStudentData(StudentQueryInfo queryInfo){
-        return succeed(studentService.organStudentData(queryInfo));
-    }
-
     @ApiOperation(value = "云教练活动统计")
     @GetMapping("/countCloudTeacherActive")
     @PreAuthorize("@pcs.hasPermissions('studentManage/countCloudTeacherActive')")

+ 0 - 7
mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

@@ -181,11 +181,4 @@ public class TeacherController extends BaseController {
     public Object queryStudent(QueryInfo queryInfo){
         return succeed(teacherService.queryStudent(queryInfo));
     }
-
-    @ApiOperation(value = "查询分部下教师关联的会员数据")
-    @GetMapping("/queryMemberStudentData")
-    @PreAuthorize("@pcs.hasPermissions('teacher/queryMemberStudentData')")
-    public HttpResponseResult<PageInfo<TeacherStudentDataDto>> queryMemberStudentData(TeacherServeQueryInfo queryInfo){
-        return succeed(teacherService.queryMemberStudentData(queryInfo));
-    }
 }

+ 2 - 43
mec-web/src/main/java/com/ym/mec/web/controller/education/EduStudentExtracurricularExercisesSituationController.java

@@ -1,22 +1,16 @@
 package com.ym.mec.web.controller.education;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.TeacherServeDto;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.tenant.TenantContextHolder;
-import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.time.DayOfWeek;
-import java.time.LocalDate;
 import java.util.List;
 
 /**
@@ -31,7 +25,7 @@ public class EduStudentExtracurricularExercisesSituationController extends BaseC
     @Autowired
     private StudentExtracurricularExercisesSituationService studentExtracurricularExercisesSituationService;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
     @Autowired
     private ExtracurricularExercisesMessageService extracurricularExercisesMessageService;
     @Autowired
@@ -71,33 +65,10 @@ public class EduStudentExtracurricularExercisesSituationController extends BaseC
         }
     }
 
-    @GetMapping("/exercisesSituationStatistics")
-    public HttpResponseResult exercisesSituationStatistics(String startDay, String monday){
-    	Integer tenantId = TenantContextHolder.getTenantId();
-        if(StringUtils.isNotBlank(monday)){
-            studentServeService.exercisesSituationStatistics(monday, tenantId);
-        }
-        if(StringUtils.isNotBlank(startDay)){
-            LocalDate date=LocalDate.now();
-            if(StringUtils.isNotBlank(startDay)){
-                date= LocalDate.parse(startDay, DateUtil.dateFormatter);
-            }
-            while (date.isBefore(LocalDate.now())){
-                date = date.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
-                studentServeService.exercisesSituationStatistics(date.format(DateUtil.dateFormatter), tenantId);
-                date = date.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.SUNDAY.getValue()).plusDays(1);
-            }
-        }
-        return succeed();
-    }
-
     @ApiOperation(value = "教师作业布置提醒")
     @PostMapping("/teacherServeRemindPush")
     public HttpResponseResult teacherServeRemindPush(@RequestBody List<TeacherServeDto> teacherServes) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
+        SysUser sysUser = sysUserService.getUser();
         studentExtracurricularExercisesSituationService.teacherServeRemindPush(teacherServes, sysUser.getId(), sysUser.getRealName());
         return succeed();
     }
@@ -105,30 +76,18 @@ public class EduStudentExtracurricularExercisesSituationController extends BaseC
     @ApiOperation(value = "教师服务课后作业")
     @GetMapping("/queryTeacherServeHomeworkDetail")
     public HttpResponseResult queryTeacherServeHomeworkDetail(TeacherServeHomeworkQueryInfo queryInfo) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
         return succeed(studentExtracurricularExercisesSituationService.queryTeacherServeHomeworkDetail(queryInfo));
     }
 
     @ApiOperation(value = "教师服务课外作业")
     @GetMapping("/queryTeacherServeExtraDetail")
     public HttpResponseResult queryTeacherServeExtraDetail(TeacherServeHomeworkQueryInfo queryInfo) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
         return succeed(studentExtracurricularExercisesSituationService.queryTeacherServeExtraDetail(queryInfo));
     }
 
     @ApiOperation(value = "乐团作业情况")
     @GetMapping("/musicGroupHomeworkStat")
     public HttpResponseResult musicGroupHomeworkStat(String musicGroupId, String startDay, String endDay) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
         return succeed(studentServeService.musicGroupHomeworkStat(musicGroupId, null, startDay, endDay));
     }
 

+ 4 - 5
mec-web/src/main/java/com/ym/mec/web/controller/education/OaContractsController.java

@@ -1,9 +1,6 @@
 package com.ym.mec.web.controller.education;
 
 import com.ym.mec.biz.dal.dto.OAFinancialDto;
-import com.ym.mec.biz.dal.dto.ReturnFeeDto;
-import com.ym.mec.biz.dal.entity.FinancialExpenditure;
-import com.ym.mec.biz.dal.entity.MusicGroupQuit;
 import com.ym.mec.biz.service.ContractService;
 import com.ym.mec.biz.service.FinancialExpenditureService;
 import com.ym.mec.common.controller.BaseController;
@@ -11,9 +8,11 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
 import java.util.Map;
 
 @RequestMapping()

+ 2 - 6
mec-web/src/main/resources/exportColumnMapper.ini

@@ -238,10 +238,6 @@ fieldColumns = ["id", "realName", "organName", "lockFlag == 0?'正常':lockFlag
 headColumns = ["编号", "姓名", "手机号", "微信","声部", "所在城市", "工作意向", "信息来源","下次沟通时间","入职时间","职位", "分部", "人员状态", "证件号码","年龄","性别","银行卡", "开户行", "紧急联系人", "紧急联系人关系","紧急联系人电话","最后一次操作时间","HRBP", "离职时间"]
 fieldColumns = ["id", "realName", "mobileNo", "wechatNo", "subjectName", "liveCity", "intentionCity", "sourceFrom", "nextVisitDateStr", "entryDateStr", "position.msg","organName","status.desc", "idCard", "age", "gender?'男':'女'", "bankCardNo","bankAddress","emergencyContactName", "emergencyContactRelation", "emergencyContactPhone", "updateTime", "hrbpName","resignationDateStr"]
 
-[分部下教师关联的会员数据导出]
-headColumns = ["老师编号", "老师姓名", "学员总数", "使用人数", "使用人数比", "付费学员数量", "会员占比"]
-fieldColumns = ["teacherId", "teacherName", "totalStudentNum", "cloudStudyUseStudentNum", "cloudStudyUseStudentDuty+'%'", "vipStudentNum", "vipStudentDuty+'%'"]
-
 [分部云教练学员数据预览导出]
 headColumns = ["排名", "分部", "学员总数", "目标人数", "活跃人数", "使用人数", "新增使用人数", "使用比例", "付费会员数", "付费会员占比"]
 fieldColumns = ["index","organName", "totalStudentNum", "targetNum", "cloudStudyLivelyStudentNum", "cloudStudyUseStudentNum", "newCloudStudyStudentNum", "cloudStudyUseStudentDuty+'%'", "vipStudentNum", "vipStudentDuty+'%'"]
@@ -251,8 +247,8 @@ headColumns = ["排名", "分部", "学员总数", "活跃人数", "活跃人数
 fieldColumns = ["index", "organName", "totalStudentNum", "cloudStudyLivelyStudentNum", "cloudStudyLivelyStudentDuty+'%'", "cloudStudyUseStudentNum", "newCloudStudyStudentNum", "cloudStudyUseStudentDuty+'%'", "vipStudentNum", "vipStudentDuty+'%'", "newMemberStudentNum"]
 
 [分部云教练学员训练数据导出]
-headColumns = ["学员编号", "学员","年级","班级", "手机号", "是否新用户", "是否激活", "训练总时长", "连续训练天数", "乐团", "乐团主管", "所属学校", "指导老师", "声部", "是否有小课","训练次数", "训练天数", "训练平均时长", "会员有效期", "是否服务", "是否运营", "是否云教练活动目标学员", "活动消费金额", "关心包", "加油包", "未上课数", "vip课剩余课时", "网管课剩余课时"]
-fieldColumns = ["studentId", "studentName","currentGradeNum","currentClass", "phone", "newUser?'是':'否'", "enable?'是':'否'", "cloudStudyUseTime+'分钟'", "cloudStudyRunningDays+'天'", "musicGroupNames", "educationName", "schoolNames",         "teacherName", "subjectName", "hasVipGroup>0?'是':'否'", "cloudStudyUseNum+'次'", "cloudStudyUseDays+'天'",         "cloudStudyUseAvgTime+'分钟'", "membershipEndTime", "serviceTag>0?'是':'否'", "operatingTag>0?'是':'否'","countFlag == null?'否':countFlag == 1?'是':'否'","activeAmount",         "carePackage>0?carePackage>1?'已使用':'可用':'不可用'", "comeOnPackage>0?comeOnPackage>1?'已使用':'可用':'不可用'",         "notStartCourseNum", "notStartVipCourseNum", "notStartPracticeCourseNum"]
+headColumns = ["学员编号", "学员","年级","班级", "手机号", "是否新用户", "是否激活", "训练总时长", "连续训练天数", "乐团", "乐团主管", "所属学校", "声部", "是否有小课","训练次数", "训练天数", "训练平均时长", "会员有效期", "是否服务", "是否运营", "是否云教练活动目标学员", "活动消费金额", "关心包", "加油包", "未上课数", "vip课剩余课时", "网管课剩余课时"]
+fieldColumns = ["studentId", "studentName","currentGradeNum","currentClass", "phone", "newUser?'是':'否'", "enable?'是':'否'", "cloudStudyUseTime+'分钟'", "cloudStudyRunningDays+'天'", "musicGroupNames", "educationName", "schoolNames","subjectName", "hasVipGroup>0?'是':'否'", "cloudStudyUseNum+'次'", "cloudStudyUseDays+'天'",         "cloudStudyUseAvgTime+'分钟'", "membershipEndTime", "serviceTag>0?'是':'否'", "operatingTag>0?'是':'否'","countFlag == null?'否':countFlag == 1?'是':'否'","activeAmount",         "carePackage>0?carePackage>1?'已使用':'可用':'不可用'", "comeOnPackage>0?comeOnPackage>1?'已使用':'可用':'不可用'",         "notStartCourseNum", "notStartVipCourseNum", "notStartPracticeCourseNum"]
 
 [分部云教练活动统计数据导出]
 headColumns = ["分部", "购买人数", "购买金额", "目标金额", "人均购买金额", "目标人数", "目标达成率"]