Commit be1a1d10 by 查志伟

独立生成取餐码接口

parent f3eb671c
...@@ -43,6 +43,15 @@ public class ExposureOrderController { ...@@ -43,6 +43,15 @@ public class ExposureOrderController {
} }
/** /**
* 生成取餐码
*/
@ApiAnnotation(logMessage = "生成取餐码")
@PostMapping("/genTakeCode")
public BaseResponse<String> genTakeCode(@Validated @LogParams @RequestBody GenTakeCodeRequest req) {
return ResponseUtil.success(exposureOrderService.genTakeCode(req.getPartnerId(), req.getStoreCode(), req.getOrderType(), req.getOrderClient()));
}
/**
* 创建订单,死信队列 * 创建订单,死信队列
*/ */
@ApiAnnotation(logMessage = "创建订单,死信队列") @ApiAnnotation(logMessage = "创建订单,死信队列")
...@@ -54,7 +63,7 @@ public class ExposureOrderController { ...@@ -54,7 +63,7 @@ public class ExposureOrderController {
} }
@ApiAnnotation(logMessage = "获取超时时间, 生成取餐码") @ApiAnnotation(logMessage = "获取超时时间, 生成取餐码 废弃")
@PostMapping("/getPaySuccessDataV2") @PostMapping("/getPaySuccessDataV2")
public BaseResponse<PaySuccessDataVo> getPaySuccessDataV2(@Validated @LogParams @RequestBody GetPaySuccessDataV2Request request) { public BaseResponse<PaySuccessDataVo> getPaySuccessDataV2(@Validated @LogParams @RequestBody GetPaySuccessDataV2Request request) {
return ResponseUtil.success(exposureOrderService.getPaySuccessDataV2(request)); return ResponseUtil.success(exposureOrderService.getPaySuccessDataV2(request));
......
package cn.freemud.entities.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @author Clover.z
* @version 1.0.0
* @since 1.0.0
*/
@Data
public class GenTakeCodeRequest {
@ApiModelProperty(value = "商户号", required = true)
@NotBlank
private String partnerId;
@ApiModelProperty(value = "门店号", required = true)
@NotBlank
private String storeCode;
@ApiModelProperty(value = "订单类型", required = true)
@NotNull
private Integer orderType;
@ApiModelProperty(value = "订单渠道", required = true)
@NotNull
private Integer orderClient;
}
...@@ -12,14 +12,4 @@ public class GetPaySuccessDataV2Request { ...@@ -12,14 +12,4 @@ public class GetPaySuccessDataV2Request {
private String partnerId; private String partnerId;
private String storeId; private String storeId;
/**
* 订单业务类型 1:普通订单 2:虚拟订单
*/
private Integer bizType;
/**
* 订单特殊类型
*/
private Integer marketingType;
} }
package cn.freemud.service; package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.GetMallPayConfigVo; import cn.freemud.entities.vo.GetMallPayConfigVo;
import cn.freemud.entities.vo.GetPayCodeVo; import cn.freemud.entities.vo.GetPayCodeVo;
import cn.freemud.entities.vo.GetPayConfigVo; import cn.freemud.entities.vo.GetPayConfigVo;
import cn.freemud.entities.vo.GetPaySuccessDataV2Request; import cn.freemud.entities.vo.GetPaySuccessDataV2Request;
import cn.freemud.entities.vo.order.PayConfigVo; import cn.freemud.entities.vo.order.PayConfigVo;
import cn.freemud.entities.vo.order.PaySuccessDataVo; import cn.freemud.entities.vo.order.PaySuccessDataVo;
import cn.freemud.entities.vo.order.QueryByKeysReq;
import cn.freemud.entities.vo.order.QueryByKeysResp;
import cn.freemud.enums.AggregationTypeEnum; import cn.freemud.enums.AggregationTypeEnum;
import cn.freemud.enums.OrderTackCodeFactory; import cn.freemud.enums.OrderTackCodeFactory;
import cn.freemud.enums.TakeCodeOrderType; import cn.freemud.enums.TakeCodeOrderType;
import cn.freemud.manager.OrderTackCodeManager; import cn.freemud.manager.OrderTackCodeManager;
import cn.freemud.service.business.impl.OrderBusinessServiceImpl;
import cn.freemud.service.impl.PayServiceImpl; import cn.freemud.service.impl.PayServiceImpl;
import cn.freemud.service.thirdparty.OrderServiceClient;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformIappWxappStore; import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformIappWxappStore;
import com.freemud.application.sdk.api.ordercenter.adapter.OrderCenterSdkAdapter;
import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import com.freemud.application.sdk.api.ordercenter.enums.MarketTypeEnum;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderTypeV1;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Objects;
/** /**
* @author Clover.z * @author Clover.z
* @version 1.0.0 * @version 1.0.0
...@@ -38,8 +28,7 @@ public class ExposureOrderService { ...@@ -38,8 +28,7 @@ public class ExposureOrderService {
private final PayServiceImpl payService; private final PayServiceImpl payService;
private final OrderTackCodeManager orderTackCodeManager; private final OrderTackCodeManager orderTackCodeManager;
private final OrderCenterSdkAdapter orderCenterSdkAdapter; private final OrderBusinessServiceImpl orderBusinessService;
private final OrderServiceClient orderServiceClient;
public PayConfigVo getPayConfig(GetPayConfigVo req) { public PayConfigVo getPayConfig(GetPayConfigVo req) {
PayConfigVo vo = new PayConfigVo(); PayConfigVo vo = new PayConfigVo();
...@@ -48,6 +37,23 @@ public class ExposureOrderService { ...@@ -48,6 +37,23 @@ public class ExposureOrderService {
return vo; return vo;
} }
/**
* 生成取餐码
* @param partnerId 商户号
* @param storeCode 门店号
* @param orderType 订单类型 {@link com.freemud.application.sdk.api.ordercenter.enums.OrderType}
* @param orderClient 订单渠道 {@link com.freemud.application.sdk.api.ordercenter.enums.OrderClientType}
* @return 取餐码
*/
public String genTakeCode(String partnerId, String storeCode, Integer orderType, Integer orderClient) {
Integer type = TakeCodeOrderType.getTakeCodeOrderType(orderType);
return orderTackCodeManager.generateTackCode(type,
partnerId,
storeCode,
null,
OrderTackCodeFactory.getByOrderClient(orderClient.toString()).getGenerateTackCodeFunc());
}
/** /**
* 获取超时时间, 生成取餐码 * 获取超时时间, 生成取餐码
...@@ -61,31 +67,9 @@ public class ExposureOrderService { ...@@ -61,31 +67,9 @@ public class ExposureOrderService {
reqVo.getStoreId(), reqVo.getStoreId(),
null, null,
OrderTackCodeFactory.getByOrderClient(reqVo.getOrderClient()).getGenerateTackCodeFunc()); OrderTackCodeFactory.getByOrderClient(reqVo.getOrderClient()).getGenerateTackCodeFunc());
int timeout = 0;
//查询待支付订单时效配置
BaseResponse<List<QueryByKeysResp>> listBaseResponse = orderServiceClient.queryByKeys(new QueryByKeysReq(reqVo.getPartnerId()));
if (listBaseResponse == null || !Objects.equals("100", listBaseResponse.getCode())) {
timeout = 30;
}
Integer v1Type = orderCenterSdkAdapter.getOldOrderType(reqVo.getOrderType());
for(QueryByKeysResp resp : listBaseResponse.getResult()){
// 外卖订单
if (Objects.equals(v1Type, OrderTypeV1.TAKE_OUT.getCode()) && Objects.equals("UNPAID_TIMEOUT_CLOSE_TIME_WMXF",resp.getConfigName())) {
timeout = Integer.parseInt(resp.getConfigValue());
}else if(Objects.equals(reqVo.getBizType(), BizTypeEnum.ORDINARY.getBizType()) && (Objects.equals(reqVo.getMarketingType(), MarketTypeEnum.ORDER.getIndex()) || Objects.equals(reqVo.getMarketingType(), MarketTypeEnum.CASHIER.getIndex()) )
&& Objects.equals("UNPAID_TIMEOUT_CLOSE_TIME_TSXF",resp.getConfigName())){
//堂食先付
timeout = Integer.parseInt(resp.getConfigValue());
}else if(Objects.equals(reqVo.getBizType(), BizTypeEnum.ORDINARY.getBizType()) && Objects.equals(reqVo.getMarketingType(), MarketTypeEnum.POST_ORDER.getIndex())
&& Objects.equals("UNPAID_TIMEOUT_CLOSE_TIME_TSHF",resp.getConfigName())){
//堂食后付
timeout = Integer.parseInt(resp.getConfigValue());
}
}
PaySuccessDataVo vo = new PaySuccessDataVo(); PaySuccessDataVo vo = new PaySuccessDataVo();
vo.setTakeCode(takeCode); vo.setTakeCode(takeCode);
vo.setTimeout(timeout); vo.setTimeout(orderBusinessService.getPaySuccessTimeout(reqVo.getPartnerId(), reqVo.getStoreId(), reqVo.getOrderType()));
return vo; return vo;
} }
......
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