浏览代码

add ADApay member api

周箭河 5 年之前
父节点
当前提交
9e1cb87031

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/HfMemberDao.java

@@ -0,0 +1,25 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.HfMember;
+import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+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);
+}

+ 71 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/HfMemberDto.java → mec-biz/src/main/java/com/ym/mec/biz/dal/entity/HfMember.java

@@ -1,16 +1,21 @@
-package com.ym.mec.biz.dal.dto;
+package com.ym.mec.biz.dal.entity;
 
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.web.multipart.MultipartFile;
 
-public class HfMemberDto {
+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 = "省份编号",required = true)
+    @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)
@@ -46,12 +51,34 @@ public class HfMemberDto {
     @ApiModelProperty(value = "银行卡号",required = true)
     private String cardNo;
 
-    @ApiModelProperty(value = "银行编码",required = true)
+    @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;
     }
@@ -179,4 +206,44 @@ public class HfMemberDto {
     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
mec-biz/src/main/java/com/ym/mec/biz/dal/page/HfCompanyQueryInfo.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+public class HfCompanyQueryInfo 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;
+    }
+}

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/HfMemberService.java

@@ -0,0 +1,14 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.HfMember;
+import com.ym.mec.common.service.BaseService;
+
+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> createSettleAccount(String memberId) throws Exception;
+}

+ 38 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/NotifyCallback.java

@@ -4,11 +4,14 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.huifu.adapay.Adapay;
 import com.huifu.adapay.notify.MQTTCallbackHandler;
