Browse Source

东信充值完成卡支付未完成

yq 3 years ago
parent
commit
8f15611d48

+ 59 - 3
src/main/java/com/usky/dxtop/controller/web/OrderController.java

@@ -1,9 +1,18 @@
 package com.usky.dxtop.controller.web;
 
 
+import com.usky.dxtop.common.core.domain.AjaxResult;
+import com.usky.dxtop.controller.BaseController;
+import com.usky.dxtop.model.Order;
+import com.usky.dxtop.service.OrderService;
+import com.usky.dxtop.service.api.TopApi;
+import com.usky.dxtop.service.vo.OrderRequest;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.TreeMap;
 
 /**
  * <p>
@@ -15,7 +24,54 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/dxtop/order")
-public class OrderController {
+public class OrderController extends BaseController {
+
+    @Autowired
+    private OrderService orderService;
+
+    /**
+     * 添加订单(现金支付)
+     * @param order
+     * @return
+     */
+    @PostMapping
+    public AjaxResult add(Order order){
+        return toAjax(orderService.add(order));
+    }
+
+    @GetMapping("/list")
+    public List<Order> list(@RequestBody OrderRequest orderRequest){
+        return orderService.list(orderRequest);
+    }
+
+    /**
+     * 扫码支付api
+     * @param order
+     * @return
+     */
+    @GetMapping("/topScanPayApi")
+    public AjaxResult getTopScanPayApi(@RequestBody Order order){
+        return AjaxResult.success(orderService.getTopScanPayApi(order));
+    }
+
+    /**
+     * 生成扫码支付二维码
+     * @param order
+     * @return
+     */
+    @GetMapping("/topScanPayQr")
+    public AjaxResult getTopScanPayQr(@RequestBody Order order){
+        return AjaxResult.success(orderService.getTopScanPayQr(order));
+    }
 
+    /**
+     * 查看订单详情api
+     * @param orderNumber
+     * @return
+     */
+    @GetMapping("/orderInfo")
+    public AjaxResult callTopFindOrderInfoApi(@RequestParam String orderNumber){
+        return AjaxResult.success(orderService.callTopFindOrderInfoApi(orderNumber));
+    }
 }
 

+ 68 - 0
src/main/java/com/usky/dxtop/controller/web/TopNotifyController.java

@@ -0,0 +1,68 @@
+package com.usky.dxtop.controller.web;
+
+import com.usky.dxtop.service.CallApiLogService;
+import com.usky.dxtop.service.OrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.TreeMap;
+
+/**
+ * @author yq
+ * @date 2021/8/30 10:40
+ */
+@RequestMapping("/top")
+@RestController
+@Slf4j
+public class TopNotifyController {
+
+    @Autowired
+    private OrderService orderService;
+
+    @Autowired
+    private CallApiLogService callApiLogService;
+
+    @PostMapping("/notify")
+    public void test(@RequestParam(required = false) String merchantNo,
+                     @RequestParam(required = false) String storeNo,
+                     @RequestParam(required = false) String trxamt,
+                     @RequestParam(required = false) String payTime,
+                     @RequestParam(required = false) String chnltrxid,
+                     @RequestParam(required = false) String trxstatus,
+                     @RequestParam(required = false) String orderNo,
+                     @RequestParam(required = false) String merchantOrderNo,
+                     @RequestParam(required = false) String acct,
+                     @RequestParam(required = false) String fee,
+                     @RequestParam(required = false) String note,
+                     @RequestParam(required = false) String label,
+                     @RequestParam(required = false) String chnldata,
+                     @RequestParam(required = false) String initamt,
+                     @RequestParam(required = false) String groupNo,
+                     @RequestParam(required = false) String employee,
+                     @RequestParam(required = false) String sign){
+        TreeMap<String, String> tMap = new TreeMap<>();
+        tMap.put("merchantNo",merchantNo);
+        tMap.put("storeNo",storeNo);
+        tMap.put("trxamt",trxamt);
+        tMap.put("payTime",payTime);
+        tMap.put("chnltrxid",chnltrxid);
+        tMap.put("trxstatus",trxstatus);
+        tMap.put("orderNo",orderNo);
+        tMap.put("merchantOrderNo",merchantOrderNo);
+        tMap.put("acct",acct);
+        tMap.put("fee",fee);
+        tMap.put("note",note);
+        tMap.put("label",label);
+        tMap.put("chnldata",chnldata);
+        tMap.put("initamt",initamt);
+        tMap.put("groupNo",groupNo);
+        tMap.put("employee",employee);
+        tMap.put("sign",sign);
+
+        //调用卡充值api
+    }
+}

