Browse Source

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

zouxuan 5 năm trước cách đây
mục cha
commit
413473f820
27 tập tin đã thay đổi với 341 bổ sung141 xóa
  1. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DemoGroupDao.java
  2. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  3. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  4. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  5. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMessageDao.java
  6. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserCashAccountDetailDao.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  8. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java
  9. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/PayService.java
  10. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java
  11. 9 5
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java
  12. 27 25
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  13. 6 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java
  14. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  15. 8 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java
  16. 9 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  17. 22 4
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  18. 6 2
      mec-biz/src/main/resources/config/mybatis/SysMessageMapper.xml
  19. 1 1
      mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java
  20. 51 51
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  21. 101 3
      mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java
  22. 3 3
      mec-student/src/main/java/com/ym/mec/student/controller/SysMessageController.java
  23. 4 3
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysMessageController.java
  24. 1 1
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/yqpay/YqPayUtil.java
  25. 21 0
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/yqpay/YqQueryService.java
  26. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java
  27. 3 3
      mec-web/src/main/java/com/ym/mec/web/controller/SysMessageController.java

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

@@ -116,12 +116,12 @@ public interface DemoGroupDao extends BaseDAO<Long, DemoGroup> {
      * @param organId
      * @param organId
      * @return
      * @return
      */
      */
-    Map<String, Integer> queryDemoGroupNum(Integer organId);
+    Map<String, Integer> queryDemoGroupNum(@Param("organId") Integer organId);
     
     
     /**
     /**
      * 
      * 
      * @param organId
      * @param organId
      * @return
      * @return
      */
      */
-    Integer queryCurrentMonthCoursesNum(Integer organId);
+    Integer queryCurrentMonthCoursesNum(@Param("organId") Integer organId);
 }
 }

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

@@ -118,12 +118,12 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param ogranId
      * @param ogranId
      * @return
      * @return
      */
      */
-    Map<String,Integer> queryOrganMusicGroupNum(Integer ogranId);
+    Map<String,Integer> queryOrganMusicGroupNum(@Param("organId") Integer ogranId);
     
     
     /**
     /**
      * 查询本月乐团课程数
      * 查询本月乐团课程数
      * @param organId
      * @param organId
      * @return
      * @return
      */
      */
-    Integer queryCurrentMonthCoursesNum(Integer organId);
+    Integer queryCurrentMonthCoursesNum(@Param("organId") Integer organId);
 }
 }

+ 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);
 }
 }

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

@@ -215,7 +215,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * 查询学生数
      * 查询学生数
      * @return
      * @return
      */
      */
-    Map<String,Integer> queryStudentNum(Integer organId);
+    Map<String,Integer> queryStudentNum(@Param("organId") Integer organId);
 
 
     /**
     /**
      * 根据乐团编号获取当前乐团所有已报名学员
      * 根据乐团编号获取当前乐团所有已报名学员

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMessageDao.java

@@ -1,10 +1,12 @@
 package com.ym.mec.biz.dal.dao;
 package com.ym.mec.biz.dal.dao;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.entity.SysMessage;
+import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 
 
 public interface SysMessageDao extends BaseDAO<Long, SysMessage> {
 public interface SysMessageDao extends BaseDAO<Long, SysMessage> {
@@ -26,10 +28,11 @@ public interface SysMessageDao extends BaseDAO<Long, SysMessage> {
 
 
 	/**
 	/**
 	 * 查询消息未读条数
 	 * 查询消息未读条数
+	 * @param type
 	 * @param userId
 	 * @param userId
 	 * @return
 	 * @return
 	 */
 	 */
-	public int queryCountOfUnread(Integer userId);
+	public Map<String, Integer> queryCountOfUnread(@Param("type") MessageSendMode type, @Param("userId") Integer userId);
 
 
 	/**
 	/**
 	 * 修改用户所有消息阅读状态
 	 * 修改用户所有消息阅读状态

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

@@ -21,5 +21,5 @@ public interface SysUserCashAccountDetailDao extends BaseDAO<Long, SysUserCashAc
      */
      */
     int batchInsert(@Param("sysUserCashAccountDetails") List<SysUserCashAccountDetail> sysUserCashAccountDetails);
     int batchInsert(@Param("sysUserCashAccountDetails") List<SysUserCashAccountDetail> sysUserCashAccountDetails);
 
 
