Joburgess 5 年 前
コミット
59b5b9418e

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -28,7 +28,8 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * 根据学生vip课获取缴费订单
      */
     StudentPaymentOrder findByStudentVipGroup(@Param("vipGroupId") Long vipGroupId,
-                                              @Param("userId") Integer userId);
+                                              @Param("userId") Integer userId,
+                                              @Param("status") String status);
 
     /**
      * 查询乐团报名的订单
@@ -73,4 +74,4 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * @return
      */
     List<UserGoodsDto> findGoodsIds(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
-}
+}

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

@@ -704,9 +704,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 teacherClassGroupDto.setStudentNames(StringUtils.join(studentNums, ","));
                 if (teacherClassGroupDto.getOffLineClassesNum() > 0 && teacherClassGroupDto.getOffLineClassesNum() <= 0) {
                     teacherClassGroupDto.setClassMode(1);
-                } else if (teacherClassGroupDto.getOffLineClassesNum() > 0 && teacherClassGroupDto.getOffLineClassesNum() > 0) {
+                } else if (teacherClassGroupDto.getOnlineClassesNum() > 0 && teacherClassGroupDto.getOffLineClassesNum() > 0) {
                     teacherClassGroupDto.setClassMode(3);
-                } else if (teacherClassGroupDto.getOnlineClassesNum() < 0 && teacherClassGroupDto.getOffLineClassesNum() >= 0) {
+                } else if (teacherClassGroupDto.getOnlineClassesNum() <= 0 && teacherClassGroupDto.getOffLineClassesNum() > 0) {
                     teacherClassGroupDto.setClassMode(2);
                 } else {
                     teacherClassGroupDto.setClassMode(0);

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

@@ -787,14 +787,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				dataList = courseScheduleDao.queryTeacherClassCourseSchedule(params);
 			}else{
 				dataList = courseScheduleDao.queryTeacherHistoryClassCourseSchedule(params);
-				List<Integer> courseIds = dataList.stream().map(teacherClassCourseSchudeleDto -> teacherClassCourseSchudeleDto.getCourseScheduleId().intValue()).collect(Collectors.toList());
-				List<Map<Integer, Integer>> currentClassTimesByCourses = studentAttendanceDao.getCurrentClassTimesByCourses(courseIds);
-				if(!CollectionUtils.isEmpty(currentClassTimesByCourses)){
-					Map<Integer, Integer> currentClassTimesWithCourse = MapUtil.convertMybatisMap(currentClassTimesByCourses);
-					dataList.forEach(e->{
-						e.setCurrentClassTimes(currentClassTimesWithCourse.get(e.getCourseScheduleId()));
-					});
-				}
+			}
+			List<Integer> courseIds = dataList.stream().map(teacherClassCourseSchudeleDto -> teacherClassCourseSchudeleDto.getCourseScheduleId().intValue()).collect(Collectors.toList());
+			List<Map<Integer, Integer>> currentClassTimesByCourses = studentAttendanceDao.getCurrentClassTimesByCourses(courseIds);
+			if(!CollectionUtils.isEmpty(currentClassTimesByCourses)){
+				Map<Integer, Integer> currentClassTimesWithCourse = MapUtil.convertMybatisMap(currentClassTimesByCourses);
+				dataList.forEach(e->{
+					e.setCurrentClassTimes(currentClassTimesWithCourse.get(e.getCourseScheduleId()));
+				});
 			}
 		}
 		if (count == 0) {

+ 42 - 41
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -726,20 +726,21 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("该课程已结束报名!");
 		}
 
-		StudentPaymentOrder byStudentVipGroup = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(), user.getId());
+		StudentPaymentOrder successOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
+				user.getId(),
+				DealStatusEnum.SUCCESS.getMsg());
 
-		if(Objects.nonNull(byStudentVipGroup)){
+		if(Objects.nonNull(successOrder)){
+			throw new BizException("您已购买过此课程");
+		}
 
-			//生成回调地址
-			Map payMap = payService.getPayMap(
-					vipGroup.getTotalPrice(),
-					byStudentVipGroup.getOrderNo(),
-					"https://47.99.212.176:8000/api-student/studentOrder/notify",
-					"http://mstudev.dayaedu.com/#/paymentResult",
-					"vip课购买",
-					vipGroup.getName());
+		StudentPaymentOrder byStudentVipGroup = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
+				user.getId(),
+				DealStatusEnum.ING.getMsg());
 
-			return payMap;
+		if(Objects.nonNull(byStudentVipGroup)){
+			byStudentVipGroup.setStatus(DealStatusEnum.CLOSE);
+			studentPaymentOrderDao.update(byStudentVipGroup);
 		}
 
 		VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
@@ -789,7 +790,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				vipGroup.getTotalPrice(),
 				orderNo,
 				"https://dyme.utools.club/api-student/studentOrder/notify",
