Browse Source

增加乐器采购清单确认接口

周箭河 5 years ago
parent
commit
6f8ba56717

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrder> {
 public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrder> {
@@ -63,15 +64,34 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
 
 
     /**
     /**
      * 查找支付成功和支付中订单
      * 查找支付成功和支付中订单
+     *
      * @return
      * @return
      */
      */
     int findPayOrderNum();
     int findPayOrderNum();
 
 
     /**
     /**
      * 获取学员报名时所购买的商品
      * 获取学员报名时所购买的商品
+     *
      * @param musicGroupId
      * @param musicGroupId
      * @param userId
      * @param userId
      * @return
      * @return
      */
      */
     List<UserGoodsDto> findGoodsIds(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
     List<UserGoodsDto> findGoodsIds(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
+
+    /**
+     * 查询支付中订单
+     *
+     * @param status
+     * @return
+     */
+    List<StudentPaymentOrder> findOrdersByStatus(@Param("status") DealStatusEnum status, @Param("paymentChannel") String paymentChannel);
+
+    /**
+     * 查询支付中超时的订单
+     * @param orderNoList
+     * @param status
+     * @param beforeTime
+     * @return
+     */
+    List<StudentPaymentOrder> findOrdersOverTime(@Param("orderNoList") List<String> orderNoList, @Param("status") DealStatusEnum status, @Param("beforeTime") Date beforeTime);
 }
 }

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

@@ -25,8 +25,8 @@ public interface PayService {
      * @return
      * @return
      * @throws Exception
      * @throws Exception
      */
      */
-    public Map getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody) throws Exception;
+    Map<String,Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody) throws Exception;
 
 
-    public Map query(String orderNo) throws Exception;
+    Map query(String orderNo) throws Exception;
 
 
 }
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -1,12 +1,16 @@
 package com.ym.mec.biz.service;
 package com.ym.mec.biz.service;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
+import com.huifu.adapay.model.payment.PayChannelEnum;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.PaymentChannelTypeEnum;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.common.service.BaseService;
+import org.apache.ibatis.annotations.Param;
 
 
 public interface StudentPaymentOrderService extends BaseService<Long, StudentPaymentOrder> {
 public interface StudentPaymentOrderService extends BaseService<Long, StudentPaymentOrder> {
 
 
@@ -40,4 +44,22 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
 	 * @return
 	 * @return
 	 */
 	 */
 	int findPayOrderNum();
 	int findPayOrderNum();
+
+	/**
+	 * 查询支付中订单
+	 *
+	 * @param status
+	 * @return
+	 */
+	List<StudentPaymentOrder> findOrdersByStatus(DealStatusEnum status, String paymentChannel);
+
+
+	/**
+	 * 查询支付中超时的订单
+	 * @param orderNoList
+	 * @param status
+	 * @param beforeTime
+	 * @return
+	 */
+	List<StudentPaymentOrder> findOrdersOverTime(List<String> orderNoList, DealStatusEnum status, Date beforeTime);
 }
 }

+ 139 - 137
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -105,15 +105,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 
     @Autowired
     @Autowired
     private SysUserFeignService sysUserFeignService;
     private SysUserFeignService sysUserFeignService;
-	
-	@Autowired
-	private SysMessageService sysMessageService;
 
 
-	@Autowired
-	private SysMessageConfigDao sysMessageConfigDao;
+    @Autowired
+    private SysMessageService sysMessageService;
+
+    @Autowired
+    private SysMessageConfigDao sysMessageConfigDao;
 
 
-	@Autowired
-	private SysConfigDao sysConfigDao;
+    @Autowired
+    private SysConfigDao sysConfigDao;
 
 
     @Override
     @Override
     public BaseDAO<String, MusicGroup> getDAO() {
     public BaseDAO<String, MusicGroup> getDAO() {
@@ -124,7 +124,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public String createGroup(SubFeeSettingDto subFeeSettingDto) throws Exception {
     public String createGroup(SubFeeSettingDto subFeeSettingDto) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new Exception("用户信息获取失败");
             throw new Exception("用户信息获取失败");
         }
         }
         MusicGroup musicGroup = subFeeSettingDto.getMusicGroup();
         MusicGroup musicGroup = subFeeSettingDto.getMusicGroup();
@@ -133,27 +133,27 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         List<SubjectRegisterDto> subjectRegisters = subFeeSettingDto.getSubjectRegisters();
         List<SubjectRegisterDto> subjectRegisters = subFeeSettingDto.getSubjectRegisters();
         String musicGroupId = idGeneratorService.generatorId() + "";
         String musicGroupId = idGeneratorService.generatorId() + "";
         musicGroup.setId(musicGroupId);
         musicGroup.setId(musicGroupId);
-        if(musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT && musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT){
+        if (musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT && musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT) {
             throw new Exception("乐团初始状态错误");
             throw new Exception("乐团初始状态错误");
         }
         }
         // 保存乐团基本信息
         // 保存乐团基本信息
         musicGroupDao.insert(musicGroup);
         musicGroupDao.insert(musicGroup);
         // 保存乐团付费主体列表
         // 保存乐团付费主体列表
         //批量新增
         //批量新增
-        if(subFeeSettingDto.getMusicGroupPaymentEntities() != null && subFeeSettingDto.getMusicGroupPaymentEntities().size() > 0){
-            musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(),musicGroupId);
+        if (subFeeSettingDto.getMusicGroupPaymentEntities() != null && subFeeSettingDto.getMusicGroupPaymentEntities().size() > 0) {
+            musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(), musicGroupId);
         }
         }
         // 保存学员付费周期
         // 保存学员付费周期
         List<Integer> months = subFeeSettingDto.getMonths();
         List<Integer> months = subFeeSettingDto.getMonths();
         if (months != null && months.size() > 0) {
         if (months != null && months.size() > 0) {
-            musicGroupPaymentCalenderDao.batchAdd(months,musicGroupId);
+            musicGroupPaymentCalenderDao.batchAdd(months, musicGroupId);
         }
         }
 
 
         //乐团科目学生
         //乐团科目学生
         if (subjectRegisters != null) {
         if (subjectRegisters != null) {
             List<StudentRegistration> studentRegistrationList = new ArrayList<>();
             List<StudentRegistration> studentRegistrationList = new ArrayList<>();
             subjectRegisters.forEach(e -> {
             subjectRegisters.forEach(e -> {
-                    //原来乐团的注册学生
+                //原来乐团的注册学生
                 List<StudentRegistration> musicGroupStudentRegistrationList = studentRegistrationDao.findStudentListByIdList(e.getRegisterIdList());
                 List<StudentRegistration> musicGroupStudentRegistrationList = studentRegistrationDao.findStudentListByIdList(e.getRegisterIdList());
                 for (StudentRegistration studentRegistration : musicGroupStudentRegistrationList) {
                 for (StudentRegistration studentRegistration : musicGroupStudentRegistrationList) {
                     studentRegistration.setId(null);
                     studentRegistration.setId(null);
@@ -166,7 +166,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 studentRegistrationList.addAll(musicGroupStudentRegistrationList);
                 studentRegistrationList.addAll(musicGroupStudentRegistrationList);
 
 
                 for (MusicGroupSubjectPlan musicGroupSubjectPlan : musicGroupSubjectPlans) {
                 for (MusicGroupSubjectPlan musicGroupSubjectPlan : musicGroupSubjectPlans) {
-                    if(!musicGroupSubjectPlan.getSubjectId().equals(e.getSubjectId())) continue;
+                    if (!musicGroupSubjectPlan.getSubjectId().equals(e.getSubjectId())) continue;
                     musicGroupSubjectPlan.setExpectedStudentNum(e.getRegisterIdList().size());
                     musicGroupSubjectPlan.setExpectedStudentNum(e.getRegisterIdList().size());
                     musicGroupSubjectPlan.setApplyStudentNum(e.getRegisterIdList().size());
                     musicGroupSubjectPlan.setApplyStudentNum(e.getRegisterIdList().size());
                 }
                 }
@@ -176,14 +176,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 
         // 保存乐团声部规划
         // 保存乐团声部规划
         if (musicGroupSubjectPlans != null) {
         if (musicGroupSubjectPlans != null) {
-            musicGroupSubjectPlanDao.batchAdd(musicGroupSubjectPlans,musicGroupId);
+            musicGroupSubjectPlanDao.batchAdd(musicGroupSubjectPlans, musicGroupId);
         }
         }
         // 保存乐团声部商品规划
         // 保存乐团声部商品规划
         if (musicGroupSubjectGoodsGroups != null) {
         if (musicGroupSubjectGoodsGroups != null) {
-            musicGroupSubjectGoodsGroupDao.batchInsert(musicGroupSubjectGoodsGroups,musicGroupId);
+            musicGroupSubjectGoodsGroupDao.batchInsert(musicGroupSubjectGoodsGroups, musicGroupId);
         }
         }
         // 记录创建日志
         // 记录创建日志
-        String event = musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT?"新建乐团,提交审核":"保存乐团草稿";
+        String event = musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT ? "新建乐团,提交审核" : "保存乐团草稿";
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, event, sysUser.getId(), ""));
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, event, sysUser.getId(), ""));
         return musicGroupId;
         return musicGroupId;
     }
     }
@@ -192,33 +192,33 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public void updateSubjectInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
     public void updateSubjectInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new Exception("身份校验失败");
             throw new Exception("身份校验失败");
         }
         }
         String musicGroupId = subFeeSettingDto.getMusicGroupId();
         String musicGroupId = subFeeSettingDto.getMusicGroupId();
 
 
         //乐团状态是否正确
         //乐团状态是否正确
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-        if(musicGroup != null){
-            if(musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT && musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT_FAILED){
+        if (musicGroup != null) {
+            if (musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT && musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT_FAILED) {
                 throw new Exception("当前乐团状态不支持此操作");
                 throw new Exception("当前乐团状态不支持此操作");
             }
             }
-            if(subFeeSettingDto.getMusicGroupStatus() == null){
+            if (subFeeSettingDto.getMusicGroupStatus() == null) {
                 throw new Exception("参数校验异常");
                 throw new Exception("参数校验异常");
             }
             }
             musicGroup.setStatus(subFeeSettingDto.getMusicGroupStatus());
             musicGroup.setStatus(subFeeSettingDto.getMusicGroupStatus());
             musicGroup.setUpdateTime(new Date());
             musicGroup.setUpdateTime(new Date());
             musicGroupDao.update(musicGroup);
             musicGroupDao.update(musicGroup);
             //记录日志信息
             //记录日志信息
-            musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"修改乐团计划声部、乐器",sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
+            musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "修改乐团计划声部、乐器", sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
             //删除原有的乐团声部规划
             //删除原有的乐团声部规划
             musicGroupSubjectPlanDao.delByMusicGroupId(musicGroupId);
             musicGroupSubjectPlanDao.delByMusicGroupId(musicGroupId);
             //删除原有的声部商品组合
             //删除原有的声部商品组合
             musicGroupSubjectGoodsGroupDao.delByMusicGroupId(subFeeSettingDto.getMusicGroupId());
             musicGroupSubjectGoodsGroupDao.delByMusicGroupId(subFeeSettingDto.getMusicGroupId());
 
 
-            musicGroupSubjectPlanDao.batchAdd(subFeeSettingDto.getMusicGroupSubjectPlans(),musicGroupId);
-            musicGroupSubjectGoodsGroupDao.batchInsert(subFeeSettingDto.getMusicGroupSubjectGoodsGroups(),musicGroupId);
-        }else {
+            musicGroupSubjectPlanDao.batchAdd(subFeeSettingDto.getMusicGroupSubjectPlans(), musicGroupId);
+            musicGroupSubjectGoodsGroupDao.batchInsert(subFeeSettingDto.getMusicGroupSubjectGoodsGroups(), musicGroupId);
+        } else {
             throw new Exception("乐团信息不存在");
             throw new Exception("乐团信息不存在");
         }
         }
     }
     }
