yonge 4 years ago
parent
commit
c85ed566d6

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

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
+
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
@@ -1575,4 +1576,12 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return
      */
     List<Map<Integer, Integer>> queryHasReatClass(@Param("classGroupIds") Set<String> classGroupIds, @Param("teacherId") String teacherId);
+
+    
+    /**
+     * 查询班级未上的课程类型对应的时长
+     * @param classGroupIdList
+     * @return
+     */
+    List<RemainCourseTypeDurationDto> queryRemainCourseTypeDuration(String classGroupIdList);
 }

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RemainCourseTypeDurationDto.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
+
+public class RemainCourseTypeDurationDto {
+
+	private CourseScheduleType courseType;
+	
+	private Integer remainMinutes;
+
+	public CourseScheduleType getCourseType() {
+		return courseType;
+	}
+
+	public void setCourseType(CourseScheduleType courseType) {
+		this.courseType = courseType;
+	}
+
+	public Integer getRemainMinutes() {
+		return remainMinutes;
+	}
+
+	public void setRemainMinutes(Integer remainMinutes) {
+		this.remainMinutes = remainMinutes;
+	}
+}

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalender.java

@@ -128,6 +128,10 @@ public class MusicGroupPaymentCalender {
 	private java.util.Date createTime;
 
 	private java.util.Date updateTime;
+	
+	private String attribute1;
+	
+	private String attribute2;
 
 	private String studentIds;
 
@@ -328,6 +332,22 @@ public class MusicGroupPaymentCalender {
 		this.paymentAmount = paymentAmount;
 	}
 
+	public String getAttribute1() {
+		return attribute1;
+	}
+
+	public void setAttribute1(String attribute1) {
+		this.attribute1 = attribute1;
+	}
+
+	public String getAttribute2() {
+		return attribute2;
+	}
+
+	public void setAttribute2(String attribute2) {
+		this.attribute2 = attribute2;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -438,4 +438,11 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @describe 获取班级信息
      */
     TeacherClassHeadInfo findTeacherClassGroupInfoByCourseId(Integer courseId);
+    
+    /**
+     * 查询指定班级剩余未上课程类型的时长
+     * @param classGroupIdList
+     * @return
+     */
+    List<RemainCourseTypeDurationDto> queryRemainCourseTypeDuration(String classGroupIdList);
 }

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

@@ -18,7 +18,7 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	 * @return
 	 */
 	Long create(MusicGroupPaymentCalender musicGroupPaymentCalender);
-
+	
 	/**
 	 * 获取明细
 	 * @param id

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -2894,4 +2894,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         return classGroup;
     }
+
+	@Override
+	public List<RemainCourseTypeDurationDto> queryRemainCourseTypeDuration(String classGroupIdList) {
+		return courseScheduleDao.queryRemainCourseTypeDuration(classGroupIdList);
+	}
 }

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

@@ -312,7 +312,7 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 		Map<CourseSchedule.CourseScheduleType, List<CourseSchedule>> typeCourseMap = courseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getType));
 		for (Map.Entry<CourseSchedule.CourseScheduleType, List<CourseSchedule>> typeCoursesEntry : typeCourseMap.entrySet()) {
 			MusicGroupPaymentCalenderCourseSettings musicGroupPaymentCalenderCourseSettings = courseTypeCourseSettingMap.get(typeCoursesEntry.getKey());
-			if(musicGroupPaymentCalenderCourseSettings.isIsStudentOptional()){
+			if(musicGroupPaymentCalenderCourseSettings.getIsStudentOptional()){
 				//如果可选,则必须缴费才能排课
 				long paymentStudentNum = allStudentPaymentOrderDetails.stream().filter(spd -> musicGroupPaymentCalenderCourseSettings.getCourseType().getCode().equals(spd.getType().getCode())).count();
 				if(paymentStudentNum<studentIds.size()){

+ 43 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -1,17 +1,58 @@
 package com.ym.mec.biz.service.impl;
 
+import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY;
+import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_RENEW;
+
+import java.math.BigDecimal;
+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.Map.Entry;
+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.Isolation;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupOrganizationCourseSettingsDao;
+import com.ym.mec.biz.dal.dao.MusicGroupOrganizationCourseSettingsDetailDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.OrganizationCourseUnitPriceSettingsDao;
+import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dto.CalenderPushDto;
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDetailDto;
 import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
+import com.ym.mec.biz.dal.entity.MusicGroupOrganizationCourseSettings;
+import com.ym.mec.biz.dal.entity.MusicGroupOrganizationCourseSettingsDetail;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
+import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.entity.OrganizationCourseUnitPriceSettings;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
@@ -27,19 +68,6 @@ 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.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.stream.Collectors;
-
-import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY;
-import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_RENEW;
 
 @Service
 public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalender> implements MusicGroupPaymentCalenderService {

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -41,6 +41,11 @@
         <result column="value_" property="value"/>
     </resultMap>
 
+    <resultMap type="com.ym.mec.biz.dal.dto.RemainCourseTypeDurationDto" id="RemainCourseTypeDurationDto">
+        <result column="course_type_" property="courseType"/>
+        <result column="remain_minutes_" property="remainMinutes"/>
+    </resultMap>
+
     <resultMap id="CourseScheduleEndDto" type="com.ym.mec.biz.dal.dto.CourseScheduleEndDto" extends="CourseSchedule">
         <result column="course_start_time_" property="startClassTime"/>
         <result column="course_end_time_" property="endClassTime"/>
@@ -3317,4 +3322,10 @@
         ORDER BY start_class_time_ DESC LIMIT 1;
     </select>
 
+    <select id="queryRemainCourseTypeDuration" resultMap="RemainCourseTypeDurationDto">
+        SELECT cs.type_ course_type_,SUM(TIMESTAMPDIFF(MINUTE,STR_TO_DATE(concat(cs.class_date_,' ',cs.start_class_time_),'%Y-%m-%d %H:%i:%s'), 
+        STR_TO_DATE(concat(cs.class_date_,' ',cs.end_class_time_),'%Y-%m-%d %H:%i:%s'))) remain_minutes_ 
+		from course_schedule cs where cs.class_group_id_ in (#{classgroupId}) and cs.status_ = 'NOT_START' group by cs.type_
+    </select>
+
 </mapper>

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

@@ -28,6 +28,8 @@
         <result column="payment_type_" property="paymentType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="batch_no_" property="batchNo"/>
         <result column="payment_amount_" property="paymentAmount"/>
+        <result column="attribute1_" property="attribute1"/>
+        <result column="attribute2_" property="attribute2"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -46,12 +48,12 @@
         INSERT INTO music_group_payment_calender
         (music_group_id_,music_group_organization_course_settings_id_,pay_user_type_,reject_reason_,start_payment_date_,deadline_payment_date_,status_,expect_num_,
         actual_num_,memo_,is_give_music_network_,create_time_,update_time_,payment_valid_start_date_,payment_valid_end_date_,
-        payment_pattern_,payment_type_,payment_amount_,batch_no_,audit_memo_,operator_)
+        payment_pattern_,payment_type_,payment_amount_,batch_no_,audit_memo_,operator_,attribute1_,attribute2_)
         VALUES(#{musicGroupId},#{musicGroupOrganizationCourseSettingId},#{payUserType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{rejectReason},#{startPaymentDate},#{deadlinePaymentDate},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{expectNum},#{actualNum},#{memo},#{isGiveMusicNetwork},now(),now(),
         #{paymentValidStartDate},#{paymentValidEndDate},#{paymentPattern},#{paymentType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-        #{paymentAmount},#{batchNo},#{auditMemo},#{operator})
+        #{paymentAmount},#{batchNo},#{auditMemo},#{operator},#{attribute1},#{attribute2})
     </insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender" useGeneratedKeys="true"
@@ -59,13 +61,13 @@
         INSERT INTO music_group_payment_calender
         (music_group_id_,music_group_organization_course_settings_id_,pay_user_type_,reject_reason_,start_payment_date_,deadline_payment_date_,status_,expect_num_,
         actual_num_,memo_,is_give_music_network_,create_time_,update_time_,payment_valid_start_date_,payment_valid_end_date_,payment_pattern_,payment_amount_,
-        payment_type_,batch_no_,audit_memo_,operator_)
+        payment_type_,batch_no_,audit_memo_,operator_,attribute1_,attribute2_)
         VALUES
         <foreach collection="list" item="item" index="index" separator=",">
         (#{item.musicGroupId},#{item.musicGroupOrganizationCourseSettingId},#{item.payUserType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.rejectReason},#{item.startPaymentDate},#{item.deadlinePaymentDate},#{item.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{item.expectNum},#{item.actualNum},#{item.memo},#{item.isGiveMusicNetwork},now(),now(),
         #{item.paymentValidStartDate},#{item.paymentValidEndDate},#{item.paymentPattern},#{item.paymentAmount},#{item.paymentType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-        #{item.batchNo},#{item.auditMemo},#{item.operator})
+        #{item.batchNo},#{item.auditMemo},#{item.operator},#{item.attribute1},#{item.attribute2})
         </foreach>
     </insert>
 
@@ -128,6 +130,12 @@
             <if test="paymentAmount != null">
                 payment_amount_ = #{paymentAmount},
             </if>
+            <if test="attribute1 != null">
+                attribute1_ = #{attribute1},
+            </if>
+            <if test="attribute2 != null">
+                attribute2_ = #{attribute2},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>
@@ -184,6 +192,12 @@
 	            <if test="item.paymentAmount != null">
 	                payment_amount_ = #{item.paymentAmount},
 	            </if>
+	            <if test="item.attribute1 != null">
+	                attribute1_ = #{item.attribute1},
+	            </if>
+	            <if test="item.attribute2 != null">
+	                attribute2_ = #{item.attribute2},
+	            </if>
 	        </set>
 	        WHERE id_ = #{item.id}
 		</foreach>

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

@@ -322,4 +322,11 @@ public class ClassGroupController extends BaseController {
     public HttpResponseResult superFindClassGroups(EndCourseScheduleQueryInfo queryInfo){
         return succeed(classGroupService.endFindClassGroups(queryInfo));
     }
+
+    @ApiOperation(value = "获取班级剩余课程类型对应的时长(分钟)")
+    @GetMapping("/queryRemainCourseTypeDuration")
+    @PreAuthorize("@pcs.hasPermissions('classGroup/queryRemainCourseTypeDuration')")
+    public HttpResponseResult queryRemainCourseTypeDuration(String classGroupIdList){
+        return succeed(classGroupService.queryRemainCourseTypeDuration(classGroupIdList));
+    }
 }