소스 검색

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

zouxuan 5 년 전
부모
커밋
a3dbcff7d2

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDetailDao.java

@@ -37,9 +37,10 @@ public interface StudentPaymentOrderDetailDao extends BaseDAO<Long, StudentPayme
 
     /**
      * 查询用户报名订单
+     *
      * @param userId
      * @param status
      * @return
      */
-    List<StudentPaymentOrderDetail> findUserApplyOrder(Integer userId,DealStatusEnum status);
+    List<StudentPaymentOrderDetail> findUserApplyOrder(@Param("userId") Integer userId, @Param("status") DealStatusEnum status);
 }

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

@@ -91,6 +91,10 @@ public class StudentRegistration {
     @ApiModelProperty(value = "班级名称", required = true)
     private String classGroupName;
 
+    @ApiModelProperty(value = "临时课程费用", required = true)
+    private BigDecimal temporaryCourseFee;
+
+
     public ClassGroupStudentStatusEnum getMusicGroupStatus() {
         return musicGroupStatus;
     }
@@ -297,4 +301,12 @@ public class StudentRegistration {
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
+
+    public BigDecimal getTemporaryCourseFee() {
+        return temporaryCourseFee;
+    }
+
+    public void setTemporaryCourseFee(BigDecimal temporaryCourseFee) {
+        this.temporaryCourseFee = temporaryCourseFee;
+    }
 }

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

@@ -4,6 +4,7 @@ import com.ym.mec.biz.dal.dto.MusicGroupRegRespDto;
 import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
@@ -72,5 +73,5 @@ public interface MusicGroupSubjectPlanService extends BaseService<Integer, Music
      * @param subjectId
      * @return
      */
-    MusicGroupSubjectGoodsAndInfoDto getStudentGoodsAndInfo(String musicGroupId, Integer subjectId, MusicGroupStudentFee musicGroupStudentFee);
+    MusicGroupSubjectGoodsAndInfoDto getStudentGoodsAndInfo(String musicGroupId, Integer subjectId, StudentRegistration studentRegistration);
 }

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java

@@ -133,7 +133,7 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
     }
 
     @Override
