| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681 |
- 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<String> 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<UserSearchBack> 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<String> 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<String> indvmodifyVault = this.modifyVault(dto);
- if(!indvmodifyVault.validate()){
- log.info("indvmodifyVault==="+indvmodifyVault);
- return indvmodifyVault;
- }
- VaultsResponse<String> openModifyVault = this.merchantOpenModify(dto);
- VaultsResponse<String> 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<String> indvregisterVault = this.merchantIndvregister(dto);
- if(!indvregisterVault.validate()){
- log.info("indvregisterVault==="+indvregisterVault);
- return indvregisterVault;
- }
- }else{
- //商户
- VaultsResponse<String> 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<String> indvmodifyVault = this.modifyVault(dto);
- if(!indvmodifyVault.validate()){
- log.info("indvmodifyVault==="+indvmodifyVault);
- return indvmodifyVault;
- }
- }
- //入驻
- VaultsResponse<String> openVault = this.merchantOpen(dto);
- if(!openVault.validate()){
- log.info("openVault==="+openVault);
- return openVault;
- }
- // if(status != 2){
- VaultsResponse<String> 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<String> modifyVault(UserDto dto) {
- //修改开户信息
- if(dto.getType().equals("3")){
- //个人
- VaultsResponse<String> indvmodifyVault = this.merchantIndvmodify(dto);
- if(!indvmodifyVault.validate()){
- return indvmodifyVault;
- }
- }else{
- //商户
- VaultsResponse<String> 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<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());
- 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<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());
- 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<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());
- 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<UserSearchBack> merchantQuery(String phone, String merchantId){
- SearchDto dto = new SearchDto();
- dto.setPhone(phone);
- dto.setMerchantId(merchantId);
- return this.merchantQuery(dto);
- }
- @Override
- public VaultsResponse<UserSearchBack> 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<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);
- if(dto.getId() != null && dto.getSourceId() != null){
- EntityIdParams entityIdParams = new EntityIdParams();
- entityIdParams.setId(dto.getId());
- if (dto.getSourceId().equals(1)){
- VaultsResponse<OperatorDTO> vaultsResponse = partnerFeignClient.getOperator(entityIdParams);
- if(vaultsResponse.validate()){
- back.setProportion(vaultsResponse.getData().getSplitProportion().multiply(new BigDecimal(100)));
- }
- }else{
- VaultsResponse<OperatorDTO> 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();
- }
- }
|