周箭河 4 rokov pred
rodič
commit
18fb8d6530

BIN
mec-thirdparty/libs/adapay-core-sdk-1.1.1.jar


BIN
mec-thirdparty/libs/adapay-core-sdk-1.1.3.jar


BIN
mec-thirdparty/libs/adapay-java-sdk-1.1.1.jar


BIN
mec-thirdparty/libs/adapay-java-sdk-1.1.3.jar


+ 4 - 4
mec-thirdparty/pom.xml

@@ -69,17 +69,17 @@
 		<dependency>
 			<groupId>adapay</groupId>
 			<artifactId>adapay-java-sdk</artifactId>
-			<version>1.1.1</version>
+			<version>1.1.3</version>
 			<scope>system</scope>
-			<systemPath>${project.basedir}/libs/adapay-java-sdk-1.1.1.jar
+			<systemPath>${project.basedir}/libs/adapay-java-sdk-1.1.3.jar
 			</systemPath>
 		</dependency>
 		<dependency>
 			<groupId>adapay.core</groupId>
 			<artifactId>adapay-core-sdk</artifactId>
-			<version>1.1.1</version>
+			<version>1.1.3</version>
 			<scope>system</scope>
-			<systemPath>${project.basedir}/libs/adapay-core-sdk-1.1.1.jar
+			<systemPath>${project.basedir}/libs/adapay-core-sdk-1.1.3.jar
 			</systemPath>
 		</dependency>
 		<dependency>

+ 22 - 80
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/Payment.java