@@ -226,8 +226,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public void updateExpectedStudentNum(List<UpdateExpectedNumDto> updateExpectedNumDtos) {
     public void updateExpectedStudentNum(List<UpdateExpectedNumDto> updateExpectedNumDtos) {
-        updateExpectedNumDtos.forEach(e->{
-            musicGroupSubjectPlanDao.updateExpectedStudentNum(e.getExpectedStudentNum(),e.getMusicGroupSubjectPlanId());
+        updateExpectedNumDtos.forEach(e -> {
+            musicGroupSubjectPlanDao.updateExpectedStudentNum(e.getExpectedStudentNum(), e.getMusicGroupSubjectPlanId());
         });
         });
     }
     }
 
 
@@ -235,32 +235,32 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public void musicGroupAction(String musicGroupId) throws Exception {
     public void musicGroupAction(String musicGroupId) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new Exception("用户信息获取失败");
             throw new Exception("用户信息获取失败");
         }
         }
-        MusicGroup musicGroup = saveLog(musicGroupId,MusicGroupStatusEnum.PREPARE);
+        MusicGroup musicGroup = saveLog(musicGroupId, MusicGroupStatusEnum.PREPARE);
         //乐器采购清单是否确认
         //乐器采购清单是否确认
-        Map<String,Object> param = new HashMap<>();
-        param.put("musicGroupId",musicGroupId);
+        Map<String, Object> param = new HashMap<>();
+        param.put("musicGroupId", musicGroupId);
         int i = musicGroupPurchaseListDao.queryCount(param);
         int i = musicGroupPurchaseListDao.queryCount(param);
-        if(i <= 0){
+        if (i <= 0) {
             throw new Exception("采购清单未确认");
             throw new Exception("采购清单未确认");
         }
         }
         //课酬是否确认
         //课酬是否确认
 //        courseScheduleTeacherSalaryDao.queryCount();
 //        courseScheduleTeacherSalaryDao.queryCount();
         //记录操作日志
         //记录操作日志
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"确认开团(筹备中 -> 进行中)",sysUser.getId(),""));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "确认开团(筹备中 -> 进行中)", sysUser.getId(), ""));
         musicGroup.setStatus(MusicGroupStatusEnum.PROGRESS);
         musicGroup.setStatus(MusicGroupStatusEnum.PROGRESS);
         musicGroupDao.update(musicGroup);
         musicGroupDao.update(musicGroup);
     }
     }
 
 
-    private MusicGroup saveLog(String musicGroupId,MusicGroupStatusEnum statusEnum) throws Exception {
+    private MusicGroup saveLog(String musicGroupId, MusicGroupStatusEnum statusEnum) throws Exception {
         Date date = new Date();
         Date date = new Date();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-        if(musicGroup == null){
+        if (musicGroup == null) {
             throw new Exception("乐团信息不存在");
             throw new Exception("乐团信息不存在");
         }
         }
-        if(musicGroup.getStatus() != statusEnum){
+        if (musicGroup.getStatus() != statusEnum) {
             throw new Exception("当前乐团状态不支持此操作");
             throw new Exception("当前乐团状态不支持此操作");
         }
         }
         musicGroup.setUpdateTime(date);
         musicGroup.setUpdateTime(date);
@@ -270,25 +270,25 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Override
     public void musicGroupAudit(String musicGroupId) throws Exception {
     public void musicGroupAudit(String musicGroupId) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new Exception("用户信息获取失败");
             throw new Exception("用户信息获取失败");
         }
         }
-        MusicGroup musicGroup = saveLog(musicGroupId,MusicGroupStatusEnum.DRAFT);
+        MusicGroup musicGroup = saveLog(musicGroupId, MusicGroupStatusEnum.DRAFT);
         //记录操作日志
         //记录操作日志
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"提交审核(草稿 -> 审核中)",sysUser.getId(),""));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "提交审核(草稿 -> 审核中)", sysUser.getId(), ""));
         musicGroup.setStatus(MusicGroupStatusEnum.AUDIT);
         musicGroup.setStatus(MusicGroupStatusEnum.AUDIT);
         musicGroupDao.update(musicGroup);
         musicGroupDao.update(musicGroup);
     }
     }
 
 
     @Override
     @Override
-    public void musicGroupAuditFailed(String musicGroupId,String memo) throws Exception {
+    public void musicGroupAuditFailed(String musicGroupId, String memo) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new Exception("用户信息获取失败");
             throw new Exception("用户信息获取失败");
         }
         }
-        MusicGroup musicGroup = saveLog(musicGroupId,MusicGroupStatusEnum.AUDIT);
+        MusicGroup musicGroup = saveLog(musicGroupId, MusicGroupStatusEnum.AUDIT);
         //记录操作日志
         //记录操作日志
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"审核失败(审核中 -> 审核失败)",sysUser.getId(),memo));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "审核失败(审核中 -> 审核失败)", sysUser.getId(), memo));
         musicGroup.setMemo(memo);
         musicGroup.setMemo(memo);
         musicGroup.setStatus(MusicGroupStatusEnum.AUDIT_FAILED);
         musicGroup.setStatus(MusicGroupStatusEnum.AUDIT_FAILED);
         musicGroupDao.update(musicGroup);
         musicGroupDao.update(musicGroup);
@@ -297,12 +297,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Override
     public void musicGroupAuditSuccess(String musicGroupId) throws Exception {
     public void musicGroupAuditSuccess(String musicGroupId) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new Exception("用户信息获取失败");
             throw new Exception("用户信息获取失败");
         }
         }
