update 订单日报

This commit is contained in:
2023-07-24 16:10:27 +08:00
parent 992f945274
commit acb988df79
7 changed files with 903 additions and 204 deletions

View File

@@ -1,233 +1,100 @@
package com.jsowell.pile.domain;
import com.jsowell.common.annotation.Excel;
import com.jsowell.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* 结算订单报对象 settle_order_report
*
* @author jsowell
* @date 2023-06-05
* 结算订单报
*/
public class SettleOrderReport extends BaseEntity {
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SettleOrderReport {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private Long id;
private Integer id;
/**
* 运营商id
*/
@Excel(name = "运营商id")
private String merchantId;
/**
* 站点id
*/
@Excel(name = "站点id")
private String stationId;
/**
* 包含订单编号
*/
private String orderCodes;
/**
* 用电度数
*/
@Excel(name = "用电度数")
private BigDecimal useElectricity;
/**
* 充电次数
*/
@Excel(name = "充电次数")
private String chargeNum;
/**
* 充电时长
*/
@Excel(name = "充电时长")
private String chargeTime;
/**
* 电费金额
*/
@Excel(name = "电费金额")
private BigDecimal electricityAmount;
/**
* 服务费金额
*/
@Excel(name = "服务费金额")
private BigDecimal serviceAmount;
/**
* 收入金额
*/
@Excel(name = "收入金额")
private BigDecimal totalAmount;
/**
* 虚拟金额
*/
@Excel(name = "虚拟金额")
private BigDecimal virtualAmount;
/**
* 交易日期
*/
@Excel(name = "交易日期")
private String tradeDate;
/**
* 交易金额
*/
@Excel(name = "交易金额")
private BigDecimal tradeAmount;
/**
* 交易手续费
*/
@Excel(name = "交易手续费")
private BigDecimal tradeFee;
/**
* 创建时间
*/
private Date createTime;
/**
* 删除标识0-正常1-删除)
*/
private String delFlag;
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
public void setMerchantId(String merchantId) {
this.merchantId = merchantId;
}
public String getMerchantId() {
return merchantId;
}
public void setStationId(String stationId) {
this.stationId = stationId;
}
public String getStationId() {
return stationId;
}
public void setUseElectricity(BigDecimal useElectricity) {
this.useElectricity = useElectricity;
}
public BigDecimal getUseElectricity() {
return useElectricity;
}
public void setChargeNum(String chargeNum) {
this.chargeNum = chargeNum;
}
public String getChargeNum() {
return chargeNum;
}
public void setChargeTime(String chargeTime) {
this.chargeTime = chargeTime;
}
public String getChargeTime() {
return chargeTime;
}
public void setElectricityAmount(BigDecimal electricityAmount) {
this.electricityAmount = electricityAmount;
}
public BigDecimal getElectricityAmount() {
return electricityAmount;
}
public void setServiceAmount(BigDecimal serviceAmount) {
this.serviceAmount = serviceAmount;
}
public BigDecimal getServiceAmount() {
return serviceAmount;
}
public void setTotalAmount(BigDecimal totalAmount) {
this.totalAmount = totalAmount;
}
public BigDecimal getTotalAmount() {
return totalAmount;
}
public void setVirtualAmount(BigDecimal virtualAmount) {
this.virtualAmount = virtualAmount;
}
public BigDecimal getVirtualAmount() {
return virtualAmount;
}
public void setTradeDate(String tradeDate) {
this.tradeDate = tradeDate;
}
public String getTradeDate() {
return tradeDate;
}
public void setTradeAmount(BigDecimal tradeAmount) {
this.tradeAmount = tradeAmount;
}
public BigDecimal getTradeAmount() {
return tradeAmount;
}
public void setTradeFee(BigDecimal tradeFee) {
this.tradeFee = tradeFee;
}
public BigDecimal getTradeFee() {
return tradeFee;
}
public void setDelFlag(String delFlag) {
this.delFlag = delFlag;
}
public String getDelFlag() {
return delFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
.append("id", getId())
.append("merchantId", getMerchantId())
.append("stationId", getStationId())
.append("useElectricity", getUseElectricity())
.append("chargeNum", getChargeNum())
.append("chargeTime", getChargeTime())
.append("electricityAmount", getElectricityAmount())
.append("serviceAmount", getServiceAmount())
.append("totalAmount", getTotalAmount())
.append("virtualAmount", getVirtualAmount())
.append("tradeDate", getTradeDate())
.append("tradeAmount", getTradeAmount())
.append("tradeFee", getTradeFee())
.append("createTime", getCreateTime())
.append("delFlag", getDelFlag())
.toString();
}
}
}

