mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 19:45:09 +08:00
update 分成功能
This commit is contained in:
@@ -50,6 +50,11 @@ public class StationSplitConfig {
|
||||
*/
|
||||
private BigDecimal serviceSplitRatio;
|
||||
|
||||
/**
|
||||
* 是否手续费承担方,N-否,Y-是,手续费承担方有且只能有一个
|
||||
*/
|
||||
private String feeFlag;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.jsowell.pile.mapper;
|
||||
import com.jsowell.pile.domain.StationSplitConfig;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public interface StationSplitConfigMapper {
|
||||
@@ -22,5 +23,5 @@ public interface StationSplitConfigMapper {
|
||||
/**
|
||||
* 根据运营商id和站点id逻辑删除
|
||||
*/
|
||||
int deleteByMerchantIdAndStationId(@Param("merchantId") String merchantId, @Param("stationId") String stationId);
|
||||
int deleteByMerchantIdAndStationId(@Param("merchantId") String merchantId, @Param("stationId") String stationId, @Param("updateBy") String updateBy, @Param("updateTime") Date updateTime);
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.jsowell.pile.service.impl;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
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.StationSplitConfig;
|
||||
@@ -31,8 +33,10 @@ public class StationSplitConfigServiceImpl implements StationSplitConfigService{
|
||||
public int insertSplitConfig(SplitConfigDTO splitConfigDTO) {
|
||||
// 参与分成的用户不能超过7位
|
||||
if (splitConfigDTO.getSplitUserDetailList().size() > 7) {
|
||||
return 0;
|
||||
throw new BusinessException("", "参与分成的用户不能超过7位");
|
||||
}
|
||||
// 只能有一位手续费承担方, 超过则报错
|
||||
int feeFlagCount = 0;
|
||||
// 校验分成比例相加是否为100.0%
|
||||
List<SplitUserDetailDTO> splitUserDetailList = splitConfigDTO.getSplitUserDetailList();
|
||||
BigDecimal totalElectricitySplitRatio = BigDecimal.ZERO;
|
||||
@@ -40,17 +44,25 @@ public class StationSplitConfigServiceImpl implements StationSplitConfigService{
|
||||
for (SplitUserDetailDTO splitUserDetailDTO : splitUserDetailList) {
|
||||
totalElectricitySplitRatio = totalElectricitySplitRatio.add(splitUserDetailDTO.getElectricitySplitRatio());
|
||||
totalServiceSplitRatio = totalServiceSplitRatio.add(splitUserDetailDTO.getServiceSplitRatio());
|
||||
if (Constants.Y.equals(splitUserDetailDTO.getFeeFlag())) {
|
||||
feeFlagCount++;
|
||||
}
|
||||
}
|
||||
if (totalElectricitySplitRatio.compareTo(BigDecimal.valueOf(100)) != 0 || totalServiceSplitRatio.compareTo(BigDecimal.valueOf(100)) != 0) {
|
||||
return 0;
|
||||
if (feeFlagCount > 1) {
|
||||
throw new BusinessException("", "只能有一位手续费承担方");
|
||||
}
|
||||
|
||||
if (totalElectricitySplitRatio.compareTo(BigDecimal.valueOf(100)) != 0) {
|
||||
throw new BusinessException("", "电费分成比例相加必须为100.0%");
|
||||
}
|
||||
if (totalServiceSplitRatio.compareTo(BigDecimal.valueOf(100)) != 0) {
|
||||
throw new BusinessException("", "服务费分成比例相加必须为100.0%");
|
||||
}
|
||||
String userName = SecurityUtils.getLoginUser().getUsername();
|
||||
// 先删除该充电站的所有分成配置
|
||||
stationSplitConfigMapper.deleteByMerchantIdAndStationId(splitConfigDTO.getMerchantId(), splitConfigDTO.getStationId());
|
||||
stationSplitConfigMapper.deleteByMerchantIdAndStationId(splitConfigDTO.getMerchantId(), splitConfigDTO.getStationId(), userName, DateUtils.getNowDate());
|
||||
// 保存到数据库
|
||||
String createBy = SecurityUtils.getLoginUser().getUsername();
|
||||
Date nowDate = DateUtils.getNowDate();
|
||||
List<StationSplitConfig> splitConfigList = Lists.newArrayList();
|
||||
Date nowDate = DateUtils.getNowDate();
|
||||
for (SplitUserDetailDTO splitUserDetailDTO : splitUserDetailList) {
|
||||
StationSplitConfig splitConfig = StationSplitConfig.builder()
|
||||
.merchantId(splitConfigDTO.getMerchantId())
|
||||
@@ -58,7 +70,8 @@ public class StationSplitConfigServiceImpl implements StationSplitConfigService{
|
||||
.adapayMemberId(splitUserDetailDTO.getAdapayMemberId())
|
||||
.electricitySplitRatio(splitUserDetailDTO.getElectricitySplitRatio())
|
||||
.serviceSplitRatio(splitUserDetailDTO.getServiceSplitRatio())
|
||||
.createBy(createBy)
|
||||
.feeFlag(splitUserDetailDTO.getFeeFlag())
|
||||
.createBy(userName)
|
||||
.createTime(nowDate)
|
||||
.delFlag(DelFlagEnum.NORMAL.getValue())
|
||||
.build();
|
||||
|
||||
Reference in New Issue
Block a user