提交修改

This commit is contained in:
quyixiao 2025-12-04 08:16:04 +08:00
parent 755ed1c5d5
commit 715d429a1b
15 changed files with 359 additions and 26 deletions

View File

@ -0,0 +1,36 @@
package com.heyu.api.data.dao.vv;
/**
* <p>
* sku详描 服务类
* </p>
*
* @author quyixiao
* @since 2025-12-04
*/
import com.heyu.api.data.entity.vv.VvOutTradeNoEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface VvOutTradeNoDao extends BaseMapper<VvOutTradeNoEntity> {
VvOutTradeNoEntity selectVvOutTradeNoById(@Param("id")Long id);
Long insertVvOutTradeNo(VvOutTradeNoEntity vvOutTradeNo);
Long insertOrUpdateVvOutTradeNo(VvOutTradeNoEntity vvOutTradeNo);
int updateVvOutTradeNoById(VvOutTradeNoEntity vvOutTradeNo);
int updateCoverVvOutTradeNoById(VvOutTradeNoEntity vvOutTradeNo);
int deleteVvOutTradeNoById(@Param("id")Long id);
}

View File

@ -65,5 +65,12 @@ public interface VvReverseOrderDao extends BaseMapper<VvReverseOrderEntity> {
@OrderBy(VvReverseOrderEntity.id_)
@LIMIT
VvReverseOrderEntity selectVvReverseOrderByTrackNumber(String trackNumber);
@LIMIT
VvReverseOrderEntity selectVvReverseOrderByOutRefundNo(String outRefundNo);
}

View File

@ -66,4 +66,10 @@ public interface VvTradeOrderDao extends BaseMapper<VvTradeOrderEntity> {
List<VvTradeOrderEntity> selectAppTradeOrderByTradeOrderIds(@IFNullReturnEmpty @IN List<Long> id);
@LIMIT
VvTradeOrderEntity selectVvTradeOrderByOutTradeNo(String outTradeNo);
}

View File

@ -0,0 +1,106 @@
package com.heyu.api.data.entity.vv;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.lz.mybatis.plugin.annotations.AS;
import java.math.BigDecimal;
import java.util.Date;import java.util.Date;
/**
*sku详描
* @author quyixiao
* @since 2025-12-04
*/
@Data
@TableName("vv_out_trade_no")
public class VvOutTradeNoEntity implements java.io.Serializable {
private static final long serialVersionUID = 1L;
public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvOutTradeNoEntity:";
public final static String all = CLASS_NAME + "*";
public final static String id_ = CLASS_NAME + "id"; //
public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除0 1 删除
public final static String create_time = CLASS_NAME + "create_time"; // 创建时间
public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
//是否删除0 1 删除
private Integer isDelete;
//创建时间
private Date createTime;
//修改时间
private Date modifyTime;
/**
*
* @return
*/
public Long getId() {
return id;
}
/**
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 是否删除0 1 删除
* @return
*/
public Integer getIsDelete() {
return isDelete;
}
/**
* 是否删除0 1 删除
* @param isDelete
*/
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
/**
* 创建时间
* @return
*/
public Date getCreateTime() {
return createTime;
}
/**
* 创建时间
* @param createTime
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 修改时间
* @return
*/
public Date getModifyTime() {
return modifyTime;
}
/**
* 修改时间
* @param modifyTime
*/
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
@Override
public String toString() {
return "VvOutTradeNoEntity{" +
",id=" + id +
",isDelete=" + isDelete +
",createTime=" + createTime +
",modifyTime=" + modifyTime +
"}";
}
}

View File

@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
/**
*逆向表
* @author quyixiao
* @since 2025-11-19
* @since 2025-12-04
*/
@Data
@ -77,6 +77,7 @@ private static final long serialVersionUID = 1L;
public final static String agree_sign_receipt_user = CLASS_NAME + "agree_sign_receipt_user"; // 同意签收用户
public final static String return_seller_id = CLASS_NAME + "return_seller_id"; // 退回到哪个卖家id
public final static String return_seller_warehouse_id = CLASS_NAME + "return_seller_warehouse_id"; // 退回到卖家仓库id
public final static String out_refund_no = CLASS_NAME + "out_refund_no"; // 退款编号
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ -190,6 +191,8 @@ private static final long serialVersionUID = 1L;
private Long returnSellerId;
//退回到卖家仓库id
private Long returnSellerWarehouseId;
//退款编号
private String outRefundNo;
/**
*
* @return
@ -1030,6 +1033,21 @@ private static final long serialVersionUID = 1L;
this.returnSellerWarehouseId = returnSellerWarehouseId;
}
/**
* 退款编号
* @return
*/
public String getOutRefundNo() {
return outRefundNo;
}
/**
* 退款编号
* @param outRefundNo
*/
public void setOutRefundNo(String outRefundNo) {
this.outRefundNo = outRefundNo;
}
@Override
public String toString() {
return "VvReverseOrderEntity{" +
@ -1089,6 +1107,7 @@ private static final long serialVersionUID = 1L;
",agreeSignReceiptUser=" + agreeSignReceiptUser +
",returnSellerId=" + returnSellerId +
",returnSellerWarehouseId=" + returnSellerWarehouseId +
",outRefundNo=" + outRefundNo +
"}";
}
}

