Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

Joburgess 5 rokov pred
rodič
commit
11c0da2db5

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPaymentOrderExportDto.java

@@ -29,6 +29,8 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
     private String schoolName;
     private String subjectName;
 
+    private Integer chargeType;
+
     private List<StudentPaymentOrderDetail> orderDetailList;
 
     public BigDecimal getSporadicAmount() {
@@ -110,4 +112,12 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
     public void setOrderDetailList(List<StudentPaymentOrderDetail> orderDetailList) {
         this.orderDetailList = orderDetailList;
     }
+
+    public Integer getChargeType() {
+        return chargeType;
+    }
+
+    public void setChargeType(Integer chargeType) {
+        this.chargeType = chargeType;
+    }
 }

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

@@ -103,7 +103,7 @@ public class StudentRegistration {
 
     private String schoolName;
 
-    private KitPurchaseMethodEnum kitType;
+    private String kitType;
 
     public BigDecimal getBalance() {
         return balance;
@@ -352,11 +352,11 @@ public class StudentRegistration {
         this.schoolName = schoolName;
     }
 
-    public KitPurchaseMethodEnum getKitType() {
+    public String getKitType() {
         return kitType;
     }
 
-    public void setKitType(KitPurchaseMethodEnum kitType) {
+    public void setKitType(String kitType) {
         this.kitType = kitType;
     }
 }

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

@@ -8,16 +8,17 @@ import java.util.List;
 
 public interface MusicGroupPaymentCalenderService extends BaseService<Long, MusicGroupPaymentCalender> {
 
-    /**
-     * 批量新增、修改乐团缴费周期
-     * @param musicGroupPaymentCalenders
-     */
-    void batchInsert(List<MusicGroupPaymentCalender> musicGroupPaymentCalenders);
+	/**
+	 * 批量新增、修改乐团缴费周期
+	 * @param musicGroupPaymentCalenders
+	 */
+	void batchInsert(List<MusicGroupPaymentCalender> musicGroupPaymentCalenders);
 
 	/**
 	 * 获取下次缴费时间
 	 * @param musicGroupId
+	 * @param latestPaidDate
 	 * @return
 	 */
-	Date getNextPaymentDate(String musicGroupId);
+	Date getNextPaymentDate(String musicGroupId, Date latestPaidDate);
 }

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

@@ -38,13 +38,17 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	}
 
 	@Override
-	public Date getNextPaymentDate(String musicGroupId) {
+	public Date getNextPaymentDate(String musicGroupId, Date latestPaidDate) {
 		List<MusicGroupPaymentCalender> musicGroupPaymentCalenderList = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
 		if (musicGroupPaymentCalenderList != null && musicGroupPaymentCalenderList.size() > 0) {
-			Date date = new Date();
+			Date date = latestPaidDate;
+			if (date == null) {
+				date = new Date();
+			}
 			List<Integer> months = musicGroupPaymentCalenderList.stream().map(e -> e.getPaymentMonth()).sorted().collect(Collectors.toList());
 
 			if (months.size() > 0) {
+
 				// 获取当前月份
 				int currentMonth = Integer.parseInt(DateUtil.getMonth(date));
 				int nextMonth = months.get(0);

+ 8 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -271,7 +271,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupDao.update(musicGroup);
             List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
             if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-                Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
+                Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null);
                 musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,nextPaymentDate,"PAID_COMPLETED");
             }
             musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "跨团调整", sysUser.getId(),""));
@@ -808,7 +808,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
                 List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
                 if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-                    Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
+                    Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null);
                     musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,nextPaymentDate,"PAID_COMPLETED");
                 }
             }
@@ -861,7 +861,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //生成学员费用表
         List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
         if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
+            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null),"PAID_COMPLETED");
         }
         //记录操作日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"确认开团(筹备中 -> 进行中)",sysUser.getId(),""));
@@ -976,7 +976,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             for (String musicGroupId: musicGroupIds) {
                 musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
                 if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-                    musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
+                    musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null),"PAID_COMPLETED");
                 }
             }
         }
@@ -1135,7 +1135,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupDao.update(musicGroup);
 
         // 重新设置下次缴费时间
-        musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
+        musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null));
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"恢复乐团",sysUser.getId(),""));
 
         //恢复课表
@@ -1493,7 +1493,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 musicGroupStudentFee.setLatestPaidTime(date);
                 musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
                 musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
-                musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
+                musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, musicGroupStudentFee.getNextPaymentDate()));
                 musicGroupStudentFeeDao.update(musicGroupStudentFee);
         		return null;
         	}else{
@@ -1568,7 +1568,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupStudentFee.setLatestPaidTime(date);
             musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
             musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
-            musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
+            musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, musicGroupStudentFee.getNextPaymentDate()));
             musicGroupStudentFeeDao.update(musicGroupStudentFee);
 
             //插入交易明细
@@ -1789,7 +1789,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			//生成学员费用表
 	        List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
 	        if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
