Browse Source

Merge branch 'master' of http://8.210.64.198:30000/a258771316/ym-ipos

chengxiaowen 1 năm trước cách đây
mục cha
commit
dcea6a2fd2

+ 2 - 0
src/main/java/com/poteviohealth/ym/ipos/YmIposApplication.java

@@ -6,6 +6,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
 
 /**
  * @author david
@@ -16,6 +17,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
 		"com.poteviohealth.cgp.common.integrated.customer","com.poteviohealth.cgp.common.integrated.order"})
 @EnableConfigurationProperties
 @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
+@ComponentScan(value = {"com.poteviohealth.ym","com.poteviohealth.cgp"})
 public class YmIposApplication {
 
 	public static void main(String[] args) {

+ 0 - 1
src/main/java/com/poteviohealth/ym/ipos/controller/app/SettlementAppController.java

@@ -122,7 +122,6 @@ public class SettlementAppController extends BaseWebController {
             DecimalFormat df = new DecimalFormat("#0.00");
             return VaultsResponse.failed("留存保证金为:"+new BigDecimal(df.format(groupLeaderDTO.getRemainedAmt() / 100.0))+"元,可提现金额不足");
         }*/
-
         dto.setAmount(dto.getAmount());
         return splitService.withdraw(dto);
     }

+ 194 - 96
src/main/java/com/poteviohealth/ym/ipos/controller/feign/IposFeignController.java

@@ -18,7 +18,6 @@ import com.poteviohealth.ym.ipos.service.*;
 import com.poteviohealth.ym.ipos.utils.YmUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import jodd.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.stereotype.Controller;
@@ -29,10 +28,9 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * 第三方支付
@@ -100,10 +98,18 @@ public class IposFeignController extends BaseFeignController {
     public VaultsResponse<List<SplitPay>> splitOrder(@RequestBody List<SplitInfo> list) {
 
         /**
+         * 分成顺序:平台自留->供应价/结算价->区域运营商分成->团长分成->站长分成->平台运营商
+         * 手续费:0.3%(由第三方提供)
          * 分账金额=(总价-手续费)
          * 分账 = 分账金额*99%;平台自留: 分账金额*1%
+         * 可分账 = 分账-供应价(结算价)
+         * 区域运营商分账 = 可分账 * 分账比例
+         * 剩余分账 = 可分账 - 区域运营商分账
+         * 团长分账 = 剩余分账 * 分账比例
+         * 站长分账 = 剩余分账 * 分账比例
+         * 平台运营商分账 = 可分账 - 区域运营商分账 -团长分账 -站长分账
          */
-        BigDecimal proportion = new BigDecimal(0.99);
+        BigDecimal proportion = new BigDecimal(0.01);
         List<SplitPay> returnList = Lists.newArrayList();
         for (SplitInfo splitInfo : list) {
             //List<SplitRecords> splitRecordsList = Lists.newArrayList();
@@ -118,131 +124,223 @@ public class IposFeignController extends BaseFeignController {
             records.setPayId(splitInfo.getPayId());
             records.setPaySn(splitInfo.getPaySn());
             records.setSumPrice(splitInfo.getSumPrice());
-            //平台分成
-            SplitRecordsDetail pt = new SplitRecordsDetail();
-            pt.setSplitId(records.getSplitId());
-            pt.setSourceId(0);
+            //手续费
             BigDecimal chargeAmount = new BigDecimal(pr.getChargeAmount());
             BigDecimal ptAmount = BigDecimal.ZERO;
             BigDecimal tzAmount = BigDecimal.ZERO;
+            BigDecimal stationAmount = BigDecimal.ZERO;
             BigDecimal ptyysAmount = BigDecimal.ZERO;
             BigDecimal supplierOneAmount = BigDecimal.ZERO;
             BigDecimal supplierTwoAmount = BigDecimal.ZERO;
             BigDecimal supplierAmount = BigDecimal.ZERO;
-            //团长分成
-            SplitRecordsDetail tz = new SplitRecordsDetail();
-            tz.setSplitId(records.getSplitId());
-            tz.setSourceId(3);
-
+            /**
+             * 0.平台自留金额
+             */
+            //平台自留
+            SplitRecordsDetail pt = new SplitRecordsDetail();
+            pt.setSplitId(records.getSplitId());
+            pt.setSourceId(0);
             for (SplitDetail detail : splitInfo.getDetails()) {
                 SplitPay sp = new SplitPay();
                 sp.setOrderId(detail.getOrderId());
                 sp.setSplitId(records.getSplitId());
-                //总价格 支付价-手续费
+                //总分账金额 支付价-手续费
                 BigDecimal sumPrice = new BigDecimal(detail.getPrice()).subtract(chargeAmount);
-                //运算价格 总价格*99%
-                BigDecimal price = sumPrice.multiply(proportion);
+                //平台自留=总分账金额*1%
+                BigDecimal ptDecimal = sumPrice.multiply(proportion).setScale(0, RoundingMode.HALF_UP);
+                //可分金额=总分账金额-平台自留
+                BigDecimal price = sumPrice.subtract(ptDecimal);
                 detail.setPrice(price.longValue());
-                //平台金额=总价格-运算价格
-                BigDecimal ptDecimal = sumPrice.subtract(price);
-                BigDecimal valDecimal = new BigDecimal("1");
-                if(ptDecimal.longValue() > 0){
-                    valDecimal = new BigDecimal(ptDecimal.longValue());
-                }
-                ptAmount = ptAmount.add(valDecimal);
+                //平台自留金额
+                ptAmount = ptAmount.add(ptDecimal);
                 returnList.add(sp);
-            }
-            pt.setDivAmt(String.valueOf(ptAmount.longValue()));
-            details.add(pt);
-
-            //一级供应商
-            Map<String, List<SplitDetail>> oneMaps = splitInfo.getDetails().stream().filter(s -> StringUtils.isNotEmpty(s.getSupplierOneMerchantId()) && s.getBelong().equals(1)).collect(Collectors.groupingBy(SplitDetail::getSupplierOneMerchantId));
-
-            for (String s : oneMaps.keySet()) {
-                SplitRecordsDetail supplierOne = new SplitRecordsDetail();
-                supplierOne.setSplitId(records.getSplitId());
-                supplierOne.setSourceId(2);
-                supplierOne.setMerchantId(s);
-                for (SplitDetail detail : oneMaps.get(s)) {
+                /**
+                 * 2.供应价/结算价 的分账(包含区域运营商/一级供应商/二级供应商/服务站)
+                 */
+                //一级供应商
+                if(StringUtils.isNotEmpty(detail.getSupplierOneMerchantId()) && detail.getBelong().equals(1)){
+                    SplitRecordsDetail supplierOne = new SplitRecordsDetail();
+                    supplierOne.setSplitId(records.getSplitId());
+                    supplierOne.setSourceId(3);
+                    supplierOne.setMerchantId(detail.getSupplierOneMerchantId());
+                    for (SplitRecordsDetail splitRecordsDetail : details) {
+                        if(splitRecordsDetail.getMerchantId().equals(detail.getSupplierOneMerchantId())){
+                            supplierOne = splitRecordsDetail;
+                            break;
+                        }
+                    }
+                    detail.setPrice(detail.getPrice()-detail.getConsignmentPrice());
                     supplierOneAmount = supplierOneAmount.add(new BigDecimal(detail.getConsignmentPrice()));
-                    detail.setPrice(new BigDecimal(detail.getPrice()).subtract(new BigDecimal(detail.getConsignmentPrice())).longValue());
-                }
-
-                if (supplierOneAmount.compareTo(BigDecimal.ZERO) == 1) {
-                    supplierOne.setDivAmt(String.valueOf(supplierOneAmount.longValue()));
-                    details.add(supplierOne);
-                }
-            }
-
-            //二级供应商
-            Map<String, List<SplitDetail>> twoMaps = splitInfo.getDetails().stream().filter(s -> StringUtils.isNotEmpty(s.getServiceStationMerchantId()) && s.getBelong().equals(2)).collect(Collectors.groupingBy(SplitDetail::getServiceStationMerchantId));
-
-            for (String s : twoMaps.keySet()) {
-                SplitRecordsDetail supplierTwo = new SplitRecordsDetail();
-                supplierTwo.setSplitId(records.getSplitId());
-                supplierTwo.setSourceId(2);
-                supplierTwo.setMerchantId(s);
-                for (SplitDetail detail : twoMaps.get(s)) {
-                    supplierTwoAmount = supplierTwoAmount.add(new BigDecimal(detail.getConsignmentPrice()));
+                    if (supplierOneAmount.compareTo(BigDecimal.ZERO) == 1) {
+                        supplierOne.setDivAmt(supplierOneAmount.toString());
+                        details.add(supplierOne);
+                    }
+                }else if(StringUtils.isNotEmpty(detail.getServiceStationMerchantId()) && detail.getBelong().equals(2)){
+                    //二级供应商
+                    SplitRecordsDetail supplierTwo = new SplitRecordsDetail();
+                    supplierTwo.setSplitId(records.getSplitId());
+                    supplierTwo.setSourceId(4);
+                    supplierTwo.setMerchantId(detail.getServiceStationMerchantId());
+                    boolean is_have = false;
+                    for (SplitRecordsDetail splitRecordsDetail : details) {
+                        if(splitRecordsDetail.getMerchantId().equals(detail.getServiceStationMerchantId())){
+                            supplierTwo = splitRecordsDetail;
+                            is_have = true;
+                            break;
+                        }
+                    }
                     detail.setPrice(detail.getPrice() - detail.getConsignmentPrice());
-                }
+                    supplierTwoAmount = supplierTwoAmount.add(new BigDecimal(detail.getConsignmentPrice()));
 
-                if (supplierTwoAmount.compareTo(BigDecimal.ZERO) == 1) {
-                    supplierTwo.setDivAmt(String.valueOf(supplierTwoAmount.longValue()));
-                    details.add(supplierTwo);
-                }
-            }
+                    if (supplierTwoAmount.compareTo(BigDecimal.ZERO) == 1) {
+                        supplierTwo.setDivAmt(supplierTwoAmount.toString());
+                        if(!is_have){
+                            details.add(supplierTwo);
+                        }
 
-            //供应商
-            Map<String, List<SplitDetail>> maps = splitInfo.getDetails().stream().filter(s -> StringUtils.isNotEmpty(s.getSupplierMerchantId()) && s.getBelong().equals(0)).collect(Collectors.groupingBy(SplitDetail::getSupplierMerchantId));
+                    }
+                }else if(detail.getBelong().equals(0)){
+                    //服务站
+                    if(StringUtils.isNotEmpty(detail.getServiceStationMerchantId()) && detail.getOrderType().equals(2)){
+                        SplitRecordsDetail serviceStation = new SplitRecordsDetail();
+                        serviceStation.setSplitId(records.getSplitId());
+                        serviceStation.setSourceId(5);
+                        serviceStation.setMerchantId(detail.getServiceStationMerchantId());
+                        boolean is_have = false;
+                        for (SplitRecordsDetail splitRecordsDetail : details) {
+                            if(splitRecordsDetail.getMerchantId().equals(detail.getServiceStationMerchantId())){
+                                serviceStation = splitRecordsDetail;
+                                is_have=true;
+                                break;
+                            }
+                        }
+                        stationAmount = stationAmount.add(new BigDecimal(detail.getSettlementPrice()));
+                        detail.setPrice(detail.getPrice() - detail.getSettlementPrice());
+                        if (stationAmount.compareTo(BigDecimal.ZERO) == 1) {
+                            serviceStation.setDivAmt(stationAmount.toString());
+                            if(!is_have){
+                                details.add(serviceStation);
+                            }
 
-            for (String s : maps.keySet()) {
-                SplitRecordsDetail supplier = new SplitRecordsDetail();
-                supplier.setSplitId(records.getSplitId());
-                supplier.setSourceId(2);
-                supplier.setMerchantId(s);
-                for (SplitDetail detail : maps.get(s)) {
-                    supplierAmount = supplierAmount.add(new BigDecimal(detail.getSettlementPrice()));
-                    detail.setPrice(new BigDecimal(detail.getPrice()).subtract(new BigDecimal(detail.getSettlementPrice())).longValue());
-                }
+                        }
+                    }else if(StringUtils.isNotEmpty(detail.getSupplierMerchantId()) && detail.getOrderType().equals(1)){
+                        //供应商
+                        boolean is_have = false;
+                        SplitRecordsDetail supplier = new SplitRecordsDetail();
+                        supplier.setSplitId(records.getSplitId());
+                        supplier.setSourceId(2);
+                        supplier.setMerchantId(detail.getSupplierMerchantId());
+                        for (SplitRecordsDetail splitRecordsDetail : details) {
+                            if(splitRecordsDetail.getMerchantId().equals(detail.getSupplierMerchantId())){
+                                supplier = splitRecordsDetail;
+                                is_have =true;
+                                break;
+                            }
+                        }
+                        supplierAmount = supplierAmount.add(new BigDecimal(detail.getSettlementPrice()));
+                        detail.setPrice(detail.getPrice()-detail.getSettlementPrice());
+                        if (supplierAmount.compareTo(BigDecimal.ZERO) == 1) {
+                            supplier.setDivAmt(supplierAmount.toString());
+                            if(!is_have){
+                                details.add(supplier);
+                            }
 
-                if (supplierAmount.compareTo(BigDecimal.ZERO) == 1) {
-                    supplier.setDivAmt(String.valueOf(supplierAmount.longValue()));
-                    details.add(supplier);
-                }
-            }
+                        }
+                    }
+                    /**
+                     * 3.分成
+                     */
+                    //区域运营商
+                    if(detail.getSupplierMoney()!= null && detail.getSupplierMoney()>0L){
+                        SplitRecordsDetail supplier = new SplitRecordsDetail();
+                        supplier.setSplitId(records.getSplitId());
+                        supplier.setSourceId(2);
+                        supplier.setMerchantId(detail.getSupplierMerchantId());
+                        boolean is_have = false;
+                        for (SplitRecordsDetail splitRecordsDetail : details) {
+                            if(splitRecordsDetail.getMerchantId().equals(detail.getSupplierMerchantId())){
+                                supplier = splitRecordsDetail;
+                                is_have =true;
+                                break;
+                            }
+                        }
+                        supplierAmount = supplierAmount.add(new BigDecimal(detail.getSupplierMoney()));
+                        detail.setPrice(detail.getPrice()-detail.getSupplierMoney());
+                        if (supplierAmount.compareTo(BigDecimal.ZERO) == 1) {
+                            supplier.setDivAmt(supplierAmount.toString());
+                            if(!is_have){
+                                details.add(supplier);
+                            }
+                        }
+                    }
 
-            for (SplitDetail detail : splitInfo.getDetails()) {
-                //团长金额
-                if (StringUtil.isNotEmpty(detail.getGroupLeaderMerchantId())) {
-                    tz.setMerchantId(detail.getGroupLeaderMerchantId());
-                    BigDecimal tbd = detail.getGroupCommission().multiply(new BigDecimal(detail.getPrice()));
-                    detail.setPrice(detail.getPrice()-tbd.longValue());
-                    tzAmount = tzAmount.add(tbd);
+                    //团长
+                    if(detail.getGroupCommissionMoney() != null && detail.getGroupCommissionMoney()>0L){
+                        SplitRecordsDetail tz = new SplitRecordsDetail();
+                        tz.setSplitId(records.getSplitId());
+                        tz.setSourceId(6);
+                        tz.setMerchantId(detail.getGroupLeaderMerchantId());
+                        boolean is_have = false;
+                        for (SplitRecordsDetail splitRecordsDetail : details) {
+                            if(splitRecordsDetail.getMerchantId().equals(detail.getGroupLeaderMerchantId())){
+                                tz = splitRecordsDetail;
+                                is_have =true;
+                                break;
+                            }
+                        }
+                        tzAmount = tzAmount.add(new BigDecimal(detail.getGroupCommissionMoney()));
+                        detail.setPrice(detail.getPrice()-detail.getGroupCommissionMoney());
+                        if (tzAmount.compareTo(BigDecimal.ZERO) == 1) {
+                            tz.setDivAmt(tzAmount.toString());
+                            if(!is_have){
+                                details.add(tz);
+                            }
+                        }
+                    }
+                    //站长
+                    if(detail.getStationmasterCommissionMoney() != null && detail.getStationmasterCommissionMoney()>0L){
+                        SplitRecordsDetail station = new SplitRecordsDetail();
+                        station.setSplitId(records.getSplitId());
+                        station.setSourceId(5);
+                        station.setMerchantId(detail.getStationmasterMerchantId());
+                        boolean is_have = false;
+                        for (SplitRecordsDetail splitRecordsDetail : details) {
+                            if(splitRecordsDetail.getMerchantId().equals(detail.getStationmasterMerchantId())){
+                                station = splitRecordsDetail;
+                                is_have =true;
+                                break;
+                            }
+                        }
+                        stationAmount = stationAmount.add(new BigDecimal(detail.getStationmasterCommissionMoney()));
+                        detail.setPrice(detail.getPrice()-detail.getStationmasterCommissionMoney());
+                        if (stationAmount.compareTo(BigDecimal.ZERO) == 1) {
+                            station.setDivAmt(stationAmount.toString());
+                            if(!is_have){
+                                details.add(station);
+                            }
+                        }
+                    }
+
+                    if(detail.getPrice()>0L){
+                        ptyysAmount = ptyysAmount.add(new BigDecimal(detail.getPrice()));
+                    }
                 }
             }
-            if (tzAmount.compareTo(BigDecimal.ZERO) == 1) {
-                tz.setDivAmt(String.valueOf(tzAmount.longValue()));
-                details.add(tz);
-            }
-
+            pt.setDivAmt(String.valueOf(ptAmount.longValue()));
+            details.add(pt);
 
             //平台运营商
             SplitRecordsDetail ptyys = new SplitRecordsDetail();
             ptyys.setSplitId(records.getSplitId());
             ptyys.setSourceId(1);
-            for (SplitDetail detail : splitInfo.getDetails()) {
-                ptyysAmount = ptyysAmount.add(new BigDecimal(detail.getPrice()));
-            }
             ptyys.setMerchantId(splitInfo.getOperatorMerchantId());
-            ptyys.setDivAmt(String.valueOf(ptyysAmount.longValue()));
+            ptyys.setDivAmt(ptyysAmount.toString());
             details.add(ptyys);
-            VaultsResponse vaultsResponse = splitService.delayConfirm(records,details);
+            /*VaultsResponse vaultsResponse = splitService.delayConfirm(records,details);
             if(!vaultsResponse.validate()){
                 records.setComment(vaultsResponse.getMessage());
-            }
+            }*/
             records.setStatus(2);
-            //splitRecordsList.add(records);
             splitRecordsService.save(records);
             splitRecordsDetailService.saveBatch(details);
         }

+ 5 - 0
src/main/java/com/poteviohealth/ym/ipos/model/merchant/back/UserSearchBack.java

@@ -4,6 +4,7 @@ import com.poteviohealth.ym.ipos.model.back.BaseBack;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -124,6 +125,10 @@ public class UserSearchBack extends BaseBack {
     @ApiModelProperty(value = "结算摘要")
     private String settle_abstract;
 
+
+    @ApiModelProperty("分账比例(自用)")
+    private BigDecimal proportion;
+
     @ApiModelProperty(value = "图片列表")
     private List<ImageListBack> image_list;
 }

+ 4 - 0
src/main/java/com/poteviohealth/ym/ipos/model/merchant/dto/UserDto.java

@@ -3,6 +3,7 @@ package com.poteviohealth.ym.ipos.model.merchant.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -134,6 +135,9 @@ public class UserDto {
     @ApiModelProperty(value = "商户状态,0:待进件,-1:进件失败(开户失败),2:进件成功(已开户并且业务入驻成功),3:通道开户成功(已开户,但未做业务入驻或业务入驻失败)")
     private String incoming_status;
 
+    @ApiModelProperty(value = "分成比例")
+    private BigDecimal proportion;
+
     @ApiModelProperty(value = "图片信息")
     private List<ImageListDto> image_list;
 }

+ 1 - 1
src/main/java/com/poteviohealth/ym/ipos/model/split/SplitRecordsDetail.java

@@ -23,7 +23,7 @@ public class SplitRecordsDetail extends BaseEntity {
     @ApiModelProperty(value = "商户号")
     private String merchantId;
 
-    @ApiModelProperty(value = "来源:0.平台,1.平台运营商,2.供应商,3.团长")
+    @ApiModelProperty(value = "来源:0.平台,1.平台运营商,2.区域运营商(结算和分成),3.一级供应商,4.二级供应商,5.服务站(结算和分成),6.团长")
     private Integer sourceId;
 
     @ApiModelProperty(value = "分账金额")

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

@@ -3,6 +3,7 @@ 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.OperatorIdParams;
 import com.poteviohealth.cgp.common.integrated.customer.CustomerFeignClient;
@@ -30,6 +31,7 @@ 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;
 
@@ -49,6 +51,8 @@ public class MerchantServiceImpl implements IMerchantService {
     private IAreaService areaService;
     @Resource
     private IPaymentService paymentService;
+    @Resource
+    private CacheService cacheService;
 
     /**
      * 上传图片
@@ -133,7 +137,7 @@ public class MerchantServiceImpl implements IMerchantService {
             }
             VaultsResponse<String> openModifyVault = this.merchantOpenModify(dto);
 
-            VaultsResponse<String> stringVault = updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),2,dto.getRemained_amt(),basicConfig.getCode());
+            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;
@@ -175,7 +179,7 @@ public class MerchantServiceImpl implements IMerchantService {
                         return entregisterVault;
                     }
                 }
-                updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),3,dto.getRemained_amt(),basicConfig.getCode());
+                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()){
@@ -191,7 +195,7 @@ public class MerchantServiceImpl implements IMerchantService {
                 return openVault;
             }
            // if(status != 2){
-                VaultsResponse<String> stringVault = updateMerchantId(dto.getId(), dto.getSourceId(), dto.getMerchant_id(),2,dto.getRemained_amt(),basicConfig.getCode());
+                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);
@@ -255,7 +259,7 @@ public class MerchantServiceImpl implements IMerchantService {
         }
 
         if(YmUtil.SUCCESS.equals(back.getResult().getId())){
-           VaultsResponse vaultsResponse = updateMerchantId(dto.getId(), dto.getSourceId(), back.getMerchant_id(),0,dto.getRemained_amt(),bc.getCode());
+           VaultsResponse vaultsResponse = updateMerchantId(dto.getId(), dto.getSourceId(), back.getMerchant_id(),0,dto.getRemained_amt(),bc.getCode(),dto.getProportion());
            if(!vaultsResponse.validate()){
                return vaultsResponse;
            }
@@ -264,7 +268,7 @@ public class MerchantServiceImpl implements IMerchantService {
         return VaultsResponse.failed(back.getResult().getComment());
     }
 
-    private VaultsResponse updateMerchantId(Integer id, Integer source, String merchantId,Integer status,Long remainedAmt,String code) {
+    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());
@@ -277,6 +281,9 @@ public class MerchantServiceImpl implements IMerchantService {
         if(source.equals(3)){
             vaultsResponse =  customerFeignClient.updateMerchantId(operatorIdParams);
         }else{
+            if(proportion != null){
+                operatorIdParams.setProportion(proportion.divide(new BigDecimal(100.0)));
+            }
             vaultsResponse =  partnerFeignClient.updateMerchantId(operatorIdParams);
         }
 
@@ -631,6 +638,10 @@ 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)));
+            }
+
         } catch (IllegalAccessException e) {
             e.printStackTrace();
             return VaultsResponse.failed(e.getMessage());

+ 1 - 0
src/main/java/com/poteviohealth/ym/ipos/service/impl/SplitServiceImpl.java

@@ -254,6 +254,7 @@ public class SplitServiceImpl implements ISplitService {
             return VaultsResponse.failed(e.getMessage());
         }
 
+
         SplitWithdraw splitWithdraw = new SplitWithdraw();
         splitWithdraw.setOperatorId(TokenContext.cureOperatorId());
         splitWithdraw.setWithdrawId(withdrawId);

+ 24 - 0
src/main/resources/uat/application.yml

@@ -34,6 +34,30 @@ spring:
       validation-query: SELECT 1
       test-while-idle: true
       driver-class-name: com.mysql.cj.jdbc.Driver
+  data:
+    elasticsearch:
+      cluster-name: my-application
+      cluster-nodes: 172.17.17.46:9300
+      repositories:
+        enabled: true
+      local: false
+  elasticsearch:
+    rest:
+      uris: [ "http://172.17.17.46:9200" ]
+  redis:
+    ################### redis 单机版  ##########################
+    host: ${REDIS_IP:172.17.17.46}
+    port: ${REDIS_PORT:6379}
+    database: ${REDIS_DB:3}
+    password: ${REDIS_PASSWORD:^n!&zJyvJj}
+    # 使用jedis连接池
+    jedis:
+      pool:
+        max-active: 8
+        max-wait: -1
+        max-idle: 8
+        min-idle: 0
+    timeout: 5000
 # mybatis config
 mybatis-plus:
   config-location: classpath:mybatis-config.xml

+ 24 - 0
src/main/resources/zky/application.yml

@@ -34,6 +34,30 @@ spring:
       validation-query: SELECT 1
       test-while-idle: true
       driver-class-name: com.mysql.cj.jdbc.Driver
+  data:
+    elasticsearch:
+      cluster-name: my-application
+      cluster-nodes: 10.6.17.125:12019
+      repositories:
+        enabled: true
+      local: false
+  elasticsearch:
+    rest:
+      uris: [ "http://10.6.17.125:12018" ]
+  redis:
+    ################### redis 单机版  ##########################
+    host: ${REDIS_IP:10.6.17.127}
+    port: ${REDIS_PORT:12003}
+    database: ${REDIS_DB:3}
+    password: ${REDIS_PASSWORD:MGc8$F36}
+    # 使用jedis连接池
+    jedis:
+      pool:
+        max-active: 8
+        max-wait: -1
+        max-idle: 8
+        min-idle: 0
+    timeout: 5000
 # mybatis config
 mybatis-plus:
   config-location: classpath:mybatis-config.xml