Browse Source

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

zouxuan 4 years ago
parent
commit
84c2a61700

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

@@ -156,15 +156,6 @@ public interface MusicGroupPaymentCalenderDetailDao extends BaseDAO<Long, MusicG
 	List<MusicGroupPaymentCalenderDetail> getWithCalenderIds(@Param("calenderIds") List<Long> calenderIds);
 
     /**
-     * @describe 获取乐团下未使用的缴费日历记录
-     * @author Joburgess
-     * @date 2020.10.27
-     * @param musicGroupId:
-     * @return java.util.List<com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail>
-     */
-    List<MusicGroupPaymentCalenderDetail> getUnusedPaymentCalenderWithMusicGroup(@Param("musicGroupId") String musicGroupId);
-
-    /**
      * @describe 获取缴费日历学员列表
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan

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

@@ -0,0 +1,10 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.CourseHomework;
+import com.ym.mec.biz.dal.entity.StudentCourseFeeDetail;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface StudentCourseFeeDetailDao extends BaseDAO<Long, StudentCourseFeeDetail>{
+
+	
+}

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -16,6 +16,8 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistration> {
 
+    StudentRegistration lock(@Param("id") Long id);
+
     /**
      * 获取乐团学员报名详情
      *

+ 104 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseFeeDetail.java

@@ -0,0 +1,104 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(student_course_fee_detail):
+ */
+public class StudentCourseFeeDetail {
+
+	/**  */
+	private Long studentRegistrationId;
+	
+	/** 交易类型 (RECHARGE 充值,PAY_FEE 缴费) */
+	private PlatformCashAccountDetailTypeEnum type;
+	
+	/** 交易金额 */
+	private java.math.BigDecimal amount;
+	
+	/** 剩余课程金额 */
+	private java.math.BigDecimal surplusCourseFee;
+	
+	/** 备注 */
+	private String memo;
+	
+	/**  */
+	private Integer operator;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/**  */
+	private java.util.Date updateTime;
+	
+	public void setStudentRegistrationId(Long studentRegistrationId){
+		this.studentRegistrationId = studentRegistrationId;
+	}
+	
+	public Long getStudentRegistrationId(){
+		return this.studentRegistrationId;
+	}
+
+	public PlatformCashAccountDetailTypeEnum getType() {
+		return type;
+	}
+
+	public void setType(PlatformCashAccountDetailTypeEnum type) {
+		this.type = type;
+	}
+
+	public void setAmount(java.math.BigDecimal amount){
+		this.amount = amount;
+	}
+	
+	public java.math.BigDecimal getAmount(){
+		return this.amount;
+	}
+			
+	public void setSurplusCourseFee(java.math.BigDecimal surplusCourseFee){
+		this.surplusCourseFee = surplusCourseFee;
+	}
+	
+	public java.math.BigDecimal getSurplusCourseFee(){
+		return this.surplusCourseFee;
+	}
+			
+	public void setMemo(String memo){
+		this.memo = memo;
+	}
+	
+	public String getMemo(){
+		return this.memo;
+	}
+			
+	public void setOperator(Integer operator){
+		this.operator = operator;
+	}
+	
+	public Integer getOperator(){
+		return this.operator;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java

@@ -100,6 +100,8 @@ public class StudentRegistration {
     @ApiModelProperty(value = "是否是插班生0不是,1是", required = true)
     private int transferStudent;
 
+    private BigDecimal surplusCourseFee;
+
     private String organName;
 
     private String schoolName;
@@ -391,4 +393,12 @@ public class StudentRegistration {
 	public void setChargeTypeId(Integer chargeTypeId) {
 		this.chargeTypeId = chargeTypeId;
 	}
+
+    public BigDecimal getSurplusCourseFee() {
+        return surplusCourseFee;
+    }
+
+    public void setSurplusCourseFee(BigDecimal surplusCourseFee) {
+        this.surplusCourseFee = surplusCourseFee;
+    }
 }

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

@@ -298,4 +298,16 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
      * @return
      */
     BigDecimal getClassGroupCourseExpectPrice(List<Integer> classGroupIds);
-}
+
+    /**
+     * @describe 更新学生乐团可用课程余额
+     * @author qnc99
+     * @date 2020/12/2 0002
+     * @param studentRegistrationId:
+     * @param amount:
+     * @param memo:
+     * @param operatorId:
+     * @return boolean
+     */
+    boolean updateUserSurplusCourseFee(Long studentRegistrationId, BigDecimal amount, String memo, Integer operatorId);
+}

+ 32 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -2,15 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import java.io.IOException;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
@@ -118,6 +110,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
     @Autowired
     private MusicGroupPaymentCalenderCourseSettingsDao musicGroupPaymentCalenderCourseSettingsDao;
+    @Autowired
+    private StudentCourseFeeDetailDao studentCourseFeeDetailDao;
 
     @Override
     public BaseDAO<Long, StudentRegistration> getDAO() {
@@ -1284,4 +1278,33 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         List<CourseScheduleStudentPayment> classGroupNoStartCourse = courseScheduleStudentPaymentService.getClassGroupNoStartCourse(classGroupIds);
         return classGroupNoStartCourse.stream().map(CourseScheduleStudentPayment::getExpectPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+    public boolean updateUserSurplusCourseFee(Long studentRegistrationId, BigDecimal amount, String memo, Integer operatorId) {
+        StudentRegistration studentRegistration = studentRegistrationDao.lock(studentRegistrationId);
+        if(Objects.isNull(studentRegistration)){
+            throw new BizException("学员注册信息不存在");
+        }
+
+        if(BigDecimal.ZERO.compareTo(amount)==0){
+            return true;
+        }
+
+        if(studentRegistration.getSurplusCourseFee().compareTo(amount)<0){
+            return false;
+        }
+        studentRegistration.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(amount));
+
+        StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
+        studentCourseFeeDetail.setStudentRegistrationId(studentRegistrationId);
+        studentCourseFeeDetail.setAmount(amount);
+        studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee());
+        studentCourseFeeDetail.setMemo(memo);
+        studentCourseFeeDetail.setOperator(operatorId);
+        studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
+
+        studentRegistrationDao.update(studentRegistration);
+        return true;
+    }
 }

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