+import com.ym.mec.biz.dal.dao.HfMemberDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.entity.HfMember;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.TenantPaymentOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.thirdparty.adapay.ConfigInit;
+import com.ym.mec.thirdparty.adapay.CorpMember;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -27,6 +30,8 @@ public class NotifyCallback implements MQTTCallbackHandler {
     private TenantPaymentOrderService tenantPaymentOrderService;
     @Autowired
     private SysConfigDao sysConfigDao;
+    @Autowired
+    private HfMemberDao hfMemberDao;
 
     private static NotifyCallback notifyCallback;
 
@@ -34,6 +39,9 @@ public class NotifyCallback implements MQTTCallbackHandler {
     public void init() {
         notifyCallback = this;
         String baseUrl = notifyCallback.sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+        if (!baseUrl.equals("https://mstuonline.dayaedu.com")) {
+            Adapay.prodMode = false;
+        }
         Adapay.setDeviceID(baseUrl);
     }
 
@@ -45,6 +53,8 @@ public class NotifyCallback implements MQTTCallbackHandler {
      */
     @Override
     public void paymentSuccessMessageArrived(String payment) throws Exception {
+        boolean prodMode = Adapay.prodMode;
+        System.out.println(String.format("receive paymentSuccess  msg=%s", prodMode));
         System.out.println(String.format("receive paymentSuccess  msg=%s", payment));
         JSONObject dataObj = JSON.parseObject(payment);
         if (!dataObj.getString("app_id").equals(ConfigInit.appId)) {
@@ -189,11 +199,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

+ 94 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/HfMemberSserviceImpl.java

@@ -0,0 +1,94 @@
+package com.ym.mec.biz.service.impl;
+
+import com.huifu.adapay.Adapay;
+import com.ym.mec.biz.dal.dao.HfMemberDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.entity.HfMember;
+import com.ym.mec.biz.service.HfMemberService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.adapay.CorpMember;
+import com.ym.mec.thirdparty.adapay.SettleAccount;
+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;
+    @Autowired
+    private SysConfigDao sysConfigDao;
+
+    @Override
+    public BaseDAO<Integer, HfMember> getDAO() {
+        return hfMemberDao;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> createMember(HfMember member, File file) throws Exception {
+        Date nowDate = new Date();
+        member.setCreateTime(nowDate);
+        member.setUpdateTime(nowDate);
+        member.setStatus("pending");
+        insert(member);
+
+        String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+        if (!baseUrl.equals("https://mstuonline.dayaedu.com")) {
+            Adapay.prodMode = false;
+        }
+
+        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
+    public Map<String, Object> createSettleAccount(String memberId) throws Exception {
+        String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+        if (!baseUrl.equals("https://mstuonline.dayaedu.com")) {
+            Adapay.prodMode = false;
+        }
+        HfMember hfMember = hfMemberDao.getByMemberId(memberId);
+
+        //删除结算账户
+        new SettleAccount().executeDeleteSettleAccount(hfMember.getSettleAccountId(),memberId);
+
+        Map<String, Object> accountInfo = new HashMap<String, Object>();
+        accountInfo.put("card_id", "8110601012601166984");
+        accountInfo.put("card_name", "烟台乐谷文化艺术咨询有限公司");
+        accountInfo.put("tel_no", "17826031203");
+        accountInfo.put("bank_code", "03020000");
+        accountInfo.put("bank_acct_type", "1");
+        accountInfo.put("prov_code", "0037");
+        accountInfo.put("area_code", "3715");
+
+        //创建结算账户
+        //new SettleAccount().executeCreateSettleAccount(memberId,accountInfo);
+        return null;
+    }
+}

+ 164 - 0
mec-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.ym.mec.biz.dal.dao.HfMemberDao">
+    <resultMap id="hfMember" type="com.ym.mec.biz.dal.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.ym.mec.biz.dal.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.ym.mec.biz.dal.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>

+ 11 - 148
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/CorpMember.java

@@ -5,168 +5,28 @@ import java.util.HashMap;
 import java.util.Map;
 
 import com.alibaba.fastjson.JSON;
+import com.huifu.adapay.core.exception.BaseAdaPayException;
 
 /**
- * @author 
+ * @author
  */
 public 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;
-
-    }
-
-    /**
-     * 查询 CorpMember
-     *
-     * @param member_id 待查询的member_id
-     * @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=======");
-        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;
-    }
-
-    /**
-     * 运行 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) throws Exception {
-        System.out.println("=======execute Create CorpMember begin=======");
-        Map<String, Object> memberParams = new HashMap<String, Object>();
-        memberParams.put("app_id", appId);
-        memberParams.putAll(info);
-
-        String path= "C:/Users/river/Desktop/mec/mec-thirdparty/libs/test.zip";
-
-        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
-     *
-     * @return 创建的CorpMember 对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> executeCreateMember( Map<String,Object> info,String path) throws Exception {
-        System.out.println("=======execute Create CorpMember begin=======");
-        Map<String, Object> memberParams = new HashMap<String, Object>();
-        memberParams.put("app_id", 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 {
+    public static 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));
+        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("查询企业用户,返回参数:" + JSON.toJSONString(member));
 
         System.out.println("=======execute query CorpMember end=======");
 
@@ -179,15 +39,18 @@ public class CorpMember extends ConfigInit {
      * @return 创建的CorpMember 对象
      * @throws Exception 异常
      */
-    public Map<String, Object> executeCreateMember(Map<String,Object> info,File file) throws Exception {
+    public static Map<String, Object> executeCreateMember(Map<String, Object> info, File file) throws Exception {
         System.out.println("=======execute Create CorpMember begin=======");
         Map<String, Object> memberParams = new HashMap<String, Object>();
         memberParams.put("app_id", appId);
         memberParams.putAll(info);
 
-        System.out.println("创建企业用户,请求参数:" + JSON.toJSONString(memberParams) );
         Map<String, Object> member = com.huifu.adapay.model.CorpMember.create(memberParams, file);
-        System.out.println("创建企业用户,返回参数:" + JSON.toJSONString(member) );
+        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;
     }
 

+ 20 - 0
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/SettleAccount.java

@@ -454,4 +454,24 @@ public class SettleAccount extends ConfigInit {
         return settleCount;
     }
 
+    /**
+     * 删除 SettleAccount
+     *
+     * @param settleCount_id 待删除的settleCount_id
+     * @return delete的settleCount 对象
+     * @throws Exception 异常
+     */
+    public Map<String, Object> executeDeleteSettleAccount(String settleCount_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", ConfigInit.appId);
+        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;
+    }
+
 }

+ 45 - 29
mec-web/src/main/java/com/ym/mec/web/controller/AdapayController.java

@@ -1,9 +1,15 @@
 package com.ym.mec.web.controller;
 
 import com.alibaba.fastjson.JSONArray;
-import com.ym.mec.biz.dal.dto.HfMemberDto;
+import com.huifu.adapay.Adapay;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.entity.HfMember;
+import com.ym.mec.biz.dal.page.HfCompanyQueryInfo;
+import com.ym.mec.biz.service.HfMemberService;
+import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.thirdparty.adapay.ConfigInit;
 import com.ym.mec.thirdparty.adapay.CorpMember;
 import com.ym.mec.common.controller.BaseController;
@@ -14,6 +20,7 @@ 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;
@@ -29,11 +36,25 @@ import java.util.*;
 @RestController
 public class AdapayController extends BaseController {
 
+    @Autowired
+    private HfMemberService hfMemberService;
+    @Autowired
+    private SysConfigDao sysConfigDao;
+
+    @ApiOperation(value = "企业用户列表")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('adapay/queryPage')")
+    public HttpResponseResult<PageInfo<HfMember>> queryPage(HfCompanyQueryInfo queryInfo) {
+        return succeed(hfMemberService.queryPage(queryInfo));
+    }
 
     @ApiOperation("新建企业用户")
     @PostMapping(value = "createMember")
-    public HttpResponseResult createMember(HfMemberDto member) throws Exception {
-
+    @PreAuthorize("@pcs.hasPermissions('adapay/createMember')")
+    public HttpResponseResult 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();
 
@@ -43,42 +64,37 @@ public class AdapayController extends BaseController {
             }
             FileOutputStream fos = new FileOutputStream(file);
             IOUtils.copy(inputStream, fos);
-
-            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 succeed(new CorpMember().executeCreateMember(memberParams, file));
-        } catch (IOException e) {
-            throw new BizException("文件上传失败,请重试");
+            return succeed(hfMemberService.createMember(member, file));
+        } catch (Exception e) {
+            return failed(e.getMessage());
         } finally {
             IOUtils.closeQuietly(inputStream);
-            file.deleteOnExit();
+            boolean delete = file.delete();
         }
     }
 
+    @ApiOperation("创建结算账户")
+    @PostMapping(value = "createSettleAccount")
+    @PreAuthorize("@pcs.hasPermissions('adapay/createSettleAccount')")
+    public HttpResponseResult createSettleAccount(String memberId) throws Exception {
+        hfMemberService.createSettleAccount(memberId);
+        return null;
+    }
+
     @ApiOperation("查询企业用户信息")
     @GetMapping(value = "getMemberInfo")
+    @PreAuthorize("@pcs.hasPermissions('adapay/getMemberInfo')")
     public HttpResponseResult getMemberInfo(String memberId) throws Exception {
-        return succeed(new CorpMember().executeQueryMember(memberId));
+        String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
+        if(!baseUrl.equals("https://mstuonline.dayaedu.com")){
+            Adapay.prodMode = false;
+        }
+        return succeed(CorpMember.executeQueryMember(memberId));
     }
 
-    @ApiOperation("查询企业用户信息")
+
+
+    @ApiOperation("导出对账单")
     @GetMapping(value = "exportBill")
     @PreAuthorize("@pcs.hasPermissions('adapay/exportBill')")
     public void exportBill(Date startTime, Date endTime, HttpServletResponse response) throws Exception {