-        MusicGroup musicGroup = saveLog(musicGroupId,MusicGroupStatusEnum.AUDIT);
+        MusicGroup musicGroup = saveLog(musicGroupId, MusicGroupStatusEnum.AUDIT);
         //记录操作日志
         //记录操作日志
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"审核失败(审核中 -> 报名中)",sysUser.getId(),""));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "审核失败(审核中 -> 报名中)", sysUser.getId(), ""));
         musicGroup.setStatus(MusicGroupStatusEnum.APPLY);
         musicGroup.setStatus(MusicGroupStatusEnum.APPLY);
         musicGroupDao.update(musicGroup);
         musicGroupDao.update(musicGroup);
     }
     }
@@ -311,10 +311,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     public List<MusicCardDto> queryUserMusicGroups(Integer userId) {
     public List<MusicCardDto> queryUserMusicGroups(Integer userId) {
         List<MusicCardDto> musicCardDtos = musicGroupDao.queryUserMusicGroups(userId);
         List<MusicCardDto> musicCardDtos = musicGroupDao.queryUserMusicGroups(userId);
         Set<String> musicGroupIds = musicCardDtos.stream().map(MusicCardDto::getMusicGroupId).collect(Collectors.toSet());
         Set<String> musicGroupIds = musicCardDtos.stream().map(MusicCardDto::getMusicGroupId).collect(Collectors.toSet());
-        Map<String,String> paymentStatus = MapUtil.convertMybatisMap(musicGroupStudentFeeDao.queryUserPaymentStatus(userId,StringUtils.join(musicGroupIds,",")));
+        Map<String, String> paymentStatus = MapUtil.convertMybatisMap(musicGroupStudentFeeDao.queryUserPaymentStatus(userId, StringUtils.join(musicGroupIds, ",")));
         // 获取学员在该乐团续费状态
         // 获取学员在该乐团续费状态
         musicCardDtos.forEach(e -> {
         musicCardDtos.forEach(e -> {
-            e.setPaymentStatus(paymentStatus.get(e.getMusicGroupId()) == null?"NON_PAYMENT":paymentStatus.get(e.getMusicGroupId()));
+            e.setPaymentStatus(paymentStatus.get(e.getMusicGroupId()) == null ? "NON_PAYMENT" : paymentStatus.get(e.getMusicGroupId()));
         });
         });
         return musicCardDtos;
         return musicCardDtos;
     }
     }
@@ -322,7 +322,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Override
     public MusicCardDto queryPersonalMusicGroups(Integer userId) {
     public MusicCardDto queryPersonalMusicGroups(Integer userId) {
         MusicCardDto musicCardDto = musicGroupDao.queryPersonalMusicGroups(userId);
         MusicCardDto musicCardDto = musicGroupDao.queryPersonalMusicGroups(userId);
-        if(musicCardDto != null){
+        if (musicCardDto != null) {
             musicCardDto.setMusicGroupNum(musicGroupDao.countUserMusicGroups(userId));
             musicCardDto.setMusicGroupNum(musicGroupDao.countUserMusicGroups(userId));
             musicCardDto.setVipClassNum(musicGroupDao.countCourseByType(userId, ClassGroupTypeEnum.VIP));
             musicCardDto.setVipClassNum(musicGroupDao.countCourseByType(userId, ClassGroupTypeEnum.VIP));
             return musicCardDto;
             return musicCardDto;
@@ -339,7 +339,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean cancelMusicGroup(String musicGroupId) {
     public boolean cancelMusicGroup(String musicGroupId) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
         }
         }
         MusicGroup musicGroup = musicGroupDao.getLocked(musicGroupId);
         MusicGroup musicGroup = musicGroupDao.getLocked(musicGroupId);
@@ -374,16 +374,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         }
         //获取当前乐团所有已报名学员
         //获取当前乐团所有已报名学员
         List<StudentRegistration> registrations = studentRegistrationDao.findClassGroupStu(musicGroupId, null);
         List<StudentRegistration> registrations = studentRegistrationDao.findClassGroupStu(musicGroupId, null);
-        if(registrations != null && registrations.size() > 0){
-            Map<Integer,String> map = new HashMap<>(registrations.size());
-            registrations.forEach(e->{
-                map.put(e.getUserId(),e.getParentsPhone());
+        if (registrations != null && registrations.size() > 0) {
+            Map<Integer, String> map = new HashMap<>(registrations.size());
+            registrations.forEach(e -> {
+                map.put(e.getUserId(), e.getParentsPhone());
             });
             });
-            sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_CLOSE,
-                    map,null,0,"",sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD));
+            sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_CLOSE,
+                    map, null, 0, "", sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD));
         }
         }
         //记录建团日志
         //记录建团日志
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"取消乐团",sysUser.getId(),""));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "取消乐团", sysUser.getId(), ""));
         return true;
         return true;
     }
     }
 
 
@@ -391,7 +391,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean pauseMusicGroup(String musicGroupId) {
     public boolean pauseMusicGroup(String musicGroupId) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
         }
         }
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
@@ -409,7 +409,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 
         // 清除下次缴费时间
         // 清除下次缴费时间
         musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, null);
         musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, null);
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"暂停乐团",sysUser.getId(),""));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "暂停乐团", sysUser.getId(), ""));
         return true;
         return true;
     }
     }
 
 
@@ -417,7 +417,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean resumeMusicGroup(String musicGroupId) {
     public boolean resumeMusicGroup(String musicGroupId) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
         }
         }
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
@@ -435,14 +435,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 
         // 重新设置下次缴费时间
         // 重新设置下次缴费时间
         musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
         musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"恢复乐团",sysUser.getId(),""));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "恢复乐团", sysUser.getId(), ""));
         return true;
         return true;
     }
     }
 
 
     @Override
     @Override
     public boolean extensionPayment(String musicGroupId, Date expireDate) {
     public boolean extensionPayment(String musicGroupId, Date expireDate) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new BizException("用户信息获取失败");
             throw new BizException("用户信息获取失败");
         }
         }
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
@@ -463,7 +463,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroup.setPaymentExpireDate(expireDate);
         musicGroup.setPaymentExpireDate(expireDate);
         musicGroup.setUpdateTime(date);
         musicGroup.setUpdateTime(date);
         musicGroupDao.update(musicGroup);
         musicGroupDao.update(musicGroup);
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"延长缴费",sysUser.getId(),""));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "延长缴费", sysUser.getId(), ""));
         return true;
         return true;
     }
     }
 
 
@@ -605,32 +605,34 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             amount = musicGroupStudentFee.getCourseFee();
             amount = musicGroupStudentFee.getCourseFee();
         }
         }
 
 
-        Date date = new Date();
-        StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
-        studentPaymentOrder.setUserId(userId);
-        studentPaymentOrder.setOrderNo(idGeneratorService.generatorId("RENEW") + "");
-        studentPaymentOrder.setType(OrderTypeEnum.RENEW);
-        studentPaymentOrder.setExpectAmount(amount);
-        studentPaymentOrder.setActualAmount(amount);
-        studentPaymentOrder.setStatus(DealStatusEnum.ING);
-        studentPaymentOrder.setPaymentChannel("银联");
-        studentPaymentOrder.setMusicGroupId(musicGroupId);
-        studentPaymentOrderService.insert(studentPaymentOrder);
-
-        ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
-        StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
-        studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
-        studentPaymentOrderDetail.setPrice(amount);
-        studentPaymentOrderDetail.setCreateTime(date);
-        studentPaymentOrderDetail.setUpdateTime(date);
-        studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
-        studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
-
-        studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
-
         try {
         try {
-            return payService.getPayMap(amount, idGeneratorService.generatorId("payment") + "", "https://pay.dayaedu.com/api/yqpay/notify",
+            Map<String, Object> payMap = payService.getPayMap(amount, idGeneratorService.generatorId("payment") + "", "https://pay.dayaedu.com/api/yqpay/notify",
                     "http://dev.dayaedu.com", "测试订单", "测试订单");
                     "http://dev.dayaedu.com", "测试订单", "测试订单");
+
+            Date date = new Date();
+            StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
+            studentPaymentOrder.setUserId(userId);
+            studentPaymentOrder.setOrderNo(idGeneratorService.generatorId("RENEW") + "");
+            studentPaymentOrder.setType(OrderTypeEnum.RENEW);
+            studentPaymentOrder.setExpectAmount(amount);
+            studentPaymentOrder.setActualAmount(amount);
+            studentPaymentOrder.setStatus(DealStatusEnum.ING);
+            studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
+            studentPaymentOrder.setMusicGroupId(musicGroupId);
+            studentPaymentOrderService.insert(studentPaymentOrder);
+
+            ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
+            StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
+            studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
+            studentPaymentOrderDetail.setPrice(amount);
+            studentPaymentOrderDetail.setCreateTime(date);
+            studentPaymentOrderDetail.setUpdateTime(date);
+            studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+            studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
+
+            studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
+
+            return payMap;
         } catch (Exception e) {
         } catch (Exception e) {
             throw new BizException("调用支付接口出错", e);
             throw new BizException("调用支付接口出错", e);
         }
         }
