Browse Source

Merge branch 'saas' into master_saas

yonge 2 years ago
parent
commit
50cabc9f26
25 changed files with 327 additions and 28 deletions
  1. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  2. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicCompareRecordDao.java
  3. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportTeacherSalaryDto.java
  4. 84 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherCloudTrainingDto.java
  5. 47 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherCloudTrainingQueryInfo.java
  6. 13 7
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java
  7. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentStatisticsService.java
  8. 6 2
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicCompareRecordService.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  10. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java
  11. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  12. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  13. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentStatisticsServiceImpl.java
  14. 18 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicCompareRecordServiceImpl.java
  15. 0 6
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  16. 2 2
      mec-biz/src/main/resources/config/mybatis/CourseConvertLogMapper.xml
  17. 2 2
      mec-biz/src/main/resources/config/mybatis/ExtensionOrderMapper.xml
  18. 2 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupCalenderRefundPeriodMapper.xml
  19. 9 0
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  20. 16 0
      mec-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml
  21. 39 0
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  22. 1 0
      mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java
  23. 2 2
      mec-web/src/main/java/com/ym/mec/web/controller/StudentStatisticsController.java
  24. 38 1
      mec-web/src/main/java/com/ym/mec/web/controller/SwTempJcController.java
  25. 2 2
      mec-web/src/main/resources/exportColumnMapper.ini

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -10,6 +10,7 @@ import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.vo.StudentPaymentOrderVo;
 import com.ym.mec.common.dal.BaseDAO;
+
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -79,6 +80,8 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * @return
      */
     StudentPaymentOrder findOrderByOrderNo(@Param("orderNo") String orderNo);
+    
+    List<StudentPaymentOrder> findOrderByOrderNos(@Param("orderNoList") List<String> orderNoList);
 
     /**
      * 根据批次号查询

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicCompareRecordDao.java

@@ -5,7 +5,9 @@ import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
 import com.ym.mec.biz.dal.entity.SysMusicCompareWeekData;
 import com.ym.mec.biz.dal.enums.HeardLevelEnum;
 import com.ym.mec.biz.dal.page.ExportCompareQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherCloudTrainingQueryInfo;
 import com.ym.mec.common.dal.BaseDAO;
+
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -117,4 +119,8 @@ public interface SysMusicCompareRecordDao extends BaseDAO<Long, SysMusicCompareR
     void deleteDayData(@Param("date") String date);
 
     void init(String date);
+    
+    List<TeacherCloudTrainingDto> queryTeacherTrainingList(@Param("queryInfo") TeacherCloudTrainingQueryInfo queryInfo);
+    
+    int queryTeacherTrainingCount(@Param("queryInfo") TeacherCloudTrainingQueryInfo queryInfo);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportTeacherSalaryDto.java

@@ -116,6 +116,17 @@ public class ExportTeacherSalaryDto{
     @ApiModelProperty(value = "课程收入")
     private BigDecimal courseIncome;
 
+    @ApiModelProperty(value = "云教练转结")
+    private BigDecimal cloudReverse;
+
+    public BigDecimal getCloudReverse() {
+        return cloudReverse;
+    }
+
+    public void setCloudReverse(BigDecimal cloudReverse) {
+        this.cloudReverse = cloudReverse;
+    }
+
     public BigDecimal getCourseIncome() {
         return courseIncome;
     }

+ 84 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherCloudTrainingDto.java

@@ -0,0 +1,84 @@
+package com.ym.mec.biz.dal.dto;
+
+public class TeacherCloudTrainingDto {
+
+	private Integer organId;
+	
+	private String organName;
+	
+	private Integer subjectId;
+	
+	private String subjectName;
+	
+	private Integer userId;
+	
+	private String username;
+	
+	private int trianingDays;
+	
+	private int trainingDurationSeconds;
+
+	public Integer getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(Integer organId) {
+		this.organId = organId;
+	}
+
+	public String getOrganName() {
+		return organName;
+	}
+
+	public void setOrganName(String organName) {
+		this.organName = organName;
+	}
+
+	public Integer getSubjectId() {
+		return subjectId;
+	}
+
+	public void setSubjectId(Integer subjectId) {
+		this.subjectId = subjectId;
+	}
+
+	public String getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(String subjectName) {
+		this.subjectName = subjectName;
+	}
+
+	public Integer getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Integer userId) {
+		this.userId = userId;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public int getTrianingDays() {
+		return trianingDays;
+	}
+
+	public void setTrianingDays(int trianingDays) {
+		this.trianingDays = trianingDays;
+	}
+
+	public int getTrainingDurationSeconds() {
+		return trainingDurationSeconds;
+	}
+
+	public void setTrainingDurationSeconds(int trainingDurationSeconds) {
+		this.trainingDurationSeconds = trainingDurationSeconds;
+	}
+}

+ 47 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherCloudTrainingQueryInfo.java

@@ -0,0 +1,47 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+public class TeacherCloudTrainingQueryInfo extends QueryInfo {
+
+    private Integer teacherId;
+
+    private String startTime;
+
+    private String endTime;
+
+    private String organIdList;
+
+    public String getOrganIdList() {
+		return organIdList;
+	}
+
+	public void setOrganIdList(String organIdList) {
+		this.organIdList = organIdList;
+	}
+
+	public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+}

+ 13 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -1,7 +1,17 @@
 package com.ym.mec.biz.service;
 
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+
 import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.dto.PageInfoOrder;
+import com.ym.mec.biz.dal.dto.SporadicChargeInfoDto;
+import com.ym.mec.biz.dal.dto.StudentPaymentOrderDto;
+import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
 import com.ym.mec.biz.dal.entity.ActivityUserMapper;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
@@ -19,12 +29,6 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.thirdparty.adapay.entity.BaseResult;
 import com.ym.mec.thirdparty.adapay.entity.HfMerchantConfig;
-import org.apache.ibatis.annotations.Param;
-
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
 
 public interface StudentPaymentOrderService extends BaseService<Long, StudentPaymentOrder> {
 
@@ -60,6 +64,8 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
      * @return
      */
     StudentPaymentOrder findOrderByOrderNo(String orderNo);
