Ver Fonte

活动排课

zouxuan há 3 anos atrás
pai
commit
5e6b67ae27

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleStudentPayment.java

@@ -56,6 +56,17 @@ public class CourseScheduleStudentPayment extends BaseEntity implements Comparab
 
 	private Boolean beMerged;
 
+	@ApiModelProperty(value = "如果是活动排课,那么这里关联的是学员排课资格编号",required = false)
+	private Integer activityUserMapperId;
+
+	public Integer getActivityUserMapperId() {
+		return activityUserMapperId;
+	}
+
+	public void setActivityUserMapperId(Integer activityUserMapperId) {
+		this.activityUserMapperId = activityUserMapperId;
+	}
+
 	public Boolean getBeMerged() {
 		return beMerged;
 	}

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

@@ -173,13 +173,17 @@ public interface ActivityUserMapperService extends BaseService<Integer, Activity
     */
     HttpResponseResult createActivityVipGroup(VipGroupApplyDto vipGroupApplyDto);
 
+
     /**
     * @description: 消耗排课资格
-     * @param activityUserMappers
-     * @param courseNum
-    * @return int
-    * @author zx
-    * @date 2022/7/25 14:50
+     * @param activityUserMappers 付费的排课资格
+     * @param freeActivityUserMappers 赠送的排课资格
+     * @param courseNum 排课数
+     * @param groupId 课程组编号
+     * @param studentIdList 学员列表
+    * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment>
+    * @author zx
+    * @date 2022/7/27 14:23
     */
     List<CourseScheduleStudentPayment> use(List<ActivityUserMapper> activityUserMappers,
                                            List<ActivityUserMapper> freeActivityUserMappers,

+ 16 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ActivityUserMapperServiceImpl.java

@@ -687,7 +687,11 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 		return this.use(activityUserMappers, freeActivityUserMappers, courseNum,groupId,studentIdList);
 	}
 
-	private void getStudentPayment(Integer userId,BigDecimal totalAmount,Integer courseNum,List<CourseScheduleStudentPayment> courseScheduleStudentPayments){
+	private void getStudentPayment(Integer userId,
+								   BigDecimal totalAmount,
+								   Integer courseNum,
+								   List<CourseScheduleStudentPayment> courseScheduleStudentPayments,
+								   Integer activityUserMapperId){
 		//实际支付金额,去除优惠券
 		BigDecimal singleAmount = totalAmount.divide(new BigDecimal(courseNum), ROUND_DOWN);
 		BigDecimal firstSingleAmount = totalAmount.subtract(singleAmount.multiply(new BigDecimal(courseNum))).add(singleAmount);
@@ -699,16 +703,22 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 			} else {
 				courseScheduleStudentPayment.setExpectPrice(singleAmount);
 			}
+			courseScheduleStudentPayment.setActivityUserMapperId(activityUserMapperId);
 			courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
 			courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 		}
 	}
-	private void getStudentPayment(Integer userId,Integer courseNum,BigDecimal singlePrice,List<CourseScheduleStudentPayment> courseScheduleStudentPayments){
+	private void getStudentPayment(Integer userId,
+								   Integer courseNum,
+								   BigDecimal singlePrice,
+								   List<CourseScheduleStudentPayment> courseScheduleStudentPayments,
+								   Integer activityUserMapperId){
 		for (Integer i = 0; i < courseNum; i++) {
 			CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
 			courseScheduleStudentPayment.setUserId(userId);
 			courseScheduleStudentPayment.setExpectPrice(singlePrice);
 			courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
+			courseScheduleStudentPayment.setActivityUserMapperId(activityUserMapperId);
 			courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 		}
 	}
@@ -742,7 +752,7 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 					activityUserMapper.setSubNoCoursePrice(BigDecimal.ZERO);
 					activityUserMapper.setCurrentCoursePrice(activityUserMapper.getSubNoCoursePrice());
 					//生成学员课程支付记录
-					this.getStudentPayment(integer,activityUserMapper.getSubNoCoursePrice(),num,courseScheduleStudentPayments);
+					this.getStudentPayment(integer,activityUserMapper.getSubNoCoursePrice(),num,courseScheduleStudentPayments,activityUserMapper.getId());
 				}else {
 					subCourseMap.put(integer, 0);
 					activityUserMapper.setSubCourseNum(num - subCourseNum);
@@ -750,7 +760,7 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 					BigDecimal divide = activityUserMapper.getActualPrice().divide(new BigDecimal(activityUserMapper.getTotalCourseNum()), RoundingMode.DOWN).multiply(new BigDecimal(subCourseNum));
 					activityUserMapper.setSubNoCoursePrice(activityUserMapper.getSubNoCoursePrice().subtract(divide));
 					activityUserMapper.setCurrentCoursePrice(divide);
-					this.getStudentPayment(integer,subCourseNum,divide,courseScheduleStudentPayments);
+					this.getStudentPayment(integer,subCourseNum,divide,courseScheduleStudentPayments,activityUserMapper.getId());
 					//剩余课次充足
 					continue one;
 				}
