mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 19:15:35 +08:00
update 分成功能
This commit is contained in:
@@ -18,6 +18,6 @@ public class SplitUserDetailDTO {
|
||||
// 服务费分成比例
|
||||
private BigDecimal serviceSplitRatio;
|
||||
|
||||
// 是否手续费承担方,N-否,Y-是,手续费承担方有且只能有一个
|
||||
// 是否手续费承担方,0-否,1-是,手续费承担方有且只能有一个
|
||||
private String feeFlag;
|
||||
}
|
||||
|
||||
@@ -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<StationSplitConfig> 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<SplitUserDetailDTO> 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%");
|
||||
|
||||
Reference in New Issue
Block a user