|
@@ -26,9 +26,11 @@ import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.http.HttpStatus;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Isolation;
|
|
import org.springframework.transaction.annotation.Isolation;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
@@ -95,7 +97,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
- public void createCourseGroup(CourseGroupCreateDto courseGroupCreateInfo) {
|
|
|
|
|
|
+ public HttpResponseResult createCourseGroup(CourseGroupCreateDto courseGroupCreateInfo) {
|
|
CoursesGroup courseGroup = courseGroupCreateInfo.getCoursesGroup();
|
|
CoursesGroup courseGroup = courseGroupCreateInfo.getCoursesGroup();
|
|
CourseGenerateDto courseCycleInfo = courseGroupCreateInfo.getCourseCycleInfo();
|
|
CourseGenerateDto courseCycleInfo = courseGroupCreateInfo.getCourseCycleInfo();
|
|
if(Objects.isNull(courseGroup.getName())|| StringUtils.isBlank(courseGroup.getName())){
|
|
if(Objects.isNull(courseGroup.getName())|| StringUtils.isBlank(courseGroup.getName())){
|
|
@@ -121,6 +123,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
|
|
|
|
//总课程时长
|
|
//总课程时长
|
|
Integer totalCourseTime=courseCycleInfo.getCourseCount()*courseCycleInfo.getSingleClassMinutes();
|
|
Integer totalCourseTime=courseCycleInfo.getCourseCount()*courseCycleInfo.getSingleClassMinutes();
|
|
|
|
+
|
|
sysTenantAccountService.update(courseGroup.getTeacherId(), -totalCourseTime, "", SysTenantAccountDetail.TransType.CONSUME, "",BigDecimal.ZERO,"课程组创建");
|
|
sysTenantAccountService.update(courseGroup.getTeacherId(), -totalCourseTime, "", SysTenantAccountDetail.TransType.CONSUME, "",BigDecimal.ZERO,"课程组创建");
|
|
|
|
|
|
Teacher teacher = teacherDao.get(courseGroup.getTeacherId());
|
|
Teacher teacher = teacherDao.get(courseGroup.getTeacherId());
|
|
@@ -140,7 +143,14 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
newCourse.setStatus(CourseStatusEnum.NOT_START);
|
|
newCourse.setStatus(CourseStatusEnum.NOT_START);
|
|
newCourse.setName(courseGroup.getName());
|
|
newCourse.setName(courseGroup.getName());
|
|
}
|
|
}
|
|
- courseScheduleService.checkNewCourseSchedules(newCourses,false);
|
|
|
|
|
|
+ try {
|
|
|
|
+ courseScheduleService.checkNewCourseSchedules(newCourses,false);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
|
+ String errMessage;
|
|
|
|
+ errMessage="抱歉啦,当前所选时段组合,「" + teacher.getRealName() + "」老师已被预约,请重新选择时段或更换老师后重试。";
|
|
|
|
+ return BaseController.failed(HttpStatus.FOUND, errMessage);
|
|
|
|
+ }
|
|
|
|
|
|
CourseSchedule firstCourseSchedule = newCourses.stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
|
|
CourseSchedule firstCourseSchedule = newCourses.stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
|
|
if(firstCourseSchedule.getStartClassTime().before(now)){
|
|
if(firstCourseSchedule.getStartClassTime().before(now)){
|
|
@@ -221,6 +231,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
}
|
|
}
|
|
courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
teacherAttendanceDao.batchInsert(teacherAttendances);
|
|
teacherAttendanceDao.batchInsert(teacherAttendances);
|
|
|
|
+ return BaseController.succeed();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -389,8 +400,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
studentPaymentOrder.setVersion(0);
|
|
studentPaymentOrder.setVersion(0);
|
|
|
|
|
|
if(amount.compareTo(BigDecimal.ZERO)<=0){
|
|
if(amount.compareTo(BigDecimal.ZERO)<=0){
|
|
- this.orderCallback(studentPaymentOrder);
|
|
|
|
- return BaseController.succeed();
|
|
|
|
|
|
+ return this.orderCallback(studentPaymentOrder);
|
|
}else{
|
|
}else{
|
|
studentPaymentOrderService.insert(studentPaymentOrder);
|
|
studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
|
|
|
@@ -465,11 +475,11 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
@Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
- public void orderCallback(StudentPaymentOrder order) {
|
|
|
|
|
|
+ public HttpResponseResult orderCallback(StudentPaymentOrder order) {
|
|
if(order.getExpectAmount().compareTo(BigDecimal.ZERO)>0){
|
|
if(order.getExpectAmount().compareTo(BigDecimal.ZERO)>0){
|
|
StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.get(order.getId());
|
|
StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.get(order.getId());
|
|
if(!studentPaymentOrder.getStatus().equals(DealStatusEnum.ING)){
|
|
if(!studentPaymentOrder.getStatus().equals(DealStatusEnum.ING)){
|
|
- return;
|
|
|
|
|
|
+ return BaseController.succeed();
|
|
}
|
|
}
|
|
SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(order.getUserId());
|
|
SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(order.getUserId());
|
|
List<StudentPaymentOrder> userGroupOrders = studentPaymentOrderDao.findUserGroupOrders(order.getUserId(), order.getMusicGroupId(), order.getGroupType(),null);
|
|
List<StudentPaymentOrder> userGroupOrders = studentPaymentOrderDao.findUserGroupOrders(order.getUserId(), order.getMusicGroupId(), order.getGroupType(),null);
|
|
@@ -484,7 +494,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
order.setMemo("重复支付,进入余额");
|
|
order.setMemo("重复支付,进入余额");
|
|
}
|
|
}
|
|
studentPaymentOrderDao.update(order);
|
|
studentPaymentOrderDao.update(order);
|
|
- return;
|
|
|
|
|
|
+ return BaseController.succeed();
|
|
}
|
|
}
|
|
|
|
|
|
Long ingOrderNum=statusOrderNumMap.get(DealStatusEnum.ING);
|
|
Long ingOrderNum=statusOrderNumMap.get(DealStatusEnum.ING);
|
|
@@ -493,7 +503,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课支付失败,退还余额");
|
|
sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课支付失败,退还余额");
|
|
}
|
|
}
|
|
studentPaymentOrderDao.update(order);
|
|
studentPaymentOrderDao.update(order);
|
|
- return;
|
|
|
|
|
|
+ return BaseController.succeed();
|
|
}
|
|
}
|
|
|
|
|
|
if(order.getStatus().equals(DealStatusEnum.SUCCESS)){
|
|
if(order.getStatus().equals(DealStatusEnum.SUCCESS)){
|
|
@@ -507,7 +517,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
coursesGroup.setStatus(GroupStatusEnum.CANCEL);
|
|
coursesGroup.setStatus(GroupStatusEnum.CANCEL);
|
|
coursesGroupDao.update(coursesGroup);
|
|
coursesGroupDao.update(coursesGroup);
|
|
groupService.deleteGroupOtherInfo(order.getMusicGroupId(),GroupType.PRACTICE);
|
|
groupService.deleteGroupOtherInfo(order.getMusicGroupId(),GroupType.PRACTICE);
|
|
- return;
|
|
|
|
|
|
+ return BaseController.succeed();
|
|
}
|
|
}
|
|
studentPaymentOrderDao.update(order);
|
|
studentPaymentOrderDao.update(order);
|
|
|
|
|
|
@@ -552,7 +562,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
|
|
|
|
sysUserCashAccountService.updateBalance(order.getUserId(), order.getExpectAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "支付成功,但课程组不处于正常状态");
|
|
sysUserCashAccountService.updateBalance(order.getUserId(), order.getExpectAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "支付成功,但课程组不处于正常状态");
|
|
|
|
|
|
- return;
|
|
|
|
|
|
+ return BaseController.succeed();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
CoursesGroup coursesGroup = coursesGroupDao.get(Long.valueOf(order.getMusicGroupId()));
|
|
CoursesGroup coursesGroup = coursesGroupDao.get(Long.valueOf(order.getMusicGroupId()));
|
|
@@ -596,9 +606,18 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
|
|
courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
|
|
|
|
|
|
try {
|
|
try {
|
|
-// contractService.transferPracticeCoursesContract(order.getUserId(),classGroup.getTotalClassTimes(),practiceGroup.getCoursesStartDate(),practiceGroup.getCoursesExpireDate(),order.getExpectAmount());
|
|
|
|
|
|
+ courseScheduleService.checkNewCourseSchedules(groupNotStartCourses,false);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- LOGGER.error("对外课程组[{}]购买协议错误:{}",order.getMusicGroupId(),e.getMessage(),e.getMessage());
|
|
|
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
|
+ String errMessage;
|
|
|
|
+
|
|
|
|
+ String courseName=e.getMessage().substring(e.getMessage().indexOf(")-")+2);
|
|
|
|
+ courseName = courseName.substring(0,courseName.indexOf("("));
|
|
|
|
+ errMessage="抱歉啦,当前所选时段组合,与您现有课程「";
|
|
|
|
+ errMessage+=courseName;
|
|
|
|
+ errMessage+="」时段冲突,请选择其他时段重试。";
|
|
|
|
+
|
|
|
|
+ return BaseController.failed(HttpStatus.FOUND, errMessage);
|
|
}
|
|
}
|
|
|
|
|
|
List<ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
List<ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
@@ -607,6 +626,8 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
|
|
ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
|
|
// 创建群组
|
|
// 创建群组
|
|
imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
|
|
imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
|
|
|
|
+
|
|
|
|
+ return BaseController.succeed();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|