-    public MusicGroupSubjectGoodsAndInfoDto getStudentGoodsAndInfo(String musicGroupId, Integer subjectId, MusicGroupStudentFee musicGroupStudentFee) {
+    public MusicGroupSubjectGoodsAndInfoDto getStudentGoodsAndInfo(String musicGroupId, Integer subjectId, StudentRegistration studentRegistration) {
         MusicGroup musicGroup = musicGroupService.get(musicGroupId);
 
         //课程形态
@@ -141,9 +141,9 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
 
         //乐团计划及收费信息
         MusicGroupSubjectPlan musicOneSubjectClassPlan = this.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
-        musicOneSubjectClassPlan.setFee(musicGroupStudentFee.getTemporaryCourseFee());
+        musicOneSubjectClassPlan.setFee(studentRegistration.getTemporaryCourseFee());
 
-        List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailDao.findUserApplyOrder(musicGroupStudentFee.getUserId(), DealStatusEnum.WAIT_PAY);
+        List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailDao.findUserApplyOrder(studentRegistration.getUserId(), DealStatusEnum.WAIT_PAY);
 
         String goodsIds = orderDetails.stream().filter(orderDetail -> orderDetail.getGoodsIdList() != null).map(orderDetail -> orderDetail.getGoodsIdList()).collect(Collectors.joining(","));
 

+ 44 - 36
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -275,14 +275,14 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (goodsList != null) {
             for (Goods goods : goodsList) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
-                studentPaymentOrderDetail4goods.setType(OrderDetailTypeEnum.ACCESSORIES);
+                OrderDetailTypeEnum orderDetailType = goods.getType().equals(GoodsType.INSTRUMENT) ? OrderDetailTypeEnum.MUSICAL : OrderDetailTypeEnum.ACCESSORIES;
+                studentPaymentOrderDetail4goods.setType(orderDetailType);
                 studentPaymentOrderDetail4goods.setPrice(goods.getGroupPurchasePrice());
                 studentPaymentOrderDetail4goods.setGoodsIdList(goods.getId().toString());
                 studentPaymentOrderDetail4goods.setCreateTime(date);
                 studentPaymentOrderDetail4goods.setUpdateTime(date);
                 studentPaymentOrderDetail4goods.setPaymentOrderId(studentPaymentOrder.getId());
                 studentPaymentOrderDetailList.add(studentPaymentOrderDetail4goods);
-
             }
         }
         //单独教谱
@@ -305,8 +305,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
         int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
         musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
-        if (musicOneSubjectClassPlan.getPaidStudentNum() > musicOneSubjectClassPlan.getExpectedStudentNum()) {
-            throw new Exception("乐团人数已满");
+        if (studentRegistration.getTemporaryCourseFee() == null && musicOneSubjectClassPlan.getPaidStudentNum() > musicOneSubjectClassPlan.getExpectedStudentNum()) {
+            throw new BizException("乐团人数已满");
         }
         musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
         return studentPaymentOrder;
@@ -364,7 +364,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (goodsList != null) {
             for (Goods goods : goodsList) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
-                studentPaymentOrderDetail4goods.setType(OrderDetailTypeEnum.ACCESSORIES);
+                OrderDetailTypeEnum orderDetailType = goods.getType().equals(GoodsType.INSTRUMENT) ? OrderDetailTypeEnum.MUSICAL : OrderDetailTypeEnum.ACCESSORIES;
+                studentPaymentOrderDetail4goods.setType(orderDetailType);
                 studentPaymentOrderDetail4goods.setPrice(goods.getGroupPurchasePrice());
                 studentPaymentOrderDetail4goods.setGoodsIdList(goods.getId().toString());
                 studentPaymentOrderDetail4goods.setCreateTime(date);
@@ -407,7 +408,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Transactional(rollbackFor = Exception.class)
     public Integer insertStudent(StudentAddDto studentAddDto) throws Exception {
         StudentRegistration studentRegistration = studentAddDto.getStudentRegistration();
-        if(studentRegistration == null){
+        if (studentRegistration == null) {
             throw new Exception("参数校验失败");
         }
         String musicGroupId = studentRegistration.getMusicGroupId();
@@ -445,6 +446,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             studentRegistration.setUserId(userId);
             studentRegistration.setPaymentStatus(PaymentStatusEnum.OPEN);
             studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
+            studentRegistration.setTemporaryCourseFee(studentAddDto.getTemporaryCourseFee());
             //学生报名表
             studentRegistrationDao.insertBasic(studentRegistration);
             MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
@@ -452,7 +454,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
             sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
             //增加报名学生数
-            musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(),1);
+            musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
             Integer classGroupId = studentRegistration.getClassGroupId();
             if (classGroupId != null) {
                 ClassGroup classGroup = classGroupDao.get(classGroupId);
@@ -488,13 +490,13 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 calendar.add(Calendar.MONTH, month);
                 DateUtil.getFirstDayOfMonth(calendar.getTime());
                 //保存乐团学生费用表
-                if(studentAddDto.getCourseFee() == null){
+                if (studentAddDto.getCourseFee() == null) {
                     MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
                     studentAddDto.setCourseFee(musicOneSubjectClassPlan.getFee());
                 }
                 musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
                         userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
-                        DateUtil.getFirstDayOfMonth(calendar.getTime()), studentAddDto.getTemporaryCourseFee()));
+                        DateUtil.getFirstDayOfMonth(calendar.getTime()), null));
                 //生成订单
                 StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
                 studentPaymentOrder.setUserId(userId);
@@ -505,7 +507,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 studentPaymentOrderService.insert(studentPaymentOrder);
                 //生成订单明细
                 List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentAddDto.getStudentPaymentOrderDetails();
-                studentPaymentOrderDetails.forEach(e->{e.setPaymentOrderId(studentPaymentOrder.getId());});
+                studentPaymentOrderDetails.forEach(e -> {
+                    e.setPaymentOrderId(studentPaymentOrder.getId());
+                });
                 studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetails);
             }
             return userId;
@@ -540,35 +544,39 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
 
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
-            studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
-            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
-            studentRegistrationDao.update(studentRegistration);
 
