Browse Source

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

zouxuan 5 years ago
parent
commit
62db11f28f

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GoodsDao.java

@@ -33,4 +33,5 @@ public interface GoodsDao extends BaseDAO<Integer, Goods> {
      */
     List<Goods> findGoodsByIds(@Param("ids") String ids);
 
+    List<Goods> findTypeGoods(@Param("type") String type);
 }

+ 3 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -39,14 +39,13 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @describe 判断该课程是否只能进行正常签到
 	 * @author Joburgess
 	 * @date 2019/11/5
-	 * @param teacherAttendanceDto: 教师签到信息
+	 * @param startClassTime: 课程开始时间
 	 * @param userId: 教师编号
 	 * @param checkSchool: 是否判断教学点
+	 * @param schoolId: 学校编号
 	 * @return com.ym.mec.biz.dal.enums.YesOrNoEnum
 	 */
-	YesOrNoEnum enableOnlyNormalAttendance(TeacherAttendanceDto teacherAttendanceDto,
-										   Long userId,
-										   boolean checkSchool);
+	YesOrNoEnum enableOnlyNormalAttendance(Date startClassTime,Long userId,boolean checkSchool,Integer schoolId);
 
 	/**
 	 * @Author: Joburgess

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/GoodsService.java

@@ -31,4 +31,13 @@ public interface GoodsService extends BaseService<Integer, Goods> {
      * @return
      */
     List<Goods> findGoodsByIds(String ids);
+
+
+    /**
+     * 查询某种类型的商品
+     * @param type
+     * @return
+     */
+    List<Goods> findTypeGoods(String type);
+
 }

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

@@ -85,7 +85,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		    throw new BizException("课程不存在");
         }
 
-		currentCourseDetail.setOnlyNormal(enableOnlyNormalAttendance(currentCourseDetail, user.getId().longValue(),true));
+		currentCourseDetail.setOnlyNormal(enableOnlyNormalAttendance(currentCourseDetail.getStartClassTime(),
+				user.getId().longValue(),
+				true,
+				currentCourseDetail.getSchoolId().intValue()));
 
 		currentCourseDetail.setCurrentTime(new Date());
 		currentCourseDetail.setAdvanceSignInMinutes(Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES)));