@@ -320,17 +320,6 @@
 			mgpcd.music_group_payment_calender_id_ = #{calenderId}
 	</select>
 
-	<select id="getUnusedPaymentCalenderWithMusicGroup" resultMap="MusicGroupPaymentCalenderDetail">
-		SELECT
-			mgpcd.*
-		FROM
-			music_group_payment_calender_detail mgpcd
-			LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
-		WHERE
-			mgpc.music_group_id_ = #{musicGroupId}
-			AND NOT EXISTS ( SELECT id_ FROM course_schedule_student_payment WHERE batch_no_ = mgpcd.music_group_payment_calender_id_ AND music_group_id_ = #{musicGroupId} )
-	</select>
-
     <select id="getWithCalenderIds" resultMap="MusicGroupPaymentCalenderDetail">
 		SELECT
 			mgpcd.*

+ 63 - 0
mec-biz/src/main/resources/config/mybatis/StudentCourseFeeDetailMapper.xml

@@ -0,0 +1,63 @@
+<?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.StudentCourseFeeDetailDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.StudentCourseFeeDetail" id="StudentCourseFeeDetail">
+		<result column="student_registration_id_" property="studentRegistrationId" />
+		<result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
+		<result column="amount_" property="amount" />
+		<result column="surplus_course_fee_" property="surplusCourseFee" />
+		<result column="memo_" property="memo" />
+		<result column="operator_" property="operator" />
+		<result column="create_time_" property="createTime" />
+		<result column="update_time_" property="updateTime" />
+	</resultMap>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="StudentCourseFeeDetail">
+		SELECT * FROM student_course_fee_detail
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentCourseFeeDetail" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		INSERT INTO student_course_fee_detail (student_registration_id_,type_,amount_,surplus_course_fee_,memo_,operator_,create_time_,update_time_)
+		VALUES(#{studentRegistrationId},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{surplusCourseFee},#{memo},#{operator},NOW(),NOW())
+	</insert>
+
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentCourseFeeDetail">
+		UPDATE student_course_fee_detail
+		<set>
+			<if test="type!=null">
+				type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			</if>
+			<if test="amount!=null">
+				amount_ = #{amount},
+			</if>
+			<if test="surplusCourseFee!=null">
+				surplus_course_fee_ = #{surplusCourseFee}
+			</if>
+			<if test="memo!=null">
+				memo_ = #{memo}
+			</if>
+			<if test="operator!=null">
+				operator_ = #{operator}
+			</if>
+			update_time_ = NOW()
+		</set>
+		WHERE student_registration_id_ = #{studentRegistrationId}
+	</update>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="StudentCourseFeeDetail" parameterType="map">
+		SELECT * FROM student_course_fee_detail <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM student_course_fee_detail
+	</select>
+</mapper>

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -38,6 +38,7 @@
         <result column="kit_group_purchase_type_" property="kitType" />
         <result column="username_" property="name" />
         <result column="deposit_fee_" property="depositFee" />
+        <result column="surplus_course_fee_" property="surplusCourseFee"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.StudentInfo" id="StudentInfo">
@@ -82,6 +83,10 @@
         SELECT * FROM student_registration WHERE id_ = #{id}
     </select>
 
+    <select id="lock" resultMap="StudentRegistration">
+        SELECT * FROM student_registration WHERE id_ = #{id} FOR UPDATE
+    </select>
+
     <!-- 全查询 -->
     <select id="findAll" resultMap="StudentRegistration">
         SELECT *
@@ -113,6 +118,7 @@
             <if test="classGroupId!=null">class_group_id_,</if>
             <if test="musicGroupStatus!=null">music_group_status_,</if>
             <if test="temporaryCourseFee != null">temporary_course_fee_,</if>
+            <if test="surplusCourseFee != null">surplus_course_fee_,</if>
             <if test="createTime!=null">create_time_,</if>
             <if test="updateTime!=null">update_time_,</if>
         </trim>
@@ -142,6 +148,7 @@
                 #{musicGroupStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
             <if test="temporaryCourseFee != null">#{temporaryCourseFee},</if>
+            <if test="surplusCourseFee != null">#{surplus_course_fee_},</if>
             <if test="createTime!=null">#{createTime},</if>
             <if test="updateTime!=null">NOW(),</if>
         </trim>
@@ -205,6 +212,9 @@
             <if test="temporaryCourseFee != null">
                 temporary_course_fee_ =#{temporaryCourseFee},
             </if>
+            <if test="surplusCourseFee != null">
+                surplus_course_fee_ =#{surplusCourseFee},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>