@@ -648,21 +650,21 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //更新下次续费时间
         //更新下次续费时间
         MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
         MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
 
 
-        if(musicGroupStudentFee == null){
+        if (musicGroupStudentFee == null) {
             throw new BizException("系统数据异常,找不到学员预缴费信息");
             throw new BizException("系统数据异常,找不到学员预缴费信息");
         }
         }
         Date date = new Date();
         Date date = new Date();
         Map<Integer, String> receivers = new HashMap<Integer, String>(1);
         Map<Integer, String> receivers = new HashMap<Integer, String>(1);
         StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
         StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
         receivers.put(userId, studentRegistration.getParentsPhone());
         receivers.put(userId, studentRegistration.getParentsPhone());
-        if(studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS){
+        if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
             musicGroupStudentFee.setUpdateTime(date);
             musicGroupStudentFee.setUpdateTime(date);
             musicGroupStudentFee.setLatestPaidTime(date);
             musicGroupStudentFee.setLatestPaidTime(date);
             musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
             musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
             musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
             musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
             musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
             musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
             musicGroupStudentFeeDao.update(musicGroupStudentFee);
             musicGroupStudentFeeDao.update(musicGroupStudentFee);
-            
+
             //插入交易明细
             //插入交易明细
             SysUserCashAccount cashAccount = sysUserCashAccountService.get(userId);
             SysUserCashAccount cashAccount = sysUserCashAccountService.get(userId);
             BigDecimal amount = studentPaymentOrder.getActualAmount();
             BigDecimal amount = studentPaymentOrder.getActualAmount();
@@ -678,7 +680,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             rechargeDetail.setUpdateTime(date);
             rechargeDetail.setUpdateTime(date);
             rechargeDetail.setUserId(userId);
             rechargeDetail.setUserId(userId);
             sysUserCashAccountDetailService.insert(rechargeDetail);
             sysUserCashAccountDetailService.insert(rechargeDetail);
-            
+
             //缴费
             //缴费
             SysUserCashAccountDetail paymentDetail = new SysUserCashAccountDetail();
             SysUserCashAccountDetail paymentDetail = new SysUserCashAccountDetail();
             paymentDetail.setAmount(amount);
             paymentDetail.setAmount(amount);
@@ -691,16 +693,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             paymentDetail.setUpdateTime(date);
             paymentDetail.setUpdateTime(date);
             paymentDetail.setUserId(userId);
             paymentDetail.setUserId(userId);
             sysUserCashAccountDetailService.insert(paymentDetail);
             sysUserCashAccountDetailService.insert(paymentDetail);
-            
+
             // 发送续费结果通知
             // 发送续费结果通知
 
 
             sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, receivers, null, 0, "",
             sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, receivers, null, 0, "",
-                    studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
+                    studentRegistration.getParentsName(), studentPaymentOrder.getActualAmount());
             sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, receivers, null, 0, "",
             sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.STUDENT_SMS_MUSIC_GROUP_RENEW_SUCCESS, receivers, null, 0, "",
-                    studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
+                    studentRegistration.getParentsName(), studentPaymentOrder.getActualAmount());
             return true;
             return true;
         }
         }
-        if(studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAilED){
+        if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAilED) {
             String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
             String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
             sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_FAILED, receivers, null, 0, "",
             sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_MUSIC_GROUP_RENEW_FAILED, receivers, null, 0, "",
                     studentApplyUrl);
                     studentApplyUrl);
@@ -755,30 +757,30 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         // 获取教务老师编号列表
         // 获取教务老师编号列表
         Set<Integer> educationalTeacherIds = musicGroupList.stream().map(e -> e.getEducationalTeacherId()).collect(Collectors.toSet());
         Set<Integer> educationalTeacherIds = musicGroupList.stream().map(e -> e.getEducationalTeacherId()).collect(Collectors.toSet());
         // 获取相关老师的名字
         // 获取相关老师的名字
-        List<Map<Integer, String>> educationalTeacherNames = teacherDao.queryNameByIds(StringUtils.join(educationalTeacherIds,","));
+        List<Map<Integer, String>> educationalTeacherNames = teacherDao.queryNameByIds(StringUtils.join(educationalTeacherIds, ","));
         Map<Integer, String> educationalTeacherNameMap = MapUtil.convertMybatisMap(educationalTeacherNames);
         Map<Integer, String> educationalTeacherNameMap = MapUtil.convertMybatisMap(educationalTeacherNames);
 
 
         // 获取运营主管编号列表
         // 获取运营主管编号列表
         Set<Integer> teamTeacherIds = musicGroupList.stream().map(e -> e.getTeamTeacherId()).collect(Collectors.toSet());
         Set<Integer> teamTeacherIds = musicGroupList.stream().map(e -> e.getTeamTeacherId()).collect(Collectors.toSet());
-        List<Map<Integer, String>> teamTeacherNames = teacherDao.queryNameByIds(StringUtils.join(teamTeacherIds,","));
+        List<Map<Integer, String>> teamTeacherNames = teacherDao.queryNameByIds(StringUtils.join(teamTeacherIds, ","));
         Map<Integer, String> teamTeacherNameMap = MapUtil.convertMybatisMap(teamTeacherNames);
         Map<Integer, String> teamTeacherNameMap = MapUtil.convertMybatisMap(teamTeacherNames);
 
 
         // 获取乐团编号列表
         // 获取乐团编号列表
         Set<String> musicGroupIds = musicGroupList.stream().map(e -> e.getId()).collect(Collectors.toSet());
         Set<String> musicGroupIds = musicGroupList.stream().map(e -> e.getId()).collect(Collectors.toSet());
         // 统计乐团在读人数
         // 统计乐团在读人数
-        List<Map<String, Long>> payNums = musicGroupDao.countPayNum(StringUtils.join(musicGroupIds,","));
+        List<Map<String, Long>> payNums = musicGroupDao.countPayNum(StringUtils.join(musicGroupIds, ","));
         Map<String, Long> payNumMap = MapUtil.convertMybatisMap(payNums);
         Map<String, Long> payNumMap = MapUtil.convertMybatisMap(payNums);
 
 
         // 获取收费类型编号列表
         // 获取收费类型编号列表
         Set<Integer> chargeTypeIds = musicGroupList.stream().map(e -> e.getChargeTypeId()).collect(Collectors.toSet());
         Set<Integer> chargeTypeIds = musicGroupList.stream().map(e -> e.getChargeTypeId()).collect(Collectors.toSet());
-        if(chargeTypeIds == null){
+        if (chargeTypeIds == null) {
             chargeTypeIds = new HashSet<>();
             chargeTypeIds = new HashSet<>();
         }
         }
-        List<Map<Integer, String>> chargeTypeNames = chargeTypeDao.queryNameByIds(StringUtils.join(chargeTypeIds,","));
+        List<Map<Integer, String>> chargeTypeNames = chargeTypeDao.queryNameByIds(StringUtils.join(chargeTypeIds, ","));
         Map<Integer, String> chargeTypeNameMap = MapUtil.convertMybatisMap(chargeTypeNames);
         Map<Integer, String> chargeTypeNameMap = MapUtil.convertMybatisMap(chargeTypeNames);
 
 
         //获取教学点编号
         //获取教学点编号
