修改查询订单逻辑

This commit is contained in:
tangfang
2023-06-14 10:04:20 +08:00
parent 10a15780ce
commit 55c8b48716
18 changed files with 78 additions and 49 deletions

BIN
jar/US_export_policy.jar Normal file

Binary file not shown.

BIN
jar/local_policy.jar Normal file

Binary file not shown.

View File

@@ -20,6 +20,10 @@ SET SH=%SH% docker run --name %SH_NAME%-3 -it -d --restart always
SET SH=%SH% -v /home/other/home/pangd/conf:/home/java/conf/ -v /home/other/home/cache/:/home/cache/ -v /home/other/home/pangd/:/home/pangd/ --net pd
SET SH=%SH% %SH_NAME%:latest --spring.profiles.active=prod --yzg.config.url=/home/java/conf/pd_all.properties;
SET DC=COPY ./jar/local_policy.jar /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/;
SET DC=%DC%COPY ./jar/US_export_policy.jar /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/
if 1 equ 1 (
java_docker -dn "%SH_NAME%" -ssh root@spd1 -sh "%SH%"

View File

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

View File

@@ -7,6 +7,7 @@ import com.pangding.web.mq.OrderProducer;
import com.pangding.web.order.dao.OrderDao;
import com.pangding.web.order.service.ret.ticket.OrderRefundTicketService;
import com.pangding.web.util.DouyinDealSignUtil;
import com.pangding.web.util.NewRasUtil;
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;
@@ -43,28 +44,27 @@ public class DouyinRefundServiceImpl implements DouyinRefundService {
@Override
public DyRefundCallBackResVo payBack(DyRefundCallbackReqVo req, long timestamp, String nonce, String signature) {
public DyRefundCallBackResVo payBack(String body, long timestamp, String nonce, String signature) {
DyRefundCallBackResVo dyBaseResVo = new DyRefundCallBackResVo();
DyRefundCallbackReqVo req = JsonHelper.deserialize(body, DyRefundCallbackReqVo.class);
try {
String version = req.getVersion();
String msg = req.getMsg();
System.out.println("抖音退票回调3" + msg);
JSONObject jsonObject = JsonHelper.deserialize(msg, JSONObject.class);
String appid = jsonObject.getString("app_id");
AppletResVo appletResVo = getAppletInfo(appid);
if (StringHelper.isEmpty(appletResVo)) {
dyBaseResVo.setErr_no(500);
dyBaseResVo.setErr_tips("appid不正确");
return dyBaseResVo;
}
boolean sign = true;
//DouyinDealSignUtil.verify(JsonHelper.serialize(req), appletResVo.getAppletsPublicKey(), signature, timestamp, nonce);
System.out.println("抖音退票回调1" + sign);
StringBuffer buffer = new StringBuffer();
buffer.append(timestamp).append("\n");
buffer.append(nonce).append("\n");
buffer.append(body).append("\n");
String message = buffer.toString();
boolean sign = NewRasUtil.verify(message, appletResVo.getPublicKey(), signature);
if (sign) {
// 签名相等
//调支付回调接口
@@ -78,7 +78,6 @@ 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", "订单不存在");
@@ -105,17 +104,12 @@ public class DouyinRefundServiceImpl implements DouyinRefundService {
JsonHelper.serialize(req), JsonHelper.serialize(req), "", "");
orderProducer.saveOrderLog(orderLogReqVo);
} else {
System.out.println("抖音退票回调5签名不正确");
dyBaseResVo.setErr_no(500);
dyBaseResVo.setErr_tips("签名不正确");
}
} catch (Exception e) {
System.out.println("抖音退票回调4" + e);
dyBaseResVo.setErr_no(500);
dyBaseResVo.setErr_tips("抖音退票回调");
OrderLogReqVo orderLogReqVo = new OrderLogReqVo(StringHelper.getNewID(), "", "DY:抖音退票回调",
JsonHelper.serialize(req), JsonHelper.serialize(req), "", "");
orderProducer.saveOrderLog(orderLogReqVo);
}
System.out.println("抖音退票回调返回:" + JsonHelper.serialize(dyBaseResVo));
return dyBaseResVo;

View File

@@ -1,12 +1,8 @@
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;
import com.yanzuoguang.util.vo.ResponseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.MediaType;
@@ -30,7 +26,7 @@ public class DouyinRefundController {
@RequestMapping(value = "/refundTicket")
@ApiOperation(value = "订单退票操作", notes = "返回退票结果")
public DyRefundCallBackResVo refundTicket(@RequestBody DyRefundCallbackReqVo req, HttpServletRequest request) {
public DyRefundCallBackResVo refundTicket(@RequestBody String req, HttpServletRequest request) {
long timestamp = Long.valueOf(request.getHeader("Byte-Timestamp"));
String nonce = request.getHeader("Byte-Nonce-Str");

View File

@@ -14,6 +14,7 @@ import com.pangding.web.vo.order.req.back.CheckBackReqVo;
import com.pangding.web.vo.order.res.OrderDetailResVo;
import com.pangding.web.vo.order.res.OrderResVo;
import com.yanzuoguang.util.base.ObjectHelper;
import com.yanzuoguang.util.helper.JsonHelper;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
@@ -51,7 +52,7 @@ public class DistributionCheckBackHandleDouyin implements DistributionCheckBackH
dyPushDeliveryMqReqVo.setOut_order_no(order.getId());
DyPushDeliveryItemOrderReqVo dyPushDeliveryItemOrderReqVo = new DyPushDeliveryItemOrderReqVo();
dyPushDeliveryItemOrderReqVo.setItemOrderId(order.getAlipayOrderId());
dyPushDeliveryItemOrderReqVo.setItem_order_id(order.getAlipayOrderId());
List<DyPushDeliveryItemOrderReqVo> itemOrderReqVoList = new ArrayList<>();
itemOrderReqVoList.add(dyPushDeliveryItemOrderReqVo);
@@ -63,7 +64,7 @@ public class DistributionCheckBackHandleDouyin implements DistributionCheckBackH
dyPushDeliveryPoiInfoReqVo.setExt_valid_shop_id(order.getMerchantId());
dyPushDeliveryPoiInfoReqVo.setValid_poi_id_str("6601124056546674691");
dyPushDeliveryMqReqVo.setPoi_info(dyPushDeliveryPoiInfoReqVo);
dyPushDeliveryMqReqVo.setPoi_info(JsonHelper.serialize(dyPushDeliveryPoiInfoReqVo));
temp.getPushDeliveryMqReqVos().add(dyPushDeliveryMqReqVo);

View File

@@ -1,5 +1,6 @@
package com.pangding.web.order.service.check.finish.impl;
import com.pangding.web.constant.OrderConstant;
import com.pangding.web.order.service.check.finish.DistributionCheckBackHandle;
import com.pangding.web.order.service.check.finish.DistributionCheckBackTempVo;
import com.pangding.web.order.service.pay.payingback.PayPayingBackHandle;
@@ -23,6 +24,10 @@ public class DistributionCheckBackHandleOrderOther implements DistributionCheckB
@Override
public void distributionCheckBack(DistributionCheckBackTempVo temp, OrderResVo order, CheckBackReqVo backReq, OrderCheckReqVo req) {
if(OrderConstant.PAY_METHOD_DOUYIN == order.getPayType()
|| OrderConstant.PAY_METHOD_WECHAT == order.getPayType()){
return;
}
// todo: 可能参数有点少,这里可以把第二个参数改成自己想要的实体
temp.getOrderOthers().add(new OrderOtherHandleReqVo<>(order.getId(), backReq));
}

View File

@@ -158,6 +158,7 @@ public class FinanceServiceImpl implements FinanceService {
int categoryType, double refundFee, OrderRefundVo orderRefundVo) {
// 添加资金流水
CapitalFlowReqVo capitalFlowReqVo = new CapitalFlowReqVo();
capitalFlowReqVo.setOrderId(orderMoneyDetailVo.getOrderId());
capitalFlowReqVo.setMerchantName(orderResVo.getMerchantName());
capitalFlowReqVo.setProductName(orderResVo.getProductName());
@@ -191,6 +192,7 @@ public class FinanceServiceImpl implements FinanceService {
capitalFlowReqVo.setTime(DateHelper.getNow());
capitalFlowReqVo.setOrderTime(orderResVo.getOrderTime());
capitalFlowReqVo.setPlayDate(orderResVo.getPlayDate());
capitalFlowReqVo.setTempId(StringHelper.getMD5Id(capitalFlowReqVo.getOrderId(), capitalFlowReqVo.getOrderMonetDetailId()));
//调用户修改公司余额
orderTempProcedure.saveCapitalFlow(capitalFlowReqVo);
}

View File

@@ -1,5 +1,6 @@
package com.pangding.web.order.service.pay.payed.backV2.impl;
import com.pangding.web.constant.OrderConstant;
import com.pangding.web.order.service.pay.payed.backV2.PayPayedBackHandleV2;
import com.pangding.web.order.service.pay.payed.backV2.PayPayedBackTempVoV2;
import com.pangding.web.vo.base.OrderOtherHandleReqVo;
@@ -20,7 +21,13 @@ public class PayPayedBackHandleOrderOtherV2 implements PayPayedBackHandleV2 {
@Override
public void payPayedHandle(PayPayedBackTempVoV2 temp, PayedBackReqVo req, OrderResVo order,
OrderMoneyDetailVo orderMoneyDetailVo, OrderCheckDetailVo orderCheckDetailVo) {
// todo: 可能参数有点少,这里可以把第二个参数改成自己想要的实体
temp.getOrderOthers().add(new OrderOtherHandleReqVo<>(order.getId(), orderCheckDetailVo));
if (OrderConstant.PAY_METHOD_WECHAT == order.getPayType()
|| OrderConstant.PAY_METHOD_DOUYIN == order.getPayType()) {
return;
}
// todo: 可能参数有点少,这里可以把第二个参数改成自己想要的实体
temp.getOrderOthers().add(new OrderOtherHandleReqVo<>(order.getId(), orderCheckDetailVo));
}
}

View File

@@ -72,10 +72,14 @@ public class PayOrderClearServiceImpl implements PayOrderClearService {
// for(OrderMoneyDetailVo orderMoneyDetailVo: orderMoneyDetailList){
// temp.getOrderOthers().add(new OrderOtherHandleReqVo<>(order.getId(), orderMoneyDetailVo));
// }
for(OrderCheckDetailVo orderCheckDetailVo: orderCheckDetailResVoList){
temp.getOrderOthers().add(new OrderOtherHandleReqVo<>(order.getId(), orderCheckDetailVo));
if(OrderConstant.PAY_METHOD_DOUYIN != orderStatus.getPayType()
&& OrderConstant.PAY_METHOD_WECHAT != orderStatus.getPayType()){
// 抖音支付或者微信支付的订单不需要进入报表
for(OrderCheckDetailVo orderCheckDetailVo: orderCheckDetailResVoList){
temp.getOrderOthers().add(new OrderOtherHandleReqVo<>(order.getId(), orderCheckDetailVo));
}
}
temp.getLogs().add(createLock.getLog(order.getId(), "订单资金代付", JsonHelper.serialize(payedOrder), "已发起订单资金代付MQ"));
}

View File

@@ -28,7 +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()) {
if (OrderConstant.PAY_METHOD_DOUYIN == order.getPayType()
|| OrderConstant.PAY_METHOD_WECHAT == order.getPayType()) {
throw new CodeException("20006", "订单不是通联支付,不用代付。" + order.getPayType());
}
}

View File

@@ -25,6 +25,10 @@ public class PayRefundBackHandleOrderOther implements PayRefundBackHandle {
if (OrderConstant.REFUND_SOURCE_SYSTEM == refundHis.getRefundSource()) {
return;
}
if(OrderConstant.PAY_METHOD_WECHAT == order.getPayType()
|| OrderConstant.PAY_METHOD_DOUYIN == order.getPayType()){
return;
}
temp.getOrderOthers().add(new OrderOtherHandleReqVo<>(order.getId(), refundHis));
}
}

View File

@@ -36,6 +36,10 @@ public class OrderRefundSyncOrderOther implements OrderReturnSyncHandle {
if (OrderConstant.REFUND_STATUS_TICKET_BACK_OK != refundStatus) {
return;
}
if(OrderConstant.PAY_METHOD_DOUYIN == order.getPayType()
|| OrderConstant.PAY_METHOD_WECHAT == order.getPayType()){
return;
}
temp.getOrderOthers().add(new OrderOtherHandleReqVo<>(order.getId(), req));
}
}

View File

@@ -79,18 +79,10 @@ public class OrderRefundTicketInitMoneyDetailSuccess implements OrderRefundTicke
refund.setSysRefundMoney(getDoubleWithLongMinute(feeAmount));
// int refundType1 = StringHelper.toInt(req.getRefundType());
// double refundMoney = StringHelper.toDouble(req.getRefundMoney());
// boolean isRefundDetail = 0 == refundType1 || refundMoney > 0;
// if (!isRefundDetail) {
// return;
// }
// 找到订单资金明细
List<OrderMoneyDetailVo> orderMoneyDetailList = getMoneyDetail(order);
// List<OrderRefundDetailVo> orderRefundDetailVoList = new ArrayList<>();
for (OrderMoneyDetailVo orderMoneyDetailResVo : orderMoneyDetailList) {
OrderRefundDetailVo refundDetailVo = new OrderRefundDetailVo();

View File

@@ -50,6 +50,14 @@ public class OrderRefundTicketOtherPd implements OrderRefundTicketOther {
return;
}
if (OrderConstant.SUB_ORDER_TYPE_SWEEP_CODE_PAY == order.getSubOrderType()) {
// 扫码牌直接退票成功
OrderRefundVo refund = temp.getRefund();
refund.setRefundStatus(OrderConstant.REFUND_STATUS_TICKET_BACK);
temp.getRefunds().add(temp.getRefund());
return;
}
// 胖丁是否出票失败
boolean isFair = OrderRefundTicketUtil.isFair(order);
if (isFair) {

View File

@@ -21,18 +21,21 @@ public class OrderTicketFinishHandleNoticeDy implements OrderTicketFinishHandle
@Override
public void createOrderBack(OrderTicketFinishTempVo temp, OrderResVo order, DistributionOrderReqVo item) {
DyBookResultPdReqVo dyBookResultPdReqVo = new DyBookResultPdReqVo();
dyBookResultPdReqVo.setAppid(order.getUserIp());
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()){
dyBookResultPdReqVo.setResult(2);
dyBookResultPdReqVo.setMsg("出票失败");
}else{
return;
if(OrderConstant.PAY_METHOD_DOUYIN == order.getPayType()){
DyBookResultPdReqVo dyBookResultPdReqVo = new DyBookResultPdReqVo();
dyBookResultPdReqVo.setAppid(order.getUserIp());
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()){
dyBookResultPdReqVo.setResult(2);
dyBookResultPdReqVo.setMsg("出票失败");
}else{
return;
}
temp.getBookResults().add(dyBookResultPdReqVo);
}
temp.getBookResults().add(dyBookResultPdReqVo);
// List<DistributionOrderReqVo> distributionOrderReqVoList = item.getSubDistributionOrderReqVoList();
// for(DistributionOrderReqVo distributionOrderReqVo: distributionOrderReqVoList){

View File

@@ -18,6 +18,11 @@ public class OrderTicketFinishHandleOrderOther implements OrderTicketFinishHandl
@Override
public void createOrderBack(OrderTicketFinishTempVo temp, OrderResVo order, DistributionOrderReqVo item) {
if(OrderConstant.PAY_METHOD_DOUYIN == order.getPayType()
|| OrderConstant.PAY_METHOD_WECHAT == order.getPayType()){
// 抖音支付或者微信支付的订单不需要进入报表
return;
}
// todo: 可能参数有点少,这里可以把第二个参数改成自己想要的实体
if(OrderConstant.ORDER_STATUS_SUCCESS == item.getOrderStatusVo().getOrderStatus()){
temp.getOrderOthers().add(new OrderOtherHandleReqVo<>(order.getId(), item));