+    
+    List<StudentPaymentOrder> findOrderByOrderNos(List<String> orderNoList);
 
     /**
      * 根据批次号查询

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

@@ -17,6 +17,8 @@ public interface StudentStatisticsService extends BaseService<Integer, StudentSt
     //定时任务
     void updateStudentStatistics();
 
+    int countStatistics(StudentStatisticsQueryInfo queryInfo);
+
     //分页查询学员小课数据
     PageInfo<StudentStatisticsDto> queryStatisticsPage(StudentStatisticsQueryInfo queryInfo);
 

+ 6 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicCompareRecordService.java

@@ -1,17 +1,19 @@
 package com.ym.mec.biz.service;
 
+import java.util.Map;
+
 import com.ym.mec.biz.dal.dao.SysMusicCompareRecordDao;
 import com.ym.mec.biz.dal.dto.CountStudentTrainDataDto;
 import com.ym.mec.biz.dal.dto.MusicCompareRankingDto;
 import com.ym.mec.biz.dal.dto.SoundCompareHelper;
 import com.ym.mec.biz.dal.dto.StatDto;
+import com.ym.mec.biz.dal.dto.TeacherCloudTrainingDto;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
 import com.ym.mec.biz.dal.page.SysMusicCompareRecordQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherCloudTrainingQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
-import java.util.Map;
-
 public interface SysMusicCompareRecordService extends BaseService<Long, SysMusicCompareRecord> {
 
     SysMusicCompareRecordDao getDao();
@@ -97,4 +99,6 @@ public interface SysMusicCompareRecordService extends BaseService<Long, SysMusic
     int queryCurrentDatePlayTimeByUserId(Integer userId);
 
     void initSysMusicCompareDayData();
+    
+    PageInfo<TeacherCloudTrainingDto> queryTeacherTraining(TeacherCloudTrainingQueryInfo queryInfo);
 }

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

@@ -1041,12 +1041,12 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
         for (ExportTeacherSalaryDto exportTeacherSalaryDto : exportTeacherSalaryDtos) {
             BigDecimal castOrDefault = courseCast.getOrDefault(exportTeacherSalaryDto.getCourseScheduleId(), BigDecimal.ZERO);
+            exportTeacherSalaryDto.setCloudReverse(castOrDefault);
             if(!courseIncomeMap.containsKey(exportTeacherSalaryDto.getCourseScheduleId())){
                 exportTeacherSalaryDto.setCourseIncome(BigDecimal.ZERO);
             }else{
                 exportTeacherSalaryDto.setCourseIncome(courseIncomeMap.get(exportTeacherSalaryDto.getCourseScheduleId()));
             }
-            exportTeacherSalaryDto.setCourseIncome(exportTeacherSalaryDto.getCourseIncome().add(castOrDefault));
         }
 
         exportTeacherSalaryDtos.sort(Comparator.comparing(ExportTeacherSalaryDto::getTeacherId));

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

@@ -2863,7 +2863,7 @@ public class ExportServiceImpl implements ExportService {
                     new String[]{"studentBasicInfo.organName", "studentBasicInfo.userName", "studentBasicInfo.userId",
                             "studentBasicInfo.phone", "studentBasicInfo.subjectName", "studentBasicInfo.cooperationOrganName", "studentBasicInfo.grade",
                             "studentBasicInfo.studentStatus == null?'':studentBasicInfo.studentStatus == 'LOST' ? '流失':studentBasicInfo.studentStatus == 'NORMAL' ? " +
-                                    "'在读':studentBasicInfo.studentStatus == 'SLEEPY' ? '沉睡':studentBasicInfo.studentStatus == 'PAUSE' ? '暂停':'其他'",
+                                    "'在读':studentBasicInfo.studentStatus == 'SLEEPY' ? '沉睡':studentBasicInfo.studentStatus == 'PAUSE' ? '暂停':studentBasicInfo.studentStatus == 'HOLIDAY_COURSE' ? '假期上课':'其他'",
                             "noScheduleNum", "totalCourseNum", "overCourseNum", "subCourseNum",  "subTotalCourse", "preCourseFee", "firstCourseTime", "lastCourseTime","musicDirectorId", "musicDirectorName",
                             "studentBasicInfo.subjectTeacherId", "studentBasicInfo.subjectTeacherName", "latelyCourseConsumer", "visitNum",
                             "visitReason", "lastVisitTime"}, rows);

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

@@ -121,9 +121,12 @@ public class StudentManageServiceImpl implements StudentManageService {
         if(queryInfo.getTenantId() == 28){
         	queryInfo.setOrganId(null);
         	jmCount = studentManageDao.countStudentByOrganId(params);
+            params.put("offset", pageInfo.getOffset());
         	dataList = studentManageDao.findStudentsByOrganId(params);
         	
         	queryInfo.setTenantId(1);
+        	params.clear();
+            MapUtil.populateMap(params, queryInfo);
         }
 
         if(StringUtils.isNotEmpty(queryInfo.getOrganId())){

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -31,6 +31,7 @@ import com.ym.mec.thirdparty.adapay.entity.HfMerchantConfig;
 import com.ym.mec.thirdparty.yqpay.*;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -220,6 +221,11 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     }
 
     @Override
+	public List<StudentPaymentOrder> findOrderByOrderNos(List<String> orderNoList) {
+        return studentPaymentOrderDao.findOrderByOrderNos(orderNoList);
+	}
+
+	@Override
     public List<StudentPaymentOrder> queryByBatchNo(Integer userId, String batchNo, DealStatusEnum status) {
         return studentPaymentOrderDao.queryByBatchNo(userId, batchNo, status);
     }
@@ -635,12 +641,15 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         if(queryInfo.getTenantId() == 28){
         	queryInfo.setOrganId(null);
         	jmCount = findCount(params);
+            params.put("offset", pageInfo.getOffset());
         	dataList = studentPaymentOrderDao.queryPageOrder(params);
         	
         	queryInfo.setTenantId(1);
         	if(StringUtils.isBlank(queryInfo.getMerNos())){
         		queryInfo.setMerNos("H004236");
         	}
+        	params.clear();
+        	MapUtil.populateMap(params, queryInfo);
         }
         
         int count = this.findCount(params);

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentStatisticsServiceImpl.java

@@ -86,6 +86,16 @@ public class StudentStatisticsServiceImpl extends BaseServiceImpl<Integer, Stude
 		redisTemplate.opsForValue().set("updateStudentStatisticsNum:",num);
 	}
 
+	public int countStatistics(StudentStatisticsQueryInfo queryInfo){
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+		if(StringUtils.isNotEmpty(queryInfo.getOrganId())){
+			List<Integer> organIdList = Arrays.stream(queryInfo.getOrganId().split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
+			params.put("organIdList",organIdList);
+		}
+		return studentStatisticsDao.countStatistics(params);
+	}
+
 	@Override
 	public PageInfo<StudentStatisticsDto> queryStatisticsPage(StudentStatisticsQueryInfo queryInfo) {
 		PageInfo<StudentStatisticsDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());

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

@@ -14,6 +14,7 @@ import com.ym.mec.biz.dal.enums.HeardLevelEnum;
 import com.ym.mec.biz.dal.enums.IndexDataType;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.page.SysMusicCompareRecordQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherCloudTrainingQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
@@ -481,4 +482,21 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		sysMusicCompareRecordDao.deleteDayData(now);
 		sysMusicCompareRecordDao.init(now);
 	}
+
+	@Override
+	public PageInfo<TeacherCloudTrainingDto> queryTeacherTraining(TeacherCloudTrainingQueryInfo queryInfo) {
+		PageInfo<TeacherCloudTrainingDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+
+		List<TeacherCloudTrainingDto> dataList = null;
+		int count = sysMusicCompareRecordDao.queryTeacherTrainingCount(queryInfo);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			dataList = sysMusicCompareRecordDao.queryTeacherTrainingList(queryInfo);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

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

@@ -374,9 +374,6 @@
             <if test="userId != null">
                 AND cgsm.user_id_ = #{userId}
             </if>
-            <if test="tenantId != null">
-                AND cgsm.tenant_id_ = #{tenantId}
-            </if>
             <if test="search != null and search != ''">
                 AND cg.name_ LIKE CONCAT('%',#{search},'%')
             </if>
@@ -394,9 +391,6 @@
             <if test="userId != null">
                 AND cgsm.user_id_ = #{userId}
             </if>
-            <if test="tenantId != null">
-                AND cgsm.tenant_id_ = #{tenantId}
-            </if>
             <if test="search != null and search != ''">
                 AND cg.name_ LIKE CONCAT('%',#{search},'%')
             </if>

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

@@ -66,8 +66,8 @@
 			<if test="musicGroupId != null and musicGroupId != ''">
 				AND ccl.music_group_id_ = #{musicGroupId}
 			</if>
-			<if test="operatorName != null and operatorName != ''">
-				AND operator_name_ LIKE CONCAT('%',#{operatorName},'%')
+			<if test="operator != null and operator != ''">
+				AND operator_name_ LIKE CONCAT('%',#{operator},'%')
 			</if>
 			<if test="operatorDate != null and operatorDate != ''">
 				AND DATE_FORMAT(ccl.create_time_,'%Y-%m-%d') = #{operatorDate}

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

@@ -79,9 +79,9 @@
 
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="ExtensionOrder" parameterType="map">
-		SELECT eo.order_no_,spo.expect_amount_ order_amount_, eo.order_type_,ifnull(spo.pay_time_,eo.pay_time_), ifnull(u.real_name_,u.username_) extension_user_,
+		SELECT eo.order_no_,eo.order_amount_, eo.order_type_,eo.pay_time_, ifnull(u.real_name_,u.username_) extension_user_,
 		eo.extension_fee_
-		FROM extension_order eo join student_payment_order spo on eo.order_no_ = spo.order_no_
+		FROM extension_order eo 
 		left join sys_user u on eo.extension_user_id_ = u.id_
 		<where>
 			<if test="extensionUserId != null">

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

@@ -108,10 +108,10 @@
 			mgpc.status_ IN ('OPEN','OVER','PAID')
 			<if test="errorType != null and errorType != ''">
 				<if test="errorType == 'COOPERATION_PAYMENT_ERROR'">
-					AND TIMESTAMPDIFF(DAY,crp.refund_date_,DATE_FORMAT(NOW(),'%Y-%m-%d')) >= 1
+					AND TIMESTAMPDIFF(DAY,crp.refund_date_,DATE_FORMAT(NOW(),'%Y-%m-%d')) >= 1 AND refund_flag_ = 0
 				</if>
 				<if test="errorType == 'COOPERATION_PAYMENT_ALERT'">
-					AND TIMESTAMPDIFF(DAY,crp.refund_date_,DATE_FORMAT(NOW(),'%Y-%m-%d')) BETWEEN -2 AND 0
+					AND TIMESTAMPDIFF(DAY,crp.refund_date_,DATE_FORMAT(NOW(),'%Y-%m-%d')) BETWEEN -2 AND 0 AND refund_flag_ = 0
 				</if>
 			</if>
 			<if test="organId != null and organId != ''">

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -540,6 +540,15 @@
         FROM student_payment_order
         WHERE order_no_ = #{orderNo}
     </select>
+    
+    <select id="findOrderByOrderNos" resultMap="StudentPaymentOrder">
+        SELECT *
+        FROM student_payment_order
+        WHERE order_no_ in 
+        <foreach collection="orderNoList" item="orderNo" index="index" open="(" close=")" separator=",">
+            #{orderNo}
+        </foreach>
+    </select>
 
     <select id="queryByDealStatus" resultMap="StudentPaymentOrder" parameterType="map">
         SELECT *

+ 16 - 0
mec-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -517,4 +517,20 @@
 			</if>
 		</where>
 	</select>
+	
+	<select id="queryTeacherTrainingList" resultType=com.ym.mec.biz.dal.dto.TeacherCloudTrainingDto>
+		SELECT o.`name_` organName,ifnull(u.`real_name_`,u.`username_` ) username,GROUP_CONCAT(distinct s.`name_`)  subjectName,sum(cr.`play_time_`) trainingDurationSeconds,count(DISTINCT(date(cr.`create_time_`)))  trianingDays FROM `sys_music_compare_record` cr 
+		LEFT JOIN `teacher` t on t.`id_` = cr.`user_id_` and cr.`client_id_` = 'teacher'
+		LEFT JOIN `subject` s on find_in_set(s.`id_`,t.`subject_id_` ) 
+		LEFT JOIN `sys_user` u on u.`id_` = cr.`user_id_` 
+		LEFT JOIN `organization` o on o.`id_` = t.`organ_id_` 
+		WHERE cr.`client_id_` = 'teacher' and t.`organ_id_` in (#{queryInfo.organIdList}) AND date(cr.`create_time_`) BETWEEN #{queryInfo.startTime} and #{queryInfo.endTime} and t.job_nature_ = 'FULL_TIME'
+		GROUP BY cr.`user_id_` 
+	</select>
+	
+	<select id="queryTeacherTrainingCount" resultType="int">
+		SELECT count(distinct cr.user_id_) FROM `sys_music_compare_record` cr 
+		LEFT JOIN `teacher` t on t.`id_` = cr.`user_id_` and cr.`client_id_` = 'teacher'
+		WHERE cr.`client_id_` = 'teacher' and t.`organ_id_` in (#{queryInfo.organIdList}) AND date(cr.`create_time_`) BETWEEN #{queryInfo.startTime} and #{queryInfo.endTime} and t.job_nature_ = 'FULL_TIME'
+	</select>
 </mapper>

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

@@ -142,6 +142,9 @@ public class ExportController extends BaseController {
     
     @Autowired
     private ImLiveBroadcastRoomMemberService imLiveBroadcastRoomMemberService;
+    
+    @Autowired
+    private SysMusicCompareRecordService sysMusicCompareRecordService;
 
     @ApiOperation(value = "获取可导出字段")
     @RequestMapping("export/getFields")
@@ -2912,4 +2915,40 @@ public class ExportController extends BaseController {
             }
         }
     }
+    
+    @ApiOperation(value = "全职老师云教练训练列表")
+    @PostMapping("export/teacherCloudTrainingList")
+    @PreAuthorize("@pcs.hasPermissions('export/teacherCloudTrainingList')")
+    public void exportTeacherCloudTrainingList(HttpServletResponse response, TeacherCloudTrainingQueryInfo queryInfo) throws IOException {
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
+        
+        List<TeacherCloudTrainingDto> rows = sysMusicCompareRecordService.queryTeacherTraining(queryInfo).getRows();
+        if (rows.size() < 1) {
+            throw new BizException("没有可导出数据");
+        }
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "姓名", "声部", "总练习时长(秒)",
+                    "训练天数"}, new String[]{
+                    "organName", "username", "subjectName", "trainingDurationSeconds", "trianingDays"}, rows);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attac:wq" +
+                    "hment;filename=teacherCloudTrainingList-" + 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();
+                }
+            }
+        }
+    }
 }

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

@@ -110,6 +110,7 @@ public class IndexController extends BaseController {
 		queryInfo.setOrganId(organizationService.getEmployeeOrgan(queryInfo.getOrganId()));
 		return succeed(indexService.getIndexBaseData(queryInfo));
 	}
+
 	@GetMapping("/indexCoop")
 	public HttpResponseResult<List<DecimalMapDto>> indexCoop(String organId, String startTime, String endTime){
 		return succeed(indexService.indexCoop(organId,startTime,endTime));

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/StudentStatisticsController.java

@@ -107,8 +107,8 @@ public class StudentStatisticsController extends BaseController {
     public HttpResponseResult exportStudentSmallClassStatisticsSum(StudentStatisticsQueryInfo queryInfo) throws IOException {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(),queryInfo.getOrganId(),sysUser.getIsSuperAdmin()));
-        PageInfo<StudentStatisticsDto> pageList = studentStatisticsService.queryStatisticsPage(queryInfo);
-        if (pageList.getTotal() <= 0) {
+        int countStatistics = studentStatisticsService.countStatistics(queryInfo);
+        if (countStatistics <= 0) {
             throw new BizException("没有可导出的记录");
         }
         ManagerDownload managerDownload = exportService.saveManagerDownload(ExportTypeEnum.STUDENT_SMALL_CLASS_STATISTICS,sysUser.getId());

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

@@ -2,17 +2,27 @@ package com.ym.mec.web.controller;
 
 import io.swagger.annotations.ApiOperation;
 
+import java.text.SimpleDateFormat;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.ym.mec.biz.dal.entity.ExtensionOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.page.CourseScheduleSWQueryInfo;
 import com.ym.mec.biz.dal.page.ExtensionSWQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleSwService;
 import com.ym.mec.biz.service.ExtensionOrderService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.page.PageInfo;
 
 @RequestMapping("swTempJc")
 @RestController
@@ -23,6 +33,11 @@ public class SwTempJcController extends BaseController {
 	
 	@Autowired
 	private ExtensionOrderService extensionOrderService;
+	
+	@Autowired
+	private StudentPaymentOrderService studentPaymentOrderService;
+	
+	private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
     @ApiOperation(value = "课表查询")
     @GetMapping("/queryPageForCourseSchedule")
@@ -35,6 +50,28 @@ public class SwTempJcController extends BaseController {
     @GetMapping("/queryPageForExtensionOrder")
     @PreAuthorize("@pcs.hasPermissions('swTempJc/queryPageForExtensionOrder')")
     public Object queryPageForExtensionOrder(ExtensionSWQueryInfo queryInfo){
-        return succeed(extensionOrderService.queryPage(queryInfo));
+    	
+    	PageInfo<ExtensionOrder> pageInfo = extensionOrderService.queryPage(queryInfo);
+    	
+    	List<ExtensionOrder> extensionOrderList = pageInfo.getRows();
+    	
+    	List<String> orderNoList = extensionOrderList.stream().map(t -> t.getOrderNo()).collect(Collectors.toList());
+    	
+    	if(orderNoList != null && orderNoList.size() > 0){
+    		
+    		Map<String,StudentPaymentOrder> map = studentPaymentOrderService.findOrderByOrderNos(orderNoList).stream().collect(Collectors.toMap(StudentPaymentOrder :: getOrderNo, Function.identity()));
+
+    		StudentPaymentOrder spo = null;
+        	for(ExtensionOrder eo : extensionOrderList){
+        		spo = map.get(eo.getOrderNo());
+        		if(spo == null){
+        			continue;
+        		}
+        		eo.setOrderAmount(spo.getExpectAmount());
+        		eo.setPayTime(sdf.format(spo.getPayTime()));
+        	}
+    	}
+    	
+        return succeed(pageInfo);
     }
 }

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

@@ -67,8 +67,8 @@ headColumns = ["交易流水号", "订单号", "订单日期", "交易类型", "
 fieldColumns = ["transNo", "orderNo", "createTime", "type.desc", "expectAmount", "actualAmount", "user.username", "user.phone", "paymentChannel", "merNos", "status.msg", "memo", "paymentChannel.desc"]
 
 [导出老师课酬]
-headColumns = ["课时编号", "老师编号", "老师姓名", "老师分部", "工作类别","课程分部", "课程组编号", "课程班名称", "乐团模式", "vip活动名称", "Vip课程类型", "阶梯奖励名称", "线上课/线下课", "线上课单价", "线下课单价","课程类别", "课时时长", "实际上课时长", "上课日期","上课时间", "教师签到状态", "教师签退状态", "教师签到时间", "教师签退时间", "考勤申诉处理状态", "处理意见","主辅", "上课地点", "应到学员", "学员签到时间", "学员签退时间", "课时课酬", "阶梯奖励", "扣款原因", "收入"]
-fieldColumns = ["courseScheduleId", "teacherId", "teacherName", "teacherOrganName", "jobType", "courseScheduleOrganName", "groupId", "groupName", "changeType", "vipActiveName", "vipCategoryName", "activeName", "teachMode", "onlineClassesUnitPrice", "offlineClassesUnitPrice", "courseScheduleType", "signCourseScheduleTime", "currentTime", "classDate", "courseScheduleStartTime", "signInStatus", "signOutStatus", "signInTime", "signOutTime", "complaintsStatus", "disposeContent", "teacherRole", "address", "studentNum", "studentSignInTime", "studentSignOutTime", "price", "rewards", "deductionReason", "courseIncome"]
+headColumns = ["课时编号", "老师编号", "老师姓名", "老师分部", "工作类别","课程分部", "课程组编号", "课程班名称", "乐团模式", "vip活动名称", "Vip课程类型", "阶梯奖励名称", "线上课/线下课", "线上课单价", "线下课单价","课程类别", "课时时长", "实际上课时长", "上课日期","上课时间", "教师签到状态", "教师签退状态", "教师签到时间", "教师签退时间", "考勤申诉处理状态", "处理意见","主辅", "上课地点", "应到学员", "学员签到时间", "学员签退时间", "课时课酬", "阶梯奖励", "扣款原因", "收入", "云教练转结"]
+fieldColumns = ["courseScheduleId", "teacherId", "teacherName", "teacherOrganName", "jobType", "courseScheduleOrganName", "groupId", "groupName", "changeType", "vipActiveName", "vipCategoryName", "activeName", "teachMode", "onlineClassesUnitPrice", "offlineClassesUnitPrice", "courseScheduleType", "signCourseScheduleTime", "currentTime", "classDate", "courseScheduleStartTime", "signInStatus", "signOutStatus", "signInTime", "signOutTime", "complaintsStatus", "disposeContent", "teacherRole", "address", "studentNum", "studentSignInTime", "studentSignOutTime", "price", "rewards", "deductionReason", "courseIncome", "cloudReverse"]
 
 [导出老师结转奖励]
 headColumns = ["课程组编号", "课程组名称", "分部", "指导老师", "是否结转", "结转金额", "结转日期", "备注"]