Kaynağa Gözat

add 汇付相关接口

周箭河 4 yıl önce
ebeveyn
işleme
7e45118067
26 değiştirilmiş dosya ile 1046 ekleme ve 1226 silme
  1. BIN
      edu-thirdparty/libs/adapay-core-sdk-1.1.1.jar
  2. BIN
      edu-thirdparty/libs/adapay-core-sdk-1.1.3.jar
  3. BIN
      edu-thirdparty/libs/adapay-java-sdk-1.0.2.jar
  4. BIN
      edu-thirdparty/libs/adapay-java-sdk-1.1.1.jar
  5. BIN
      edu-thirdparty/libs/adapay-java-sdk-1.1.3.jar
  6. 4 4
      edu-thirdparty/pom.xml
  7. 0 88
      edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/Bill.java
  8. 0 8
      edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/ConfigInit.java
  9. 13 115
      edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/CorpMember.java
  10. 68 80
      edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/MainDemo.java
  11. 0 244
      edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/Member.java
  12. 28 88
      edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/Payment.java
  13. 0 153
      edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/Refund.java
  14. 19 423
      edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/SettleAccount.java
  15. 16 0
      edu-user/edu-student-server/src/main/java/com/keao/edu/StudentServerApplication.java
  16. 23 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/HfMemberDao.java
  17. 249 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/entity/HfMember.java
  18. 36 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/page/HfMemberQueryInfo.java
  19. 17 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/HfMemberService.java
  20. 59 16
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/NotifyCallback.java
  21. 140 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/HfMemberSserviceImpl.java
  22. 2 1
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/PayServiceImpl.java
  23. 164 0
      edu-user/edu-user-biz/src/main/resources/config/mybatis/HfMemberMapper.xml
  24. 1 6
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/UserServerApplication.java
  25. 195 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/AdapayController.java
  26. 12 0
      edu-util/src/main/java/com/keao/edu/util/date/DateUtil.java

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


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


BIN
edu-thirdparty/libs/adapay-java-sdk-1.0.2.jar


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


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


+ 4 - 4
edu-thirdparty/pom.xml

@@ -80,17 +80,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>

+ 0 - 88
edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/Bill.java