@@ -775,10 +785,10 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 				if(num <= subCourseNum){
 					activityUserMapper.setSubGiveCourseNum(0);
 					subCourseNum = subCourseNum - num;
-					this.getStudentPayment(integer,num,BigDecimal.ZERO,courseScheduleStudentPayments);
+					this.getStudentPayment(integer,num,BigDecimal.ZERO,courseScheduleStudentPayments,activityUserMapper.getId());
 				}else {
 					activityUserMapper.setSubGiveCourseNum(num - subCourseNum);
-					this.getStudentPayment(integer,subCourseNum,BigDecimal.ZERO,courseScheduleStudentPayments);
+					this.getStudentPayment(integer,subCourseNum,BigDecimal.ZERO,courseScheduleStudentPayments,activityUserMapper.getId());
 					continue one;
 				}
 			}

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

@@ -22,6 +22,7 @@
 		<result column="batch_no_" property="batchNo"/>
 		<result column="be_merged_" property="beMerged"/>
 		<result column="tenant_id_" property="tenantId" />
+		<result column="activity_user_mapper_id_" property="activityUserMapperId" />
 	</resultMap>
 
 	<resultMap type="com.ym.mec.biz.dal.dto.StudentCourseTimesDto" id="studentCourseTimesDto">
@@ -55,17 +56,17 @@
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO course_schedule_student_payment (id_,group_type_,music_group_id_,course_schedule_id_,user_id_,
-			original_price_,expect_price_,actual_price_,create_time_,update_time_,settlement_time_,class_group_id_,batch_no_,be_merged_,tenant_id_)
+			original_price_,expect_price_,actual_price_,create_time_,update_time_,settlement_time_,class_group_id_,batch_no_,be_merged_,tenant_id_,activity_user_mapper_id_)
 		VALUES(#{id},#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{courseScheduleId},#{userId},
-			#{originalPrice},#{expectPrice},#{actualPrice},#{createTime},NOW(),#{settlementTime},#{classGroupId},#{batchNo},#{beMerged},#{tenantId})
+			#{originalPrice},#{expectPrice},#{actualPrice},#{createTime},NOW(),#{settlementTime},#{classGroupId},#{batchNo},#{beMerged},#{tenantId},#{activityUserMapperId})
 	</insert>
     <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
 		INSERT INTO course_schedule_student_payment (id_,group_type_,music_group_id_,course_schedule_id_,user_id_,expect_price_,
-				original_price_,actual_price_,create_time_,update_time_,settlement_time_,class_group_id_,batch_no_,be_merged_,tenant_id_)
+				original_price_,actual_price_,create_time_,update_time_,settlement_time_,class_group_id_,batch_no_,be_merged_,tenant_id_,activity_user_mapper_id_)
 		VALUE
 		<foreach collection="list" item="data" separator=",">
 			(#{data.id},#{data.groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{data.musicGroupId},#{data.courseScheduleId},#{data.userId},#{data.expectPrice},
-			#{data.originalPrice},#{data.actualPrice},now(),now(),#{data.settlementTime},#{data.classGroupId},#{data.batchNo},#{data.beMerged},#{data.tenantId})
+			#{data.originalPrice},#{data.actualPrice},now(),now(),#{data.settlementTime},#{data.classGroupId},#{data.batchNo},#{data.beMerged},#{data.tenantId},#{data.activityUserMapperId})
 		</foreach>
     </insert>