Browse Source

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

zouxuan 5 years ago
parent
commit
d481dafd69

+ 19 - 13
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -36,12 +36,12 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
                                               @Param("status") String status);
 
     /**
-     * @describe 统计学员剩余课时的课程费用
-     * @author Joburgess
-     * @date 2019/12/3
      * @param vipGroupId:
      * @param userId:
      * @return java.math.BigDecimal
+     * @describe 统计学员剩余课时的课程费用
+     * @author Joburgess
+     * @date 2019/12/3
      */
     BigDecimal sumSurplusCourseFee(@Param("vipGroupId") String vipGroupId,
                                    @Param("userId") Integer userId);
@@ -52,14 +52,14 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * 根据学生vip课获取非失败缴费订单
      */
     StudentPaymentOrder findNotFailedOrderByStudentVipGroup(@Param("vipGroupId") Long vipGroupId,
-                                              @Param("userId") Integer userId);
+                                                            @Param("userId") Integer userId);
 
     /**
+     * @param musicGroupId: 乐团编号/vip课编号
+     * @return java.lang.Integer
      * @describe 统计报名人数
      * @author Joburgess
      * @date 2019/11/13
-     * @param musicGroupId: 乐团编号/vip课编号
-     * @return java.lang.Integer
      */
     Integer countStudentPaymentNum(@Param("musicGroupId") String musicGroupId);
 
@@ -120,6 +120,7 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
 
     /**
      * 查询支付中超时的订单
+     *
      * @param orderNoList
      * @param status
      * @param beforeTime
@@ -128,30 +129,31 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
     List<StudentPaymentOrder> findOrdersOverTime(@Param("orderNoList") List<String> orderNoList, @Param("status") DealStatusEnum status, @Param("beforeTime") Date beforeTime);
 
     /**
+     * @param musicGroupId: 乐团编号
+     * @param userId:       用户编号
+     * @return int
      * @describe 根据乐团和用户编号统计剩余课时
      * @author Joburgess
      * @date 2019/12/4
-     * @param musicGroupId: 乐团编号
-     * @param userId: 用户编号
-     * @return int
      */
     int countSurplusCourseByMusicGroupAndUser(@Param("musicGroupId") String musicGroupId, @Param("userId") Integer userId);
 
     /**
-     * @describe 统计乐团或vip课的收入金额
-     * @author Joburgess
-     * @date 2019/12/4
      * @param musicGroupId: 乐团或小课金额
      * @param groupType:
      * @return java.math.BigDecimal
+     * @describe 统计乐团或vip课的收入金额
+     * @author Joburgess
+     * @date 2019/12/4
      */
     BigDecimal sumGroupIncomeFee(@Param("musicGroupId") String musicGroupId,
                                  @Param("groupType") String groupType);
 
-    List<StudentPaymentOrder> findStudentPaymentOrder(@Param("groupType") String groupType,@Param("musicGroupId") String musicGroupId);
+    List<StudentPaymentOrder> findStudentPaymentOrder(@Param("groupType") String groupType, @Param("musicGroupId") String musicGroupId);
 
     /**
      * 获取零星订单
+     *
      * @param userId
      * @param sporadicId
      * @param groupType
@@ -162,8 +164,12 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
 
     /**
      * 获取订单金额map
+     *
      * @param paymentOrderNo
      * @return
      */
     List<Map<Long, BigDecimal>> queryActualAmount(@Param("paymentOrderNo") List<Long> paymentOrderNo);
+
+
+    List<StudentPaymentOrder> findFixOrder(@Param("status") DealStatusEnum status, @Param("paymentChannel") String paymentChannel);
 }

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

@@ -292,7 +292,7 @@
     <select id="findOrdersByStatus" resultMap="StudentPaymentOrder">
         SELECT * FROM student_payment_order
         WHERE status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND payment_channel_ =
-        #{paymentChannel}
+        #{paymentChannel} LIMIT 100
     </select>
 
     <!-- 查询支付中超时订单 -->
@@ -352,4 +352,10 @@
             #{item}
         </foreach>
     </select>
+
+    <select id="findFixOrder" resultMap="StudentPaymentOrder">
+        SELECT * FROM student_payment_order
+        WHERE status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND payment_channel_ =
+        #{paymentChannel} AND com_amount_ IS NULL LIMIT 100
+    </select>
 </mapper>