+ 1 - 0
src/main/java/com/usky/dxtop/model/CallApiLog.java

@@ -1,6 +1,7 @@
 package com.usky.dxtop.model;
 
 import com.usky.dxtop.common.core.domain.BaseEntity;
+import lombok.Builder;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;

+ 17 - 0
src/main/java/com/usky/dxtop/service/CallApiLogService.java

@@ -14,4 +14,21 @@ import com.usky.dxtop.model.CallApiLog;
  */
 public interface CallApiLogService extends IService<CallApiLog> {
 
+    /**
+     * 添加
+     * @param orderNumber 订单编号
+     * @param apiName api名称
+     * @param url 路径
+     * @param param 参数
+     * @param result 结果
+     * @return
+     */
+    CallApiLog add(String orderNumber,String apiName,String url,String param,String result);
+
+
+
+    boolean update(CallApiLog callApiLog);
+
+
+    CallApiLog one(String orderNumber,String apiName);
 }

+ 10 - 2
src/main/java/com/usky/dxtop/service/OrderService.java

@@ -43,9 +43,17 @@ public interface OrderService extends IService<Order> {
     String getTopScanPayQr(Order order);
 
     /**
-     * 订单详情api
+     * 查看订单详情api
      * @param orderNumber
      * @return
      */
-    String getTopFindOrderInfoApi(String orderNumber);
+    String callTopFindOrderInfoApi(String orderNumber);
+
+    /**
+     * 调用卡充值api
+     * @param order
+     * @return
+     */
+    String callCardTopApi(Order order);
+
 }

+ 1 - 1
src/main/java/com/usky/dxtop/service/emun/OrderStatus.java

@@ -10,7 +10,7 @@ public enum OrderStatus {
 
     PAYMENT_ERROR_NO_DEBIT(1,"支付失败未扣款"),
 
-    PAYMENT_ERROR_DEBIT(2,"支付失败已扣款,联系管理员充值"),
+    PAYMENT_ERROR_DEBIT(2,"卡充值失败,联系管理员充值"),
 
     SUCCESS(3,"支付成功");
 

+ 31 - 0
src/main/java/com/usky/dxtop/service/impl/CallApiLogServiceImpl.java

@@ -1,12 +1,18 @@
 package com.usky.dxtop.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import com.usky.dxtop.mapper.CallApiLogMapper;
 import com.usky.dxtop.model.CallApiLog;
 import com.usky.dxtop.service.CallApiLogService;
+import com.usky.dxtop.service.api.TopApi;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 调用api记录表 服务实现类
@@ -18,4 +24,29 @@ import org.springframework.stereotype.Service;
 @Service
 public class CallApiLogServiceImpl extends ServiceImpl<CallApiLogMapper, CallApiLog> implements CallApiLogService {
 
+    @Override
+    public CallApiLog add(String orderNumber, String apiName, String url, String param,String result) {
+        CallApiLog callApiLog = new CallApiLog();
+        callApiLog.setApiUrl(url);
+        callApiLog.setApiParam(param);
+        callApiLog.setOrderNumber(orderNumber);
+        callApiLog.setName(apiName);
+        callApiLog.setApiResultData(result);
+        this.save(callApiLog);
+        return callApiLog;
+    }
+
+    @Override
+    public boolean update(CallApiLog callApiLog) {
+        return this.updateById(callApiLog);
+    }
+
+    @Override
+    public CallApiLog one(String orderNumber, String apiName) {
+        LambdaQueryWrapper<CallApiLog> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(CallApiLog::getOrderNumber,orderNumber)
+                .eq(CallApiLog::getName,apiName);
+        List<CallApiLog> list = this.list(queryWrapper);
+        return list.get(0);
+    }
 }

+ 37 - 11
src/main/java/com/usky/dxtop/service/impl/OrderServiceImpl.java

@@ -2,11 +2,14 @@ package com.usky.dxtop.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sun.xml.internal.ws.api.ComponentEx;
 import com.usky.dxtop.common.exception.CustomException;
 import com.usky.dxtop.common.utils.Arith;
 import com.usky.dxtop.common.utils.QRCodeUtil;
+import com.usky.dxtop.common.utils.StringUtils;
 import com.usky.dxtop.common.utils.http.HttpUtils;
 import com.usky.dxtop.common.utils.spring.GlobalUtils;
 import com.usky.dxtop.mapper.OrderMapper;
@@ -37,20 +40,35 @@ import java.util.TreeMap;
 @Service
 public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
 
+    public static final String SCAN_PAY = "扫码支付";
+
+    public static final String FIND_ORDER_INFO = "交易查询";
+
+    public static final String CARD_TOP = "卡充值";
+
     @Autowired
     private CallApiLogService callApiLogService;
 
     @Override
     public boolean add(Order order) {
         order.setOrderFlag(OrderStatus.SUCCESS.getCode());
-        baseMapper.insert(order);
         //调用卡充值api
-        return false;
+        return this.save(order);
     }
 
     @Override
     public List<Order> list(OrderRequest orderRequest) {
-        return null;
+        LambdaQueryWrapper<Order> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper
+                .like(StringUtils.isNotBlank(orderRequest.getUserName()),Order::getUserName,orderRequest.getUserName())
+                .like(StringUtils.isNotBlank(orderRequest.getUserPhone()),Order::getUserPhone,orderRequest.getUserPhone())
+                .eq(null != orderRequest.getPayType(),Order::getPayType,orderRequest.getPayType())
+                .between(null != orderRequest.getStartMoney() && null != orderRequest.getEndMoney(),
+                        Order::getMoney,orderRequest.getStartMoney(),orderRequest.getEndMoney())
+                .between(null != orderRequest.getStartTime() && null != orderRequest.getEndTime(),
+                        Order::getCreateTime,orderRequest.getStartMoney(),orderRequest.getEndTime())
+                .eq(null != orderRequest.getOrderFlag(),Order::getOrderFlag,orderRequest.getOrderFlag());
+        return this.list(queryWrapper);
     }
 
 
@@ -71,12 +89,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 TopApi.joinParam(params),
                 TopApi.signData(params));
         baseMapper.insert(order);
-        CallApiLog callApiLog = new CallApiLog();
-        callApiLog.setApiUrl(TopApi.SCAN_TO_PAY_URL);
-        callApiLog.setApiParam(JSONObject.toJSONString(params));
-        callApiLog.setOrderNumber(order.getOrderNumber());
-        callApiLog.setName("扫码支付");
-        callApiLogService.save(callApiLog);
+        //记录调用日志
+        callApiLogService.add(orderNumber,SCAN_PAY,TopApi.SCAN_TO_PAY_URL,JSONObject.toJSONString(params),null);
         return scanPayUrl;
     }
 
@@ -85,6 +99,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     public String getTopScanPayQr(Order order) {
         String destPath;
         try {
+            //获取url
             String topScanPayApi = getTopScanPayApi(order);
             String codeName = String.format("%s-%s.jpg", "usky", System.currentTimeMillis() + "");
             destPath = String.format("%s%s", GlobalUtils.getTempBaseDir(),codeName);
@@ -97,11 +112,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     }
 
     @Override
-    public String getTopFindOrderInfoApi(String orderNumber) {
+    public String callTopFindOrderInfoApi(String orderNumber) {
         TreeMap<String, String> param = TopApi.generateDealSelectParam(orderNumber, null, null, null);
         String format = String.format("%s&sign=%s", TopApi.joinParam(param),
                 TopApi.signData(param));
-        return HttpUtils.sendGet(TopApi.DEAL_SELECT_URL, format);
+        String result = HttpUtils.sendGet(TopApi.DEAL_SELECT_URL, format);
+        JSONObject obj= JSON.parseObject(result);
+//        obj.get("status")
+        callApiLogService.add(orderNumber,FIND_ORDER_INFO,TopApi.DEAL_SELECT_URL,JSONObject.toJSONString(param),result);
+        //成功调用卡充值api,失败记录状态
+        return obj.toJSONString();
     }
 
+    @Override
+    public String callCardTopApi(Order order) {
+        return "SUCCESS";
+    }
+
+
 }