View File

@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
/**
*购物车
* @author quyixiao
* @since 2025-11-17
* @since 2025-12-04
*/
@Data
@ -49,6 +49,7 @@ private static final long serialVersionUID = 1L;
public final static String transaction_id = CLASS_NAME + "transaction_id"; // 事务id
public final static String buyer_address_id = CLASS_NAME + "buyer_address_id"; // 买家地址id
public final static String promotion_price = CLASS_NAME + "promotion_price"; // 促销价
public final static String out_trade_no = CLASS_NAME + "out_trade_no"; //
//
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ -106,6 +107,8 @@ private static final long serialVersionUID = 1L;
private Long buyerAddressId;
//促销价
private BigDecimal promotionPrice;
//
private String outTradeNo;
/**
*
* @return
@ -526,6 +529,21 @@ private static final long serialVersionUID = 1L;
this.promotionPrice = promotionPrice;
}
/**
*
* @return
*/
public String getOutTradeNo() {
return outTradeNo;
}
/**
*
* @param outTradeNo
*/
public void setOutTradeNo(String outTradeNo) {
this.outTradeNo = outTradeNo;
}
@Override
public String toString() {
return "VvTradeOrderEntity{" +
@ -557,6 +575,7 @@ private static final long serialVersionUID = 1L;
",transactionId=" + transactionId +
",buyerAddressId=" + buyerAddressId +
",promotionPrice=" + promotionPrice +
",outTradeNo=" + outTradeNo +
"}";
}
}

View File

@ -0,0 +1,68 @@
package com.heyu.api.data.service.impl.vv;
/**
* <p>
* sku详描 服务类
* </p>
*
* @author quyixiao
* @since 2025-12-04
*/
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.heyu.api.data.dao.vv.VvOutTradeNoDao;
import com.heyu.api.data.entity.vv.VvOutTradeNoEntity;
import com.heyu.api.data.service.vv.VvOutTradeNoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class VvOutTradeNoServiceImpl extends ServiceImpl<VvOutTradeNoDao, VvOutTradeNoEntity> implements VvOutTradeNoService {
@Autowired
private VvOutTradeNoDao vvOutTradeNoDao;
@Override
public VvOutTradeNoEntity selectVvOutTradeNoById(Long id){
return vvOutTradeNoDao.selectVvOutTradeNoById(id);
}
@Override
public Long insertVvOutTradeNo(VvOutTradeNoEntity vvOutTradeNo){
return vvOutTradeNoDao.insertVvOutTradeNo(vvOutTradeNo);
}
@Override
public Long insertOrUpdateVvOutTradeNo(VvOutTradeNoEntity vvOutTradeNo){
return vvOutTradeNoDao.insertOrUpdateVvOutTradeNo(vvOutTradeNo);
}
@Override
public int updateVvOutTradeNoById(VvOutTradeNoEntity vvOutTradeNo){
return vvOutTradeNoDao.updateVvOutTradeNoById(vvOutTradeNo);
}
@Override
public int updateCoverVvOutTradeNoById(VvOutTradeNoEntity vvOutTradeNo){
return vvOutTradeNoDao.updateCoverVvOutTradeNoById(vvOutTradeNo);
}
@Override
public int deleteVvOutTradeNoById(Long id){
return vvOutTradeNoDao.deleteVvOutTradeNoById(id);
}
}

View File

