修改查询订单逻辑
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -195,7 +195,7 @@ public class OrderTempProcedure implements InitializingBean {
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改商户余额
|
||||
* 音响通知
|
||||
*
|
||||
* @param companyMsgReqVo
|
||||
*/
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,4 +53,5 @@ public class PayPayingBackHandleDivide implements PayPayingBackHandle {
|
||||
temp.getShares().add(orderShareReqVo);
|
||||
temp.getLogs().add(createLock.getLog(topOrder.getId(), "入口分润", JsonHelper.serialize(orderShareReqVo), "开始入口分润MQ"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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()){
|
||||
|
||||
Reference in New Issue
Block a user