qin 9 månader sedan
förälder
incheckning
eb82df824f

+ 9 - 1
src/main/java/com/poteviohealth/ym/ipos/service/IMerchantService.java

@@ -3,8 +3,8 @@ package com.poteviohealth.ym.ipos.service;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.ym.ipos.model.merchant.back.UserSearchBack;
 import com.poteviohealth.ym.ipos.model.merchant.dto.ImageDto;
+import com.poteviohealth.ym.ipos.model.merchant.dto.SearchDto;
 import com.poteviohealth.ym.ipos.model.merchant.dto.UserDto;
-import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 商户入驻接口
@@ -33,4 +33,12 @@ public interface IMerchantService {
      * @return
      */
      VaultsResponse<UserSearchBack> merchantQuery(String phone, String merchantId);
+
+
+    /**
+     * 分账商户查询
+     * @param dto
+     * @return
+     */
+    VaultsResponse<UserSearchBack> merchantQuery(SearchDto dto);
 }

+ 28 - 5
src/main/java/com/poteviohealth/ym/ipos/service/impl/MerchantServiceImpl.java

@@ -5,9 +5,11 @@ 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;
@@ -20,6 +22,7 @@ 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;
@@ -620,13 +623,21 @@ public class MerchantServiceImpl implements IMerchantService {
      */
     @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(phone);
-        detail.setMerchant_id(merchantId);
+        detail.setPhone(dto.getPhone());
+        detail.setMerchant_id(dto.getMerchantId());
         userSearch.setMerchant_query_request(detail);
         UserSearchBack back = null;
         try {
@@ -638,10 +649,21 @@ public class MerchantServiceImpl implements IMerchantService {
             }
             back = JSONObject.toJavaObject(jsonObject, UserSearchBack.class);
 
-            if(cacheService.exists("supplier_pro")){
-                back.setProportion(new BigDecimal(cacheService.get("supplier_pro")).multiply(new BigDecimal(100)));
+            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());
@@ -653,6 +675,7 @@ public class MerchantServiceImpl implements IMerchantService {
             return VaultsResponse.success(null);
         }
         return VaultsResponse.failed();
+
     }
 
 }