@@ -102,15 +105,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public YesOrNoEnum enableOnlyNormalAttendance(TeacherAttendanceDto teacherAttendanceDto,Long userId,boolean checkSchool){
-		Date endTime=teacherAttendanceDto.getStartClassTime();
+	public YesOrNoEnum enableOnlyNormalAttendance(Date startClassTime,Long userId,boolean checkSchool,Integer schoolId){
+		Date endTime=startClassTime;
 		Date startTime=DateUtil.addHours(endTime,-1);
 		TeacherAttendanceDto teacherCourseByDateSpeed = courseScheduleDao.getTeacherCourseByDateSpeed(startTime, endTime, userId);
 		if(Objects.isNull(teacherCourseByDateSpeed)){
 			return YesOrNoEnum.NO;
 		}else{
 			int i = studentAttendanceDao.countByCourseSchedule(teacherCourseByDateSpeed.getCourseScheduleId());
-			if(i>0&&checkSchool&&teacherAttendanceDto.getSchoolId().equals(teacherCourseByDateSpeed.getSchoolId())){
+			if(i>0&&checkSchool&&schoolId.equals(teacherCourseByDateSpeed.getSchoolId())){
 				return YesOrNoEnum.YES;
 			}else{
 				return YesOrNoEnum.NO;
@@ -688,6 +691,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		CourseScheduleDto courseSchedules = courseScheduleDao.getCourseSchedules(courseScheduleComplaints.getCourseScheduleId());
 		Date now=new Date();
+		if(!courseSchedules.getStatus().equals(CourseStatusEnum.OVER)){
+			throw new BizException("该课程还未结束");
+		}
 		int i = DateUtil.daysBetween(courseSchedules.getEndClassTime(), now);
 		if(i>Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.VIP_APPEAL_DAYS_RANGE))){
 			throw new BizException("该课程已超过可申诉时间范围!");

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java

@@ -34,4 +34,9 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 	public List<Goods> findGoodsByIds(String ids) {
 		return goodsDao.findGoodsByIds(ids);
 	}
+
+	@Override
+	public List<Goods> findTypeGoods(String type) {
+		return goodsDao.findTypeGoods(type);
+	}
 }

+ 88 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1,15 +1,89 @@
 package com.ym.mec.biz.service.impl;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.dao.ChargeTypeDao;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.CooperationOrganDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPurchaseListDao;
+import com.ym.mec.biz.dal.dao.MusicGroupQuitDao;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
+import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.dao.SchoolDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.SysMessageConfigDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
+import com.ym.mec.biz.dal.dto.MusicCardDto;
+import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
+import com.ym.mec.biz.dal.dto.SubjectRegisterDto;
+import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
+import com.ym.mec.biz.dal.entity.ApprovalStatus;
+import com.ym.mec.biz.dal.entity.ChargeType;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
-import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.entity.School;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.PayService;
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.exception.BizException;
@@ -19,17 +93,6 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-import com.ym.mec.util.string.MessageFormatter;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> implements MusicGroupService {
@@ -964,12 +1027,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //给家长发送乐团基础训练课短信
         //获取所有乐团学员列表
         List<StudentRegistration> students = studentRegistrationDao.queryStudentByMusicGroupId(musicGroupId);
-        //获取所有家长电话
-        Set<String> parentsPhones = students.stream().map(StudentRegistration::getParentsPhone).collect(Collectors.toSet());
-        //获取对应家长的用户编号
-        Map<Integer,String> userIds = MapUtil.convertMybatisMap(studentRegistrationDao.findParentId(StringUtils.join(parentsPhones,",")));
-        userIds = JSONObject.parseObject(JSONObject.toJSONString(userIds),HashMap.class);
-        String content = sysMessageConfigDao.findContent(MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE.getCode());
-        sysMessageService.batchSendMessage(MessageSender.YIMEI,"",content,userIds,new Date(),0,"");
+		if (students != null && students.size() > 0) {
+			// 获取所有家长电话
+			Set<String> parentsPhones = students.stream().map(StudentRegistration::getParentsPhone).collect(Collectors.toSet());
+			// 获取对应家长的用户编号
+			Map<Integer, String> userIds = MapUtil.convertMybatisMap(studentRegistrationDao.findParentId(StringUtils.join(parentsPhones, ",")));
+			userIds = JSONObject.parseObject(JSONObject.toJSONString(userIds), HashMap.class);
+			String content = sysMessageConfigDao.findContent(MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE.getCode());
+			sysMessageService.batchSendMessage(MessageSender.YIMEI, "", content, userIds, new Date(), 0, "");
+		}
     }
 }

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

@@ -87,7 +87,7 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
             }
         });
         //获取声部(科目)下其他商品
-        List<Goods> otherGoods = goodsService.findGoodsBySubId(subjectId, "OTHER");
+        List<Goods> otherGoods = goodsService.findTypeGoods( "OTHER");
 
         MusicGroupSubjectGoodsAndInfoDto musicGroupSubjectGoodsAndInfo = new MusicGroupSubjectGoodsAndInfoDto();
         musicGroupSubjectGoodsAndInfo.setMusicGroupSubjectPlan(musicOneSubjectClassPlan);

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