+ 64 - 9
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -3,6 +3,7 @@ package com.ym.mec.student.controller;
 import com.alibaba.fastjson.JSON;
 import com.huifu.adapay.model.payment.PayChannelEnum;
 import com.huifu.adapay.model.payment.Payment;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
 import com.ym.mec.biz.dal.dto.VipBuyResultDto;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.MusicGroup;
@@ -51,6 +52,10 @@ public class StudentOrderController extends BaseController {
     private MusicGroupService musicGroupService;
     @Autowired
     private StudentPaymentOrderDetailService studentPaymentOrderDetailService;
+    @Autowired
+    private YqPayFeignService yqPayFeignService;
+    @Autowired
+    private StudentPaymentOrderDao studentPaymentOrderDao;
 
     @PostMapping("/notify")
     public Msg notify(@ModelAttribute Msg msg) throws Exception {
@@ -94,16 +99,16 @@ public class StudentOrderController extends BaseController {
             return failed("未找到指定订单");
         }
         HashMap<String, Object> orderDetail = new HashMap<>();
-        orderDetail.put("order",orderByOrderNo);
-        orderDetail.put("groupType",orderByOrderNo.getGroupType());
-        if(orderByOrderNo.getGroupType().equals(GroupType.MUSIC)){
+        orderDetail.put("order", orderByOrderNo);
+        orderDetail.put("groupType", orderByOrderNo.getGroupType());
+        if (orderByOrderNo.getGroupType().equals(GroupType.MUSIC)) {
             MusicGroup musicGroup = musicGroupService.get(orderByOrderNo.getMusicGroupId());
             List<Goods> goodsList = studentPaymentOrderDetailService.findApplyOrderGoods(orderByOrderNo.getId());
-            orderDetail.put("goods",goodsList);
-            orderDetail.put("course",musicGroup.getCourseForm());
-        }else if(orderByOrderNo.getGroupType().equals(GroupType.VIP)){
+            orderDetail.put("goods", goodsList);
+            orderDetail.put("course", musicGroup.getCourseForm());
+        } else if (orderByOrderNo.getGroupType().equals(GroupType.VIP)) {
             VipBuyResultDto vipBuyResultInfo = vipGroupService.findVipBuyResultInfo(Integer.valueOf(orderByOrderNo.getMusicGroupId()));
-            orderDetail.put("detail",vipBuyResultInfo);
+            orderDetail.put("detail", vipBuyResultInfo);
         }
 
         return succeed(orderDetail);
@@ -202,7 +207,7 @@ public class StudentOrderController extends BaseController {
 
     }
 
-//    @Scheduled(cron = "0/30 * * * * ?")
+    //    @Scheduled(cron = "0/30 * * * * ?")
     @GetMapping("/setSuccessStatus")
     public void setSuccessStatus() throws Exception {
         List<StudentPaymentOrder> payingOrders = studentPaymentOrderService.findOrdersByStatus(DealStatusEnum.ING, "YQPAY");
@@ -221,7 +226,7 @@ public class StudentOrderController extends BaseController {
             if (Arrays.asList(statusArr).contains(rpMap.get("tradeState"))) {
                 try {
                     studentPaymentOrderService.updateOrder(rpMap); //更新订单
-                }catch (Exception e){
+                } catch (Exception e) {
                     e.printStackTrace();
                     continue;
                 }
@@ -230,4 +235,54 @@ public class StudentOrderController extends BaseController {
 
     }
 
+    @GetMapping("/fixOrder")
+    private int fixOrder() throws Exception {
+        List<StudentPaymentOrder> payingOrders = studentPaymentOrderDao.findFixOrder(DealStatusEnum.SUCCESS, "YQPAY");
+
+        if (payingOrders.size() == 0) {
+            return 0;
+        }
+        String merOrderNos = payingOrders.stream().map(StudentPaymentOrder::getOrderNo).collect(Collectors.joining(","));
+
+        String notifyUrl = ""; //回调地址
+        Map<String, Object> resultMap = new LinkedHashMap<>();
+        resultMap.put("merOrderNoList", merOrderNos);
+        Map<String, Object> requestMap = YqPayUtil.getRequestMap(notifyUrl, resultMap);
+
+        RsqMsg rsqMsg = new RsqMsg(requestMap);
+
+        Msg queryRs = yqPayFeignService.orderQuery(rsqMsg);
+
+        if (queryRs.getCode().equals("88")) {
+            String responseParameters = queryRs.getResponseParameters();
+            List<Map<String, Object>> responseList = JSON.parseObject(responseParameters, List.class);
+            for (Map<String, Object> response : responseList) {
+                String type = "per";
+                String orderNo = (String) response.get("merOrderNo");
+                String tempRoutingResultList = response.get("tempRoutingResultList").toString();
+                System.out.println(tempRoutingResultList);
+
+                if (tempRoutingResultList.contains("武汉大雅乐盟教育咨询有限公司")) {
+                    type = "com";
+                }
+                fixUpdateOrder(orderNo,type);
+            }
+        }
+        return payingOrders.size();
+    }
+
+    void fixUpdateOrder(String orderNo,String type) {
+        StudentPaymentOrder order = studentPaymentOrderService.findOrderByOrderNo(orderNo);
+        if(type.equals("com")){
+            order.setComAmount(order.getActualAmount());
+            order.setPerAmount(BigDecimal.ZERO);
+            order.setMerNos("0023115");
+        }else {
+            order.setComAmount(BigDecimal.ZERO);
+            order.setPerAmount(order.getActualAmount());
+            order.setMerNos("0031215");
+        }
+        studentPaymentOrderService.update(order);
+    }
+
 }

+ 15 - 11
mec-web/src/main/java/com/ym/mec/web/controller/StudentPaymentOrderController.java

@@ -70,10 +70,12 @@ public class StudentPaymentOrderController extends BaseController {
         int openHideMode = Integer.parseInt(sysConfigDao.findConfigValue("open_hide_mode"));
         if (openHideMode == 1) {
             for (StudentPaymentOrder row : studentPaymentOrderPageInfo.getRows()) {
-                BigDecimal balancePaymentAmount = row.getBalancePaymentAmount() == null ? BigDecimal.ZERO : row.getBalancePaymentAmount();
-                BigDecimal comAmount = row.getComAmount() == null ? BigDecimal.ZERO : row.getComAmount();
-                row.setExpectAmount(comAmount.add(balancePaymentAmount));
-                row.setActualAmount(comAmount.add(balancePaymentAmount));
+                if (row.getComAmount() != null) {
+                    BigDecimal balancePaymentAmount = row.getBalancePaymentAmount() == null ? BigDecimal.ZERO : row.getBalancePaymentAmount();
+                    BigDecimal comAmount = row.getComAmount() == null ? BigDecimal.ZERO : row.getComAmount();
+                    row.setExpectAmount(comAmount.add(balancePaymentAmount));
+                    row.setActualAmount(comAmount.add(balancePaymentAmount));
+                }
             }
         }
         return succeed(studentPaymentOrderPageInfo);
@@ -104,10 +106,11 @@ public class StudentPaymentOrderController extends BaseController {
         PageInfo<StudentPaymentOrder> studentPaymentOrderPageInfo = studentPaymentOrderService.queryPage(queryInfo);
 
         for (StudentPaymentOrder row : studentPaymentOrderPageInfo.getRows()) {
+            BigDecimal balancePaymentAmount = row.getBalancePaymentAmount() == null ? BigDecimal.ZERO : row.getBalancePaymentAmount();
             BigDecimal comAmount = row.getComAmount() == null ? BigDecimal.ZERO : row.getComAmount();
-            if(row.getComAmount() != null) {
-                row.setExpectAmount(comAmount);
-                row.setActualAmount(comAmount);
+            if (row.getComAmount() != null) {
+                row.setExpectAmount(comAmount.add(balancePaymentAmount));
+                row.setActualAmount(comAmount.add(balancePaymentAmount));
             }
         }
         return succeed(studentPaymentOrderPageInfo);
@@ -138,10 +141,11 @@ public class StudentPaymentOrderController extends BaseController {
         PageInfo<StudentPaymentOrder> studentPaymentOrderPageInfo = studentPaymentOrderService.queryPage(queryInfo);
 
         for (StudentPaymentOrder row : studentPaymentOrderPageInfo.getRows()) {
-            BigDecimal perAmount = row.getPerAmount() == null ? BigDecimal.ZERO : row.getComAmount();
-            if(row.getPerAmount() != null) {
-                row.setExpectAmount(perAmount);
-                row.setActualAmount(perAmount);
+            BigDecimal balancePaymentAmount = row.getBalancePaymentAmount() == null ? BigDecimal.ZERO : row.getBalancePaymentAmount();
+            BigDecimal perAmount = row.getPerAmount() == null ? BigDecimal.ZERO : row.getPerAmount();
+            if (row.getPerAmount() != null) {
+                row.setExpectAmount(perAmount.add(balancePaymentAmount));
+                row.setActualAmount(perAmount.add(balancePaymentAmount));
             }
         }
         return succeed(studentPaymentOrderPageInfo);