Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 5 years ago
parent
commit
f24b00bee7

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.dal.dao;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import org.apache.ibatis.annotations.Param;
 
@@ -61,4 +63,17 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
 	 */
 	int queryIntersectionByPaymentDate(@Param("musicGroupId") String musicGroupId, @Param("startPaymentDate") Date startPaymentDate,
 			@Param("deadlinePaymentDate") Date deadlinePaymentDate);
+
+	/**
+	 * 统计预计缴费人数
+	 * @param collect
+	 * @return
+	 */
+	List<Map<Long, Long>> countExpectNum(@Param("collect") Set<Long> collect);
+	/**
+	 * 统计预计缴费人数
+	 * @param collect
+	 * @return
+	 */
+	List<Map<Long, Long>> countActualNum(@Param("collect") Set<Long> collect);
 }

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDetailDao.java

@@ -1,13 +1,13 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.math.BigDecimal;
-import java.util.List;
-
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
+import java.util.List;
+
 public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicGroupPaymentCalenderDetail> {
 
 	/**
@@ -80,4 +80,5 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 	 * 刷新学员乐团付费状态
 	 */
 	void refreshUserMusicGroupPaymentStatusTask();
+
 }

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

@@ -182,4 +182,10 @@ public interface MusicGroupStudentFeeDao extends BaseDAO<Long, MusicGroupStudent
 	 * @param calenderDetails
 	 */
 	void setNoPayment(@Param("calenderDetails") List<MusicGroupPaymentCalenderDetail> calenderDetails);
+
+	/**
+	 * 修改为缴费完成
+	 * @param calenderDetails
+	 */
+	void setPaidCompleted(@Param("calenderDetails") List<MusicGroupPaymentCalenderDetail> calenderDetails);
 }

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
+import com.ym.mec.biz.dal.page.MusicCalenderQueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.Date;
@@ -55,4 +56,11 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	 * @return
 	 */
     Object getDetail(Long id);
+
+	/**
+	 * 获取列表
+	 * @param queryInfo
+	 * @return
+	 */
+	Object queryDetailPage(MusicCalenderQueryInfo queryInfo);
 }

+ 14 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -11,7 +11,6 @@ import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderDetailService;
-import com.ym.mec.biz.service.MusicGroupStudentFeeService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
@@ -27,7 +26,7 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.NON_PAYMENT;
-import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.PROCESSING;
+import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED;
 
 @Service
 public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalenderDetail>  implements MusicGroupPaymentCalenderDetailService {
@@ -54,20 +53,27 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		if(expectAmount == null || StringUtils.isEmpty(ids)){
 			throw new BizException("参数校验失败");
 		}
-		String[] split = ids.split(",");
 		//获取缴费列表
 		List<MusicGroupPaymentCalenderDetail> calenderDetails = musicGroupPaymentCalenderDetailDao.queryListByIds(ids);
 		if(calenderDetails.size() == 0){
 			throw new BizException("缴费记录不存在");
 		}
 		Date date = new Date();
+		int compare = expectAmount.compareTo(BigDecimal.ZERO);
 		calenderDetails.forEach(e->{
 			if(e.getPaymentStatus() == null || e.getPaymentStatus() != NON_PAYMENT){
 				throw new BizException("修改失败,缴费状态不匹配");
 			}
+			if(compare == 1){
+				e.setPaymentStatus(PAID_COMPLETED);
+			}
 			e.setUpdateTime(date);
 			e.setExpectAmount(expectAmount);
 		});
+		//如果是设置为0元
+		if(compare == 1){
+			musicGroupStudentFeeDao.setPaidCompleted(calenderDetails);
+		}
 		musicGroupPaymentCalenderDetailDao.batchUpdate(calenderDetails);
 	}
 
@@ -151,16 +157,17 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		Date date = new Date();
 		MusicGroupStudentFee studentFee = musicGroupStudentFeeDao.findByUser(userId, calender.getMusicGroupId());
 		//修改预计人数
-		calender.setExpectNum(calender.getExpectNum());
+//		calender.setExpectNum(calender.getExpectNum());
 		calender.setUpdateTime(date);