@@ -1,88 +0,0 @@
-package com.keao.edu.thirdparty.adapay;
-
-import com.alibaba.fastjson.JSON;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author yingyong.wang
- */
-public class Bill extends ConfigInit {
-
-    /**
-     * 运行账单下载接口
-     * @throws Exception 异常
-     */
-    public static void executeBillTest(String merchantKey) throws Exception{
-        Bill demo = new Bill();
-        
-        Map<String, Object> download = demo.executeBillDownLoad(merchantKey);
-       
-    }
-
-    /**
-     * 运行账单下载接口
-     * @throws Exception 异常
-     */
-    public static void executeBillTest() throws Exception{
-        Bill demo = new Bill();
-        
-        Map<String, Object> download = demo.executeBillDownLoad();
-       
-    }
-
-    /**
-     * 执行一个下载对账文件操作
-     * @return 下载链接
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeBillDownLoad(String merchantKey) throws Exception {
-        System.out.println("=======execute download begin=======");
-
-        Map<String, Object> downloadParam = new  HashMap<String, Object>(2);
-        downloadParam.put("bill_date", "20190912");
-        Map<String, Object> download = com.huifu.adapay.model.Bill.download(downloadParam, merchantKey);
-        
-        String errorCode = (String)download.get("error_code");
-        
-        if(null != errorCode){
-
-            System.out.println("对账单下载,请求参数:" + JSON.toJSONString(downloadParam));
-            System.out.println("对账单下载,返回参数:" + JSON.toJSONString(download));
-
-        }else{
-            System.out.println("对账单下载,成功");
-        }
-        
-
-        return download;
-    }
-
-    /**
-     * 执行一个下载对账文件操作
-     * @return 下载链接
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeBillDownLoad() throws Exception {
-        
-
-        Map<String, Object> downloadParam = new  HashMap<String, Object>(2);
-        downloadParam.put("bill_date", "20190912");
-        
-        Map<String, Object> download = com.huifu.adapay.model.Bill.download(downloadParam);
-        
-        String errorCode = (String)download.get("error_code");
-        
-        if(null != errorCode){
-
-            System.out.println("对账单下载,请求参数:" + JSON.toJSONString(downloadParam));
-            System.out.println("对账单下载,返回参数:" + JSON.toJSONString(download));
-
-        }else{
-            System.out.println("对账单下载,成功");
-        }
-        return download;
-    }
-    
-}

+ 0 - 8
edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/ConfigInit.java

@@ -31,14 +31,6 @@ public class ConfigInit {
         } else {
             return instance;
         }
-
-        Adapay.debug = true;
-
-        /**
-         * prodMode 模式,默认为生产模式,false可以使用mock模式
-         */
-        Adapay.prodMode = true;
-
         /**
          *添加商户配置,一个商户只需要 添加一次,添加以后在内存中。
          */

+ 13 - 115
edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/CorpMember.java

@@ -1,72 +1,15 @@
 package com.keao.edu.thirdparty.adapay;
 
-import com.alibaba.fastjson.JSON;
+import com.huifu.adapay.core.exception.BaseAdaPayException;
 
 import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
 
 /**
- * @author yingyong.wang
+ * @author
  */
-class CorpMember extends ConfigInit {
-
-    /**
-     * 运行 CorpMember 类接口
-     *
-     * @throws Exception 异常
-     */
-    public static void executeCorpMemberTest(String merchantKey, String app_id) throws Exception {
-        CorpMember demo = new CorpMember();
-        Map<String, Object> member = demo.executeCreateMember(merchantKey, app_id);
-        demo.executeQueryMember(merchantKey, (String) member.get("member_id"), app_id);
-
-    }
-
-
-    /**
-     * 创建 CorpMember
-     *
-     * @return 创建的CorpMember 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeCreateMember(String merchantKey, String app_id) throws Exception {
-        System.out.println("=======execute Create CorpMember begin=======");
-        Map<String, Object> memberParams = new HashMap<String, Object>(2);
-        memberParams.put("member_id", "jsdk_member_" + System.currentTimeMillis());
-        memberParams.put("app_id", app_id);
-        memberParams.put("order_no", "jsdk_order_" + System.currentTimeMillis());
-        memberParams.put("social_credit_code_expires", "1111");
-        memberParams.put("business_scope", "123");
-
-        memberParams.put("name", "中国测试有限公司");
-        memberParams.put("prov_code", "0011");
-        memberParams.put("area_code", "1100");
-        memberParams.put("social_credit_code", "201932658452655");
-        memberParams.put("legal_person", "张测试");
-        memberParams.put("legal_cert_id", "321485199014234852");
-        memberParams.put("legal_cert_id_expires", "20220112");
-        memberParams.put("legal_mp", "13958465215");
-        memberParams.put("address", "中国上海");
-        memberParams.put("zip_code", "225485");
-        memberParams.put("telphone", "41164452");
-        memberParams.put("email", "ceshi@qq.com");
-        memberParams.put("bank_code", "652142");
-        memberParams.put("bank_acct_type", "1");
-        memberParams.put("card_no", "622546895642156");
-        memberParams.put("card_name", "中国测试有限公司");
-        File file = new File("/Users/will/Project/Adapay/AdapayJava/AdapayDemo/src/main/java/com/huifu/adapay/demo/归档.zip");
-        
-        System.out.println("创建企业用户,请求参数:" + JSON.toJSONString(memberParams) );
-        Map<String, Object> member = com.huifu.adapay.model.CorpMember.create(memberParams, file, merchantKey);
-        System.out.println("创建企业用户,返回参数:" + JSON.toJSONString(member) );
-
-
-        System.out.println("=======execute Create CorpMember end=======");
-
-        return member;
-
-    }
+public class CorpMember {
 
     /**
      * 查询 CorpMember
@@ -75,75 +18,30 @@ class CorpMember extends ConfigInit {
      * @return 查询的 CorpMember 对象
      * @throws Exception 异常
      */
-    public Map<String, Object> executeQueryMember(String merchantKey, String member_id,String app_id) throws Exception {
-        System.out.println("=======execute query CorpMember begin=======");
+    public static Map<String, Object> executeQueryMember(String member_id) throws Exception {
         Map<String, Object> memberParams = new HashMap<String, Object>(2);
         memberParams.put("member_id", member_id);
-        memberParams.put("app_id", app_id);
-        System.out.println("查询企业用户,请求参数:"+ JSON.toJSONString(memberParams));
-        Map<String, Object> member = com.huifu.adapay.model.CorpMember.query(memberParams, merchantKey);
-        System.out.println("查询企业用户,返回参数:"+ JSON.toJSONString(member));
-
-        System.out.println("=======execute query CorpMember end=======");
-
-        return member;
+        memberParams.put("app_id", ConfigInit.appId);
+        return com.huifu.adapay.model.CorpMember.query(memberParams);
     }
 
     /**
-     * 运行 CorpMember 类接口
-     *
-     * @throws Exception 异常
-     */
-    public static void executeCorpMemberTest( String app_id) throws Exception {
-        CorpMember demo = new CorpMember();
-        //Map<String, Object> member = demo.executeCreateMember();
-        //demo.executeQueryMember( (String) member.get("member_id"), app_id);
-
-    }
-
-
-    /**
      * 创建 CorpMember
      *
      * @return 创建的CorpMember 对象
      * @throws Exception 异常
      */
-    public Map<String, Object> executeCreateMember( Map<String,Object> info,String path) throws Exception {
-        System.out.println("=======execute Create CorpMember begin=======");
+    public static Map<String, Object> executeCreateMember(Map<String, Object> info, File file) throws Exception {
         Map<String, Object> memberParams = new HashMap<String, Object>();
-        memberParams.put("app_id", appId);
+        memberParams.put("app_id", ConfigInit.appId);
         memberParams.putAll(info);
 
-        File file = new File(path);
-        System.out.println("创建企业用户,请求参数:" + JSON.toJSONString(memberParams) );
         Map<String, Object> member = com.huifu.adapay.model.CorpMember.create(memberParams, file);
-        System.out.println("创建企业用户,返回参数:" + JSON.toJSONString(member) );
-
-
-        System.out.println("=======execute Create CorpMember end=======");
-
-        return member;
-
-    }
-
-    /**
-     * 查询 CorpMember
-     *
-     * @param member_id 待查询的member_id
-     * @return 查询的 CorpMember 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeQueryMember( String member_id) throws Exception {
-        System.out.println("=======execute query CorpMember begin=======");
-        Map<String, Object> memberParams = new HashMap<String, Object>(2);
-        memberParams.put("member_id", member_id);
-        memberParams.put("app_id", appId);
-        System.out.println("查询企业用户,请求参数1:"+ JSON.toJSONString(memberParams));
-        Map<String, Object> member = com.huifu.adapay.model.CorpMember.query(memberParams);
-        System.out.println("查询企业用户,返回参数:"+ JSON.toJSONString(member));
-
-        System.out.println("=======execute query CorpMember end=======");
-
+        String error_code = (String) member.get("error_code");
+        if (null != error_code) {
+            String errorMsg = (String) member.get("error_msg");
+            throw new BaseAdaPayException(errorMsg);
+        }
         return member;
     }
 

+ 68 - 80
edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/MainDemo.java

@@ -1,5 +1,10 @@
 package com.keao.edu.thirdparty.adapay;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.huifu.adapay.model.MerConfig;
+import com.timevale.tgpdfsign.config.SystemConfig;
+
 import java.util.HashMap;
 import java.util.Map;
 
@@ -17,89 +22,72 @@ public class MainDemo {
 
 
     public static void testMerchant() throws Exception {
-
-//        HashMap<String, Object> memberParams = new HashMap<>();
-//        memberParams.put("order_no", "corp_mem_" + System.currentTimeMillis());
-//        //memberParams.put("telphone", "41164452");
-//        // memberParams.put("email", "ceshi@qq.com");
+        MerConfig merConfig = ConfigInit.merConfig;
+        HashMap<String, Object> memberParams = new HashMap<>();
 //
+//        memberParams.put("order_no", "corp_mem_" + System.currentTimeMillis());
+//        memberParams.put("member_id",                   "H004201");
+//        memberParams.put("name",                        "成都大雅乐盟教育咨询有限公司");
+//        memberParams.put("prov_code",                   "0051");
+//        memberParams.put("area_code",                   "5101");
+//        memberParams.put("social_credit_code",          "91510107MA6DHBU701");
+//        memberParams.put("social_credit_code_expires",  "20991231");
+//        memberParams.put("business_scope",              "教育咨询;策划文体艺术交流活动;销售:乐器及配件、道具、服装、工艺美术品、五金交电;乐器租赁;计算机软硬件、网络技术的技术开发、技术转让、技术咨询;市场营销策划。(依法须经批准的项目,经相关部门批准后方可开展经营活动)。");
+//        memberParams.put("legal_person",                "段梦黎");
+//        memberParams.put("legal_cert_id",               "420303198908302528");
+//        memberParams.put("legal_cert_id_expires",       "20360721");
+//        memberParams.put("legal_mp",                    "19983343013");
+//        memberParams.put("address",                     "成都市武侯区科华北路65号世外桃源广场27楼0462号 ");
+//        memberParams.put("zip_code",                    "610041");
+//        memberParams.put("bank_code",                   "03080000");
+//        memberParams.put("bank_acct_type",              "1");
+//        memberParams.put("card_no",                     "128908405310201");
+//        memberParams.put("card_name",                   "成都大雅乐盟教育咨询有限公司");
+////
+//        String path= "C:/Users/river/Desktop/imgzip/成都大雅乐盟教育咨询有限公司.zip";
+//        CorpMember.executeCreateMember(memberParams,path);
+//        CorpMember.executeQueryMember("H004201");
+
+
+
+//        CorpMember.executeQueryMember("H004200");
+//        CorpMember.executeQueryMember("H004201");
+//        CorpMember.executeQueryMember("H004202");
+        Map<String, Object> objectMap = CorpMember.executeQueryMember("H004203");
+//        CorpMember.executeQueryMember("H004215");
+//        CorpMember.executeQueryMember("H004205");
+//        CorpMember.executeQueryMember("H004206");
+//        CorpMember.executeQueryMember("H004207");
+//        CorpMember.executeQueryMember("H004208");
+//        CorpMember.executeQueryMember("H004209");
+//        CorpMember.executeQueryMember("H004210");
+//        CorpMember.executeQueryMember("H004211");
+//        CorpMember.executeQueryMember("H004212");
+//        CorpMember.executeQueryMember("H004213");
+//        CorpMember.executeQueryMember("H004214");
+//        CorpMember.executeQueryMember("H004215");
+//        CorpMember.executeQueryMember("H004216");
+//        CorpMember.executeQueryMember("H004217");
+
+        //Payment.closePayment("002112020062916385810123596334143411956");
+        //Map<String, Object> payment = Payment.queryPayment("142111020062914502410123569011751485440");12
+        // 运行支付类接4
+        //String pament4d = Payment.executePaymentTest("default");
+
+        //删除结算账户
+//        SettleAccount.executeDeleteSettleAccount("0122458307375424","H004203");
 //
-//        memberParams.put("member_id",                  "H004209");
-//        memberParams.put("name",                       "苏州乐谷文化传播有限公司");
-//        memberParams.put("prov_code",                  "0032");
-//        memberParams.put("area_code",                  "3206");
-//        memberParams.put("social_credit_code",         "91320508314158601J");
-//        memberParams.put("social_credit_code_expires", "20991231");
-//        memberParams.put("business_scope",             "文化交流活动策划、乐器培训、声乐培训、乐器批发兼零售及售后服务、面向中小学生开展的艺术培训");
-//        memberParams.put("legal_person",               "蔡明哲");
-//        memberParams.put("legal_cert_id",              "230204198110311914");
-//        memberParams.put("legal_cert_id_expires",      "20350714");
-//        memberParams.put("legal_mp",                   "18611812776");
-//        memberParams.put("address",                    "江苏省苏州市干将西路515号702室");
-//        memberParams.put("zip_code",                   "215002");
-//        memberParams.put("bank_code",                  "3080000");
-//        memberParams.put("bank_acct_type",             "1");
-//        memberParams.put("card_name",                  "苏州乐谷文化传播有限公司");
-//        memberParams.put("card_no",                    "512907602210601");
+//        Map<String, Object> accountInfo = new HashMap<String, Object>();
+//        accountInfo.put("card_id", "8110901012701188049");
+//        accountInfo.put("card_name", "中山市大雅乐盟文化艺术传播有限公司");
+//        accountInfo.put("tel_no", "18620285577");
+//        accountInfo.put("bank_code", "03020000");
+//        accountInfo.put("bank_acct_type", "1");
+//        accountInfo.put("prov_code", "0044");
+//        accountInfo.put("area_code", "4419");
 //
-//        String path= "C:/Users/river/Desktop/imgzip/苏州乐谷文化传播有限公司.zip";
-//        new CorpMember().executeCreateMember(memberParams,path);
-
-        new CorpMember().executeQueryMember("H004209");
-
-
-        //Payment.closePayment("002112020062916385810123596334923411456");
-        //Map<String, Object> payment = Payment.queryPayment("002112020062914502410123569011751485440");
-
-
-        // 运行支付类接口
-        //String pamentId = Payment.executePaymentTest("default");
+//        //创建结算账户
+//        SettleAccount.executeCreateSettleAccount("H004203",accountInfo);
 
     }
-
-
-    public static void testMultiMerchant() throws Exception {
-
-        // //运行支付类接口
-        String pamentId = Payment.executePaymentTest("yifuyun");
-
-        // //运行退款类接口
-        // RefundDemo.executeRefundTest("yifuyun", "002112019101420422510029799145265012736");
-        // /**
-        //  * 分账使用配套接口 begin
-        //  */
-        // /**用户类接口*/
-         Map<String, Object> member = Member.executeMemberTest("app_7d87c043-aae3-4357-9b2c-269349a980d6");
-        // String memberId = (String) member.get("member_id");
-        // /** 结算户绑定*/
-        // SettleAccountDemo.executeSettleAccountTest("yidian", "app_67ba475b-26e0-4cfa-847c-0f115cae5029", memberId);
-        // /**企业开户*/
-        CorpMember.executeCorpMemberTest("yifuyun", "app_67ba475b-26e0-4cfa-847c-0f115cae5029");
-        // /**
-        //  * 分账使用配套接口 end
-        //  */
-        // //对账单下载
-        // BillDemo.executeBillTest("yifuyun");
-        // String appId = "app_67ba475b-26e0-4cfa-847c-0f115cae5029";
-
-        // /**
-        //  * 获取云闪付用户号
-        //  */
-        // AdapayToolsDemo.executeToolsTest(appId, "yifuyun");
-        // /**
-        //  * 余额查询
-        //  */
-        // SettleAccountDemo.executeQueryBalance("yifuyun", appId, "member_id", "settleCount_id");
-        // /**
-        //  *用户取现
-        //  */
-        // SettleAccountDemo.executeDrawCash("yifuyun", appId, "member_id");
-        // /**
-        //  * 钱包登录申请
-        //  */
-        // AdapayToolsDemo.executeLoginTest(appId,"yifuyun");
-
-    }
-
-
 }

+ 0 - 244
edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/Member.java

@@ -1,244 +0,0 @@
-package com.keao.edu.thirdparty.adapay;
-
-import com.alibaba.fastjson.JSON;
-
-import java.util.HashMap;
-import java.util.Map;
-
-
-/**
- * @author yingyong.wang
- */
-public class Member extends ConfigInit {
-
-
-    /**
-     * 运行 member 类接口
-     * @throws Exception 异常
-     */
-    public static Map<String, Object> executeMemberTest(String merchantKey, String app_id) throws Exception{
-        Member demo = new Member();
-        Map<String, Object> member = demo.executeCreateMember(merchantKey, app_id);
-        demo.executeQueryMember(merchantKey, (String)member.get("member_id"),app_id);
-        demo.executeUpdateMember(merchantKey, (String)member.get("member_id"),app_id);
-        demo.executeQueryMember(merchantKey, (String)member.get("member_id"),app_id);
-        demo.executeListMember(merchantKey, app_id);
-        return member;
-    }
-
-
-    /**
-     * 创建 member
-     * @return 创建的member 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeCreateMember(String merchantKey, String app_id) throws Exception {
-        System.out.println("=======execute CreateMember begin=======");
-        Map<String, Object> memberParams = new  HashMap<String, Object>(2);
-        memberParams.put("member_id", "jsdk_member_"+System.currentTimeMillis());
-        memberParams.put("app_id",app_id);
-        memberParams.put("location", "上海市徐汇区宜山路");
-        memberParams.put("email", "123@163.com");
-        memberParams.put("gender", "MALE");
-        memberParams.put("tel_no", "13153333333");
-        memberParams.put("nickname", "nick_name");
-        System.out.println("创建用户,请求参数:" + JSON.toJSONString(memberParams));
-        Map<String, Object> member = com.huifu.adapay.model.Member.create(memberParams, merchantKey);
-        System.out.println("创建用户,返回参数:" + JSON.toJSONString(member));
-        System.out.println("=======execute CreateMember end=======");
-        
-        return member;
-    
-    }
-
-    /**
-     * 查询 member
-     * @param member_id 待查询的member_id
-     * @return 创建的member 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeQueryMember(String merchantKey, String member_id,String app_id) throws Exception {
-        System.out.println("=======execute queryMember begin=======");
-        Map<String, Object> memberParams = new  HashMap<String, Object>(2);
-        memberParams.put("member_id", member_id);
-        memberParams.put("app_id", app_id);
-        System.out.println("查询用户,请求参数:" + JSON.toJSONString(memberParams));
-        Map<String, Object> member = com.huifu.adapay.model.Member.query(memberParams, merchantKey);
-        System.out.println("查询用户,返回参数:" + JSON.toJSONString(member));
-
-
-        System.out.println("=======execute queryMember end=======");
-        
-        return member;
-    
-    }
-
-
-    /**
-     * 更新 member
-     * @param member_id 待更新的member_id
-     * @return 更新的member 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeUpdateMember(String merchantKey, String member_id,String app_id) throws Exception {
-        System.out.println("=======execute update Member begin=======");
-        Map<String, Object> memberParams = new  HashMap<String, Object>(2);
-        memberParams.put("member_id", member_id);
-        memberParams.put("app_id", app_id);
-        memberParams.put("location", "上海市徐汇区宜山路1");
-        memberParams.put("email", "1234@163.com");
-        memberParams.put("gender", "MALE");
-        memberParams.put("tel_no", "13153333333");
-        memberParams.put("nickname", "nick_name2");
-
-        System.out.println("更新用户,请求参数:"+ JSON.toJSONString(memberParams));
-        Map<String, Object> member = com.huifu.adapay.model.Member.update(memberParams, merchantKey);
-        System.out.println("更新用户,返回参数:"+ JSON.toJSONString(member));
-
-        System.out.println("=======execute update Member end=======");
-        
-        return member;
-    
-    }
-
-    /**
-     * 查询 member list
-     * @param app_id app_id
-     * @return 查询的member list
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeListMember(String merchantKey, String app_id) throws Exception {
-        System.out.println("=======execute list Member begin=======");
-        Map<String, Object> memberParams = new  HashMap<String, Object>(2);
-        memberParams.put("page_index", "1");
-        memberParams.put("app_id", app_id);
-        memberParams.put("page_size", "20");
-        memberParams.put("created_gte", String.valueOf(System.currentTimeMillis() - 5 * 60 * 1000));
-        memberParams.put("created_lte", String.valueOf(System.currentTimeMillis()));
-        System.out.println("查询用户列表,请求参数:"+ JSON.toJSONString(memberParams));
-        Map<String, Object> member = com.huifu.adapay.model.Member.queryList(memberParams, merchantKey);
-        System.out.println("查询用户列表,返回参数:"+ JSON.toJSONString(member));
-
-
-        System.out.println("=======execute list Member end=======");
-        
-        return member;
-    
-    }
-
-     /**
-     * 运行 member 类接口
-     * @throws Exception 异常
-     */
-    public static Map<String, Object> executeMemberTest( String app_id) throws Exception{
-        Member demo = new Member();
-        Map<String, Object> member = demo.executeCreateMember( app_id);
-        demo.executeQueryMember( (String)member.get("member_id"),app_id);
-        demo.executeUpdateMember( (String)member.get("member_id"),app_id);
-        demo.executeQueryMember( (String)member.get("member_id"),app_id);
-        demo.executeListMember( app_id);
-        return member;
-    }
-
-
-    /**
-     * 创建 member
-     * @return 创建的member 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeCreateMember( String app_id) throws Exception {
-        System.out.println("=======execute CreateMember begin=======");
-        Map<String, Object> memberParams = new  HashMap<String, Object>(2);
-        memberParams.put("member_id", "0021677");
-        memberParams.put("app_id",app_id);
-        memberParams.put("location", "上海市徐汇区宜山路");
-        memberParams.put("email", "123@163.com");
-        memberParams.put("gender", "MALE");
-        memberParams.put("tel_no", "13153333333");
-        memberParams.put("nickname", "nick_name");
-        System.out.println("创建用户,请求参数:" + JSON.toJSONString(memberParams));
-        Map<String, Object> member = com.huifu.adapay.model.Member.create(memberParams);
-        System.out.println("创建用户,返回参数:" + JSON.toJSONString(member));
-        System.out.println("=======execute CreateMember end=======");
-        
-        return member;
-    
-    }
-
-    /**
-     * 查询 member
-     * @param member_id 待查询的member_id
-     * @return 创建的member 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeQueryMember( String member_id,String app_id) throws Exception {
-        System.out.println("=======execute queryMember begin=======");
-        Map<String, Object> memberParams = new  HashMap<String, Object>(2);
-        memberParams.put("member_id", member_id);
-        memberParams.put("app_id", app_id);
-        System.out.println("查询用户,请求参数:" + JSON.toJSONString(memberParams));
-        Map<String, Object> member = com.huifu.adapay.model.Member.query(memberParams);
-        System.out.println("查询用户,返回参数:" + JSON.toJSONString(member));
-
-
-        System.out.println("=======execute queryMember end=======");
-        
-        return member;
-    
-    }
-
-
-    /**
-     * 更新 member
-     * @param member_id 待更新的member_id
-     * @return 更新的member 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeUpdateMember( String member_id,String app_id) throws Exception {
-        System.out.println("=======execute update Member begin=======");
-        Map<String, Object> memberParams = new  HashMap<String, Object>(2);
-        memberParams.put("member_id", member_id);
-        memberParams.put("app_id", app_id);
-        memberParams.put("location", "上海市徐汇区宜山路1");
-        memberParams.put("email", "1234@163.com");
-        memberParams.put("gender", "MALE");
-        memberParams.put("tel_no", "13153333333");
-        memberParams.put("nickname", "nick_name2");
-
-        System.out.println("更新用户,请求参数:"+ JSON.toJSONString(memberParams));
-        Map<String, Object> member = com.huifu.adapay.model.Member.update(memberParams);
-        System.out.println("更新用户,返回参数:"+ JSON.toJSONString(member));
-
-        System.out.println("=======execute update Member end=======");
-        
-        return member;
-    
-    }
-
-    /**
-     * 查询 member list
-     * @param app_id app_id
-     * @return 查询的member list
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeListMember( String app_id) throws Exception {
-        System.out.println("=======execute list Member begin=======");
-        Map<String, Object> memberParams = new  HashMap<String, Object>(2);
-        memberParams.put("page_index", "1");
-        memberParams.put("app_id", app_id);
-        memberParams.put("page_size", "20");
-        memberParams.put("created_gte", String.valueOf(System.currentTimeMillis() - 5 * 60 * 1000));
-        memberParams.put("created_lte", String.valueOf(System.currentTimeMillis()));
-        System.out.println("查询用户列表,请求参数:"+ JSON.toJSONString(memberParams));
-        Map<String, Object> member = com.huifu.adapay.model.Member.queryList(memberParams);
-        System.out.println("查询用户列表,返回参数:"+ JSON.toJSONString(member));
-
-
-        System.out.println("=======execute list Member end=======");
-        
-        return member;
-    
-    }
-
-
-}

+ 28 - 88
edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/Payment.java

@@ -8,79 +8,9 @@ import org.springframework.util.DigestUtils;
 import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
-import java.util.List;
 import java.util.Map;
 
-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");
-    }
-
+public class Payment {
     /**
      * 执行一个支付交易
      *
@@ -88,22 +18,16 @@ public class Payment extends ConfigInit {
      * @throws Exception 异常
      */
     public static Map<String, Object> executePayment(Map<String, Object> paymentParams) throws Exception {
-        paymentParams.put("app_id", appId);
+        paymentParams.put("app_id", ConfigInit.appId);
 
         //调用sdk方法,创建支付,得到支付对象
         Map<String, Object> payment = new HashMap<>();
-        try {
-            payment = com.huifu.adapay.model.Payment.create(paymentParams);
-        } catch (BaseAdaPayException e) {
-            e.printStackTrace();
-        }
-
-        String error_code = (String) payment.get("error_code");
-        if (null != error_code) {
-            System.out.println("创建支付返回参数:" + JSON.toJSONString(payment));
+        payment = com.huifu.adapay.model.Payment.create(paymentParams);
 
-            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;
@@ -177,22 +101,38 @@ public class Payment extends ConfigInit {
     }
 
 
-    public static Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody) throws Exception {
+    public static Map<String, Object> queryList(Integer pageIndex, Long createdGte, Long createdLte) throws Exception {
+        Map<String, 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) throws Exception {
         Map<String, Object> paymentParams = new LinkedHashMap<>();
-        paymentParams.put("appId", appId);
-        paymentParams.put("amount", amount.setScale(2,BigDecimal.ROUND_HALF_UP));
+        paymentParams.put("appId", ConfigInit.appId);
+        paymentParams.put("amount", amount.setScale(2, BigDecimal.ROUND_HALF_UP));
         paymentParams.put("orderNo", orderNo);
 //        paymentParams.put("notifyUrl", notifyUrl);
 //        paymentParams.put("returnUrl", returnUrl);
         paymentParams.put("orderSubject", orderSubject);
         paymentParams.put("orderBody", orderBody);
-        paymentParams.put("wxAppId", wxAppId);
+        paymentParams.put("wxAppId", ConfigInit.wxAppId);
 
         String originalStr = JSONObject.toJSONString(paymentParams);
         String sign = DigestUtils.md5DigestAsHex(originalStr.getBytes());
 
         paymentParams.put("sign", sign);
-        paymentParams.remove(appId);
+        paymentParams.remove("appId");
         return paymentParams;
     }
 }

+ 0 - 153
edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/Refund.java

@@ -1,153 +0,0 @@
-package com.keao.edu.thirdparty.adapay;
-
-import com.alibaba.fastjson.JSON;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class Refund extends ConfigInit {
-
-    /**
-     * 运行退款类接口
-     *
-     * @throws Exception 异常
-     */
-    public static void executeRefundTest(String merchantKey, String paymentId) throws Exception {
-        Refund demo = new Refund();
-        //退款接口
-        Map<String, Object> refund = demo.executeRefund(merchantKey, paymentId);
-        //退款查询接口(通过pamentId查询)
-        demo.queryByPaymentId(merchantKey, paymentId);
-        //退款查询接口(通过refundId查询)
-        demo.queryByRefundId(merchantKey, (String) refund.get("id"));
-    }
-
-    /**
-     * 执行一个退款交易
-     *
-     * @param paymentId 要退款的原支付paymentId
-     * @return 创建的退款对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeRefund(String merchantKey, String paymentId) throws Exception {
-        System.out.println("=======execute refund begin=======");
-        Map<String, Object> refundParams = new HashMap<String, Object>(2);
-        refundParams.put("refund_amt", "0.01");
-        refundParams.put("app_id", "your appid");
-        refundParams.put("refund_order_no", "jsdk_refund_"+System.currentTimeMillis());
-        System.out.println("退款请求参数:" + JSON.toJSONString(refundParams));
-        Map<String, Object> refund = com.huifu.adapay.model.Refund.create(paymentId, refundParams, merchantKey);
-        System.out.println("退款返回参数:" + JSON.toJSONString(refund));
-        System.out.println("=======execute refund end=======");
-        
-        return refund;
-    }
-
-    /**
-     * 根据原支付id查询一个退款交易
-     *
-     * @param paymentId 要查询退款的原支付paymentId
-     * @return 查询的退款对象,可能含多个退款明细RefundDetail
-     * @throws Exception 异常
-     */
-    public Map<String, Object> queryByPaymentId(String merchantKey, String paymentId) throws Exception {
-        System.out.println("=======query refund by paymentId begin=======");
-        Map<String, Object> refundParams = new  HashMap<String, Object>(1);
-        refundParams.put("payment_id", paymentId);
-        System.out.println("通过原支付ID查询退款交易,请求参数:" + JSON.toJSONString(refundParams));
-        Map<String, Object> refund = com.huifu.adapay.model.Refund.query(refundParams, merchantKey);
-        System.out.println("通过原支付ID查询退款交易,返回参数:" + JSON.toJSONString(refund));
-        System.out.println("=======query refund by paymentId end=======");
-        return refund;
-    }
-
-    /**
-     * 根据退款refundId查询一个退款交易
-     *
-     * @param refundId 要查询的退款refundId
-     * @return 查询的退款对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> queryByRefundId(String merchantKey, String refundId) throws Exception {
-        System.out.println("=======query refund by refundid begin=======");
-        Map<String, Object> refundParams = new  HashMap<String, Object>(1);
-        refundParams.put("refund_id", refundId);
-        System.out.println("通过refundId查询退款交易,请求参数:" + JSON.toJSONString(refundParams));
-        Map<String, Object> refund = com.huifu.adapay.model.Refund.query(refundParams, merchantKey);
-        System.out.println("通过refundId查询退款交易,返回参数:" + JSON.toJSONString(refund));
-        System.out.println("=======query refund by refundid end=======");
-        return refund;
-    }
-
-    /**
-     * 运行退款类接口
-     *
-     * @throws Exception 异常
-     */
-    public static void executeRefundTest( String paymentId) throws Exception {
-        Refund demo = new Refund();
-        //退款接口
-        Map<String, Object> refund = demo.executeRefund( paymentId);
-        //退款查询接口(通过pamentId查询)
-        demo.queryByPaymentId( paymentId);
-        //退款查询接口(通过refundId查询)
-        demo.queryByRefundId( (String) refund.get("id"));
-    }
-
-    /**
-     * 执行一个退款交易
-     *
-     * @param paymentId 要退款的原支付paymentId
-     * @return 创建的退款对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeRefund( String paymentId) throws Exception {
-        System.out.println("=======execute refund begin=======");
-        Map<String, Object> refundParams = new HashMap<String, Object>(2);
-        refundParams.put("refund_amt", "0.01");
-        refundParams.put("app_id", "your appid");
-        refundParams.put("refund_order_no", "jsdk_refund_"+System.currentTimeMillis());
-        System.out.println("退款请求参数:" + JSON.toJSONString(refundParams));
-        Map<String, Object> refund = com.huifu.adapay.model.Refund.create(paymentId, refundParams);
-        System.out.println("退款返回参数:" + JSON.toJSONString(refund));
-        System.out.println("=======execute refund end=======");
-        
-        return refund;
-    }
-
-    /**
-     * 根据原支付id查询一个退款交易
-     *
-     * @param paymentId 要查询退款的原支付paymentId
-     * @return 查询的退款对象,可能含多个退款明细RefundDetail
-     * @throws Exception 异常
-     */
-    public Map<String, Object> queryByPaymentId( String paymentId) throws Exception {
-        System.out.println("=======query refund by paymentId begin=======");
-        Map<String, Object> refundParams = new  HashMap<String, Object>(1);
-        refundParams.put("payment_id", paymentId);
-        System.out.println("通过原支付ID查询退款交易,请求参数:" + JSON.toJSONString(refundParams));
-        Map<String, Object> refund = com.huifu.adapay.model.Refund.query(refundParams);
-        System.out.println("通过原支付ID查询退款交易,返回参数:" + JSON.toJSONString(refund));
-        System.out.println("=======query refund by paymentId end=======");
-        return refund;
-    }
-
-    /**
-     * 根据退款refundId查询一个退款交易
-     *
-     * @param refundId 要查询的退款refundId
-     * @return 查询的退款对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> queryByRefundId( String refundId) throws Exception {
-        System.out.println("=======query refund by refundid begin=======");
-        Map<String, Object> refundParams = new  HashMap<String, Object>(1);
-        refundParams.put("refund_id", refundId);
-        System.out.println("通过refundId查询退款交易,请求参数:" + JSON.toJSONString(refundParams));
-        Map<String, Object> refund = com.huifu.adapay.model.Refund.query(refundParams);
-        System.out.println("通过refundId查询退款交易,返回参数:" + JSON.toJSONString(refund));
-        System.out.println("=======query refund by refundid end=======");
-        return refund;
-    }
-}

+ 19 - 423
edu-thirdparty/src/main/java/com/keao/edu/thirdparty/adapay/SettleAccount.java

@@ -1,456 +1,52 @@
 package com.keao.edu.thirdparty.adapay;
 
-import com.alibaba.fastjson.JSON;
+import com.huifu.adapay.core.exception.BaseAdaPayException;
 
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * @author yingyong.wang
- */
-public class SettleAccount extends ConfigInit {
-
-    /**
-     * 运行结算账户类接口
-     *
-     * @throws Exception 异常
-     */
-    public static void executeSettleAccountTest(String merchantKey, String app_id, String member_id) throws Exception {
-        SettleAccount demo = new SettleAccount();
-        // 创建结算账户
-        Map<String, Object> settlecount = demo.executeCreateSettleAccount(merchantKey, app_id, member_id);
-        String settleCount_id = (String) settlecount.get("id");
-
-
-        // 查询结算账户
-        demo.executeQuerySettleAccount(merchantKey, settleCount_id, app_id, member_id);
-
-        // 查询结算账户明细列表
-        demo.executeQuerySettleDetails(merchantKey, app_id, member_id, settleCount_id);
-        // 删除结算账户
-        demo.executeDeleteSettleAccount(merchantKey, settleCount_id, app_id, member_id);
-
-        member_id = "user_test_10001";
-        settleCount_id = "0023056905335360";
-
-        demo.executeModifySettleAccount(merchantKey, settleCount_id, app_id, member_id);
-
-        demo.executeDrawCash(merchantKey, app_id, member_id);
-
-        demo.executeQueryBalance(merchantKey, app_id, member_id, settleCount_id);
-    }
-
-    /**
-     * 运行查询结算明细列表接口
-     *
-     * @throws Exception 异常
-     */
-//    public static void executeQuerySettleDetailTest(String merchantKey, String appId, String memberId, String settleAccountId, String beginDate, String endDate) throws Exception {
-//        SettleAccountDemo demo = new SettleAccountDemo();
-//        demo.executeQuerySettleDetails(merchantKey, appId, memberId, settleAccountId, beginDate, endDate);
-//    }
-
-
-    /**
-     * 创建 settleCount
-     *
-     * @return 创建的settleCount 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeCreateSettleAccount(String merchantKey, String app_id, String member_id) throws Exception {
-        System.out.println("=======execute Create SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>(2);
-        Map<String, Object> accountInfo = new HashMap<String, Object>(2);
-        accountInfo.put("card_id", "6222021703001692221");
-        accountInfo.put("card_name", "袁电茜");
-        accountInfo.put("cert_id", "310109200006062491");
-        accountInfo.put("cert_type", "00");
-        accountInfo.put("tel_no", "18888888881");
-        accountInfo.put("bank_code", "03060000");
-        accountInfo.put("bank_acct_type", "1");
-        accountInfo.put("prov_code", "0031");
-        accountInfo.put("area_code", "3100");
-        settleCountParams.put("member_id", member_id);
-        settleCountParams.put("app_id", app_id);
-        settleCountParams.put("channel", "bank_account");
-        settleCountParams.put("account_info", accountInfo);
-        System.out.println("创建结算账户,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.create(settleCountParams, merchantKey);
-        System.out.println("创建结算账户,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute Create SettleAccount end=======");
-
-        return settleCount;
-
-    }
-
-    /**
-     * 查询 SettleAccount
-     *
-     * @param settleCount_id 待查询的settleCount_id
-     * @param app_id         app_id
-     * @return 查询的settleCount 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeQuerySettleAccount(String merchantKey, String settleCount_id, String app_id, String member_id) throws Exception {
-        System.out.println("=======execute query SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>(2);
-        settleCountParams.put("settle_account_id", settleCount_id);
-        settleCountParams.put("member_id", member_id);
-        settleCountParams.put("app_id", app_id);
-        System.out.println("查询结算账户,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.query(settleCountParams, merchantKey);
-        System.out.println("查询结算账户,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute query SettleAccount end=======");
-
-        return settleCount;
-    }
+public class SettleAccount {
 
     /**
      * 删除 SettleAccount
      *
      * @param settleCount_id 待删除的settleCount_id
-     * @param app_id         app_id
      * @return delete的settleCount 对象
      * @throws Exception 异常
      */
-    public Map<String, Object> executeDeleteSettleAccount(String merchantKey, String settleCount_id, String app_id, String member_id) throws Exception {
-        System.out.println("=======execute delete SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>(2);
+    public static Map<String, Object> executeDeleteSettleAccount(String settleCount_id, String member_id) throws Exception {
+        Map<String, Object> settleCountParams = new HashMap<String, Object>(3);
         settleCountParams.put("settle_account_id", settleCount_id);
         settleCountParams.put("member_id", member_id);
-        settleCountParams.put("app_id", app_id);
-        System.out.println("删除结算账户,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.delete(settleCountParams, merchantKey);
-        System.out.println("删除结算账户,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute delete SettleAccount end=======");
-
-        return settleCount;
-    }
-
-    /**
-     * 查询结算明细列表
-     *
-     * @param merchantKey
-     * @param app_id          app_id
-     * @param member_id       待查询的member_id
-     * @param settleAccountId 待查询的settleAccountId
-     * @return
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeQuerySettleDetails(String merchantKey, String app_id, String member_id,
-                                                         String settleAccountId) throws Exception {
-        System.out.println("=======execute query settle details begin=======");
-        Map<String, Object> querySettleDetailParams = new HashMap<String, Object>(2);
-        querySettleDetailParams.put("app_id", app_id);
-        querySettleDetailParams.put("member_id", member_id);
-        querySettleDetailParams.put("settle_account_id", settleAccountId);
-        querySettleDetailParams.put("begin_date", "20191008");
-        querySettleDetailParams.put("end_date", "20191010");
-        System.out.println("查询结算明细列表,请求参数:" + JSON.toJSONString(querySettleDetailParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.querySettleDetails(querySettleDetailParams, merchantKey);
-        System.out.println("查询结算明细列表,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute query settle details end=======");
-
+        settleCountParams.put("app_id", ConfigInit.appId);
+        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.delete(settleCountParams);
+        String error_code = (String) settleCount.get("error_code");
+        if (null != error_code) {
+            String errorMsg = (String) settleCount.get("error_msg");
+            throw new BaseAdaPayException(errorMsg);
+        }
         return settleCount;
     }
 
 
     /**
-     * 运行结算账户类接口
-     *
-     * @throws Exception 异常
-     */
-    public static void executeSettleAccountTest(String app_id, String member_id) throws Exception {
-        SettleAccount demo = new SettleAccount();
-        // 创建结算账户
-        Map<String, Object> settlecount = demo.executeCreateSettleAccount(app_id, member_id);
-        String settleCount_id = (String) settlecount.get("id");
-        // 查询结算账户
-        demo.executeQuerySettleAccount(settleCount_id, app_id, member_id);
-
-        // 查询结算账户明细列表
-        demo.executeQuerySettleDetails(app_id, member_id, settleCount_id);
-        // 删除结算账户
-        demo.executeDeleteSettleAccount(settleCount_id, app_id, member_id);
-        member_id = "user_test_10001";
-        settleCount_id = "0023056905335360";
-
-        demo.executeModifySettleAccount(settleCount_id, app_id, member_id);
-
-    }
-
-    /**
-     * 运行查询结算明细列表接口
-     *
-     * @throws Exception 异常
-     */
-//    public static void executeQuerySettleDetailTest( String appId, String memberId, String settleAccountId, String beginDate, String endDate) throws Exception {
-//        SettleAccountDemo demo = new SettleAccountDemo();
-//        demo.executeQuerySettleDetails( appId, memberId, settleAccountId, beginDate, endDate);
-//    }
-
-
-    /**
      * 创建 settleCount
      *
      * @return 创建的settleCount 对象
      * @throws Exception 异常
      */
-    public Map<String, Object> executeCreateSettleAccount(String app_id, String member_id) throws Exception {
-        System.out.println("=======execute Create SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>(2);
-        Map<String, Object> accountInfo = new HashMap<String, Object>(2);
-        accountInfo.put("card_id", "6222021703001692221");
-        accountInfo.put("card_name", "袁电茜");
-        accountInfo.put("cert_id", "310109200006062491");
-        accountInfo.put("cert_type", "00");
-        accountInfo.put("tel_no", "18888888881");
-        accountInfo.put("bank_code", "03060000");
-        accountInfo.put("bank_acct_type", "1");
-        accountInfo.put("prov_code", "0031");
-        accountInfo.put("area_code", "3100");
+    public static Map<String, Object> executeCreateSettleAccount(String member_id, Map<String, Object> accountInfo) throws Exception {
+        Map<String, Object> settleCountParams = new HashMap<String, Object>(4);
         settleCountParams.put("member_id", member_id);
-        settleCountParams.put("app_id", app_id);
+        settleCountParams.put("app_id", ConfigInit.appId);
         settleCountParams.put("channel", "bank_account");
         settleCountParams.put("account_info", accountInfo);
-        System.out.println("创建结算账户,请求参数:" + JSON.toJSONString(settleCountParams));
         Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.create(settleCountParams);
-        System.out.println("创建结算账户,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute Create SettleAccount end=======");
-
-        return settleCount;
-
-    }
-
-    /**
-     * 查询 SettleAccount
-     *
-     * @param settleCount_id 待查询的settleCount_id
-     * @param app_id         app_id
-     * @return 查询的settleCount 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeQuerySettleAccount(String settleCount_id, String app_id, String member_id) throws Exception {
-        System.out.println("=======execute query SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>(2);
-        settleCountParams.put("settle_account_id", settleCount_id);
-        settleCountParams.put("member_id", member_id);
-        settleCountParams.put("app_id", app_id);
-        System.out.println("查询结算账户,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.query(settleCountParams);
-        System.out.println("查询结算账户,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute query SettleAccount end=======");
-
-        return settleCount;
-    }
-
-    /**
-     * 修改 SettleAccount
-     *
-     * @param settleCount_id 待修改的settleCount_id
-     * @param app_id         app_id
-     * @return 修改的settleCount 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeModifySettleAccount(String settleCount_id, String app_id, String member_id) throws Exception {
-        System.out.println("=======execute modify SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>(2);
-        settleCountParams.put("settle_account_id", settleCount_id);
-        settleCountParams.put("member_id", member_id);
-        settleCountParams.put("app_id", app_id);
-
-        settleCountParams.put("min_amt", "0.10");
-        settleCountParams.put("remained_amt", "0.10");
-        System.out.println("修改结算账户,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.modify(settleCountParams);
-        System.out.println("修改结算账户,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute modify SettleAccount end=======");
-
-        return settleCount;
-    }
-
-    /**
-     * 修改 SettleAccount
-     *
-     * @param settleCount_id 待修改的settleCount_id
-     * @param app_id         app_id
-     * @return 修改的settleCount 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeModifySettleAccount(String merchantKey, String settleCount_id, String app_id, String member_id) throws Exception {
-        System.out.println("=======execute modify SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>(2);
-        settleCountParams.put("settle_account_id", settleCount_id);
-        settleCountParams.put("member_id", member_id);
-        settleCountParams.put("app_id", app_id);
-        settleCountParams.put("min_amt", "");
-        settleCountParams.put("remained_amt", "");
-
-        System.out.println("修改结算账户,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.modify(settleCountParams, merchantKey);
-        System.out.println("修改结算账户,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute modify SettleAccount end=======");
-
-        return settleCount;
-    }
-
-
-    /**
-     * 删除 SettleAccount
-     *
-     * @param settleCount_id 待删除的settleCount_id
-     * @param app_id         app_id
-     * @return delete的settleCount 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeDeleteSettleAccount(String settleCount_id, String app_id, String member_id) throws Exception {
-        System.out.println("=======execute delete SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>(2);
-        settleCountParams.put("settle_account_id", settleCount_id);
-        settleCountParams.put("member_id", member_id);
-        settleCountParams.put("app_id", app_id);
-        System.out.println("删除结算账户,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.delete(settleCountParams);
-        System.out.println("删除结算账户,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute delete SettleAccount end=======");
-
-        return settleCount;
-    }
-
-    /**
-     * 查询结算明细列表
-     *
-     * @param app_id          app_id
-     * @param member_id       待查询的member_id
-     * @param settleAccountId 待查询的settleAccountId
-     * @return
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeQuerySettleDetails(String app_id, String member_id,
-                                                         String settleAccountId) throws Exception {
-        System.out.println("=======execute query settle details begin=======");
-        Map<String, Object> querySettleDetailParams = new HashMap<String, Object>(2);
-        querySettleDetailParams.put("app_id", app_id);
-        querySettleDetailParams.put("member_id", member_id);
-        querySettleDetailParams.put("settle_account_id", settleAccountId);
-        querySettleDetailParams.put("begin_date", "20191008");
-        querySettleDetailParams.put("end_date", "20191010");
-        System.out.println("查询结算明细列表,请求参数:" + JSON.toJSONString(querySettleDetailParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.querySettleDetails(querySettleDetailParams);
-        System.out.println("查询结算明细列表,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute query settle details end=======");
-
-        return settleCount;
-    }
-
-    /**
-     * 取现
-     *
-     * @param merchantKey
-     * @param app_id
-     * @param member_id
-     * @return
-     * @throws Exception
-     */
-    public static Map<String, Object> executeDrawCash(String merchantKey, String app_id, String member_id) throws Exception {
-        System.out.println("=======execute modify SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>();
-
-        settleCountParams.put("order_no", "jsdk_payment_" + System.currentTimeMillis());
-        settleCountParams.put("cash_amt", "0.01");
-        settleCountParams.put("member_id", "user_00008");
-        settleCountParams.put("app_id", app_id);
-        // settleCountParams.put("settle_account_id", "0008919797515968");
-        settleCountParams.put("cash_type", "T1");
-        settleCountParams.put("notify_url", "");
-
-        System.out.println("取现接口,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.drawCash(settleCountParams,merchantKey);
-        System.out.println("取现接口返回参数" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute modify SettleAccount end=======");
-
-        return settleCount;
-    }
-
-    /**
-     * 查询余额
-     *
-     * @param merchantKey
-     * @param app_id
-     * @param member_id
-     * @param settleCount_id
-     * @return
-     * @throws Exception
-     */
-    public static Map<String, Object> executeQueryBalance(String merchantKey, String app_id, String member_id, String settleCount_id) throws Exception {
-        System.out.println("=======execute modify SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>();
-
-        settleCountParams.put("app_id", app_id);
-        settleCountParams.put("member_id", "user_00008");
-        settleCountParams.put("settle_account_id", "0035172521665088");
-
-
-        System.out.println("查询余额账户,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.queryBalance(settleCountParams,merchantKey);
-        System.out.println("查询余额账户,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute modify SettleAccount end=======");
-
-        return settleCount;
-    }
-    /**
-     * 取现
-     *
-
-     * @param app_id
-     * @param member_id
-     * @return
-     * @throws Exception
-     */
-    public static Map<String, Object> executeDrawCash(String app_id, String member_id) throws Exception {
-        System.out.println("=======execute modify SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>();
-
-        settleCountParams.put("order_no", "jsdk_payment_" + System.currentTimeMillis());
-        settleCountParams.put("cash_amt", "0.01");
-        settleCountParams.put("member_id", "user_00008");
-        settleCountParams.put("app_id", app_id);
-        // settleCountParams.put("settle_account_id", "0008919797515968");
-        settleCountParams.put("cash_type", "T1");
-        settleCountParams.put("notify_url", "");
-
-        System.out.println("取现接口,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.drawCash(settleCountParams);
-        System.out.println("取现接口返回参数" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute modify SettleAccount end=======");
-
-        return settleCount;
-    }
-
-    /**
-     * 查询余额
-     *
-
-     * @param app_id
-     * @param member_id
-     * @param settleCount_id
-     * @return
-     * @throws Exception
-     */
-    public static Map<String, Object> executeQueryBalance( String app_id, String member_id, String settleCount_id) throws Exception {
-        System.out.println("=======execute modify SettleAccount begin=======");
-        Map<String, Object> settleCountParams = new HashMap<String, Object>();
-
-        settleCountParams.put("app_id", app_id);
-        settleCountParams.put("member_id", "user_00008");
-        settleCountParams.put("settle_account_id", "0035172521665088");
-
-
-        System.out.println("查询余额账户,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.queryBalance(settleCountParams);
-        System.out.println("查询余额账户,返回参数:" + JSON.toJSONString(settleCount));
-        System.out.println("=======execute modify SettleAccount end=======");
-
+        String error_code = (String) settleCount.get("error_code");
+        if (null != error_code) {
+            String errorMsg = (String) settleCount.get("error_msg");
+            throw new BaseAdaPayException(errorMsg);
+        }
         return settleCount;
     }
 

+ 16 - 0
edu-user/edu-student-server/src/main/java/com/keao/edu/StudentServerApplication.java

@@ -1,11 +1,16 @@
 package com.keao.edu;
 
+import com.huifu.adapay.Adapay;
+import com.huifu.adapay.model.MerConfig;
+import com.keao.edu.thirdparty.adapay.ConfigInit;
+import com.keao.edu.user.service.NotifyCallback;
 import com.spring4all.swagger.EnableSwagger2Doc;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableAsync;
 
@@ -22,4 +27,15 @@ public class StudentServerApplication{
         SpringApplication.run(StudentServerApplication.class, args);
     }
 
+    @Bean
+    public static void startMqtt() {
+        MerConfig merConfig = ConfigInit.merConfig;
+        NotifyCallback notifyCallback = new NotifyCallback();
+        try {
+            Adapay.startMqttListener(merConfig, notifyCallback);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
 }

+ 23 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/HfMemberDao.java

@@ -0,0 +1,23 @@
+package com.keao.edu.user.dao;
+
+import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.user.entity.HfMember;
+import org.apache.ibatis.annotations.Param;
+
+public interface HfMemberDao extends BaseDAO<Integer, HfMember> {
+
+    /**
+     * 根据商户号获取商户信息
+     *
+     * @param memberId
+     * @return
+     */
+    HfMember getByMemberId(@Param("memberId") String memberId);
+
+    /**
+     * 根据名字获取商户信息
+     * @param name
+     * @return
+     */
+    HfMember getByName(@Param("name") String name);
+}

+ 249 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/entity/HfMember.java

@@ -0,0 +1,249 @@
+package com.keao.edu.user.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Date;
+
+public class HfMember {
+    @ApiModelProperty(value = "id",required = true)
+    private Integer Id;
+
+    @ApiModelProperty(value = "商户号",required = true)
+    private String memberId;
+
+    @ApiModelProperty(value = "公司名称",required = true)
+    private String name;
+
+    @ApiModelProperty(value = "省份编号(https://cdn.cloudpnr.com/adapayresource/documents/Adapay%E7%9C%81%E5%B8%82%E7%BC%96%E7%A0%81%EF%BC%88%E5%9B%9B%E4%BD%8D%EF%BC%89.json)",required = true)
+    private String provCode;
+
+    @ApiModelProperty(value = "城市编号",required = true)
+    private String areaCode;
+
+    @ApiModelProperty(value = "统一社会信用码",required = true)
+    private String socialCreditCode;
+
+    @ApiModelProperty(value = "统一社会信用码有效期",required = true)
+    private String socialCreditCodeExpires;
+
+    @ApiModelProperty(value = "经营范围",required = true)
+    private String businessScope;
+
+    @ApiModelProperty(value = "法人",required = true)
+    private String legalPerson;
+
+    @ApiModelProperty(value = "法人身份证号",required = true)
+    private String legalCertId;
+
+    @ApiModelProperty(value = "身份证有效期",required = true)
+    private String legalCertIdExpires;
+
+    @ApiModelProperty(value = "法人手机号",required = true)
+    private String legalMp;
+
+    @ApiModelProperty(value = "公司地址",required = true)
+    private String address;
+
+    @ApiModelProperty(value = "邮编",required = true)
+    private String zipCode;
+
+    @ApiModelProperty(value = "银行卡号",required = true)
+    private String cardNo;
+
+    @ApiModelProperty(value = "银行编码(https://docs.adapay.tech/api/appendix.html#bank-code)",required = true)
+    private String bankCode;
+
+    @ApiModelProperty(value = "证照文件",required = true)
+    private MultipartFile multipartFile;
+
+    @ApiModelProperty(value = "状态(pending:处理中,succeeded:成功,failed:失败)",required = true)
+    private String status;
+
+    @ApiModelProperty(value = "创建时间",required = true)
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间",required = true)
+    private Date updateTime;
+
+    private String settleAccountId;
+
+    @ApiModelProperty(value = "备注",required = true)
+    private String memo;
+
+    public Integer getId() {
+        return Id;
+    }
+
+    public void setId(Integer id) {
+        Id = id;
+    }
+
+    public String getMemberId() {
+        return memberId;
+    }
+
+    public void setMemberId(String memberId) {
+        this.memberId = memberId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getProvCode() {
+        return provCode;
+    }
+
+    public void setProvCode(String provCode) {
+        this.provCode = provCode;
+    }
+
+    public String getAreaCode() {
+        return areaCode;
+    }
+
+    public void setAreaCode(String areaCode) {
+        this.areaCode = areaCode;
+    }
+
+    public String getSocialCreditCode() {
+        return socialCreditCode;
+    }
+
+    public void setSocialCreditCode(String socialCreditCode) {
+        this.socialCreditCode = socialCreditCode;
+    }
+
+    public String getSocialCreditCodeExpires() {
+        return socialCreditCodeExpires;
+    }
+
+    public void setSocialCreditCodeExpires(String socialCreditCodeExpires) {
+        this.socialCreditCodeExpires = socialCreditCodeExpires;
+    }
+
+    public String getBusinessScope() {
+        return businessScope;
+    }
+
+    public void setBusinessScope(String businessScope) {
+        this.businessScope = businessScope;
+    }
+
+    public String getLegalPerson() {
+        return legalPerson;
+    }
+
+    public void setLegalPerson(String legalPerson) {
+        this.legalPerson = legalPerson;
+    }
+
+    public String getLegalCertId() {
+        return legalCertId;
+    }
+
+    public void setLegalCertId(String legalCertId) {
+        this.legalCertId = legalCertId;
+    }
+
+    public String getLegalCertIdExpires() {
+        return legalCertIdExpires;
+    }
+
+    public void setLegalCertIdExpires(String legalCertIdExpires) {
+        this.legalCertIdExpires = legalCertIdExpires;
+    }
+
+    public String getLegalMp() {
+        return legalMp;
+    }
+
+    public void setLegalMp(String legalMp) {
+        this.legalMp = legalMp;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getZipCode() {
+        return zipCode;
+    }
+
+    public void setZipCode(String zipCode) {
+        this.zipCode = zipCode;
+    }
+
+    public String getCardNo() {
+        return cardNo;
+    }
+
+    public void setCardNo(String cardNo) {
+        this.cardNo = cardNo;
+    }
+
+    public String getBankCode() {
+        return bankCode;
+    }
+
+    public void setBankCode(String bankCode) {
+        this.bankCode = bankCode;
+    }
+
+    public MultipartFile getMultipartFile() {
+        return multipartFile;
+    }
+
+    public void setMultipartFile(MultipartFile multipartFile) {
+        this.multipartFile = multipartFile;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getSettleAccountId() {
+        return settleAccountId;
+    }
+
+    public void setSettleAccountId(String settleAccountId) {
+        this.settleAccountId = settleAccountId;
+    }
+
+    public String getMemo() {
+        return memo;
+    }
+
+    public void setMemo(String memo) {
+        this.memo = memo;
+    }
+}

+ 36 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/page/HfMemberQueryInfo.java

@@ -0,0 +1,36 @@
+package com.keao.edu.user.page;
+
+import com.keao.edu.common.page.QueryInfo;
+
+public class HfMemberQueryInfo extends QueryInfo {
+
+    private String name;
+
+    private String memberId;
+
+    private String status;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getMemberId() {
+        return memberId;
+    }
+
+    public void setMemberId(String memberId) {
+        this.memberId = memberId;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+}

+ 17 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/HfMemberService.java

@@ -0,0 +1,17 @@
+package com.keao.edu.user.service;
+
+
+import com.keao.edu.common.service.BaseService;
+import com.keao.edu.user.entity.HfMember;
+
+import java.io.File;
+import java.util.Map;
+
+public interface HfMemberService extends BaseService<Integer, HfMember> {
+
+    Map<String,Object> createMember(HfMember member, File file) throws Exception;
+
+    Map<String,Object> updateMember(HfMember member, File file) throws Exception;
+
+    Map<String,Object> createSettleAccount(String memberId, String cardNo, String bankCode) throws Exception;
+}

+ 59 - 16
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/NotifyCallback.java

@@ -5,10 +5,13 @@ import com.alibaba.fastjson.JSONObject;
 import com.huifu.adapay.Adapay;
 import com.huifu.adapay.notify.MQTTCallbackHandler;
 import com.keao.edu.thirdparty.adapay.ConfigInit;
+import com.keao.edu.user.dao.HfMemberDao;
 import com.keao.edu.user.dao.SysConfigDao;
 import com.keao.edu.user.entity.ExamRegistrationPayment;
+import com.keao.edu.user.entity.HfMember;
 import com.keao.edu.user.enums.TransStatusEnum;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
@@ -21,17 +24,29 @@ public class NotifyCallback implements MQTTCallbackHandler {
 
     @Autowired
     private ExamRegistrationPaymentService examRegistrationPaymentService;
-    @Autowired
-    private SysConfigService sysConfigService;
 
+    @Autowired
+    private HfMemberDao hfMemberDao;
 
     private static NotifyCallback notifyCallback;
 
+    @Value("${spring.profiles.active}")
+    private String profiles;
+
+    @Value("${spring.application.name}")
+    private String appName;
+
     @PostConstruct
     public void init() {
         notifyCallback = this;
-        String baseApiUrl = notifyCallback.sysConfigService.findConfigValue("base_api_url","0");
-        Adapay.setDeviceID(baseApiUrl);
+        if (!profiles.equals("prod") && !appName.equals("student-server")) {
+            Adapay.debug = true;
+            /**
+             * prodMode 模式,默认为生产模式,false可以使用mock模式
+             */
+            Adapay.prodMode = false;
+        }
+        Adapay.setDeviceID(appName);
     }
 
     /**
@@ -52,11 +67,11 @@ public class NotifyCallback implements MQTTCallbackHandler {
         if (order == null || !order.getTransStatus().equals(TransStatusEnum.ING)) {
             return;
         }
-        Map<String,String> rpMap = new HashMap<>();
+        Map<String, String> rpMap = new HashMap<>();
         rpMap.put("channelType", dataObj.getString("pay_channel"));
-        rpMap.put("transStatus","SUCCESS");
-        rpMap.put("orderNo",orderNo);
-        rpMap.put("transNo",order.getTransNo());
+        rpMap.put("transStatus", "SUCCESS");
+        rpMap.put("orderNo", orderNo);
+        rpMap.put("transNo", order.getTransNo());
         notifyCallback.examRegistrationPaymentService.updateOrder(rpMap);
     }
 
@@ -78,11 +93,11 @@ public class NotifyCallback implements MQTTCallbackHandler {
         if (order == null || !order.getTransStatus().equals("ING")) {
             return;
         }
-        Map<String,String> rpMap = new HashMap<>();
+        Map<String, String> rpMap = new HashMap<>();
         rpMap.put("channelType", dataObj.getString("pay_channel"));
-        rpMap.put("transStatus","FAILED");
-        rpMap.put("orderNo",orderNo);
-        rpMap.put("transNo",order.getTransNo());
+        rpMap.put("transStatus", "FAILED");
+        rpMap.put("orderNo", orderNo);
+        rpMap.put("transNo", order.getTransNo());
         notifyCallback.examRegistrationPaymentService.updateOrder(rpMap);
     }
 
@@ -105,11 +120,11 @@ public class NotifyCallback implements MQTTCallbackHandler {
         if (order == null || !order.getTransStatus().equals(TransStatusEnum.ING)) {
             return;
         }
-        Map<String,String> rpMap = new HashMap<>();
+        Map<String, String> rpMap = new HashMap<>();
         rpMap.put("channelType", dataObj.getString("pay_channel"));
-        rpMap.put("transStatus","FAILED");
-        rpMap.put("orderNo",orderNo);
-        rpMap.put("transNo",order.getTransNo());
+        rpMap.put("transStatus", "FAILED");
+        rpMap.put("orderNo", orderNo);
+        rpMap.put("transNo", order.getTransNo());
         notifyCallback.examRegistrationPaymentService.updateOrder(rpMap);
     }
 
@@ -160,11 +175,39 @@ public class NotifyCallback implements MQTTCallbackHandler {
     @Override
     public void corpMemberSuccessMessageArrived(String corpMember) throws Exception {
         System.out.println(String.format("receive corpMember   msg=%s", corpMember));
+        JSONObject corpMemberObj = JSON.parseObject(corpMember);
+        if (!corpMemberObj.getString("app_id").equals(ConfigInit.appId)) {
+            return;
+        }
+        String memberId = corpMemberObj.getString("member_id");
+        HfMember hfMember = notifyCallback.hfMemberDao.getByMemberId(memberId);
+        if (hfMember == null || !hfMember.getStatus().equals("pending")) {
+            return;
+        }
+        hfMember.setStatus("succeeded");
+        hfMember.setMemo(corpMemberObj.getString("audit_desc"));
+        if (corpMemberObj.containsKey("audit_state") && corpMemberObj.getString("audit_state").equals("E")) {
+            JSONObject accounts = JSON.parseObject(corpMemberObj.get("settle_accounts").toString());
+            hfMember.setSettleAccountId(accounts.getString("id"));
+        }
+        notifyCallback.hfMemberDao.update(hfMember);
     }
 
     @Override
     public void corpMemberFailedMessageArrived(String corpMember) throws Exception {
         System.out.println(String.format("receive corpMember  msg=%s", corpMember));
+        JSONObject corpMemberObj = JSON.parseObject(corpMember);
+        if (!corpMemberObj.getString("app_id").equals(ConfigInit.appId)) {
+            return;
+        }
+        String memberId = corpMemberObj.getString("member_id");
+        HfMember hfMember = notifyCallback.hfMemberDao.getByMemberId(memberId);
+        if (hfMember == null || !hfMember.getStatus().equals("pending")) {
+            return;
+        }
+        hfMember.setStatus("failed");
+        hfMember.setMemo(corpMemberObj.getString("audit_desc"));
+        notifyCallback.hfMemberDao.update(hfMember);
     }
 
     @Override

+ 140 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/HfMemberSserviceImpl.java

@@ -0,0 +1,140 @@
+package com.keao.edu.user.service.impl;
+
+
+import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.exception.BizException;
+import com.keao.edu.common.service.impl.BaseServiceImpl;
+import com.keao.edu.thirdparty.adapay.CorpMember;
+import com.keao.edu.thirdparty.adapay.SettleAccount;
+import com.keao.edu.user.dao.HfMemberDao;
+import com.keao.edu.user.entity.HfMember;
+import com.keao.edu.user.service.HfMemberService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.File;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+public class HfMemberSserviceImpl extends BaseServiceImpl<Integer, HfMember> implements HfMemberService {
+    @Autowired
+    private HfMemberDao hfMemberDao;
+
+    @Override
+    public BaseDAO<Integer, HfMember> getDAO() {
+        return hfMemberDao;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> createMember(HfMember member, File file) throws Exception {
+        HfMember hasMember = hfMemberDao.getByMemberId(member.getMemberId());
+        if (hasMember != null) {
+            throw new BizException("商户号不能与已有商户相同,请核查");
+        }
+        hasMember = hfMemberDao.getByName(member.getName());
+        if (hasMember != null) {
+            throw new BizException("公司名与已有公司名相同,请核查");
+        }
+
+        Date nowDate = new Date();
+        member.setCreateTime(nowDate);
+        member.setUpdateTime(nowDate);
+        member.setStatus("pending");
+        insert(member);
+
+        HashMap<String, Object> memberParams = new HashMap<>();
+        memberParams.put("order_no", "corp_mem_" + System.currentTimeMillis());
+        memberParams.put("member_id", member.getMemberId());
+        memberParams.put("name", member.getName());
+        memberParams.put("prov_code", member.getProvCode());
+        memberParams.put("area_code", member.getAreaCode());
+        memberParams.put("social_credit_code", member.getSocialCreditCode());
+        memberParams.put("social_credit_code_expires", member.getSocialCreditCodeExpires());
+        memberParams.put("business_scope", member.getBusinessScope());
+        memberParams.put("legal_person", member.getLegalPerson());
+        memberParams.put("legal_cert_id", member.getLegalCertId());
+        memberParams.put("legal_cert_id_expires", member.getLegalCertIdExpires());
+        memberParams.put("legal_mp", member.getLegalMp());
+        memberParams.put("address", member.getAddress());
+        memberParams.put("zip_code", member.getZipCode());
+        memberParams.put("bank_code", member.getBankCode());
+        memberParams.put("bank_acct_type", "1");
+        memberParams.put("card_no", member.getCardNo());
+        memberParams.put("card_name", member.getName());
+        return CorpMember.executeCreateMember(memberParams, file);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> updateMember(HfMember member, File file) throws Exception {
+        HfMember hfMember = hfMemberDao.get(member.getId());
+        if (hfMember == null) {
+            throw new BizException("商户不存在请核对");
+        }
+
+        if (!hfMember.getStatus().equals("failed")) {
+            throw new BizException("商户不是审核失败状态不能修改");
+        }
+
+        Date nowDate = new Date();
+        member.setUpdateTime(nowDate);
+        member.setStatus("pending");
+        if (update(member) <= 0) {
+            throw new BizException("更新商户信息失败,请重试");
+        }
+        HashMap<String, Object> memberParams = new HashMap<>();
+        memberParams.put("order_no", "corp_mem_" + System.currentTimeMillis());
+        memberParams.put("member_id", member.getMemberId());
+        memberParams.put("name", member.getName());
+        memberParams.put("prov_code", member.getProvCode());
+        memberParams.put("area_code", member.getAreaCode());
+        memberParams.put("social_credit_code", member.getSocialCreditCode());
+        memberParams.put("social_credit_code_expires", member.getSocialCreditCodeExpires());
+        memberParams.put("business_scope", member.getBusinessScope());
+        memberParams.put("legal_person", member.getLegalPerson());
+        memberParams.put("legal_cert_id", member.getLegalCertId());
+        memberParams.put("legal_cert_id_expires", member.getLegalCertIdExpires());
+        memberParams.put("legal_mp", member.getLegalMp());
+        memberParams.put("address", member.getAddress());
+        memberParams.put("zip_code", member.getZipCode());
+        memberParams.put("bank_code", member.getBankCode());
+        memberParams.put("bank_acct_type", "1");
+        memberParams.put("card_no", member.getCardNo());
+        memberParams.put("card_name", member.getName());
+        return CorpMember.executeCreateMember(memberParams, file);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> createSettleAccount(String memberId, String cardNo, String bankCode) throws Exception {
+        HfMember hfMember = hfMemberDao.getByMemberId(memberId);
+        if (!hfMember.getStatus().equals("succeeded")) {
+            throw new BizException("商户审核通过,才能绑定结算卡");
+        }
+        hfMember.setCardNo(cardNo);
+        hfMember.setBankCode(bankCode);
+        if (hfMemberDao.update(hfMember) <= 0) {
+            throw new BizException("绑卡失败,请重试");
+        }
+
+        //删除结算账户
+        SettleAccount.executeDeleteSettleAccount(hfMember.getSettleAccountId(), memberId);
+
+        Map<String, Object> accountInfo = new HashMap<String, Object>();
+        accountInfo.put("card_id", cardNo);
+        accountInfo.put("card_name", hfMember.getName());
+        accountInfo.put("tel_no", hfMember.getLegalMp());
+        accountInfo.put("bank_code", bankCode);
+        accountInfo.put("bank_acct_type", "1");
+        accountInfo.put("prov_code", hfMember.getProvCode());
+        accountInfo.put("area_code", hfMember.getAreaCode());
+
+        //创建结算账户
+        Map<String, Object> objectMap = SettleAccount.executeCreateSettleAccount(memberId, accountInfo);
+        return objectMap;
+    }
+}

+ 2 - 1
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/PayServiceImpl.java

@@ -1,6 +1,7 @@
 package com.keao.edu.user.service.impl;
 
 import com.keao.edu.common.exception.BizException;
+import com.keao.edu.thirdparty.adapay.ConfigInit;
 import com.keao.edu.thirdparty.adapay.Payment;
 import com.keao.edu.thirdparty.yqpay.YqPayUtil;
 import com.keao.edu.user.dao.SysConfigDao;
@@ -49,7 +50,7 @@ public class PayServiceImpl implements PayService {
         } else if (paymentChannel.equals("ADAPAY")) {
             payMap = Payment.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody);
             type = "ADAPAY";
-            routingMerNos = Payment.merNo;
+            routingMerNos = ConfigInit.merNo;
         } else {
             throw new BizException("收款渠道配置错误");
         }

+ 164 - 0
edu-user/edu-user-biz/src/main/resources/config/mybatis/HfMemberMapper.xml

@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.keao.edu.user.dao.HfMemberDao">
+    <resultMap id="hfMember" type="com.keao.edu.user.entity.HfMember">
+        <id column="id_" property="id"/>
+        <result column="name_" property="name"/>
+        <result column="member_id_" property="memberId"/>
+        <result column="prov_code_" property="provCode"/>
+        <result column="area_code_" property="areaCode"/>
+        <result column="social_credit_code_" property="socialCreditCode"/>
+        <result column="social_credit_code_expires_" property="socialCreditCodeExpires"/>
+        <result column="business_scope_" property="businessScope"/>
+        <result column="legal_person_" property="legalPerson"/>
+        <result column="legal_cert_id_" property="legalCertId"/>
+        <result column="legal_cert_id_expires_" property="legalCertIdExpires"/>
+        <result column="legal_mp_" property="legalMp"/>
+        <result column="address_" property="address"/>
+        <result column="zip_code_" property="zipCode"/>
+        <result column="card_no_" property="cardNo"/>
+        <result column="bank_code_" property="bankCode"/>
+        <result column="settle_account_id_" property="settleAccountId"/>
+        <result column="status_" property="status"/>
+        <result column="memo_" property="memo"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id_, name_, member_id_, prov_code_, area_code_, social_credit_code_, social_credit_code_expires_,
+        business_scope_, legal_person_, legal_cert_id_, legal_cert_id_expires_, legal_mp_,
+        address_, zip_code_, card_no_, bank_code_,settle_account_id_,status_, create_time_, update_time_
+    </sql>
+    <select id="get" parameterType="java.lang.Integer" resultMap="hfMember">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from hf_member
+        where id_ = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="delete" parameterType="java.lang.Integer">
+        <!--@mbg.generated-->
+        delete from hf_member
+        where id_ = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.keao.edu.user.entity.HfMember"
+            useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into hf_member (name_, member_id_, prov_code_,
+        area_code_, social_credit_code_, social_credit_code_expires_,
+        business_scope_, legal_person_, legal_cert_id_,
+        legal_cert_id_expires_, legal_mp_, address_,
+        zip_code_, card_no_, bank_code_,status_,
+        create_time_, update_time_)
+        values (#{name}, #{memberId}, #{provCode},
+        #{areaCode}, #{socialCreditCode}, #{socialCreditCodeExpires},
+        #{businessScope}, #{legalPerson}, #{legalCertId},
+        #{legalCertIdExpires}, #{legalMp}, #{address},
+        #{zipCode}, #{cardNo}, #{bankCode},#{status},
+        #{createTime}, #{updateTime})
+    </insert>
+    <update id="update" parameterType="com.keao.edu.user.entity.HfMember">
+        <!--@mbg.generated-->
+        update hf_member
+        <set>
+            <if test="name != null">
+                name_ = #{name},
+            </if>
+            <if test="memberId != null">
+                member_id_ = #{memberId},
+            </if>
+            <if test="provCode != null">
+                prov_code_ = #{provCode},
+            </if>
+            <if test="areaCode != null">
+                area_code_ = #{areaCode},
+            </if>
+            <if test="socialCreditCode != null">
+                social_credit_code_ = #{socialCreditCode},
+            </if>
+            <if test="socialCreditCodeExpires != null">
+                social_credit_code_expires_ = #{socialCreditCodeExpires},
+            </if>
+            <if test="businessScope != null">
+                business_scope_ = #{businessScope},
+            </if>
+            <if test="legalPerson != null">
+                legal_person_ = #{legalPerson},
+            </if>
+            <if test="legalCertId != null">
+                legal_cert_id_ = #{legalCertId},
+            </if>
+            <if test="legalCertIdExpires != null">
+                legal_cert_id_expires_ = #{legalCertIdExpires},
+            </if>
+            <if test="legalMp != null">
+                legal_mp_ = #{legalMp},
+            </if>
+            <if test="address != null">
+                address_ = #{address},
+            </if>
+            <if test="zipCode != null">
+                zip_code_ = #{zipCode},
+            </if>
+            <if test="cardNo != null">
+                card_no_ = #{cardNo},
+            </if>
+            <if test="bankCode != null">
+                bank_code_ = #{bankCode},
+            </if>
+            <if test="settleAccountId != null">
+                settle_account_id_ = #{settleAccountId},
+            </if>
+            <if test="memo != null">
+                memo_ = #{memo},
+            </if>
+            <if test="status != null">
+                status_ = #{status},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id,jdbcType=INTEGER}
+    </update>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="hfMember" parameterType="map">
+        SELECT * FROM hf_member
+        <include refid="queryPageSql"/>
+        ORDER BY id_
+        <include refid="global.limit"/>
+    </select>
+
+    <sql id="queryPageSql">
+        <where>
+            <if test="name != null">
+                AND name_ = #{name}
+            </if>
+            <if test="memberId != null">
+                AND member_id_ = #{memberId}
+            </if>
+            <if test="status != null">
+                AND status_ = #{status}
+            </if>
+        </where>
+    </sql>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*) FROM hf_member
+        <include refid="queryPageSql"/>
+    </select>
+
+    <select id="getByMemberId" resultMap="hfMember">
+        SELECT * FROM hf_member WHERE member_id_ = #{memberId} LIMIT 1
+    </select>
+
+    <select id="getByName" resultMap="hfMember">
+        SELECT * FROM hf_member WHERE name_ = #{name} LIMIT 1
+    </select>
+</mapper>

+ 1 - 6
edu-user/edu-user-server/src/main/java/com/keao/edu/user/UserServerApplication.java

@@ -40,11 +40,6 @@ public class UserServerApplication {
 	@Bean
 	public static void startMqtt() {
 		MerConfig merConfig = ConfigInit.merConfig;
-		NotifyCallback notifyCallback = new NotifyCallback();
-		try {
-			Adapay.startMqttListener(merConfig, notifyCallback);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
+		new NotifyCallback();
 	}
 }

+ 195 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/AdapayController.java

@@ -0,0 +1,195 @@
+package com.keao.edu.user.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.keao.edu.common.controller.BaseController;
+import com.keao.edu.common.entity.HttpResponseResult;
+import com.keao.edu.common.exception.BizException;
+import com.keao.edu.common.page.PageInfo;
+import com.keao.edu.thirdparty.adapay.ConfigInit;
+import com.keao.edu.thirdparty.adapay.CorpMember;
+import com.keao.edu.thirdparty.adapay.Payment;
+import com.keao.edu.user.dao.SysConfigDao;
+import com.keao.edu.user.entity.HfMember;
+import com.keao.edu.user.page.HfMemberQueryInfo;
+import com.keao.edu.user.service.HfMemberService;
+import com.keao.edu.util.date.DateUtil;
+import com.keao.edu.util.excel.POIUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.io.IOUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+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 javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@RequestMapping("adapay")
+@Api(tags = "汇付服务")
+@RestController
+public class AdapayController extends BaseController {
+
+    @Autowired
+    private HfMemberService hfMemberService;
+
+    @ApiOperation(value = "企业用户列表")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('adapay/queryPage')")
+    public HttpResponseResult<PageInfo<HfMember>> queryPage(HfMemberQueryInfo queryInfo) {
+        return succeed(hfMemberService.queryPage(queryInfo));
+    }
+
+    @ApiOperation("新建企业用户")
+    @PostMapping(value = "createMember")
+    @PreAuthorize("@pcs.hasPermissions('adapay/createMember')")
+    public HttpResponseResult<Map<String, Object>> createMember(HfMember member) throws Exception {
+        if (member.getMultipartFile().isEmpty()) {
+            return failed("证件压缩文件必传");
+        }
+        File file = new File("/var/tmp/" + member.getMultipartFile().getOriginalFilename());
+        InputStream inputStream = member.getMultipartFile().getInputStream();
+
+        try {
+            if (!file.getParentFile().exists()) {
+                file.getParentFile().mkdirs();
+            }
+            FileOutputStream fos = new FileOutputStream(file);
+            IOUtils.copy(inputStream, fos);
+            return succeed(hfMemberService.createMember(member, file));
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        } finally {
+            IOUtils.closeQuietly(inputStream);
+            boolean delete = file.delete();
+        }
+    }
+
+    @ApiOperation("修改企业用户(状态是failed才能修改)")
+    @PostMapping(value = "updateMember")
+    @PreAuthorize("@pcs.hasPermissions('adapay/updateMember')")
+    public HttpResponseResult<Map<String, Object>> updateMember(HfMember member) throws Exception {
+        if (member.getMultipartFile().isEmpty()) {
+            return failed("证件压缩文件必传");
+        }
+        File file = new File("/var/tmp/" + member.getMultipartFile().getOriginalFilename());
+        InputStream inputStream = member.getMultipartFile().getInputStream();
+
+        try {
+            if (!file.getParentFile().exists()) {
+                file.getParentFile().mkdirs();
+            }
+            FileOutputStream fos = new FileOutputStream(file);
+            IOUtils.copy(inputStream, fos);
+            return succeed(hfMemberService.updateMember(member, file));
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        } finally {
+            IOUtils.closeQuietly(inputStream);
+            boolean delete = file.delete();
+        }
+    }
+
+
+    @ApiOperation("绑定结算账户(succeeded 状态才能使用)")
+    @PostMapping(value = "createSettleAccount")
+    @PreAuthorize("@pcs.hasPermissions('adapay/createSettleAccount')")
+    public HttpResponseResult<Map<String, Object>> createSettleAccount(String memberId, String cardNo, String bankCode) throws Exception {
+        return succeed(hfMemberService.createSettleAccount(memberId, cardNo, bankCode));
+    }
+
+    @ApiOperation("查询企业用户信息")
+    @GetMapping(value = "getMemberInfo")
+    @PreAuthorize("@pcs.hasPermissions('adapay/getMemberInfo')")
+    public HttpResponseResult<Map<String, Object>> getMemberInfo(String memberId) throws Exception {
+        return succeed(CorpMember.executeQueryMember(memberId));
+    }
+
+
+    @ApiOperation("导出对账单")
+    @GetMapping(value = "exportBill")
+    @PreAuthorize("@pcs.hasPermissions('adapay/exportBill')")
+    public void 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;
+                        divMemberMap.putAll(paymentMap);
+                        if (divMemberMap.get("member_id").equals("0")) {
+                            divMemberMap.put("member_id", ConfigInit.merNo);
+                        }
+                        if (divMemberMap.get("fee_flag").equals("N")) {
+                            divMemberMap.put("fee_amt", "0.00");
+                        }
+                        data.add(divMemberMap);
+                    }
+                }
+            }
+            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", "amount", "fee_flag", "fee_amt", "party_order_id", "out_trans_id", "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();
+                }
+            }
+        }
+    }
+}

+ 12 - 0
edu-util/src/main/java/com/keao/edu/util/date/DateUtil.java

@@ -1211,6 +1211,18 @@ 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");