update优化清分账单逻辑

This commit is contained in:
2023-09-21 13:09:52 +08:00
parent b061442497
commit a465e75635
10 changed files with 72 additions and 18 deletions

View File

@@ -57,4 +57,7 @@ public interface ClearingBillDetailMapper {
int batchInsert(@Param("list") List<ClearingBillDetail> list);
ClearingBillDetail selectClearingBillCode(String orderCode);
// 根据清分编号删除
int deleteByClearingBillCode(@Param("clearingBillCode") String clearingBillCode);
}

View File

@@ -66,7 +66,7 @@ public interface ClearingBillInfoMapper {
int batchInsert(@Param("list") List<ClearingBillInfo> list);
List<ClearingBillInfo> selectByMerchantId(@Param("merchantId") String merchantId, @Param("billStatus") String billStatus);
List<ClearingBillInfo> selectByMerchantId(@Param("merchantId") String merchantId, @Param("billStatus") String billStatus, @Param("tradeDate") String tradeDate);
void updateStatus(@Param("clearingBillIds") List<Integer> clearingBillIds, @Param("billStatus") String billStatus);

View File

@@ -7,6 +7,8 @@ public interface ClearingBillDetailService{
int deleteByPrimaryKey(Integer id);
int deleteByClearingBillCode(String clearingBillCode);
int insert(ClearingBillDetail record);
int insertOrUpdate(ClearingBillDetail record);

View File

@@ -42,5 +42,7 @@ public interface ClearingBillInfoService {
int updateBatchSelective(List<ClearingBillInfo> list);
int batchInsert(List<ClearingBillInfo> list);
ClearingBillInfo selectByMerchantIdAndTradeDate(String merchantId, String tradeDate);
}

View File

@@ -18,6 +18,11 @@ public class ClearingBillDetailServiceImpl implements ClearingBillDetailService{
return clearingBillDetailMapper.deleteByPrimaryKey(id);
}
@Override
public int deleteByClearingBillCode(String clearingBillCode) {
return clearingBillDetailMapper.deleteByClearingBillCode(clearingBillCode);
}
@Override
public int insert(ClearingBillDetail record) {
return clearingBillDetailMapper.insert(record);

View File

@@ -1,5 +1,6 @@
package com.jsowell.pile.service.impl;
import com.jsowell.common.enums.DelFlagEnum;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.ClearingBillInfo;
import com.jsowell.pile.dto.GetClearingBillDTO;
@@ -11,6 +12,8 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
public class ClearingBillInfoServiceImpl implements ClearingBillInfoService {
@@ -50,7 +53,7 @@ public class ClearingBillInfoServiceImpl implements ClearingBillInfoService {
@Override
public List<ClearingBillInfo> selectByMerchantId(String merchantId, String billStatus) {
return clearingBillInfoMapper.selectByMerchantId(merchantId, billStatus);
return clearingBillInfoMapper.selectByMerchantId(merchantId, billStatus, null);
}
@Override
@@ -96,5 +99,26 @@ public class ClearingBillInfoServiceImpl implements ClearingBillInfoService {
public int batchInsert(List<ClearingBillInfo> list) {
return clearingBillInfoMapper.batchInsert(list);
}
@Override
public ClearingBillInfo selectByMerchantIdAndTradeDate(String merchantId, String tradeDate) {
ClearingBillInfo result = null;
List<ClearingBillInfo> list = clearingBillInfoMapper.selectByMerchantId(merchantId, null, tradeDate);
if (CollectionUtils.isNotEmpty(list)) {
result = list.get(0);
if (list.size() > 1) {
// 原来存在多条清分账单,逻辑删除掉
ClearingBillInfo finalResult = result;
List<ClearingBillInfo> collect = list.stream()
.filter(x -> !Objects.equals(x.getId(), finalResult.getId()))
.collect(Collectors.toList());
for (ClearingBillInfo clearingBillInfo : collect) {
clearingBillInfo.setDelFlag(DelFlagEnum.DELETE.getValue());
}
clearingBillInfoMapper.updateBatch(collect);
}
}
return result;
}
}

View File

@@ -160,6 +160,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
@Autowired
private MemberAdapayRecordService memberAdapayRecordService;
@Autowired
private ClearingBillInfoService clearingBillInfoService;
/**
* 条件查询订单基本信息
*
@@ -1304,8 +1307,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
*/
@Override
public void orderSplittingOperations(AdapayMemberAccount adapayMemberAccount, List<SettleOrderReport> stationReportList) {
logger.info("运营商:{}, 交易日期:{}, 进行分账处理start", adapayMemberAccount, JSON.toJSONString(stationReportList));
// 运营商有没有开通结算账户
if (adapayMemberAccount == null) {
logger.error("订单分账逻辑error-运营商有没有开通结算账户");
@@ -1316,6 +1317,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
logger.error("订单分账逻辑error-stationReportList为空");
return;
}
String tradeDate = stationReportList.get(0).getTradeDate();
logger.info("运营商:{}, 交易日期:{}, 进行分账处理start", adapayMemberAccount, JSON.toJSONString(stationReportList));
String merchantId = adapayMemberAccount.getMerchantId();
String appId = pileMerchantInfoService.queryAppIdByMerchantId(merchantId);
@@ -1403,13 +1406,18 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
clearingBillInfo.setCreateTime(DateUtils.getNowDate());
clearingBillInfo.setDelFlag(DelFlagEnum.NORMAL.getValue());
clearingBillInfo.setBillStatus("2");
clearingBillInfo.setTradeDate(stationReportList.get(0).getTradeDate());
clearingBillInfo.setTradeDate(tradeDate);
// 根据运营商id和结算日期查询清分账单
ClearingBillInfo queryBillInfo = clearingBillInfoService.selectByMerchantIdAndTradeDate(merchantId, tradeDate);
if (queryBillInfo != null) {
clearingBillInfo.setId(queryBillInfo.getId());
}
// 保存清分账单
ClearingBillTransactionDTO dto = new ClearingBillTransactionDTO();
dto.setClearingBillInfo(clearingBillInfo);
dto.setBillDetailList(billDetailList);
transactionService.createClearingBill(dto);
transactionService.saveClearingBill(dto);
}
@Override

View File

@@ -1,16 +1,11 @@
package com.jsowell.pile.transaction.service;
import com.google.common.collect.Lists;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.domain.PileConnectorInfo;
import com.jsowell.pile.mapper.MemberBasicInfoMapper;
import com.jsowell.pile.mapper.MemberWalletInfoMapper;
import com.jsowell.pile.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.mapper.PileBasicInfoMapper;
import com.jsowell.pile.mapper.PileBillingTemplateMapper;
import com.jsowell.pile.mapper.PileConnectorInfoMapper;
import com.jsowell.pile.mapper.*;
import com.jsowell.pile.service.ClearingBillDetailService;
import com.jsowell.pile.service.ClearingBillInfoService;
import com.jsowell.pile.service.IOrderBasicInfoService;
@@ -60,9 +55,6 @@ public class TransactionService {
@Autowired
private ClearingBillDetailService clearingBillDetailService;
@Autowired
private RedisCache redisCache;
/**
* 批量新增充电桩和充电桩接口
* @param dto
@@ -196,11 +188,20 @@ public class TransactionService {
/**
* 保存清分账单
*/
public void createClearingBill(ClearingBillTransactionDTO dto) {
public void saveClearingBill(ClearingBillTransactionDTO dto) {
String clearingBillCode = null;
if (Objects.nonNull(dto.getClearingBillInfo())) {
clearingBillInfoService.insertSelective(dto.getClearingBillInfo());
if (dto.getClearingBillInfo().getId() != null) {
// 如果id不为空就给clearingBillCode赋值
clearingBillCode = dto.getClearingBillInfo().getClearingBillCode();
}
clearingBillInfoService.insertOrUpdateSelective(dto.getClearingBillInfo());
}
if (CollectionUtils.isNotEmpty(dto.getBillDetailList())) {
if (StringUtils.isNotBlank(clearingBillCode)) {
// clearingBillCode不为空就根据clearingBillCode删除后新增数据
clearingBillDetailService.deleteByClearingBillCode(clearingBillCode);
}
clearingBillDetailService.batchInsert(dto.getBillDetailList());
}
}