ソースを参照

增加分润财务订单

周箭河 5 年 前
コミット
ef3f9c512e

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

@@ -76,7 +76,7 @@ public interface CoursesGroupService extends BaseService<Long, CoursesGroup> {
      * @param courseGroupId:
      * @return void
      */
-    HttpResponseResult buyCourseGroup(Integer userId, Long courseGroupId, boolean isUseBalancePayment);
+    HttpResponseResult buyCourseGroup(Integer userId, Long courseGroupId, boolean isUseBalancePayment) throws Exception;
 
     HttpResponseResult orderCallback(StudentPaymentOrder studentPaymentOrder);
 

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

@@ -137,7 +137,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param isUseBalancePayment 是否使用余额付款
 	 * @return
 	 */
-	Map renew(String musicGroupId, Integer userId, boolean isUseBalancePayment);
+	Map renew(String musicGroupId, Integer userId, boolean isUseBalancePayment) throws Exception;
 
 	/**
 	 * 学生支付订单

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

@@ -227,7 +227,7 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
 	 * @param practiceGroupId:
 	 * @return com.ym.mec.common.entity.HttpResponseResult
 	 */
-	HttpResponseResult repay(Integer userId,Integer practiceGroupId, boolean useBalancePayment);
+	HttpResponseResult repay(Integer userId,Integer practiceGroupId, boolean useBalancePayment) throws Exception;
 
 	/**
 	 * @describe 更新历史陪练课程组状态

+ 147 - 145
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupServiceImpl.java

@@ -89,6 +89,8 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
     private SysMessageService sysMessageService;
     @Autowired
     private GroupDao groupDao;
+    @Autowired
+    private StudentPaymentRouteOrderService studentPaymentRouteOrderService;
 
     private static final Logger LOGGER = LoggerFactory
             .getLogger(PracticeGroupService.class);
@@ -103,32 +105,32 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
     public HttpResponseResult createCourseGroup(CourseGroupCreateDto courseGroupCreateInfo) {
         CoursesGroup courseGroup = courseGroupCreateInfo.getCoursesGroup();
         CourseGenerateDto courseCycleInfo = courseGroupCreateInfo.getCourseCycleInfo();
-        if(Objects.isNull(courseGroup.getName())|| StringUtils.isBlank(courseGroup.getName())){
+        if (Objects.isNull(courseGroup.getName()) || StringUtils.isBlank(courseGroup.getName())) {
             throw new BizException("请填写课程名称");
         }
-        if(Objects.isNull(courseGroup.getSubjectId())){
+        if (Objects.isNull(courseGroup.getSubjectId())) {
             throw new BizException("请选择科目");
         }
-        if(Objects.isNull(courseGroup.getMaxStudentNum())){
+        if (Objects.isNull(courseGroup.getMaxStudentNum())) {
             throw new BizException("请填写班级人数");
         }
-        if(Objects.isNull(courseCycleInfo.getSingleClassMinutes())){
+        if (Objects.isNull(courseCycleInfo.getSingleClassMinutes())) {
             throw new BizException("请填写课程时长");
         }
-        if(Objects.isNull(courseCycleInfo.getCourseCreateStartTime())){
+        if (Objects.isNull(courseCycleInfo.getCourseCreateStartTime())) {
             throw new BizException("请填写课程开始时间");
         }
-        if(Objects.isNull(courseCycleInfo.getCourseCount())){
+        if (Objects.isNull(courseCycleInfo.getCourseCount())) {
             throw new BizException("请填写课程数量");
         }
 
         studentDao.lockUser(courseGroup.getTeacherId());
 
         //总课程时长
-        Integer totalCourseTime=courseCycleInfo.getCourseCount()*courseCycleInfo.getSingleClassMinutes();
+        Integer totalCourseTime = courseCycleInfo.getCourseCount() * courseCycleInfo.getSingleClassMinutes();
 
         try {
-            sysTenantAccountService.update(courseGroup.getTeacherId(), -totalCourseTime, "", SysTenantAccountDetail.TransType.CONSUME, "",BigDecimal.ZERO,"课程组创建");
+            sysTenantAccountService.update(courseGroup.getTeacherId(), -totalCourseTime, "", SysTenantAccountDetail.TransType.CONSUME, "", BigDecimal.ZERO, "课程组创建");
         } catch (Exception e) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return BaseController.failed("余额不足,请充值。");
@@ -136,11 +138,11 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
 
         Teacher teacher = teacherDao.get(courseGroup.getTeacherId());
 
-        Date now=new Date();
+        Date now = new Date();
         courseGroup.setSingleClassMinutes(courseCycleInfo.getSingleClassMinutes());
         courseGroup.setStatus(GroupStatusEnum.NORMAL);
         courseGroup.setOrganId(teacher.getTeacherOrganId());
-        List<CourseSchedule> newCourses = courseScheduleService.createCourses(courseGroupCreateInfo.getCourseCycleInfo(),true);
+        List<CourseSchedule> newCourses = courseScheduleService.createCourses(courseGroupCreateInfo.getCourseCycleInfo(), true);
         for (CourseSchedule newCourse : newCourses) {
             newCourse.setTeachMode(TeachModeEnum.ONLINE);
             newCourse.setGroupType(GroupType.COMM);
@@ -153,33 +155,33 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
             newCourse.setOrganId(courseGroup.getOrganId());
         }
         try {
-            courseScheduleService.checkNewCourseSchedules(newCourses,false);
+            courseScheduleService.checkNewCourseSchedules(newCourses, false);
         } catch (Exception e) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             String errMessage;
-            String courseName=e.getMessage().substring(e.getMessage().indexOf(")-")+2);
-            courseName = courseName.substring(0,courseName.indexOf("("));
+            String courseName = e.getMessage().substring(e.getMessage().indexOf(")-") + 2);
+            courseName = courseName.substring(0, courseName.indexOf("("));
             String courseTime = e.getMessage().substring(e.getMessage().indexOf("在") + 1);
             courseTime = courseTime.substring(0, courseTime.indexOf("至"));
-            errMessage="现在课程:";
-            errMessage+=courseName;
-            errMessage+="<br/>冲突时间:";
-            errMessage+=courseTime;
+            errMessage = "现在课程:";
+            errMessage += courseName;
+            errMessage += "<br/>冲突时间:";
+            errMessage += courseTime;
             return BaseController.failed(HttpStatus.FOUND, errMessage);
         }
 
         CourseSchedule firstCourseSchedule = newCourses.stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
-        if(firstCourseSchedule.getStartClassTime().before(now)){
+        if (firstCourseSchedule.getStartClassTime().before(now)) {
             throw new BizException("开课时间不可小于当前时间");
         }
         CourseSchedule latestCourseSchedule = newCourses.stream().max(Comparator.comparing(CourseSchedule::getEndClassTime)).get();
         courseGroup.setCoursesStartDate(firstCourseSchedule.getStartClassTime());
         courseGroup.setCoursesEndDate(latestCourseSchedule.getEndClassTime());
 
-        JSONArray courseTimesArray=new JSONArray();
+        JSONArray courseTimesArray = new JSONArray();
         for (CourseTimeDto courseTime : courseCycleInfo.getCourseTimes()) {
-            JSONObject courseTimeObject=new JSONObject();
-            courseTimeObject.put(String.valueOf(courseTime.getDayOfWeek()),courseTime.getStartClassTime());
+            JSONObject courseTimeObject = new JSONObject();
+            courseTimeObject.put(String.valueOf(courseTime.getDayOfWeek()), courseTime.getStartClassTime());
             courseTimesArray.add(courseTimeObject);
         }
 
@@ -252,7 +254,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
 
     @Override
     public PageInfo findTeacherCourseGroups(Integer teacherId, GroupCourseScheduleQueryInfo queryInfo) {
-        if(Objects.isNull(teacherId)){
+        if (Objects.isNull(teacherId)) {
             throw new BizException("请指定老师");
         }
 
@@ -261,7 +263,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         MapUtil.populateMap(params, queryInfo);
         params.put("teacherId", teacherId);
 
-        List<CourseGroupTeacherCardDto> groupCards=new ArrayList<>();
+        List<CourseGroupTeacherCardDto> groupCards = new ArrayList<>();
         int count = coursesGroupDao.countTeacherGroups(params);
         if (count > 0) {
             pageInfo.setTotal(count);
@@ -283,9 +285,9 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
             List<GroupValidDateDto> groupsValidate = courseScheduleDao.findGroupsValidate(groupIds, GroupType.COMM);
             Map<String, GroupValidDateDto> groupValidateMap = groupsValidate.stream().collect(Collectors.toMap(GroupValidDateDto::getGroupId, e -> e));
 
-            groupCards=new ArrayList<>();
+            groupCards = new ArrayList<>();
             for (CoursesGroup teacherCourseGroup : teacherCourseGroups) {
-                CourseGroupTeacherCardDto groupCard=new CourseGroupTeacherCardDto();
+                CourseGroupTeacherCardDto groupCard = new CourseGroupTeacherCardDto();
                 groupCard.setId(teacherCourseGroup.getId());
                 groupCard.setGroupType(GroupType.COMM);
                 groupCard.setName(teacherCourseGroup.getName());
@@ -295,20 +297,20 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
                 groupCard.setSubjectName(idSubjectMap.get(teacherCourseGroup.getSubjectId()).getName());
                 GroupCourseTimesDto groupCourseTimesInfo = groupCourseTimesInfoMap.get(String.valueOf(teacherCourseGroup.getId()));
                 GroupValidDateDto groupValidDate = groupValidateMap.get(String.valueOf(teacherCourseGroup.getId()));
-                if(Objects.nonNull(groupValidDate)){
+                if (Objects.nonNull(groupValidDate)) {
                     groupCard.setCoursesStartDate(groupValidDate.getStartDate());
                     groupCard.setCoursesEndDate(groupValidDate.getEndDate());
                 }
                 groupCard.setClassGroupId(groupCourseTimesInfo.getClassGroupId());
                 groupCard.setTotalCourseTimes(groupCourseTimesInfo.getTotalCourseTimes());
                 groupCard.setSurplusClassTimes(groupCourseTimesInfo.getSurplusClassTimes());
-                groupCard.setCurrentClassTimes(groupCard.getTotalCourseTimes()-groupCard.getSurplusClassTimes());
+                groupCard.setCurrentClassTimes(groupCard.getTotalCourseTimes() - groupCard.getSurplusClassTimes());
                 List<ClassGroupStudentMapper> groupStudents = groupStudentsMap.get(String.valueOf(teacherCourseGroup.getId()));
-                if(!CollectionUtils.isEmpty(groupStudents)){
+                if (!CollectionUtils.isEmpty(groupStudents)) {
                     List<String> userNames = groupStudents.stream().map(ClassGroupStudentMapper::getUserName).collect(Collectors.toList());
-                    groupCard.setStudentNames(StringUtils.join(userNames,","));
-                    groupCard.setStudentIsFull(groupStudents.size()>=teacherCourseGroup.getMaxStudentNum()?1:0);
-                }else{
+                    groupCard.setStudentNames(StringUtils.join(userNames, ","));
+                    groupCard.setStudentIsFull(groupStudents.size() >= teacherCourseGroup.getMaxStudentNum() ? 1 : 0);
+                } else {
                     groupCard.setStudentIsFull(3);
                 }
                 groupCards.add(groupCard);
@@ -324,7 +326,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 
-        List<CourseGroupExtendDto> teacherCourseGroups=new ArrayList<>();
+        List<CourseGroupExtendDto> teacherCourseGroups = new ArrayList<>();
         int count = coursesGroupDao.countTeacherGroupsWithWeb(params);
         if (count > 0) {
             pageInfo.setTotal(count);
@@ -335,29 +337,29 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
             Map<String, Integer> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, GroupBaseCourseInfoDto::getStudentNum));
 
             List<GroupBaseCourseInfoDto> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
-            Map<String, GroupBaseCourseInfoDto> groupBaseCourseInfoMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e));
+            Map<String, GroupBaseCourseInfoDto> groupBaseCourseInfoMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e -> e));
 
             List<GroupBaseCourseInfoDto> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
-            Map<String, Integer> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e.getCurrentClassTimes()));
+            Map<String, Integer> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e -> e.getCurrentClassTimes()));
 
             for (CourseGroupExtendDto teacherCourseGroup : teacherCourseGroups) {
-                if(Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
+                if (Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
                     teacherCourseGroup.setStudentNum(groupStudentNumMap.get(teacherCourseGroup.getId().toString()).intValue());
                 }
                 GroupBaseCourseInfoDto groupBaseCourseInfo = groupBaseCourseInfoMap.get(teacherCourseGroup.getId().toString());
-                if(Objects.nonNull(groupBaseCourseInfo)){
+                if (Objects.nonNull(groupBaseCourseInfo)) {
                     teacherCourseGroup.setTotalClassTimes(groupBaseCourseInfo.getTotalClassTimes());
                     teacherCourseGroup.setFirstClassesStartTime(groupBaseCourseInfo.getFirstClassesStartTime());
                     teacherCourseGroup.setLastClassesEndTime(groupBaseCourseInfo.getLastClassesEndTime());
                 }
-                if(Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
+                if (Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
                     teacherCourseGroup.setCurrentClassTimes(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
                 }
-                if(Objects.nonNull(teacherCourseGroup.getTotalClassTimes())){
-                    teacherCourseGroup.setGroupClassesTotalDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getTotalClassTimes());
+                if (Objects.nonNull(teacherCourseGroup.getTotalClassTimes())) {
+                    teacherCourseGroup.setGroupClassesTotalDuration(teacherCourseGroup.getSingleClassMinutes() * teacherCourseGroup.getTotalClassTimes());
                 }
-                if(Objects.nonNull(teacherCourseGroup.getCurrentClassTimes())){
-                    teacherCourseGroup.setGroupClassesConsumeDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getCurrentClassTimes());
+                if (Objects.nonNull(teacherCourseGroup.getCurrentClassTimes())) {
+                    teacherCourseGroup.setGroupClassesConsumeDuration(teacherCourseGroup.getSingleClassMinutes() * teacherCourseGroup.getCurrentClassTimes());
                 }
             }
         }
@@ -371,7 +373,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 
-        List<CourseGroupExtendDto> teacherCourseGroups=new ArrayList<>();
+        List<CourseGroupExtendDto> teacherCourseGroups = new ArrayList<>();
         int count = coursesGroupDao.countStudentGroupsWithWeb(params);
         if (count > 0) {
             pageInfo.setTotal(count);
@@ -383,32 +385,32 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
             Map<String, Integer> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, GroupBaseCourseInfoDto::getStudentNum));
 
             List<GroupBaseCourseInfoDto> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
-            Map<String, GroupBaseCourseInfoDto> groupBaseCourseInfoMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e));
+            Map<String, GroupBaseCourseInfoDto> groupBaseCourseInfoMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e -> e));
 
             List<GroupBaseCourseInfoDto> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
-            Map<String, Integer> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e.getCurrentClassTimes()));
+            Map<String, Integer> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e -> e.getCurrentClassTimes()));
 
             List<SimpleUserDto> teachers = teacherDao.findSimpleTeachers(teacherIds);
             Map<Integer, String> idNameMap = teachers.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, SimpleUserDto::getUserName));
 
             for (CourseGroupExtendDto teacherCourseGroup : teacherCourseGroups) {
-                if(Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
+                if (Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
                     teacherCourseGroup.setStudentNum(groupStudentNumMap.get(teacherCourseGroup.getId().toString()).intValue());
                 }
                 GroupBaseCourseInfoDto groupBaseCourseInfo = groupBaseCourseInfoMap.get(teacherCourseGroup.getId().toString());
-                if(Objects.nonNull(groupBaseCourseInfo)){
+                if (Objects.nonNull(groupBaseCourseInfo)) {
                     teacherCourseGroup.setTotalClassTimes(groupBaseCourseInfo.getTotalClassTimes());
                     teacherCourseGroup.setFirstClassesStartTime(groupBaseCourseInfo.getFirstClassesStartTime());
                     teacherCourseGroup.setLastClassesEndTime(groupBaseCourseInfo.getLastClassesEndTime());
                 }
-                if(Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
+                if (Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
                     teacherCourseGroup.setCurrentClassTimes(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
                 }
-                if(Objects.nonNull(teacherCourseGroup.getTotalClassTimes())){
-                    teacherCourseGroup.setGroupClassesTotalDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getTotalClassTimes());
+                if (Objects.nonNull(teacherCourseGroup.getTotalClassTimes())) {
+                    teacherCourseGroup.setGroupClassesTotalDuration(teacherCourseGroup.getSingleClassMinutes() * teacherCourseGroup.getTotalClassTimes());
                 }
-                if(Objects.nonNull(teacherCourseGroup.getCurrentClassTimes())){
-                    teacherCourseGroup.setGroupClassesConsumeDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getCurrentClassTimes());
+                if (Objects.nonNull(teacherCourseGroup.getCurrentClassTimes())) {
+                    teacherCourseGroup.setGroupClassesConsumeDuration(teacherCourseGroup.getSingleClassMinutes() * teacherCourseGroup.getCurrentClassTimes());
                 }
                 teacherCourseGroup.setTeacherName(idNameMap.get(teacherCourseGroup.getTeacherId()));
             }
@@ -419,17 +421,17 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
 
     @Override
     public GroupHeadInfoDto getGroupHeadInfo(Long courseScheduleId) {
-        if(Objects.isNull(courseScheduleId)){
+        if (Objects.isNull(courseScheduleId)) {
             throw new BizException("请选择课程");
         }
         CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId);
-        if(Objects.isNull(courseSchedule)){
+        if (Objects.isNull(courseSchedule)) {
             throw new BizException("课程不存在");
         }
         CoursesGroup coursesGroup = coursesGroupDao.get(Long.valueOf(courseSchedule.getMusicGroupId()));
         Teacher teacher = teacherDao.get(courseSchedule.getActualTeacherId());
 
-        GroupHeadInfoDto groupHeadInfo=new GroupHeadInfoDto();
+        GroupHeadInfoDto groupHeadInfo = new GroupHeadInfoDto();
         groupHeadInfo.setGroupId(coursesGroup.getId().toString());
         groupHeadInfo.setGroupName(coursesGroup.getName());
         groupHeadInfo.setClassGroupId(courseSchedule.getClassGroupId());
@@ -445,66 +447,66 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
 
     @Override
     public Map<String, Object> getGroupDetail(Long groupId) {
-        if(Objects.isNull(groupId)){
+        if (Objects.isNull(groupId)) {
             throw new BizException("请指定课程组");
         }
         CoursesGroup coursesGroup = coursesGroupDao.get(groupId);
         Teacher teacher = teacherDao.get(coursesGroup.getTeacherId());
         List<String> subjectNames = subjectDao.findBySubIds(teacher.getSubjectId());
-        Map<String, Object> result=new HashMap<>();
+        Map<String, Object> result = new HashMap<>();
         result.put("groupId", groupId);
         result.put("groupName", coursesGroup.getName());
-        result.put("courseStartDate",coursesGroup.getCoursesStartDate());
+        result.put("courseStartDate", coursesGroup.getCoursesStartDate());
         result.put("courseEndDate", coursesGroup.getCoursesEndDate());
         result.put("teacherName", teacher.getRealName());
-        result.put("avatar",teacher.getAvatar());
+        result.put("avatar", teacher.getAvatar());
         result.put("introduction", teacher.getIntroduction());
         result.put("lectureNum", courseScheduleTeacherSalaryDao.countTeacherGiveLesson(coursesGroup.getTeacherId()));
-        result.put("subjectNames", StringUtils.join(subjectNames,","));
+        result.put("subjectNames", StringUtils.join(subjectNames, ","));
         List<CourseSchedule> groupNotStartCourses = courseScheduleDao.findGroupNotFinishCourses(groupId.toString(), GroupType.COMM);
-        result.put("courseSchedules",groupNotStartCourses);
+        result.put("courseSchedules", groupNotStartCourses);
         Map<TeachModeEnum, Long> collect = groupNotStartCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getTeachMode, Collectors.counting()));
         result.put("totalClassesTimes", groupNotStartCourses.size());
-        result.put("onlineClassesTimes", Objects.isNull(collect.get(TeachModeEnum.ONLINE))?0:collect.get(TeachModeEnum.ONLINE));
-        result.put("offlineClassesTimes", Objects.isNull(collect.get(TeachModeEnum.OFFLINE))?0:collect.get(TeachModeEnum.OFFLINE));
+        result.put("onlineClassesTimes", Objects.isNull(collect.get(TeachModeEnum.ONLINE)) ? 0 : collect.get(TeachModeEnum.ONLINE));
+        result.put("offlineClassesTimes", Objects.isNull(collect.get(TeachModeEnum.OFFLINE)) ? 0 : collect.get(TeachModeEnum.OFFLINE));
         return result;
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-    public HttpResponseResult buyCourseGroup(Integer userId, Long courseGroupId, boolean isUseBalancePayment) {
-        if(Objects.isNull(courseGroupId)){
+    public HttpResponseResult buyCourseGroup(Integer userId, Long courseGroupId, boolean isUseBalancePayment) throws Exception {
+        if (Objects.isNull(courseGroupId)) {
             throw new BizException("请指定课程组");
         }
 
         CoursesGroup coursesGroup = coursesGroupDao.lockGroup(courseGroupId);
-        if(Objects.isNull(coursesGroup)){
+        if (Objects.isNull(coursesGroup)) {
             throw new BizException("此课程组不存在");
         }
-        if(coursesGroup.getStatus().equals(GroupStatusEnum.CANCEL)){
+        if (coursesGroup.getStatus().equals(GroupStatusEnum.CANCEL)) {
             throw new BizException("课程已关闭,请联系老师了解详细情况。");
         }
         List<ClassGroupStudentMapper> groupStudents = classGroupStudentMapperDao.findGroupStudents(courseGroupId.toString(), GroupType.COMM, userId, null);
-        if(!CollectionUtils.isEmpty(groupStudents)){
+        if (!CollectionUtils.isEmpty(groupStudents)) {
             throw new BizException("您完成此课程组报名,无需重复报名。");
         }
 
-        Date now=new Date();
+        Date now = new Date();
 
         ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(courseGroupId.toString(), GroupType.COMM.getCode());
-        if(classGroup.getStudentNum()>=classGroup.getExpectStudentNum()){
+        if (classGroup.getStudentNum() >= classGroup.getExpectStudentNum()) {
             throw new BizException("课程人数已满");
         }
 
         BigDecimal amount = coursesGroup.getTotalCoursesPrice();
-        if(Objects.isNull(amount)){
-            amount=BigDecimal.ZERO;
+        if (Objects.isNull(amount)) {
+            amount = BigDecimal.ZERO;
         }
 
-        StudentPaymentOrder studentPaymentOrder=new StudentPaymentOrder();
+        StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
         studentPaymentOrder.setUserId(userId);
         studentPaymentOrder.setGroupType(GroupType.COMM);
-        String orderNo=idGeneratorService.generatorId("payment") + "";
+        String orderNo = idGeneratorService.generatorId("payment") + "";
         studentPaymentOrder.setOrderNo(orderNo);
         studentPaymentOrder.setStatus(DealStatusEnum.ING);
         studentPaymentOrder.setType(OrderTypeEnum.COURSE_GROUP_BUY);
@@ -514,18 +516,21 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         studentPaymentOrder.setClassGroupId(classGroup.getId());
         studentPaymentOrder.setVersion(0);
 
-        if(amount.compareTo(BigDecimal.ZERO)<=0){
+        BigDecimal balance = BigDecimal.ZERO;
+        if (amount.compareTo(BigDecimal.ZERO) <= 0) {
             return this.orderCallback(studentPaymentOrder);
-        }else{
+        } else {
             studentPaymentOrderService.insert(studentPaymentOrder);
 
-            if(isUseBalancePayment || studentPaymentOrder.getExpectAmount().doubleValue() == 0){
+            if (isUseBalancePayment || studentPaymentOrder.getExpectAmount().doubleValue() == 0) {
                 SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
-                if(userCashAccount == null){
+                if (userCashAccount == null) {
                     throw new BizException("用户账户找不到");
                 }
                 studentPaymentOrder.setPaymentChannel("BALANCE");
-                if(userCashAccount.getBalance().subtract(studentPaymentOrder.getExpectAmount()).doubleValue() >= 0){
+                if (userCashAccount.getBalance().subtract(studentPaymentOrder.getExpectAmount()).doubleValue() >= 0) {
+                    studentPaymentRouteOrderService.addRouteOrder(orderNo, coursesGroup.getOrganId(), studentPaymentOrder.getExpectAmount());
+
                     // 更新订单信息
                     studentPaymentOrder.setActualAmount(new BigDecimal(0));
                     studentPaymentOrder.setBalancePaymentAmount(studentPaymentOrder.getExpectAmount());
@@ -533,17 +538,18 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
                     studentPaymentOrder.setUpdateTime(now);
                     studentPaymentOrder.setRoutingOrganId(42);
 
-                    sysUserCashAccountService.updateBalance(userId, studentPaymentOrder.getExpectAmount().negate(),PlatformCashAccountDetailTypeEnum.PAY_FEE,"对外课程购买");
+                    sysUserCashAccountService.updateBalance(userId, studentPaymentOrder.getExpectAmount().negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "对外课程购买");
 
                     this.orderCallback(studentPaymentOrder);
 
-                    Map<String,Object> result=new HashMap<>();
-                    result.put("orderNo",studentPaymentOrder.getOrderNo());
+                    Map<String, Object> result = new HashMap<>();
+                    result.put("orderNo", studentPaymentOrder.getOrderNo());
 
                     return BaseController.succeed(result);
-                }else{
+                } else {
                     if (userCashAccount.getBalance().doubleValue() > 0) {
-                        sysUserCashAccountService.updateBalance(userId, userCashAccount.getBalance().negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "对外课程购买");
+                        balance = userCashAccount.getBalance();
+                        sysUserCashAccountService.updateBalance(userId, balance.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "对外课程购买");
                         amount = studentPaymentOrder.getExpectAmount().subtract(userCashAccount.getBalance());
                         studentPaymentOrder.setActualAmount(amount);
                         studentPaymentOrder.setBalancePaymentAmount(userCashAccount.getBalance());
@@ -555,56 +561,52 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
 
             String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
             Map<String, BigDecimal> classFee = new HashMap<>();
-            classFee.put("course",amount);
-            classFee.put("instrument",BigDecimal.ZERO);
-            classFee.put("accessories",BigDecimal.ZERO);
-            classFee.put("other",BigDecimal.ZERO);
-            try {
-                Map<String,Object> payMap = payService.getPayMap(
-                        amount,
-                        orderNo,
-                        baseApiUrl+"/api-student/studentOrder/notify",
-                        baseApiUrl+"/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
-                        "对外课程组购买",
-                        coursesGroup.getName(),
-                        userId,
-                        classFee,
-                        null
-                );
-
-                Map<String,BigDecimal> routingFee = (Map<String,BigDecimal>)payMap.get("routingFee");
-                studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
-                studentPaymentOrder.setComAmount(routingFee.get("COM"));
-                studentPaymentOrder.setPerAmount(routingFee.get("PER"));
-                studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
-                studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
-                studentPaymentOrder.setUpdateTime(now);
-                studentPaymentOrderService.update(studentPaymentOrder);
-
-                return BaseController.succeed(payMap);
-            } catch (Exception e) {
-                throw new BizException("订单提交超时,请尝试重新提交购买");
-            }
+            classFee.put("course", amount);
+            classFee.put("instrument", BigDecimal.ZERO);
+            classFee.put("accessories", BigDecimal.ZERO);
+            classFee.put("other", BigDecimal.ZERO);
+            Map<String, Object> payMap = payService.getPayMap(
+                    amount,
+                    balance,
+                    orderNo,
+                    baseApiUrl + "/api-student/studentOrder/notify",
+                    baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
+                    "对外课程组购买",
+                    coursesGroup.getName(),
+                    coursesGroup.getOrganId(),
+                    "outGroupBuy"
+            );
+
+            Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
+            studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
+            studentPaymentOrder.setComAmount(routingFee.get("COM"));
+            studentPaymentOrder.setPerAmount(routingFee.get("PER"));
+            studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
+            studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
+            studentPaymentOrder.setUpdateTime(now);
+            studentPaymentOrderService.update(studentPaymentOrder);
+
+            return BaseController.succeed(payMap);
         }
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     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());
-            if(!studentPaymentOrder.getStatus().equals(DealStatusEnum.ING)){
+            if (!studentPaymentOrder.getStatus().equals(DealStatusEnum.ING)) {
                 return BaseController.succeed();
             }
             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);
             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())&&order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO)>0){
+            Long successOrderNum = statusOrderNumMap.get(DealStatusEnum.SUCCESS);
+            if (Objects.nonNull(successOrderNum) && successOrderNum > 0) {
+                if (order.getStatus().equals(DealStatusEnum.FAILED) && Objects.nonNull(order.getBalancePaymentAmount()) && order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
                     sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课支付失败,退还余额");
                 }
-                if(order.getStatus().equals(DealStatusEnum.SUCCESS)){
+                if (order.getStatus().equals(DealStatusEnum.SUCCESS)) {
                     sysUserCashAccountService.updateBalance(order.getUserId(), order.getExpectAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "重复支付,退还余额");
                     order.setMemo("重复支付,进入余额");
                 }
@@ -612,26 +614,26 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
                 return BaseController.succeed();
             }
 
-            Long ingOrderNum=statusOrderNumMap.get(DealStatusEnum.ING);
-            if(Objects.nonNull(ingOrderNum)&&ingOrderNum>1&&order.getStatus().equals(DealStatusEnum.FAILED)){
-                if(Objects.nonNull(order.getBalancePaymentAmount())&&order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO)>0){
+            Long ingOrderNum = statusOrderNumMap.get(DealStatusEnum.ING);
+            if (Objects.nonNull(ingOrderNum) && ingOrderNum > 1 && order.getStatus().equals(DealStatusEnum.FAILED)) {
+                if (Objects.nonNull(order.getBalancePaymentAmount()) && order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
                     sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课支付失败,退还余额");
                 }
                 studentPaymentOrderDao.update(order);
                 return BaseController.succeed();
             }
 
-            if(order.getStatus().equals(DealStatusEnum.SUCCESS)){
-                courseScheduleDao.updateGroupCourseLock(order.getMusicGroupId(),GroupType.PRACTICE,0);
-            }else{
-                if(Objects.nonNull(order.getBalancePaymentAmount())&&order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO)>0){
+            if (order.getStatus().equals(DealStatusEnum.SUCCESS)) {
+                courseScheduleDao.updateGroupCourseLock(order.getMusicGroupId(), GroupType.PRACTICE, 0);
+            } else {
+                if (Objects.nonNull(order.getBalancePaymentAmount()) && order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
                     sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "网管课支付失败,退还余额");
                 }
                 studentPaymentOrderDao.update(order);
                 CoursesGroup coursesGroup = coursesGroupDao.get(Long.valueOf(order.getMusicGroupId()));
                 coursesGroup.setStatus(GroupStatusEnum.CANCEL);
                 coursesGroupDao.update(coursesGroup);
-                groupService.deleteGroupOtherInfo(order.getMusicGroupId(),GroupType.PRACTICE);
+                groupService.deleteGroupOtherInfo(order.getMusicGroupId(), GroupType.PRACTICE);
                 return BaseController.succeed();
             }
             studentPaymentOrderDao.update(order);
@@ -659,10 +661,10 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
             sysUserExpendCashAccountDetail.setAttribute(order.getTransNo());
             sysUserExpendCashAccountDetail.setChannel(studentPaymentOrder.getPaymentChannel());
 
-            if(studentPaymentOrder.getComAmount() != null){
+            if (studentPaymentOrder.getComAmount() != null) {
                 sysUserIncomeCashAccountDetail.setComAmount(studentPaymentOrder.getComAmount().negate());
             }
-            if(studentPaymentOrder.getPerAmount() != null){
+            if (studentPaymentOrder.getPerAmount() != null) {
                 sysUserExpendCashAccountDetail.setPerAmount(studentPaymentOrder.getPerAmount().negate());
             }
 
@@ -670,8 +672,8 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
             sysUserCashAccountDetailService.insert(sysUserExpendCashAccountDetail);
 
             CoursesGroup coursesGroup = coursesGroupDao.get(Long.valueOf(order.getMusicGroupId()));
-            if(!coursesGroup.getStatus().equals(GroupStatusEnum.NORMAL)){
-                order.setVersion(order.getVersion()+1);
+            if (!coursesGroup.getStatus().equals(GroupStatusEnum.NORMAL)) {
+                order.setVersion(order.getVersion() + 1);
                 order.setMemo("支付成功,但课程组不处于正常状态");
                 studentPaymentOrderDao.update(order);
 
@@ -692,18 +694,18 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         classGroupStudentMapperDao.insert(classGroupStudentMapper);
 
         List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
-        if(!CollectionUtils.isEmpty(classGroupStudents)){
+        if (!CollectionUtils.isEmpty(classGroupStudents)) {
             classGroup.setStudentNum(classGroupStudents.size());
             classGroupDao.update(classGroup);
         }
-        if(!CollectionUtils.isEmpty(classGroupStudents)&&classGroupStudents.size()>=classGroup.getExpectStudentNum()){
+        if (!CollectionUtils.isEmpty(classGroupStudents) && classGroupStudents.size() >= classGroup.getExpectStudentNum()) {
             coursesGroup.setStatus(GroupStatusEnum.NORMAL);
             coursesGroupDao.update(coursesGroup);
         }
 
         List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<>();
         List<CourseSchedule> groupNotStartCourses = courseScheduleDao.findGroupNotFinishCourses(order.getMusicGroupId(), GroupType.COMM);
-        if(CollectionUtils.isEmpty(groupNotStartCourses)){
+        if (CollectionUtils.isEmpty(groupNotStartCourses)) {
             throw new BizException("课程已关闭,请联系老师了解详细情况。");
         }
         BigDecimal singleCoursePrice = order.getExpectAmount().divide(new BigDecimal(groupNotStartCourses.size()), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
@@ -721,19 +723,19 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
 
         try {
-            courseScheduleService.checkNewCourseSchedules(groupNotStartCourses,false);
+            courseScheduleService.checkNewCourseSchedules(groupNotStartCourses, false);
         } catch (Exception e) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             String errMessage;
 
-            String courseName=e.getMessage().substring(e.getMessage().indexOf(")-")+2);
-            courseName = courseName.substring(0,courseName.indexOf("("));
+            String courseName = e.getMessage().substring(e.getMessage().indexOf(")-") + 2);
+            courseName = courseName.substring(0, courseName.indexOf("("));
             String courseTime = e.getMessage().substring(e.getMessage().indexOf("在") + 1);
             courseTime = courseTime.substring(0, courseTime.indexOf("至"));
-            errMessage="现在课程:";
-            errMessage+=courseName;
-            errMessage+="<br/>冲突时间:";
-            errMessage+=courseTime;
+            errMessage = "现在课程:";
+            errMessage += courseName;
+            errMessage += "<br/>冲突时间:";
+            errMessage += courseTime;
 
             return BaseController.failed(HttpStatus.FOUND, errMessage);
         }
@@ -752,7 +754,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
     public void noStudentsCourseGroupRemind() {
         Date startDate = DateUtil.addDays(new Date(), 1);
         List<CoursesGroup> noStudentsGroups = coursesGroupDao.findNoStudentsGroups(startDate);
-        if(CollectionUtils.isEmpty(noStudentsGroups)){
+        if (CollectionUtils.isEmpty(noStudentsGroups)) {
             return;
         }
         for (CoursesGroup noStudentsGroup : noStudentsGroups) {
@@ -766,7 +768,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
     @Override
     public void finishCourseGroup() {
         List<CoursesGroup> noCoursesGroups = coursesGroupDao.findNoCoursesGroups();
-        if(CollectionUtils.isEmpty(noCoursesGroups)){
+        if (CollectionUtils.isEmpty(noCoursesGroups)) {
             return;
         }
         List<Long> groupIds = noCoursesGroups.stream().map(CoursesGroup::getId).collect(Collectors.toList());

+ 2 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeRegistrationServiceImpl.java

@@ -159,25 +159,20 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
         classFee.put("accessories", BigDecimal.ZERO);
         classFee.put("other", amount);
 
-        String receiver = "daya";
+        String receiver = "kjRegister";
         Map payMap = payService.getPayMap(
                 amount,
+                BigDecimal.ZERO,
                 orderNo,
                 baseApiUrl + "/api-student/studentOrder/notify",
                 baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
                 chargeInfo.getDetail(),
                 chargeInfo.getDetail(),
-                userId,
-                classFee,
                 chargeInfo.getOrganId(),
                 receiver
         );
 
-        Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
         studentPaymentOrder.setOrganId(chargeInfo.getOrganId());
-        studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
-        studentPaymentOrder.setComAmount(routingFee.get("COM"));
-        studentPaymentOrder.setPerAmount(routingFee.get("PER"));
         studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
         studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
         studentPaymentOrder.setUpdateTime(nowDate);

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

@@ -339,7 +339,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setVersion(studentPaymentOrder.getVersion() + 1);
 
         if (amount.compareTo(BigDecimal.ZERO) == 0) {
-            studentPaymentRouteOrderService.addRouteOrder(orderNo, chargeInfo.getOrganId(), studentPaymentOrder.getActualAmount());
+            studentPaymentRouteOrderService.addRouteOrder(orderNo, chargeInfo.getOrganId(), balance);
             Map<String, String> notifyMap = new HashMap<>();
             notifyMap.put("tradeState", "1");
             notifyMap.put("merOrderNo", studentPaymentOrder.getOrderNo());
@@ -374,7 +374,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
         studentPaymentOrder.setOrganId(chargeInfo.getOrganId());
         //studentPaymentOrder.setRoutingOrganId(chargeInfo.getOrganId());
-        studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
+        //studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
         //studentPaymentOrder.setComAmount(routingFee.get("COM"));
         //studentPaymentOrder.setPerAmount(routingFee.get("PER"));
         studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
@@ -535,6 +535,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setVersion(0);
 
         Date date = new Date();
+        BigDecimal balance = BigDecimal.ZERO;
         MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
         if (registerPayDto.getIsUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) {
             SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
@@ -542,7 +543,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 throw new BizException("用户账户找不到");
             }
             if (userCashAccount.getBalance() != null && userCashAccount.getBalance().compareTo(BigDecimal.ZERO) > 0) {
-                BigDecimal balance = amount.compareTo(userCashAccount.getBalance()) >= 0 ? userCashAccount.getBalance() : amount;
+                balance = amount.compareTo(userCashAccount.getBalance()) >= 0 ? userCashAccount.getBalance() : amount;
                 amount = amount.subtract(balance);
                 studentPaymentOrder.setPaymentChannel("BALANCE");
                 studentPaymentOrder.setActualAmount(amount);
@@ -553,12 +554,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setPaymentChannel("BALANCE");
         studentPaymentOrder.setRemitFee(remitFee);
         studentPaymentOrder.setOrganId(musicGroup.getOrganId());
-        studentPaymentOrder.setRoutingOrganId(42);
+        studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
         studentPaymentOrder.setUpdateTime(date);
         studentPaymentOrderService.update(studentPaymentOrder);
         studentPaymentOrder.setVersion(studentPaymentOrder.getVersion() + 1);
 
         if (amount.compareTo(BigDecimal.ZERO) == 0) {
+            studentPaymentRouteOrderService.addRouteOrder(orderNo, musicGroup.getOrganId(), balance);
             Map<String, String> notifyMap = new HashMap<>();
             notifyMap.put("tradeState", "1");
             notifyMap.put("merOrderNo", studentPaymentOrder.getOrderNo());
@@ -590,30 +592,25 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
 
         String orderSubject = "乐团报名";
-        String receiver = "daya";
+        String receiver = "register";
         if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType().equals(CooperationOrgan.OwnershipType.COOPERATION)) {
             orderSubject = "乐团相关费用";
-            receiver = "tq";
         }
         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
+
         Map payMap = payService.getPayMap(
                 amount,
+                balance,
                 orderNo,
                 baseApiUrl + "/api-student/studentOrder/notify",
                 baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
                 orderSubject,
                 orderSubject,
-                userId,
-                classFee,
                 musicGroup.getOrganId(),
                 receiver
         );
 
-        Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
         studentPaymentOrder.setOrganId(musicGroup.getOrganId());
-        studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
-        studentPaymentOrder.setComAmount(routingFee.get("COM"));
-        studentPaymentOrder.setPerAmount(routingFee.get("PER"));
         studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
         studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
         studentPaymentOrder.setUpdateTime(date);
@@ -777,6 +774,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setVersion(0);
         Date date = new Date();
 
+        BigDecimal balance = BigDecimal.ZERO;
         MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
         if (registerPayDto.getIsUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) {
             SysUserCashAccount userCashAccount = sysUserCashAccountService.get(userId);
@@ -784,7 +782,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 throw new BizException("用户账户找不到");
             }
             if (userCashAccount.getBalance() != null && userCashAccount.getBalance().compareTo(BigDecimal.ZERO) > 0) {
-                BigDecimal balance = amount.compareTo(userCashAccount.getBalance()) >= 0 ? userCashAccount.getBalance() : amount;
+                balance = amount.compareTo(userCashAccount.getBalance()) >= 0 ? userCashAccount.getBalance() : amount;
                 amount = amount.subtract(balance);
                 studentPaymentOrder.setPaymentChannel("BALANCE");
                 studentPaymentOrder.setActualAmount(amount);
@@ -795,12 +793,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setPaymentChannel("BALANCE");
         studentPaymentOrder.setRemitFee(remitFee);
         studentPaymentOrder.setOrganId(musicGroup.getOrganId());
-        studentPaymentOrder.setRoutingOrganId(42);
+        studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
         studentPaymentOrder.setUpdateTime(date);
         studentPaymentOrderService.update(studentPaymentOrder);
         studentPaymentOrder.setVersion(studentPaymentOrder.getVersion() + 1);
 
         if (amount.compareTo(BigDecimal.ZERO) == 0) {
+            studentPaymentRouteOrderService.addRouteOrder(orderNo, musicGroup.getOrganId(), balance);
             Map<String, String> notifyMap = new HashMap<>();
             notifyMap.put("tradeState", "1");
             notifyMap.put("merOrderNo", studentPaymentOrder.getOrderNo());
@@ -831,30 +830,24 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             }
         }
         String orderSubject = "乐团报名";
-        String receiver = "daya";
+        String receiver = "register";
         if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType().equals(CooperationOrgan.OwnershipType.COOPERATION)) {
             orderSubject = "乐团相关费用";
-            receiver = "tq";
         }
         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
         Map payMap = payService.getPayMap(
                 amount,
+                balance,
                 orderNo,
                 baseApiUrl + "/api-student/studentOrder/notify",
                 baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
                 orderSubject,
                 orderSubject,
-                userId,
-                classFee,
                 musicGroup.getOrganId(),
                 receiver
         );
 
-        Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
         studentPaymentOrder.setOrganId(musicGroup.getOrganId());
-        studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
-        studentPaymentOrder.setComAmount(routingFee.get("COM"));
-        studentPaymentOrder.setPerAmount(routingFee.get("PER"));
         studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
         studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
         studentPaymentOrder.setUpdateTime(date);
@@ -1597,7 +1590,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public Map renew(String musicGroupId, Integer userId, boolean isUseBalancePayment) {
+    public Map renew(String musicGroupId, Integer userId, boolean isUseBalancePayment) throws Exception {
 
         MusicGroup musicGroup = this.get(musicGroupId);
         if (musicGroup == null) {
@@ -1625,6 +1618,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			throw new BizException("请走报名缴费流程");
 		}*/
 
+        String orderNo = idGeneratorService.generatorId("payment") + "";
         // 判断当前是否是续费状态
         if (musicGroupStudentFee.getPaymentStatus() != PaymentStatus.NON_PAYMENT) {
             throw new BizException("已缴费");
@@ -1636,7 +1630,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
         studentPaymentOrder.setGroupType(GroupType.MUSIC);
         studentPaymentOrder.setUserId(userId);
-        studentPaymentOrder.setOrderNo(idGeneratorService.generatorId("payment") + "");
+        studentPaymentOrder.setOrderNo(orderNo);
         studentPaymentOrder.setType(OrderTypeEnum.RENEW);
         studentPaymentOrder.setExpectAmount(amount);
         studentPaymentOrder.setActualAmount(amount);
@@ -1658,6 +1652,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
 
+        BigDecimal balance = BigDecimal.ZERO;
         if (isUseBalancePayment || amount.doubleValue() == 0) {
             SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
             if (userCashAccount == null) {
@@ -1665,6 +1660,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             }
             studentPaymentOrder.setPaymentChannel("BALANCE");
             if (userCashAccount.getBalance().subtract(amount).doubleValue() >= 0) {
+                studentPaymentRouteOrderService.addRouteOrder(orderNo, musicGroup.getOrganId(), amount);
+
                 // 更新订单信息
                 studentPaymentOrder.setActualAmount(BigDecimal.ZERO);
                 studentPaymentOrder.setBalancePaymentAmount(amount);
@@ -1704,7 +1701,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 return null;
             } else {
                 if (userCashAccount.getBalance().doubleValue() > 0) {
-                    sysUserCashAccountService.updateBalance(userId, userCashAccount.getBalance().negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "乐团续费");
+                    balance = userCashAccount.getBalance();
+                    sysUserCashAccountService.updateBalance(userId, balance.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "乐团续费");
                     amount = amount.subtract(userCashAccount.getBalance());
                     studentPaymentOrder.setBalancePaymentAmount(userCashAccount.getBalance());
                     studentPaymentOrder.setActualAmount(studentPaymentOrder.getActualAmount().subtract(userCashAccount.getBalance()));
@@ -1722,33 +1720,26 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         classFee.put("accessories", BigDecimal.ZERO);
         classFee.put("other", BigDecimal.ZERO);
 
-        try {
-
-            Map<String, Object> payMap = payService.getPayMap(amount, studentPaymentOrder.getOrderNo(),
-                    baseApiUrl + "/api-student/studentOrder/notify",
-                    baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + studentPaymentOrder.getOrderNo(),
-                    "续费",
-                    "乐团续费",
-                    userId,
-                    classFee,
-                    musicGroup.getOrganId()
-            );
-
-            Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
-            studentPaymentOrder.setActualAmount(amount);
-            studentPaymentOrder.setOrganId(musicGroup.getOrganId());
-            studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
-            studentPaymentOrder.setComAmount(routingFee.get("COM"));
-            studentPaymentOrder.setPerAmount(routingFee.get("PER"));
-            studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
-            studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
-            studentPaymentOrder.setUpdateTime(date);
-            studentPaymentOrderService.update(studentPaymentOrder);
-
-            return payMap;
-        } catch (Exception e) {
-            throw new BizException("调用支付接口出错", e);
-        }
+        Map<String, Object> payMap = payService.getPayMap(
+                amount,
+                balance,
+                orderNo,
+                baseApiUrl + "/api-student/studentOrder/notify",
+                baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + studentPaymentOrder.getOrderNo(),
+                "续费",
+                "乐团续费",
+                musicGroup.getOrganId(),
+                "renew"
+        );
+
+        studentPaymentOrder.setActualAmount(amount);
+        studentPaymentOrder.setOrganId(musicGroup.getOrganId());
+        studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
+        studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
+        studentPaymentOrder.setUpdateTime(date);
+        studentPaymentOrderService.update(studentPaymentOrder);
+
+        return payMap;
     }
 
     @Override

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java

@@ -246,7 +246,7 @@ public class PayServiceImpl implements PayService {
         //根据金额获取分润
         List<RouteScaleDto> routeScaleDtos = getAmountChannel(amount);
         //零星支付,收到指定
-        if (routeScaleDtos == null && receiver != null && receiver.equals("")) {
+        if (routeScaleDtos == null && receiver != null && receiver.equals("sporadic")) {
             routeScaleDtos = getSporadicChannel(amount);
         }
         //比例或者笔数分佣

ファイルの差分が大きいため隠しています
+ 246 - 244
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java


+ 14 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -51,6 +51,8 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
     private SysMessageService sysMessageService;
     @Autowired
     private StudentDao studentDao;
+    @Autowired
+    private StudentPaymentRouteOrderService studentPaymentRouteOrderService;
 
     @Override
     public BaseDAO<Integer, StudentRepair> getDAO() {
@@ -132,13 +134,14 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         studentPaymentOrderService.insert(studentPaymentOrder);
         studentPaymentOrder.setVersion(0);
 
+        BigDecimal balance = BigDecimal.ZERO;
         if (repairInfo.getIsUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) {
             SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(repairInfo.getStudentId());
             if (userCashAccount == null) {
                 throw new BizException("用户账户找不到");
             }
             if (userCashAccount.getBalance() != null && userCashAccount.getBalance().compareTo(BigDecimal.ZERO) > 0) {
-                BigDecimal balance = amount.compareTo(userCashAccount.getBalance()) >= 0 ? userCashAccount.getBalance() : amount;
+                balance = amount.compareTo(userCashAccount.getBalance()) >= 0 ? userCashAccount.getBalance() : amount;
                 amount = amount.subtract(balance);
                 studentPaymentOrder.setActualAmount(amount);
                 studentPaymentOrder.setBalancePaymentAmount(balance);
@@ -149,6 +152,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         studentPaymentOrder.setVersion(studentPaymentOrder.getVersion() + 1);
 
         if (amount.compareTo(BigDecimal.ZERO) == 0) {
+            studentPaymentRouteOrderService.addRouteOrder(orderNo, repairInfo.getOrganId(), balance);
             Map<String, String> notifyMap = new HashMap<>();
             notifyMap.put("tradeState", "1");
             notifyMap.put("merOrderNo", studentPaymentOrder.getOrderNo());
@@ -169,20 +173,16 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
 
         Map payMap = payService.getPayMap(
                 amount,
+                balance,
                 orderNo,
                 baseApiUrl + "/api-student/studentOrder/notify",
                 baseApiUrl + "/api-student/studentOrder/paymentResult?type=edu&orderNo=" + orderNo,
                 "乐器维修",
                 "乐器维修",
-                repairInfo.getStudentId(),
-                classFee,
-                repairInfo.getOrganId()
+                repairInfo.getOrganId(),
+                "repair"
         );
 
-        Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
-        studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
-        studentPaymentOrder.setComAmount(routingFee.get("COM"));
-        studentPaymentOrder.setPerAmount(routingFee.get("PER"));
         studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
         studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
         studentPaymentOrder.setUpdateTime(date);
@@ -288,13 +288,14 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         studentPaymentOrderService.insert(studentPaymentOrder);
         studentPaymentOrder.setVersion(0);
 
+        BigDecimal balance = BigDecimal.ZERO;
         if (studentRepair.getIsUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) {
             SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(studentRepair.getStudentId());
             if (userCashAccount == null) {
                 throw new BizException("用户账户找不到");
             }
             if (userCashAccount.getBalance() != null && userCashAccount.getBalance().compareTo(BigDecimal.ZERO) > 0) {
-                BigDecimal balance = amount.compareTo(userCashAccount.getBalance()) >= 0 ? userCashAccount.getBalance() : amount;
+                balance = amount.compareTo(userCashAccount.getBalance()) >= 0 ? userCashAccount.getBalance() : amount;
                 amount = amount.subtract(balance);
                 studentPaymentOrder.setActualAmount(amount);
                 studentPaymentOrder.setBalancePaymentAmount(balance);
@@ -305,6 +306,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         studentPaymentOrder.setVersion(studentPaymentOrder.getVersion() + 1);
 
         if (amount.compareTo(BigDecimal.ZERO) == 0) {
+            studentPaymentRouteOrderService.addRouteOrder(orderNo, studentRepair.getOrganId(), studentPaymentOrder.getExpectAmount());
             Map<String, String> notifyMap = new HashMap<>();
             notifyMap.put("tradeState", "1");
             notifyMap.put("merOrderNo", studentPaymentOrder.getOrderNo());
@@ -325,20 +327,16 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
 
         Map payMap = payService.getPayMap(
                 amount,
+                balance,
                 orderNo,
                 baseApiUrl + "/api-student/studentOrder/notify",
                 baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
                 "乐器维修",
                 "乐器维修",
-                studentRepair.getStudentId(),
-                classFee,
-                studentRepair.getOrganId()
+                studentRepair.getOrganId(),
+                "repair"
         );
 
-        Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
-        studentPaymentOrder.setRoutingOrganId((Integer) payMap.get("routingOrganId"));
-        studentPaymentOrder.setComAmount(routingFee.get("COM"));
-        studentPaymentOrder.setPerAmount(routingFee.get("PER"));
         studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
         studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
         studentPaymentOrder.setUpdateTime(date);

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

@@ -168,9 +168,17 @@ public class TenantPaymentOrderServiceImpl extends BaseServiceImpl<Long, TenantP
 
         try {
 
-            Map<String, Object> payMap = payService.getPayMap(tenantPaymentOrder.getExpectAmount(), tenantPaymentOrder.getOrderNo(), baseApiUrl
-                            + "/api-teacher/teacherOrder/notify", baseApiUrl + "/api-teacher/teacherOrder/paymentResult?orderNo=" + tenantPaymentOrder.getOrderNo(),
-                    "商户入驻", "商户充值", userId, classFee, organId, "sdaya");
+            Map<String, Object> payMap = payService.getPayMap(
+                    tenantPaymentOrder.getExpectAmount(),
+                    BigDecimal.ZERO,
+                    tenantPaymentOrder.getOrderNo(),
+                    baseApiUrl + "/api-teacher/teacherOrder/notify",
+                    baseApiUrl + "/api-teacher/teacherOrder/paymentResult?orderNo=" + tenantPaymentOrder.getOrderNo(),
+                    "商户入驻",
+                    "商户充值",
+                    organId,
+                    "tenantPayment"
+            );
 
             Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
             tenantPaymentOrder.setComAmount(routingFee.get("COM"));

ファイルの差分が大きいため隠しています
+ 1817 - 1817
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java


+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/CourseGroupController.java

@@ -38,7 +38,7 @@ public class CourseGroupController extends BaseController {
 
     @ApiOperation(value = "购买课程组")
     @PostMapping("/buyCourseGroup")
-    public HttpResponseResult buyCourseGroup(Long courseGroupId, boolean isUseBalancePayment){
+    public HttpResponseResult buyCourseGroup(Long courseGroupId, boolean isUseBalancePayment) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(Objects.isNull(sysUser)){
             return failed(HttpStatus.FORBIDDEN,"请登录");

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java

@@ -234,7 +234,7 @@ public class PracticeGroupController extends BaseController {
 
     @ApiOperation("重新支付")
     @PostMapping(value = "/repay")
-    public HttpResponseResult repay(Integer groupId, boolean useBalancePayment){
+    public HttpResponseResult repay(Integer groupId, boolean useBalancePayment) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません