diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/SplitUserDetailDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/SplitUserDetailDTO.java index 04080c4b9..398a834cc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/SplitUserDetailDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/SplitUserDetailDTO.java @@ -18,6 +18,6 @@ public class SplitUserDetailDTO { // 服务费分成比例 private BigDecimal serviceSplitRatio; - // 是否手续费承担方,N-否,Y-是,手续费承担方有且只能有一个 + // 是否手续费承担方,0-否,1-是,手续费承担方有且只能有一个 private String feeFlag; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/StationSplitConfigServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/StationSplitConfigServiceImpl.java index 113424da4..9f35f6ac1 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/StationSplitConfigServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/StationSplitConfigServiceImpl.java @@ -6,11 +6,14 @@ import com.jsowell.common.enums.DelFlagEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.SecurityUtils; +import com.jsowell.pile.domain.AdapayMemberAccount; import com.jsowell.pile.domain.StationSplitConfig; import com.jsowell.pile.dto.SplitConfigDTO; import com.jsowell.pile.dto.SplitUserDetailDTO; import com.jsowell.pile.mapper.StationSplitConfigMapper; +import com.jsowell.pile.service.AdapayMemberAccountService; import com.jsowell.pile.service.StationSplitConfigService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -24,6 +27,9 @@ public class StationSplitConfigServiceImpl implements StationSplitConfigService{ @Resource private StationSplitConfigMapper stationSplitConfigMapper; + @Autowired + private AdapayMemberAccountService adapayMemberAccountService; + @Override public List queryByStationId(String stationId) { return stationSplitConfigMapper.queryByStationId(stationId); @@ -35,21 +41,31 @@ public class StationSplitConfigServiceImpl implements StationSplitConfigService{ if (splitConfigDTO.getSplitUserDetailList().size() > 7) { throw new BusinessException("", "参与分成的用户不能超过7位"); } - // 只能有一位手续费承担方, 超过则报错 - int feeFlagCount = 0; + + // 根据运营商查询汇付会员信息 + AdapayMemberAccount adapayMemberAccount = adapayMemberAccountService.selectByMerchantId(splitConfigDTO.getMerchantId()); + if (adapayMemberAccount == null) { + throw new BusinessException("", "未查询到该运营商的汇付会员信息"); + } + if (!Constants.ONE.equals(adapayMemberAccount.getStatus())) { + throw new BusinessException("", "该运营商的汇付会员信息未审核通过"); + } + // 校验分成比例相加是否为100.0% List splitUserDetailList = splitConfigDTO.getSplitUserDetailList(); + int feeFlagCount = 0; // 手续费承担方数 BigDecimal totalElectricitySplitRatio = BigDecimal.ZERO; BigDecimal totalServiceSplitRatio = BigDecimal.ZERO; for (SplitUserDetailDTO splitUserDetailDTO : splitUserDetailList) { - totalElectricitySplitRatio = totalElectricitySplitRatio.add(splitUserDetailDTO.getElectricitySplitRatio()); - totalServiceSplitRatio = totalServiceSplitRatio.add(splitUserDetailDTO.getServiceSplitRatio()); - if (Constants.Y.equals(splitUserDetailDTO.getFeeFlag())) { + if (Constants.ONE.equals(splitUserDetailDTO.getFeeFlag())) { feeFlagCount++; } + totalElectricitySplitRatio = totalElectricitySplitRatio.add(splitUserDetailDTO.getElectricitySplitRatio()); + totalServiceSplitRatio = totalServiceSplitRatio.add(splitUserDetailDTO.getServiceSplitRatio()); } - if (feeFlagCount > 1) { - throw new BusinessException("", "只能有一位手续费承担方"); + if (feeFlagCount != 1) { + // 只能有一位手续费承担方, 超过则报错 + throw new BusinessException("", "手续费承担方设置错误, 有且只能有1位手续费承担方"); } if (totalElectricitySplitRatio.compareTo(BigDecimal.valueOf(100)) != 0) { throw new BusinessException("", "电费分成比例相加必须为100.0%");