@@ -582,7 +582,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         List<StudentRegistration> musicGroupStudents = studentRegistrationDao.findMusicGroupStudent(musicGroupId, actualSubjectId);
         for (StudentRegistration musicGroupStudent : musicGroupStudents) {
             for (Subject subject : subjectList) {
-                if (musicGroupStudent.getActualSubjectId().equals(subject.getId().toString())) {
+                if (musicGroupStudent.getActualSubjectId().equals(subject.getId())) {
                     musicGroupStudent.setSubjectName(subject.getName());
                 }
             }

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

@@ -96,7 +96,10 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 				throw new BizException("该课程已结束,不能进行签到!");
 			}
 
-			YesOrNoEnum yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(currentCourseDetail, user.getId().longValue(),true);
+			YesOrNoEnum yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(currentCourseDetail.getStartClassTime(),
+					user.getId().longValue(),
+					true,
+					currentCourseDetail.getSchoolId().intValue());
 
 			if(yesOrNoEnum==YesOrNoEnum.YES){
 				teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
@@ -181,10 +184,16 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 
 		int timeGap = DateUtil.minutesBetween(now, courseSchedule.getStartClassTime());
 
+		YesOrNoEnum yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(courseSchedule.getStartClassTime(),
+				userId.longValue(),
+				false,
+				null);
+
+
 		switch (signStatus){
 			case SIGN_IN:
 				teacherAttendance.setSignInTime(now);
-				if(advanceSignInMinutes<=timeGap&&timeGap<=60){
+				if(yesOrNoEnum.equals(YesOrNoEnum.YES)||advanceSignInMinutes<=timeGap&&timeGap<=60){
 					teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
 				}else{
 					teacherAttendance.setSignInStatus(YesOrNoEnum.NO);

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

@@ -743,17 +743,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("您已购买过此课程");
 		}
 
-		StudentPaymentOrder byStudentVipGroup = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
-				user.getId(),
-				DealStatusEnum.ING.getMsg());
-
-		if(Objects.nonNull(byStudentVipGroup)){
-			byStudentVipGroup.setStatus(DealStatusEnum.CLOSE);
-			studentPaymentOrderDao.update(byStudentVipGroup);
-			//更新班级人数,如果订单支付失败则减少
-			updateVipGroupStudentNumAndStatus(vipGroup.getId(),1,false);
-		}
-
 		VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
 
 		if(Objects.isNull(vipGroupClassGroupMapper)){
@@ -768,6 +757,18 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("该课程人数已达上限");
 		}
 
+		StudentPaymentOrder byStudentVipGroup = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
+				user.getId(),
+				DealStatusEnum.ING.getCode());
+
+		if(Objects.nonNull(byStudentVipGroup)){
+			byStudentVipGroup.setStatus(DealStatusEnum.CLOSE);
+			studentPaymentOrderDao.update(byStudentVipGroup);
+		}else{
+			//更新班级人数,如果订单支付失败则减少
+			updateVipGroupStudentNumAndStatus(vipGroup.getId(),1,false);
+		}
+
 //		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue());
 		StudentPaymentOrder studentPaymentOrder=new StudentPaymentOrder();
 		studentPaymentOrder.setUserId(user.getId());
@@ -801,9 +802,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				"http://mstudev.dayaedu.com/#/paymentresult?orderNo="+orderNo,
 				"vip课购买",
 				vipGroup.getName());
-		//将学员加入vip班级群组
-		ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(user.getId().toString())};
-		imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 
 		return payMap;
 
@@ -825,36 +823,37 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		//将学生加入到班级,更新班级报名状态及人数信息
 		if(!isOk){
 			updateVipGroupStudentNumAndStatus(vipGroupId,-1,false);
-		}else{
-			updateVipGroupStudentNumAndStatus(vipGroupId,0,true);
-			SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
-			//插入缴费明细
-			//收入
-			SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
-			sysUserIncomeCashAccountDetail.setUserId(userId);
-			sysUserIncomeCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
-			sysUserIncomeCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-			sysUserIncomeCashAccountDetail.setAmount(order.getActualAmount());
-			sysUserIncomeCashAccountDetail.setBalance(sysUserCashAccount.getBalance().add(order.getActualAmount()));
-			sysUserIncomeCashAccountDetail.setAttribute(order.getTransNo());
-
-			//支出
-			SysUserCashAccountDetail sysUserExpendCashAccountDetail = new SysUserCashAccountDetail();
-			sysUserExpendCashAccountDetail.setUserId(userId);
-			sysUserExpendCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
-			sysUserExpendCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-			sysUserExpendCashAccountDetail.setAmount(order.getActualAmount().negate());
-			sysUserExpendCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
-			sysUserExpendCashAccountDetail.setAttribute(order.getTransNo());
-
-			sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
-			sysUserCashAccountDetailService.insert(sysUserExpendCashAccountDetail);
-			Map<Integer,String> map = new HashMap<>(1);
-			map.put(userId,userId.toString());
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_VIP_BUY, map, null, 0, "",
-					vipGroup.getName());
+			return;
 		}
 
