Commit a437ba41 by ping.wu

创建订单代码结构优化

parent 6ba0895c
...@@ -3,9 +3,7 @@ package cn.freemud.controller; ...@@ -3,9 +3,7 @@ package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.monitorcenter.tools.HealthUtil;
import cn.freemud.service.MCCafeOrderService; import cn.freemud.service.MCCafeOrderService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.Orderservice; import cn.freemud.service.Orderservice;
import com.freemud.application.sdk.api.log.ApiAnnotation; import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams; import com.freemud.application.sdk.api.log.LogParams;
...@@ -27,8 +25,6 @@ public class McCafeController { ...@@ -27,8 +25,6 @@ public class McCafeController {
@Autowired @Autowired
private MCCafeOrderService mcCafeOrderService; private MCCafeOrderService mcCafeOrderService;
@Autowired
private OrderAdapterService orderAdapterService;
/** /**
* 麦咖啡创建订单 * 麦咖啡创建订单
...@@ -36,7 +32,7 @@ public class McCafeController { ...@@ -36,7 +32,7 @@ public class McCafeController {
@ApiAnnotation(logMessage = "createMCCafeOrder") @ApiAnnotation(logMessage = "createMCCafeOrder")
@PostMapping("/MCoffee/createMCCafeOrder") @PostMapping("/MCoffee/createMCCafeOrder")
public BaseResponse createOrderMCCafe(@Validated @LogParams @RequestBody CreateOrderVo createOrderVo) { public BaseResponse createOrderMCCafe(@Validated @LogParams @RequestBody CreateOrderVo createOrderVo) {
return orderAdapterService.createMCCafeOrder(createOrderVo); return mcCafeOrderService.createMCCafeOrder(createOrderVo);
} }
/** /**
......
...@@ -22,6 +22,7 @@ import cn.freemud.handler.OrderReportJobHandler; ...@@ -22,6 +22,7 @@ import cn.freemud.handler.OrderReportJobHandler;
import cn.freemud.monitorcenter.tools.HealthUtil; import cn.freemud.monitorcenter.tools.HealthUtil;
import cn.freemud.service.*; import cn.freemud.service.*;
import cn.freemud.service.impl.MallOrderServiceImpl; import cn.freemud.service.impl.MallOrderServiceImpl;
import cn.freemud.service.impl.OrderAdapterServiceImpl;
import cn.freemud.utils.AppLogUtil; import cn.freemud.utils.AppLogUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import cn.freemud.xxljob.OrderCountJobHandler; import cn.freemud.xxljob.OrderCountJobHandler;
...@@ -44,7 +45,7 @@ public class OrderController { ...@@ -44,7 +45,7 @@ public class OrderController {
@Autowired @Autowired
private Orderservice orderservice; private Orderservice orderservice;
@Autowired @Autowired
private OrderAdapterService orderAdapterService; private OrderAdapterServiceImpl orderAdapterService;
@Autowired @Autowired
private EncircleOrderService encircleOrderService; private EncircleOrderService encircleOrderService;
@Autowired @Autowired
......
...@@ -15,12 +15,12 @@ import java.util.Map; ...@@ -15,12 +15,12 @@ import java.util.Map;
/** /**
* app订单服务 * app订单服务
*/ */
public interface AppOrderService { public interface AppOrderService extends OrderFactoryService{
/** /**
* 创建订单 * 创建订单
*/ */
BaseResponse createOrderFlow(CreateOrderVo createOrderVo); // BaseResponse createOrderNew(CreateOrderVo createOrderVo);
/** /**
* 创建预支付 * 创建预支付
...@@ -30,7 +30,7 @@ public interface AppOrderService { ...@@ -30,7 +30,7 @@ public interface AppOrderService {
/** /**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付 * APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/ */
BaseResponse createOrder(AppCreateOrderVo createOrderVo, AssortmentCustomerInfoVo customerInfo); BaseResponse createOrderOld(AppCreateOrderVo createOrderVo, AssortmentCustomerInfoVo customerInfo);
String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, OrderBeanV1> orderBeans); String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, OrderBeanV1> orderBeans);
} }
...@@ -18,12 +18,12 @@ import cn.freemud.entities.vo.encircle.EncircleReserveBaseVo; ...@@ -18,12 +18,12 @@ import cn.freemud.entities.vo.encircle.EncircleReserveBaseVo;
* @Copyright: ${DATE.YARE} www.freemud.cn Inc. All rights reserved. * @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; ...@@ -24,12 +24,12 @@ import java.util.Map;
* All rights Reserved, Designed By www.freemud.cn * 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; //package cn.freemud.service;
//
import cn.freemud.base.entity.BaseResponse; //import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.AppCreateOrderVo; //import cn.freemud.entities.vo.AppCreateOrderVo;
import cn.freemud.entities.vo.CreateOrderVo; //import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo; //import cn.freemud.entities.vo.CreatePrepayVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage; //import cn.freemud.entities.vo.PaysuccessNoticeMessage;
//
import java.util.Map; //import java.util.Map;
//
/** ///**
* All rights Reserved, Designed By www.freemud.cn // * All rights Reserved, Designed By www.freemud.cn
* // *
* @version V1.6.0 // * @version V1.6.0
* @Title: OrderAdapterService // * @Title: OrderAdapterService
* @Description: 订单业务适配 // * @Description: 订单业务适配
* @author: qin.zhou // * @author: qin.zhou
* @date: 2019/9/818:20 // * @date: 2019/9/818:20
* @Copyright: ${DATE.YARE} www.freemud.cn Inc. All rights reserved. // * @Copyright: ${DATE.YARE} www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目 // * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/ // */
public interface OrderAdapterService { //public interface OrderAdapterService {
//
/** // /**
* 创建订单 // * 创建订单
* @param createOrderVo // * @param createOrderVo
* @return // * @return
*/ // */
BaseResponse createOrderNew(CreateOrderVo createOrderVo); // BaseResponse createOrderNew(CreateOrderVo createOrderVo);
//
/** // /**
* 创建订单 // * 创建订单
* @param param // * @param param
* @return // * @return
*/ // */
BaseResponse createOrderUniversal(Map<String, Object> param); // BaseResponse createOrderUniversal(Map<String, Object> param);
//
/** // /**
* 麦咖啡创建订单 // * 麦咖啡创建订单
* @param createOrderVo // * @param createOrderVo
* @return // * @return
*/ // */
BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo); // BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo);
//
/** // /**
* 创建预支付 // * 创建预支付
*/ // */
BaseResponse createPrepay(CreatePrepayVo createPrepayVo); // BaseResponse createPrepay(CreatePrepayVo createPrepayVo);
//
/** // /**
* APP下单,下单带商品信息,不经过购物车服务 // * APP下单,下单带商品信息,不经过购物车服务
*/ // */
@Deprecated // @Deprecated
BaseResponse appCreateOrder(AppCreateOrderVo createOrderVo); // BaseResponse appCreateOrder(AppCreateOrderVo createOrderVo);
//
/** // /**
* 支付回调处理 // * 支付回调处理
*/ // */
String paySuccessCallback(PaysuccessNoticeMessage message); // String paySuccessCallback(PaysuccessNoticeMessage message);
//
/** // /**
* 支付回调处理 // * 支付回调处理
*/ // */
String mcCafePaySuccessCallback(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; ...@@ -17,7 +17,7 @@ import java.util.Map;
* @author liming.guo * @author liming.guo
* @date 2018/05/08 * @date 2018/05/08
*/ */
public interface Orderservice { public interface Orderservice extends OrderFactoryService{
/** /**
* 创建订单之前校验前面排队的订单数 * 创建订单之前校验前面排队的订单数
...@@ -27,7 +27,7 @@ public interface Orderservice { ...@@ -27,7 +27,7 @@ public interface Orderservice {
/** /**
* 创建订单 * 创建订单
*/ */
BaseResponse createOrderNew(CreateOrderVo createOrderVo); // BaseResponse createOrderNew(CreateOrderVo createOrderVo);
BaseResponse scanFaceCreateOrder(CreateOrderVo createOrderVo); BaseResponse scanFaceCreateOrder(CreateOrderVo createOrderVo);
......
...@@ -8,12 +8,12 @@ import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1; ...@@ -8,12 +8,12 @@ import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import java.util.Map; import java.util.Map;
public interface PointsMallOrderService { public interface PointsMallOrderService extends OrderFactoryService{
/** /**
* 创建订单 * 创建订单
*/ */
BaseResponse createOrder(CreateOrderVo createOrderVo); // BaseResponse createOrderNew(CreateOrderVo createOrderVo);
/** /**
* 支付回调 * 支付回调
......
...@@ -110,7 +110,7 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -110,7 +110,7 @@ public class AppOrderServiceImpl implements AppOrderService {
* 不支持会员卡 * 不支持会员卡
*/ */
@Override @Override
public BaseResponse createOrderFlow(CreateOrderVo createOrderVo) { public BaseResponse createOrder(CreateOrderVo createOrderVo) {
String trackingNo = LogThreadLocal.getTrackingNo(); String trackingNo = LogThreadLocal.getTrackingNo();
// 查询用户信息 // 查询用户信息
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMember(createOrderVo, trackingNo); AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMember(createOrderVo, trackingNo);
...@@ -179,7 +179,7 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -179,7 +179,7 @@ public class AppOrderServiceImpl implements AppOrderService {
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付 * APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/ */
@Override @Override
public BaseResponse createOrder(AppCreateOrderVo createOrderReq, AssortmentCustomerInfoVo customerInfo) { public BaseResponse createOrderOld(AppCreateOrderVo createOrderReq, AssortmentCustomerInfoVo customerInfo) {
String trackingNo = LogThreadLocal.getTrackingNo(); String trackingNo = LogThreadLocal.getTrackingNo();
String partnerId = createOrderReq.getPartnerId(); String partnerId = createOrderReq.getPartnerId();
String shopId = createOrderReq.getShopId(); String shopId = createOrderReq.getShopId();
......
...@@ -92,7 +92,7 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -92,7 +92,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
// 标记订单类型-4 拼单 // 标记订单类型-4 拼单
createOrderVo.setMarketingType(OrderMarketType.COLLAGE.getIndex()); createOrderVo.setMarketingType(OrderMarketType.COLLAGE.getIndex());
BaseResponse orderCreateResponse = this.orderService.createOrderNew(createOrderVo); BaseResponse orderCreateResponse = this.orderService.createOrder(createOrderVo);
// if (null != orderCreateResponse && null != orderCreateResponse.getResult()) { // if (null != orderCreateResponse && null != orderCreateResponse.getResult()) {
// Object result = orderCreateResponse.getResult(); // Object result = orderCreateResponse.getResult();
......
...@@ -27,7 +27,6 @@ import cn.freemud.enums.*; ...@@ -27,7 +27,6 @@ import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.EncircleOrderService; import cn.freemud.service.EncircleOrderService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.thirdparty.ShoppingCartClient; import cn.freemud.service.thirdparty.ShoppingCartClient;
import cn.freemud.service.thirdparty.StoreItemClient; import cn.freemud.service.thirdparty.StoreItemClient;
import cn.freemud.service.thirdparty.SvcAppClient; import cn.freemud.service.thirdparty.SvcAppClient;
...@@ -119,7 +118,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService { ...@@ -119,7 +118,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
@Autowired @Autowired
private ActivityCalculationDiscountService calculationDiscountService; private ActivityCalculationDiscountService calculationDiscountService;
@Autowired @Autowired
private OrderAdapterService orderAdapterService; private OrderAdapterServiceImpl orderAdapterService;
@Autowired @Autowired
private CouponAdapter couponAdapter; private CouponAdapter couponAdapter;
@Autowired @Autowired
......
...@@ -56,7 +56,6 @@ import cn.freemud.management.service.OrderBaseService; ...@@ -56,7 +56,6 @@ import cn.freemud.management.service.OrderBaseService;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.BuriedPointService; import cn.freemud.service.BuriedPointService;
import cn.freemud.service.MCCafeOrderService; import cn.freemud.service.MCCafeOrderService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.mccafe.CouponClientService; import cn.freemud.service.mccafe.CouponClientService;
import cn.freemud.service.mccafe.MCCafeOrderCenterSdkService; import cn.freemud.service.mccafe.MCCafeOrderCenterSdkService;
import cn.freemud.service.mccafe.thirdparty.DeliveryFeiginMCCafeClient; import cn.freemud.service.mccafe.thirdparty.DeliveryFeiginMCCafeClient;
...@@ -113,6 +112,7 @@ import com.freemud.sdk.api.assortment.order.response.order.*; ...@@ -113,6 +112,7 @@ import com.freemud.sdk.api.assortment.order.response.order.*;
import cn.freemud.service.mccafe.CouponClientService; import cn.freemud.service.mccafe.CouponClientService;
import cn.freemud.service.mccafe.MCCafeOrderCenterSdkService; import cn.freemud.service.mccafe.MCCafeOrderCenterSdkService;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService; import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.freemud.sdk.api.assortment.order.util.LockUtils;
import com.freemud.sdk.api.assortment.order.vo.ProductGroupVo; 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;
...@@ -123,6 +123,7 @@ import com.google.gson.Gson; ...@@ -123,6 +123,7 @@ import com.google.gson.Gson;
import ma.glasnost.orika.MapperFacade; import ma.glasnost.orika.MapperFacade;
import ma.glasnost.orika.impl.DefaultMapperFactory; import ma.glasnost.orika.impl.DefaultMapperFactory;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
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.joda.time.DateTime; import org.joda.time.DateTime;
...@@ -160,6 +161,13 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -160,6 +161,13 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private String deliveryCallBackUrl; private String deliveryCallBackUrl;
@Value("${mcCafe.quickOrder.interval}") @Value("${mcCafe.quickOrder.interval}")
private String quickOrderInterval; private String quickOrderInterval;
@Value("${mccafe.partner.id}")
private String mcCafePartnerId;
/**
* 创单锁定的key
*/
@Value("${create.order.key.expire:5}")
private String createOrderKeyExpire;
@Autowired @Autowired
private DeliveryFeiginClient deliveryFeiginClient; private DeliveryFeiginClient deliveryFeiginClient;
...@@ -213,7 +221,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -213,7 +221,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired @Autowired
private AssortmentOpenPlatformWxappAuthorizerManager wxappAuthorizerManager; private AssortmentOpenPlatformWxappAuthorizerManager wxappAuthorizerManager;
@Autowired @Autowired
private OrderAdapterService orderAdapterService; private OrderAdapterServiceImpl orderAdapterService;
@Autowired @Autowired
private AssortmentOpenPlatformPartnerManager assortmentOpenPlatformPartnerManager; private AssortmentOpenPlatformPartnerManager assortmentOpenPlatformPartnerManager;
@Autowired @Autowired
...@@ -230,11 +238,46 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -230,11 +238,46 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private CustomerExtendClient customerExtendClient; private CustomerExtendClient customerExtendClient;
@Autowired @Autowired
private AssortmentOpenPlatformPartnerConfigManager openPlatformPartnerConfigManager; private AssortmentOpenPlatformPartnerConfigManager openPlatformPartnerConfigManager;
@Autowired
private AssortmentCustomerInfoManager assortmentCustomerInfoManager;
private static MapperFacade mapper = new DefaultMapperFactory.Builder().build().getMapperFacade(); private static MapperFacade mapper = new DefaultMapperFactory.Builder().build().getMapperFacade();
/**
* 下单检查key,防止重复下单
*/
private final String CREATE_ORDER_KEY = "create_order_key:";
private final String PAY_SUCCESS_KEY = "pay_success_key:";
@Override @Override
public BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo) { public BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo) {
AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createOrderVo.getSessionId());
if (assortmentCustomerInfoVo == null || StringUtils.isEmpty(assortmentCustomerInfoVo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
if (!mcCafePartnerId.equals(assortmentCustomerInfoVo.getPartnerId())) {
return ResponseUtil.error(ResponseResult.LOGIN_STORE_ERROR);
}
// 扩展字段中存储 sessionKey
createOrderVo.setSessionKey(assortmentCustomerInfoVo.getSessionKey());
// 添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
// 锁定秒数从apollo获取,如果apollo没有设置,默认5秒
String createOrderKey = CREATE_ORDER_KEY + assortmentCustomerInfoVo.getMemberId();
try {
Long expire = Long.valueOf(createOrderKeyExpire);
if (!LockUtils.lock(redisCache.getRedisTemplate(), createOrderKey, expire)) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_CREATE_ERROR);
}
} catch (Exception e) {
throw e;
} finally {
//LockUtils.unlock(redisCache.getRedisTemplate(),createOrderKey);
}
//原标准点餐程序逻辑处理
BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo);
if (ObjectUtils.notEqual(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return baseResponse;
}
String trackingNo = LogThreadLocal.getTrackingNo(); String trackingNo = LogThreadLocal.getTrackingNo();
// 查询用户信息,余额购物车校验 // 查询用户信息,余额购物车校验
AssortmentCustomerInfoVo userLoginInfoDto = checkMCCafeOrder.checkOrderByMember(createOrderVo, trackingNo); AssortmentCustomerInfoVo userLoginInfoDto = checkMCCafeOrder.checkOrderByMember(createOrderVo, trackingNo);
...@@ -305,7 +348,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -305,7 +348,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
message.setPlatformMchId(newMessage.getPlatformMchId()); message.setPlatformMchId(newMessage.getPlatformMchId());
message.setTerminalId(newMessage.getAppId()); message.setTerminalId(newMessage.getAppId());
message.setRuleId(newMessage.getRuleId()); message.setRuleId(newMessage.getRuleId());
String res = orderAdapterService.mcCafePaySuccessCallback(message); String res = this.mcCafePaySuccessCallback(message);
JSONObject jsonObject = JSONObject.parseObject(res); JSONObject jsonObject = JSONObject.parseObject(res);
if (jsonObject.containsKey("code")) { if (jsonObject.containsKey("code")) {
Integer code = (Integer) jsonObject.get("code"); Integer code = (Integer) jsonObject.get("code");
...@@ -319,6 +362,41 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -319,6 +362,41 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return newSendPayFaileMessage(); return newSendPayFaileMessage();
} }
// @Override
public String mcCafePaySuccessCallback(PaysuccessNoticeMessage message) {
//添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
String paySuccessKey = PAY_SUCCESS_KEY + message.getTrans_id();
if (!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)) {
return orderAdapter.paySuccessLockedMessage();
}
try {
ConfirmOrderDto confirmOrderDto = orderAdapter.convent2ConfirmOrderDto(message);
// 通过交易号从缓存中拿订单号,如果有数据则实际订单号为其value值
String orderId = redisCache.getValue(RedisUtil.getPaymentTransIdOrderKey(confirmOrderDto.getOrderId()));
if (StringUtils.isNotBlank(orderId)) {
confirmOrderDto.setOrderId(orderId);
}
Map<String, OrderBeanV1> orderBeans = orderService.getOrderBeanByOrderId(confirmOrderDto.getOrderId());
if (MapUtils.isEmpty(orderBeans)) {
return gson.toJson(message);
}
OrderBeanV1 orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return orderAdapter.sendPaySuccessNoticeMessage();
}
/**
* 默认点餐处理
*/
return this.paySuccessCallback(message, confirmOrderDto, orderBeans);
} catch (Exception e) {
throw e;
} finally {
//删除分布式锁
redisCache.delete("saas:lockAfter:" + paySuccessKey);
}
}
public QueryRelationOrderByIdResponseDto getQueryRelationOrderByIdResponseDto(String oid) { public QueryRelationOrderByIdResponseDto getQueryRelationOrderByIdResponseDto(String oid) {
QueryRelatedOrderByCodeRequest baseQueryOrderRequest = new QueryRelatedOrderByCodeRequest(); QueryRelatedOrderByCodeRequest baseQueryOrderRequest = new QueryRelatedOrderByCodeRequest();
baseQueryOrderRequest.setOrderCode(oid); baseQueryOrderRequest.setOrderCode(oid);
...@@ -576,7 +654,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -576,7 +654,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
message.setPlatform_coupon(0); message.setPlatform_coupon(0);
message.setMerchant_coupon(0); message.setMerchant_coupon(0);
//修改为麦咖啡支付成功回调 //修改为麦咖啡支付成功回调
orderAdapterService.mcCafePaySuccessCallback(message); this.mcCafePaySuccessCallback(message);
return ResponseUtil.success(createOrderResponse); return ResponseUtil.success(createOrderResponse);
} }
} }
...@@ -2496,4 +2574,23 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -2496,4 +2574,23 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return channelType; return channelType;
} }
/**
* 标准点餐参数校验
*
* @param createOrderVo
* @return
*/
private BaseResponse checkStandardParamInfo(CreateOrderVo createOrderVo) {
if (StringUtils.isEmpty(createOrderVo.getSessionId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_SESSION_ERROR);
}
if (StringUtils.isEmpty(createOrderVo.getShopId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_STORE_ERROR);
}
if (createOrderVo.getOrderType() == null) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_ORDERTYPE_ERROR);
}
return ResponseUtil.success();
}
} }
...@@ -63,7 +63,6 @@ import cn.freemud.manager.SpellGroupOrderDataManager; ...@@ -63,7 +63,6 @@ import cn.freemud.manager.SpellGroupOrderDataManager;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.BuriedPointService; import cn.freemud.service.BuriedPointService;
import cn.freemud.service.CouponActivityService; import cn.freemud.service.CouponActivityService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.Orderservice; import cn.freemud.service.Orderservice;
import cn.freemud.service.business.OrderBusinessService; import cn.freemud.service.business.OrderBusinessService;
import cn.freemud.service.order.OrderRelationFactory; import cn.freemud.service.order.OrderRelationFactory;
...@@ -271,7 +270,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -271,7 +270,7 @@ public class OrderServiceImpl implements Orderservice {
@Autowired @Autowired
private CacheOpenPlatformPartnerWxappConfigManager cacheOpenPlatformPartnerWxappConfigManager; private CacheOpenPlatformPartnerWxappConfigManager cacheOpenPlatformPartnerWxappConfigManager;
@Autowired @Autowired
private OrderAdapterService orderAdapterService; private OrderAdapterServiceImpl orderAdapterService;
// @Autowired // @Autowired
// private AssortmentOpenPlatformPartnerManager assortmentOpenPlatformPartnerManager; // private AssortmentOpenPlatformPartnerManager assortmentOpenPlatformPartnerManager;
@Autowired @Autowired
...@@ -380,7 +379,13 @@ public class OrderServiceImpl implements Orderservice { ...@@ -380,7 +379,13 @@ public class OrderServiceImpl implements Orderservice {
// 原来saas // 原来saas
@Override @Override
public BaseResponse createOrderNew(CreateOrderVo createOrderVo) { public BaseResponse createOrder(CreateOrderVo createOrderVo) {
//原标准点餐程序逻辑处理
BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo);
if (ObjectUtils.notEqual(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return baseResponse;
}
String trackingNo = LogThreadLocal.getTrackingNo(); String trackingNo = LogThreadLocal.getTrackingNo();
// 查询用户信息、校验svc卡,余额购物车校验 // 查询用户信息、校验svc卡,余额购物车校验
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMember(createOrderVo, trackingNo); AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMember(createOrderVo, trackingNo);
...@@ -4374,5 +4379,23 @@ public class OrderServiceImpl implements Orderservice { ...@@ -4374,5 +4379,23 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(responseVo); return ResponseUtil.success(responseVo);
} }
/**
* 标准点餐参数校验
*
* @param createOrderVo
* @return
*/
private BaseResponse checkStandardParamInfo(CreateOrderVo createOrderVo) {
if (StringUtils.isEmpty(createOrderVo.getSessionId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_SESSION_ERROR);
}
if (StringUtils.isEmpty(createOrderVo.getShopId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_STORE_ERROR);
}
if (createOrderVo.getOrderType() == null) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_ORDERTYPE_ERROR);
}
return ResponseUtil.success();
}
} }
...@@ -24,7 +24,6 @@ import cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request; ...@@ -24,7 +24,6 @@ import cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request;
import cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse; import cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse;
import cn.freemud.management.thirdparty.MulitiPaymentClient; import cn.freemud.management.thirdparty.MulitiPaymentClient;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.thirdparty.ComPayClient; import cn.freemud.service.thirdparty.ComPayClient;
import cn.freemud.service.thirdparty.PaymentNewClient; import cn.freemud.service.thirdparty.PaymentNewClient;
import cn.freemud.service.thirdparty.SvcAppClient; import cn.freemud.service.thirdparty.SvcAppClient;
...@@ -122,7 +121,7 @@ public class PayServiceImpl { ...@@ -122,7 +121,7 @@ public class PayServiceImpl {
@Autowired @Autowired
private OrderAdapterService orderAdapterService; private OrderAdapterServiceImpl orderAdapterService;
@Autowired @Autowired
private OrderAdapter orderAdapter; private OrderAdapter orderAdapter;
@Autowired @Autowired
......
...@@ -24,7 +24,7 @@ import cn.freemud.enums.*; ...@@ -24,7 +24,7 @@ import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException; 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.impl.OrderAdapterServiceImpl;
import cn.freemud.service.impl.PayServiceImpl; 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;
...@@ -126,7 +126,7 @@ public abstract class UniversalOrderService { ...@@ -126,7 +126,7 @@ public abstract class UniversalOrderService {
@Autowired @Autowired
protected CreateOrderAdapter createOrderAdapter; protected CreateOrderAdapter createOrderAdapter;
@Autowired @Autowired
private OrderAdapterService orderAdapterService; private OrderAdapterServiceImpl orderAdapterService;
@Autowired @Autowired
protected AssortmentOpenPlatformWxappManager openPlatformWxappManager; protected AssortmentOpenPlatformWxappManager openPlatformWxappManager;
@Autowired @Autowired
......
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