-				"https://dyme.utools.club/paymentresult",
+				"https://dyme.utools.club/paymentresult?orderNo="+orderNo,
 				"vip课购买",
 				vipGroup.getName());
 		//将学员加入vip班级群组
@@ -866,7 +867,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	public void applyRefund(Long vipGroupId,Integer studentId) {
 
 		StudentApplyRefunds studentApplyRefunds=new StudentApplyRefunds();
-		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,studentId);
+		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,studentId,DealStatusEnum.SUCCESS.getMsg());
 		if(null==studentPaymentOrder){
 			throw new BizException("未找到相关订单信息!");
 		}
@@ -885,9 +886,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentApplyRefunds.setOrigPaymentOrderId(studentPaymentOrder.getId());
 		studentApplyRefunds.setUserId(studentId.intValue());
 		studentApplyRefundsDao.insert(studentApplyRefunds);
-		//学员退出班级群
-//		ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentId.toString())};
-//		imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 	}
 
 	@Transactional(rollbackFor = Exception.class)
@@ -913,30 +911,33 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentApplyRefunds.setRemark(remark);
 		studentApplyRefundsDao.update(studentApplyRefunds);
 		switch (studentApplyRefunds.getStatus()) {
-		case PASS:
-			sysUserCashAccountService.updateBalance(studentApplyRefunds.getUserId(), studentApplyRefunds.getActualAmount());
-			SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
-			SysUserCashAccountDetail sysUserCashAccountDetail = new SysUserCashAccountDetail();
-			sysUserCashAccountDetail.setUserId(studentApplyRefunds.getUserId());
-			sysUserCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
-			sysUserCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-			sysUserCashAccountDetail.setAmount(amount);
-			sysUserCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
-			sysUserCashAccountDetail.setAttribute(studentApplyRefunds.getId().toString());
-			sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
-
-			ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(studentPaymentOrder.getUserId(),
-					studentPaymentOrder.getClassGroupId());
-
-			classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.LEAVE);
-			classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
-
-			break;
-		case REJECT:
-
-			break;
-		default:
-			throw new BizException("审核状态错误!");
+			case PASS:
+				sysUserCashAccountService.updateBalance(studentApplyRefunds.getUserId(), studentApplyRefunds.getActualAmount());
+				SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
+				SysUserCashAccountDetail sysUserCashAccountDetail = new SysUserCashAccountDetail();
+				sysUserCashAccountDetail.setUserId(studentApplyRefunds.getUserId());
+				sysUserCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
+				sysUserCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+				sysUserCashAccountDetail.setAmount(amount);
+				sysUserCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
+				sysUserCashAccountDetail.setAttribute(studentApplyRefunds.getId().toString());
+				sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
+
+				ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(studentPaymentOrder.getUserId(),
+						studentPaymentOrder.getClassGroupId());
+
+				classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.LEAVE);
+				classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
+
+				//学员退出班级群
+				ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentApplyRefunds.getUserId().toString())};
+				imFeignService.groupJoin(new ImGroupModel(studentPaymentOrder.getClassGroupId().toString(), imGroupMembers, null));
+				break;
+			case REJECT:
+
+				break;
+			default:
+				throw new BizException("审核状态错误!");
 		}
 	}
 
@@ -1028,7 +1029,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 		Map<Integer, BigDecimal> studentSurplusClassFees = MapUtil.convertMybatisMap(maps);
     	for(Integer userId:studentSurplusClassFees.keySet()){
-			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,userId);
+			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,userId,DealStatusEnum.SUCCESS.getMsg());
 			if(null==studentPaymentOrder){
 				throw new BizException("未找到相关订单信息!");
 			}

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

@@ -611,7 +611,7 @@
         <result column="payment_status_" property="paymentStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
     <select id="queryStudentVipCourses" resultMap="CourseListDto">
-        SELECT cg.id_ class_group_id_,vg.name_ music_group_name_,su.real_name_,
+        SELECT cg.id_ class_group_id_,vg.name_ music_group_name_,su.username_,
         cg.current_class_times_,cg.total_class_times_,vg.single_class_minutes_,
         IF(vg.online_classes_num_ IS NULL,0,vg.online_classes_num_) online_classes_num_,
         IF(vg.offline_classes_num_ IS NULL,0,vg.offline_classes_num_) offline_classes_num_,

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

@@ -915,7 +915,7 @@
             LEFT JOIN class_group cg ON  cs.class_group_id_=cg.id_
             LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         <include refid="teacherClassCourseScheduleQueryCondition"/>
-        ORDER BY cs.id_
+        ORDER BY start_class_time_
         <include refid="global.limit"/>
     </select>
 

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

@@ -192,7 +192,10 @@
         FROM
         student_vip_group_payment svgp
         LEFT JOIN student_payment_order spo ON svgp.student_payment_order_id_=spo.id_
