Commit 6ba0895c by ping.wu

抽出支付相关代码到一个对象

parent 44c4bf18
package cn.freemud.service.business.impl; package cn.freemud.service.business.impl;
import cn.freemud.amqp.Header;
import cn.freemud.amqp.MQAction;
import cn.freemud.amqp.MQMessage;
import cn.freemud.amqp.MQService; import cn.freemud.amqp.MQService;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.GetMemberExtendInfoRequestDto; import cn.freemud.entities.dto.GetMemberExtendInfoRequestDto;
...@@ -10,6 +7,7 @@ import cn.freemud.entities.dto.GetMemberExtendInfoResponseDto; ...@@ -10,6 +7,7 @@ import cn.freemud.entities.dto.GetMemberExtendInfoResponseDto;
import cn.freemud.entities.dto.GetUserScoreUserDetailDto; import cn.freemud.entities.dto.GetUserScoreUserDetailDto;
import cn.freemud.entities.dto.user.UserScoreRequest; import cn.freemud.entities.dto.user.UserScoreRequest;
import cn.freemud.service.business.OrderBusinessService; import cn.freemud.service.business.OrderBusinessService;
import cn.freemud.service.impl.OrderQueueService;
import cn.freemud.service.thirdparty.CustomerApplicationClient; import cn.freemud.service.thirdparty.CustomerApplicationClient;
import cn.freemud.service.thirdparty.CustomerClient; import cn.freemud.service.thirdparty.CustomerClient;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -20,7 +18,6 @@ import com.freemud.application.sdk.api.couponcenter.offline.response.CouponLockR ...@@ -20,7 +18,6 @@ import com.freemud.application.sdk.api.couponcenter.offline.response.CouponLockR
import com.freemud.application.sdk.api.couponcenter.offline.service.OfflineCouponSdkService; import com.freemud.application.sdk.api.couponcenter.offline.service.OfflineCouponSdkService;
import com.freemud.application.sdk.api.log.ErrorLog; import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.log.ThirdPartyLog;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
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.OrderSettlementType; import com.freemud.application.sdk.api.ordercenter.enums.OrderSettlementType;
...@@ -47,8 +44,9 @@ import com.freemud.sdk.api.assortment.order.constant.CommonConstant; ...@@ -47,8 +44,9 @@ import com.freemud.sdk.api.assortment.order.constant.CommonConstant;
import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant; import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant;
import com.freemud.sdk.api.assortment.order.enums.*; import com.freemud.sdk.api.assortment.order.enums.*;
import com.freemud.sdk.api.assortment.order.request.order.*; import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*; import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse;
import com.freemud.sdk.api.assortment.order.util.AssortOrderLogUtil; import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse;
import com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -91,7 +89,8 @@ public class OrderBusinessServiceImpl implements OrderBusinessService { ...@@ -91,7 +89,8 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
private OfflineCouponSdkService offlineCouponSdkService; private OfflineCouponSdkService offlineCouponSdkService;
@Autowired @Autowired
private MQService mqService; private MQService mqService;
@Autowired
private OrderQueueService orderQueueService;
@Value("${version.upgrade.weekDay:}") @Value("${version.upgrade.weekDay:}")
private List<Integer> weekDay; private List<Integer> weekDay;
...@@ -290,7 +289,7 @@ public class OrderBusinessServiceImpl implements OrderBusinessService { ...@@ -290,7 +289,7 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
AfterSalesType.SYSTEM_CANCEL, "活动库存不足", "", null); AfterSalesType.SYSTEM_CANCEL, "活动库存不足", "", null);
orderCancel(cancelOrderRequest); orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单 //失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange()); orderQueueService.backOrdersStatusChange(orderBean.getOid(),orderBean.getStatus());
return BaseOrderResponse.getErrorBaseOrderResponse(activityResponse.getCode(), "活动库存不足"); return BaseOrderResponse.getErrorBaseOrderResponse(activityResponse.getCode(), "活动库存不足");
} }
} }
...@@ -305,7 +304,7 @@ public class OrderBusinessServiceImpl implements OrderBusinessService { ...@@ -305,7 +304,7 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
AfterSalesType.SYSTEM_CANCEL, "积分不足", "", null); AfterSalesType.SYSTEM_CANCEL, "积分不足", "", null);
orderCancel(cancelOrderRequest); orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单 //失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange()); orderQueueService.backOrdersStatusChange(orderBean.getOid(),orderBean.getStatus());
return BaseOrderResponse.getErrorBaseOrderResponse(userScoreResponse.getCode(), "积分不足"); return BaseOrderResponse.getErrorBaseOrderResponse(userScoreResponse.getCode(), "积分不足");
} }
} }
...@@ -320,7 +319,7 @@ public class OrderBusinessServiceImpl implements OrderBusinessService { ...@@ -320,7 +319,7 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(), AfterSalesType.SYSTEM_CANCEL, "锁定券码失败", "", null); CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(), AfterSalesType.SYSTEM_CANCEL, "锁定券码失败", "", null);
orderCancel(cancelOrderRequest); orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单 //失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange()); orderQueueService.backOrdersStatusChange(orderBean.getOid(),orderBean.getStatus());
return BaseOrderResponse.getErrorBaseOrderResponse(couponLockResponseBaseResponse.getCode(), couponLockResponseBaseResponse.getMessage()); return BaseOrderResponse.getErrorBaseOrderResponse(couponLockResponseBaseResponse.getCode(), couponLockResponseBaseResponse.getMessage());
} }
} }
...@@ -370,29 +369,29 @@ public class OrderBusinessServiceImpl implements OrderBusinessService { ...@@ -370,29 +369,29 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
private void backOrdersNotifyActivity(OrderBeanV1 orderBean, String backOrdersChangeOrderStatusConsumerQueue, String backOrdersNotifyActivityExchange) { // private void backOrdersNotifyActivity(OrderBeanV1 orderBean, String backOrdersChangeOrderStatusConsumerQueue, String backOrdersNotifyActivityExchange) {
if (null == orderBean || backOrdersChangeOrderStatusConsumerQueue == null || backOrdersNotifyActivityExchange == null) { // if (null == orderBean || backOrdersChangeOrderStatusConsumerQueue == null || backOrdersNotifyActivityExchange == null) {
return; // return;
} // }
String oid = orderBean.getOid(); // String oid = orderBean.getOid();
Integer status = orderBean.getStatus(); // Integer status = orderBean.getStatus();
if (StringUtils.isEmpty(oid)) { // if (StringUtils.isEmpty(oid)) {
return; // return;
} // }
AssortOrderLogUtil.info("backOrdersStatusChange", oid, String.valueOf(status)); // AssortOrderLogUtil.info("backOrdersStatusChange", oid, String.valueOf(status));
OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto(); // OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto();
requestDto.setOid(oid); // requestDto.setOid(oid);
requestDto.setOrderStatus(status); // requestDto.setOrderStatus(status);
try { // try {
Header header = new Header(MQAction.INSERT.getAction(), "backOrdersStatusChange", oid, backOrdersChangeOrderStatusConsumerQueue); // Header header = new Header(MQAction.INSERT.getAction(), "backOrdersStatusChange", oid, backOrdersChangeOrderStatusConsumerQueue);
MQMessage<OrderStatusChangeRequestDto> message = new MQMessage<>(header, requestDto); // MQMessage<OrderStatusChangeRequestDto> message = new MQMessage<>(header, requestDto);
mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message); // mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message);
} catch (Exception e) { // } catch (Exception e) {
//TODO 邮件告警 // //TODO 邮件告警
ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(), // ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(),
"backOrdersStatusChangeNotify_error", backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue); // "backOrdersStatusChangeNotify_error", backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue);
} // }
} // }
List<String> getOrgCodes(String partnerId, String storeCode) { List<String> getOrgCodes(String partnerId, String storeCode) {
GetOrgTreeListRequest request = new GetOrgTreeListRequest(); GetOrgTreeListRequest request = new GetOrgTreeListRequest();
......
...@@ -103,6 +103,9 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -103,6 +103,9 @@ public class AppOrderServiceImpl implements AppOrderService {
@Autowired @Autowired
private CouponOnlineClient couponOnlineClient; private CouponOnlineClient couponOnlineClient;
@Autowired
private PayServiceImpl payServiceimpl;
/** /**
* 不支持会员卡 * 不支持会员卡
*/ */
...@@ -168,7 +171,7 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -168,7 +171,7 @@ public class AppOrderServiceImpl implements AppOrderService {
cardCode, createPrepayVo.getPayCode(), createOrderOperateDto.getFatherOrderBean(), createOrderOperateDto.getProductOrderBean(), createOrderOperateDto.getTotalAmount(), cardCode, createPrepayVo.getPayCode(), createOrderOperateDto.getFatherOrderBean(), createOrderOperateDto.getProductOrderBean(), createOrderOperateDto.getTotalAmount(),
createOrderOperateDto.getCardAmount(), extInfo, transId, OrderClientType.APP); createOrderOperateDto.getCardAmount(), extInfo, transId, OrderClientType.APP);
redisService.savePaymentTransIdOrder(RedisUtil.getPaymentTransIdOrderKey(transId), productOrderBean.getOid(), 60L, TimeUnit.MINUTES); redisService.savePaymentTransIdOrder(RedisUtil.getPaymentTransIdOrderKey(transId), productOrderBean.getOid(), 60L, TimeUnit.MINUTES);
return orderservice.createPrepayOrder(createPrepayRequestDto); return payServiceimpl.createPrepayOrder(createPrepayRequestDto);
} }
......
...@@ -122,6 +122,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService { ...@@ -122,6 +122,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
private OrderAdapterService orderAdapterService; private OrderAdapterService orderAdapterService;
@Autowired @Autowired
private CouponAdapter couponAdapter; private CouponAdapter couponAdapter;
@Autowired
private PayServiceImpl payService;
private final Integer RESPONSE_SUCCESS_CODE = 100; private final Integer RESPONSE_SUCCESS_CODE = 100;
...@@ -601,7 +603,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService { ...@@ -601,7 +603,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
//此处使用订单修改金额后的金额数据显示支付 //此处使用订单修改金额后的金额数据显示支付
queryOrderByIdResponse.getData().setAmount(baseOrderResponse.getData().getAmount()); queryOrderByIdResponse.getData().setAmount(baseOrderResponse.getData().getAmount());
//调用预支付 //调用预支付
orderResponseVo = orderCommonService.createPrePaymentOrder(baseOrderResponse.getData(),assortmentCustomerInfoVo,assortmentCustomerInfoVo.getPartnerId(),0,createReserveOrderVo.getCardCode()); orderResponseVo = payService.createPrePaymentOrder(baseOrderResponse.getData(),assortmentCustomerInfoVo,assortmentCustomerInfoVo.getPartnerId(),0,createReserveOrderVo.getCardCode());
if(orderResponseVo != null){ if(orderResponseVo != null){
if(orderResponseVo.getPaySuccess()){ if(orderResponseVo.getPaySuccess()){
//如果是商品券支付0元,调用回调接口 //如果是商品券支付0元,调用回调接口
......
...@@ -117,7 +117,6 @@ import com.freemud.sdk.api.assortment.order.vo.ProductGroupVo; ...@@ -117,7 +117,6 @@ import com.freemud.sdk.api.assortment.order.vo.ProductGroupVo;
import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest; import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest;
import com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse; import com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse;
import com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse; import com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse;
import com.freemud.sdk.api.assortment.payment.service.StandardPaymentService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.gson.Gson; import com.google.gson.Gson;
...@@ -190,7 +189,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -190,7 +189,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired @Autowired
private MCCafeOrderCenterSdkService mcCafeOrderCenterSdkService; private MCCafeOrderCenterSdkService mcCafeOrderCenterSdkService;
@Autowired @Autowired
private StandardPaymentService standardPaymentService; private PayServiceImpl payService;
//门店SDK //门店SDK
@Autowired @Autowired
private StoreCenterService storeCenterService; private StoreCenterService storeCenterService;
...@@ -696,7 +695,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -696,7 +695,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
extendParams.put("mealType", "pickup"); extendParams.put("mealType", "pickup");
} }
request.setExtendParams(extendParams); request.setExtendParams(extendParams);
com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, trackingNo); com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = payService.unifiedOrder(request);
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) { if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) {
return null; return null;
} }
...@@ -1294,7 +1293,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1294,7 +1293,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
extendParams.put("mealType", "pickup"); extendParams.put("mealType", "pickup");
} }
orderPayRefundRequest.setExtendParams(extendParams); orderPayRefundRequest.setExtendParams(extendParams);
response = standardPaymentService.orderRefund(orderPayRefundRequest, LogThreadLocal.getTrackingNo()); response = payService.orderRefund(orderPayRefundRequest);
if (response == null || response.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(response.getCode())) { if (response == null || response.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(response.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed"); return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed");
} }
......
...@@ -76,7 +76,6 @@ import com.freemud.sdk.api.assortment.order.vo.ProductGroupVo; ...@@ -76,7 +76,6 @@ import com.freemud.sdk.api.assortment.order.vo.ProductGroupVo;
import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest; import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest;
import com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse; import com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse;
import com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse; import com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse;
import com.freemud.sdk.api.assortment.payment.service.StandardPaymentService;
import com.google.common.base.Throwables; import com.google.common.base.Throwables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
...@@ -126,8 +125,6 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -126,8 +125,6 @@ public class MallOrderServiceImpl implements MallOrderService {
@Autowired @Autowired
private RedisCache redisCache; private RedisCache redisCache;
@Autowired @Autowired
private StandardPaymentService standardPaymentService;
@Autowired
private DeliveryAdapter deliveryAdapter; private DeliveryAdapter deliveryAdapter;
@Autowired @Autowired
private DeliveryService deliveryService; private DeliveryService deliveryService;
...@@ -141,10 +138,10 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -141,10 +138,10 @@ public class MallOrderServiceImpl implements MallOrderService {
@Autowired @Autowired
private AssortmentCustomerInfoManager customerInfoManager; private AssortmentCustomerInfoManager customerInfoManager;
@Value("${program.backorders_change_order_status_consumer_queue}") // @Value("${program.backorders_change_order_status_consumer_queue}")
private String backOrdersChangeOrderStatusConsumerQueue; // private String backOrdersChangeOrderStatusConsumerQueue;
@Value("${program.backorders_notify_activity_exchange}") // @Value("${program.backorders_notify_activity_exchange}")
private String backOrdersNotifyActivityExchange; // private String backOrdersNotifyActivityExchange;
@Autowired @Autowired
private CouponActivityService couponActivityService; private CouponActivityService couponActivityService;
...@@ -154,6 +151,11 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -154,6 +151,11 @@ public class MallOrderServiceImpl implements MallOrderService {
private PaymentQueueService paymentQueueService; private PaymentQueueService paymentQueueService;
@Autowired @Autowired
private OrderBusinessService orderBusinessService; private OrderBusinessService orderBusinessService;
@Autowired
private OrderQueueService orderQueueService;
@Autowired
private PayServiceImpl payServiceImpl;
/** /**
* 创建订单 * 创建订单
*/ */
...@@ -284,8 +286,8 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -284,8 +286,8 @@ public class MallOrderServiceImpl implements MallOrderService {
baseCreateOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo()); baseCreateOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
createOrderRequest.setBaseCreateOrderRequest(baseCreateOrderRequest); createOrderRequest.setBaseCreateOrderRequest(baseCreateOrderRequest);
MqMessageRequest mqMessageRequest = new MqMessageRequest(); MqMessageRequest mqMessageRequest = new MqMessageRequest();
mqMessageRequest.setBackOrdersNotifyActivityExchange(backOrdersNotifyActivityExchange); // mqMessageRequest.setBackOrdersNotifyActivityExchange(backOrdersNotifyActivityExchange);
mqMessageRequest.setBackOrdersNotifyActivityQueue(backOrdersChangeOrderStatusConsumerQueue); // mqMessageRequest.setBackOrdersNotifyActivityQueue(backOrdersChangeOrderStatusConsumerQueue);
createOrderRequest.setMqMessageRequest(mqMessageRequest); createOrderRequest.setMqMessageRequest(mqMessageRequest);
createOrderRequest.getBaseCreateOrderRequest().setUserName(userLoginInfoDto.getNickName()); createOrderRequest.getBaseCreateOrderRequest().setUserName(userLoginInfoDto.getNickName());
createOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo()); createOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
...@@ -375,7 +377,7 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -375,7 +377,7 @@ public class MallOrderServiceImpl implements MallOrderService {
try { try {
OrderPayResponse orderPayResponse; OrderPayResponse orderPayResponse;
UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, orderBean.getOid()); UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, orderBean.getOid());
com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, trackingNo); com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = payServiceImpl.unifiedOrder(request);
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) { if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) {
// 1.9.34 预支付失败需要把原因进行记录 // 1.9.34 预支付失败需要把原因进行记录
orderPayResponse = new OrderPayResponse(); orderPayResponse = new OrderPayResponse();
...@@ -490,13 +492,13 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -490,13 +492,13 @@ public class MallOrderServiceImpl implements MallOrderService {
GroupWorkJoinResponse groupWorkJoinResponse = spellGroupOrderDataManager.groupWorkJoin(orderBean,userLoginInfoDto,wxappid); GroupWorkJoinResponse groupWorkJoinResponse = spellGroupOrderDataManager.groupWorkJoin(orderBean,userLoginInfoDto,wxappid);
if(!ResponseResult.SUCCESS.getCode().equals(groupWorkJoinResponse.getStatusCode()) || groupWorkJoinResponse.getResult() == null){ if(!ResponseResult.SUCCESS.getCode().equals(groupWorkJoinResponse.getStatusCode()) || groupWorkJoinResponse.getResult() == null){
orderRefund(orderBean, groupWorkJoinResponse.getMsg()); orderRefund(orderBean, groupWorkJoinResponse.getMsg());
backOrdersNotifyActivity(orderBean, backOrdersChangeOrderStatusConsumerQueue, backOrdersNotifyActivityExchange); orderQueueService.backOrdersStatusChange(orderBean.getOid(),orderBean.getStatus());
return gson.toJson(message); return gson.toJson(message);
} }
if("2".equals(groupWorkJoinResponse.getResult().getGroupStatus())){ if("2".equals(groupWorkJoinResponse.getResult().getGroupStatus())){
orderRefund(orderBean, "成团失败,退款流程"); orderRefund(orderBean, "成团失败,退款流程");
backOrdersNotifyActivity(orderBean, backOrdersChangeOrderStatusConsumerQueue, backOrdersNotifyActivityExchange); orderQueueService.backOrdersStatusChange(orderBean.getOid(),orderBean.getStatus());
return gson.toJson(message); return gson.toJson(message);
} }
if(StringUtils.isEmpty(orderBean.getSpellGroupCode())){ if(StringUtils.isEmpty(orderBean.getSpellGroupCode())){
...@@ -687,26 +689,26 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -687,26 +689,26 @@ public class MallOrderServiceImpl implements MallOrderService {
} }
private void backOrdersNotifyActivity(OrderBeanV1 orderBean, String backOrdersChangeOrderStatusConsumerQueue, String backOrdersNotifyActivityExchange) { // private void backOrdersNotifyActivity(OrderBeanV1 orderBean, String backOrdersChangeOrderStatusConsumerQueue, String backOrdersNotifyActivityExchange) {
if (null == orderBean || backOrdersChangeOrderStatusConsumerQueue == null || backOrdersNotifyActivityExchange == null) { // if (null == orderBean || backOrdersChangeOrderStatusConsumerQueue == null || backOrdersNotifyActivityExchange == null) {
return; // return;
} // }
String oid = orderBean.getOid(); // String oid = orderBean.getOid();
Integer status = orderBean.getStatus(); // Integer status = orderBean.getStatus();
if (StringUtils.isEmpty(oid)) { // if (StringUtils.isEmpty(oid)) {
return; // return;
} // }
OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto(); // OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto();
requestDto.setOid(oid); // requestDto.setOid(oid);
requestDto.setOrderStatus(status); // requestDto.setOrderStatus(status);
try { // try {
Header header = new Header(MQAction.INSERT.getAction(), "backOrdersStatusChange", oid, backOrdersChangeOrderStatusConsumerQueue); // Header header = new Header(MQAction.INSERT.getAction(), "backOrdersStatusChange", oid, backOrdersChangeOrderStatusConsumerQueue);
MQMessage<OrderStatusChangeRequestDto> message = new MQMessage<>(header, requestDto); // MQMessage<OrderStatusChangeRequestDto> message = new MQMessage<>(header, requestDto);
mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message); // mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message);
} catch (Exception e) { // } catch (Exception e) {
ErrorLog.printErrorLog("backOrdersStatusChangeNotify_error","backOrdersChangeOrderStatusConsumerQueue",requestDto,e); // ErrorLog.printErrorLog("backOrdersStatusChangeNotify_error","backOrdersChangeOrderStatusConsumerQueue",requestDto,e);
} // }
} // }
/** /**
* 商家未接单,取消订单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口 * 商家未接单,取消订单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
...@@ -722,7 +724,7 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -722,7 +724,7 @@ public class MallOrderServiceImpl implements MallOrderService {
if (orderBean.getAmount() != 0) { if (orderBean.getAmount() != 0) {
//调用支付退款 //调用支付退款
com.freemud.sdk.api.assortment.payment.request.OrderRefundRequest orderPayRefundRequest = orderAdapter.getOrderPayRefundRequest(orderBean, refundId, fatherOrderId); com.freemud.sdk.api.assortment.payment.request.OrderRefundRequest orderPayRefundRequest = orderAdapter.getOrderPayRefundRequest(orderBean, refundId, fatherOrderId);
response = standardPaymentService.orderRefund(orderPayRefundRequest, LogThreadLocal.getTrackingNo()); response = payServiceImpl.orderRefund(orderPayRefundRequest);
if (response == null || response.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(response.getCode())) { if (response == null || response.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(response.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed"); return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed");
} }
......
package cn.freemud.service.impl;
import cn.freemud.amp.config.DlPaymentMqConfig;
import cn.freemud.amqp.Header;
import cn.freemud.amqp.MQAction;
import cn.freemud.amqp.MQMessage;
import cn.freemud.amqp.MQService;
import cn.freemud.entities.dto.OrderPrintDto;
import cn.freemud.entities.dto.pay.PaymentMqMessageDto;
import cn.freemud.utils.AppLogUtil;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.config.TopicExchangeConfig;
import com.freemud.sdk.api.assortment.order.request.order.OrderStatusChangeRequestDto;
import org.apache.commons.lang.StringUtils;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
public class OrderQueueService {
@Autowired
private MQService mqService;
// TODO: 21-9-17 定义常量
@Value("${program.backorders_change_order_status_consumer_queue}")
private String backOrdersChangeOrderStatusConsumerQueue;
@Value("${program.backorders_notify_activity_exchange}")
private String backOrdersNotifyActivityExchange;
@Value("${mq.queue.cloud_print_queue}")
private String cloudPrintQueue;
@Value("${mq.cloud_print_exchange}")
private String cloud_print_exchange;
/**
* 失败订单冲正 mq
*/
public void backOrdersStatusChange(String oid, Integer orderStatus, Integer payStatus) {
if (StringUtils.isEmpty(oid)) {
return;
}
AppLogUtil.infoLog("backOrdersStatusChange oid:{} orderStatus:{}", oid, String.valueOf(orderStatus));
OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto();
requestDto.setOid(oid);
requestDto.setPayStatus(payStatus);
requestDto.setOrderStatus(orderStatus);
try {
Header header = new Header(MQAction.INSERT.getAction(), "backOrdersStatusChange", oid, backOrdersChangeOrderStatusConsumerQueue);
MQMessage<OrderStatusChangeRequestDto> message = new MQMessage<>(header, requestDto);
mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message);
} catch (Exception e) {
AppLogUtil.errorLog("ActivityReverse", JSON.toJSONString(requestDto), "", e);
}
}
public void backOrdersStatusChange(String oid, Integer orderStatus) {
if (StringUtils.isEmpty(oid)) {
return;
}
AppLogUtil.infoLog("backOrdersStatusChange oid:{} orderStatus:{}", oid, String.valueOf(orderStatus));
OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto();
requestDto.setOid(oid);
requestDto.setOrderStatus(orderStatus);
try {
Header header = new Header(MQAction.INSERT.getAction(), "backOrdersStatusChange", oid, backOrdersChangeOrderStatusConsumerQueue);
MQMessage<OrderStatusChangeRequestDto> message = new MQMessage<>(header, requestDto);
mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message);
} catch (Exception e) {
AppLogUtil.errorLog("ActivityReverse", JSON.toJSONString(requestDto), "", e);
}
}
/**
* 发MQ去打印
*
*/
public void asynchronousPrint(OrderPrintDto request) {
// AppLogUtil.debugLog("OrderPrintDto", JSONObject.toJSONString(request), null);
Header header = new Header(MQAction.INSERT.getAction(), "asynchronous-print-api", request.getOid() + "", cloudPrintQueue);
MQMessage<OrderPrintDto> message = new MQMessage<>(header, request);
mqService.convertAndSend(cloud_print_exchange, cloudPrintQueue, message);
}
/**
* 发支付补偿mq,查询支付结果回调支付成功接口
*/
public void paymentCallback(PaymentMqMessageDto dto) {
MQMessage<PaymentMqMessageDto> mqMessage = new MQMessage<PaymentMqMessageDto>();
mqMessage.setBody(dto);
Integer ttl = 20 * 1000;
Header header = new Header();
header.setKey("1");
mqMessage.setHeader(header);
byte[] notifyMsgBytes = JSON.toJSONString(mqMessage).getBytes();
MessageProperties messageProperties = new MessageProperties();
messageProperties.setExpiration(ttl.toString());
messageProperties.setContentType(MessageProperties.CONTENT_TYPE_JSON);
Message delmessage = new Message(notifyMsgBytes, messageProperties);
mqService.convertAndSend(TopicExchangeConfig.EXCHANGE_NAME, DlPaymentMqConfig.OPEN_STORE_PAYMENT_QUERY_DL_KEY, delmessage);
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -161,6 +161,9 @@ public class SellCouponOrderServiceImpl { ...@@ -161,6 +161,9 @@ public class SellCouponOrderServiceImpl {
@Autowired @Autowired
private PromotionDiscountClient promotionDiscountClient; private PromotionDiscountClient promotionDiscountClient;
@Autowired
private PayServiceImpl payService;
/** /**
* 卖券订单创建 * 卖券订单创建
...@@ -305,7 +308,7 @@ public class SellCouponOrderServiceImpl { ...@@ -305,7 +308,7 @@ public class SellCouponOrderServiceImpl {
orderExtInfoDto.setFromAppId(userLoginInfoDto.getWxAppId()); orderExtInfoDto.setFromAppId(userLoginInfoDto.getWxAppId());
createPrepayRequestDto.setOrderExtInfoDTO(orderExtInfoDto); createPrepayRequestDto.setOrderExtInfoDTO(orderExtInfoDto);
return orderservice.createPrepayOrder(createPrepayRequestDto); return payService.createPrepayOrder(createPrepayRequestDto);
} }
...@@ -447,7 +450,7 @@ public class SellCouponOrderServiceImpl { ...@@ -447,7 +450,7 @@ public class SellCouponOrderServiceImpl {
orderExtInfoDto.setStationId(stationid); orderExtInfoDto.setStationId(stationid);
createPrepayRequestDto.setOrderExtInfoDTO(orderExtInfoDto); createPrepayRequestDto.setOrderExtInfoDTO(orderExtInfoDto);
return orderservice.createPrepayOrder(createPrepayRequestDto); return payService.createPrepayOrder(createPrepayRequestDto);
} }
......
...@@ -97,6 +97,11 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService { ...@@ -97,6 +97,11 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService {
@Autowired @Autowired
private MQService mqService; private MQService mqService;
@Autowired
private PayServiceImpl payServiceimpl;
@Value("${program.backorders_change_order_status_consumer_queue}") @Value("${program.backorders_change_order_status_consumer_queue}")
private String backOrdersChangeOrderStatusConsumerQueue; private String backOrdersChangeOrderStatusConsumerQueue;
@Value("${program.backorders_notify_activity_exchange}") @Value("${program.backorders_notify_activity_exchange}")
...@@ -188,7 +193,7 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService { ...@@ -188,7 +193,7 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService {
} }
/*创建支付*/ /*创建支付*/
CreatePrepayRequestDto createPrepayRequestDto = spellGroupOrderAdapter.convertToCreatePrepayRequest(userLoginInfoDto, createOrderResponse.getData(), trackingNo,createSpellGroupOrderDto.getProvince()); CreatePrepayRequestDto createPrepayRequestDto = spellGroupOrderAdapter.convertToCreatePrepayRequest(userLoginInfoDto, createOrderResponse.getData(), trackingNo,createSpellGroupOrderDto.getProvince());
return orderService.createPrepayOrder(createPrepayRequestDto); return payServiceimpl.createPrepayOrder(createPrepayRequestDto);
} }
/*** /***
......
...@@ -25,6 +25,7 @@ import cn.freemud.interceptor.ServiceException; ...@@ -25,6 +25,7 @@ import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.CheckOrderUniversal; import cn.freemud.service.CheckOrderUniversal;
import cn.freemud.service.OrderAdapterService; import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.impl.PayServiceImpl;
import cn.freemud.service.impl.PaymentQueueService; import cn.freemud.service.impl.PaymentQueueService;
import cn.freemud.service.thirdparty.ComPayClient; import cn.freemud.service.thirdparty.ComPayClient;
import cn.freemud.service.thirdparty.SvcComPayClient; import cn.freemud.service.thirdparty.SvcComPayClient;
...@@ -89,7 +90,6 @@ import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse; ...@@ -89,7 +90,6 @@ import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService; import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest; import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest;
import com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse; import com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse;
import com.freemud.sdk.api.assortment.payment.service.StandardPaymentService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
...@@ -134,7 +134,7 @@ public abstract class UniversalOrderService { ...@@ -134,7 +134,7 @@ public abstract class UniversalOrderService {
@Autowired @Autowired
private PaymentNewService paymentNewService; private PaymentNewService paymentNewService;
@Autowired @Autowired
protected StandardPaymentService standardPaymentService; protected PayServiceImpl payService;
@Autowired @Autowired
private PaymentQueueService paymentQueueService; private PaymentQueueService paymentQueueService;
@Autowired @Autowired
...@@ -1101,7 +1101,7 @@ public abstract class UniversalOrderService { ...@@ -1101,7 +1101,7 @@ public abstract class UniversalOrderService {
if (orderExtInfoDto != null && StringUtils.isNotBlank(orderExtInfoDto.getStationId())) { if (orderExtInfoDto != null && StringUtils.isNotBlank(orderExtInfoDto.getStationId())) {
request.setStationId(orderExtInfoDto.getStationId()); request.setStationId(orderExtInfoDto.getStationId());
} }
com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, trackingNo); com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = payService.unifiedOrder(request);
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) { if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) {
// 1.9.34 预支付失败需要把原因进行记录 // 1.9.34 预支付失败需要把原因进行记录
orderPayResponse = new OrderPayResponse(); orderPayResponse = new OrderPayResponse();
......
...@@ -374,7 +374,7 @@ public class SaasMallOrderService extends UniversalOrderService { ...@@ -374,7 +374,7 @@ public class SaasMallOrderService extends UniversalOrderService {
private OrderPayResponse getPreOrderPay(OrderBeanV1 orderBean, PaymentRequest paymentRequest, String trackingNo, Integer cardAmount) { private OrderPayResponse getPreOrderPay(OrderBeanV1 orderBean, PaymentRequest paymentRequest, String trackingNo, Integer cardAmount) {
try { try {
UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, orderBean.getOid()); UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, orderBean.getOid());
com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = super.standardPaymentService.unifiedOrder(request, trackingNo); com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = super.payService.unifiedOrder(request);
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) { if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) {
return null; return null;
} }
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
package cn.freemud.service; package cn.freemud.service;
import cn.freemud.entities.dto.OrderPrintDto; import cn.freemud.entities.dto.OrderPrintDto;
import cn.freemud.service.impl.OrderQueueService;
import cn.freemud.service.impl.OrderServiceImpl; import cn.freemud.service.impl.OrderServiceImpl;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -36,6 +37,9 @@ public class MQTest { ...@@ -36,6 +37,9 @@ public class MQTest {
@Autowired @Autowired
private OrderServiceImpl orderService; private OrderServiceImpl orderService;
@Autowired
private OrderQueueService orderQueueService;
@Test @Test
public void test(){ public void test(){
OrderPrintDto request =new OrderPrintDto(); OrderPrintDto request =new OrderPrintDto();
...@@ -71,7 +75,7 @@ public class MQTest { ...@@ -71,7 +75,7 @@ public class MQTest {
request.setProducts(products); request.setProducts(products);
for (int i = 0;i<3;i++){ for (int i = 0;i<3;i++){
orderService.asynchronousPrint(request); orderQueueService.asynchronousPrint(request);
} }
} }
} }
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: OrderType
* @Package cn.freemud.enums
* @Description: 订单状态
* @author: liming.guo
* @date: 2018/5/21 14:43
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package com.freemud.application.sdk.api.ordercenter.enums;
/**
* 跟新订单状态同步目前
*/
public enum PayStatusEnum {
NOT_PAY(1, "未支付"),
HAVE_PAID(2, "已支付"),
HAVE_REFUND(3, "已退款"),
HAVE_PART_REFUND(4, "已经部分退款"),
COMPLETE(5, "完成");
private Integer code;
private String desc;
PayStatusEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static PayStatusEnum getByCode(Integer code) {
if (code == null) {
return null;
}
for (PayStatusEnum payStatus : values()) {
if (payStatus.getCode().equals(code)) {
return payStatus;
}
}
return null;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
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