-    Map<String, Object> queryStatistics();
+    Map<String, Object> queryStatistics(@Param("organId") Integer organId);
 }
 }

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

@@ -171,5 +171,5 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @param organId
      * @param organId
      * @return
      * @return
      */
      */
-    Map<String,Integer> queryOrganTeacherNum(Integer organId);
+    Map<String,Integer> queryOrganTeacherNum(@Param("organId") Integer organId);
 }
 }

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

@@ -234,12 +234,12 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	 * @param organId
 	 * @param organId
 	 * @return
 	 * @return
 	 */
 	 */
-	Map<String, Integer> queryVipGroupNum(Integer organId);
+	Map<String, Integer> queryVipGroupNum(@Param("organId") Integer organId);
 	
 	
 	/**
 	/**
 	 * 查询当月vip课数量
 	 * 查询当月vip课数量
 	 * @param organId
 	 * @param organId
 	 * @return
 	 * @return
 	 */
 	 */
-	Integer queryCurrentMonthCoursesNum(Integer organId);
+	Integer queryCurrentMonthCoursesNum(@Param("organId") Integer organId);
 }
 }

+ 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);
 }
 }

+ 9 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -5,6 +5,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.Set;
 
 
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.entity.SysMessage;
+import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
@@ -24,7 +25,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param messageType
 	 * @param messageType
 	 * @return
 	 * @return
 	 */
 	 */
-	boolean batchSeoMessage(Set<Integer> userIds,MessageTypeEnum messageType, Object... args);
+	boolean batchSeoMessage(Set<Integer> userIds, MessageTypeEnum messageType, Object... args);
 
 
 	/**
 	/**
 	 * 批量发送消息
 	 * 批量发送消息
@@ -33,10 +34,11 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param content 消息内容
 	 * @param content 消息内容
 	 * @param receivers 消息接受者
 	 * @param receivers 消息接受者
 	 * @param triggerTime 触发时间
 	 * @param triggerTime 触发时间
+	 * @param group 组
 	 * @return
 	 * @return
 	 */
 	 */
 	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
 	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
-									Integer readStatus, String memo);
+			Integer readStatus, String memo, String group);
 
 
 	/**
 	/**
 	 * 发送消息
 	 * 发送消息
@@ -50,7 +52,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @return
 	 * @return
 	 */
 	 */
 	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum messageType, Map<Integer, String> receivers, Date triggerTime,
 	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum messageType, Map<Integer, String> receivers, Date triggerTime,
-								 Integer readStatus, String url, Object... args);
+			Integer readStatus, String url, Object... args);
 
 
 	/**
 	/**
 	 * 发送消息
 	 * 发送消息
@@ -63,10 +65,11 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param triggerTime 触发时间
 	 * @param triggerTime 触发时间
 	 * @param readStatus 阅读状态(0-未读  1-已读)
 	 * @param readStatus 阅读状态(0-未读  1-已读)
 	 * @param url 超链接地址
 	 * @param url 超链接地址
+	 * @param group 组
 	 * @return
 	 * @return
 	 */
 	 */
 	public void sendMessage(MessageSender messageSender, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus,
 	public void sendMessage(MessageSender messageSender, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus,
-							String url);
+			String url, String group);
 
 
 	/**
 	/**
 	 * 发送验证码
 	 * 发送验证码
@@ -96,10 +99,11 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 
 
 	/**
 	/**
 	 * 查询消息未读条数
 	 * 查询消息未读条数
+	 * @param type
 	 * @param userId
 	 * @param userId
 	 * @return
 	 * @return
 	 */
 	 */
