update 分成功能

This commit is contained in:
Guoqs
2024-09-26 14:02:44 +08:00
parent fa4c19acf6
commit f3955ce2b0
4 changed files with 56 additions and 3 deletions

View File

@@ -2,6 +2,8 @@ package com.jsowell.pile.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* 参与分账的用户详情
*/
@@ -11,10 +13,10 @@ public class SplitUserDetailDTO {
private String adapayMemberId;
// 电量分成比例
private String electricitySplitRatio;
private BigDecimal electricitySplitRatio;
// 服务费分成比例
private String serviceSplitRatio;
private BigDecimal serviceSplitRatio;
// 是否手续费承担方N-否Y-是,手续费承担方有且只能有一个
private String feeFlag;

View File

@@ -12,4 +12,9 @@ public interface StationSplitConfigMapper {
* @return
*/
List<StationSplitConfig> queryByStationId(String stationId);
/**
* 批量插入站点分账配置
*/
int batchInsert(List<StationSplitConfig> splitConfigList);
}

View File

@@ -1,12 +1,15 @@
package com.jsowell.pile.service.impl;
import com.google.common.collect.Lists;
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.StationSplitConfigService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
@Service
@@ -22,6 +25,34 @@ public class StationSplitConfigServiceImpl implements StationSplitConfigService{
@Override
public int insertSplitConfig(SplitConfigDTO splitConfigDTO) {
return 0;
// 参与分成的用户不能超过7位
if (splitConfigDTO.getSplitUserDetailList().size() > 7) {
return 0;
}
// 校验分成比例相加是否为100.0%
List<SplitUserDetailDTO> splitUserDetailList = splitConfigDTO.getSplitUserDetailList();
BigDecimal totalElectricitySplitRatio = BigDecimal.ZERO;
BigDecimal totalServiceSplitRatio = BigDecimal.ZERO;
for (SplitUserDetailDTO splitUserDetailDTO : splitUserDetailList) {
totalElectricitySplitRatio = totalElectricitySplitRatio.add(splitUserDetailDTO.getElectricitySplitRatio());
totalServiceSplitRatio = totalServiceSplitRatio.add(splitUserDetailDTO.getServiceSplitRatio());
}
if (totalElectricitySplitRatio.compareTo(BigDecimal.valueOf(100)) != 0 || totalServiceSplitRatio.compareTo(BigDecimal.valueOf(100)) != 0) {
return 0;
}
// 保存到数据库
List<StationSplitConfig> splitConfigList = Lists.newArrayList();
for (SplitUserDetailDTO splitUserDetailDTO : splitUserDetailList) {
StationSplitConfig splitConfig = StationSplitConfig.builder()
.merchantId(splitConfigDTO.getMerchantId())
.stationId(splitConfigDTO.getStationId())
.adapayMemberId(splitUserDetailDTO.getAdapayMemberId())
.electricitySplitRatio(splitUserDetailDTO.getElectricitySplitRatio())
.serviceSplitRatio(splitUserDetailDTO.getServiceSplitRatio())
.build();
splitConfigList.add(splitConfig);
}
return stationSplitConfigMapper.batchInsert(splitConfigList);
}
}