-            //获取当前月
-            Integer month = Integer.parseInt(DateUtil.getMonth(nowDate));
-            //获取下次缴费月份
-            List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByMusicGroupId(studentRegistration.getMusicGroupId());
-            List<Integer> months = musicGroupPaymentCalenders.stream().map(e -> e.getPaymentMonth()).collect(Collectors.toList());
-            for (int i = 0; i < months.size(); i++) {
-                if (months.get(i).equals(month)) {
-                    month = i == months.size() - 1 ? months.get(0) : months.get(i + 1);
+            if (studentRegistration.getTemporaryCourseFee() != null) {
+                //获取当前月
+                Integer month = Integer.parseInt(DateUtil.getMonth(nowDate));
+                //获取下次缴费月份
+                List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByMusicGroupId(studentRegistration.getMusicGroupId());
+                List<Integer> months = musicGroupPaymentCalenders.stream().map(e -> e.getPaymentMonth()).collect(Collectors.toList());
+                for (int i = 0; i < months.size(); i++) {
+                    if (months.get(i).equals(month)) {
+                        month = i == months.size() - 1 ? months.get(0) : months.get(i + 1);
+                    }
                 }
+                Calendar calendar = Calendar.getInstance();
+                calendar.add(Calendar.MONTH, month);
+
+                //加入缴费周期
+                MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee();
+                musicGroupStudentFee.setMusicGroupId(studentRegistration.getMusicGroupId());
+                musicGroupStudentFee.setUserId(studentRegistration.getUserId());
+                musicGroupStudentFee.setCourseFee(musicOneSubjectClassPlan.getFee());
+                musicGroupStudentFee.setCreateTime(nowDate);
+                musicGroupStudentFee.setUpdateTime(nowDate);
+                musicGroupStudentFee.setNextPaymentDate(DateUtil.getFirstDayOfMonth(calendar.getTime()));
+                musicGroupStudentFee.setLatestPaidTime(nowDate);
+                musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
+                musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
+                musicGroupStudentFeeDao.insert(musicGroupStudentFee);
             }
-            Calendar calendar = Calendar.getInstance();
-            calendar.add(Calendar.MONTH, month);
-
-            //加入缴费周期
-            MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee();
-            musicGroupStudentFee.setMusicGroupId(studentRegistration.getMusicGroupId());
-            musicGroupStudentFee.setUserId(studentRegistration.getUserId());
-            musicGroupStudentFee.setCourseFee(musicOneSubjectClassPlan.getFee());
-            musicGroupStudentFee.setCreateTime(nowDate);
-            musicGroupStudentFee.setUpdateTime(nowDate);
-            musicGroupStudentFee.setNextPaymentDate(DateUtil.getFirstDayOfMonth(calendar.getTime()));
-            musicGroupStudentFee.setLatestPaidTime(nowDate);
-            musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
-            musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
-            musicGroupStudentFeeDao.insert(musicGroupStudentFee);
+
+            studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
+            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
+            studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
+            studentRegistrationDao.update(studentRegistration);
 
             //插入交易明细
             SysUserCashAccount cashAccount = sysUserCashAccountService.get(studentRegistration.getUserId());

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

@@ -31,6 +31,7 @@
                 typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="music_group_status_" property="musicGroupStatus"/>
         <result column="class_group_name_" property="classGroupName"/>
+        <result column="temporary_course_fee_" property="temporaryCourseFee" />
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.StudentInfo" id="StudentInfo">
@@ -98,6 +99,7 @@
             <if test="paymentStatus!=null">payment_status_,</if>
             <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="createTime!=null">create_time_,</if>
             <if test="updateTime!=null">update_time_,</if>
         </trim>
@@ -126,12 +128,13 @@
             <if test="musicGroupStatus!=null">
                 #{musicGroupStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
+            <if test="temporaryCourseFee != null">#{temporaryCourseFee},</if>
             <if test="createTime!=null">#{createTime},</if>
             <if test="updateTime!=null">NOW(),</if>
         </trim>
     </insert>
 
-    <!-- 根据主键查询一条记录 -->
+    <!-- 根据主键更新一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentRegistration">
         UPDATE student_registration
         <set>
@@ -183,6 +186,9 @@
             <if test="actualSubjectId != null">
                 class_group_id_ = #{classGroupId},
             </if>
+            <if test="temporaryCourseFee != null">
+                temporary_course_fee_ =#{temporaryCourseFee},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 9 - 3
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -100,9 +100,9 @@ public class MusicGroupController extends BaseController {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser != null && sysUser.getId() > 0) {
             Integer userId = sysUser.getId();
-            MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
-            if (musicGroupStudentFee != null && musicGroupStudentFee.getTemporaryCourseFee() != null) {
-                return succeed(musicGroupSubjectPlanService.getStudentGoodsAndInfo(musicGroupId, subjectId, musicGroupStudentFee));
+            StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+            if (studentRegistration != null && studentRegistration.getTemporaryCourseFee() != null) {
+                return succeed(musicGroupSubjectPlanService.getStudentGoodsAndInfo(musicGroupId, subjectId, studentRegistration));
             }
         }
 
@@ -224,6 +224,9 @@ public class MusicGroupController extends BaseController {
         //获取课程价格
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
         BigDecimal courseFee = musicOneSubjectClassPlan.getFee();
+        if(studentRegistration.getTemporaryCourseFee() != null){
+            courseFee = studentRegistration.getTemporaryCourseFee();
+        }
         orderAmount = orderAmount.add(courseFee);
 
 
@@ -312,6 +315,9 @@ public class MusicGroupController extends BaseController {
         //获取课程价格
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
         BigDecimal courseFee = musicOneSubjectClassPlan.getFee();
+        if(studentRegistration.getTemporaryCourseFee() != null){
+            courseFee = studentRegistration.getTemporaryCourseFee();
+        }
         orderAmount = orderAmount.add(courseFee);
 
 

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/config/ResourceServerConfig.java

@@ -25,7 +25,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 	@Override
 	public void configure(HttpSecurity http) throws Exception {
 		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
-				.authorizeRequests().antMatchers("/task/**").hasIpAddress("0.0.0.0/0").antMatchers("/v2/api-docs").permitAll().anyRequest().authenticated()
+				.authorizeRequests().antMatchers("/task/**").hasIpAddress("0.0.0.0/0").antMatchers("/v2/api-docs","/classGroup/highClassGroups").permitAll().anyRequest().authenticated()
 				.and().httpBasic();
 	}