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

@@ -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