+		updateVipGroupStudentNumAndStatus(vipGroupId,0,true);
+		SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
+		//插入缴费明细
+		//收入
+		SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
+		sysUserIncomeCashAccountDetail.setUserId(userId);
+		sysUserIncomeCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
+		sysUserIncomeCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+		sysUserIncomeCashAccountDetail.setAmount(order.getActualAmount());
+		sysUserIncomeCashAccountDetail.setBalance(sysUserCashAccount.getBalance().add(order.getActualAmount()));
+		sysUserIncomeCashAccountDetail.setAttribute(order.getTransNo());
+
+		//支出
+		SysUserCashAccountDetail sysUserExpendCashAccountDetail = new SysUserCashAccountDetail();
+		sysUserExpendCashAccountDetail.setUserId(userId);
+		sysUserExpendCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
+		sysUserExpendCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+		sysUserExpendCashAccountDetail.setAmount(order.getActualAmount().negate());
+		sysUserExpendCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
+		sysUserExpendCashAccountDetail.setAttribute(order.getTransNo());
+
+		sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
+		sysUserCashAccountDetailService.insert(sysUserExpendCashAccountDetail);
+		Map<Integer,String> map = new HashMap<>(1);
+		map.put(userId,userId.toString());
+		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_VIP_BUY, map, null, 0, "",
+				vipGroup.getName());
+
 		//生成学生单课缴费信息
 		courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentForVipGroup(vipGroupId,userId);
 
@@ -864,6 +863,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroupStudentMapper.setMusicGroupId(vipGroupId.toString());
 		classGroupStudentMapperDao.insert(classGroupStudentMapper);
 
+		//将学员加入vip班级群组
+		ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(userId.toString())};
+		imFeignService.groupJoin(new ImGroupModel(vipGroupClassGroupMapper.getClassGroupId().toString(), imGroupMembers, null));
+
 		//更新所属分部列表
 		List<Integer> organIds = classGroupDao.findStudentOrganIdsByClassGroup(vipGroupClassGroupMapper.getClassGroupId().longValue());
 		organIds.add(vipGroup.getOrganId());

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml

