发起退款、审核退款

This commit is contained in:
songmingsong
2024-12-06 15:18:53 +08:00
parent be5811ea6e
commit 961df0a151
10 changed files with 100 additions and 13 deletions

View File

@@ -4,12 +4,15 @@ import cn.hutool.core.bean.BeanUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.constant.NumberConstant;
import com.ycwl.basic.enums.BizCodeEnum;
import com.ycwl.basic.enums.OrderStateEnum;
import com.ycwl.basic.enums.SourceTypeNameEnum;
import com.ycwl.basic.exception.AppException;
import com.ycwl.basic.mapper.pc.OrderMapper;
import com.ycwl.basic.mapper.pc.SourceMapper;
import com.ycwl.basic.mapper.pc.VideoMapper;
import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq;
import com.ycwl.basic.model.mobile.order.RefundOrderReq;
import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
import com.ycwl.basic.model.pc.order.req.OrderAddOrUpdateReq;
@@ -113,7 +116,7 @@ public class OrderServiceImpl implements OrderService {
goodsName = videoRespVO.getTemplateName();
} else if (goodsType == NumberConstant.TWO) {
SourceRespVO sourceRespVO = sourceMapper.getById(goodsId);
goodsName= SourceTypeNameEnum.getRemark( sourceRespVO.getType());
goodsName = SourceTypeNameEnum.getRemark(sourceRespVO.getType());
}
BigDecimal price = goodsService.queryPrice(goodsPriceQueryReq.setGoodsId(goodsId)
.setGoodsType(goodsType)).getData();
@@ -124,7 +127,7 @@ public class OrderServiceImpl implements OrderService {
.setOrderSn(orderId)
.setTotalPrice(BigDecimalUtil.convertToCents(price))
.setGoodsName(goodsName);
return ApiResponse.success(wxPayService.createOrder(wxPayOrderReqVO));
return ApiResponse.success(wxPayService.createOrder(wxPayOrderReqVO));
}
}
@@ -143,14 +146,16 @@ public class OrderServiceImpl implements OrderService {
* @param orderSn 订单编号也就是订单的ID
*/
@Override
public void updateOrderState(Long orderSn, OrderStateEnum orderStateEnum, String refundReason) {
public void updateOrderState(Long orderSn, OrderStateEnum orderStateEnum, String reason) {
OrderAddOrUpdateReq orderAddOrUpdateReq = new OrderAddOrUpdateReq();
orderAddOrUpdateReq.setId(orderSn);
if (orderStateEnum.getType() == NumberConstant.ONE) {
orderAddOrUpdateReq.setRefundStatus(orderStateEnum.getState());
orderAddOrUpdateReq.setRefundAt(new Date());
if (Objects.nonNull(refundReason)) {
orderAddOrUpdateReq.setRefundReason(refundReason);
if (orderStateEnum.getState() == OrderStateEnum.PASSED.getState()) {
orderAddOrUpdateReq.setRemark(reason);
} else if (Objects.nonNull(reason)) {
orderAddOrUpdateReq.setRefundReason(reason);
}
} else if (orderStateEnum.getType() == NumberConstant.TWO) {
int state = orderStateEnum.getState();
@@ -198,4 +203,24 @@ public class OrderServiceImpl implements OrderService {
return ApiResponse.success(orderAppRespVO);
}
@Override
public ApiResponse<?> refundOrder(RefundOrderReq refundOrderReq) {
this.updateOrderState(refundOrderReq.getOrderId(), OrderStateEnum.TO_BE_REVIEWED, refundOrderReq.getRefundReason());
return ApiResponse.buildResult(BizCodeEnum.REQUEST_OK);
}
@Override
public ApiResponse<?> auditRefundOrder(RefundOrderReq refundOrderReq) {
this.updateOrderState(refundOrderReq.getOrderId(), OrderStateEnum.PASSED, refundOrderReq.getRefundReason());
// 调用微信发起退款
new Thread(() -> {
try {
wxPayService.refundOrder(refundOrderReq.getOrderId().toString());
} catch (Exception e) {
throw new AppException(BizCodeEnum.ADVANCE_PAYMENT_REFUND_FAILED,e.getMessage());
}
}).start();
return ApiResponse.buildResult(BizCodeEnum.REQUEST_OK);
}
}