mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-15 07:18:31 +08:00
update 分成功能
This commit is contained in:
@@ -18,6 +18,6 @@ public class SplitUserDetailDTO {
|
|||||||
// 服务费分成比例
|
// 服务费分成比例
|
||||||
private BigDecimal serviceSplitRatio;
|
private BigDecimal serviceSplitRatio;
|
||||||
|
|
||||||
// 是否手续费承担方,N-否,Y-是,手续费承担方有且只能有一个
|
// 是否手续费承担方,0-否,1-是,手续费承担方有且只能有一个
|
||||||
private String feeFlag;
|
private String feeFlag;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,11 +6,14 @@ import com.jsowell.common.enums.DelFlagEnum;
|
|||||||
import com.jsowell.common.exception.BusinessException;
|
import com.jsowell.common.exception.BusinessException;
|
||||||
import com.jsowell.common.util.DateUtils;
|
import com.jsowell.common.util.DateUtils;
|
||||||
import com.jsowell.common.util.SecurityUtils;
|
import com.jsowell.common.util.SecurityUtils;
|
||||||
|
import com.jsowell.pile.domain.AdapayMemberAccount;
|
||||||
import com.jsowell.pile.domain.StationSplitConfig;
|
import com.jsowell.pile.domain.StationSplitConfig;
|
||||||
import com.jsowell.pile.dto.SplitConfigDTO;
|
import com.jsowell.pile.dto.SplitConfigDTO;
|
||||||
import com.jsowell.pile.dto.SplitUserDetailDTO;
|
import com.jsowell.pile.dto.SplitUserDetailDTO;
|
||||||
import com.jsowell.pile.mapper.StationSplitConfigMapper;
|
import com.jsowell.pile.mapper.StationSplitConfigMapper;
|
||||||
|
import com.jsowell.pile.service.AdapayMemberAccountService;
|
||||||
import com.jsowell.pile.service.StationSplitConfigService;
|
import com.jsowell.pile.service.StationSplitConfigService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -24,6 +27,9 @@ public class StationSplitConfigServiceImpl implements StationSplitConfigService{
|
|||||||
@Resource
|
@Resource
|
||||||
private StationSplitConfigMapper stationSplitConfigMapper;
|
private StationSplitConfigMapper stationSplitConfigMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AdapayMemberAccountService adapayMemberAccountService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<StationSplitConfig> queryByStationId(String stationId) {
|
public List<StationSplitConfig> queryByStationId(String stationId) {
|
||||||
return stationSplitConfigMapper.queryByStationId(stationId);
|
return stationSplitConfigMapper.queryByStationId(stationId);
|
||||||
@@ -35,21 +41,31 @@ public class StationSplitConfigServiceImpl implements StationSplitConfigService{
|
|||||||
if (splitConfigDTO.getSplitUserDetailList().size() > 7) {
|
if (splitConfigDTO.getSplitUserDetailList().size() > 7) {
|
||||||
throw new BusinessException("", "参与分成的用户不能超过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%
|
// 校验分成比例相加是否为100.0%
|
||||||
List<SplitUserDetailDTO> splitUserDetailList = splitConfigDTO.getSplitUserDetailList();
|
List<SplitUserDetailDTO> splitUserDetailList = splitConfigDTO.getSplitUserDetailList();
|
||||||
|
int feeFlagCount = 0; // 手续费承担方数
|
||||||
BigDecimal totalElectricitySplitRatio = BigDecimal.ZERO;
|
BigDecimal totalElectricitySplitRatio = BigDecimal.ZERO;
|
||||||
BigDecimal totalServiceSplitRatio = BigDecimal.ZERO;
|
BigDecimal totalServiceSplitRatio = BigDecimal.ZERO;
|
||||||
for (SplitUserDetailDTO splitUserDetailDTO : splitUserDetailList) {
|
for (SplitUserDetailDTO splitUserDetailDTO : splitUserDetailList) {
|
||||||
totalElectricitySplitRatio = totalElectricitySplitRatio.add(splitUserDetailDTO.getElectricitySplitRatio());
|
if (Constants.ONE.equals(splitUserDetailDTO.getFeeFlag())) {
|
||||||
totalServiceSplitRatio = totalServiceSplitRatio.add(splitUserDetailDTO.getServiceSplitRatio());
|
|
||||||
if (Constants.Y.equals(splitUserDetailDTO.getFeeFlag())) {
|
|
||||||
feeFlagCount++;
|
feeFlagCount++;
|
||||||
}
|
}
|
||||||
|
totalElectricitySplitRatio = totalElectricitySplitRatio.add(splitUserDetailDTO.getElectricitySplitRatio());
|
||||||
|
totalServiceSplitRatio = totalServiceSplitRatio.add(splitUserDetailDTO.getServiceSplitRatio());
|
||||||
}
|
}
|
||||||
if (feeFlagCount > 1) {
|
if (feeFlagCount != 1) {
|
||||||
throw new BusinessException("", "只能有一位手续费承担方");
|
// 只能有一位手续费承担方, 超过则报错
|
||||||
|
throw new BusinessException("", "手续费承担方设置错误, 有且只能有1位手续费承担方");
|
||||||
}
|
}
|
||||||
if (totalElectricitySplitRatio.compareTo(BigDecimal.valueOf(100)) != 0) {
|
if (totalElectricitySplitRatio.compareTo(BigDecimal.valueOf(100)) != 0) {
|
||||||
throw new BusinessException("", "电费分成比例相加必须为100.0%");
|
throw new BusinessException("", "电费分成比例相加必须为100.0%");
|
||||||
|
|||||||
Reference in New Issue
Block a user