浏览代码

Merge remote-tracking branch 'origin/master'

Joburgess 5 年之前
父节点
当前提交
2baf98f922

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/EmployeeDao.java

@@ -32,24 +32,24 @@ public interface EmployeeDao extends BaseDAO<Integer, Employee> {
      * @param userID
      * @param password
      */
-    void updatePassword(@Param("userID") Long userID, @Param("password") String password);
+    void updatePassword(@Param("userID") Integer userID, @Param("password") String password);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/17
      * 修改用户账户锁定状态
      */
-    int updateUserLockStatus(@Param("userID") Long userID);
+    int updateUserLockStatus(@Param("userID") Integer userID);
 
 
-    void updateUserLock(@Param("userID") Long userID, @Param("status") int status);
+    void updateUserLock(@Param("userID") Integer userID, @Param("status") int status);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/25
      * 修改用户离职日期
      */
-    int updateUserDemissionDate(@Param("userID") Long userID);
+    int updateUserDemissionDate(@Param("userID") Integer userID);
     /**
      * 根据手机号查询对象
      * @param phone

+ 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;
+    }
+}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/EmployeeService.java

@@ -24,7 +24,7 @@ public interface EmployeeService extends BaseService<Integer, Employee> {
      * @Date: 2019/9/17
      * 员工操作
      */
-    void employeeOperate(Long employeeId, EmployeeOperateEnum operate);
+    void employeeOperate(Integer employeeId, EmployeeOperateEnum operate);
 
     /**
      * 新增员工

+ 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, String cardNo, String bankCode) 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

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -142,15 +142,15 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	}
 
 	@Override
-	public void employeeOperate(Long employeeId, EmployeeOperateEnum operate) {
-		Employee employee = employeeDao.get(employeeId.intValue());
+	public void employeeOperate(Integer employeeId, EmployeeOperateEnum operate) {
+		Employee employee = employeeDao.get(employeeId);
 		switch (operate){
 			case RESET_PASSWORD:
 				employeeDao.updatePassword(employeeId,new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
 				break;
 			case LOCK_UNLOCK:
-				SysUser sysUser = sysUserFeignService.queryUserById(employee.getUserId());
-				if(employee.getDemissionDate() != null && sysUser.getLockFlag() == 1){
+				SysUser sysUser = sysUserFeignService.queryUserById(employeeId);
+				if(employee != null && employee.getDemissionDate() != null && sysUser.getLockFlag() == 1){
 					throw new BizException("操作失败:离职员工不允许解冻");
 				}
 				employeeDao.updateUserLockStatus(employeeId);

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

@@ -0,0 +1,109 @@
+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.exception.BizException;
+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 {
+        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);
+
+        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, String cardNo, String bankCode) 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);
+        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;
+    }
+}

+ 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;
     }
 

+ 48 - 5
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/SettleAccount.java

@@ -4,6 +4,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import com.alibaba.fastjson.JSON;
+import com.huifu.adapay.core.exception.BaseAdaPayException;
 
 /**
  * @author yingyong.wang
@@ -365,7 +366,7 @@ public class SettleAccount extends ConfigInit {
         settleCountParams.put("notify_url", "");
 
         System.out.println("取现接口,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.drawCash(settleCountParams,merchantKey);
+        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=======");
 
@@ -392,16 +393,16 @@ public class SettleAccount extends ConfigInit {
 
 
         System.out.println("查询余额账户,请求参数:" + JSON.toJSONString(settleCountParams));
-        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.queryBalance(settleCountParams,merchantKey);
+        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
@@ -430,14 +431,13 @@ public class SettleAccount extends ConfigInit {
     /**
      * 查询余额
      *
-
      * @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 {
+    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>();
 
@@ -454,4 +454,47 @@ public class SettleAccount extends ConfigInit {
         return settleCount;
     }
 
+    /**
+     * 删除 SettleAccount
+     *
+     * @param settleCount_id 待删除的settleCount_id
+     * @return delete的settleCount 对象
+     * @throws Exception 异常
+     */
+    public static Map<String, Object> executeDeleteSettleAccount(String settleCount_id, String member_id) throws Exception {
+        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);
+        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;
+    }
+
+
+    /**
+     * 创建 settleCount
+     *
+     * @return 创建的settleCount 对象
+     * @throws Exception 异常
+     */
+    public static Map<String, Object> executeCreateSettleAccount(String member_id, Map<String, Object> accountInfo) throws Exception {
+        Map<String, Object> settleCountParams = new HashMap<String, Object>(2);
+        settleCountParams.put("member_id", member_id);
+        settleCountParams.put("app_id", ConfigInit.appId);
+        settleCountParams.put("channel", "bank_account");
+        settleCountParams.put("account_info", accountInfo);
+        Map<String, Object> settleCount = com.huifu.adapay.model.SettleAccount.create(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;
+    }
+
 }

+ 46 - 30
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;
@@ -11,9 +17,12 @@ import com.ym.mec.thirdparty.adapay.Payment;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.excel.POIUtil;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 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 +38,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<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();
 
@@ -43,42 +66,35 @@ 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<Map<String, Object>> createSettleAccount(String memberId, String cardNo, String bankCode) throws Exception {
+        return succeed(hfMemberService.createSettleAccount(memberId, cardNo, bankCode));
+    }
+
     @ApiOperation("查询企业用户信息")
     @GetMapping(value = "getMemberInfo")
-    public HttpResponseResult getMemberInfo(String memberId) throws Exception {
-        return succeed(new CorpMember().executeQueryMember(memberId));
+    @PreAuthorize("@pcs.hasPermissions('adapay/getMemberInfo')")
+    public HttpResponseResult<Map<String, Object>> getMemberInfo(String memberId) throws Exception {
+        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 {

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/EmployeeController.java

@@ -69,7 +69,7 @@ public class EmployeeController extends BaseController {
     @ApiOperation(value = "员工操作")
     @PostMapping("/employeeOperate")
     @PreAuthorize("@pcs.hasPermissions('employee/employeeOperate')")
-    public Object employeeOperate(Long employeeId, EmployeeOperateEnum operate){
+    public Object employeeOperate(Integer employeeId, EmployeeOperateEnum operate){
         employeeService.employeeOperate(employeeId,operate);
         return succeed();
     }