-        WHERE svgp.user_id_=#{userId} AND svgp.vip_group_id_=#{vipGroupId} AND spo.status_='ING' and spo.type_ = 'SMALL_CLASS_TO_BUY'
+        WHERE svgp.user_id_=#{userId}
+        AND svgp.vip_group_id_=#{vipGroupId}
+        AND spo.status_=#{status}
+        and spo.type_ = 'SMALL_CLASS_TO_BUY'
     </select>
     <!-- 查询报名订单 -->
     <select id="findMusicGroupApplyOrderByStatus" resultMap="StudentPaymentOrder">

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

@@ -270,7 +270,7 @@
             vg.status_!=3
             AND vg.audit_status_='PASS'
             AND vg.status_=1
-            AND (select count(1) as num from student_vip_group_payment where vg.id_ = vip_group_id_ AND user_id_=#{userId}) = 0
+            AND (select count(1) as num from student_payment_order where vg.id_ = music_group_id_ AND user_id_=#{userId} AND status_='SUCCESS') = 0
             <if test="subjectId!=null">
                AND FIND_IN_SET(#{subjectId},cg.subject_id_list_)
             </if>

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

@@ -241,7 +241,7 @@ public class MusicGroupController extends BaseController {
                 orderAmount,
                 orderNo,
                 "http://47.99.212.176:8000/studentOrder/notify",
-                "http://mstudev.dayaedu.com/#/paymentResult",
+                "http://mstudev.dayaedu.com/#/paymentResult?orderNo="+orderNo,
                 "测试订单",
                 "测试订单");
 
@@ -318,7 +318,7 @@ public class MusicGroupController extends BaseController {
         IdWorker idWorker = new IdWorker(0, 0);
         String orderNo = idWorker.nextId();
 
-        Map payMap = payService.getPayMap(orderAmount, orderNo, "http://47.99.212.176:8000/studentOrder/notify", "http://dev.dayaedu.com", "测试订单", "测试订单");
+        Map payMap = payService.getPayMap(orderAmount, orderNo, "http://47.99.212.176:8000/studentOrder/notify", "http://dev.dayaedu.com?orderNo="+orderNo, "测试订单", "测试订单");
 
         studentRegistrationService.reAddOrder(userId, amount, orderNo, "双乾", courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId(),ApplyOrder);
 
@@ -337,7 +337,7 @@ public class MusicGroupController extends BaseController {
         IdWorker idWorker = new IdWorker(0, 0);
         String orderNo = "1017" + idWorker.nextId();
         BigDecimal amount = new BigDecimal("0.01");
-        Map map = payService.getPayMap(amount, orderNo, "http://47.99.212.176:8000/studentOrder/notify", "https://baodiu.com", "测试订单", "测试订单");
+        Map map = payService.getPayMap(amount, orderNo, "http://47.99.212.176:8000/studentOrder/notify", "https://baodiu.com?orderNo="+orderNo, "测试订单", "测试订单");
        return succeed(map);
     }
 

+ 21 - 5
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -7,20 +7,22 @@ import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.biz.service.VipGroupService;
+import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.thirdparty.union.NotifyMsg;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Objects;
 
 @RequestMapping("studentOrder")
 @Api(tags = "订单回调")
 @RestController
-public class StudentOrderController {
+public class StudentOrderController extends BaseController {
     private static final Logger logger = LoggerFactory.getLogger(StudentOrderController.class);
     @Autowired
     private StudentPaymentOrderService studentPaymentOrderService;
@@ -76,4 +78,18 @@ public class StudentOrderController {
     }
 
 
+    @ApiOperation(value = "查询订单状态")
+    @GetMapping("/checkOrderStatus")
+    public Object checkOrderStatus(String orderNo){
+        if(StringUtils.isBlank(orderNo)){
+            return failed("请指定订单");
+        }
+        StudentPaymentOrder orderByOrderNo = studentPaymentOrderService.findOrderByOrderNo(orderNo);
+        if(Objects.isNull(orderByOrderNo)){
+            return failed("未找到指定订单");
+        }
+        return succeed(orderByOrderNo.getStatus());
+    }
+
+
 }

+ 11 - 6
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java

@@ -4,18 +4,15 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.dto.VipGroupCostCountParamsDto;
+import com.ym.mec.biz.service.SchoolService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.Objects;
 
@@ -33,6 +30,8 @@ public class TeacherVipGroupController extends BaseController {
 
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private SchoolService schoolService;
 
 	@ApiOperation("vip课申请")
 	@PostMapping("/vipGroupApply")
@@ -66,4 +65,10 @@ public class TeacherVipGroupController extends BaseController {
 		return succeed(vipGroupService.querySchoolByUserId(user.getId()));
 	}
 
+	@ApiOperation(value = "获取教师vip课教学点")
+	@GetMapping("/findVipSchoolByTeacher")
+	public Object findVipSchoolByTeacher(@ApiParam(value = "教师编号", required = true) Integer userId){
+		return succeed(schoolService.findVipSchoolByTeacher(userId));
+	}
+
 }