-	            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
+	            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null),"PAID_COMPLETED");
 	        }
 		}
         musicGroupDao.update(musicGroup);

+ 74 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1,16 +1,84 @@
 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.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.auth.api.enums.SysUserType;
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.StudentAddDto;
+import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
+import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
+import com.ym.mec.biz.dal.dto.StudentInfo;
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
+import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.GoodsType;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.ClassGroupStudentMapperService;
+import com.ym.mec.biz.service.ContractService;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
+import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
+import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.biz.service.SubjectService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
@@ -23,18 +91,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
-import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService {
@@ -548,7 +605,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
                 studentAddDto.setCourseFee(musicOneSubjectClassPlan.getFee());
             }
-            Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId);
+            Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null);
 
             //生成订单
             StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();

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

@@ -409,6 +409,7 @@
                extends="StudentPaymentOrder">
         <result column="organ_name" property="organName"/>
         <result column="username_" property="user.username"/>
+        <result column="charge_type_" property="chargeType"/>
         <collection property="orderDetailList" ofType="com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail">
             <result column="detail_type_" property="type"/>
             <result column="detail_price_" property="price"/>
@@ -417,11 +418,12 @@
 
     <!-- 分页查询 -->
     <select id="ExportQueryPage" resultMap="orderAndDetail" parameterType="map">
-        SELECT spo.*,u.username_,spod.type_ detail_type_,spod.price_ detail_price_,o.name_ organ_name
+        SELECT spo.*,u.username_,spod.type_ detail_type_,spod.price_ detail_price_,o.name_ organ_name,sci.charge_type_
         FROM student_payment_order spo
         LEFT JOIN sys_user u on spo.user_id_ = u.id_
         LEFT JOIN student_payment_order_detail spod on spo.id_ = spod.payment_order_id_
         LEFT JOIN organization o on spo.organ_id_ = o.id_
+        LEFT JOIN sporadic_charge_info sci on spo.music_group_id_ = sci.id_
         <include refid="queryPaymentOrder"/>
         ORDER BY spo.id_ ASC
     </select>

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

@@ -593,7 +593,7 @@
         LEFT JOIN music_group mg ON mg.id_ =sr.music_group_id_
         LEFT JOIN school s ON mg.school_id_ = s.id_
         LEFT JOIN subject s2 ON sr.subject_id_ = s2.id_
-        LEFT JOIN music_group_subject_plan mgsp ON mgsp.subject_id_ = sr.subject_id_
+        LEFT JOIN music_group_subject_plan mgsp ON mgsp.subject_id_ = sr.subject_id_ AND mgsp.music_group_id_ = sr.music_group_id_
         WHERE sr.music_group_id_ = #{musicGroupId} AND sr.user_id_ = #{userId} AND sr.music_group_status_ != 'QUIT' LIMIT 1
     </select>
 </mapper>

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

@@ -206,7 +206,7 @@ public class ExportController extends BaseController {
                 if (studentRegistration != null) {
                     row.setSubjectName(studentRegistration.getSubjectName());
                     row.setSchoolName(studentRegistration.getSchoolName());
-                    if (studentRegistration.getKitType() != null && studentRegistration.getKitType().equals(KitPurchaseMethodEnum.LEASE)) {
+                    if (studentRegistration.getKitType() != null && studentRegistration.getKitType().equals("LEASE")) {
                         row.setLeaseFee(musicalFee);
                         row.setMusicalFee(BigDecimal.ZERO);
                     }
@@ -219,22 +219,20 @@ public class ExportController extends BaseController {
                 }
 
             } else if (row.getGroupType().equals(GroupType.SPORADIC)) {
-                SporadicChargeInfo sporadicChargeInfo = sporadicChargeInfoDao.findInfoById(Integer.parseInt(row.getMusicGroupId()));
                 row.setSporadicAmount(row.getActualAmount());
                 row.setMusicalFee(BigDecimal.ZERO);
                 row.setTeachingFee(BigDecimal.ZERO);
                 row.setTeachingFee(BigDecimal.ZERO);
-                if (sporadicChargeInfo != null) {
-                    if (sporadicChargeInfo.getChargeType().equals("1")) {
+                if (row.getChargeType() != null) {
+                    if (row.getChargeType().equals(1)) {
                         row.setSporadicType("考级");
-                    } else if (sporadicChargeInfo.getChargeType().equals("2")) {
+                    } else if (row.getChargeType().equals(2)) {
                         row.setSporadicType("缴费");
-                    } else if (sporadicChargeInfo.getChargeType().equals("3")) {
+                    } else if (row.getChargeType().equals(3)) {
                         row.setSporadicType("声部更改");
-                    } else if (sporadicChargeInfo.getChargeType().equals("4")) {
+                    } else if (row.getChargeType().equals(4)) {
                         row.setSporadicType("乐器更换");
                     }
-                    row.setOrganName(sporadicChargeInfo.getOrganName());
                 }
             }
             String paymentChannel = "";