Commit 3642d6a4 by ping.wu

Merge branches 'feature/20210624_购买虚拟商品校验是否在菜单_wuping' and 'qa' of…

Merge branches 'feature/20210624_购买虚拟商品校验是否在菜单_wuping' and 'qa' of http://gitlab.freemud.com/order-group-application/order-group into qa

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/controller/OrderController.java
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
parents 1420c3bd af9af288
...@@ -200,10 +200,10 @@ public class OrderController { ...@@ -200,10 +200,10 @@ public class OrderController {
/** /**
* 取消支付订单 * 蜜雪APP 取消支付订单
*/ */
@LogIgnore(logMessage = "cancelPayOrder") @LogIgnore(logMessage = "cancelPayOrder")
@PostMapping("/cancelPayOrder") @PostMapping({"/cancelPayOrder","/deleteOrderById"})
public BaseResponse cancelPayOrder(@Validated @LogParams @RequestBody DeleteOrderVo deleteOrderVo) { public BaseResponse cancelPayOrder(@Validated @LogParams @RequestBody DeleteOrderVo deleteOrderVo) {
return orderservice.cancelPayOrder(deleteOrderVo); return orderservice.cancelPayOrder(deleteOrderVo);
} }
...@@ -220,12 +220,12 @@ public class OrderController { ...@@ -220,12 +220,12 @@ public class OrderController {
/** /**
* 取消支付删除订单 * 取消支付删除订单
*/ */
@LogIgnore(logMessage = "deleteOrderById") // @LogIgnore(logMessage = "deleteOrderById")
@PostMapping("/deleteOrderById") // @PostMapping("/deleteOrderById")
public BaseResponse deleteOrderById(@Validated @LogParams @RequestBody DeleteOrderVo deleteOrderVo) { // public BaseResponse deleteOrderById(@Validated @LogParams @RequestBody DeleteOrderVo deleteOrderVo) {
//return orderservice.deleteOrderById(deleteOrderVo); // //return orderservice.deleteOrderById(deleteOrderVo);
return orderservice.cancelPayOrder(deleteOrderVo); // return orderservice.cancelPayOrder(deleteOrderVo);
} // }
/** /**
* 用户申请退款 * 用户申请退款
......
package cn.freemud.entities.dto.pay;
import lombok.Data;
@Data
public class MultiPaymentRespDto {
private String ebCode;
private String endTransTradeNo;
private String fmTradeNo;
private Integer mcouponAmount;
private String outOrderNo;
private Integer payAmount;
private Integer pcouponAmount;
private String platformTradeNo;
private String status;
private String transId;
private String ver;
private String appId;
private String userId;
private String platformMchId;
private String tradeTime;
private String transCurrency;
}
package cn.freemud.entities.dto.pay;
import lombok.Data;
import lombok.ToString;
@Data
@ToString
public class MultiQueryRequest {
/**
* 开启渠道端查询,默认不开启
*/
private boolean enable_platform_data_query;
/**
* 外部交易流水号,由上游系统生成,需保证唯一(支付标识)
*/
private String outOrderNo;
/**
* 商户编号(由非码提供)
*/
private Integer partnerId;
/**
* 商家门店号(在线支付需要提前定义)
*/
private String storeId;
/**
* 接口版本,默认30
*/
private String ver;
}
package cn.freemud.entities.dto.pay;
import lombok.Data;
import java.util.List;
/**
* 聚合查询返回
*/
@Data
public class MultiQueryRespDto<T> {
private int code;
private String msg;
private T data;
@lombok.Data
public class Data {
public List<MultiPaymentRespDto> queryList;
}
}
\ No newline at end of file
...@@ -68,7 +68,7 @@ public interface Orderservice { ...@@ -68,7 +68,7 @@ public interface Orderservice {
/** /**
* 支付取消删除订单 * 支付取消删除订单
*/ */
BaseResponse deleteOrderById(DeleteOrderVo deleteOrderVo); // BaseResponse deleteOrderById(DeleteOrderVo deleteOrderVo);
/** /**
* 订单申请退款 * 订单申请退款
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
package cn.freemud.service.impl; package cn.freemud.service.impl;
import cn.freemud.adapter.*; import cn.freemud.adapter.*;
import cn.freemud.amp.body.MessagePushNewMqBody; //import cn.freemud.amp.body.MessagePushNewMqBody;
import cn.freemud.amqp.Header; import cn.freemud.amqp.Header;
import cn.freemud.amqp.MQAction; import cn.freemud.amqp.MQAction;
import cn.freemud.amqp.MQMessage; import cn.freemud.amqp.MQMessage;
...@@ -24,25 +24,28 @@ import cn.freemud.base.util.DateUtil; ...@@ -24,25 +24,28 @@ import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.OrderRefundConstant; import cn.freemud.constant.OrderRefundConstant;
import cn.freemud.constant.RedisKeyConstant; import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.MCCafeDeliveryBaseResponse; //import cn.freemud.entities.dto.MCCafeDeliveryBaseResponse;
import cn.freemud.entities.dto.PayAccessResponse; import cn.freemud.entities.dto.PayAccessResponse;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.QueryOrdersResponseDto.DataBean.OrderBean; import cn.freemud.entities.dto.QueryOrdersResponseDto.DataBean.OrderBean;
import cn.freemud.entities.dto.activity.*; import cn.freemud.entities.dto.activity.*;
import cn.freemud.entities.dto.delivery.OrderRemindRequestDto; //import cn.freemud.entities.dto.delivery.OrderRemindRequestDto;
import cn.freemud.entities.dto.delivery.QueryDeliveryAmountResponseDto; //import cn.freemud.entities.dto.delivery.QueryDeliveryAmountResponseDto;
import cn.freemud.entities.dto.delivery.QueryLocusRiderTrackDto; //import cn.freemud.entities.dto.delivery.QueryLocusRiderTrackDto;
import cn.freemud.entities.dto.delivery.ResRiderTrackDto; //import cn.freemud.entities.dto.delivery.ResRiderTrackDto;
import cn.freemud.entities.dto.delivery.*; import cn.freemud.entities.dto.delivery.*;
import cn.freemud.entities.dto.ecology.SendMessageRequest; import cn.freemud.entities.dto.ecology.SendMessageRequest;
import cn.freemud.entities.dto.ecology.SendMessageResponse; //import cn.freemud.entities.dto.ecology.SendMessageResponse;
import cn.freemud.entities.dto.ecology.SubscribeMessageRequest; //import cn.freemud.entities.dto.ecology.SubscribeMessageRequest;
import cn.freemud.entities.dto.ecology.SendMessageRequest; //import cn.freemud.entities.dto.ecology.SendMessageRequest;
import cn.freemud.entities.dto.order.CreateOrderOperateDto; import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto; import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.order.FacePayRequestDto; import cn.freemud.entities.dto.order.FacePayRequestDto;
import cn.freemud.entities.dto.order.FacePayResponseDto; import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.entities.dto.pay.CombPayResponse; import cn.freemud.entities.dto.pay.CombPayResponse;
import cn.freemud.entities.dto.pay.MultiPaymentRespDto;
import cn.freemud.entities.dto.pay.MultiQueryRequest;
import cn.freemud.entities.dto.pay.MultiQueryRespDto;
import cn.freemud.entities.dto.promotion.*; import cn.freemud.entities.dto.promotion.*;
import cn.freemud.entities.dto.product.AttributeValue; import cn.freemud.entities.dto.product.AttributeValue;
import cn.freemud.entities.dto.product.GroupDetail; import cn.freemud.entities.dto.product.GroupDetail;
...@@ -83,7 +86,7 @@ import cn.freemud.utils.*; ...@@ -83,7 +86,7 @@ import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; //import com.alibaba.fastjson.TypeReference;
import com.freemud.api.assortment.datamanager.entity.db.*; import com.freemud.api.assortment.datamanager.entity.db.*;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType; import com.freemud.api.assortment.datamanager.enums.IappIdType;
...@@ -105,7 +108,7 @@ import com.freemud.application.sdk.api.ordercenter.entities.PayItem; ...@@ -105,7 +108,7 @@ import com.freemud.application.sdk.api.ordercenter.entities.PayItem;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType; import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType; import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType;
import com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum; //import com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum;
import com.freemud.application.sdk.api.ordercenter.enums.*; import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq; import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
...@@ -137,9 +140,9 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse; ...@@ -137,9 +140,9 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto; import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto;
import com.freemud.application.sdk.api.structure.service.MessageCenterClient; import com.freemud.application.sdk.api.structure.service.MessageCenterClient;
import com.freemud.sdk.api.assortment.message.config.MessageOfficialRefundPushMqConfig; //import com.freemud.sdk.api.assortment.message.config.MessageOfficialRefundPushMqConfig;
import com.freemud.sdk.api.assortment.message.entity.MpTemplateMsg; //import com.freemud.sdk.api.assortment.message.entity.MpTemplateMsg;
import com.freemud.sdk.api.assortment.message.entity.MpTemplateMsgDataValue; //import com.freemud.sdk.api.assortment.message.entity.MpTemplateMsgDataValue;
import com.freemud.sdk.api.assortment.message.enums.MessageEventType; import com.freemud.sdk.api.assortment.message.enums.MessageEventType;
import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest; import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest;
import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest; import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest;
...@@ -171,8 +174,8 @@ import org.apache.commons.collections4.MapUtils; ...@@ -171,8 +174,8 @@ import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringBuilder;
import org.joda.time.DateTime; //import org.joda.time.DateTime;
import org.springframework.beans.BeanUtils; //import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -194,6 +197,8 @@ import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND; ...@@ -194,6 +197,8 @@ import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND;
public class OrderServiceImpl implements Orderservice { public class OrderServiceImpl implements Orderservice {
private final Integer RESPONSE_SUCCESS_CODE = 100; private final Integer RESPONSE_SUCCESS_CODE = 100;
private static final Integer MULITI_RESPONSE = 200;
private static final String SUCCESS = "SUCCESS";
private static Gson gson = new Gson(); private static Gson gson = new Gson();
...@@ -226,6 +231,9 @@ public class OrderServiceImpl implements Orderservice { ...@@ -226,6 +231,9 @@ public class OrderServiceImpl implements Orderservice {
@Value("${query.order.es:true}") @Value("${query.order.es:true}")
private Boolean queryOrderEs; private Boolean queryOrderEs;
@Value("${query.pay.order:true}")
private Boolean queryPayOrder;
@Autowired @Autowired
private AssortmentCloudPrinterManager cloudPrinterManager; private AssortmentCloudPrinterManager cloudPrinterManager;
// @Autowired // @Autowired
...@@ -1669,12 +1677,22 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1669,12 +1677,22 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR); return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
} }
OrderBean orderBean = responseDto.getData(); OrderBean orderBean = responseDto.getData();
if (PayStatus.HAVE_PAID.getCode().equals(orderBean.getPayStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "已支付成功");
}
if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单已关闭");
}
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) { if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除"); return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除");
} }
if (!OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) { if (!OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除"); return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除");
} }
//关闭预支付
if(queryPayOrder && closePrePay(orderBean)){
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除");
}
// DeleteOrderDto deleteOrderDto = orderAdapter.convent2DeleteOrderDto(deleteOrderVo.getOid()); // DeleteOrderDto deleteOrderDto = orderAdapter.convent2DeleteOrderDto(deleteOrderVo.getOid());
// //
// DeleteOrderRequest var1 = new DeleteOrderRequest(); // DeleteOrderRequest var1 = new DeleteOrderRequest();
...@@ -1712,6 +1730,9 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1712,6 +1730,9 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR); return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
} }
OrderBean orderBean = responseDto.getData(); OrderBean orderBean = responseDto.getData();
if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单已取消");
}
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) { if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许取消"); return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许取消");
} }
...@@ -1743,43 +1764,43 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1743,43 +1764,43 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(); return ResponseUtil.success();
} }
@Override // @Override
public BaseResponse deleteOrderById(DeleteOrderVo deleteOrderVo) { // public BaseResponse deleteOrderById(DeleteOrderVo deleteOrderVo) {
if (StringUtils.isBlank(deleteOrderVo.getOid())) { // if (StringUtils.isBlank(deleteOrderVo.getOid())) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空"); // return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空");
} // }
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest(); // BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(deleteOrderVo.getOid()); // baseQueryOrderRequest.setOrderId(deleteOrderVo.getOid());
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo()); // baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest); // QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
String string = JSONObject.toJSONString(queryOrderByIdResponse); // String string = JSONObject.toJSONString(queryOrderByIdResponse);
JSONObject jsonObject = JSONObject.parseObject(string); // JSONObject jsonObject = JSONObject.parseObject(string);
QueryOrderByIdResponseDto responseDto = jsonObject.toJavaObject(QueryOrderByIdResponseDto.class); // QueryOrderByIdResponseDto responseDto = jsonObject.toJavaObject(QueryOrderByIdResponseDto.class);
if (!RESPONSE_SUCCESS_CODE.equals(responseDto.getErrcode()) || responseDto.getData() == null) { // if (!RESPONSE_SUCCESS_CODE.equals(responseDto.getErrcode()) || responseDto.getData() == null) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR); // return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
} // }
OrderBean orderBean = responseDto.getData(); // OrderBean orderBean = responseDto.getData();
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) { // if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除"); // return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除");
} // }
if (!OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) { // if (!OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除"); // return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除");
} // }
DeleteOrderDto deleteOrderDto = orderAdapter.convent2DeleteOrderDto(deleteOrderVo.getOid()); // DeleteOrderDto deleteOrderDto = orderAdapter.convent2DeleteOrderDto(deleteOrderVo.getOid());
// // //
DeleteOrderRequest var1 = new DeleteOrderRequest(); // DeleteOrderRequest var1 = new DeleteOrderRequest();
var1.setOrderId(deleteOrderDto.getOrderId()); // var1.setOrderId(deleteOrderDto.getOrderId());
var1.setTrackingNo(LogTreadLocal.getTrackingNo()); // var1.setTrackingNo(LogTreadLocal.getTrackingNo());
var1.setOperator("未支付取消"); // var1.setOperator("未支付取消");
BaseOrderResponse baseOrderResponse = orderCenterSdkService.deleteOrder(var1); // BaseOrderResponse baseOrderResponse = orderCenterSdkService.deleteOrder(var1);
//
if (!RESPONSE_SUCCESS_CODE.equals(baseOrderResponse.getErrcode())) { // if (!RESPONSE_SUCCESS_CODE.equals(baseOrderResponse.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR); // return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR);
} // }
// TODO: 2019/9/10 删除订单通知 // // TODO: 2019/9/10 删除订单通知
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus()); // backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
return ResponseUtil.success(); // return ResponseUtil.success();
} // }
@Override @Override
public BaseResponse orderRefund(OrderRefundVo orderRefundVo) { public BaseResponse orderRefund(OrderRefundVo orderRefundVo) {
...@@ -3795,6 +3816,79 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3795,6 +3816,79 @@ public class OrderServiceImpl implements Orderservice {
orderSdkService.updateAbnormalState(sdkUpdateAbnormalState); orderSdkService.updateAbnormalState(sdkUpdateAbnormalState);
} }
/**
* 关闭预支付
*/
private boolean closePrePay(OrderBean orderBean) {
//是否支付成功
boolean paySuccess = false;
OrderExtInfoDto extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
List<QueryOrdersResponse.DataBean.OrderBean.OrderPayItem> orderPayItemList = orderBean.getOrderPayItem();
if (null != orderPayItemList && orderPayItemList.size() > 0) {
Integer partnerId = Integer.valueOf(orderBean.getCompanyId());
MultiQueryRequest request = new MultiQueryRequest();
request.setEnable_platform_data_query(false);
request.setPartnerId(partnerId);
request.setStoreId(orderBean.getShopId());
request.setOutOrderNo(orderBean.getOid());
//查询聚合支付结果
MultiQueryRespDto<MultiQueryRespDto.Data> response = comPayClient.paymentApplicationQuery(request, partnerId);
if (response != null && response.getData() != null && Objects.equals(response.getCode(), MULITI_RESPONSE)) {
List<MultiPaymentRespDto> multiPaymentRespDtoArrayList = response.getData().getQueryList();
if (null != multiPaymentRespDtoArrayList && multiPaymentRespDtoArrayList.size() > 0) {
int successData = 0;
for (MultiPaymentRespDto multiPaymentRespDto : multiPaymentRespDtoArrayList) {
if (Objects.equals(multiPaymentRespDto.getStatus(), SUCCESS)) {
successData++;
}
}
if (successData >= multiPaymentRespDtoArrayList.size()) {
paySuccess = true;
}
}
}
}else {
//判断当前订单是否存在预支付订单
if (extInfo != null && StringUtils.isNotEmpty(extInfo.getFmId())) {
//订单状态未支付且存在预支付订单:
// 1.查询预支付订单支付状态
PaymentQueryRequest paymentQueryRequest = new PaymentQueryRequest();
paymentQueryRequest.setPartnerId(orderBean.getCompanyId());
paymentQueryRequest.setStoreId(orderBean.getShopId());
paymentQueryRequest.setFmId(extInfo.getFmId());
paymentQueryRequest.setVer("2");
com.freemud.application.sdk.api.base.BaseResponse<PaymentQueryResponse> queryResponseBaseResponse = paymentNewService.query(paymentQueryRequest, LogThreadLocal.getTrackingNo());
//判断预支付订单状态
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), queryResponseBaseResponse.getCode())) {
throw new ServiceException(ResponseResult.ORDER_PAY_GETPRE_MESSAGE_ERROR);
}
//判断当前预支付订单是否已经支付成功
if (ObjectUtils.equals(TradeState.SUCCESS.getCode(), queryResponseBaseResponse.getData().getTradeState())) {
paySuccess = true;
}
}
}
if(!paySuccess){
PaymentCloseUnifiedOrderRequest closeUnifiedOrderRequest = new PaymentCloseUnifiedOrderRequest();
closeUnifiedOrderRequest.setFmId(extInfo.getFmId());
closeUnifiedOrderRequest.setVer("2");
closeUnifiedOrderRequest.setPartnerId(orderBean.getCompanyId());
closeUnifiedOrderRequest.setStoreId(orderBean.getShopId());
com.freemud.application.sdk.api.base.BaseResponse<PaymentCloseUnifiedOrderResponse> cancelNewUnifiedOrder = paymentNewService.cancelNewUnifiedOrder(closeUnifiedOrderRequest, LogThreadLocal.getTrackingNo());
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getCode())) {
throw new ServiceException(ResponseResult.ORDER_PRE_PAYMENT_CLOSE_FAILED);
}
}
return paySuccess;
}
/**
* 与 closePrePay 待合并
* @param orderBean
*/
private void closeHistoryPrePay(OrderBean orderBean) { private void closeHistoryPrePay(OrderBean orderBean) {
OrderExtInfoDto extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class); OrderExtInfoDto extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
......
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
package cn.freemud.service.thirdparty; package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.pay.CombPayResponse; import cn.freemud.entities.dto.pay.CombPayResponse;
import cn.freemud.entities.dto.pay.MultiQueryRequest;
import cn.freemud.entities.dto.pay.MultiQueryRespDto;
import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest; import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -26,11 +28,16 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -26,11 +28,16 @@ import org.springframework.web.bind.annotation.RequestMapping;
@RequestMapping(produces = {"application/json;charset=UTF-8"}) @RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface ComPayClient { public interface ComPayClient {
// TODO: 21-4-1 待合并
/** /**
* 统一下单 * 混合支付统一下单
*/ */
@PostMapping("/payment/application/pay") @PostMapping("/payment/application/pay")
CombPayResponse combPay(@RequestBody CombPayRequest combPayRequest, @RequestHeader("partnerId") String partnerId); CombPayResponse combPay(@RequestBody CombPayRequest combPayRequest, @RequestHeader("partnerId") String partnerId);
/**
* 混合支付查询接口
*/
@PostMapping("/payment/application/query")
MultiQueryRespDto<MultiQueryRespDto.Data> paymentApplicationQuery(MultiQueryRequest multiQueryRequest, @RequestHeader("partnerId") Integer partnerId);
} }
...@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
public interface MulitiPaymentClient { public interface MulitiPaymentClient {
/** /**
* 统一活动查询接口 * 混合支付退款接口
*/ */
@PostMapping("/payment/application/refund") @PostMapping("/payment/application/refund")
MultiOrderRefundResponse paymentApplicationRefund(MultiOrderRefundRequest multiOrderRefundRequest, @RequestHeader("partnerId") String partnerId); MultiOrderRefundResponse paymentApplicationRefund(MultiOrderRefundRequest multiOrderRefundRequest, @RequestHeader("partnerId") String partnerId);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment