浏览代码

优化微信订单相关

lighter 1 年之前
父节点
当前提交
e8200925df

+ 3 - 3
src/main/java/thyyxxk/webserver/dao/his/outpatient/wxapi/WxApiDao.java

@@ -17,7 +17,7 @@ public interface WxApiDao {
             "select *,refundOpName=(select rtrim(name) from a_employee_mi where code=refund_op_code) " +
             "from t_wechat_pay_order where create_datetime>=#{start} and " +
             "create_datetime<=#{end} and patient_id like #{patientId} and patient_name " +
-            "like #{patientName} and order_type like #{orderType} and pay_status in " +
+            "like #{patientName} and order_type like #{orderType} and trade_state in " +
             "<foreach collection='statuses' item='status' separator=',' open='(' close=')'>" +
             "#{status}" +
             "</foreach>" +
@@ -45,9 +45,9 @@ public interface WxApiDao {
     List<WxPayOrder> selectOrdersByTradeNo(@Param("tradeNo") String tradeNo);
 
     @Update("update t_wechat_pay_order set refund_id=#{refundId}, refund_op_code=#{refundOpCode}, his_status=0, " +
-            "refund_op_datetime=#{refundOpDatetime}, refund_reason=#{refundReason}, pay_status=4 where trade_no=#{tradeNo}")
+            "refund_op_datetime=#{refundOpDatetime}, refund_reason=#{refundReason}, trade_state='REFUND' where trade_no=#{tradeNo}")
     void updateRefundId(RefundParam param);
 
-    @Update("update t_wechat_pay_order set pay_status=4, refund_reason=#{msg}, his_status=0 where trade_no=#{tradeNo}")
+    @Update("update t_wechat_pay_order set trade_state='REFUND', refund_reason=#{msg}, his_status=0 where trade_no=#{tradeNo}")
     void alreadyRefund(@Param("tradeNo") String tradeNo, @Param("msg") String msg);
 }

+ 1 - 1
src/main/java/thyyxxk/webserver/entity/outpatient/wxapi/QueryWxOrderParam.java

@@ -27,7 +27,7 @@ public class QueryWxOrderParam {
      * 订单支付状态,0:待支付,1:支付成功,2:支付取消,3:支付失败,4:已退款,-1:全部
      * */
     @NotBlank(message = "订单状态不能为空。")
-    private String payStatus;
+    private String tradeState;
     /**
      * 查询开始时间
      * */

+ 1 - 1
src/main/java/thyyxxk/webserver/entity/outpatient/wxapi/WxPayOrder.java

@@ -50,7 +50,7 @@ public class WxPayOrder {
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     private Date payDatetime;
     // 订单支付状态,99:初值,0:未支付,1:支付成功,2:已关闭,3:支付失败,4:已退款,5:已接收,等待扣款,6:用户支付中,7:退款失败
-    private Integer payStatus;
+    private String tradeState;
     // HIS单号
     private String hisOrdNum;
     // 退款原因

+ 10 - 9
src/main/java/thyyxxk/webserver/service/outpatient/wxapi/WxApiService.java

@@ -163,15 +163,14 @@ public class WxApiService {
         log.info("导出excel: {}", JSON.toJSONString(param));
         IPage<WxPayOrder> iPage = getWxPayOrderPage(param);
         List<WxPayOrder> list = iPage.getRecords();
-        String[] title = {"商品描述","订单类型","订单金额","姓名","门诊号","住院号","住院次数","订单号","流水号"
-                ,"订单创建时间","订单支付时间","订单支付状态","退款原因","退款操作员","退款时间"};
-
+        String[] title = {"商品描述","订单类型","订单金额","姓名","门诊号","住院号","住院次数","订单号",
+                "流水号","订单创建时间","订单支付时间","订单支付状态","退款原因","退款操作员","退款时间"};
         String[][] content = new String[list.size()][];
-        String payStatusName = null;
+        String tradeStateName = null;
         boolean multiple = true;
-        if (!param.getPayStatus().contains(",")) {
+        if (!param.getTradeState().contains(",")) {
             multiple = false;
-            payStatusName = FilterUtil.filterPayStatus(Integer.parseInt(param.getPayStatus()));
+            tradeStateName = FilterUtil.filterTradeState(param.getTradeState());
         }
         for (int i = 0; i < list.size(); i++) {
             content[i] = new String[title.length];
@@ -187,11 +186,13 @@ public class WxApiService {
             content[i][8] = order.getSerialNo();
             content[i][9] = DateUtil.formatDatetime(order.getCreateDatetime());
             content[i][10] = DateUtil.formatDatetime(order.getPayDatetime());
-            content[i][11] = multiple ? FilterUtil.filterPayStatus(order.getPayStatus()) : payStatusName;
+            content[i][11] = multiple ? FilterUtil.filterTradeState(order.getTradeState()) :
+                    tradeStateName;
             content[i][12] = order.getRefundReason();
             content[i][13] = order.getRefundOpName();
             content[i][14] = DateUtil.formatDatetime(order.getRefundOpDatetime());
         }
+        log.info("{}\n{}", title, content);
         ExcelUtil.exportExcel(response, title, content);
     }
 
@@ -202,10 +203,10 @@ public class WxApiService {
         String orderType = param.getOrderType() == -1 ? "%%" : "%" + param.getOrderType() + "%";
         String start = param.getStart() + " 00:00:00";
         String end = param.getEnd() + " 23:59:59";
-        if ("-1".equals(param.getPayStatus())) {
+        if ("ALL".equals(param.getTradeState())) {
             return dao.selectOrdersWithoutStatus(iPage, patientId, patientName, orderType, start, end);
         }
-        String[] statuses = param.getPayStatus().split(",");
+        String[] statuses = param.getTradeState().split(",");
         return dao.selectOrdersByConditions(iPage, patientId, patientName, orderType, statuses, start, end);
     }
 

+ 8 - 10
src/main/java/thyyxxk/webserver/utils/FilterUtil.java

@@ -231,26 +231,24 @@ public class FilterUtil {
         }
     }
 
-    public static String filterPayStatus(Integer status) {
+    public static String filterTradeState(String status) {
         // 订单支付状态,99:初值,0:未支付,1:支付成功,2:已关闭,3:支付失败,4:已退款,5:已接收,等待扣款,6:用户支付中,7:退款失败
         if (null == status) {
             return "";
         }
         switch (status) {
-            case 99:
-                return "初值";
-            case 0:
+            case "NOTPAY":
                 return "未支付";
-            case 1:
+            case "SUCCESS":
                 return "支付成功";
-            case 2:
+            case "CLOSED":
                 return "已关闭";
-            case 3:
+            case "PAYERROR":
                 return "支付失败";
-            case 4:
+            case "REFUND":
                 return "已退款";
-            case 7:
-                return "退款失败";
+            case "REVOKED":
+                return "已撤销";
             default:
                 return "未知状态";
         }

+ 2 - 0
src/main/java/thyyxxk/webserver/utils/WxCertUtil.java

@@ -14,6 +14,8 @@ public class WxCertUtil {
     public static final String MERCHANT_ID = "1574204121";
     public static final String MERCHANT_KEY = "lilaiwflzIOLJI2320JLZL2Llisd02ak";
     public static final String CERT_PATH = "/home/zwxcert/apiclient_cert.p12";
+//    public static final String CERT_PATH = "D:\\a.snapshot\\zwxcert\\apiclient_cert.p12";
+
     public static byte[] CERTDATA;
     static {
         try {