From a217652d33c75df23202828000d82d0ca8555ac2 Mon Sep 17 00:00:00 2001
From: Administrator <1101184511@qq.com>
Date: 星期一, 21 四月 2025 02:13:59 +0800
Subject: [PATCH] 初步完成积分后台管理相关页面

---
 src/main/java/com/taoke/autopay/utils/order/OrderChannelApiUtil.java |   58 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/taoke/autopay/utils/order/OrderChannelApiUtil.java b/src/main/java/com/taoke/autopay/utils/order/OrderChannelApiUtil.java
index 9266f72..8029da8 100644
--- a/src/main/java/com/taoke/autopay/utils/order/OrderChannelApiUtil.java
+++ b/src/main/java/com/taoke/autopay/utils/order/OrderChannelApiUtil.java
@@ -2,13 +2,20 @@
 
 import com.taoke.autopay.entity.OrderChannelEnum;
 import com.taoke.autopay.utils.HttpUtil;
-import com.taoke.autopay.utils.StringUtil;
+import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * @author hxh
@@ -28,23 +35,48 @@
      * @param: channel
      * @param: orderChannelName
      **/
-    public static boolean isMerchantCanPay(OrderChannelEnum channel, String merchant) throws UnsupportedEncodingException {
-        if (channel == OrderChannelEnum.cyx) {
-            String url = String.format("https://api.youihuo.com/open/free.checkKsCompanyName?bsName=%s&apiKey=%s", URLEncoder.encode(merchant, "UTF-8"), OrderChannelUtil.CYX_API_KEY);
-            String result =  HttpUtil.get(url);
-            logger.info(String.format("瓒呬剑浜晢瀹朵粯娆惧垽鏂細%s-%s", merchant, result));
-            JSONObject root =   JSONObject.fromObject(result);
-            System.out.println(result);
-            if(root.optInt("code") == 1000){
-                return true;
-            }
-        }
+    public static boolean isMerchantCanPay(OrderChannelEnum channel, String merchant, BigDecimal payMoney) throws UnsupportedEncodingException {
+       try {
+           if (channel == OrderChannelEnum.cyx) {
+               String url = String.format("https://api.youihuo.com/open/free.checkKsCompanyName?bsName=%s&apiKey=%s", URLEncoder.encode(merchant, "UTF-8"), OrderChannelUtil.CYX_API_KEY);
+               String result = HttpUtil.get(url);
+               logger.info(String.format("瓒呬剑浜晢瀹朵粯娆惧垽鏂細%s-%s-%s", merchant, result, payMoney != null ? payMoney.setScale(2, RoundingMode.HALF_UP).toString() : null));
+               JSONObject root = JSONObject.fromObject(result);
+               System.out.println(result);
+               if (root.optInt("code") == 1000) {
+                   return true;
+               }
+           } else if (channel == OrderChannelEnum.bps) {
+               String payMoneyStr = payMoney != null ? payMoney.setScale(2, RoundingMode.HALF_UP).toString() :"";
+               String url = String.format("https://api.bpshe.com/mall/douyinOMS/getSubsidyOrderInfo?appKey=cdaef330f1324961a73e15a85ab67fd2&payAccount=%s&amount=%s", URLEncoder.encode(merchant, StandardCharsets.UTF_8.displayName()),  URLEncoder.encode(payMoneyStr, StandardCharsets.UTF_8.displayName()));
+               Map<String, String> headers = new HashMap<>();
+               headers.put("Accept", "application/json;charset=utf-8");
+               String result = HttpUtil.get(url, headers);
+               logger.info(String.format("鐖嗗搧绀惧晢瀹朵粯娆惧垽鏂細%s-%s-%s", merchant, result, payMoneyStr));
+               JSONObject root = JSONObject.fromObject(result);
+               if (root.optInt("errCode") == 0) {
+                   JSONArray array = root.optJSONObject("data").optJSONArray("payAmounts");
+                   if (array != null) {
+                       if (payMoney == null) {
+                           return true;
+                       }
+                       Set<String> moneys = new HashSet<>();
+                       for (int i = 0; i < array.size(); i++) {
+                           moneys.add(array.optString(i));
+                       }
+                       return moneys.contains(payMoney.setScale(2, RoundingMode.HALF_UP).toString());
+                   }
+               }
+           }
+       }catch(Exception e){
+           logger.error("鍟嗗楠岃瘉閿欒锛�", e);
+       }
         return false;
     }
 
     public static void main(String[] args) throws UnsupportedEncodingException {
 
-     System.out.print(   isMerchantCanPay(OrderChannelEnum.cyx,"骞垮窞甯傚ぉ娌冲尯闀垮叴琛楀畨灏旈泤鏈嶉グ鍟嗚1"));
+
     }
 
 

--
Gitblit v1.8.0