mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-18 06:09:58 +08:00
Merge branch 'dev' of http://192.168.2.2:8099/jsowell/jsowell-charger-web into dev
This commit is contained in:
@@ -41,13 +41,14 @@ import com.jsowell.pile.dto.*;
|
|||||||
import com.jsowell.pile.service.*;
|
import com.jsowell.pile.service.*;
|
||||||
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
|
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
|
||||||
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
|
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
|
||||||
import com.jsowell.pile.util.MerchantUtils;
|
|
||||||
import com.jsowell.pile.util.UserUtils;
|
import com.jsowell.pile.util.UserUtils;
|
||||||
import com.jsowell.pile.vo.OrderPayRecordVO;
|
import com.jsowell.pile.vo.OrderPayRecordVO;
|
||||||
import com.jsowell.pile.vo.base.*;
|
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
|
||||||
|
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
|
||||||
import com.jsowell.pile.vo.base.PileInfoVO;
|
import com.jsowell.pile.vo.base.PileInfoVO;
|
||||||
import com.jsowell.pile.vo.uniapp.customer.*;
|
import com.jsowell.pile.vo.base.StationInfoVO;
|
||||||
import com.jsowell.pile.vo.uniapp.customer.InvoiceRecordVO;
|
import com.jsowell.pile.vo.uniapp.customer.InvoiceRecordVO;
|
||||||
|
import com.jsowell.pile.vo.uniapp.customer.*;
|
||||||
import com.jsowell.pile.vo.web.*;
|
import com.jsowell.pile.vo.web.*;
|
||||||
import com.jsowell.thirdparty.common.CommonService;
|
import com.jsowell.thirdparty.common.CommonService;
|
||||||
import com.jsowell.wxpay.response.WechatPayNotifyParameter;
|
import com.jsowell.wxpay.response.WechatPayNotifyParameter;
|
||||||
@@ -840,15 +841,15 @@ public class OrderService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
// 如果是希晓的会员,将余额支付添加进去
|
// 如果是希晓的会员,将余额支付添加进去
|
||||||
if (MerchantUtils.isXiXiaoMerchant(String.valueOf(memberBasicInfo.getMerchantId()))) { // 35-希晓
|
// if (MerchantUtils.isXiXiaoMerchant(String.valueOf(memberBasicInfo.getMerchantId()))) { // 35-希晓
|
||||||
// 余额支付
|
// // 余额支付
|
||||||
result.add(
|
// result.add(
|
||||||
PayModeVO.builder()
|
// PayModeVO.builder()
|
||||||
.payModeCode(OrderPayModeEnum.PAYMENT_OF_PRINCIPAL_BALANCE.getValue())
|
// .payModeCode(OrderPayModeEnum.PAYMENT_OF_PRINCIPAL_BALANCE.getValue())
|
||||||
.payModeName(OrderPayModeEnum.PAYMENT_OF_PRINCIPAL_BALANCE.getLabel())
|
// .payModeName(OrderPayModeEnum.PAYMENT_OF_PRINCIPAL_BALANCE.getLabel())
|
||||||
.build()
|
// .build()
|
||||||
);
|
// );
|
||||||
} else {
|
// }
|
||||||
// 2024年9月27日09点49分 开启余额支付
|
// 2024年9月27日09点49分 开启余额支付
|
||||||
result.add(
|
result.add(
|
||||||
PayModeVO.builder()
|
PayModeVO.builder()
|
||||||
@@ -857,7 +858,6 @@ public class OrderService {
|
|||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1279,7 +1279,7 @@ public class OrderService {
|
|||||||
if (StringUtils.isBlank(memberId)) {
|
if (StringUtils.isBlank(memberId)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
AdapayMemberAccount adapayMemberAccount = adapayMemberAccountService.selectByMemberId(memberId);
|
AdapayMemberAccount adapayMemberAccount = adapayMemberAccountService.selectByAdapayMemberId(memberId);
|
||||||
if (adapayMemberAccount == null) {
|
if (adapayMemberAccount == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,18 @@ public class StationSplitConfigController extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private StationSplitConfigService stationSplitConfigService;
|
private StationSplitConfigService stationSplitConfigService;
|
||||||
|
|
||||||
@RequestMapping("/insertSplitConfig")
|
/**
|
||||||
public AjaxResult insertSplitConfig(HttpServletRequest request, @RequestBody SplitConfigDTO splitDetailDTO) {
|
* 设置站点配置
|
||||||
|
* /station/splitconfig/settingSplitConfig
|
||||||
|
* @param request
|
||||||
|
* @param splitDetailDTO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping("/settingSplitConfig")
|
||||||
|
public AjaxResult settingSplitConfig(HttpServletRequest request, @RequestBody SplitConfigDTO splitDetailDTO) {
|
||||||
AjaxResult ajaxResult;
|
AjaxResult ajaxResult;
|
||||||
try {
|
try {
|
||||||
int result = stationSplitConfigService.insertSplitConfig(splitDetailDTO);
|
int result = stationSplitConfigService.settingSplitConfig(splitDetailDTO);
|
||||||
ajaxResult = result > 0 ? success() : error();
|
ajaxResult = result > 0 ? success() : error();
|
||||||
} catch (BusinessException e) {
|
} catch (BusinessException e) {
|
||||||
ajaxResult = error(e.getMessage());
|
ajaxResult = error(e.getMessage());
|
||||||
|
|||||||
@@ -18,6 +18,6 @@ public class SplitUserDetailDTO {
|
|||||||
// 服务费分成比例
|
// 服务费分成比例
|
||||||
private BigDecimal serviceSplitRatio;
|
private BigDecimal serviceSplitRatio;
|
||||||
|
|
||||||
// 是否手续费承担方,N-否,Y-是,手续费承担方有且只能有一个
|
// 是否手续费承担方,0-否,1-是,手续费承担方有且只能有一个
|
||||||
private String feeFlag;
|
private String feeFlag;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,9 +59,26 @@ public interface AdapayMemberAccountService {
|
|||||||
*/
|
*/
|
||||||
int deleteAdapayMemberAccountByIds(List<String> ids);
|
int deleteAdapayMemberAccountByIds(List<String> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据运营商id查询汇付会员信息
|
||||||
|
* @param merchantId 运营商id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
AdapayMemberAccount selectByMerchantId(String merchantId);
|
AdapayMemberAccount selectByMerchantId(String merchantId);
|
||||||
|
|
||||||
AdapayMemberAccount selectByMemberId(String memberId);
|
/**
|
||||||
|
* 根据充电站id查询汇付会员信息
|
||||||
|
* @param stationId 站点id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AdapayMemberAccount selectByStationId(String stationId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据汇付会员id查询会员信息
|
||||||
|
* @param adapayMemberId 汇付会员id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AdapayMemberAccount selectByAdapayMemberId(String adapayMemberId);
|
||||||
|
|
||||||
|
|
||||||
void updateAdapayMemberAccountByMemberId(AdapayMemberAccount adapayMemberAccount);
|
void updateAdapayMemberAccountByMemberId(AdapayMemberAccount adapayMemberAccount);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.jsowell.pile.service;
|
|||||||
|
|
||||||
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.vo.web.ShareMemberVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -13,7 +14,16 @@ public interface StationSplitConfigService{
|
|||||||
// 根据站点id查询站点分账配置信息
|
// 根据站点id查询站点分账配置信息
|
||||||
List<StationSplitConfig> queryByStationId(String stationId);
|
List<StationSplitConfig> queryByStationId(String stationId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据站点id查询站点分成用户信息
|
||||||
|
* 如果没有配置分账用户,并且站点对应的运营商设置了结算账户, 返回本站对应的结算账户, 电费和服务费分成比例都为100%
|
||||||
|
* 如果没有配置分账用户, 并且站点对应的运营商没有设置结算账户, 返回默认结算账户(举视的账户)
|
||||||
|
* @param stationId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<ShareMemberVO> queryShareMembersByStationId(String stationId);
|
||||||
|
|
||||||
// 插入站点分账配置信息
|
// 插入站点分账配置信息
|
||||||
int insertSplitConfig(SplitConfigDTO splitConfigDTO);
|
int settingSplitConfig(SplitConfigDTO splitConfigDTO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,11 +4,14 @@ import com.google.common.collect.Lists;
|
|||||||
import com.jsowell.common.constant.CacheConstants;
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
import com.jsowell.common.core.redis.RedisCache;
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
|
import com.jsowell.common.enums.DelFlagEnum;
|
||||||
import com.jsowell.common.util.DateUtils;
|
import com.jsowell.common.util.DateUtils;
|
||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
import com.jsowell.pile.domain.AdapayMemberAccount;
|
import com.jsowell.pile.domain.AdapayMemberAccount;
|
||||||
|
import com.jsowell.pile.domain.PileStationInfo;
|
||||||
import com.jsowell.pile.mapper.AdapayMemberAccountMapper;
|
import com.jsowell.pile.mapper.AdapayMemberAccountMapper;
|
||||||
import com.jsowell.pile.service.AdapayMemberAccountService;
|
import com.jsowell.pile.service.AdapayMemberAccountService;
|
||||||
|
import com.jsowell.pile.service.PileStationInfoService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -32,6 +35,9 @@ public class AdapayMemberAccountServiceImpl implements AdapayMemberAccountServic
|
|||||||
@Autowired
|
@Autowired
|
||||||
private RedisCache redisCache;
|
private RedisCache redisCache;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PileStationInfoService pileStationInfoService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询【请填写功能名称】列表
|
* 查询【请填写功能名称】列表
|
||||||
*
|
*
|
||||||
@@ -112,9 +118,24 @@ public class AdapayMemberAccountServiceImpl implements AdapayMemberAccountServic
|
|||||||
return adapayMemberAccount;
|
return adapayMemberAccount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据站点id查询汇付会员账户信息, 只查询生效的
|
||||||
|
* @param stationId 站点id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AdapayMemberAccount selectByStationId(String stationId) {
|
||||||
|
PileStationInfo pileStationInfo = pileStationInfoService.selectPileStationInfoById(Long.parseLong(stationId));
|
||||||
|
AdapayMemberAccount adapayMemberAccount = selectByMerchantId(String.valueOf(pileStationInfo.getMerchantId()));
|
||||||
|
if (adapayMemberAccount == null || !StringUtils.equals(adapayMemberAccount.getStatus(), Constants.ONE)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return adapayMemberAccount;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AdapayMemberAccount selectByMemberId(String memberId) {
|
public AdapayMemberAccount selectByAdapayMemberId(String memberId) {
|
||||||
return adapayMemberAccountMapper.selectByMemberId(memberId);
|
return adapayMemberAccountMapper.selectByMemberId(memberId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,6 +164,7 @@ public class AdapayMemberAccountServiceImpl implements AdapayMemberAccountServic
|
|||||||
List<AdapayMemberAccount> accountList = this.selectAdapayMemberAccountList(merchantId);
|
List<AdapayMemberAccount> accountList = this.selectAdapayMemberAccountList(merchantId);
|
||||||
if (CollectionUtils.isNotEmpty(accountList)) {
|
if (CollectionUtils.isNotEmpty(accountList)) {
|
||||||
List<String> ids = accountList.stream()
|
List<String> ids = accountList.stream()
|
||||||
|
.filter(x -> StringUtils.equals(x.getDelFlag(), DelFlagEnum.NORMAL.getValue()))
|
||||||
.filter(x -> StringUtils.equals(x.getStatus(), Constants.TWO))
|
.filter(x -> StringUtils.equals(x.getStatus(), Constants.TWO))
|
||||||
.map(x -> x.getId() + "")
|
.map(x -> x.getId() + "")
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|||||||
@@ -185,7 +185,8 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IThirdpartySnRelationService snRelationService;
|
private IThirdpartySnRelationService snRelationService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StationSplitConfigService stationSplitConfigService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int deleteByPrimaryKey(Integer id) {
|
public int deleteByPrimaryKey(Integer id) {
|
||||||
@@ -1523,7 +1524,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 根据站点id查询该站点配置的分账信息, 如果为空表示本运营商分100%
|
// 根据站点id查询该站点配置的分账信息, 如果为空表示本运营商分100%
|
||||||
List<ShareMemberVO> shareMemberList = Lists.newArrayList();
|
List<ShareMemberVO> shareMemberList = stationSplitConfigService.queryShareMembersByStationId(orderBasicInfo.getStationId());
|
||||||
|
|
||||||
// 计算每个账户 订单分账金额
|
// 计算每个账户 订单分账金额
|
||||||
List<DivMember> divMemberList = splitAmount(shareMemberList, settleAmount, paymentInfos);
|
List<DivMember> divMemberList = splitAmount(shareMemberList, settleAmount, paymentInfos);
|
||||||
|
|||||||
@@ -135,10 +135,10 @@ public class PileStationInfoServiceImpl implements PileStationInfoService {
|
|||||||
CurrentTimePriceDetails currentTimePriceDetails = pileBillingTemplateService.getCurrentTimePriceDetails(stationId);
|
CurrentTimePriceDetails currentTimePriceDetails = pileBillingTemplateService.getCurrentTimePriceDetails(stationId);
|
||||||
if (currentTimePriceDetails != null) {
|
if (currentTimePriceDetails != null) {
|
||||||
String electricityPrice = currentTimePriceDetails.getElectricityPrice();
|
String electricityPrice = currentTimePriceDetails.getElectricityPrice();
|
||||||
electricityPrice = StringUtils.isBlank(electricityPrice) ? "0" : electricityPrice;
|
electricityPrice = StringUtils.isBlank(electricityPrice) ? Constants.ZERO : electricityPrice;
|
||||||
|
|
||||||
String servicePrice = currentTimePriceDetails.getServicePrice();
|
String servicePrice = currentTimePriceDetails.getServicePrice();
|
||||||
servicePrice = StringUtils.isBlank(servicePrice) ? "0" : servicePrice;
|
servicePrice = StringUtils.isBlank(servicePrice) ? Constants.ZERO : servicePrice;
|
||||||
|
|
||||||
vo.setElectricityPrice(new BigDecimal(electricityPrice));
|
vo.setElectricityPrice(new BigDecimal(electricityPrice));
|
||||||
vo.setServicePrice(new BigDecimal(servicePrice));
|
vo.setServicePrice(new BigDecimal(servicePrice));
|
||||||
|
|||||||
@@ -6,11 +6,17 @@ 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.common.util.StringUtils;
|
||||||
|
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 com.jsowell.pile.vo.web.ShareMemberVO;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
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,32 +30,91 @@ 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int insertSplitConfig(SplitConfigDTO splitConfigDTO) {
|
public List<ShareMemberVO> queryShareMembersByStationId(String stationId) {
|
||||||
|
List<ShareMemberVO> resultList = Lists.newArrayList();
|
||||||
|
List<StationSplitConfig> stationSplitConfigs = queryByStationId(stationId);
|
||||||
|
if (CollectionUtils.isEmpty(stationSplitConfigs)) {
|
||||||
|
// 如果为空的话,说明没有配置站点分账
|
||||||
|
AdapayMemberAccount adapayMemberAccount = adapayMemberAccountService.selectByStationId(stationId);
|
||||||
|
if (adapayMemberAccount != null) {
|
||||||
|
ShareMemberVO shareMemberVO = new ShareMemberVO();
|
||||||
|
shareMemberVO.setAdapayMemberId(adapayMemberAccount.getAdapayMemberId());
|
||||||
|
shareMemberVO.setElectricityShareRatio(BigDecimal.valueOf(100));
|
||||||
|
shareMemberVO.setServiceShareRatio(BigDecimal.valueOf(100));
|
||||||
|
shareMemberVO.setFeeFlag(Constants.Y);
|
||||||
|
resultList.add(shareMemberVO);
|
||||||
|
} else {
|
||||||
|
// 如果没有配置站点分账,则默认为举视账户
|
||||||
|
AdapayMemberAccount aDefault = adapayMemberAccountService.getDefault();
|
||||||
|
ShareMemberVO shareMemberVO = new ShareMemberVO();
|
||||||
|
shareMemberVO.setAdapayMemberId(aDefault.getAdapayMemberId());
|
||||||
|
shareMemberVO.setElectricityShareRatio(BigDecimal.valueOf(100));
|
||||||
|
shareMemberVO.setServiceShareRatio(BigDecimal.valueOf(100));
|
||||||
|
shareMemberVO.setFeeFlag(Constants.Y);
|
||||||
|
resultList.add(shareMemberVO);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (StationSplitConfig stationSplitConfig : stationSplitConfigs) {
|
||||||
|
ShareMemberVO shareMemberVO = new ShareMemberVO();
|
||||||
|
shareMemberVO.setAdapayMemberId(stationSplitConfig.getAdapayMemberId());
|
||||||
|
shareMemberVO.setElectricityShareRatio(stationSplitConfig.getElectricitySplitRatio());
|
||||||
|
shareMemberVO.setServiceShareRatio(stationSplitConfig.getServiceSplitRatio());
|
||||||
|
shareMemberVO.setFeeFlag(StringUtils.equals(Constants.ONE, stationSplitConfig.getFeeFlag()) ? Constants.Y : Constants.N);
|
||||||
|
resultList.add(shareMemberVO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resultList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int settingSplitConfig(SplitConfigDTO splitConfigDTO) {
|
||||||
// 参与分成的用户不能超过7位
|
// 参与分成的用户不能超过7位
|
||||||
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;
|
||||||
|
boolean haveTheMerchant = false; // 有本运营商的汇付账户
|
||||||
for (SplitUserDetailDTO splitUserDetailDTO : splitUserDetailList) {
|
for (SplitUserDetailDTO splitUserDetailDTO : splitUserDetailList) {
|
||||||
totalElectricitySplitRatio = totalElectricitySplitRatio.add(splitUserDetailDTO.getElectricitySplitRatio());
|
if (StringUtils.equals(splitUserDetailDTO.getAdapayMemberId(), adapayMemberAccount.getAdapayMemberId())) {
|
||||||
totalServiceSplitRatio = totalServiceSplitRatio.add(splitUserDetailDTO.getServiceSplitRatio());
|
haveTheMerchant = true;
|
||||||
if (Constants.Y.equals(splitUserDetailDTO.getFeeFlag())) {
|
}
|
||||||
|
if (Constants.ONE.equals(splitUserDetailDTO.getFeeFlag())) {
|
||||||
feeFlagCount++;
|
feeFlagCount++;
|
||||||
}
|
}
|
||||||
|
totalElectricitySplitRatio = totalElectricitySplitRatio.add(splitUserDetailDTO.getElectricitySplitRatio());
|
||||||
|
totalServiceSplitRatio = totalServiceSplitRatio.add(splitUserDetailDTO.getServiceSplitRatio());
|
||||||
}
|
}
|
||||||
if (feeFlagCount > 1) {
|
if (!haveTheMerchant) {
|
||||||
throw new BusinessException("", "只能有一位手续费承担方");
|
// 没有本运营商的汇付账户, 抛出异常
|
||||||
|
throw new BusinessException("", "参与分成的用户中未包含本运营商的汇付账户");
|
||||||
|
}
|
||||||
|
if (feeFlagCount != 1) {
|
||||||
|
// 只能有一位手续费承担方, 超过则报错
|
||||||
|
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%");
|
||||||
|
|||||||
@@ -14,11 +14,6 @@ public class ShareMemberVO {
|
|||||||
*/
|
*/
|
||||||
private String adapayMemberId;
|
private String adapayMemberId;
|
||||||
|
|
||||||
/**
|
|
||||||
* 手机号
|
|
||||||
*/
|
|
||||||
private String memberPhoneNumber;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电费分润比例
|
* 电费分润比例
|
||||||
*/
|
*/
|
||||||
@@ -28,4 +23,9 @@ public class ShareMemberVO {
|
|||||||
* 服务费分润比例
|
* 服务费分润比例
|
||||||
*/
|
*/
|
||||||
private BigDecimal serviceShareRatio;
|
private BigDecimal serviceShareRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手续费承担方
|
||||||
|
*/
|
||||||
|
private String feeFlag;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
from station_split_config
|
from station_split_config
|
||||||
where del_flag = '0'
|
where del_flag = '0'
|
||||||
and station_id = #{stationId}
|
and station_id = #{stationId}
|
||||||
|
order by fee_flag
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="batchInsert" parameterType="map">
|
<insert id="batchInsert" parameterType="map">
|
||||||
|
|||||||
Reference in New Issue
Block a user