View File

@@ -4,25 +4,75 @@ import com.jsowell.pile.domain.SettleOrderReport;
import com.jsowell.pile.dto.MerchantOrderReportDTO;
import com.jsowell.pile.vo.web.SettleOrderReportVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 结算订单报Mapper接口
*
* @author jsowell
* @date 2023-06-05
*/
@Repository
public interface SettleOrderReportMapper {
/**
* delete by primary key
*
* @param id primaryKey
* @return deleteCount
*/
int deleteByPrimaryKey(Integer id);
/**
* insert record to table
*
* @param record the record
* @return insert count
*/
int insert(SettleOrderReport record);
int insertOrUpdate(SettleOrderReport record);
int insertOrUpdateSelective(SettleOrderReport record);
/**
* insert record to table selective
*
* @param record the record
* @return insert count
*/
int insertSelective(SettleOrderReport record);
/**
* select by primary key
*
* @param id primary key
* @return object by primary key
*/
SettleOrderReport selectByPrimaryKey(Integer id);
/**
* update record selective
*
* @param record the updated record
* @return update count
*/
int updateByPrimaryKeySelective(SettleOrderReport record);
/**
* update record
*
* @param record the updated record
* @return update count
*/
int updateByPrimaryKey(SettleOrderReport record);
int updateBatch(List<SettleOrderReport> list);
int updateBatchSelective(List<SettleOrderReport> list);
int batchInsert(@Param("list") List<SettleOrderReport> list);
/**
* 查询结算订单报
*
* @param id 结算订单报主键
* @return 结算订单报
*/
public SettleOrderReport selectSettleOrderReportById(Long id);
SettleOrderReport selectSettleOrderReportById(Long id);
/**
* 查询结算订单报列表
@@ -30,7 +80,7 @@ public interface SettleOrderReportMapper {
* @param settleOrderReport 结算订单报
* @return 结算订单报集合
*/
public List<SettleOrderReport> selectSettleOrderReportList(SettleOrderReport settleOrderReport);
List<SettleOrderReport> selectSettleOrderReportList(SettleOrderReport settleOrderReport);
/**
* 新增结算订单报
@@ -38,7 +88,7 @@ public interface SettleOrderReportMapper {
* @param settleOrderReport 结算订单报
* @return 结果
*/
public int insertSettleOrderReport(SettleOrderReport settleOrderReport);
int insertSettleOrderReport(SettleOrderReport settleOrderReport);
/**
* 修改结算订单报
@@ -46,7 +96,7 @@ public interface SettleOrderReportMapper {
* @param settleOrderReport 结算订单报
* @return 结果
*/
public int updateSettleOrderReport(SettleOrderReport settleOrderReport);
int updateSettleOrderReport(SettleOrderReport settleOrderReport);
/**
* 删除结算订单报
@@ -54,7 +104,7 @@ public interface SettleOrderReportMapper {
* @param id 结算订单报主键
* @return 结果
*/
public int deleteSettleOrderReportById(Long id);
int deleteSettleOrderReportById(Long id);
/**
* 批量删除结算订单报
@@ -62,14 +112,29 @@ public interface SettleOrderReportMapper {
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteSettleOrderReportByIds(Long[] ids);
int deleteSettleOrderReportByIds(Long[] ids);
/**
* 根据运营商id查询订单报表
*
* @param dto
* @return
*/
List<SettleOrderReportVO> getMerchantOrderReport(@Param("dto") MerchantOrderReportDTO dto);
/**
* 根据站点id和日期查询订单日报
*
* @param stationId 站点id
* @param date 交易日期
*/
SettleOrderReport selectByStationIdAndDate(@Param("stationId") String stationId, @Param("date") String date);
}
/**
* 根据运营商id和日期查询订单日报
*
* @param merchantId 运营商id
* @param date 交易日期
*/
List<SettleOrderReport> selectByMerchantIdAndDate(@Param("merchantId") String merchantId, @Param("date") String date);
}

View File

