mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
更新会员交易记录的冻结金额
This commit is contained in:
@@ -1,75 +1,79 @@
|
||||
package com.jsowell.pile.domain;
|
||||
|
||||
import com.jsowell.common.enums.ykc.OrderPayRecordEnum;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 订单支付记录
|
||||
* 订单支付明细
|
||||
*/
|
||||
@Data
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class OrderPayRecord {
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Integer id;
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 订单号
|
||||
*/
|
||||
private String orderCode;
|
||||
/**
|
||||
* 订单号
|
||||
*/
|
||||
private String orderCode;
|
||||
|
||||
/**
|
||||
* 支付方式(1-本金余额支付; 2-赠送余额支付; 3-白名单支付; 4-微信支付; 5-支付宝支付)
|
||||
* @see OrderPayRecordEnum
|
||||
*/
|
||||
private String payMode;
|
||||
/**
|
||||
* 支付方式(1-本金余额支付;2-赠送余额支付;3-白名单支付;4-微信支付;5-支付宝支付)
|
||||
*/
|
||||
private String payMode;
|
||||
|
||||
/**
|
||||
* 支付金额
|
||||
*/
|
||||
private BigDecimal payAmount;
|
||||
/**
|
||||
* 支付金额
|
||||
*/
|
||||
private BigDecimal payAmount;
|
||||
|
||||
/**
|
||||
* 退款金额
|
||||
*/
|
||||
private BigDecimal refundAmount;
|
||||
/**
|
||||
* 收单机构(0-本账户余额;1-微信支付;2-汇付支付)
|
||||
*/
|
||||
private String acquirer;
|
||||
|
||||
/**
|
||||
* 收单机构(0-本账户余额;1-微信支付;2-汇付支付)
|
||||
*/
|
||||
private String acquirer;
|
||||
/**
|
||||
* 退款金额
|
||||
*/
|
||||
private BigDecimal refundAmount;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createBy;
|
||||
/**
|
||||
* 扣款记录
|
||||
*/
|
||||
private String deductionRecord;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
private String updateBy;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 删除标识(0-正常;1-删除)
|
||||
*/
|
||||
private String delFlag;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 删除标识(0-正常;1-删除)
|
||||
*/
|
||||
private String delFlag;
|
||||
}
|
||||
@@ -6,19 +6,41 @@ import org.apache.ibatis.annotations.Param;
|
||||
import java.util.List;
|
||||
|
||||
public interface OrderPayRecordMapper {
|
||||
int deleteByPrimaryKey(Integer id);
|
||||
|
||||
// int insert(OrderPayRecord record);
|
||||
|
||||
// int insertSelective(OrderPayRecord record);
|
||||
/**
|
||||
* insert record to table selective
|
||||
*
|
||||
* @param record the record
|
||||
* @return insert count
|
||||
*/
|
||||
int insertSelective(OrderPayRecord record);
|
||||
|
||||
/**
|
||||
* select by primary key
|
||||
*
|
||||
* @param id primary key
|
||||
* @return object by primary key
|
||||
*/
|
||||
OrderPayRecord selectByPrimaryKey(Integer id);
|
||||
|
||||
/**
|
||||
* update record selective
|
||||
*
|
||||
* @param record the updated record
|
||||
* @return update count
|
||||
*/
|
||||
int updateByPrimaryKeySelective(OrderPayRecord record);
|
||||
|
||||
int updateBatch(List<OrderPayRecord> list);
|
||||
|
||||
int batchInsert(@Param("list") List<OrderPayRecord> list);
|
||||
|
||||
int insertOrUpdate(OrderPayRecord record);
|
||||
|
||||
int insertOrUpdateSelective(OrderPayRecord record);
|
||||
|
||||
int deleteByPrimaryKey(Integer id);
|
||||
|
||||
int updateByPrimaryKey(OrderPayRecord record);
|
||||
|
||||
int batchInsert(@Param("payRecordList") List<OrderPayRecord> payRecordList);
|
||||
|
||||
List<OrderPayRecord> getOrderPayRecordList(@Param("orderCode") String orderCode);
|
||||
List<OrderPayRecord> getOrderPayRecordList(@Param("orderCode") String orderCode);
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.jsowell.pile.service;
|
||||
|
||||
import com.jsowell.pile.domain.OrderPayRecord;
|
||||
import com.jsowell.pile.vo.web.OrderDetailInfoVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface OrderPayRecordService{
|
||||
|
||||
|
||||
int insertSelective(OrderPayRecord record);
|
||||
|
||||
OrderPayRecord selectByPrimaryKey(Integer id);
|
||||
|
||||
int updateByPrimaryKeySelective(OrderPayRecord record);
|
||||
|
||||
int updateBatch(List<OrderPayRecord> list);
|
||||
|
||||
int insertOrUpdate(OrderPayRecord record);
|
||||
|
||||
int insertOrUpdateSelective(OrderPayRecord record);
|
||||
|
||||
/**
|
||||
* 批量保存订单支付记录
|
||||
* @param payRecordList
|
||||
* @return
|
||||
*/
|
||||
int batchInsert(List<OrderPayRecord> payRecordList);
|
||||
|
||||
List<OrderPayRecord> getOrderPayRecordList(String orderCode);
|
||||
|
||||
List<OrderDetailInfoVO.PayRecord> selectOrderPayInfoList(String orderCode);
|
||||
|
||||
}
|
||||
@@ -96,7 +96,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
private WxAppletRemoteService wxAppletRemoteService;
|
||||
|
||||
@Autowired
|
||||
private IOrderPayRecordService orderPayRecordService;
|
||||
private OrderPayRecordService orderPayRecordService;
|
||||
|
||||
@Autowired
|
||||
private IMemberBasicInfoService memberBasicInfoService;
|
||||
|
||||
@@ -22,128 +22,154 @@ import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class OrderPayRecordServiceImpl implements IOrderPayRecordService {
|
||||
public class OrderPayRecordServiceImpl implements OrderPayRecordService {
|
||||
|
||||
@Resource
|
||||
private OrderPayRecordMapper orderPayRecordMapper;
|
||||
@Resource
|
||||
private OrderPayRecordMapper orderPayRecordMapper;
|
||||
|
||||
@Autowired
|
||||
private WxpayCallbackRecordService wxpayCallbackRecordService;
|
||||
@Autowired
|
||||
private WxpayCallbackRecordService wxpayCallbackRecordService;
|
||||
|
||||
@Autowired
|
||||
private AdapayCallbackRecordService adapayCallbackRecordService;
|
||||
@Autowired
|
||||
private AdapayCallbackRecordService adapayCallbackRecordService;
|
||||
|
||||
@Autowired
|
||||
private IMemberTransactionRecordService memberTransactionRecordService;
|
||||
@Autowired
|
||||
private IMemberTransactionRecordService memberTransactionRecordService;
|
||||
|
||||
@Autowired
|
||||
private IOrderBasicInfoService orderBasicInfoService;
|
||||
@Autowired
|
||||
private IOrderBasicInfoService orderBasicInfoService;
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
|
||||
@Override
|
||||
public int updateByPrimaryKeySelective(OrderPayRecord record) {
|
||||
return orderPayRecordMapper.updateByPrimaryKeySelective(record);
|
||||
}
|
||||
@Override
|
||||
public int updateByPrimaryKeySelective(OrderPayRecord record) {
|
||||
return orderPayRecordMapper.updateByPrimaryKeySelective(record);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int batchInsert(List<OrderPayRecord> payRecordList) {
|
||||
return orderPayRecordMapper.batchInsert(payRecordList);
|
||||
}
|
||||
@Override
|
||||
public int batchInsert(List<OrderPayRecord> payRecordList) {
|
||||
return orderPayRecordMapper.batchInsert(payRecordList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderPayRecord> getOrderPayRecordList(String orderCode) {
|
||||
return orderPayRecordMapper.getOrderPayRecordList(orderCode);
|
||||
}
|
||||
@Override
|
||||
public List<OrderPayRecord> getOrderPayRecordList(String orderCode) {
|
||||
return orderPayRecordMapper.getOrderPayRecordList(orderCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单支付信息
|
||||
* 加缓存
|
||||
* @param orderCode
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<OrderDetailInfoVO.PayRecord> selectOrderPayInfoList(String orderCode) {
|
||||
// 缓存
|
||||
String redisKey = "select_order_pay_info_list:" + orderCode;
|
||||
List<OrderDetailInfoVO.PayRecord> resultList = redisCache.getCacheList(redisKey);
|
||||
if (CollectionUtils.isNotEmpty(resultList)) {
|
||||
return resultList;
|
||||
}
|
||||
/**
|
||||
* 查询订单支付信息
|
||||
* 加缓存
|
||||
*
|
||||
* @param orderCode
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<OrderDetailInfoVO.PayRecord> selectOrderPayInfoList(String orderCode) {
|
||||
// 缓存
|
||||
String redisKey = "select_order_pay_info_list:" + orderCode;
|
||||
List<OrderDetailInfoVO.PayRecord> resultList = redisCache.getCacheList(redisKey);
|
||||
if (CollectionUtils.isNotEmpty(resultList)) {
|
||||
return resultList;
|
||||
}
|
||||
|
||||
// 订单信息
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
|
||||
if (orderBasicInfo == null) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
// 支付流水
|
||||
List<OrderPayRecord> orderPayRecordList = getOrderPayRecordList(orderCode);
|
||||
if (CollectionUtils.isEmpty(orderPayRecordList)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
List<OrderDetailInfoVO.PayRecord> payRecordList = Lists.newArrayList();
|
||||
for (OrderPayRecord orderPayRecord : orderPayRecordList) {
|
||||
OrderDetailInfoVO.PayRecord payInfo = new OrderDetailInfoVO.PayRecord();
|
||||
// 余额支付如果是由本金和赠送一起支付的,合并为一个
|
||||
BigDecimal bigDecimal = orderPayRecordList.stream()
|
||||
.map(OrderPayRecord::getPayAmount)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
payInfo.setPayAmount(bigDecimal.toString());
|
||||
payInfo.setPayStatus(orderBasicInfo.getPayStatus());
|
||||
payInfo.setPayTime(DateUtils.formatDateTime(orderBasicInfo.getPayTime()));
|
||||
if (orderPayRecord.getRefundAmount() != null) {
|
||||
payInfo.setRefundAmount(orderPayRecord.getRefundAmount().toString());
|
||||
}
|
||||
String payMode = orderPayRecord.getPayMode();
|
||||
if (StringUtils.equals(payMode, OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue())
|
||||
|| StringUtils.equals(payMode, OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())) {
|
||||
// 使用余额支付
|
||||
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue());
|
||||
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_BALANCE.getLabel());
|
||||
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())){
|
||||
// 使用微信支付
|
||||
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue());
|
||||
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getLabel());
|
||||
// 订单信息
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
|
||||
if (orderBasicInfo == null) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
// 支付流水
|
||||
List<OrderPayRecord> orderPayRecordList = getOrderPayRecordList(orderCode);
|
||||
if (CollectionUtils.isEmpty(orderPayRecordList)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
List<OrderDetailInfoVO.PayRecord> payRecordList = Lists.newArrayList();
|
||||
for (OrderPayRecord orderPayRecord : orderPayRecordList) {
|
||||
OrderDetailInfoVO.PayRecord payInfo = new OrderDetailInfoVO.PayRecord();
|
||||
// 余额支付如果是由本金和赠送一起支付的,合并为一个
|
||||
BigDecimal bigDecimal = orderPayRecordList.stream()
|
||||
.map(OrderPayRecord::getPayAmount)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
payInfo.setPayAmount(bigDecimal.toString());
|
||||
payInfo.setPayStatus(orderBasicInfo.getPayStatus());
|
||||
payInfo.setPayTime(DateUtils.formatDateTime(orderBasicInfo.getPayTime()));
|
||||
if (orderPayRecord.getRefundAmount() != null) {
|
||||
payInfo.setRefundAmount(orderPayRecord.getRefundAmount().toString());
|
||||
}
|
||||
String payMode = orderPayRecord.getPayMode();
|
||||
if (StringUtils.equals(payMode, OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue())
|
||||
|| StringUtils.equals(payMode, OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())) {
|
||||
// 使用余额支付
|
||||
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue());
|
||||
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_BALANCE.getLabel());
|
||||
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())) {
|
||||
// 使用微信支付
|
||||
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue());
|
||||
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getLabel());
|
||||
|
||||
// 判断是微信支付还是汇付支付
|
||||
MemberTransactionRecord record = memberTransactionRecordService.selectByOrderCode(orderCode, ActionTypeEnum.FORWARD.getValue());
|
||||
if (record != null) {
|
||||
String paymentInstitutions = record.getPaymentInstitutions();
|
||||
if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.WECHAT_PAY.getValue())) {
|
||||
// 查微信支付回调记录
|
||||
WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode);
|
||||
if (wxpayCallbackRecord != null) {
|
||||
payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo());
|
||||
payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId());
|
||||
}
|
||||
} else if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.ADAPAY.getValue())) {
|
||||
// 查询汇付支付回调
|
||||
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode);
|
||||
if (adapayCallbackRecord != null) {
|
||||
payInfo.setOutTradeNo(adapayCallbackRecord.getPaymentId());
|
||||
payInfo.setTransactionId(adapayCallbackRecord.getOutTransId());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 查微信支付回调记录
|
||||
WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode);
|
||||
if (wxpayCallbackRecord != null) {
|
||||
payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo());
|
||||
payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId());
|
||||
}
|
||||
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())){
|
||||
// 使用白名单支付
|
||||
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue());
|
||||
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getLabel());
|
||||
}
|
||||
payRecordList.add(payInfo);
|
||||
}
|
||||
redisCache.setCacheList(redisKey, payRecordList);
|
||||
redisCache.expire(redisKey, CacheConstants.cache_expire_time_10d);
|
||||
return payRecordList;
|
||||
}
|
||||
// 判断是微信支付还是汇付支付
|
||||
MemberTransactionRecord record = memberTransactionRecordService.selectByOrderCode(orderCode, ActionTypeEnum.FORWARD.getValue());
|
||||
if (record != null) {
|
||||
String paymentInstitutions = record.getPaymentInstitutions();
|
||||
if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.WECHAT_PAY.getValue())) {
|
||||
// 查微信支付回调记录
|
||||
WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode);
|
||||
if (wxpayCallbackRecord != null) {
|
||||
payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo());
|
||||
payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId());
|
||||
}
|
||||
} else if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.ADAPAY.getValue())) {
|
||||
// 查询汇付支付回调
|
||||
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode);
|
||||
if (adapayCallbackRecord != null) {
|
||||
payInfo.setOutTradeNo(adapayCallbackRecord.getPaymentId());
|
||||
payInfo.setTransactionId(adapayCallbackRecord.getOutTransId());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 查微信支付回调记录
|
||||
WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode);
|
||||
if (wxpayCallbackRecord != null) {
|
||||
payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo());
|
||||
payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId());
|
||||
}
|
||||
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())) {
|
||||
// 使用白名单支付
|
||||
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue());
|
||||
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getLabel());
|
||||
}
|
||||
payRecordList.add(payInfo);
|
||||
}
|
||||
redisCache.setCacheList(redisKey, payRecordList);
|
||||
redisCache.expire(redisKey, CacheConstants.cache_expire_time_10d);
|
||||
return payRecordList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertSelective(OrderPayRecord record) {
|
||||
return orderPayRecordMapper.insertSelective(record);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderPayRecord selectByPrimaryKey(Integer id) {
|
||||
return orderPayRecordMapper.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateBatch(List<OrderPayRecord> list) {
|
||||
return orderPayRecordMapper.updateBatch(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertOrUpdate(OrderPayRecord record) {
|
||||
return orderPayRecordMapper.insertOrUpdate(record);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertOrUpdateSelective(OrderPayRecord record) {
|
||||
return orderPayRecordMapper.insertOrUpdateSelective(record);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user