-        Map<Integer,String> organNames = MapUtil.convertMybatisMap(cooperationOrganDao.queryNameByIds(StringUtils.join(musicGroupList.stream().map(MusicGroup::getCooperationOrganId).collect(Collectors.toSet()),",")));
+        Map<Integer, String> organNames = MapUtil.convertMybatisMap(cooperationOrganDao.queryNameByIds(StringUtils.join(musicGroupList.stream().map(MusicGroup::getCooperationOrganId).collect(Collectors.toSet()), ",")));
 
 
         musicGroupList.forEach(e -> {
         musicGroupList.forEach(e -> {
 //            e.setSchoolName(schoolNameMap.get(e.getSchoolId()));
 //            e.setSchoolName(schoolNameMap.get(e.getSchoolId()));
@@ -795,12 +797,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
     public void updateBaseInfo(SubFeeSettingDto subFeeSettingDto) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new Exception("用户信息获取失败");
             throw new Exception("用户信息获取失败");
         }
         }
         String musicGroupId = subFeeSettingDto.getMusicGroup().getId();
         String musicGroupId = subFeeSettingDto.getMusicGroup().getId();
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-        if(musicGroup == null){
+        if (musicGroup == null) {
             throw new Exception("乐团信息不存在");
             throw new Exception("乐团信息不存在");
         }
         }
 
 
@@ -808,50 +810,50 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         List<Integer> months = subFeeSettingDto.getMonths();
         List<Integer> months = subFeeSettingDto.getMonths();
         //删除乐团相关付费周期
         //删除乐团相关付费周期
         musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
         musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
-        if(months != null && months.size() > 0){
+        if (months != null && months.size() > 0) {
             Integer num = musicGroupStudentFeeDao.countStudentNoPayNum(musicGroupId);
             Integer num = musicGroupStudentFeeDao.countStudentNoPayNum(musicGroupId);
-            if(num > 0){
+            if (num > 0) {
                 throw new Exception("缴费周期更新失败,当前乐团有未缴费的学员");
                 throw new Exception("缴费周期更新失败,当前乐团有未缴费的学员");
             }
             }
             //修改学员下次缴费日期
             //修改学员下次缴费日期
             //获取当前月份
             //获取当前月份
             int currentMonth = Integer.parseInt(DateUtil.getMonth(date));
             int currentMonth = Integer.parseInt(DateUtil.getMonth(date));
             int nextMonth = currentMonth;
             int nextMonth = currentMonth;
-            for (int i = 0;i < months.size();i++){
-                if(i == months.size()-1 && months.get(i) <= currentMonth){
+            for (int i = 0; i < months.size(); i++) {
+                if (i == months.size() - 1 && months.get(i) <= currentMonth) {
                     nextMonth = months.get(0);
                     nextMonth = months.get(0);
                     break;
                     break;
-                }else if(months.get(i) > currentMonth){
+                } else if (months.get(i) > currentMonth) {
                     nextMonth = months.get(i);
                     nextMonth = months.get(i);
                     break;
                     break;
                 }
                 }
             }
             }
             // 修改学员付费周期
             // 修改学员付费周期
             Date nextPaymentDate = null;
             Date nextPaymentDate = null;
-            if(nextMonth > currentMonth){
+            if (nextMonth > currentMonth) {
                 nextPaymentDate = DateUtil.addMonths(date, nextMonth - currentMonth);
                 nextPaymentDate = DateUtil.addMonths(date, nextMonth - currentMonth);
-            }else if(nextMonth < currentMonth) {
+            } else if (nextMonth < currentMonth) {
                 nextPaymentDate = DateUtil.addMonths(date, 12 - currentMonth + nextMonth);
                 nextPaymentDate = DateUtil.addMonths(date, 12 - currentMonth + nextMonth);
-            }else {
+            } else {
                 nextPaymentDate = DateUtil.addMonths(date, 12);
                 nextPaymentDate = DateUtil.addMonths(date, 12);
             }
             }
-            musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId,nextPaymentDate);
+            musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId, nextPaymentDate);
             //批量插入
             //批量插入
-            musicGroupPaymentCalenderDao.batchAdd(months,musicGroupId);
+            musicGroupPaymentCalenderDao.batchAdd(months, musicGroupId);
         }
         }
         musicGroupDao.update(musicGroup);
         musicGroupDao.update(musicGroup);
         //修改课程里面的教学点
         //修改课程里面的教学点
-        if(!musicGroup.getSchoolId().equals(musicGroup.getSchoolId())){
-            courseScheduleDao.updateByMusicGroupId(musicGroupId,musicGroup.getSchoolId());
+        if (!musicGroup.getSchoolId().equals(musicGroup.getSchoolId())) {
+            courseScheduleDao.updateByMusicGroupId(musicGroupId, musicGroup.getSchoolId());
         }
         }
         // 删除乐团付费主体列表
         // 删除乐团付费主体列表
         musicGroupPaymentEntitiesDao.delByGroupId(musicGroupId);
         musicGroupPaymentEntitiesDao.delByGroupId(musicGroupId);
         //批量新增
         //批量新增
-        if(subFeeSettingDto.getMusicGroupPaymentEntities() != null && subFeeSettingDto.getMusicGroupPaymentEntities().size() > 0){
-            musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(),musicGroupId);
+        if (subFeeSettingDto.getMusicGroupPaymentEntities() != null && subFeeSettingDto.getMusicGroupPaymentEntities().size() > 0) {
+            musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(), musicGroupId);
         }
         }
         //记录操作日志
         //记录操作日志
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"修改乐团基本信息数据",sysUser.getId(),JSONObject.toJSONString(subFeeSettingDto)));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "修改乐团基本信息数据", sysUser.getId(), JSONObject.toJSONString(subFeeSettingDto)));
     }
     }
 
 
     @Override
     @Override
@@ -873,13 +875,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //获取乐团声部规划列表
         //获取乐团声部规划列表
         subFeeSettingDto.setMusicGroupSubjectPlans(musicGroupSubjectPlanDao.getMusicSubjectClassPlan(musicGroupId));
         subFeeSettingDto.setMusicGroupSubjectPlans(musicGroupSubjectPlanDao.getMusicSubjectClassPlan(musicGroupId));
         //获取乐团声部商品组
         //获取乐团声部商品组
-        subFeeSettingDto.setMusicGroupSubjectGoodsGroups(musicGroupSubjectGoodsGroupDao.findGoodsGroup(musicGroupId,null));
+        subFeeSettingDto.setMusicGroupSubjectGoodsGroups(musicGroupSubjectGoodsGroupDao.findGoodsGroup(musicGroupId, null));
         return subFeeSettingDto;
         return subFeeSettingDto;
     }
     }
 
 
     @Override
     @Override
     public List<MusicGroup> queryListByIds(Set<String> musicGroupIds) {
     public List<MusicGroup> queryListByIds(Set<String> musicGroupIds) {
-        return musicGroupDao.queryListByIds(StringUtils.join(musicGroupIds,","));
+        return musicGroupDao.queryListByIds(StringUtils.join(musicGroupIds, ","));
     }
     }
 
 
     @Override
     @Override
@@ -890,23 +892,23 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Override
     public MusicGroup openPay(String musicGroupId, String expireDate) throws Exception {
     public MusicGroup openPay(String musicGroupId, String expireDate) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new Exception("用户信息获取失败");
             throw new Exception("用户信息获取失败");
         }
         }
-        MusicGroup musicGroup = saveLog(musicGroupId,MusicGroupStatusEnum.APPLY);
+        MusicGroup musicGroup = saveLog(musicGroupId, MusicGroupStatusEnum.APPLY);
         //记录操作日志
         //记录操作日志
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"开启缴费(报名中 -->  缴费中)",sysUser.getId(),""));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "开启缴费(报名中 -->  缴费中)", sysUser.getId(), ""));
         musicGroup.setApplyExpireDate(DateUtil.toDate(expireDate));
         musicGroup.setApplyExpireDate(DateUtil.toDate(expireDate));
         musicGroup.setStatus(MusicGroupStatusEnum.PAY);
         musicGroup.setStatus(MusicGroupStatusEnum.PAY);
         musicGroupDao.update(musicGroup);
         musicGroupDao.update(musicGroup);
         //乐团成立后(开始缴费)
         //乐团成立后(开始缴费)
         //获取所有已报名学员列表
         //获取所有已报名学员列表
-        HashMap<Integer,String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(studentRegistrationDao.findMapByMusicGroupId(musicGroupId))), HashMap.class);
-        if(map != null && map.size() > 0){
+        HashMap<Integer, String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(studentRegistrationDao.findMapByMusicGroupId(musicGroupId))), HashMap.class);
+        if (map != null && map.size() > 0) {
             String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
             String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
             String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
             String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
-            sysMessageService.batchSendMessage(MessageSender.YIMEI,MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE,
-                    map,null,0,"",musicGroup.getName(),studentApplyUrl,serverPhone);
+            sysMessageService.batchSendMessage(MessageSender.YIMEI, MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE,
+                    map, null, 0, "", musicGroup.getName(), studentApplyUrl, serverPhone);
         }
         }
         return musicGroup;
         return musicGroup;
     }
     }
@@ -917,16 +919,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroup.setEducationalTeacherName(teacherDao.queryNameById(musicGroup.getEducationalTeacherId()));
         musicGroup.setEducationalTeacherName(teacherDao.queryNameById(musicGroup.getEducationalTeacherId()));
         musicGroup.setTeamTeacherName(teacherDao.queryNameById(musicGroup.getTeamTeacherId()));
         musicGroup.setTeamTeacherName(teacherDao.queryNameById(musicGroup.getTeamTeacherId()));
         Organization organization = organizationDao.get(musicGroup.getOrganId());
         Organization organization = organizationDao.get(musicGroup.getOrganId());
-        if(organization != null){
+        if (organization != null) {
             musicGroup.setOrganName(organization.getName());
             musicGroup.setOrganName(organization.getName());
         }
         }
         School school = schoolDao.get(musicGroup.getSchoolId());
         School school = schoolDao.get(musicGroup.getSchoolId());
-        if(school != null){
+        if (school != null) {
             musicGroup.setSchoolName(school.getName());
             musicGroup.setSchoolName(school.getName());
             musicGroup.setAddress(school.getAddress());
             musicGroup.setAddress(school.getAddress());
         }
         }
         ChargeType chargeType = chargeTypeDao.get(musicGroup.getChargeTypeId());
         ChargeType chargeType = chargeTypeDao.get(musicGroup.getChargeTypeId());
