|
|
@@ -1,28 +1,33 @@
|
|
|
package com.poteviohealth.ym.ipos.service.impl;
|
|
|
|
|
|
-import cn.hutool.core.codec.Base64Encoder;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.alibaba.fastjson.TypeReference;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.poteviohealth.cgp.common.integrated.OperatorIdParams;
|
|
|
import com.poteviohealth.cgp.common.integrated.customer.CustomerFeignClient;
|
|
|
import com.poteviohealth.cgp.common.integrated.partner.PartnerFeignClient;
|
|
|
import com.poteviohealth.cgp.common.model.VaultsResponse;
|
|
|
+import com.poteviohealth.ym.ipos.model.Area;
|
|
|
import com.poteviohealth.ym.ipos.model.back.BaseBack;
|
|
|
import com.poteviohealth.ym.ipos.model.merchant.*;
|
|
|
+import com.poteviohealth.ym.ipos.model.merchant.back.ImageListBack;
|
|
|
import com.poteviohealth.ym.ipos.model.merchant.detail.*;
|
|
|
import com.poteviohealth.ym.ipos.model.merchant.dto.ImageDto;
|
|
|
import com.poteviohealth.ym.ipos.model.merchant.dto.UserDto;
|
|
|
import com.poteviohealth.ym.ipos.model.merchant.back.PictureBack;
|
|
|
import com.poteviohealth.ym.ipos.model.merchant.back.UserBack;
|
|
|
import com.poteviohealth.ym.ipos.model.merchant.back.UserSearchBack;
|
|
|
+import com.poteviohealth.ym.ipos.service.IAreaService;
|
|
|
import com.poteviohealth.ym.ipos.service.IMerchantService;
|
|
|
import com.poteviohealth.ym.ipos.utils.YmUtil;
|
|
|
import lombok.extern.log4j.Log4j2;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.apache.commons.lang3.time.DateFormatUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.io.IOException;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 商户入驻接口实现
|
|
|
@@ -38,6 +43,8 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
private PartnerFeignClient partnerFeignClient;
|
|
|
@Resource
|
|
|
private CustomerFeignClient customerFeignClient;
|
|
|
+ @Resource
|
|
|
+ private IAreaService areaService;
|
|
|
|
|
|
/**
|
|
|
* 上传图片
|
|
|
@@ -45,7 +52,7 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public VaultsResponse merchantPicture(ImageDto dto){
|
|
|
+ public VaultsResponse<String> merchantPicture(ImageDto dto){
|
|
|
Picture p = new Picture();
|
|
|
PictureDetail detail = new PictureDetail();
|
|
|
detail.setType(dto.getType());
|
|
|
@@ -53,7 +60,13 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
detail.setImage_content(dto.getBase64Str());
|
|
|
p.setMerchant_picture_request(detail);
|
|
|
|
|
|
- PictureBack back = (PictureBack) YmUtil.resultBack(p,new PictureBack());
|
|
|
+ PictureBack back = null;
|
|
|
+ try {
|
|
|
+ back = (PictureBack) YmUtil.resultBack(p,new PictureBack());
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return VaultsResponse.failed(e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
if(SUCCESS.equals(back.getResult().getId())){
|
|
|
return VaultsResponse.success(back.getId());
|
|
|
@@ -69,13 +82,34 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
*/
|
|
|
@Override
|
|
|
public VaultsResponse merchantCreateOpen(UserDto dto) {
|
|
|
+ VaultsResponse<UserSearchBack> vaultsResponse = this.merchantQuery(dto.getPhone(),null);
|
|
|
+ if(!vaultsResponse.validate()){
|
|
|
+ return vaultsResponse;
|
|
|
+ }
|
|
|
+ UserSearchBack searchBack = vaultsResponse.getData();
|
|
|
+ Integer status = 0;
|
|
|
+ if(searchBack != null){
|
|
|
+ status = Integer.parseInt(searchBack.getIncoming_status());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(StringUtils.isEmpty(dto.getIncoming_status())){
|
|
|
+ dto.setIncoming_status(status.toString());
|
|
|
+ }
|
|
|
+
|
|
|
if(StringUtils.isEmpty(dto.getMerchant_id())){
|
|
|
+ if(searchBack != null){
|
|
|
+ return VaultsResponse.failed("手机号码已被注册");
|
|
|
+ }
|
|
|
//添加商户
|
|
|
VaultsResponse<String> createVault = this.merchantCreate(dto);
|
|
|
if(!createVault.validate()){
|
|
|
return createVault;
|
|
|
}
|
|
|
dto.setMerchant_id(createVault.getData());
|
|
|
+ }else{
|
|
|
+ if(searchBack != null && !searchBack.getMerchant_id().equals(dto.getMerchant_id())){
|
|
|
+ return VaultsResponse.failed("手机号码已被注册");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if(dto.getIncoming_status().equals("2")){
|
|
|
@@ -102,6 +136,7 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
return entregisterVault;
|
|
|
}
|
|
|
}
|
|
|
+ updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),3);
|
|
|
}else{
|
|
|
VaultsResponse<String> indvmodifyVault = this.modifyVault(dto);
|
|
|
if(!indvmodifyVault.validate()){
|
|
|
@@ -114,6 +149,9 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
if(!openVault.validate()){
|
|
|
return openVault;
|
|
|
}
|
|
|
+ if(status != 2){
|
|
|
+ updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),2);
|
|
|
+ }
|
|
|
}
|
|
|
return VaultsResponse.success();
|
|
|
}
|
|
|
@@ -143,12 +181,6 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
*/
|
|
|
private VaultsResponse merchantCreate(UserDto dto) {
|
|
|
|
|
|
- VaultsResponse<UserSearchBack> vaultsResponse = this.merchantQuery(dto.getPhone(),null);
|
|
|
- if(vaultsResponse.validate()){
|
|
|
- String merchantId = vaultsResponse.getData().getMerchant_id();
|
|
|
- return updateMerchantId(dto.getId(), dto.getSourceId(), merchantId);
|
|
|
- }
|
|
|
-
|
|
|
User user = new User();
|
|
|
UserDetail detail = new UserDetail();
|
|
|
detail.setType(dto.getType());
|
|
|
@@ -156,20 +188,27 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
detail.setMerchant_name(dto.getMerchant_name());
|
|
|
detail.setPhone(dto.getPhone());
|
|
|
user.setMerchant_create_request(detail);
|
|
|
- UserBack back = (UserBack) YmUtil.resultBack(user,new UserBack());
|
|
|
+ UserBack back = null;
|
|
|
+ try {
|
|
|
+ back = (UserBack) YmUtil.resultBack(user,new UserBack());
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return VaultsResponse.failed(e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
if(SUCCESS.equals(back.getResult().getId())){
|
|
|
- return updateMerchantId(dto.getId(), dto.getSourceId(), back.getMerchant_id());
|
|
|
+ return updateMerchantId(dto.getId(), dto.getSourceId(), back.getMerchant_id(),0);
|
|
|
}
|
|
|
return VaultsResponse.failed(back.getResult().getComment());
|
|
|
}
|
|
|
|
|
|
- private VaultsResponse updateMerchantId(Integer id, Integer source, String merchantId) {
|
|
|
+ private VaultsResponse updateMerchantId(Integer id, Integer source, String merchantId,Integer status) {
|
|
|
VaultsResponse vaultsResponse = VaultsResponse.success(merchantId);
|
|
|
OperatorIdParams operatorIdParams = new OperatorIdParams();
|
|
|
operatorIdParams.setOperatorId(id);
|
|
|
operatorIdParams.setId(merchantId);
|
|
|
operatorIdParams.setSource(source);
|
|
|
+ operatorIdParams.setStatus(status);
|
|
|
if(source.equals(3)){
|
|
|
VaultsResponse cus = customerFeignClient.updateMerchantId(operatorIdParams);
|
|
|
if(!cus.validate()){
|
|
|
@@ -201,14 +240,20 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
}
|
|
|
detail.setIdentity_validity_type(dto.getIdentity_validity_type());
|
|
|
detail.setContact_phone(dto.getContact_phone());
|
|
|
- detail.setCert_photo_a(dto.getCert_photo_a());
|
|
|
- detail.setCert_photo_b(dto.getCert_photo_b());
|
|
|
+ detail.setCert_photo_a(this.merchantPicture(dto.getCert_photo_a()).getData());
|
|
|
+ detail.setCert_photo_b(this.merchantPicture(dto.getCert_photo_b()).getData());
|
|
|
detail.setLegal_name(dto.getLegal_name());
|
|
|
detail.setIdentity_no(dto.getIdentity_no());
|
|
|
detail.setMerchant_name(dto.getMerchant_name());
|
|
|
detail.setIdentity_type(dto.getIdentity_type());
|
|
|
iAdd.setMerchant_indvregister_request(detail);
|
|
|
- BaseBack back = (BaseBack) YmUtil.resultBack(iAdd,new BaseBack());
|
|
|
+ BaseBack back = null;
|
|
|
+ try {
|
|
|
+ back = (BaseBack) YmUtil.resultBack(iAdd,new BaseBack());
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return VaultsResponse.failed(e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
if(SUCCESS.equals(back.getResult().getId())){
|
|
|
return VaultsResponse.success();
|
|
|
@@ -231,11 +276,17 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
}
|
|
|
iUpdateDetail.setIdentity_validity_type(dto.getIdentity_validity_type());
|
|
|
iUpdateDetail.setContact_phone(dto.getContact_phone());
|
|
|
- iUpdateDetail.setCert_photo_a(dto.getCert_photo_a());
|
|
|
- iUpdateDetail.setCert_photo_b(dto.getCert_photo_b());
|
|
|
+ iUpdateDetail.setCert_photo_a(this.merchantPicture(dto.getCert_photo_a()).getData());
|
|
|
+ iUpdateDetail.setCert_photo_b(this.merchantPicture(dto.getCert_photo_b()).getData());
|
|
|
|
|
|
iUpdate.setMerchant_indvmodify_request(iUpdateDetail);
|
|
|
- BaseBack back = (BaseBack) YmUtil.resultBack(iUpdate,new BaseBack());
|
|
|
+ BaseBack back = null;
|
|
|
+ try {
|
|
|
+ back = (BaseBack) YmUtil.resultBack(iUpdate,new BaseBack());
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return VaultsResponse.failed(e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
if(SUCCESS.equals(back.getResult().getId())){
|
|
|
return VaultsResponse.success();
|
|
|
@@ -257,9 +308,10 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
detail.setLicense_end_date(dto.getLicense_end_date());
|
|
|
}
|
|
|
detail.setLicense_validity_type(dto.getLicense_validity_type());
|
|
|
- detail.setLicense_province_code(dto.getLicense_province_code());
|
|
|
- detail.setLicense_city_code(dto.getLicense_city_code());
|
|
|
- detail.setLicense_area_code(dto.getLicense_area_code());
|
|
|
+ List<String> areaList = areaService.getAreaCode(dto.getLicense_area());
|
|
|
+ detail.setLicense_province_code(areaList.get(0));
|
|
|
+ detail.setLicense_city_code(areaList.get(1));
|
|
|
+ detail.setLicense_area_code(areaList.get(2));
|
|
|
detail.setLicense_address(dto.getLicense_address());
|
|
|
detail.setLegal_name(dto.getLegal_name());
|
|
|
detail.setIdentity_no(dto.getIdentity_no());
|
|
|
@@ -270,14 +322,20 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
detail.setIdentity_validity_type(dto.getIdentity_validity_type());
|
|
|
detail.setContact_name(dto.getContact_name());
|
|
|
detail.setContact_phone(dto.getContact_phone());
|
|
|
- detail.setLicense_photo(dto.getLicense_photo());
|
|
|
- detail.setCert_photo_a(dto.getCert_photo_a());
|
|
|
- detail.setCert_photo_b(dto.getCert_photo_b());
|
|
|
+ detail.setLicense_photo(this.merchantPicture(dto.getLicense_photo()).getData());
|
|
|
+ detail.setCert_photo_a(this.merchantPicture(dto.getCert_photo_a()).getData());
|
|
|
+ detail.setCert_photo_b(this.merchantPicture(dto.getCert_photo_b()).getData());
|
|
|
detail.setMerchant_name(dto.getMerchant_name());
|
|
|
detail.setLicense_code(dto.getLicense_code());
|
|
|
detail.setIdentity_type(dto.getIdentity_type());
|
|
|
iAdd.setMerchant_entregister_request(detail);
|
|
|
- BaseBack back = (BaseBack) YmUtil.resultBack(iAdd,new BaseBack());
|
|
|
+ BaseBack back = null;
|
|
|
+ try {
|
|
|
+ back = (BaseBack) YmUtil.resultBack(iAdd,new BaseBack());
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return VaultsResponse.failed(e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
if(SUCCESS.equals(back.getResult().getId())){
|
|
|
return VaultsResponse.success();
|
|
|
@@ -299,9 +357,10 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
iUpdateDetail.setLicense_end_date(dto.getLicense_end_date());
|
|
|
}
|
|
|
iUpdateDetail.setLicense_validity_type(dto.getLicense_validity_type());
|
|
|
- iUpdateDetail.setLicense_province_code(dto.getLicense_province_code());
|
|
|
- iUpdateDetail.setLicense_city_code(dto.getLicense_city_code());
|
|
|
- iUpdateDetail.setLicense_area_code(dto.getLicense_area_code());
|
|
|
+ List<String> areaList = areaService.getAreaCode(dto.getLicense_area());
|
|
|
+ iUpdateDetail.setLicense_province_code(areaList.get(0));
|
|
|
+ iUpdateDetail.setLicense_city_code(areaList.get(1));
|
|
|
+ iUpdateDetail.setLicense_area_code(areaList.get(2));
|
|
|
iUpdateDetail.setLicense_address(dto.getLicense_address());
|
|
|
iUpdateDetail.setLegal_name(dto.getLegal_name());
|
|
|
iUpdateDetail.setIdentity_no(dto.getIdentity_no());
|
|
|
@@ -312,12 +371,18 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
iUpdateDetail.setIdentity_validity_type(dto.getIdentity_validity_type());
|
|
|
iUpdateDetail.setContact_name(dto.getContact_name());
|
|
|
iUpdateDetail.setContact_phone(dto.getContact_phone());
|
|
|
- iUpdateDetail.setLicense_photo(dto.getLicense_photo());
|
|
|
- iUpdateDetail.setCert_photo_a(dto.getCert_photo_a());
|
|
|
- iUpdateDetail.setCert_photo_b(dto.getCert_photo_b());
|
|
|
+ iUpdateDetail.setLicense_photo(this.merchantPicture(dto.getLicense_photo()).getData());
|
|
|
+ iUpdateDetail.setCert_photo_a(this.merchantPicture(dto.getCert_photo_a()).getData());
|
|
|
+ iUpdateDetail.setCert_photo_b(this.merchantPicture(dto.getCert_photo_b()).getData());
|
|
|
|
|
|
iUpdate.setMerchant_entmodify_request(iUpdateDetail);
|
|
|
- BaseBack back = (BaseBack) YmUtil.resultBack(iUpdate,new BaseBack());
|
|
|
+ BaseBack back = null;
|
|
|
+ try {
|
|
|
+ back = (BaseBack) YmUtil.resultBack(iUpdate,new BaseBack());
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return VaultsResponse.failed(e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
if(SUCCESS.equals(back.getResult().getId())){
|
|
|
return VaultsResponse.success();
|
|
|
@@ -333,7 +398,13 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
private VaultsResponse merchantOpen(UserDto dto){
|
|
|
OpenAdd openAdd = new OpenAdd();
|
|
|
openAdd.setMerchant_open_request(this.fill(dto));
|
|
|
- BaseBack back = (BaseBack) YmUtil.resultBack(openAdd,new BaseBack());
|
|
|
+ BaseBack back = null;
|
|
|
+ try {
|
|
|
+ back = (BaseBack) YmUtil.resultBack(openAdd,new BaseBack());
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return VaultsResponse.failed(e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
if(SUCCESS.equals(back.getResult().getId())){
|
|
|
return VaultsResponse.success(back);
|
|
|
@@ -352,17 +423,16 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
detail.setSettle_type(dto.getSettle_type());
|
|
|
detail.setSettlement_way(dto.getSettlement_way());
|
|
|
detail.setWithdraw_way(dto.getWithdraw_way());
|
|
|
- detail.setWithdraw_type(dto.getWithdraw_type());
|
|
|
- detail.setNature_day_num(dto.getNature_day_num());
|
|
|
detail.setCard_no(dto.getCard_no());
|
|
|
detail.setParent_bank_name(dto.getParent_bank_name());
|
|
|
detail.setParent_bank_code(dto.getParent_bank_code());
|
|
|
- detail.setProvince(dto.getProvince());
|
|
|
- detail.setCity(dto.getCity());
|
|
|
+ List<String> areaList = areaService.getAreaCode(dto.getBank_area());
|
|
|
+ detail.setProvince(areaList.get(0));
|
|
|
+ detail.setCity(areaList.get(1));
|
|
|
detail.setBranch_bank_code(dto.getBranch_bank_code());
|
|
|
detail.setBranch_bank_name(dto.getBranch_bank_name());
|
|
|
- detail.setSettle_photo_a(dto.getSettle_photo_a());
|
|
|
- detail.setSettle_photo_b(dto.getSettle_photo_b());
|
|
|
+ detail.setSettle_photo_a(this.merchantPicture(dto.getSettle_photo_a()).getData());
|
|
|
+ detail.setSettle_photo_b(this.merchantPicture(dto.getSettle_photo_b()).getData());
|
|
|
detail.setRemained_amt(dto.getRemained_amt());
|
|
|
detail.setSettle_abstract(dto.getSettle_abstract());
|
|
|
return detail;
|
|
|
@@ -376,7 +446,13 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
private VaultsResponse merchantOpenModify(UserDto dto){
|
|
|
OpenUpdate openUpdate = new OpenUpdate();
|
|
|
openUpdate.setMerchant_openmodify_request(this.fill(dto));
|
|
|
- BaseBack back = (BaseBack) YmUtil.resultBack(openUpdate,new BaseBack());
|
|
|
+ BaseBack back = null;
|
|
|
+ try {
|
|
|
+ back = (BaseBack) YmUtil.resultBack(openUpdate,new BaseBack());
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return VaultsResponse.failed(e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
if(SUCCESS.equals(back.getResult().getId())){
|
|
|
return VaultsResponse.success(back);
|
|
|
@@ -398,11 +474,29 @@ public class MerchantServiceImpl implements IMerchantService {
|
|
|
detail.setPhone(phone);
|
|
|
detail.setMerchant_id(merchantId);
|
|
|
userSearch.setMerchant_query_request(detail);
|
|
|
- UserSearchBack back = (UserSearchBack) YmUtil.resultBack(userSearch,new UserSearchBack());
|
|
|
+ UserSearchBack back = null;
|
|
|
+ try {
|
|
|
+ String val = (String) YmUtil.resultBack(userSearch,new UserSearchBack());
|
|
|
+ JSONObject jsonObject = new JSONObject(JSON.parseObject(val));
|
|
|
+ if(val.contains("image_list")){
|
|
|
+ List<ImageListBack> list = jsonObject.getJSONArray("image_list").stream().map(item -> JSON.parseObject(item.toString(), new TypeReference<ImageListBack>() {})).collect(Collectors.toList());
|
|
|
+ jsonObject.put("image_list",list);
|
|
|
+ }
|
|
|
+ back = JSONObject.toJavaObject(jsonObject, UserSearchBack.class);
|
|
|
+
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return VaultsResponse.failed(e.getMessage());
|
|
|
+ }
|
|
|
|
|
|
if(SUCCESS.equals(back.getResult().getId())){
|
|
|
return VaultsResponse.success(back);
|
|
|
+ }else if("9990".equals(back.getResult().getId())){
|
|
|
+ return VaultsResponse.success(null);
|
|
|
}
|
|
|
return VaultsResponse.failed();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|