@@ -154,4 +154,7 @@
     <select id="findGoodsByIds" resultMap="Goods">
         SELECT * FROM goods WHERE FIND_IN_SET(id_,#{ids})
     </select>
+    <select id="findTypeGoods" resultMap="Goods">
+        SELECT * FROM goods WHERE type_ = #{type}
+    </select>
 </mapper>

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

@@ -339,9 +339,8 @@ public class MusicGroupController extends BaseController {
         String orderNo = idGeneratorService.generatorId("payment")+"";
         BigDecimal amount = new BigDecimal("0.01");
         String payChannel = PayChannelEnum.ALIPAY_QR.getCode();
-        Payment payment = Pay.executePayment(amount, orderNo, payChannel, "测试订单", "测试订单");
-        //Map map = payService.getPayMap(amount, orderNo, "http://47.99.212.176:8000/studentOrder/notify", "https://baodiu.com", "测试订单", "测试订单");
-       return succeed(payment);
+        Map map = payService.getPayMap(amount, orderNo, "http://47.99.212.176:8000/studentOrder/notify", "https://baodiu.com", "测试订单", "测试订单");
+       return succeed(map);
     }
 
     @ApiOperation(value = "订单状态查询")

+ 6 - 7
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -95,14 +95,13 @@ public class StudentOrderController extends BaseController {
     }
 
     @ApiOperation(value = "台牌支付")
-    @GetMapping("/executePayment")
-    public Object executePayment() throws Exception {
-        String orderNo = "jsdk_payment_" + System.currentTimeMillis();
+    @PostMapping("/executePayment")
+    public Object executePayment(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody,String sign) throws Exception {
         String payChannel = PayChannelEnum.ALIPAY_QR.getCode();
-        BigDecimal amount = new BigDecimal("0.01");
-        String orderSubject = "测试大雅订单";
-        String orderBody = "测试大雅订单";
-        Payment payment = Pay.executePayment(amount, orderNo, payChannel, orderSubject, orderBody);
+//        if (!new Pay().verifySign(amount, orderNo, notifyUrl, orderSubject, orderBody,sign)) {
+//            return failed("签名验证失败");
+//        }
+        Payment payment = new Pay().executePayment(amount, orderNo, payChannel, orderSubject, orderBody);
         return succeed(payment);
     }
 

+ 3 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -103,6 +103,9 @@ public class TeacherCourseScheduleController extends BaseController {
         if(Objects.isNull(classDateAdjustDto.getId())){
             return failed("请指定课程!");
         }
+        if(classDateAdjustDto.getStartClassTime().before(new Date())){
+            return failed("课程开始时间不能小于当前时间");
+        }
         List<CourseSchedule> courseSchedules=new ArrayList<>();
         courseSchedules.add(classDateAdjustDto);
         scheduleService.classStartDateAdjust(courseSchedules);

+ 35 - 7
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/Pay.java

@@ -1,18 +1,17 @@
 package com.ym.mec.thirdparty.adapay;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.huifu.adapay.AdaPay;
 import com.huifu.adapay.demo.BaseDemo;
 import com.huifu.adapay.demo.NotifyCallbackDemo;
 import com.huifu.adapay.exception.BaseAdaPayException;
 import com.huifu.adapay.model.DeviceInfo;
 import com.huifu.adapay.model.payment.*;
+import com.huifu.adapay.util.AdaPaySign;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @author jane.zhao
@@ -25,7 +24,7 @@ public class Pay {
      * @return paymentId
      * @throws Exception 异常
      */
-    public static void init() throws Exception {
+    public Pay() throws Exception {
         //apiKey,商户联调用
         String apiKey = "api_test_e640fa26-bbe6-458f-ac44-a71723ee2176";
         //apiKey,真实交易用(live)
@@ -55,7 +54,7 @@ public class Pay {
         BigDecimal amount = new BigDecimal("0.01");
         String orderSubject = "测试大雅订单";
         String orderBody = "测试大雅订单";
-        Payment payment = Pay.executePayment(amount,orderNo,payChannel,orderSubject,orderBody);
+        Payment payment = demo.executePayment(amount,orderNo,payChannel,orderSubject,orderBody);
         //支付查询接口
         //demo.queryPayment(payment.getId());
         //关单接口
@@ -64,13 +63,42 @@ public class Pay {
         return payment.getId();
     }
 
+
+    public Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String orderSubject, String orderBody) throws Exception {
+
+        Map<String, Object> paymentParams = new HashMap<>(10);
+        paymentParams.put("appId",appId);
+        paymentParams.put("amount", amount);
+        paymentParams.put("orderNo", orderNo);
+        paymentParams.put("notifyUrl", notifyUrl);
+        paymentParams.put("orderSubject", orderSubject);
+        paymentParams.put("orderBody", orderBody);
+        String originalStr = JSONObject.toJSONString(paymentParams);
+
+        String sign  =  AdaPaySign.sign(originalStr, AdaPay.privateKey);
+        paymentParams.put("sign",sign);
+        paymentParams.remove(appId);
+        return  paymentParams;
+    }
+
+    public boolean verifySign(BigDecimal amount, String orderNo, String notifyUrl, String orderSubject, String orderBody, String sign) throws Exception {
+        Map<String, Object> paymentParams = new HashMap<>(10);
+        paymentParams.put("appId",appId);
+        paymentParams.put("amount", amount);
+        paymentParams.put("orderNo", orderNo);
+        paymentParams.put("notifyUrl", notifyUrl);
+        paymentParams.put("orderSubject", orderSubject);
+        paymentParams.put("orderBody", orderBody);
+        String originalStr = JSONObject.toJSONString(paymentParams);
+        return AdaPaySign.verifySign(originalStr,sign, AdaPay.pubKey);
+    }
+
     /**
      * 执行一个支付交易
      * @return 创建的支付对象
      * @throws Exception 异常
      */
     public static Payment executePayment(BigDecimal amount,String orderNo,String payChannel,String orderSubject,String orderBody) throws Exception {
-        init();
         System.out.println("=======execute payment begin=======");
         //创建支付对象的参数,全部参数请参考 https://docs.adapay.tech/api/04-trade.html#id3
         Map<String, Object> paymentParams = new HashMap<>(10);