-        if(chargeType != null){
+        if (chargeType != null) {
             musicGroup.setChargeTypeName(chargeType.getName());
             musicGroup.setChargeTypeName(chargeType.getName());
         }
         }
         return musicGroup;
         return musicGroup;
@@ -942,7 +944,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         teacherIds.add(musicGroup.getOperatorUserId());
         teacherIds.add(musicGroup.getOperatorUserId());
         teacherIds.add(musicGroup.getDirectorUserId());
         teacherIds.add(musicGroup.getDirectorUserId());
         teacherIds.removeAll(Collections.singleton(null));
         teacherIds.removeAll(Collections.singleton(null));
-        for (Object teacherId:teacherIds) {
+        for (Object teacherId : teacherIds) {
             groupMembers.add(new ImGroupMember(teacherId.toString()));
             groupMembers.add(new ImGroupMember(teacherId.toString()));
         }
         }
         return groupMembers;
         return groupMembers;
@@ -952,12 +954,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public void musicGroupFound(String musicGroupId) throws Exception {
     public void musicGroupFound(String musicGroupId) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new Exception("用户信息获取失败");
             throw new Exception("用户信息获取失败");
         }
         }
-        MusicGroup musicGroup = saveLog(musicGroupId,MusicGroupStatusEnum.PAY);
+        MusicGroup musicGroup = saveLog(musicGroupId, MusicGroupStatusEnum.PAY);
         //记录操作日志
         //记录操作日志
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"确认开团(缴费中 -> 筹备中)",sysUser.getId(),""));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "确认开团(缴费中 -> 筹备中)", sysUser.getId(), ""));
         musicGroup.setStatus(MusicGroupStatusEnum.PREPARE);
         musicGroup.setStatus(MusicGroupStatusEnum.PREPARE);
         musicGroupDao.update(musicGroup);
         musicGroupDao.update(musicGroup);
 
 
@@ -967,9 +969,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //获取所有家长电话
         //获取所有家长电话
         Set<String> parentsPhones = students.stream().map(StudentRegistration::getParentsPhone).collect(Collectors.toSet());
         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);
+        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());
         String content = sysMessageConfigDao.findContent(MessageTypeEnum.SMS_BASICS_SKILL_APPLY_MESSAGE.getCode());
-        sysMessageService.batchSendMessage(MessageSender.YIMEI,"",content,userIds,new Date(),0,"");
+        sysMessageService.batchSendMessage(MessageSender.YIMEI, "", content, userIds, new Date(), 0, "");
     }
     }
 }
 }

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

@@ -43,23 +43,19 @@ public class PayServiceImpl implements PayService {
      * @throws Exception
      * @throws Exception
      */
      */
     @Override
     @Override
-    public Map getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody) throws Exception {
+    public Map<String,Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody) throws Exception {
         //支付通道决策
         //支付通道决策
         SysAccount routingAccount = getRoutingAccount(amount);
         SysAccount routingAccount = getRoutingAccount(amount);
         Map unionPay = new HashMap();
         Map unionPay = new HashMap();
-        Map payMap = null;
+        Map payMap = new Pay().getPayMap(amount, orderNo, notifyUrl, orderSubject, orderBody);
 
 
+        unionPay.put("orderNo", orderNo);
+        unionPay.put("type", "ADAPAY");
 
 
-        if (routingAccount != null) {
-            payMap = YqPayUtil.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody, routingAccount.getMerNo());
-        }
-
-        payMap = UnionPay.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject);
-        unionPay.put("orderNo", "1017" + orderNo);
-        unionPay.put("type", "UNIONPAY");
+        payMap = YqPayUtil.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody, null);
+        unionPay.put("type", "YQPAY");
         unionPay.put("payMap", payMap);
         unionPay.put("payMap", payMap);
 
 
-        //unionPay.put("type","ADAPY");
         return unionPay;
         return unionPay;
     }
     }
 
 

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -11,6 +11,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 @Service
 @Service
@@ -43,4 +44,14 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     public int findPayOrderNum() {
     public int findPayOrderNum() {
         return studentPaymentOrderDao.findPayOrderNum();
         return studentPaymentOrderDao.findPayOrderNum();
     }
     }
+
+    @Override
+    public List<StudentPaymentOrder> findOrdersByStatus(DealStatusEnum status,String paymentChannel) {
+        return studentPaymentOrderDao.findOrdersByStatus(status,paymentChannel);
+    }
+
+    @Override
+    public List<StudentPaymentOrder> findOrdersOverTime(List<String> orderNoList, DealStatusEnum status, Date beforeTime) {
+        return studentPaymentOrderDao.findOrdersOverTime(orderNoList,status,beforeTime);
+    }
 }
 }

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

@@ -785,24 +785,24 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 //		}
 //		}
 		studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString());
 		studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString());
 		studentPaymentOrder.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
 		studentPaymentOrder.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
-		studentPaymentOrderDao.insert(studentPaymentOrder);
-
-		StudentVipGroupPayment studentVipGroupPayment=new StudentVipGroupPayment();
-		studentVipGroupPayment.setUserId(user.getId());
-		studentVipGroupPayment.setVipGroupId(vipGroup.getId());
-		studentVipGroupPayment.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
-		studentVipGroupPayment.setStudentPaymentOrderId(studentPaymentOrder.getId());
-		studentVipGroupPaymentDao.insert(studentVipGroupPayment);
 
 
 		//生成回调地址
 		//生成回调地址
-		Map payMap = payService.getPayMap(
+		Map<String,Object> payMap = payService.getPayMap(
 				vipGroup.getTotalPrice(),
 				vipGroup.getTotalPrice(),
 				orderNo,
 				orderNo,
 				"https://dyme.utools.club/api-student/studentOrder/notify",
 				"https://dyme.utools.club/api-student/studentOrder/notify",
 				"http://mstudev.dayaedu.com/#/paymentresult?orderNo="+orderNo,
 				"http://mstudev.dayaedu.com/#/paymentresult?orderNo="+orderNo,
 				"vip课购买",
 				"vip课购买",
 				vipGroup.getName());
 				vipGroup.getName());
+		studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
+		studentPaymentOrderDao.insert(studentPaymentOrder);
 
 
+		StudentVipGroupPayment studentVipGroupPayment=new StudentVipGroupPayment();
+		studentVipGroupPayment.setUserId(user.getId());
+		studentVipGroupPayment.setVipGroupId(vipGroup.getId());
+		studentVipGroupPayment.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
+		studentVipGroupPayment.setStudentPaymentOrderId(studentPaymentOrder.getId());
+		studentVipGroupPaymentDao.insert(studentVipGroupPayment);
 		return payMap;
 		return payMap;
 
 
 	}
 	}

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

@@ -26,9 +26,10 @@
         <result column="pay_time_" property="payTime"/>
         <result column="pay_time_" property="payTime"/>
         <result column="version_" property="version"/>
         <result column="version_" property="version"/>
     </resultMap>
     </resultMap>
-    
-    <resultMap type="com.ym.mec.biz.dal.entity.StudentPaymentOrder" extends="StudentPaymentOrder" id="PaymentOrderAndStudentInfo">
-    	<result column="username_" property="user.username"/>
+
+    <resultMap type="com.ym.mec.biz.dal.entity.StudentPaymentOrder" extends="StudentPaymentOrder"
+               id="PaymentOrderAndStudentInfo">
+        <result column="username_" property="user.username"/>
     </resultMap>
     </resultMap>
 
 
     <resultMap type="com.ym.mec.biz.dal.entity.Goods" id="Goods">
     <resultMap type="com.ym.mec.biz.dal.entity.Goods" id="Goods">
@@ -223,7 +224,7 @@
             <result column="goods_name_"/>
             <result column="goods_name_"/>
         </collection>
         </collection>
     </resultMap>
     </resultMap>
-    
+
     <select id="findGoodsIds" resultMap="userGoodsDto">
     <select id="findGoodsIds" resultMap="userGoodsDto">
         SELECT g.id_ goods_id_,g.name_ goods_name_ FROM student_payment_order spo
         SELECT g.id_ goods_id_,g.name_ goods_name_ FROM student_payment_order spo
         LEFT JOIN student_payment_order_detail spod ON spo.id_ = spod.payment_order_id_
         LEFT JOIN student_payment_order_detail spod ON spo.id_ = spod.payment_order_id_
@@ -231,4 +232,21 @@
         WHERE spo.type_ = 'APPLY' AND spo.status_ = 'SUCCESS' AND spod.goods_id_list_ IS NOT NULL
         WHERE spo.type_ = 'APPLY' AND spo.status_ = 'SUCCESS' AND spod.goods_id_list_ IS NOT NULL
         AND spo.music_group_id_ = #{musicGroupId} AND spo.user_id_ = #{userId}
         AND spo.music_group_id_ = #{musicGroupId} AND spo.user_id_ = #{userId}
     </select>
     </select>
