Commit c20c0894 by 查志伟

Merge branch 'feature/20210917_抖音买券_wp' into qa

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
parents 354d68bb e915cb5c
......@@ -10,10 +10,6 @@ package com.freemud.sdk.api.assortment.shoppingcart.enums;
*/
public enum BizTypeEnum {
//字段6代表卖券订单。
//蜜雪APP和平台通用。
//后续使用此字段需注意。名称APP_COUPON取得有些误导,由于有地方使用,暂时不更改
APP_COUPON(6, "卖券订单"),
ORDINARY(1, "普通订单"),
VIRTUAL(2, "虚拟订单"),
MEMBERS(3, "会员订单"),
......
......@@ -18,7 +18,7 @@ public class SendCouponService {
private MQService mqService;
public void sendCouponMq(OrderInfoReqs request) {
AppLogUtil.infoLog("sendCouponMq", JSONObject.toJSONString(request.getOrderCode()), null);
AppLogUtil.infoLog("sendCouponMq", JSONObject.toJSONString(request), null);
Header header = new Header(MQAction.INSERT.getAction(), "order-application-service", "1", DlSendCouponMqConfig.QUEUE_NAME);
MQMessage<OrderInfoReqs> message = new MQMessage<>(header, request);
mqService.convertAndSend(DlSendCouponMqConfig.EXCHANGE_NAME, DlSendCouponMqConfig.QUEUE_ROUTING_KEY, message);
......
......@@ -3,9 +3,7 @@ package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.*;
import cn.freemud.monitorcenter.tools.HealthUtil;
import cn.freemud.service.MCCafeOrderService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.Orderservice;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
......@@ -27,8 +25,6 @@ public class McCafeController {
@Autowired
private MCCafeOrderService mcCafeOrderService;
@Autowired
private OrderAdapterService orderAdapterService;
/**
* 麦咖啡创建订单
......@@ -36,7 +32,7 @@ public class McCafeController {
@ApiAnnotation(logMessage = "createMCCafeOrder")
@PostMapping("/MCoffee/createMCCafeOrder")
public BaseResponse createOrderMCCafe(@Validated @LogParams @RequestBody CreateOrderVo createOrderVo) {
return orderAdapterService.createMCCafeOrder(createOrderVo);
return mcCafeOrderService.createMCCafeOrder(createOrderVo);
}
/**
......
......@@ -24,6 +24,7 @@ import cn.freemud.handler.OrderReportJobHandler;
import cn.freemud.monitorcenter.tools.HealthUtil;
import cn.freemud.service.*;
import cn.freemud.service.impl.MallOrderServiceImpl;
import cn.freemud.service.impl.OrderAdapterServiceImpl;
import cn.freemud.utils.AppLogUtil;
import cn.freemud.utils.ResponseUtil;
import cn.freemud.xxljob.OrderCountJobHandler;
......@@ -46,7 +47,7 @@ public class OrderController {
@Autowired
private Orderservice orderservice;
@Autowired
private OrderAdapterService orderAdapterService;
private OrderAdapterServiceImpl orderAdapterService;
@Autowired
private EncircleOrderService encircleOrderService;
@Autowired
......
......@@ -83,6 +83,8 @@ public class CreateOrderVo {
private String mobile;
private String saleCouponPhone;
/**
* 渠道 1 saas 2 支付宝 3. iwc i围餐 5 头条
*/
......
......@@ -26,6 +26,11 @@ public enum OrderChannelType {
APP("app", "APP"),
/**
* 抖音小程序
*/
TIKTOK("dy", "抖音小程序"),
POINTSMALL("pointsmall", "积分商城");
private String code;
......
......@@ -15,12 +15,12 @@ import java.util.Map;
/**
* app订单服务
*/
public interface AppOrderService {
public interface AppOrderService extends OrderFactoryService{
/**
* 创建订单
*/
BaseResponse createOrderFlow(CreateOrderVo createOrderVo);
// BaseResponse createOrderNew(CreateOrderVo createOrderVo);
/**
* 创建预支付
......@@ -30,7 +30,7 @@ public interface AppOrderService {
/**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
BaseResponse createOrder(AppCreateOrderVo createOrderVo, AssortmentCustomerInfoVo customerInfo);
BaseResponse createOrderOld(AppCreateOrderVo createOrderVo, AssortmentCustomerInfoVo customerInfo);
String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, OrderBeanV1> orderBeans);
}
......@@ -18,12 +18,12 @@ import cn.freemud.entities.vo.encircle.EncircleReserveBaseVo;
* @Copyright: ${DATE.YARE} www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public interface EncircleOrderService {
public interface EncircleOrderService extends OrderFactoryService{
/**
* 创建订单
*/
BaseResponse createOrder(CreateOrderVo createOrderVo);
// BaseResponse createOrderNew(CreateOrderVo createOrderVo);
/**
* 围餐--开台
......
......@@ -24,12 +24,12 @@ import java.util.Map;
* All rights Reserved, Designed By www.freemud.cn
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目的
*/
public interface MallOrderService {
public interface MallOrderService extends OrderFactoryService{
/**
* 创建订单
*/
BaseResponse createOrder(CreateOrderVo createOrderVo);
// BaseResponse createOrderNew(CreateOrderVo createOrderVo);
/**
* 订单确认完成
......
package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.AppCreateOrderVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import java.util.Map;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.6.0
* @Title: OrderAdapterService
* @Description: 订单业务适配
* @author: qin.zhou
* @date: 2019/9/818:20
* @Copyright: ${DATE.YARE} www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public interface OrderAdapterService {
/**
* 创建订单
* @param createOrderVo
* @return
*/
BaseResponse createOrderNew(CreateOrderVo createOrderVo);
/**
* 创建订单
* @param param
* @return
*/
BaseResponse createOrderUniversal(Map<String, Object> param);
/**
* 麦咖啡创建订单
* @param createOrderVo
* @return
*/
BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo);
/**
* 创建预支付
*/
BaseResponse createPrepay(CreatePrepayVo createPrepayVo);
/**
* APP下单,下单带商品信息,不经过购物车服务
*/
@Deprecated
BaseResponse appCreateOrder(AppCreateOrderVo createOrderVo);
/**
* 支付回调处理
*/
String paySuccessCallback(PaysuccessNoticeMessage message);
/**
* 支付回调处理
*/
String mcCafePaySuccessCallback(PaysuccessNoticeMessage message);
}
//package cn.freemud.service;
//
//import cn.freemud.base.entity.BaseResponse;
//import cn.freemud.entities.vo.AppCreateOrderVo;
//import cn.freemud.entities.vo.CreateOrderVo;
//import cn.freemud.entities.vo.CreatePrepayVo;
//import cn.freemud.entities.vo.PaysuccessNoticeMessage;
//
//import java.util.Map;
//
///**
// * All rights Reserved, Designed By www.freemud.cn
// *
// * @version V1.6.0
// * @Title: OrderAdapterService
// * @Description: 订单业务适配
// * @author: qin.zhou
// * @date: 2019/9/818:20
// * @Copyright: ${DATE.YARE} www.freemud.cn Inc. All rights reserved.
// * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
// */
//public interface OrderAdapterService {
//
// /**
// * 创建订单
// * @param createOrderVo
// * @return
// */
// BaseResponse createOrderNew(CreateOrderVo createOrderVo);
//
// /**
// * 创建订单
// * @param param
// * @return
// */
// BaseResponse createOrderUniversal(Map<String, Object> param);
//
// /**
// * 麦咖啡创建订单
// * @param createOrderVo
// * @return
// */
// BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo);
//
// /**
// * 创建预支付
// */
// BaseResponse createPrepay(CreatePrepayVo createPrepayVo);
//
// /**
// * APP下单,下单带商品信息,不经过购物车服务
// */
// @Deprecated
// BaseResponse appCreateOrder(AppCreateOrderVo createOrderVo);
//
// /**
// * 支付回调处理
// */
// String paySuccessCallback(PaysuccessNoticeMessage message);
//
// /**
// * 支付回调处理
// */
// String mcCafePaySuccessCallback(PaysuccessNoticeMessage message);
//
//}
package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CreateOrderVo;
public interface OrderFactoryService {
BaseResponse createOrder(CreateOrderVo createOrderVo);
}
......@@ -17,7 +17,7 @@ import java.util.Map;
* @author liming.guo
* @date 2018/05/08
*/
public interface Orderservice {
public interface Orderservice extends OrderFactoryService{
/**
* 创建订单之前校验前面排队的订单数
......@@ -27,7 +27,7 @@ public interface Orderservice {
/**
* 创建订单
*/
BaseResponse createOrderNew(CreateOrderVo createOrderVo);
// BaseResponse createOrderNew(CreateOrderVo createOrderVo);
BaseResponse scanFaceCreateOrder(CreateOrderVo createOrderVo);
......
......@@ -8,12 +8,12 @@ import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import java.util.Map;
public interface PointsMallOrderService {
public interface PointsMallOrderService extends OrderFactoryService{
/**
* 创建订单
*/
BaseResponse createOrder(CreateOrderVo createOrderVo);
// BaseResponse createOrderNew(CreateOrderVo createOrderVo);
/**
* 支付回调
......
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.base.util.DateUtil;
import cn.freemud.entities.dto.GetMemberExtendInfoRequestDto;
......@@ -10,6 +7,7 @@ import cn.freemud.entities.dto.GetMemberExtendInfoResponseDto;
import cn.freemud.entities.dto.GetUserScoreUserDetailDto;
import cn.freemud.entities.dto.user.UserScoreRequest;
import cn.freemud.service.business.OrderBusinessService;
import cn.freemud.service.impl.OrderQueueService;
import cn.freemud.service.thirdparty.CustomerApplicationClient;
import cn.freemud.service.thirdparty.CustomerClient;
import com.alibaba.fastjson.JSON;
......@@ -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.log.ErrorLog;
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.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderSettlementType;
......@@ -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.enums.*;
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.util.AssortOrderLogUtil;
import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse;
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.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
......@@ -91,7 +89,8 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
private OfflineCouponSdkService offlineCouponSdkService;
@Autowired
private MQService mqService;
@Autowired
private OrderQueueService orderQueueService;
@Value("${version.upgrade.weekDay:}")
private List<Integer> weekDay;
......@@ -290,7 +289,7 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
AfterSalesType.SYSTEM_CANCEL, "活动库存不足", "", null);
orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
orderQueueService.backOrdersStatusChange(orderBean.getOid(),orderBean.getStatus());
return BaseOrderResponse.getErrorBaseOrderResponse(activityResponse.getCode(), "活动库存不足");
}
}
......@@ -305,7 +304,7 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
AfterSalesType.SYSTEM_CANCEL, "积分不足", "", null);
orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
orderQueueService.backOrdersStatusChange(orderBean.getOid(),orderBean.getStatus());
return BaseOrderResponse.getErrorBaseOrderResponse(userScoreResponse.getCode(), "积分不足");
}
}
......@@ -320,7 +319,7 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(), AfterSalesType.SYSTEM_CANCEL, "锁定券码失败", "", null);
orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
orderQueueService.backOrdersStatusChange(orderBean.getOid(),orderBean.getStatus());
return BaseOrderResponse.getErrorBaseOrderResponse(couponLockResponseBaseResponse.getCode(), couponLockResponseBaseResponse.getMessage());
}
}
......@@ -370,29 +369,29 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
private void backOrdersNotifyActivity(OrderBeanV1 orderBean, String backOrdersChangeOrderStatusConsumerQueue, String backOrdersNotifyActivityExchange) {
if (null == orderBean || backOrdersChangeOrderStatusConsumerQueue == null || backOrdersNotifyActivityExchange == null) {
return;
}
String oid = orderBean.getOid();
Integer status = orderBean.getStatus();
if (StringUtils.isEmpty(oid)) {
return;
}
AssortOrderLogUtil.info("backOrdersStatusChange", oid, String.valueOf(status));
OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto();
requestDto.setOid(oid);
requestDto.setOrderStatus(status);
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) {
//TODO 邮件告警
ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(),
"backOrdersStatusChangeNotify_error", backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue);
}
}
// private void backOrdersNotifyActivity(OrderBeanV1 orderBean, String backOrdersChangeOrderStatusConsumerQueue, String backOrdersNotifyActivityExchange) {
// if (null == orderBean || backOrdersChangeOrderStatusConsumerQueue == null || backOrdersNotifyActivityExchange == null) {
// return;
// }
// String oid = orderBean.getOid();
// Integer status = orderBean.getStatus();
// if (StringUtils.isEmpty(oid)) {
// return;
// }
// AssortOrderLogUtil.info("backOrdersStatusChange", oid, String.valueOf(status));
// OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto();
// requestDto.setOid(oid);
// requestDto.setOrderStatus(status);
// 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) {
// //TODO 邮件告警
// ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(),
// "backOrdersStatusChangeNotify_error", backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue);
// }
// }
List<String> getOrgCodes(String partnerId, String storeCode) {
GetOrgTreeListRequest request = new GetOrgTreeListRequest();
......
......@@ -103,11 +103,14 @@ public class AppOrderServiceImpl implements AppOrderService {
@Autowired
private CouponOnlineClient couponOnlineClient;
@Autowired
private PayServiceImpl payServiceimpl;
/**
* 不支持会员卡
*/
@Override
public BaseResponse createOrderFlow(CreateOrderVo createOrderVo) {
public BaseResponse createOrder(CreateOrderVo createOrderVo) {
String trackingNo = LogThreadLocal.getTrackingNo();
// 查询用户信息
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMember(createOrderVo, trackingNo);
......@@ -168,7 +171,7 @@ public class AppOrderServiceImpl implements AppOrderService {
cardCode, createPrepayVo.getPayCode(), createOrderOperateDto.getFatherOrderBean(), createOrderOperateDto.getProductOrderBean(), createOrderOperateDto.getTotalAmount(),
createOrderOperateDto.getCardAmount(), extInfo, transId, OrderClientType.APP);
redisService.savePaymentTransIdOrder(RedisUtil.getPaymentTransIdOrderKey(transId), productOrderBean.getOid(), 60L, TimeUnit.MINUTES);
return orderservice.createPrepayOrder(createPrepayRequestDto);
return payServiceimpl.createPrepayOrder(createPrepayRequestDto);
}
......@@ -176,7 +179,7 @@ public class AppOrderServiceImpl implements AppOrderService {
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
@Override
public BaseResponse createOrder(AppCreateOrderVo createOrderReq, AssortmentCustomerInfoVo customerInfo) {
public BaseResponse createOrderOld(AppCreateOrderVo createOrderReq, AssortmentCustomerInfoVo customerInfo) {
String trackingNo = LogThreadLocal.getTrackingNo();
String partnerId = createOrderReq.getPartnerId();
String shopId = createOrderReq.getShopId();
......@@ -190,7 +193,7 @@ public class AppOrderServiceImpl implements AppOrderService {
checkOrder.checkOrderByStore(storeResponse.getBizVO());
/**蜜雪新增需求-->APP可以购买虚拟商品券业务逻辑**/
OrderBeanV1 orderBean = new OrderBeanV1();
if (createOrderReq.getBizType() != null && BizTypeEnum.APP_COUPON.getBizType().equals(createOrderReq.getBizType())) {
if (createOrderReq.getBizType() != null && BizTypeEnum.SALE_COUPON.getBizType().equals(createOrderReq.getBizType())) {
//现阶段蜜雪卖券业务是能单个,所以默认取0.后续多个的话,也需要调整平台买券取数规则
String skuId = createOrderReq.getOrderProducts().get(0).getSkuId();
//20200107提取虚拟商品券效验方法---》校验虚拟商品,如果正常则返回创建订单对象
......
......@@ -166,14 +166,12 @@ public class CheckOrder {
}
public AssortmentCustomerInfoVo checkOrderByMemberNew(String sessionId, String cardCode) {
public AssortmentCustomerInfoVo checkOrderByMemberNew(String sessionId) {
// 通过sessionId查询缓存中会员id
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
if (userLoginInfoDto == null || StringUtils.isEmpty(userLoginInfoDto.getMemberId())) {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
//校验会员svc卡信息
// checkCardCode(userLoginInfoDto.getPartnerId(), userLoginInfoDto.getMemberId(), cardCode);
return userLoginInfoDto;
}
......
......@@ -92,7 +92,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
// 标记订单类型-4 拼单
createOrderVo.setMarketingType(OrderMarketType.COLLAGE.getIndex());
BaseResponse orderCreateResponse = this.orderService.createOrderNew(createOrderVo);
BaseResponse orderCreateResponse = this.orderService.createOrder(createOrderVo);
// if (null != orderCreateResponse && null != orderCreateResponse.getResult()) {
// Object result = orderCreateResponse.getResult();
......
......@@ -27,7 +27,6 @@ import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.EncircleOrderService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.thirdparty.ShoppingCartClient;
import cn.freemud.service.thirdparty.StoreItemClient;
import cn.freemud.service.thirdparty.SvcAppClient;
......@@ -119,9 +118,11 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
@Autowired
private ActivityCalculationDiscountService calculationDiscountService;
@Autowired
private OrderAdapterService orderAdapterService;
private OrderAdapterServiceImpl orderAdapterService;
@Autowired
private CouponAdapter couponAdapter;
@Autowired
private PayServiceImpl payService;
private final Integer RESPONSE_SUCCESS_CODE = 100;
......@@ -601,7 +602,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
//此处使用订单修改金额后的金额数据显示支付
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.getPaySuccess()){
//如果是商品券支付0元,调用回调接口
......
......@@ -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.response.OrderRefundResponse;
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.collect.Lists;
import com.google.common.collect.Maps;
......@@ -126,8 +125,6 @@ public class MallOrderServiceImpl implements MallOrderService {
@Autowired
private RedisCache redisCache;
@Autowired
private StandardPaymentService standardPaymentService;
@Autowired
private DeliveryAdapter deliveryAdapter;
@Autowired
private DeliveryService deliveryService;
......@@ -141,10 +138,10 @@ public class MallOrderServiceImpl implements MallOrderService {
@Autowired
private AssortmentCustomerInfoManager customerInfoManager;
@Value("${program.backorders_change_order_status_consumer_queue}")
private String backOrdersChangeOrderStatusConsumerQueue;
@Value("${program.backorders_notify_activity_exchange}")
private String backOrdersNotifyActivityExchange;
// @Value("${program.backorders_change_order_status_consumer_queue}")
// private String backOrdersChangeOrderStatusConsumerQueue;
// @Value("${program.backorders_notify_activity_exchange}")
// private String backOrdersNotifyActivityExchange;
@Autowired
private CouponActivityService couponActivityService;
......@@ -154,6 +151,11 @@ public class MallOrderServiceImpl implements MallOrderService {
private PaymentQueueService paymentQueueService;
@Autowired
private OrderBusinessService orderBusinessService;
@Autowired
private OrderQueueService orderQueueService;
@Autowired
private PayServiceImpl payServiceImpl;
/**
* 创建订单
*/
......@@ -284,8 +286,8 @@ public class MallOrderServiceImpl implements MallOrderService {
baseCreateOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
createOrderRequest.setBaseCreateOrderRequest(baseCreateOrderRequest);
MqMessageRequest mqMessageRequest = new MqMessageRequest();
mqMessageRequest.setBackOrdersNotifyActivityExchange(backOrdersNotifyActivityExchange);
mqMessageRequest.setBackOrdersNotifyActivityQueue(backOrdersChangeOrderStatusConsumerQueue);
// mqMessageRequest.setBackOrdersNotifyActivityExchange(backOrdersNotifyActivityExchange);
// mqMessageRequest.setBackOrdersNotifyActivityQueue(backOrdersChangeOrderStatusConsumerQueue);
createOrderRequest.setMqMessageRequest(mqMessageRequest);
createOrderRequest.getBaseCreateOrderRequest().setUserName(userLoginInfoDto.getNickName());
createOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
......@@ -375,7 +377,7 @@ public class MallOrderServiceImpl implements MallOrderService {
try {
OrderPayResponse orderPayResponse;
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())) {
// 1.9.34 预支付失败需要把原因进行记录
orderPayResponse = new OrderPayResponse();
......@@ -494,13 +496,13 @@ public class MallOrderServiceImpl implements MallOrderService {
return gson.toJson(message);
}
orderRefund(orderBean, groupWorkJoinResponse.getMsg());
backOrdersNotifyActivity(orderBean, backOrdersChangeOrderStatusConsumerQueue, backOrdersNotifyActivityExchange);
orderQueueService.backOrdersStatusChange(orderBean.getOid(),orderBean.getStatus());
return gson.toJson(message);
}
if("2".equals(groupWorkJoinResponse.getResult().getGroupStatus())){
orderRefund(orderBean, "成团失败,退款流程");
backOrdersNotifyActivity(orderBean, backOrdersChangeOrderStatusConsumerQueue, backOrdersNotifyActivityExchange);
orderQueueService.backOrdersStatusChange(orderBean.getOid(),orderBean.getStatus());
return gson.toJson(message);
}
if(StringUtils.isEmpty(orderBean.getSpellGroupCode())){
......@@ -691,26 +693,26 @@ public class MallOrderServiceImpl implements MallOrderService {
}
private void backOrdersNotifyActivity(OrderBeanV1 orderBean, String backOrdersChangeOrderStatusConsumerQueue, String backOrdersNotifyActivityExchange) {
if (null == orderBean || backOrdersChangeOrderStatusConsumerQueue == null || backOrdersNotifyActivityExchange == null) {
return;
}
String oid = orderBean.getOid();
Integer status = orderBean.getStatus();
if (StringUtils.isEmpty(oid)) {
return;
}
OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto();
requestDto.setOid(oid);
requestDto.setOrderStatus(status);
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) {
ErrorLog.printErrorLog("backOrdersStatusChangeNotify_error","backOrdersChangeOrderStatusConsumerQueue",requestDto,e);
}
}
// private void backOrdersNotifyActivity(OrderBeanV1 orderBean, String backOrdersChangeOrderStatusConsumerQueue, String backOrdersNotifyActivityExchange) {
// if (null == orderBean || backOrdersChangeOrderStatusConsumerQueue == null || backOrdersNotifyActivityExchange == null) {
// return;
// }
// String oid = orderBean.getOid();
// Integer status = orderBean.getStatus();
// if (StringUtils.isEmpty(oid)) {
// return;
// }
// OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto();
// requestDto.setOid(oid);
// requestDto.setOrderStatus(status);
// 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) {
// ErrorLog.printErrorLog("backOrdersStatusChangeNotify_error","backOrdersChangeOrderStatusConsumerQueue",requestDto,e);
// }
// }
/**
* 商家未接单,取消订单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
......@@ -726,7 +728,7 @@ public class MallOrderServiceImpl implements MallOrderService {
if (orderBean.getAmount() != 0) {
//调用支付退款
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())) {
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;
import org.springframework.stereotype.Component;
@Component
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.
......@@ -97,6 +97,11 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService {
@Autowired
private MQService mqService;
@Autowired
private PayServiceImpl payServiceimpl;
@Value("${program.backorders_change_order_status_consumer_queue}")
private String backOrdersChangeOrderStatusConsumerQueue;
@Value("${program.backorders_notify_activity_exchange}")
......@@ -188,7 +193,7 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService {
}
/*创建支付*/
CreatePrepayRequestDto createPrepayRequestDto = spellGroupOrderAdapter.convertToCreatePrepayRequest(userLoginInfoDto, createOrderResponse.getData(), trackingNo,createSpellGroupOrderDto.getProvince());
return orderService.createPrepayOrder(createPrepayRequestDto);
return payServiceimpl.createPrepayOrder(createPrepayRequestDto);
}
/***
......
......@@ -24,7 +24,8 @@ import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.CheckOrderUniversal;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.impl.OrderAdapterServiceImpl;
import cn.freemud.service.impl.PayServiceImpl;
import cn.freemud.service.impl.PaymentQueueService;
import cn.freemud.service.thirdparty.ComPayClient;
import cn.freemud.service.thirdparty.SvcComPayClient;
......@@ -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.payment.request.UnifiedOrderRequest;
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 org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
......@@ -126,7 +126,7 @@ public abstract class UniversalOrderService {
@Autowired
protected CreateOrderAdapter createOrderAdapter;
@Autowired
private OrderAdapterService orderAdapterService;
private OrderAdapterServiceImpl orderAdapterService;
@Autowired
protected AssortmentOpenPlatformWxappManager openPlatformWxappManager;
@Autowired
......@@ -134,7 +134,7 @@ public abstract class UniversalOrderService {
@Autowired
private PaymentNewService paymentNewService;
@Autowired
protected StandardPaymentService standardPaymentService;
protected PayServiceImpl payService;
@Autowired
private PaymentQueueService paymentQueueService;
@Autowired
......@@ -1101,7 +1101,7 @@ public abstract class UniversalOrderService {
if (orderExtInfoDto != null && StringUtils.isNotBlank(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())) {
// 1.9.34 预支付失败需要把原因进行记录
orderPayResponse = new OrderPayResponse();
......
......@@ -374,7 +374,7 @@ public class SaasMallOrderService extends UniversalOrderService {
private OrderPayResponse getPreOrderPay(OrderBeanV1 orderBean, PaymentRequest paymentRequest, String trackingNo, Integer cardAmount) {
try {
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())) {
return null;
}
......
......@@ -13,6 +13,7 @@
package cn.freemud.service;
import cn.freemud.entities.dto.OrderPrintDto;
import cn.freemud.service.impl.OrderQueueService;
import cn.freemud.service.impl.OrderServiceImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
......@@ -36,6 +37,9 @@ public class MQTest {
@Autowired
private OrderServiceImpl orderService;
@Autowired
private OrderQueueService orderQueueService;
@Test
public void test(){
OrderPrintDto request =new OrderPrintDto();
......@@ -71,7 +75,7 @@ public class MQTest {
request.setProducts(products);
for (int i = 0;i<3;i++){
orderService.asynchronousPrint(request);
orderQueueService.asynchronousPrint(request);
}
}
}
......@@ -10,10 +10,6 @@ package com.freemud.application.sdk.api.ordercenter.enums;
*/
public enum BizTypeEnum {
//字段6代表卖券订单。
//蜜雪APP和平台通用。
//后续使用此字段需注意。名称APP_COUPON取得有些误导,由于有地方使用,暂时不更改
APP_COUPON(6, "卖券订单"),
ORDINARY(1, "普通订单"),
VIRTUAL(2, "虚拟订单"),
MEMBERS(3, "会员订单"),
......
/**
* 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;
}
}
......@@ -205,4 +205,7 @@ public class OrderExtInfoDto {
private String province;
private Long totalScore;
//抖音支付卖券手机号
private String saleCouponPhone;
}
package cn.freemud.service.impl;
import ch.qos.logback.classic.Level;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean;
import cn.freemud.entities.dto.GetProductInfoDto;
import cn.freemud.entities.dto.ProductInfosDto;
import cn.freemud.entities.vo.CartGoods;
......@@ -10,38 +10,29 @@ import cn.freemud.entities.vo.ShoppingCartGoodsBaseResponseVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.thirdparty.StoreItemClient;
import cn.freemud.service.thirdparty.StoreItemClient;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
//import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
import com.freemud.sdk.api.assortment.shoppingcart.constant.RedisKeyConstant;
import com.freemud.sdk.api.assortment.shoppingcart.constant.ShoppingCartConstant;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BizTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest;
import com.freemud.sdk.api.assortment.shoppingcart.request.GetProductInfoRequest;
import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
import com.freemud.sdk.api.assortment.shoppingcart.util.ShoppingSdkLogUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* All rights Reserved, Designed By www.freemud.cn
*
......
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