Browse Source

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

zouxuan 5 năm trước cách đây
mục cha
commit
b9679dca42

+ 7 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleEvaluateServiceImpl.java

@@ -2,28 +2,25 @@ package com.ym.mec.biz.service.impl;
 
 
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao;
+import com.ym.mec.biz.dal.dao.PracticeGroupDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
 import com.ym.mec.biz.dal.entity.PracticeGroup;
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.service.CourseScheduleEvaluateService;
-import com.ym.mec.biz.service.SysConfigService;
-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.redis.service.RedisCache;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
-import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
-import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
-import com.ym.mec.util.http.HttpUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
 
 
 @Service
@@ -47,6 +44,7 @@ public class CourseScheduleEvaluateServiceImpl extends BaseServiceImpl<Long, Cou
 
 
     @Override
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public boolean addStudyReport(CourseScheduleEvaluate courseScheduleEvaluate) {
         ClassGroup classGroup = classGroupDao.get(courseScheduleEvaluate.getClassGroupId());
         if (classGroup == null) {

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1648,6 +1648,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 newCourseSchedule.setGroupType(oldCourseSchedule.getGroupType());
             }
 
+            if(Objects.isNull(newCourseSchedule.getMusicGroupId())){
+                newCourseSchedule.setMusicGroupId(oldCourseSchedule.getMusicGroupId());
+            }
+
             if (Objects.isNull(newCourseSchedule.getTeachMode())) {
                 newCourseSchedule.setTeachMode(oldCourseSchedule.getTeachMode());
             }

+ 17 - 51
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -2659,7 +2659,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             }
             PracticeGroup userLatestPracticeGroup = practiceGroupDao.findUserPracticeGroup(practiceGroupBuyParams.getStudentId(),practiceGroupBuyParams.getGroupId());
             if(Objects.nonNull(userLatestPracticeGroup)){
-                if(userLatestPracticeGroup.getGroupStatus().equals(GroupStatusEnum.NORMAL)&&userLatestPracticeGroup.getCoursesExpireDate().before(now)){
+                if(!userLatestPracticeGroup.getGroupStatus().equals(GroupStatusEnum.NORMAL)||userLatestPracticeGroup.getCoursesExpireDate().before(now)){
                     throw new BizException("当前课程组已经无法续费,请选择购买");
                 }
                 LocalDate lastExpiredDay=LocalDateTime.ofInstant(userLatestPracticeGroup.getCoursesExpireDate().toInstant(),DateUtil.zoneId).toLocalDate();
@@ -3001,20 +3001,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         Map<DealStatusEnum, Long> statusOrderNumMap = userGroupOrders.stream().collect(Collectors.groupingBy(StudentPaymentOrder::getStatus, Collectors.counting()));
         Long successOrderNum=statusOrderNumMap.get(DealStatusEnum.SUCCESS);
         if(Objects.nonNull(successOrderNum)&&successOrderNum>0){
-            if(order.getStatus().equals(DealStatusEnum.FAILED)&&Objects.nonNull(order.getBalancePaymentAmount())){
-                sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课购买失败");
-                SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
-                sysUserIncomeCashAccountDetail.setUserId(order.getUserId());
-                sysUserIncomeCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
-                sysUserIncomeCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-                sysUserIncomeCashAccountDetail.setAmount(order.getBalancePaymentAmount());
-                sysUserIncomeCashAccountDetail.setBalance(sysUserCashAccount.getBalance().add(order.getBalancePaymentAmount()));
-                sysUserIncomeCashAccountDetail.setAttribute(order.getTransNo());
-                sysUserIncomeCashAccountDetail.setChannel(studentPaymentOrder.getPaymentChannel());
-                sysUserIncomeCashAccountDetail.setComAmount(studentPaymentOrder.getComAmount());
-                sysUserIncomeCashAccountDetail.setPerAmount(studentPaymentOrder.getPerAmount());
-                sysUserIncomeCashAccountDetail.setDescription("网管课支付失败,退还余额");
-                sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
+            if(order.getStatus().equals(DealStatusEnum.FAILED)&&Objects.nonNull(order.getBalancePaymentAmount())&&order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO)>0){
+                sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课支付失败,退还余额");
             }
             studentPaymentOrderDao.update(order);
             return;
@@ -3022,20 +3010,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
         Long ingOrderNum=statusOrderNumMap.get(DealStatusEnum.ING);
         if(Objects.nonNull(ingOrderNum)&&ingOrderNum>1&&order.getStatus().equals(DealStatusEnum.FAILED)){
-            if(Objects.nonNull(order.getBalancePaymentAmount())){
-                sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课购买失败");
-                SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
-                sysUserIncomeCashAccountDetail.setUserId(order.getUserId());
-                sysUserIncomeCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
-                sysUserIncomeCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-                sysUserIncomeCashAccountDetail.setAmount(order.getBalancePaymentAmount());
-                sysUserIncomeCashAccountDetail.setBalance(sysUserCashAccount.getBalance().add(order.getBalancePaymentAmount()));
-                sysUserIncomeCashAccountDetail.setAttribute(order.getTransNo());
-                sysUserIncomeCashAccountDetail.setChannel(studentPaymentOrder.getPaymentChannel());
-                sysUserIncomeCashAccountDetail.setComAmount(studentPaymentOrder.getComAmount());
-                sysUserIncomeCashAccountDetail.setPerAmount(studentPaymentOrder.getPerAmount());
-                sysUserIncomeCashAccountDetail.setDescription("网管课支付失败,退还余额");
-                sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
+            if(Objects.nonNull(order.getBalancePaymentAmount())&&order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO)>0){
+                sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课支付失败,退还余额");
             }
             studentPaymentOrderDao.update(order);
             return;
@@ -3044,20 +3020,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         if(order.getStatus().equals(DealStatusEnum.SUCCESS)){
             courseScheduleDao.updateGroupCourseLock(order.getMusicGroupId(),GroupType.PRACTICE,0);
         }else{
-            if(Objects.nonNull(order.getBalancePaymentAmount())){
-                sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课购买失败");
-                SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
-                sysUserIncomeCashAccountDetail.setUserId(order.getUserId());
-                sysUserIncomeCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
-                sysUserIncomeCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-                sysUserIncomeCashAccountDetail.setAmount(order.getBalancePaymentAmount());
-                sysUserIncomeCashAccountDetail.setBalance(sysUserCashAccount.getBalance().add(order.getBalancePaymentAmount()));
-                sysUserIncomeCashAccountDetail.setAttribute(order.getTransNo());
-                sysUserIncomeCashAccountDetail.setChannel(studentPaymentOrder.getPaymentChannel());
-                sysUserIncomeCashAccountDetail.setComAmount(studentPaymentOrder.getComAmount());
-                sysUserIncomeCashAccountDetail.setPerAmount(studentPaymentOrder.getPerAmount());
-                sysUserIncomeCashAccountDetail.setDescription("网管课支付失败,退还余额");
-                sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
+            if(Objects.nonNull(order.getBalancePaymentAmount())&&order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO)>0){
+                sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课支付失败,退还余额");
             }
             studentPaymentOrderDao.update(order);
             PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(order.getMusicGroupId()));
@@ -3102,8 +3066,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
         PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(order.getMusicGroupId()));
         if(practiceGroup.getGroupStatus().equals(GroupStatusEnum.CANCEL)){
+            order.setVersion(order.getVersion()+1);
             order.setMemo("支付成功,在重新支付时,用户选择取消");
             studentPaymentOrderDao.update(order);
+            return;
         }
         ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(order.getMusicGroupId(), GroupType.PRACTICE.getCode());
 
@@ -3406,16 +3372,16 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             if(Objects.isNull(userFreePracticeGroup)){
                 continue;
             }
-            ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(userFreePracticeGroup.getId().toString(), GroupType.PRACTICE.getCode());
-
-            CourseScheduleEvaluate courseScheduleEvaluate = courseScheduleEvaluateDao.findByClassGroupId(classGroup.getId());
-            if(Objects.isNull(courseScheduleEvaluate)){
-                continue;
-            }
+//            ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(userFreePracticeGroup.getId().toString(), GroupType.PRACTICE.getCode());
+//
+//            CourseScheduleEvaluate courseScheduleEvaluate = courseScheduleEvaluateDao.findByClassGroupId(classGroup.getId());
+//            if(Objects.isNull(courseScheduleEvaluate)){
+//                continue;
+//            }
 
-            String pushUrl = baseApiUrl + "/#/reportDetail?classGroupId=" + classGroup.getId();
+            String pushUrl = baseApiUrl + "/#/reportDetail?classGroupId=" + report.getClassGroupId();
 
-            String smsUrl = baseApiUrl + "/#/transfer?url=" + baseApiUrl + "&hash=reportDetail&classGroupId=" + classGroup.getId();
+            String smsUrl = baseApiUrl + "/#/transfer?url=" + baseApiUrl + "&hash=reportDetail&classGroupId=" + report.getClassGroupId();
 
 //            SysUser student = sysUserFeignService.queryUserById(userFreePracticeGroup.getStudentId());
             SysUser student = teacherDao.getUser(userFreePracticeGroup.getStudentId());