+
+    <select id="findOrdersByStatus" resultMap="StudentPaymentOrder">
+        SELECT * FROM student_payment_order
+        WHERE status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND payment_channel_ =
+        #{paymentChannel}
+    </select>
+
+    <!-- 查询支付中超时订单 -->
+    <select id="findOrdersOverTime" resultMap="StudentPaymentOrder">
+        SELECT * FROM student_payment_order WHERE order_no_ IN
+        <foreach collection="orderNoList" item="orderNo" index="index" open="(" close=")" separator=",">
+            #{orderNo}
+        </foreach>
+        AND status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        <![CDATA[ AND create_time_ <= ]]> #{beforeTime}
+    </select>
+
 </mapper>
 </mapper>

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java

@@ -25,7 +25,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 	@Override
 	@Override
 	public void configure(HttpSecurity http) throws Exception {
 	public void configure(HttpSecurity http) throws Exception {
 		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
 		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
-				.authorizeRequests().antMatchers("/v2/api-docs","/studentOrder/notify","/code/*","/register/*").permitAll().anyRequest().authenticated().and().httpBasic();
+				.authorizeRequests().antMatchers("/v2/api-docs","/studentOrder/notify","/code/*","/register/*","/musicGroup/test","/studentOrder/executePayment").permitAll().anyRequest().authenticated().and().httpBasic();
 	}
 	}
 
 
 	@Override
 	@Override

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

@@ -107,9 +107,9 @@ public class MusicGroupController extends BaseController {
         }
         }
         StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
         StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
         if (studentRegistration == null) {
         if (studentRegistration == null) {
-            return failed(HttpStatus.CONTINUE,"乐团报名信息不存在");
+            return failed(HttpStatus.CONTINUE, "乐团报名信息不存在");
         }
         }
-        if (!musicGroup.getStatus().equals(MusicGroupStatusEnum.PAY) && (studentRegistration.getPaymentStatus()==null || !studentRegistration.getPaymentStatus().equals(PaymentStatusEnum.OPEN))) {
+        if (!musicGroup.getStatus().equals(MusicGroupStatusEnum.PAY) && (studentRegistration.getPaymentStatus() == null || !studentRegistration.getPaymentStatus().equals(PaymentStatusEnum.OPEN))) {
             return failed("乐团还未开启缴费,请等待通知");
             return failed("乐团还未开启缴费,请等待通知");
         }
         }
         return succeed(studentRegistration);
         return succeed(studentRegistration);
@@ -118,57 +118,57 @@ public class MusicGroupController extends BaseController {
     @ApiOperation(value = "查询续费信息")
     @ApiOperation(value = "查询续费信息")
     @GetMapping("/queryRenewInfo")
     @GetMapping("/queryRenewInfo")
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
-	public HttpResponseResult queryRenewInfo(String musicGroupId) throws Exception {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		Integer userId = sysUser.getId();
-		MusicGroup musicGroup = musicGroupService.get(musicGroupId);
-		if (musicGroup == null) {
-			return failed("乐团不存在");
-		}
-		MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
-
-		if (musicGroupStudentFee == null) {
-			throw new BizException("个人信息不存在");
-		}
-		if (musicGroupStudentFee.getPaymentStatus() != PaymentStatus.NON_PAYMENT) {
-			throw new BizException("已缴费");
-		}
-
-		BigDecimal amount = musicGroupStudentFee.getTemporaryCourseFee();
-		if (amount == null || amount.doubleValue() == 0) {
-			amount = musicGroupStudentFee.getCourseFee();
-		}
-
-		StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
-		if (studentRegistration == null) {
-			return failed("乐团报名信息找不到");
-		}
-		MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId,
-				studentRegistration.getActualSubjectId());
-		ModelMap model = new ModelMap();
-		model.put("musicGroup", musicGroup);
-		model.put("amount", amount);
-		model.put("musicGroupSubjectPlan", musicGroupSubjectPlan);
-
-		return succeed(model);
-	}
+    public HttpResponseResult queryRenewInfo(String musicGroupId) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        Integer userId = sysUser.getId();
+        MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+        if (musicGroup == null) {
+            return failed("乐团不存在");
+        }
+        MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
+
+        if (musicGroupStudentFee == null) {
+            throw new BizException("个人信息不存在");
+        }
+        if (musicGroupStudentFee.getPaymentStatus() != PaymentStatus.NON_PAYMENT) {
+            throw new BizException("已缴费");
+        }
+
+        BigDecimal amount = musicGroupStudentFee.getTemporaryCourseFee();
+        if (amount == null || amount.doubleValue() == 0) {
+            amount = musicGroupStudentFee.getCourseFee();
+        }
+
+        StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+        if (studentRegistration == null) {
+            return failed("乐团报名信息找不到");
+        }
+        MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId,
+                studentRegistration.getActualSubjectId());
+        ModelMap model = new ModelMap();
+        model.put("musicGroup", musicGroup);
+        model.put("amount", amount);
+        model.put("musicGroupSubjectPlan", musicGroupSubjectPlan);
+
+        return succeed(model);
+    }
 
 
     @ApiOperation(value = "续费")
     @ApiOperation(value = "续费")
     @GetMapping("/renew")
     @GetMapping("/renew")
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
-	public HttpResponseResult renew(String musicGroupId) throws Exception {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		Integer userId = sysUser.getId();
-		return succeed(musicGroupService.renew(musicGroupId, userId));
-	}
+    public HttpResponseResult renew(String musicGroupId) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        Integer userId = sysUser.getId();
+        return succeed(musicGroupService.renew(musicGroupId, userId));
+    }
 
 
     @ApiOperation(value = "退团")
     @ApiOperation(value = "退团")
     @PostMapping("/quitMusicGroup")
     @PostMapping("/quitMusicGroup")
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
-	public HttpResponseResult quitMusicGroup(String musicGroupId) throws Exception {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		return succeed(musicGroupService.applyQuitMusicGroup(musicGroupId, sysUser));
-	}
+    public HttpResponseResult quitMusicGroup(String musicGroupId) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        return succeed(musicGroupService.applyQuitMusicGroup(musicGroupId, sysUser));
+    }
 
 
 
 
     @ApiOperation(value = "乐团报名支付")
     @ApiOperation(value = "乐团报名支付")
@@ -238,13 +238,13 @@ public class MusicGroupController extends BaseController {
         }
         }
 
 
 
 
-        String orderNo = idGeneratorService.generatorId("payment")+"";
+        String orderNo = idGeneratorService.generatorId("payment") + "";
 
 
         Map payMap = payService.getPayMap(
         Map payMap = payService.getPayMap(
                 orderAmount,
                 orderAmount,
                 orderNo,
                 orderNo,
                 "http://mstudev.dayaedu.com/api-student/studentOrder/notify",
                 "http://mstudev.dayaedu.com/api-student/studentOrder/notify",
-                "http://mstudev.dayaedu.com/#/paymentresult?orderNo="+orderNo,
+                "http://mstudev.dayaedu.com/#/paymentresult?orderNo=" + orderNo,
                 "测试订单",
                 "测试订单",
                 "测试订单");
                 "测试订单");
 
 
@@ -318,11 +318,11 @@ public class MusicGroupController extends BaseController {
             return failed("商品价格不符");
             return failed("商品价格不符");
         }
         }
 
 
-        String orderNo = idGeneratorService.generatorId("payment")+"";
+        String orderNo = idGeneratorService.generatorId("payment") + "";
 
 
         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", "测试订单", "测试订单");
 
 
-        studentRegistrationService.reAddOrder(userId, amount, orderNo, "双乾", courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId(),ApplyOrder);
+        studentRegistrationService.reAddOrder(userId, amount, orderNo, (String) payMap.get("type"), courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId(), ApplyOrder);
 
 
         return succeed(payMap);
         return succeed(payMap);
     }
     }
@@ -336,11 +336,11 @@ public class MusicGroupController extends BaseController {
 //
 //
 //        System.out.println(query);
 //        System.out.println(query);
 //
 //
-        String orderNo = idGeneratorService.generatorId("payment")+"";
+        String orderNo = idGeneratorService.generatorId("payment") + "";
         BigDecimal amount = new BigDecimal("0.01");
         BigDecimal amount = new BigDecimal("0.01");
         String payChannel = PayChannelEnum.ALIPAY_QR.getCode();
         String payChannel = PayChannelEnum.ALIPAY_QR.getCode();
         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", "测试订单", "测试订单");
-       return succeed(map);
+        return succeed(map);
     }
     }
 
 
     @ApiOperation(value = "订单状态查询")
     @ApiOperation(value = "订单状态查询")

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

@@ -1,5 +1,6 @@
 package com.ym.mec.student.controller;
 package com.ym.mec.student.controller;
 
 