@@ -9,75 +9,6 @@ import com.huifu.adapay.core.exception.BaseAdaPayException;
 import org.springframework.util.DigestUtils;
 
 public class Payment extends ConfigInit {
-
-
-    /**
-     * 运行支付类接口
-     *
-     * @return paymentId
-     * @throws Exception 异常
-     */
-    public static String executePaymentTest(String merchantKey) throws Exception {
-        //支付接口
-        Map<String, Object> paymentParams = new HashMap<>(10);
-        paymentParams.put("order_no", "jsdk_payment_" + System.currentTimeMillis());
-        paymentParams.put("pay_channel", "alipay_wap");
-        paymentParams.put("pay_amt", "0.01");
-
-        paymentParams.put("goods_title", "your goods title");
-        paymentParams.put("goods_desc", "your goods desc");
-        paymentParams.put("notify_url", "https://wxwechat.utools.club/studentOrder/adaNotify");
-
-
-        paymentParams.put("div_members", "");
-
-        Map<String, Object> deviceInfo = new HashMap<>(2);
-
-        deviceInfo.put("device_ip", "127.0.0.1");
-        deviceInfo.put("device_mac", "交易设备 MAC");
-        deviceInfo.put("device_type", "1");
-        deviceInfo.put("device_imei", "交易设备 IMEI");
-        deviceInfo.put("device_imsi", "交易设备 IMSI");
-        deviceInfo.put("device_iccId", "ICCID");
-        deviceInfo.put("device_wifi_mac", "WIFIMAC");
-
-        paymentParams.put("device_info", deviceInfo);
-
-//        Map<String, Object> goodsDetail = new HashMap<>();
-//
-//        goodsDetail.put("goods_id", "gooods_id_100002");
-//        goodsDetail.put("goods_name", "商品名称");
-//        goodsDetail.put("quantity", "1");
-//        goodsDetail.put("price", "100");
-//        goodsDetail.put("goods_category", "商品类目");
-//        goodsDetail.put("goods_body", "商品描述信息");
-//        goodsDetail.put("show_url", "商品的展示地址");
-//
-//        Map<String, Object> promotionDetail = new HashMap<>();
-//
-//        promotionDetail.put("cost_price", "100");
-//        promotionDetail.put("receipt_id", "商家小票 id");
-//        promotionDetail.put("goods_detail", goodsDetail);
-
-        Map<String, Object> expendParams = new HashMap<>(2);
-        String openId = "";//微信授权获取
-        expendParams.put("open_id", openId);
-        expendParams.put("is_raw", "1");
-        expendParams.put("callback_url", "绝对路径");
-        expendParams.put("limit_pay", "1");
-
-       // expendParams.put("promotion_detail", promotionDetail);
-        paymentParams.put("expend", expendParams);
-        Map<String, Object> payment = executePayment(paymentParams);
-        System.out.println("钱包支付地址:" + payment.get("pay_url"));
-        //支付查询接口
-       // queryPayment((String) payment.get("id"));
-        // //关单接口
-       // closePayment((String) payment.get("id"));
-
-        return (String) payment.get("id");
-    }
-
     /**
      * 执行一个支付交易
      *
@@ -89,18 +20,12 @@ public class Payment extends ConfigInit {
 
         //调用sdk方法,创建支付,得到支付对象
         Map<String, Object> payment = new HashMap<>();
-        try {
-            payment = com.huifu.adapay.model.Payment.create(paymentParams);
-        } catch (BaseAdaPayException e) {
-            e.printStackTrace();
-        }
+        payment = com.huifu.adapay.model.Payment.create(paymentParams);
 
-        String error_code = (String) payment.get("error_code");
-        if (null != error_code) {
-            System.out.println("创建支付返回参数:" + JSON.toJSONString(payment));
-
-            String error_msg = (String) payment.get("error_msg");
-            System.out.println("error_code:" + error_code + "............." + error_msg);
+        String errorCode = (String) payment.get("error_code");
+        if (null != errorCode) {
+            String errorMsg = (String) payment.get("error_msg");
+            throw new BaseAdaPayException(errorMsg);
         }
 
         return payment;
@@ -174,6 +99,23 @@ public class Payment extends ConfigInit {
     }
 
 
+    public static Map<String, Object> queryList(Integer pageIndex, Long createdGte, Long createdLte) throws Exception {
+        Map<java.lang.String, java.lang.Object> paymentParams = new HashMap<>();
+        paymentParams.put("app_id", ConfigInit.appId);
+        paymentParams.put("page_index", pageIndex);
+        paymentParams.put("page_size", "20");
+        paymentParams.put("created_gte", createdGte);
+        paymentParams.put("created_lte", createdLte);
+        Map<String, Object> payment = com.huifu.adapay.model.Payment.queryList(paymentParams);
+        String error_code = (String) payment.get("error_code");
+        if (null != error_code) {
+            String errorMsg = (String) payment.get("error_msg");
+            throw new BaseAdaPayException(errorMsg);
+        }
+        return payment;
+    }
+
+
     public static Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, String sellerNo, List<Map<String, Object>> tempRoutingList) throws Exception {
         Map<String, Object> paymentParams = new LinkedHashMap<>();
         paymentParams.put("appId", appId);

+ 11 - 0
mec-util/src/main/java/com/ym/mec/util/date/DateUtil.java

@@ -1211,6 +1211,17 @@ public class DateUtil {
 		return tomorrowzeroSeconds;
 	}
 
+	public static String timeStamp2Date(String seconds,String format) {
+		if(seconds == null || seconds.isEmpty() || seconds.equals("null")){
+			return "";
+		}
+		if(format == null || format.isEmpty()){
+			format = "yyyy-MM-dd HH:mm:ss";
+		}
+		SimpleDateFormat sdf = new SimpleDateFormat(format);
+		return sdf.format(new Date(Long.valueOf(seconds+"000")));
+	}
+
 	public static void main(String[] args) throws ParseException {
 		// DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 		DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

+ 96 - 14
mec-web/src/main/java/com/ym/mec/web/controller/AdapayController.java

@@ -1,31 +1,27 @@
 package com.ym.mec.web.controller;
 
+import com.alibaba.fastjson.JSONArray;
 import com.ym.mec.biz.dal.dto.HfMemberDto;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.thirdparty.adapay.ConfigInit;
 import com.ym.mec.thirdparty.adapay.CorpMember;
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.util.upload.UploadUtil;
+import com.ym.mec.thirdparty.adapay.Payment;
+import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.excel.POIUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.core.io.Resource;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.util.*;
 
 @RequestMapping("adapay")
 @Api(tags = "汇付服务")
@@ -81,5 +77,91 @@ public class AdapayController extends BaseController {
         return succeed(new CorpMember().executeQueryMember(memberId));
     }
 
+    @ApiOperation("查询企业用户信息")
+    @GetMapping(value = "exportBill")
+    @PreAuthorize("@pcs.hasPermissions('adapay/exportBill')")
+    public HttpResponseResult exportBill(Date startTime, Date endTime, HttpServletResponse response) throws Exception {
+
+        long createdGte = startTime.getTime();
+        long createdLte = DateUtil.getLastSecondWithDay(endTime).getTime();
+        int pageIndex = 1;
+        List<Map<String, Object>> data = new ArrayList<>();
+        while (true) {
+            Map<String, Object> paymentList = Payment.queryList(pageIndex, createdGte, createdLte);
+            JSONArray payments = (JSONArray) paymentList.get("payments");
+            if (!paymentList.get("status").equals("succeeded")) {
+                throw new BizException("查询失败,请重试");
+            }
+
+            if (payments != null && payments.size() > 0) {
+                for (Object payment : payments) {
+                    Map<String, Object> paymentMap = (Map<String, Object>) payment;
+                    paymentMap.put("created_time", DateUtil.timeStamp2Date(paymentMap.get("created_time").toString(), null));
+                    if (paymentMap.get("pay_channel").equals("alipay_qr")) {
+                        paymentMap.put("pay_channel", "支付宝正扫");
+                    } else if (paymentMap.get("pay_channel").equals("alipay_wap")) {
+                        paymentMap.put("pay_channel", "支付宝H5支付");
+                    } else {
+                        paymentMap.put("pay_channel", "微信公众号支付");
+                    }
+
+                    if (paymentMap.get("status").equals("pending")) {
+                        paymentMap.put("status", "交易处理中");
+                    } else if (paymentMap.get("status").equals("succeeded")) {
+                        paymentMap.put("status", "交易成功");
+                    } else {
+                        paymentMap.put("status", "交易失败");
+                    }
+                    JSONArray divMembers = (JSONArray) paymentMap.get("div_members");
+                    for (Object divMember : divMembers) {
+                        Map<String, Object> divMemberMap = (Map<String, Object>) divMember;
+                        paymentMap.put("member_id", divMemberMap.get("member_id"));
+                        if (divMemberMap.get("member_id").equals("0")) {
+                            paymentMap.put("member_id", ConfigInit.merNo);
+                        }
+                        paymentMap.put("fee_amount", 0);
+                        if (divMemberMap.get("fee_flag").equals("Y")) {
+                            paymentMap.put("fee_amount", paymentMap.get("fee_amt"));
+                        }
+                        paymentMap.put("route_amount", divMemberMap.get("amount"));
+                        paymentMap.put("fee_flag", divMemberMap.get("fee_flag"));
+                        data.add(paymentMap);
+                    }
+
+                }
+            }
+            if (paymentList.get("has_more").equals(false)) {
+                break;
+            }
+            pageIndex++;
+        }
+
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            String[] header = {"支付流水号", "订单号", "支付渠道", "交易金额", "商户号", "分润金额", "是否承担手续费", "手续费", "交易时间","交易状态"};
+            String[] body = {"id", "order_no", "pay_channel", "pay_amt", "member_id", "route_amount", "fee_flag", "fee_amount", "created_time","status"};
+
+            HSSFWorkbook workbook = POIUtil.exportExcel(header, body, data);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attachment;filename=bill-" + DateUtil.getDate(new Date()) + ".xls");
+            response.flushBuffer();
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+//        return succeed(new CorpMember().executeQueryMember(memberId));
+        return null;
+    }
+
 
 }