@ -0,0 +1,34 @@
package com.heyu.api.data.service.vv;
/**
* <p>
* sku详描 服务类
* </p>
*
* @author quyixiao
* @since 2025-12-04
*/
import com.baomidou.mybatisplus.extension.service.IService;
import com.heyu.api.data.entity.vv.VvOutTradeNoEntity;
public interface VvOutTradeNoService extends IService<VvOutTradeNoEntity> {
VvOutTradeNoEntity selectVvOutTradeNoById(Long id);
Long insertVvOutTradeNo(VvOutTradeNoEntity vvOutTradeNo);
Long insertOrUpdateVvOutTradeNo(VvOutTradeNoEntity vvOutTradeNo);
int updateVvOutTradeNoById(VvOutTradeNoEntity vvOutTradeNo);
int updateCoverVvOutTradeNoById(VvOutTradeNoEntity vvOutTradeNo);
int deleteVvOutTradeNoById(Long id);
}

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.heyu.api.data.dao.vv.VvOutTradeNoDao">
</mapper>

View File

@ -94,7 +94,7 @@ public class MysqlMain_insert {
List<TablesBean> list = new ArrayList<TablesBean>();
list.add(new TablesBean("vv_promoter"));
list.add(new TablesBean("vv_out_trade_no"));

View File

@ -48,7 +48,7 @@ public class MysqlMain_update {
}
List<TablesBean> list = new ArrayList<TablesBean>();
list.add(new TablesBean("vv_sku"));
list.add(new TablesBean("vv_reverse_order"));
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();
for (int i = 0; i < list.size(); i++) {

View File

@ -4,8 +4,10 @@ package com.heyu.api.jsapi;
import com.alibaba.fastjson.JSON;
import com.heyu.api.alibaba.request.mm.order.ProfitSharingDTO;
import com.heyu.api.data.dao.vv.VvOutTradeNoDao;
import com.heyu.api.data.dao.vv.VvReverseOrderDao;
import com.heyu.api.data.dao.vv.VvTradeOrderDao;
import com.heyu.api.data.entity.vv.VvOutTradeNoEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderEntity;
import com.heyu.api.data.utils.BigDecimalUtil;
@ -71,6 +73,9 @@ public class JsapiPrepay {
private VvReverseOrderDao vvReverseOrderDao;
@Autowired
private VvOutTradeNoDao vvOutTradeNoDao;
@Value("${eb.config.weixin.pay.notifyUrl}")
@ -107,7 +112,7 @@ public class JsapiPrepay {
* https://pay.weixin.qq.com/doc/v3/merchant/4012791897
* JSAPI/小程序下单
*/
public DirectAPIv3JsapiPrepayResponse prePay(Long tradeOrderId,
public DirectAPIv3JsapiPrepayResponse prePay(String outTradeNo,
Long amount,
String openid) {
DirectAPIv3JsapiPrepayRequest request = new DirectAPIv3JsapiPrepayRequest();
@ -115,7 +120,7 @@ public class JsapiPrepay {
request.setMchid(mchid);
request.setNotifyUrl(notifyUrl);
request.setDescription(System.currentTimeMillis() + "");
request.setOutTradeNo(tradeOrderId + "");
request.setOutTradeNo(outTradeNo );
request.setTimeExpire(WXPayUtility.generateExpireTime()); // 2025-11-05T21:02:16+08:00
request.setAttach("自定义数据说明");
request.setGoodsTag("WXG");
@ -219,6 +224,7 @@ public class JsapiPrepay {
}
}
/****
* https://pay.weixin.qq.com/doc/v3/merchant/4012791903
* 退款申请
@ -229,8 +235,16 @@ public class JsapiPrepay {
CreateRequest request = new CreateRequest();
request.transactionId = vvTradeOrderEntity.getTransactionId(); // 微信支付订单号 微信支付侧订单的唯一标识订单支付成功后查询订单和支付成功回调通知会返回该参数transaction_id和out_trade_no必须二选一进行传参
request.outTradeNo = tradeOrderId + ""; // 商户订单号 商户下单时传入的商户系统内部订单号transaction_id和out_trade_no必须二选一进行传参
request.outRefundNo = reverseOrderId + ""; //商户退款单号 商户系统内部的退款单号商户系统内部唯一只能是数字大小写字母_-|*@ 同一商户退款单号多次请求只退一笔不可超过64个字节数
VvOutTradeNoEntity vvOutTradeNo = new VvOutTradeNoEntity();
vvOutTradeNoDao.insertOrUpdateVvOutTradeNo(vvOutTradeNo);
vvReverseOrderEntity.setOutRefundNo(vvOutTradeNo.getId()+"");
vvReverseOrderDao.updateVvReverseOrderById(vvReverseOrderEntity);
request.outTradeNo = vvTradeOrderEntity.getOutTradeNo() + ""; // 商户订单号 商户下单时传入的商户系统内部订单号transaction_id和out_trade_no必须二选一进行传参
request.outRefundNo = vvReverseOrderEntity.getOutRefundNo() + ""; //商户退款单号 商户系统内部的退款单号商户系统内部唯一只能是数字大小写字母_-|*@ 同一商户退款单号多次请求只退一笔不可超过64个字节数
request.reason = vvReverseOrderEntity.getRefundReason(); // 退款原因 若商户传了退款原因该原因将在下发给用户的退款消息中显示具体展示可参见退款通知UI示意图请注意1该退款原因参数的长度不得超过80个字节2当订单退款金额小于等于1元且为部分退款时退款原因将不会在消息中体现
request.notifyUrl = refundNotifyUrl; // 退款结果回调url 异步接收微信支付退款结果通知的回调地址通知url必须为外网可访问的url不能携带参数 如果传了该参数则商户平台上配置的回调地址商户平台-交易中心-退款管理-退款配置将不会生效优先回调当前传的这个地址
/**

View File

@ -129,6 +129,9 @@ public class AppOrderController {
private VvPromoterTradeOrderAwardDao vvPromoterTradeOrderAwardDao;
@Autowired
private VvOutTradeNoDao vvOutTradeNoDao;
/***
* https://api.1024api.com/api-interface/app/order/list
@ -499,7 +502,12 @@ public class AppOrderController {
vvProductDao.updateShowSaleCountAndSaleCount(map.getValue(), map.getValue(), map.getKey());
}
DirectAPIv3JsapiPrepayResponse jsapiPrepayResponse = jsapiPrepay.prePay(vvTradeOrderEntity.getId(),
VvOutTradeNoEntity vvOutTradeNo = new VvOutTradeNoEntity();
vvOutTradeNoDao.insertOrUpdateVvOutTradeNo(vvOutTradeNo);
vvTradeOrderEntity.setOutTradeNo(vvOutTradeNo.getId()+"");
vvTradeOrderDao.updateVvTradeOrderById(vvTradeOrderEntity);
DirectAPIv3JsapiPrepayResponse jsapiPrepayResponse = jsapiPrepay.prePay(vvTradeOrderEntity.getOutTradeNo(),
BigDecimalUtil.multiply(vvTradeOrderEntity.getPayAmount(), new BigDecimal(100)).longValue(),
vvBuyerEntity.getOpenid()
);
@ -516,6 +524,7 @@ public class AppOrderController {
vvTradeOrderLineEntity.setGmtPrePay(new Date());
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
}
// 发送订单关单的消息
Date currentTime = new Date();
Date after30 = DateUtils.addMinutes(currentTime, 30);
@ -567,13 +576,19 @@ public class AppOrderController {
VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao.selectVvTradeOrderById(vvOrderRequest.getTradeOrderId());
VvBuyerEntity vvBuyerEntity = vvBuyerDao.selectVvBuyerById(vvOrderRequest.getBuyerId());
VvOutTradeNoEntity vvOutTradeNo = new VvOutTradeNoEntity();
vvOutTradeNoDao.insertOrUpdateVvOutTradeNo(vvOutTradeNo);
DirectAPIv3JsapiPrepayResponse jsapiPrepayResponse = jsapiPrepay.prePay(vvTradeOrderEntity.getId(),
vvTradeOrderEntity.setOutTradeNo(vvOutTradeNo.getId()+"");
vvTradeOrderDao.updateVvTradeOrderById(vvTradeOrderEntity);
DirectAPIv3JsapiPrepayResponse jsapiPrepayResponse = jsapiPrepay.prePay(vvTradeOrderEntity.getOutTradeNo(),
BigDecimalUtil.multiply(vvTradeOrderEntity.getPayAmount(), new BigDecimal(100)).longValue(),
vvBuyerEntity.getOpenid()
);
String prepay_id = jsapiPrepayResponse.getPrepayId();
if (jsapiPrepayResponse != null && jsapiPrepayResponse.getPrepayId() != null) {
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(vvTradeOrderEntity.getId());
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {

View File

@ -4,13 +4,12 @@ package com.heyu.api.controller.vv;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.heyu.api.data.enums.OrderStatusEnums;
import com.heyu.api.common.annotation.Describe;
import com.heyu.api.data.dao.vv.VvTradeOrderDao;
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
import com.heyu.api.data.entity.vv.VvTradeOrderEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import com.heyu.api.data.utils.NumberUtil;
import com.heyu.api.data.enums.OrderStatusEnums;
import com.heyu.api.jsapi.JsapiPrepay;
import com.heyu.api.jsapi.dto.pay.DirectAPIv3QueryResponse;
import lombok.extern.slf4j.Slf4j;
@ -107,22 +106,24 @@ public class AppWeiXinPayNotifyController {
private void updateOrderStatus(String outTradeNo, String transactionId) {
try {
DirectAPIv3QueryResponse response = jsapiPrepay.queryOrder(transactionId);
VvTradeOrderEntity tradeOrderEntity = tradeOrderDao.selectVvTradeOrderById(NumberUtil.objToLong(outTradeNo));
VvTradeOrderEntity tradeOrderEntity = tradeOrderDao.selectVvTradeOrderByOutTradeNo(outTradeNo);
tradeOrderEntity.setTradeInfo(JSON.toJSONString(response));
tradeOrderEntity.setTransactionId(transactionId);
tradeOrderDao.updateVvTradeOrderById(tradeOrderEntity);
// 这里是更新商户订单状态的逻辑例如标记订单已支付
log.info("handleWeChatPayCallback 订单 " + outTradeNo + " 已支付,交易号:" + transactionId + "开始更新子订单信息");
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(tradeOrderEntity.getId());
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntityList) {
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_shipping.getStatus());
vvTradeOrderLineEntity.setGmtPay(new Date());
vvTradeOrderLineEntity.setTransactionId(transactionId);
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
}
}catch ( Exception e ){
log.error("AppWeiXinPayNotifyController updateOrderStatus error:{}",e.getMessage());
}
// 这里是更新商户订单状态的逻辑例如标记订单已支付
log.info("handleWeChatPayCallback 订单 " + outTradeNo + " 已支付,交易号:" + transactionId + "开始更新子订单信息");
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(NumberUtil.objToLong(outTradeNo));
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntityList) {
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_shipping.getStatus());
vvTradeOrderLineEntity.setGmtPay(new Date());
vvTradeOrderLineEntity.setTransactionId(transactionId);
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
}
}
}

View File

@ -2,7 +2,6 @@ package com.heyu.api.controller.vv;
import com.alibaba.fastjson.JSONObject;
import com.heyu.api.data.enums.ReverseStatusEnums;
import com.heyu.api.data.dao.vv.VvReverseOrderDao;
import com.heyu.api.data.dao.vv.VvReverseOrderLineDao;
import com.heyu.api.data.dao.vv.VvTradeOrderDao;
@ -10,7 +9,7 @@ import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
import com.heyu.api.data.entity.vv.VvReverseOrderEntity;
import com.heyu.api.data.entity.vv.VvReverseOrderLineEntity;
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
import com.heyu.api.data.utils.NumberUtil;
import com.heyu.api.data.enums.ReverseStatusEnums;
import com.heyu.api.data.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -110,15 +109,18 @@ public class AppWeiXinRefundNotifyController {
log.info("AppWeiXinRefundNotifyController refundNotifyUrl out_trade_no:{} ,out_refund_no:{} refund_status:{} resultStr :{} " ,out_trade_no,out_refund_no,refund_status,resultStr);
Map<String, Object> parm = new HashMap<>();
if (!StringUtils.isEmpty(refund_status) && "SUCCESS".equals(refund_status)) {
VvReverseOrderEntity vvReverseOrderEntity = reverseOrderDao.selectVvReverseOrderById(NumberUtil.objToLong(out_refund_no));
VvReverseOrderEntity vvReverseOrderEntity = reverseOrderDao.selectVvReverseOrderByOutRefundNo(out_refund_no);
log.info("AppWeiXinRefundNotifyController refundNotifyUrl reverseStatus:{}", vvReverseOrderEntity.getStatus());
if(ReverseStatusEnums.weixin_refunding.getStatus().equals(vvReverseOrderEntity.getStatus())){
vvReverseOrderEntity.setGmtRefunded(new Date());
vvReverseOrderEntity.setStatus(ReverseStatusEnums.refunded.getStatus());
vvReverseOrderEntity.setGmtRefundNotify(new Date());
reverseOrderDao.updateVvReverseOrderById(vvReverseOrderEntity);
List<VvReverseOrderLineEntity > vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(NumberUtil.objToLong(out_refund_no));;
List<VvReverseOrderLineEntity > vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(vvReverseOrderEntity.getId());
List<Long> tradeOrderLineIds = new ArrayList<>();
for (VvReverseOrderLineEntity vvReverseOrderLineEntity : vvReverseOrderLineEntities) {
tradeOrderLineIds.add(vvReverseOrderLineEntity.getTradeOrderLineId());