-
 		//生成详情
 		MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 		musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(calender.getId());
 		musicGroupPaymentCalenderDetail.setCreateTime(date);
 		musicGroupPaymentCalenderDetail.setExpectAmount(studentFee.getCourseFee());
 		if (studentFee.getCourseFee().doubleValue() == 0) {
-			musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
+			studentFee.setPaymentStatus(PAID_COMPLETED);
+			studentFee.setUpdateTime(date);
+			musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
 		} else {
 			musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
 		}
@@ -168,5 +175,6 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		musicGroupPaymentCalenderDetail.setUserId(userId);
 		musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
 		musicGroupPaymentCalenderDao.update(calender);
+		musicGroupStudentFeeDao.update(studentFee);
 	}
 }

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

@@ -12,12 +12,15 @@ import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.FeeType;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
+import com.ym.mec.biz.dal.page.MusicCalenderQueryInfo;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
+import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 
 import org.apache.commons.lang3.StringUtils;
@@ -92,7 +95,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<MusicGroupPaymentCalenderDetail>();
 		if (musicGroupPaymentCalender.getPaymentStatus() == PaymentStatusEnum.OPEN) {
 			if (musicGroupStudentFeeList != null && musicGroupStudentFeeList.size() > 0) {
-				Set<Integer> studentIds = musicGroupStudentFeeList.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
+				Set<Integer> studentIds = new HashSet<Integer>();
 				MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = null;
 				// 创建缴费明细
 				for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
@@ -104,6 +107,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 						musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
 					} else {
 						musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+						studentIds.add(mgsf.getUserId());
 					}
 					musicGroupPaymentCalenderDetail.setUpdateTime(date);
 					musicGroupPaymentCalenderDetail.setUserId(mgsf.getUserId());
@@ -182,7 +186,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
 				// 学生状态更新进行中
 				List<MusicGroupStudentFee> musicGroupStudentFeeList = musicGroupStudentFeeDao.queryByMusicGroupId(mgpc.getMusicGroupId());
-				Set<Integer> studentIds = musicGroupStudentFeeList.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
+				Set<Integer> studentIds = new HashSet<Integer>();
 				// 创建缴费明细
 				for (MusicGroupStudentFee mgsf : musicGroupStudentFeeList) {
 					musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
@@ -193,6 +197,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 						musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
 					} else {
 						musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+						studentIds.add(mgsf.getUserId());
 					}
 					musicGroupPaymentCalenderDetail.setUpdateTime(date);
 					musicGroupPaymentCalenderDetail.setUserId(mgsf.getUserId());
@@ -336,10 +341,33 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	@Override
 	public Object getDetail(Long id) {
 		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(id);
+		Set<Long> set = new HashSet<>();
+		set.add(id);
+		Map<Long,Long> expectNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countExpectNum(set));
+		Map<Long,Long> actualNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countActualNum(set));
+		calender.setActualNum(actualNumMap.get(id)==null?0:actualNumMap.get(id).intValue());
+		calender.setExpectNum(expectNumMap.get(id)==null?0:expectNumMap.get(id).intValue());
 		BigDecimal sumActualAmount = musicGroupPaymentCalenderDetailDao.sumActualAmount(id);
 		Map<String, Object> result = new HashMap<>(2);
 		result.put("calender", calender);
 		result.put("sumActualAmount", sumActualAmount);
 		return result;
 	}
+
+	@Override
+	public Object queryDetailPage(MusicCalenderQueryInfo queryInfo) {
+		PageInfo<MusicGroupPaymentCalender> pageInfo = queryPage(queryInfo);
+		List<MusicGroupPaymentCalender> rows = pageInfo.getRows();
+		if(rows.size() == 0){
+			return pageInfo;
+		}
+		Set<Long> collect = rows.stream().map(e -> e.getId()).collect(Collectors.toSet());
+		Map<Long,Long> expectNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countExpectNum(collect));
+		Map<Long,Long> actualNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countActualNum(collect));
+		rows.forEach(e->{
+			e.setActualNum(actualNumMap.get(e.getId())==null?0:actualNumMap.get(e.getId()).intValue());
+			e.setExpectNum(expectNumMap.get(e.getId())==null?0:expectNumMap.get(e.getId()).intValue());
+		});
+		return pageInfo;
+	}
 }

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

@@ -264,9 +264,9 @@
     <select id="findSomeDayAgoTeacherCourseSalaryNoSettlement" resultMap="CourseScheduleTeacherSalary">
 		SELECT
 		cs.class_date_,
