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 afe24d562..04080c4b9 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 @@ -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; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/StationSplitConfigMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/StationSplitConfigMapper.java index 1bc727d26..bbf4c9f6c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/StationSplitConfigMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/StationSplitConfigMapper.java @@ -12,4 +12,9 @@ public interface StationSplitConfigMapper { * @return */ List queryByStationId(String stationId); + + /** + * 批量插入站点分账配置 + */ + int batchInsert(List splitConfigList); } \ No newline at end of file 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 381680743..5f61a8c75 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 @@ -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 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 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); } } diff --git a/jsowell-pile/src/main/resources/mapper/pile/StationSplitConfigMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/StationSplitConfigMapper.xml index 30ed68cf8..6f3228898 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/StationSplitConfigMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/StationSplitConfigMapper.xml @@ -29,4 +29,19 @@ where del_flag = '0' and station_id = #{stationId} + + + + insert into station_split_config + (id, merchant_id, station_id, adapay_member_id, electricity_split_ratio, service_split_ratio, + create_by, create_time, update_by, update_time, del_flag) + values + + (#{item.id,jdbcType=INTEGER}, #{item.merchantId,jdbcType=VARCHAR}, #{item.stationId,jdbcType=VARCHAR}, + #{item.adapayMemberId,jdbcType=VARCHAR}, #{item.electricitySplitRatio,jdbcType=DECIMAL}, + #{item.serviceSplitRatio,jdbcType=DECIMAL}, #{item.createBy,jdbcType=VARCHAR}, + #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateBy,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP}, + #{item.delFlag,jdbcType=CHAR}) + + \ No newline at end of file