package com.poteviohealth.ym.ipos.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.poteviohealth.cgp.common.facade.cache.CacheService; import com.poteviohealth.cgp.common.filter.TokenContext; import com.poteviohealth.cgp.common.integrated.EntityIdParams; 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.integrated.partner.model.OperatorDTO; import com.poteviohealth.cgp.common.model.VaultsResponse; import com.poteviohealth.ym.ipos.common.Basic; import com.poteviohealth.ym.ipos.model.BasicConfiguration; 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.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.model.merchant.detail.*; import com.poteviohealth.ym.ipos.model.merchant.dto.ImageDto; import com.poteviohealth.ym.ipos.model.merchant.dto.ImageListDto; import com.poteviohealth.ym.ipos.model.merchant.dto.SearchDto; import com.poteviohealth.ym.ipos.model.merchant.dto.UserDto; import com.poteviohealth.ym.ipos.model.payment.dto.BindDto; import com.poteviohealth.ym.ipos.service.IAreaService; import com.poteviohealth.ym.ipos.service.IMerchantService; import com.poteviohealth.ym.ipos.service.IPaymentService; import com.poteviohealth.ym.ipos.utils.YmUtil; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.List; import java.util.stream.Collectors; /** * 商户入驻接口实现 * @author Qin */ @Service @Log4j2 public class MerchantServiceImpl implements IMerchantService { @Resource private PartnerFeignClient partnerFeignClient; @Resource private CustomerFeignClient customerFeignClient; @Resource private IAreaService areaService; @Resource private IPaymentService paymentService; @Resource private CacheService cacheService; /** * 上传图片 * @param dto * @return */ @Override public VaultsResponse merchantPicture(ImageDto dto){ BasicConfiguration bc = Basic.getSystemParameter(TokenContext.cureOperatorId()); Picture p = new Picture(); p.setSystem_id(bc.getSystemId()); p.setIsspid(bc.getPid()); PictureDetail detail = new PictureDetail(); detail.setType(dto.getType()); detail.setImage_name(dto.getName()); detail.setImage_content(dto.getBase64Str()); p.setMerchant_picture_request(detail); PictureBack back = null; try { back = (PictureBack) YmUtil.resultBack(p,new PictureBack()); } catch (IllegalAccessException e) { e.printStackTrace(); return VaultsResponse.failed(e.getMessage()); } if(YmUtil.SUCCESS.equals(back.getResult().getId())){ return VaultsResponse.success(back.getId()); } return VaultsResponse.failed(back.getResult().getComment()); } /** * 商户新增/修改开户入驻 * @param dto * @return */ @Override public VaultsResponse merchantCreateOpen(UserDto dto) { BasicConfiguration basicConfig = Basic.getSystemParameter(TokenContext.cureOperatorId()); dto.setRemained_amt(dto.getRemained_amt()*100); VaultsResponse vaultsResponse = this.merchantQuery(dto.getPhone(),null); if(!vaultsResponse.validate()){ log.info("UserSearchBack==="+vaultsResponse); 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){ dto.setMerchant_id(searchBack.getMerchant_id()); //return VaultsResponse.failed("手机号码已被注册"); } //添加商户 VaultsResponse createVault = this.merchantCreate(dto); if(!createVault.validate()){ log.info("createVault==="+createVault); 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")){ //修改开户/入驻信息 VaultsResponse indvmodifyVault = this.modifyVault(dto); if(!indvmodifyVault.validate()){ log.info("indvmodifyVault==="+indvmodifyVault); return indvmodifyVault; } VaultsResponse openModifyVault = this.merchantOpenModify(dto); VaultsResponse stringVault = updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),2,dto.getRemained_amt(),basicConfig.getCode(),dto.getProportion()); if(!stringVault.validate()){ log.info("stringVault==="+stringVault); return stringVault; } if(dto.getSourceId().equals(1)){ BindDto bd = new BindDto(); bd.setAppId(stringVault.getData()); bd.setPosId(basicConfig.getCode()); bd.setStoreId(dto.getId().toString()); bd.setName("("+basicConfig.getCode()+")"+dto.getMerchant_short_name()); //修改门店信息 if(!dto.getMerchant_short_name().equals(searchBack.getBase_merchant_short_name())){ VaultsResponse changeVr = paymentService.changeBindPos(bd); if(!changeVr.validate()){ return changeVr; } } //终端绑定交易 return paymentService.bindPos(bd); } log.info("openModifyVault==="+openModifyVault); return openModifyVault; }else{ if(dto.getIncoming_status().equals("0") || dto.getIncoming_status().equals("-1")){ //未开户或开户失败时 if(dto.getType().equals("3")){ //个人 VaultsResponse indvregisterVault = this.merchantIndvregister(dto); if(!indvregisterVault.validate()){ log.info("indvregisterVault==="+indvregisterVault); return indvregisterVault; } }else{ //商户 VaultsResponse entregisterVault = this.merchantEntregister(dto); if(!entregisterVault.validate()){ log.info("entregisterVault==="+entregisterVault); return entregisterVault; } } updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),3,dto.getRemained_amt(),basicConfig.getCode(),dto.getProportion()); }else{ VaultsResponse indvmodifyVault = this.modifyVault(dto); if(!indvmodifyVault.validate()){ log.info("indvmodifyVault==="+indvmodifyVault); return indvmodifyVault; } } //入驻 VaultsResponse openVault = this.merchantOpen(dto); if(!openVault.validate()){ log.info("openVault==="+openVault); return openVault; } // if(status != 2){ VaultsResponse stringVault = updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),2,dto.getRemained_amt(),basicConfig.getCode(),dto.getProportion()); if(!stringVault.validate()){ log.info("stringVault==="+stringVault); return stringVault; } if(dto.getSourceId().equals(1)){ //终端绑定交易 BindDto bd = new BindDto(); bd.setAppId(stringVault.getData()); bd.setPosId(basicConfig.getCode()); bd.setStoreId(dto.getId().toString()); bd.setName("("+basicConfig.getCode()+")"+dto.getMerchant_short_name()); return paymentService.bindPos(bd); } // } } return VaultsResponse.success(); } private VaultsResponse modifyVault(UserDto dto) { //修改开户信息 if(dto.getType().equals("3")){ //个人 VaultsResponse indvmodifyVault = this.merchantIndvmodify(dto); if(!indvmodifyVault.validate()){ return indvmodifyVault; } }else{ //商户 VaultsResponse entmodifyVault = this.merchantEntmodify(dto); if(!entmodifyVault.validate()){ return entmodifyVault; } } return VaultsResponse.success(); } /** * 添加分账商户 * @param dto * @return */ private VaultsResponse merchantCreate(UserDto dto) { User user = new User(); BasicConfiguration bc = Basic.getSystemParameter(TokenContext.cureOperatorId()); user.setSystem_id(bc.getSystemId()); user.setIsspid(bc.getPid()); UserDetail detail = new UserDetail(); detail.setType(dto.getType()); detail.setMerchant_short_name(dto.getMerchant_short_name()); detail.setMerchant_name(dto.getMerchant_name()); detail.setPhone(dto.getPhone()); user.setMerchant_create_request(detail); UserBack back = null; try { back = (UserBack) YmUtil.resultBack(user,new UserBack()); } catch (IllegalAccessException e) { e.printStackTrace(); return VaultsResponse.failed(e.getMessage()); } if(YmUtil.SUCCESS.equals(back.getResult().getId())){ VaultsResponse vaultsResponse = updateMerchantId(dto.getId(), dto.getSourceId(), back.getMerchant_id(),0,dto.getRemained_amt(),bc.getCode(),dto.getProportion()); if(!vaultsResponse.validate()){ return vaultsResponse; } return VaultsResponse.success(back.getMerchant_id()); } return VaultsResponse.failed(back.getResult().getComment()); } private VaultsResponse updateMerchantId(Integer id, Integer source, String merchantId, Integer status, Long remainedAmt, String code, BigDecimal proportion) { VaultsResponse vaultsResponse; OperatorIdParams operatorIdParams = new OperatorIdParams(); operatorIdParams.setOperatorId(TokenContext.cureOperatorId()); operatorIdParams.setId(id.toString()); operatorIdParams.setMerchantId(merchantId); operatorIdParams.setSource(source); operatorIdParams.setStatus(status); operatorIdParams.setCode(code); operatorIdParams.setRemainedAmt(remainedAmt); if(source.equals(3)){ vaultsResponse = customerFeignClient.updateMerchantId(operatorIdParams); }else{ /* if(proportion != null){ operatorIdParams.setProportion(proportion.divide(new BigDecimal(100.0))); }*/ vaultsResponse = partnerFeignClient.updateMerchantId(operatorIdParams); } return vaultsResponse; } /** * 个人分账商户开户 * @param dto * @return */ private VaultsResponse merchantIndvregister(UserDto dto){ IndvregisterAdd iAdd = new IndvregisterAdd(); BasicConfiguration bc = Basic.getSystemParameter(TokenContext.cureOperatorId()); iAdd.setSystem_id(bc.getSystemId()); iAdd.setIsspid(bc.getPid()); IndvregisterAddDetail detail = new IndvregisterAddDetail(); detail.setMerchant_id(dto.getMerchant_id()); detail.setIdentity_begin_date(dto.getIdentity_begin_date()); if(StringUtils.isNotEmpty(dto.getIdentity_end_date())){ detail.setIdentity_end_date(dto.getIdentity_end_date()); } detail.setIdentity_validity_type(dto.getIdentity_validity_type()); detail.setContact_phone(dto.getContact_phone()); 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 = null; try { back = (BaseBack) YmUtil.resultBack(iAdd,new BaseBack()); } catch (IllegalAccessException e) { e.printStackTrace(); return VaultsResponse.failed(e.getMessage()); } if(YmUtil.SUCCESS.equals(back.getResult().getId())){ return VaultsResponse.success(); } return VaultsResponse.failed(back.getResult().getComment()); } /** * 个人分账商户修改 * @param dto * @return */ private VaultsResponse merchantIndvmodify(UserDto dto){ IndvregisterUpdate iUpdate = new IndvregisterUpdate(); BasicConfiguration bc = Basic.getSystemParameter(TokenContext.cureOperatorId()); iUpdate.setSystem_id(bc.getSystemId()); iUpdate.setIsspid(bc.getPid()); IndvregisterUpdateDetail iUpdateDetail = new IndvregisterUpdateDetail(); iUpdateDetail.setMerchant_id(dto.getMerchant_id()); iUpdateDetail.setIdentity_begin_date(dto.getIdentity_begin_date()); if(StringUtils.isNotEmpty(dto.getIdentity_end_date())){ iUpdateDetail.setIdentity_end_date(dto.getIdentity_end_date()); } iUpdateDetail.setIdentity_validity_type(dto.getIdentity_validity_type()); iUpdateDetail.setContact_phone(dto.getContact_phone()); if(StringUtils.isEmpty(dto.getCert_photo_a().getBase64Str())){ for (ImageListDto imageListDto : dto.getImage_list()) { if(imageListDto.getFile_type().equals("01")){ iUpdateDetail.setCert_photo_a(imageListDto.getFile_id()); break; } } }else{ iUpdateDetail.setCert_photo_a(this.merchantPicture(dto.getCert_photo_a()).getData()); } if(StringUtils.isEmpty(dto.getCert_photo_b().getBase64Str())){ for (ImageListDto imageListDto : dto.getImage_list()) { if(imageListDto.getFile_type().equals("02")){ iUpdateDetail.setCert_photo_b(imageListDto.getFile_id()); break; } } }else{ iUpdateDetail.setCert_photo_b(this.merchantPicture(dto.getCert_photo_b()).getData()); } iUpdate.setMerchant_indvmodify_request(iUpdateDetail); BaseBack back = null; try { back = (BaseBack) YmUtil.resultBack(iUpdate,new BaseBack()); } catch (IllegalAccessException e) { e.printStackTrace(); return VaultsResponse.failed(e.getMessage()); } if(YmUtil.SUCCESS.equals(back.getResult().getId())){ return VaultsResponse.success(); } return VaultsResponse.failed(back.getResult().getComment()); } /** * 企业分账商户开户 * @param dto * @return */ private VaultsResponse merchantEntregister(UserDto dto){ EntregisterAdd iAdd = new EntregisterAdd(); BasicConfiguration bc = Basic.getSystemParameter(TokenContext.cureOperatorId()); iAdd.setSystem_id(bc.getSystemId()); iAdd.setIsspid(bc.getPid()); EntregisterAddDetail detail = new EntregisterAddDetail(); detail.setMerchant_id(dto.getMerchant_id()); detail.setLicense_begin_date(dto.getLicense_begin_date()); if(StringUtils.isNotEmpty(dto.getLicense_end_date())){ detail.setLicense_end_date(dto.getLicense_end_date()); } detail.setLicense_validity_type(dto.getLicense_validity_type()); List 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()); detail.setIdentity_begin_date(dto.getIdentity_begin_date()); if(StringUtils.isNotEmpty(dto.getIdentity_end_date())){ detail.setIdentity_end_date(dto.getIdentity_end_date()); } detail.setIdentity_validity_type(dto.getIdentity_validity_type()); detail.setContact_name(dto.getContact_name()); detail.setContact_phone(dto.getContact_phone()); 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 = null; try { back = (BaseBack) YmUtil.resultBack(iAdd,new BaseBack()); } catch (IllegalAccessException e) { e.printStackTrace(); return VaultsResponse.failed(e.getMessage()); } if(YmUtil.SUCCESS.equals(back.getResult().getId())){ return VaultsResponse.success(); } return VaultsResponse.failed(back.getResult().getComment()); } /** * 企业分账商户修改 * @param dto * @return */ private VaultsResponse merchantEntmodify(UserDto dto){ EntregisterUpdate iUpdate = new EntregisterUpdate(); BasicConfiguration bc = Basic.getSystemParameter(TokenContext.cureOperatorId()); iUpdate.setSystem_id(bc.getSystemId()); iUpdate.setIsspid(bc.getPid()); EntregisterUpdateDetail iUpdateDetail = new EntregisterUpdateDetail(); iUpdateDetail.setMerchant_id(dto.getMerchant_id()); iUpdateDetail.setLicense_begin_date(dto.getLicense_begin_date()); if(StringUtils.isNotEmpty(dto.getLicense_end_date())){ iUpdateDetail.setLicense_end_date(dto.getLicense_end_date()); } iUpdateDetail.setLicense_validity_type(dto.getLicense_validity_type()); List 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()); iUpdateDetail.setIdentity_begin_date(dto.getIdentity_begin_date()); if(StringUtils.isNotEmpty(dto.getIdentity_end_date())){ iUpdateDetail.setIdentity_end_date(dto.getIdentity_end_date()); } iUpdateDetail.setIdentity_validity_type(dto.getIdentity_validity_type()); iUpdateDetail.setContact_name(dto.getContact_name()); iUpdateDetail.setContact_phone(dto.getContact_phone()); if(StringUtils.isEmpty(dto.getLicense_photo().getBase64Str())){ for (ImageListDto imageListDto : dto.getImage_list()) { if(imageListDto.getFile_type().equals("03")){ iUpdateDetail.setLicense_photo(imageListDto.getFile_id()); break; } } }else{ iUpdateDetail.setLicense_photo(this.merchantPicture(dto.getLicense_photo()).getData()); } if(StringUtils.isEmpty(dto.getCert_photo_a().getBase64Str())){ for (ImageListDto imageListDto : dto.getImage_list()) { if(imageListDto.getFile_type().equals("01")){ iUpdateDetail.setCert_photo_a(imageListDto.getFile_id()); break; } } }else{ iUpdateDetail.setCert_photo_a(this.merchantPicture(dto.getCert_photo_a()).getData()); } if(StringUtils.isEmpty(dto.getCert_photo_b().getBase64Str())){ for (ImageListDto imageListDto : dto.getImage_list()) { if(imageListDto.getFile_type().equals("02")){ iUpdateDetail.setCert_photo_b(imageListDto.getFile_id()); break; } } }else{ iUpdateDetail.setCert_photo_b(this.merchantPicture(dto.getCert_photo_b()).getData()); } iUpdate.setMerchant_entmodify_request(iUpdateDetail); BaseBack back = null; try { back = (BaseBack) YmUtil.resultBack(iUpdate,new BaseBack()); } catch (IllegalAccessException e) { e.printStackTrace(); return VaultsResponse.failed(e.getMessage()); } if(YmUtil.SUCCESS.equals(back.getResult().getId())){ return VaultsResponse.success(); } return VaultsResponse.failed(back.getResult().getComment()); } /** * 分账商户业务入驻 * @param dto * @return */ private VaultsResponse merchantOpen(UserDto dto){ OpenAdd openAdd = new OpenAdd(); BasicConfiguration bc = Basic.getSystemParameter(TokenContext.cureOperatorId()); openAdd.setSystem_id(bc.getSystemId()); openAdd.setIsspid(bc.getPid()); openAdd.setMerchant_open_request(this.fill(dto)); BaseBack back = null; try { back = (BaseBack) YmUtil.resultBack(openAdd,new BaseBack()); } catch (IllegalAccessException e) { e.printStackTrace(); return VaultsResponse.failed(e.getMessage()); } if(YmUtil.SUCCESS.equals(back.getResult().getId())){ return VaultsResponse.success(back); }else if(YmUtil.ERROR.equals(back.getResult().getId())){ return VaultsResponse.failed(back.getResult().getComment()); } return VaultsResponse.failed(); } /** * 入驻数据填充 * @param dto * @return */ private OpenDetail fill(UserDto dto){ OpenDetail detail = new OpenDetail(); detail.setMerchant_id(dto.getMerchant_id()); detail.setSettle_type(dto.getSettle_type()); /* detail.setSettlement_way(dto.getSettlement_way()); detail.setWithdraw_way(dto.getWithdraw_way());*/ detail.setCard_no(dto.getCard_no()); detail.setParent_bank_name(dto.getParent_bank_name()); detail.setParent_bank_code(dto.getParent_bank_code()); List 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()); if(StringUtils.isEmpty(dto.getSettle_photo_a().getBase64Str())){ for (ImageListDto imageListDto : dto.getImage_list()) { if(imageListDto.getFile_type().equals("13")){ detail.setSettle_photo_a(imageListDto.getFile_id()); break; } } }else{ detail.setSettle_photo_a(this.merchantPicture(dto.getSettle_photo_a()).getData()); } if(StringUtils.isEmpty(dto.getSettle_photo_b().getBase64Str())){ for (ImageListDto imageListDto : dto.getImage_list()) { if(imageListDto.getFile_type().equals("14")){ detail.setSettle_photo_b(imageListDto.getFile_id()); break; } } }else{ 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; } /** * 分账商户业务入驻修改 * @param dto * @return */ private VaultsResponse merchantOpenModify(UserDto dto){ OpenUpdate openUpdate = new OpenUpdate(); BasicConfiguration bc = Basic.getSystemParameter(TokenContext.cureOperatorId()); openUpdate.setSystem_id(bc.getSystemId()); openUpdate.setIsspid(bc.getPid()); openUpdate.setMerchant_openmodify_request(this.fill(dto)); BaseBack back = null; try { back = (BaseBack) YmUtil.resultBack(openUpdate,new BaseBack()); } catch (IllegalAccessException e) { e.printStackTrace(); return VaultsResponse.failed(e.getMessage()); } if(YmUtil.SUCCESS.equals(back.getResult().getId())){ return VaultsResponse.success(back); } return VaultsResponse.failed(); } /** * 分账商户查询 * @param phone * @param merchantId * @return */ @Override public VaultsResponse merchantQuery(String phone, String merchantId){ SearchDto dto = new SearchDto(); dto.setPhone(phone); dto.setMerchantId(merchantId); return this.merchantQuery(dto); } @Override public VaultsResponse merchantQuery(SearchDto dto) { UserSearch userSearch = new UserSearch(); BasicConfiguration bc = Basic.getSystemParameter(TokenContext.cureOperatorId()); userSearch.setSystem_id(bc.getSystemId()); userSearch.setIsspid(bc.getPid()); UserSearchDetail detail = new UserSearchDetail(); detail.setPhone(dto.getPhone()); detail.setMerchant_id(dto.getMerchantId()); userSearch.setMerchant_query_request(detail); 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 list = jsonObject.getJSONArray("image_list").stream().map(item -> JSON.parseObject(item.toString(), new TypeReference() {})).collect(Collectors.toList()); jsonObject.put("image_list",list); } back = JSONObject.toJavaObject(jsonObject, UserSearchBack.class); if(dto.getId() != null && dto.getSourceId() != null){ EntityIdParams entityIdParams = new EntityIdParams(); entityIdParams.setId(dto.getId()); if (dto.getSourceId().equals(1)){ VaultsResponse vaultsResponse = partnerFeignClient.getOperator(entityIdParams); if(vaultsResponse.validate()){ back.setProportion(vaultsResponse.getData().getSplitProportion().multiply(new BigDecimal(100))); } }else{ VaultsResponse vaultsResponse = partnerFeignClient.getSupplier(entityIdParams); if(vaultsResponse.validate()){ back.setProportion(vaultsResponse.getData().getSplitProportion().multiply(new BigDecimal(100))); } } } } catch (IllegalAccessException e) { e.printStackTrace(); return VaultsResponse.failed(e.getMessage()); } if(YmUtil.SUCCESS.equals(back.getResult().getId())){ return VaultsResponse.success(back); }else if("9990".equals(back.getResult().getId())){ return VaultsResponse.success(null); } return VaultsResponse.failed(); } }