+import com.alibaba.fastjson.JSON;
 import com.huifu.adapay.model.payment.PayChannelEnum;
 import com.huifu.adapay.model.payment.PayChannelEnum;
 import com.huifu.adapay.model.payment.Payment;
 import com.huifu.adapay.model.payment.Payment;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
@@ -12,16 +13,21 @@ import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.thirdparty.adapay.Pay;
 import com.ym.mec.thirdparty.adapay.Pay;
 import com.ym.mec.thirdparty.union.NotifyMsg;
 import com.ym.mec.thirdparty.union.NotifyMsg;
+import com.ym.mec.thirdparty.yqpay.Msg;
+import com.ym.mec.thirdparty.yqpay.YqPayUtil;
+import com.ym.mec.thirdparty.yqpay.YqQueryService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.util.Objects;
+import java.util.*;
 
 
 @RequestMapping("studentOrder")
 @RequestMapping("studentOrder")
 @Api(tags = "订单回调")
 @Api(tags = "订单回调")
@@ -37,7 +43,8 @@ public class StudentOrderController extends BaseController {
 
 
     @Autowired
     @Autowired
     private MusicGroupService musicGroupService;
     private MusicGroupService musicGroupService;
-
+    @Autowired
+    private YqQueryService yqQueryService;
 
 
     @PostMapping("/notify")
     @PostMapping("/notify")
     public String notify(@ModelAttribute NotifyMsg notifyMsg) {
     public String notify(@ModelAttribute NotifyMsg notifyMsg) {
@@ -96,7 +103,7 @@ public class StudentOrderController extends BaseController {
 
 
     @ApiOperation(value = "台牌支付")
     @ApiOperation(value = "台牌支付")
     @PostMapping("/executePayment")
     @PostMapping("/executePayment")
-    public Object executePayment(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody,String sign) throws Exception {
+    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();
         String payChannel = PayChannelEnum.ALIPAY_QR.getCode();
 //        if (!new Pay().verifySign(amount, orderNo, notifyUrl, orderSubject, orderBody,sign)) {
 //        if (!new Pay().verifySign(amount, orderNo, notifyUrl, orderSubject, orderBody,sign)) {
 //            return failed("签名验证失败");
 //            return failed("签名验证失败");
@@ -106,4 +113,95 @@ public class StudentOrderController extends BaseController {
     }
     }
 
 
 
 
+    @Scheduled(cron = "0/5 * * * * ?")
+    public void getOrderStatus() throws Exception {
+        List<StudentPaymentOrder> payingOrders = studentPaymentOrderService.findOrdersByStatus(DealStatusEnum.ING, "YQPAY");
+        String merOrderNos = ""; //
+        List<String> orderNoList = new ArrayList<String>();
+
+        for (StudentPaymentOrder payingOrder : payingOrders) {
+            String orderNo = payingOrder.getOrderNo();
+            orderNoList.add(orderNo);
+            merOrderNos += orderNo + ",";
+        }
+        if (merOrderNos.isEmpty()) {
+            return;
+        }
+        merOrderNos = merOrderNos.substring(0, merOrderNos.length() - 1);
+
+        String notifyUrl = ""; //回调地址
+        Map<String, Object> resultMap = new LinkedHashMap<>();
+        resultMap.put("merOrderNoList", merOrderNos);
+        Map<String, Object> requestMap = YqPayUtil.getRequestMap(notifyUrl, resultMap);
+        Msg queryRs = yqQueryService.orderQuery(requestMap);
+        logger.info("查询易乾结果" + queryRs.toString());
+        if (queryRs.getCode().equals("88")) {
+            //更新订单状态
+            String[] statusArr = {"0", "1", "7"};
+            String responseParameters = queryRs.getResponseParameters();
+            List<Map<String, String>> responseList = JSON.parseObject(responseParameters, List.class);
+            for (Map<String, String> response : responseList) {
+                Map<String, String> rpMap = response;
+                if (Arrays.asList(statusArr).contains(rpMap.get("tradeState"))) {
+                    updateOrder(rpMap); //更新订单
+                }
+                if (orderNoList.contains(rpMap.get("merOrderNo"))) {
+                    orderNoList.remove(rpMap.get("merOrderNo"));
+                }
+            }
+            closeOrders(orderNoList); //关闭订单
+        }
+    }
+
+    public void updateOrder(Map<String, String> rpMap) throws Exception {
+        DealStatusEnum status = rpMap.get("tradeState").equals("1") ? DealStatusEnum.SUCCESS : DealStatusEnum.FAilED;
+        StudentPaymentOrder order = studentPaymentOrderService.findOrderByOrderNo(rpMap.get("merOrderNo"));
+        if (order == null || !order.getStatus().equals(DealStatusEnum.ING)) {
+            return;
+        }
+
+        if (status.equals(DealStatusEnum.SUCCESS)) {
+            order.setPayTime(new Date());
+        }else {
+            order.setMemo(rpMap.get("remarks"));
+        }
+        order.setStatus(status);
+        order.setTransNo(rpMap.get("orderNo"));
+        order.setPaymentBusinessChannel(rpMap.get("channelType"));
+
+        if (order.getType().equals(OrderTypeEnum.APPLY)) { //报名订单
+            studentRegistrationService.updateApplyOrder(order);
+        } else if (order.getType().equals(OrderTypeEnum.SMALL_CLASS_TO_BUY)) {
+            vipGroupService.orderCallback(order);
+        } else if (order.getType().equals(OrderTypeEnum.RENEW)) {
+            musicGroupService.renewForCallback(order);
+        }
+    }
+
+
+    public void closeOrders(List<String> orderNoList) throws Exception {
+        if (orderNoList.size() == 0) {
+            return;
+        }
+
+        Calendar beforeTime = Calendar.getInstance();
+        beforeTime.add(Calendar.MINUTE, -30);// 30分钟之前的时间
+        Date beforeDate = beforeTime.getTime();
+
+        List<StudentPaymentOrder> ordersOverTime = studentPaymentOrderService.findOrdersOverTime(orderNoList,DealStatusEnum.ING,beforeDate);
+        for (StudentPaymentOrder order : ordersOverTime) {
+            order.setStatus(DealStatusEnum.FAilED);
+            order.setMemo("超时未支付关闭");
+            if (order.getType().equals(OrderTypeEnum.APPLY)) { //报名订单
+                studentRegistrationService.updateApplyOrder(order);
+            } else if (order.getType().equals(OrderTypeEnum.SMALL_CLASS_TO_BUY)) {
+                vipGroupService.orderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.RENEW)) {
+                musicGroupService.renewForCallback(order);
+            }
+        }
+
+    }
+
+
 }
 }

+ 1 - 1
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/yqpay/YqPayUtil.java

@@ -13,7 +13,7 @@ public class YqPayUtil {
     private static final String payUrl = "https://qyfapi.95epay.com/api/api/hPay/toPayHtml";//支付提交地址
     private static final String payUrl = "https://qyfapi.95epay.com/api/api/hPay/toPayHtml";//支付提交地址
     private static final String payChannels = "{\"weChatPay\":true,\"weChatPayMobile\":false,\"aliPay\":true,\"fastpayXy\":true,\"aliPayMobile\":false,\"balancePay\":false}";//支付方式配置
     private static final String payChannels = "{\"weChatPay\":true,\"weChatPayMobile\":false,\"aliPay\":true,\"fastpayXy\":true,\"aliPayMobile\":false,\"balancePay\":false}";//支付方式配置
 
 
-    private static Map<String, Object> getRequestMap(String notifyUrl, Map<String, Object> resultMap) throws Exception {
+    public static Map<String, Object> getRequestMap(String notifyUrl, Map<String, Object> resultMap) throws Exception {
         Map<String, Object> rqMap = new LinkedHashMap<>();
         Map<String, Object> rqMap = new LinkedHashMap<>();
         rqMap.put("merNo", merNo);
         rqMap.put("merNo", merNo);
         rqMap.put("version", version);
         rqMap.put("version", version);

+ 21 - 0
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/yqpay/YqQueryService.java

@@ -0,0 +1,21 @@
+package com.ym.mec.thirdparty.yqpay;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Map;
+
+@FeignClient(value = "yqQuery", url = "https://qyfquery.95epay.com")
+public interface YqQueryService {
+
+    @RequestMapping(name = "订单查询", value = "/query/trade/tradeQuery", method = RequestMethod.POST)
+    Msg orderQuery(@RequestParam Map<String, Object> map);
+
+    @RequestMapping(name = "用户信息查询", value = "/query/account/queryAccount", method = RequestMethod.POST)
+    String queryAccount(@RequestParam Map<String, Object> map);
+
+    @RequestMapping(name = "对账查询", value = "/query/bill/billQuery", method = RequestMethod.POST)
+    String billQuery(@RequestParam Map<String, Object> map);
+}