修改查询订单逻辑

This commit is contained in:
tangfang
2023-06-05 23:14:48 +08:00
parent 82d79940af
commit 10a15780ce
12 changed files with 47 additions and 18 deletions

View File

@@ -1,10 +1,10 @@
package com.pangding.web.douyin.service;
import com.pangding.web.vo.douyin.V2.refund.req.DyRefundCallbackReqVo;
import com.pangding.web.vo.douyin.res.DyBaseResVo;
import com.pangding.web.vo.douyin.V2.refund.res.DyRefundCallBackResVo;
public interface DouyinRefundService {
DyBaseResVo payBack(DyRefundCallbackReqVo req, long timestamp, String nonce, String signature);
DyRefundCallBackResVo payBack(DyRefundCallbackReqVo req, long timestamp, String nonce, String signature);
}

View File

@@ -10,8 +10,12 @@ import com.pangding.web.util.DouyinDealSignUtil;
import com.pangding.web.vo.applet.req.AppletReqVo;
import com.pangding.web.vo.applet.res.AppletResVo;
import com.pangding.web.vo.douyin.V2.pay.res.DyBackResVo;
import com.pangding.web.vo.douyin.V2.refund.req.DyCreateRefundOrderEntrySchemaReqVo;
import com.pangding.web.vo.douyin.V2.refund.req.DyRefundCallbackReqVo;
import com.pangding.web.vo.douyin.V2.refund.res.DyRefundCallBackDataResVo;
import com.pangding.web.vo.douyin.V2.refund.res.DyRefundCallBackResVo;
import com.pangding.web.vo.douyin.res.DyBaseResVo;
import com.pangding.web.vo.order.pd.refund.OrderRefundVo;
import com.pangding.web.vo.order.req.OrderLogReqVo;
import com.pangding.web.vo.order.req.OrderRefundReqVo;
import com.pangding.web.vo.order.res.OrderResVo;
@@ -39,8 +43,8 @@ public class DouyinRefundServiceImpl implements DouyinRefundService {
@Override
public DyBaseResVo payBack(DyRefundCallbackReqVo req, long timestamp, String nonce, String signature) {
DyBaseResVo dyBaseResVo = new DyBaseResVo();
public DyRefundCallBackResVo payBack(DyRefundCallbackReqVo req, long timestamp, String nonce, String signature) {
DyRefundCallBackResVo dyBaseResVo = new DyRefundCallBackResVo();
try {
String version = req.getVersion();
@@ -74,15 +78,29 @@ public class DouyinRefundServiceImpl implements DouyinRefundService {
double money = CalcHelper.div(new BigDecimal(pdRefundMoney).doubleValue(), 100);
orderRefundReqVo.setPdRefundMoney(money);
OrderResVo orderResVo = orderDao.load(orderId, OrderResVo.class);
if (StringHelper.isEmpty(orderResVo)) {
throw new CodeException("100", "订单不存在");
}
orderRefundReqVo.setRefundNum(orderResVo.getOrderNum());
orderRefundReqVo.setRefundMoney(orderResVo.getOrderMoney());
orderRefundReqVo.setRefundReason("");
orderRefundTicketService.refundTicket(orderRefundReqVo, false);
OrderRefundVo orderRefundVo = orderRefundTicketService.refundTicket(orderRefundReqVo, false);
DyRefundCallBackDataResVo dyRefundCallBackDataResVo = new DyRefundCallBackDataResVo();
dyRefundCallBackDataResVo.setOut_refund_no(orderRefundVo.getId());
dyRefundCallBackDataResVo.setNotify_url("");
DyCreateRefundOrderEntrySchemaReqVo refundOrderEntrySchemaReqVo = new DyCreateRefundOrderEntrySchemaReqVo();
refundOrderEntrySchemaReqVo.setParams("");
refundOrderEntrySchemaReqVo.setPath("pages/my/order/electronicTicket/electronicTicket");
dyRefundCallBackDataResVo.setOrder_entry_schema(refundOrderEntrySchemaReqVo);
dyBaseResVo.setErr_no(0);
dyBaseResVo.setErr_tips("success");
dyBaseResVo.setData(dyRefundCallBackDataResVo);
OrderLogReqVo orderLogReqVo = new OrderLogReqVo(StringHelper.getNewID(), jsonObject.getString("cp_orderno"), "DY:支付回调",
JsonHelper.serialize(req), JsonHelper.serialize(req), "", "");
orderProducer.saveOrderLog(orderLogReqVo);
@@ -99,7 +117,7 @@ public class DouyinRefundServiceImpl implements DouyinRefundService {
JsonHelper.serialize(req), JsonHelper.serialize(req), "", "");
orderProducer.saveOrderLog(orderLogReqVo);
}
System.out.println("抖音退票回调返回:" + JsonHelper.serialize(dyBaseResVo));
return dyBaseResVo;
}

View File

@@ -2,6 +2,7 @@ package com.pangding.web.douyin.web;
import com.pangding.web.douyin.service.DouyinRefundService;
import com.pangding.web.vo.douyin.V2.refund.req.DyRefundCallbackReqVo;
import com.pangding.web.vo.douyin.V2.refund.res.DyRefundCallBackResVo;
import com.pangding.web.vo.douyin.res.DyBaseResVo;
import com.yanzuoguang.util.helper.CheckerHelper;
import com.yanzuoguang.util.helper.JsonHelper;
@@ -29,12 +30,12 @@ public class DouyinRefundController {
@RequestMapping(value = "/refundTicket")
@ApiOperation(value = "订单退票操作", notes = "返回退票结果")
public DyBaseResVo refundTicket(@RequestBody DyRefundCallbackReqVo req, HttpServletRequest request) {
public DyRefundCallBackResVo refundTicket(@RequestBody DyRefundCallbackReqVo req, HttpServletRequest request) {
long timestamp = Long.valueOf(request.getHeader("Byte-Timestamp"));
String nonce = request.getHeader("Byte-Nonce-Str");
String sign = request.getHeader("Byte-Signature");
System.out.println("请求参数:" + JsonHelper.serialize(req) + ",timestamp:" + timestamp + ",nonce:" + nonce + ",sign:" + sign);
System.out.println("抖音退票回调请求参数:" + JsonHelper.serialize(req) + ",timestamp:" + timestamp + ",nonce:" + nonce + ",sign:" + sign);
return douyinRefundService.payBack(req, timestamp, nonce, sign);
}

View File

@@ -195,7 +195,7 @@ public class OrderTempProcedure implements InitializingBean {
}
/**
* 修改商户余额
* 音响通知
*
* @param companyMsgReqVo
*/

View File

@@ -107,9 +107,9 @@ public class DistributionCheckBackDatabaseImpl implements DistributionCheckBackD
}
// 核销通知抖音
for (DyPushDeliveryMqReqVo pushDeliveryMqReqVo : temp.getPushDeliveryMqReqVos()) {
orderTempProcedure.douyinCheckNotice(pushDeliveryMqReqVo);
}
// for (DyPushDeliveryMqReqVo pushDeliveryMqReqVo : temp.getPushDeliveryMqReqVos()) {
// orderTempProcedure.douyinCheckNotice(pushDeliveryMqReqVo);
// }
// 发送到第三方处理类
temp.getOrderOthers().forEach(check -> orderOtherProducer.sendHandleInit(OrderOtherCheck.class, check, 0));

View File

@@ -55,6 +55,7 @@ public class DistributionSocketNoticeServiceImpl implements DistributionSocketNo
companyMsgVo.setMsgSound("胖丁到账," + order.getTotalMoney() + ",元");
companyMsgVo.setMsgContent("胖丁到账" + order.getTotalMoney() + "");
companyMsgVo.setMsgType(2);
companyMsgVo.setExtendInfo(order.getExtendContent());
return companyMsgVo;
}

View File

@@ -28,5 +28,8 @@ public class PayPayedStartCheckStatus implements PayPayedStartCheck {
if (OrderConstant.ORDER_STATUS_ALL_REFUND == orderStatus) {
throw new CodeException("20006", "订单已退款" + orderStatus);
}
if (OrderConstant.PAY_METHOD_DOUYIN >= order.getPayType()) {
throw new CodeException("20006", "订单不是通联支付,不用代付。" + order.getPayType());
}
}
}

View File

@@ -53,4 +53,5 @@ public class PayPayingBackHandleDivide implements PayPayingBackHandle {
temp.getShares().add(orderShareReqVo);
temp.getLogs().add(createLock.getLog(topOrder.getId(), "入口分润", JsonHelper.serialize(orderShareReqVo), "开始入口分润MQ"));
}
}

View File

@@ -40,6 +40,7 @@ public class PayRefundBackServiceImpl implements PayRefundBackService {
public String refundBack(PayRefundBackReqVo req) {
// 获取订单Id,用于锁定订单
String orderId = createLock.getOrderId(req.getRefundId(), req.getOrderId());
req.setOrderId(orderId);
// 锁定订单,开始退款
createLock.lockOrder(orderId, () -> {
try {

View File

@@ -32,7 +32,7 @@ public class OrderRefundTicketCheckPdNum implements OrderRefundTicketCheck {
}
if (StringHelper.toDouble(req.getPdRefundMoney()) >
StringHelper.toDouble(order.getPdOrderMoney()) - StringHelper.toDouble(order.getPdRefundMoney())) {
throw new CodeException("20006", "退款金额大于订单实际收入金额");
throw new CodeException("20006", "退款金额大于订单实际收入金额" + order.getId());
}
}
}

View File

@@ -1,5 +1,6 @@
package com.pangding.web.order.service.ret.ticket.database;
import com.pangding.web.constant.OrderConstant;
import com.pangding.web.mq.OrderOtherProducer;
import com.pangding.web.mq.OrderProducer;
import com.pangding.web.order.dao.OrderMoneyDetailDao;
@@ -63,11 +64,14 @@ public class OrderRefundTicketDatabaseImpl implements OrderRefundTicketDatabase
// 更新状态后清空
orderStatusDao.replaceList(new ArrayList<>(mapStatus.values()));
temp.getStatus().clear();
// 开始退款
for (OrderRefundReqVo startRefund : mapStartRefunds.values()) {
orderProducer.orderRefund(startRefund);
if(9 != temp.getRefund().getRefundSource()){
// 开始退款
for (OrderRefundReqVo startRefund : mapStartRefunds.values()) {
orderProducer.orderRefund(startRefund);
}
temp.getStartRefunds().clear();
}
temp.getStartRefunds().clear();
// 发送到第三方处理类
temp.getOrderOthers().forEach(orderOther -> orderOtherProducer.sendHandleInit(OrderOtherReturn.class, orderOther, 0));

View File

@@ -23,7 +23,7 @@ public class OrderTicketFinishHandleNoticeDy implements OrderTicketFinishHandle
public void createOrderBack(OrderTicketFinishTempVo temp, OrderResVo order, DistributionOrderReqVo item) {
DyBookResultPdReqVo dyBookResultPdReqVo = new DyBookResultPdReqVo();
dyBookResultPdReqVo.setAppid(order.getUserIp());
dyBookResultPdReqVo.setBook_id("");
dyBookResultPdReqVo.setBook_id(order.getBookId());
if(OrderConstant.ORDER_STATUS_SUCCESS == item.getOrderStatusVo().getOrderStatus()){
dyBookResultPdReqVo.setResult(1);
}else if(OrderConstant.ORDER_STATUS_FAIL == item.getOrderStatusVo().getOrderStatus()){