Selaa lähdekoodia

修改小课续费接口

周箭河 5 vuotta sitten
vanhempi
commit
cdb198c779

+ 65 - 2
src/main/java/com/ym/mec/collectfee/controller/YqPayController.java

@@ -217,7 +217,7 @@ public class YqPayController extends BaseController {
         for (int i = 0; i < courses.size(); i++) {
             MecCourse course = courses.get(i);
             if (mecCourse4json.getCourseId().equals(course.getCourseId())) {
-                BigDecimal price = course.getClassType() == 1 ? course.getPrice().multiply(BigDecimal.valueOf(buyCount)) : mecCourse4json.getPrice();
+                BigDecimal price = course.getClassType() == 1 ? course.getPrice().multiply(BigDecimal.valueOf(buyCount)) : course.getPrice().multiply(BigDecimal.valueOf(course.getBuyCount()));
                 amount = amount.add(price);
                 remark += course.getClassName();
             } else {
@@ -290,7 +290,7 @@ public class YqPayController extends BaseController {
      */
     //@PostMapping("/query")
     //@Scheduled(cron = "0/3 40 11 * * ?")
-    public String query(String merOrderNoList) throws Exception {
+    public Object query(String merOrderNoList) throws Exception {
         String notifyUrl = ""; //回调地址
         Map<String, Object> resultMap = new LinkedHashMap<>();
         resultMap.put("merOrderNoList", merOrderNoList);
@@ -444,4 +444,67 @@ public class YqPayController extends BaseController {
     }
 
 
+    //@Scheduled(cron = "0/3 40 11 * * ?")
+    @RequestMapping("/getOrderStatus")
+    public void getOrderStatus() throws Exception {
+        List<Order> payingOrders = orderService.findPayingOrders();
+
+        String merOrderNos = ""; //
+
+        for (int i = 0; i < payingOrders.size(); i++) {
+            merOrderNos += payingOrders.get(i).getOrderNo() + ",";
+        }
+        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 = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
+        Msg queryRs = yqQueryService.orderQuery(requestMap);
+        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 (int i = 0; i < responseList.size(); i++) {
+                Map<String, String> rpMap = responseList.get(i);
+                if (Arrays.asList(statusArr).contains(rpMap.get("tradeState"))) {
+                    this.updateOrder(rpMap);
+                }
+            }
+
+
+        }
+    }
+
+    @Transactional
+    public void updateOrder(Map<String, String> rpMap) {
+        int status = rpMap.get("tradeState").equals("1") ? 2 : 0;
+        Order order = orderService.getOrderByOrderNo(rpMap.get("merOrderNo"));
+        order.setStatus(status);
+        order.setBank(rpMap.get("channelType"));
+
+        if (order.getPayId() == null) {
+            order.setPayId(rpMap.get("orderNo")); //更新易乾付订单号
+        }
+        if (status == 2) {
+            order.setPay(order.getAmount());
+            order.setPayTime(new Date());
+            //推送mec
+            if(order.getTuiFee() != null){
+                ApplyInfo applyInfo = applyInfoService.get(order.getUserId());
+                applyInfoService.userRegister(applyInfo.getPatriarchPhone()); //推送mec
+            }
+        }
+        //失败减去已收款金额,减去报名人数
+        if (status == 0 && order.getTuiFee() != null) {
+//            CourseGroupInfoService.get()
+//            courseGroupInfo.setRegNum(courseGroupInfo.getRegNum() + 1);
+        }
+        orderService.update(order);
+    }
+
 }

+ 55 - 1
src/main/java/com/ym/mec/collectfee/controller/YqRegController.java

@@ -42,7 +42,7 @@ public class YqRegController {
         String seraialNumber = GenerateNum.getInstance().GenerateOrderNo();
 
         Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
-        resultMap.put("type", "H5");
+        resultMap.put("type", "web");
         resultMap.put("returnUrl", "http://dev.dayaedu.com/");
         resultMap.put("seraialNumber", seraialNumber);
         resultMap.put("merType", "per");
@@ -131,4 +131,58 @@ public class YqRegController {
         return "/reg/order";
     }
 
+    @GetMapping("/webcom")
+    public String webcom(ModelMap map) throws Exception {
+        String notifyUrl = "http://47.99.212.176:9000/yqpay/notify"; //主动通知地址
+
+        String seraialNumber = GenerateNum.getInstance().GenerateOrderNo();
+
+        Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
+        resultMap.put("type", "web");
+        resultMap.put("returnUrl", "http://dev.dayaedu.com/");
+        resultMap.put("seraialNumber", seraialNumber);
+        resultMap.put("merType", "com");
+
+        Map<String, Object> requestMap = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
+        map.addAttribute("info", requestMap);
+        return "/reg/register";
+    }
+
+    @GetMapping("/webper")
+    public String webper(ModelMap map) throws Exception {
+
+        String notifyUrl = "http://47.99.212.176:9000/yqpay/notify"; //主动通知地址
+
+        String seraialNumber = GenerateNum.getInstance().GenerateOrderNo();
+
+        Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
+        resultMap.put("type", "web");
+        resultMap.put("returnUrl", "http://dev.dayaedu.com/");
+        resultMap.put("seraialNumber", seraialNumber);
+        resultMap.put("merType", "per");
+
+        Map<String, Object> requestMap = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
+        map.addAttribute("info", requestMap);
+        return "/reg/register";
+    }
+
+    @GetMapping("/webpcy")
+    public String webpcy(ModelMap map) throws Exception {
+        String notifyUrl = "http://47.99.212.176:9000/yqpay/notify"; //主动通知地址
+
+        String seraialNumber = GenerateNum.getInstance().GenerateOrderNo();
+
+        Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
+        resultMap.put("type", "web");
+        resultMap.put("returnUrl", "http://dev.dayaedu.com/");
+        resultMap.put("seraialNumber", seraialNumber);
+        resultMap.put("merType", "pcy");
+
+        Map<String, Object> requestMap = new YqPayUtil(notifyUrl, resultMap).getRequestMap();
+        map.addAttribute("info", requestMap);
+        return "/reg/register";
+    }
+
+
+
 }

+ 2 - 0
src/main/java/com/ym/mec/collectfee/dao/OrderDao.java

@@ -20,4 +20,6 @@ public interface OrderDao extends BaseDAO<Integer, Order> {
     Order findOrderByStatus(@Param("userId") Integer userId,@Param("status") Integer status);
 
     int getPayOrderNums();
+
+    List<Order> findPayingOrders();
 }

+ 6 - 0
src/main/java/com/ym/mec/collectfee/service/OrderService.java

@@ -51,4 +51,10 @@ public interface OrderService extends BaseService<Integer, Order> {
      * @return
      */
     int getPayOrderNums();
+
+    /**
+     * 获取支付中的订单
+     * @return
+     */
+    List<Order> findPayingOrders();
 }

+ 2 - 1
src/main/java/com/ym/mec/collectfee/service/YqQueryService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.collectfee.service;
 
+import com.ym.mec.collectfee.utils.yqpay.Msg;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -11,7 +12,7 @@ import java.util.Map;
 public interface YqQueryService {
 
     @RequestMapping(name = "订单查询", value = "/query/trade/tradeQuery", method = RequestMethod.POST)
-    String orderQuery(@RequestParam Map<String, Object> map);
+    Msg orderQuery(@RequestParam Map<String, Object> map);
 
     @RequestMapping(name = "用户信息查询", value = "/query/account/queryAccount", method = RequestMethod.POST)
     String queryAccount(@RequestParam Map<String, Object> map);

+ 6 - 0
src/main/java/com/ym/mec/collectfee/service/impl/OrderServiceImpl.java

@@ -123,4 +123,10 @@ public class OrderServiceImpl extends BaseServiceImpl<Integer, Order> implements
 		return orderDao.getPayOrderNums();
 	}
 
+	@Override
+	public List<Order> findPayingOrders(){
+		return orderDao.findPayingOrders();
+	}
+
+
 }

+ 3 - 4
src/main/java/com/ym/mec/collectfee/service/impl/RenewalsServiceImpl.java

@@ -59,8 +59,7 @@ public class RenewalsServiceImpl extends BaseServiceImpl<Integer, Renewals> impl
         order.setCreateTime(new Date());
 
         //1、插入订单
-        Long id = orderService.insert(order);
-
+        orderService.insert(order);
         ArrayList<Renewals> renewalsArrayList = new ArrayList<>();
 
         for (int i = 0; i < mecCourses.size(); i++) {
@@ -74,8 +73,8 @@ public class RenewalsServiceImpl extends BaseServiceImpl<Integer, Renewals> impl
             rws.setPay(course.getPrice());
             rws.setChangeMode(course.getChargeMode());
             rws.setPrice(course.getPrice());
-            rws.setBuy(renewals.getBuy());
-            rws.setOrderId(id.intValue());
+            rws.setBuy(course.getBuyCount());
+            rws.setOrderId(order.getId());
             renewalsArrayList.add(rws);
         }
 

+ 5 - 1
src/main/resources/config/mybatis/OrderMapper.xml

@@ -55,7 +55,7 @@
 
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.collectfee.entity.Order">
-		UPDATE order
+		UPDATE `order`
 		<set>
 			<if test="tuiFee != null">
 				tui_fee = #{tuiFee},
@@ -157,4 +157,8 @@
 	<select id="getPayOrderNums" resultType="java.lang.Integer">
 		SELECT COUNT(*) FROM `order` WHERE status >= 1
 	</select>
+	<!-- 获取支付中的订单-->
+	<select id="findPayingOrders" resultMap="Order">
+		SELECT * FROM `order` WHERE status = 1
+	</select>
 </mapper>