-	public int queryCountOfUnread(Integer userId);
+	public Map<String, Integer> queryCountOfUnread(MessageSendMode type, Integer userId);
 
 
 	/**
 	/**
 	 *
 	 *

+ 27 - 25
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -668,32 +668,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);
         }
         }
@@ -1034,7 +1036,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			Map<Integer, String> userIds = MapUtil.convertMybatisMap(studentRegistrationDao.findParentId(StringUtils.join(parentsPhones, ",")));
 			Map<Integer, String> userIds = MapUtil.convertMybatisMap(studentRegistrationDao.findParentId(StringUtils.join(parentsPhones, ",")));
 			userIds = JSONObject.parseObject(JSONObject.toJSONString(userIds), HashMap.class);
 			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);
+    }
 }
 }

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

@@ -81,7 +81,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	 * @return
 	 * @return
 	 */
 	 */
 	private int addMessage(Map<Integer, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
 	private int addMessage(Map<Integer, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
-						   String errorMsg, Integer readStatus, String memo, String group) {
+			String errorMsg, Integer readStatus, String memo, String group) {
 		SysMessage message = null;
 		SysMessage message = null;
 		Date date = new Date();
 		Date date = new Date();
 
 
@@ -143,7 +143,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		SysMessage message = null;
 		SysMessage message = null;
 
 
 		List<SysMessage> messages = new ArrayList<>();
 		List<SysMessage> messages = new ArrayList<>();
-		for (Integer userId:userIds) {
+		for (Integer userId : userIds) {
 			message = new SysMessage();
 			message = new SysMessage();
 			message.setUserId(userId);
 			message.setUserId(userId);
 			message.setContent(content);
 			message.setContent(content);
@@ -163,7 +163,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	@Override
 	@Override
 	@Async
 	@Async
 	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
 	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
-									Integer readStatus, String memo) {
+			Integer readStatus, String memo, String group) {
 
 
 		if (receivers == null || receivers.size() == 0) {
 		if (receivers == null || receivers.size() == 0) {
 			throw new BizException("消息接收人不能为空");
 			throw new BizException("消息接收人不能为空");
@@ -207,7 +207,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	@Override
 	@Override
 	@Async
 	@Async
 	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
 	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
-								 String url, Object... args) {
+			String url, Object... args) {
 
 
 		if (receivers == null || receivers.size() == 0) {
 		if (receivers == null || receivers.size() == 0) {
 			throw new BizException("接收地址不能为空");
 			throw new BizException("接收地址不能为空");
@@ -226,7 +226,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			try {
 			try {
 				if (debugMode == true
 				if (debugMode == true
 						|| messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
 						|| messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
-						MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url)) {
+								MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url)) {
 					status = SendStatusEnum.SUCCESSED;
 					status = SendStatusEnum.SUCCESSED;
 				} else {
 				} else {
 					status = SendStatusEnum.FAILED;
 					status = SendStatusEnum.FAILED;
@@ -250,7 +250,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	@Override
 	@Override
 	@Async
 	@Async
 	public void sendMessage(MessageSender messageSender, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus,
 	public void sendMessage(MessageSender messageSender, Integer userId, String title, String content, String receiver, Date triggerTime, Integer readStatus,
-							String url) {
+			String url, String group) {
 		if (StringUtils.isBlank(receiver)) {
 		if (StringUtils.isBlank(receiver)) {
 			throw new BizException("接收地址不能为空");
 			throw new BizException("接收地址不能为空");
 		}
 		}
@@ -322,8 +322,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 	}
 
 
 	@Override
 	@Override
-	public int queryCountOfUnread(Integer userId) {
-		return sysMessageDao.queryCountOfUnread(userId);
+	public Map<String, Integer> queryCountOfUnread(MessageSendMode type, Integer userId) {
+		return sysMessageDao.queryCountOfUnread(type, userId);
 	}
 	}
 
 
 	public void setDebugMode(boolean debugMode) {
 	public void setDebugMode(boolean debugMode) {

+ 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,
 				"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,
 				"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>

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/SysMessageMapper.xml

@@ -162,7 +162,11 @@
 		INTERVAL #{recentMin} MINUTE) >= date(send_time_)]]>
 		INTERVAL #{recentMin} MINUTE) >= date(send_time_)]]>
 	</select>
 	</select>
 
 
-	<select id="queryCountOfUnread" resultType="int">
-		SELECT COUNT(*) FROM sys_message WHERE user_id_ = #{userId} AND read_status_ = 0 AND type_ = 3
+	<select id="queryCountOfUnread" resultType="map" parameterType="map">
+		SELECT group_ groupName,COUNT(*) num FROM sys_message WHERE user_id_ = #{userId} AND read_status_ = 0
+		<if test="type != null">
+		and type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+		</if>
+		group by group_
 	</select>
 	</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);
+            }
+        }
+
+    }
+
+
 }
 }

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

@@ -78,7 +78,7 @@ public class SysMessageController extends BaseController {
 		if (sysUser == null) {
 		if (sysUser == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
 		}
-		return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
+		return succeed(sysMessageService.queryCountOfUnread(MessageSendMode.PUSH, sysUser.getId()));
 	}
 	}
 
 
 	/*@ApiOperation(value = "发送短信验证码")
 	/*@ApiOperation(value = "发送短信验证码")
@@ -126,7 +126,7 @@ public class SysMessageController extends BaseController {
 
 
 	@ApiOperation(value = "发送消息")
 	@ApiOperation(value = "发送消息")
 	@PostMapping("/sendMessage")
 	@PostMapping("/sendMessage")
-	public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url) {
+	public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url, String group) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (sysUser == null) {
 		if (sysUser == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 			return failed(HttpStatus.FORBIDDEN, "请登录");
@@ -137,7 +137,7 @@ public class SysMessageController extends BaseController {
 		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
 		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
 			throw new BizException("请输入正确的手机号");
 			throw new BizException("请输入正确的手机号");
 		}
 		}
-		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url);
+		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url, group);
 		return succeed();
 		return succeed();
 	}
 	}
 }
 }

+ 4 - 3
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysMessageController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.entity.SysMessage;
+import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
 import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
@@ -77,7 +78,7 @@ public class SysMessageController extends BaseController {
 		if (sysUser == null) {
 		if (sysUser == null) {
 			return failed("请重新登录");
 			return failed("请重新登录");
 		}
 		}
-		return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
+		return succeed(sysMessageService.queryCountOfUnread(MessageSendMode.PUSH, sysUser.getId()));
 	}
 	}
 /*
 /*
 	@ApiOperation(value = "发送短信验证码")
 	@ApiOperation(value = "发送短信验证码")
@@ -125,7 +126,7 @@ public class SysMessageController extends BaseController {
 
 
 	@ApiOperation(value = "发送消息")
 	@ApiOperation(value = "发送消息")
 	@PostMapping("/sendMessage")
 	@PostMapping("/sendMessage")
-	public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url) {
+	public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url, String group) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (sysUser == null) {
 		if (sysUser == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 			return failed(HttpStatus.FORBIDDEN, "请登录");
@@ -136,7 +137,7 @@ public class SysMessageController extends BaseController {
 		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
 		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
 			throw new BizException("请输入正确的手机号");
 			throw new BizException("请输入正确的手机号");
 		}
 		}
-		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url);
+		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url, group);
 		return succeed();
 		return succeed();
 	}
 	}
 }
 }

+ 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);
+}

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java

@@ -78,7 +78,7 @@ public class IndexController extends BaseController {
 		
 		
 		Integer demoGroupNum = demoGroupDao.queryCurrentMonthCoursesNum(organId);
 		Integer demoGroupNum = demoGroupDao.queryCurrentMonthCoursesNum(organId);
 		
 		
-		Map<String, Object> incomeExpendMap = sysUserCashAccountDetailDao.queryStatistics();
+		Map<String, Object> incomeExpendMap = sysUserCashAccountDetailDao.queryStatistics(organId);
 		
 		
 		ModelMap model = new ModelMap();
 		ModelMap model = new ModelMap();
 		model.put("musicDatas", musicDatas);
 		model.put("musicDatas", musicDatas);

+ 3 - 3
mec-web/src/main/java/com/ym/mec/web/controller/SysMessageController.java

@@ -78,7 +78,7 @@ public class SysMessageController extends BaseController {
 		if (sysUser == null) {
 		if (sysUser == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
 		}
-		return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
+		return succeed(sysMessageService.queryCountOfUnread(MessageSendMode.SEO, sysUser.getId()));
 	}
 	}
 
 
 	/*@ApiOperation(value = "发送短信验证码")
 	/*@ApiOperation(value = "发送短信验证码")
@@ -126,7 +126,7 @@ public class SysMessageController extends BaseController {
 
 
 	@ApiOperation(value = "发送消息")
 	@ApiOperation(value = "发送消息")
 	@PostMapping("/sendMessage")
 	@PostMapping("/sendMessage")
-	public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url) {
+	public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url, String group) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (sysUser == null) {
 		if (sysUser == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 			return failed(HttpStatus.FORBIDDEN, "请登录");
@@ -137,7 +137,7 @@ public class SysMessageController extends BaseController {
 		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
 		if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
 			throw new BizException("请输入正确的手机号");
 			throw new BizException("请输入正确的手机号");
 		}
 		}
-		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url);
+		sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url, group);
 		return succeed();
 		return succeed();
 	}
 	}
 }
 }