-		csts.*,csts.expect_salary_ * (CASE WHEN (ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0) AND (ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0) THEN 0
+		csts.*,CASE WHEN cs.teach_mode_ = 'ONLINE' THEN csts.expect_salary_ * (CASE WHEN (ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0) AND (ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0) THEN 0
 		WHEN ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0 THEN 0.5
-		WHEN ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0 THEN 0.5 ELSE 1 END) teacher_actual_salary_
+		WHEN ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0 THEN 0.5 ELSE 1 END) ELSE csts.expect_salary_ END teacher_actual_salary_
 		FROM
 		course_schedule_teacher_salary csts
 		LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_

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

@@ -179,7 +179,7 @@
 				AND #{subjectId} = sr.actual_subject_id_
 			</if>
 		</where>
-		ORDER BY mgpc.create_time_
+		ORDER BY mgpc.update_time_ DESC
 		<include refid="global.limit" />
 	</select>
 

+ 17 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml

@@ -176,4 +176,21 @@
         and (start_payment_date_ between #{startPaymentDate} and #{deadlinePaymentDate}
         or deadline_payment_date_ between #{startPaymentDate} and #{deadlinePaymentDate})
     </select>
+    <select id="countExpectNum" resultType="java.util.Map">
+        SELECT mgpcd.music_group_payment_calender_id_ 'key',COUNT(DISTINCT mgpcd.user_id_) 'value' FROM music_group_payment_calender_detail mgpcd
+        WHERE mgpcd.music_group_payment_calender_id_ IN
+        <foreach collection="collect" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        GROUP BY mgpcd.music_group_payment_calender_id_
+    </select>
+    <select id="countActualNum" resultType="java.util.Map">
+        SELECT mgpcd.music_group_payment_calender_id_ 'key',COUNT(DISTINCT mgpcd.user_id_) 'value' FROM music_group_payment_calender_detail mgpcd
+        WHERE mgpcd.music_group_payment_calender_id_ IN
+        <foreach collection="collect" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        AND mgpcd.payment_status_ = 'PAID_COMPLETED'
+        GROUP BY mgpcd.music_group_payment_calender_id_
+    </select>
 </mapper>

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

@@ -315,4 +315,10 @@
             WHERE m.music_group_id_ = #{item.musicGroupId} AND m.user_id_ = #{item.userId}
         </foreach>
     </update>
+    <update id="setPaidCompleted">
+        <foreach collection="calenderDetails" item="item" index="index" open="" close="" separator=";">
+            UPDATE music_group_student_fee_ m SET m.payment_status_ = 'PAID_COMPLETED'
+            WHERE m.music_group_id_ = #{item.musicGroupId} AND m.user_id_ = #{item.userId}
+        </foreach>
+    </update>
 </mapper>

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

@@ -1223,8 +1223,8 @@ public class ExportController extends BaseController {
         OutputStream ouputStream = null;
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(
-                    new String[]{"学员编号", "学员姓名", "所属分部", "指导老师", "预期安排", "实际安排", "提交次数", "评价次数", "及时评价次数", "付费网管课", "VIP课"},
-                    new String[]{"studentId", "studentName", "organName", "teacherName", "expectExercisesNum", "actualExercisesNum", "exercisesReplyNum", "exercisesMessageNum", "exercisesMessageTimelyNum", "existPracticeCourse", "existVipCourse"}, rows);
+                    new String[]{"学员编号", "学员姓名", "所属分部", "指导老师","教务老师", "预期安排", "实际安排", "提交次数", "评价次数", "及时评价次数", "付费网管课", "VIP课"},
+                    new String[]{"studentId", "studentName", "organName", "teacherName","educationalTeacherName", "expectExercisesNum", "actualExercisesNum", "exercisesReplyNum", "exercisesMessageNum", "exercisesMessageTimelyNum", "existPracticeCourse", "existVipCourse"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             ouputStream = response.getOutputStream();

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

@@ -62,7 +62,7 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/queryPage')")
     public Object queryPage(MusicCalenderQueryInfo queryInfo) {
-        return succeed(musicGroupPaymentCalenderService.queryPage(queryInfo));
+        return succeed(musicGroupPaymentCalenderService.queryDetailPage(queryInfo));
     }
 
     @ApiOperation(value = "获取缴费信息")