@@ -23,6 +23,8 @@ public interface ISettleOrderReportService {
SettleOrderReport selectByStationIdAndDate(String stationId, String date);
List<SettleOrderReport> selectByMerchantIdAndDate(String merchantId, String date);
/**
* 查询结算订单报列表
*
@@ -69,4 +71,26 @@ public interface ISettleOrderReportService {
* @return
*/
MerchantOrderReportVO getMerchantOrderReport(MerchantOrderReportDTO dto);
int deleteByPrimaryKey(Integer id);
int insert(SettleOrderReport record);
int insertOrUpdate(SettleOrderReport record);
int insertOrUpdateSelective(SettleOrderReport record);
int insertSelective(SettleOrderReport record);
SettleOrderReport selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(SettleOrderReport record);
int updateByPrimaryKey(SettleOrderReport record);
int updateBatch(List<SettleOrderReport> list);
int updateBatchSelective(List<SettleOrderReport> list);
int batchInsert(List<SettleOrderReport> list);
}

View File

@@ -118,6 +118,9 @@ public class AdapayMemberAccountServiceImpl implements IAdapayMemberAccountServi
@Override
public AdapayMemberAccount selectByMerchantId(String merchantId) {
if (StringUtils.isBlank(merchantId)) {
return null;
}
String redisKey = CacheConstants.ADAPAY_MEMBER_ACCOUNT + merchantId;
AdapayMemberAccount adapayMemberAccount = redisCache.getCacheObject(redisKey);
if (adapayMemberAccount == null) {

View File

@@ -870,16 +870,29 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
/**
* 订单分账逻辑
* orderSplittingOperations
* 只有开通结算账户的运营商才走分账逻辑
*/
private void ledgerAccount(OrderBasicInfo orderBasicInfo) throws BaseAdaPayException {
private void orderSplittingOperations(String merchantId, String tradeDate) {
// 查询运营商有没有开通结算账户
String merchantId = orderBasicInfo.getMerchantId();
AdapayMemberAccount adapayMemberAccount = adapayMemberAccountService.selectByMerchantId(merchantId);
if (adapayMemberAccount == null) {
logger.error("订单分账逻辑error, 运营商id:{}, 未配置结算账户", merchantId);
throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_MEMBER_IS_NULL_ERROR);
}
// 根据交易日期查询运营商下面所有站点的交易日报
List<SettleOrderReport> orderReports = settleOrderReportService.selectByMerchantIdAndDate(merchantId, tradeDate);
}
/**
* 交易确认
* @param orderBasicInfo 订单
* @param adapayMemberAccount 结算账户
* @throws BaseAdaPayException
*/
private void doPaymentConfirm(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException {
// 查询订单的交易id
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderBasicInfo.getOrderCode());
if (adapayCallbackRecord == null) {

View File

@@ -46,6 +46,11 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
return settleOrderReportMapper.selectByStationIdAndDate(stationId, date);
}
@Override
public List<SettleOrderReport> selectByMerchantIdAndDate(String merchantId, String date) {
return settleOrderReportMapper.selectByMerchantIdAndDate(merchantId, date);
}
/**
* 查询结算订单报列表
*
@@ -104,6 +109,7 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
/**
* 根据运营商id查询订单报表
*
* @param dto
* @return
*/
@@ -161,4 +167,60 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
vo.setMerchantOrderReport(report);
return vo;
}
@Override
public int deleteByPrimaryKey(Integer id) {
return settleOrderReportMapper.deleteByPrimaryKey(id);
}
@Override
public int insert(SettleOrderReport record) {
return settleOrderReportMapper.insert(record);
}
@Override
public int insertOrUpdate(SettleOrderReport record) {
return settleOrderReportMapper.insertOrUpdate(record);
}
@Override
public int insertOrUpdateSelective(SettleOrderReport record) {
return settleOrderReportMapper.insertOrUpdateSelective(record);
}
@Override
public int insertSelective(SettleOrderReport record) {
return settleOrderReportMapper.insertSelective(record);
}
@Override
public SettleOrderReport selectByPrimaryKey(Integer id) {
return settleOrderReportMapper.selectByPrimaryKey(id);
}
@Override
public int updateByPrimaryKeySelective(SettleOrderReport record) {
return settleOrderReportMapper.updateByPrimaryKeySelective(record);
}
@Override
public int updateByPrimaryKey(SettleOrderReport record) {
return settleOrderReportMapper.updateByPrimaryKey(record);
}
@Override
public int updateBatch(List<SettleOrderReport> list) {
return settleOrderReportMapper.updateBatch(list);
}
@Override
public int updateBatchSelective(List<SettleOrderReport> list) {
return settleOrderReportMapper.updateBatchSelective(list);
}
@Override
public int batchInsert(List<SettleOrderReport> list) {
return settleOrderReportMapper.batchInsert(list);
}
}