提交修改

This commit is contained in:
quyixiao 2025-11-09 19:57:07 +08:00
parent be57ed1f71
commit 7d953717a2
3 changed files with 51 additions and 12 deletions

View File

@ -341,15 +341,14 @@ public class AdminOrderController {
appliyReverseRequest.setRefundReason("订单取消:" + vvCancelDTO.getCancelReason());
appliyReverseRequest.setStatus(ReverseStatusEnums.cancel.getStatus());
R r = reverseOrderService.createReverseOrder(vvTradeOrderLineEntityList, appliyReverseRequest);
if (r.ifSuccessful()) {
VvReverseOrderEntity reverseOrderEntity = (VvReverseOrderEntity)r.getData();
Refund refund = jsapiPrepay.refund(reverseOrderEntity.getTradeOrderId(), reverseOrderEntity.getId());
log.info("ReverseOrderServiceImpl reverseOrderEntity id:{} refund:{}",reverseOrderEntity.getId(), JSON.toJSONString(refund));
reverseOrderEntity.setWeixinFundsAccount(JSON.toJSONString(refund.getFundsAccount()));
reverseOrderEntity.setWeixinStatus(JSON.toJSONString(refund.getStatus()));
reverseOrderEntity.setWeixinRefundId(refund.getRefundId());
reverseOrderEntity.setStatus(ReverseStatusEnums.agree_refunded.getStatus()); // 设置 状态为同意退款
reverseOrderEntity.setWeixinTransactionId(refund.getTransactionId());
reverseOrderEntity.setUserEceivedAccount(refund.getUserReceivedAccount());
reverseOrderEntity.setPreRefundInfo(JSON.toJSONString(refund));
@ -358,7 +357,6 @@ public class AdminOrderController {
}
return r;
}
/***
* 上传结算证据
*/

View File

@ -162,6 +162,7 @@ public class AdminReverseController {
vvTradeOrderLineEntity.setReverseStatus(vvReverseOrderEntity.getStatus());
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
}
if(ReverseStatusEnums.agree_refunded.getStatus().equals(vvApproveRequest.getStatus())){
Refund refund = jsapiPrepay.refund(vvReverseOrderEntity.getTradeOrderId(), vvReverseOrderEntity.getId());
log.info("AdminReverseController reverseOrderEntity id:{} refund:{}",vvReverseOrderEntity.getId(), JSON.toJSONString(refund));

View File

@ -4,9 +4,11 @@ package com.heyu.api.controller.vv;
import com.alibaba.fastjson.JSONObject;
import com.heyu.api.alibaba.request.mm.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;
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.utils.StringUtils;
@ -51,6 +53,33 @@ public class AppWeiXinRefundNotifyController {
@Autowired
private VvReverseOrderDao reverseOrderDao;
@Autowired
private VvReverseOrderLineDao vvReverseOrderLineDao;
/***
*{
* "mchid": "1731491745",
* "out_trade_no": "202511172474",
* "transaction_id": "4200002965202511091318712632",
* "out_refund_no": "25",
* "refund_id": "50303205432025110956602127632",
* "refund_status": "SUCCESS",
* "success_time": "2025-11-09T15:13:05+08:00",
* "amount": {
* "total": 1,
* "refund": 1,
* "payer_total": 1,
* "payer_refund": 1
* },
* "user_received_account": "交通银行信用卡5874"
* }
* @param jsonData
* @return
* @throws Exception
*/
//退款回调
@PostMapping("/refundNotify")
@Transactional
@ -76,20 +105,31 @@ public class AppWeiXinRefundNotifyController {
String refund_status = reqInfo.get("refund_status");//退款状态
String out_trade_no = reqInfo.get("out_trade_no"); //订单号
String out_refund_no = reqInfo.get("out_refund_no"); //订单号
log.info("AppWeiXinRefundNotifyController refundNotifyUrl out_trade_no:{} refund_status:{} resultStr :{} " ,out_trade_no,refund_status,resultStr);
Map<String, Object> parm = new HashMap<>();
if (!StringUtils.isEmpty(refund_status) && "SUCCESS".equals(refund_status)) {
VvReverseOrderEntity vvReverseOrderEntity = reverseOrderDao.selectVvReverseOrderByTradeOrderId(NumberUtil.objToLong(out_trade_no));
vvReverseOrderEntity.setGmtRefunded(new Date());
vvReverseOrderEntity.setStatus(ReverseStatusEnums.refunded.getStatus());
vvReverseOrderEntity.setGmtRefundNotify(new Date());
reverseOrderDao.updateVvReverseOrderById(vvReverseOrderEntity);
VvReverseOrderEntity vvReverseOrderEntity = reverseOrderDao.selectVvReverseOrderById(NumberUtil.objToLong(out_refund_no));
log.info("AppWeiXinRefundNotifyController refundNotifyUrl reverseStatus:{}", vvReverseOrderEntity.getStatus());
if(ReverseStatusEnums.agree_refunded.getStatus().equals(vvReverseOrderEntity.getStatus())){
vvReverseOrderEntity.setGmtRefunded(new Date());
vvReverseOrderEntity.setStatus(ReverseStatusEnums.refunded.getStatus());
vvReverseOrderEntity.setGmtRefundNotify(new Date());
reverseOrderDao.updateVvReverseOrderById(vvReverseOrderEntity);
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(NumberUtil.objToLong(out_trade_no));
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntityList) {
vvTradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.refunded.getStatus());
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
List<VvReverseOrderLineEntity > vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(NumberUtil.objToLong(out_refund_no));;
List<Long> reverseOrderLineIds = new ArrayList<>();
for (VvReverseOrderLineEntity vvReverseOrderLineEntity : vvReverseOrderLineEntities) {
reverseOrderLineIds.add(vvReverseOrderLineEntity.getTradeOrderLineId());
}
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(reverseOrderLineIds);
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntityList) {
vvTradeOrderLineEntity.setReverseStatus(ReverseStatusEnums.refunded.getStatus());
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
}
}
//你自己的业务
parm.put("code", "SUCCESS");
parm.put("message", "成功");