|
@@ -16,9 +16,11 @@ import com.szwl.common.myAnnotation.HuifuBaseCommon;
|
|
|
import com.szwl.config.OppsMerchantConfig;
|
|
|
import com.szwl.constant.HuifuConstant;
|
|
|
import com.szwl.model.bo.R;
|
|
|
+import com.szwl.model.entity.TAdmin;
|
|
|
import com.szwl.model.entity.THuifuMch;
|
|
|
import com.szwl.mapper.THuifuMchMapper;
|
|
|
import com.szwl.model.entity.THuifuMchCheck;
|
|
|
+import com.szwl.service.TAdminService;
|
|
|
import com.szwl.service.THuifuMchCheckService;
|
|
|
import com.szwl.service.THuifuMchService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -66,6 +68,240 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
|
|
|
@Autowired
|
|
|
private THuifuMchService tHuifuMchService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TAdminService tAdminService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 汇付用户开户
|
|
|
+ * @param tHuifuMchCheck
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public String openAccount(THuifuMchCheck tHuifuMchCheck) throws Exception {
|
|
|
+ // 请求接口
|
|
|
+ String url = "https://api.huifu.com/v2/user/basicdata/indv";
|
|
|
+ HuifuBaseCommon.doInit(OppsMerchantConfig.getMerchantConfig());
|
|
|
+ // 请求参数:Data
|
|
|
+ JSONObject request = new JSONObject();
|
|
|
+ // 请求流水号
|
|
|
+ request.put("req_seq_id", HuifuUtils.initReqSeqId());
|
|
|
+ // 请求日期
|
|
|
+ request.put("req_date", DateTools.getCurrentDateYYYYMMDD());
|
|
|
+ // 判断商户类型,“0”为个人,“1”为企业
|
|
|
+ if(tHuifuMchCheck.getType().equals("0")) {
|
|
|
+ // 个人姓名
|
|
|
+ request.put("name", tHuifuMchCheck.getRegName());
|
|
|
+ // 个人证件类型
|
|
|
+ request.put("cert_type", "00");
|
|
|
+ // 个人证件号码
|
|
|
+ request.put("cert_no", tHuifuMchCheck.getCertNo());
|
|
|
+ // 个人证件有效期类型,1:长期有效;0:非长期有效
|
|
|
+ request.put("cert_validity_type", tHuifuMchCheck.getCertValidityType());
|
|
|
+ // 个人证件有效期开始日期
|
|
|
+ request.put("cert_begin_date", tHuifuMchCheck.getCertBeginDate());
|
|
|
+ // 个人证件有效期截止日期
|
|
|
+ if (StrUtil.isNotEmpty(tHuifuMchCheck.getCertEndDate())) {
|
|
|
+ request.put("cert_end_date", tHuifuMchCheck.getCertEndDate());
|
|
|
+ }
|
|
|
+ // 手机号
|
|
|
+ request.put("mobile_no", tHuifuMchCheck.getPhone());
|
|
|
+ } else {
|
|
|
+ url = "https://api.huifu.com/v2/user/basicdata/ent";
|
|
|
+ // 企业用户名称
|
|
|
+ request.put("reg_name", tHuifuMchCheck.getRegName());
|
|
|
+ // 营业执照编号
|
|
|
+ request.put("license_code", tHuifuMchCheck.getLicenseCode());
|
|
|
+ // 营业执照有效期类型,0:非长期有效 ,1:长期有效
|
|
|
+ request.put("license_validity_type", tHuifuMchCheck.getLicenseValidityType());
|
|
|
+ // 营业执照有效期开始日期
|
|
|
+ request.put("license_begin_date", tHuifuMchCheck.getLicenseBeginDate());
|
|
|
+ // 营业执照有效期截止日期
|
|
|
+ if (StrUtil.isNotEmpty(tHuifuMchCheck.getLicenseEndDate())) {
|
|
|
+ request.put("license_end_date", tHuifuMchCheck.getLicenseEndDate());
|
|
|
+ }
|
|
|
+ // 注册省
|
|
|
+ request.put("reg_prov_id", tHuifuMchCheck.getRegProvId());
|
|
|
+ // 注册市
|
|
|
+ request.put("reg_area_id", tHuifuMchCheck.getRegAreaId());
|
|
|
+ // 注册区
|
|
|
+ request.put("reg_district_id", tHuifuMchCheck.getRegDistrictId());
|
|
|
+ // 注册详细地址
|
|
|
+ request.put("reg_detail", tHuifuMchCheck.getRegDetail());
|
|
|
+ // 法人姓名
|
|
|
+ request.put("legal_name", tHuifuMchCheck.getName());
|
|
|
+ // 法人证件类型
|
|
|
+ request.put("legal_cert_type", "00");
|
|
|
+ // 法人证件号码
|
|
|
+ request.put("legal_cert_no", tHuifuMchCheck.getCertNo());
|
|
|
+ // 法人证件有效期类型,1:长期有效;0:非长期有效 ;
|
|
|
+ request.put("legal_cert_validity_type", tHuifuMchCheck.getCertValidityType());
|
|
|
+ // 法人证件有效期开始日期
|
|
|
+ request.put("legal_cert_begin_date", tHuifuMchCheck.getCertBeginDate());
|
|
|
+ // 法人证件有效期截止日期
|
|
|
+ if (StrUtil.isNotEmpty(tHuifuMchCheck.getCertEndDate())) {
|
|
|
+ request.put("legal_cert_end_date", tHuifuMchCheck.getCertEndDate());
|
|
|
+ }
|
|
|
+ // 联系人姓名
|
|
|
+ request.put("contact_name", tHuifuMchCheck.getRegName());
|
|
|
+ // 联系人手机号
|
|
|
+ request.put("contact_mobile", tHuifuMchCheck.getPhone());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 签名:sign
|
|
|
+ String s = JSON.toJSONString(request);
|
|
|
+ String s1 = JSON.toJSONString(JSONObject.parseObject(s, TreeMap.class));
|
|
|
+ String sign = HuifuUtils.sign(s1, HuifuConstant.RSA_PRIVATE_KEY);
|
|
|
+
|
|
|
+ // 公共参数
|
|
|
+ System.out.println("请求参数:"+ request);
|
|
|
+ JSONObject requestData = new JSONObject();
|
|
|
+ requestData.put("sys_id", HuifuConstant.SYS_ID);
|
|
|
+ requestData.put("product_id", HuifuConstant.PRODUCT_ID);
|
|
|
+ requestData.put("sign", sign);
|
|
|
+ requestData.put("data", request);
|
|
|
+
|
|
|
+ String result = OkHttpClientTools.httpPost(url, requestData.toString(), HuifuConstant.PRODUCT_ID);
|
|
|
+ System.out.println("返回的数据:"+ result);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(result);
|
|
|
+ JSONObject dataObject = jsonObject.getJSONObject("data");
|
|
|
+ String code = dataObject.getString("resp_code");
|
|
|
+ if(code.equals(HuifuConstant.RESP_CODE)) {
|
|
|
+ String huifuId = dataObject.getString("huifu_id");
|
|
|
+ tHuifuMchCheck.setModifyDate(new Date());
|
|
|
+ tHuifuMchCheck.setStatus("1");
|
|
|
+ tHuifuMchCheck.setHuifuId(huifuId);
|
|
|
+ tHuifuMchCheckService.updateById(tHuifuMchCheck);
|
|
|
+ return HuifuConstant.SUCCESS;
|
|
|
+ }else {
|
|
|
+ String respDesc = dataObject.getString("resp_desc");
|
|
|
+ tHuifuMchCheck.setModifyDate(new Date());
|
|
|
+ tHuifuMchCheck.setStatus("3");
|
|
|
+ tHuifuMchCheck.setAuditDesc(respDesc);
|
|
|
+ tHuifuMchCheckService.updateById(tHuifuMchCheck);
|
|
|
+ return respDesc;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户业务入驻
|
|
|
+ * @param tHuifuMchCheck
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public String openBusiness(THuifuMchCheck tHuifuMchCheck) throws Exception {
|
|
|
+ // 请求接口
|
|
|
+ String url = "https://api.huifu.com/v2/user/busi/open";
|
|
|
+ HuifuBaseCommon.doInit(OppsMerchantConfig.getMerchantConfig());
|
|
|
+ // 请求参数:Data
|
|
|
+ JSONObject request = new JSONObject();
|
|
|
+ // 请求流水号
|
|
|
+ request.put("req_seq_id", HuifuUtils.initReqSeqId());
|
|
|
+ // 请求日期
|
|
|
+ request.put("req_date", DateTools.getCurrentDateYYYYMMDD());
|
|
|
+ // 汇付ID
|
|
|
+ request.put("huifu_id", tHuifuMchCheck.getHuifuId());
|
|
|
+ // 上级汇付Id:判断是申泽还是七云
|
|
|
+ TAdmin tAdmin = tAdminService.getById(tHuifuMchCheck.getAdminId());
|
|
|
+ if (StringUtils.isNotEmpty(tAdmin.getCompanyType()) && tAdmin.getCompanyType().equals("1")) {
|
|
|
+ request.put("upper_huifu_id", HuifuConstant.SC_DIV_HUIFU_ID);
|
|
|
+ } else {
|
|
|
+ request.put("upper_huifu_id", HuifuConstant.SZ_DIV_HUIFU_ID);
|
|
|
+ }
|
|
|
+ // 结算卡信息配置
|
|
|
+ JSONObject cardInfo = new JSONObject();
|
|
|
+ // 卡类型
|
|
|
+ cardInfo.put("card_type", tHuifuMchCheck.getCardType());
|
|
|
+ // 卡户名
|
|
|
+ cardInfo.put("card_name", tHuifuMchCheck.getCardName());
|
|
|
+ // 结算账号
|
|
|
+ cardInfo.put("card_no", tHuifuMchCheck.getCardNo());
|
|
|
+ // 银行所在省
|
|
|
+ cardInfo.put("prov_id", tHuifuMchCheck.getCardProvId());
|
|
|
+ // 银行所在市
|
|
|
+ cardInfo.put("area_id", tHuifuMchCheck.getCardAreaId());
|
|
|
+ // 持卡人证件类型
|
|
|
+ cardInfo.put("cert_type", "00");
|
|
|
+ // 持卡人证件号码
|
|
|
+ cardInfo.put("cert_no", tHuifuMchCheck.getCertNo());
|
|
|
+ // 持卡人证件有效期类型,1:长期有效,0:非长期有效;
|
|
|
+ cardInfo.put("cert_validity_type", tHuifuMchCheck.getCertValidityType());
|
|
|
+ // 持卡人证件有效期开始
|
|
|
+ cardInfo.put("cert_begin_date", tHuifuMchCheck.getCertBeginDate());
|
|
|
+ if (StringUtils.isNotEmpty(tHuifuMchCheck.getCertEndDate())) {
|
|
|
+ cardInfo.put("cert_end_date", tHuifuMchCheck.getCertEndDate());
|
|
|
+ }
|
|
|
+ // 持卡人证件有效期截止日期
|
|
|
+ request.put("card_info", cardInfo);
|
|
|
+ JSONObject settleConfig = new JSONObject();
|
|
|
+ // 结算周期
|
|
|
+ // 如果是修改接口
|
|
|
+ if (tHuifuMchCheck.getStatus().equals("4")) {
|
|
|
+ url = "https://api.huifu.com/v2/user/busi/modify";
|
|
|
+ settleConfig.put("settle_status", "1");
|
|
|
+ }
|
|
|
+ settleConfig.put("settle_cycle", "T1");
|
|
|
+ request.put("settle_config", settleConfig);
|
|
|
+
|
|
|
+ // 签名:sign
|
|
|
+ String s = JSON.toJSONString(request);
|
|
|
+ String s1 = JSON.toJSONString(JSONObject.parseObject(s, TreeMap.class));
|
|
|
+ String sign = HuifuUtils.sign(s1, HuifuConstant.RSA_PRIVATE_KEY);
|
|
|
+
|
|
|
+ // 公共参数
|
|
|
+ System.out.println("请求参数:"+ request);
|
|
|
+ JSONObject requestData = new JSONObject();
|
|
|
+ requestData.put("sys_id", HuifuConstant.SYS_ID);
|
|
|
+ requestData.put("product_id", HuifuConstant.PRODUCT_ID);
|
|
|
+ requestData.put("sign", sign);
|
|
|
+ requestData.put("data", request);
|
|
|
+
|
|
|
+ String result = OkHttpClientTools.httpPost(url, requestData.toString(), HuifuConstant.PRODUCT_ID);
|
|
|
+ System.out.println("返回的数据:"+ result);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(result);
|
|
|
+ JSONObject dataObject = jsonObject.getJSONObject("data");
|
|
|
+ String code = dataObject.getString("resp_code");
|
|
|
+ if(code.equals(HuifuConstant.RESP_CODE)) {
|
|
|
+ String huifuId = dataObject.getString("huifu_id");
|
|
|
+ tHuifuMchCheck.setModifyDate(new Date());
|
|
|
+ tHuifuMchCheck.setStatus("2");
|
|
|
+ tHuifuMchCheck.setHuifuId(huifuId);
|
|
|
+ LambdaQueryWrapper<THuifuMch> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(THuifuMch::getAdminId, tHuifuMchCheck.getAdminId());
|
|
|
+ THuifuMch huifuMch = tHuifuMchService.getOne(wrapper);
|
|
|
+ if (huifuMch != null) {
|
|
|
+ String[] ignoreProperties = {"id", "createDate","adminId"};
|
|
|
+ BeanUtil.copyProperties(tHuifuMchCheck, huifuMch, ignoreProperties);
|
|
|
+ huifuMch.setModifyDate(new Date());
|
|
|
+ tHuifuMchService.updateById(huifuMch);
|
|
|
+ } else {
|
|
|
+ THuifuMch tHuifuMch = new THuifuMch();
|
|
|
+ BeanUtil.copyProperties(tHuifuMchCheck, tHuifuMch);
|
|
|
+ // 判断持卡人证件有效期类型,1:长期有效,0:非长期有效
|
|
|
+ if(tHuifuMchCheck.getCertValidityType().equals("0")) {
|
|
|
+ LocalDate date = LocalDate.parse(tHuifuMchCheck.getCertEndDate(), DateTimeFormatter.ofPattern("yyyyMMdd"));
|
|
|
+ String certEndDate = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ tHuifuMch.setCertDate(certEndDate);
|
|
|
+ } else {
|
|
|
+ tHuifuMch.setCertDate("长期");
|
|
|
+ }
|
|
|
+ tHuifuMch.setCreateDate(new Date());
|
|
|
+ tHuifuMch.setModifyDate(new Date());
|
|
|
+ tHuifuMch.setHuifuId(huifuId);
|
|
|
+ tHuifuMchService.save(tHuifuMch);
|
|
|
+ }
|
|
|
+ tHuifuMchCheckService.updateById(tHuifuMchCheck);
|
|
|
+ return HuifuConstant.SUCCESS;
|
|
|
+ }else {
|
|
|
+ String respDesc = dataObject.getString("resp_desc");
|
|
|
+ tHuifuMchCheck.setModifyDate(new Date());
|
|
|
+ tHuifuMchCheck.setStatus("3");
|
|
|
+ tHuifuMchCheck.setAuditDesc(respDesc);
|
|
|
+ tHuifuMchCheckService.updateById(tHuifuMchCheck);
|
|
|
+ return respDesc;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 汇付个人商户入驻
|