Commit d9630206 by shuhu.hou@freemud.cn

Merge branch 'feature/20200325_oms接单' into develop

# Conflicts:
#	.gitignore
parents 68501ef2 93644fad
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: OrderCenterProperties
* @Package com.freemud.application.sdk.api.ordercenter.config
* @Description:
* @author: ping.wu
* @date: 2019/4/1 19:18
* @version V1.0
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package com.freemud.application.sdk.api.ordercenter.config;
import com.freemud.application.sdk.api.config.CenterConfigProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "order.manager")
public class OrderManagerCenterProperties extends CenterConfigProperties {
}
......@@ -56,5 +56,19 @@ public class OrderRestTemplateConfig {
}
return RestTemplateUtils.getRestTemplateByType(map);
}
@Bean(name = "orderManagerRestTemplate")
public RestTemplate orderDownLoadRestTemplate(@Autowired OrderManagerCenterProperties orderCenterProperties) {
Map<String, Integer> map = new HashMap<>(16);
if (orderCenterProperties.getRetryTimes() != null) {
map.put(RestTemplateConstant.RETRY_TIMES, orderCenterProperties.getRetryTimes());
}
if (orderCenterProperties.getConnectTimeOut() != null) {
map.put(RestTemplateConstant.CONNECT_TIMEOUT, orderCenterProperties.getConnectTimeOut());
}
if (orderCenterProperties.getReadTimeOut() != null) {
map.put(RestTemplateConstant.READ_TIMEOUT, orderCenterProperties.getReadTimeOut());
}
return RestTemplateUtils.getRestTemplateByType(map);
}
}
......@@ -156,4 +156,8 @@ public class InterfaceAddressConstant {
* 根据用户ID 查询30分钟内未支付并且有券的 订单
*/
public static final String QUERY_ORDER_WITH_COUPON="order/v2/queryOrderWithCoupon";
/**
* 订单管理
*/
public static final String STATUS_OPERATE="order/statusOperate";
}
package com.freemud.application.sdk.api.ordercenter.enums;
import org.apache.commons.lang.StringUtils;
public enum OperateClient {
POS("pos","pos"),
ASSISTANT_SERVICE("assistant_service","小助手"),
OPEN_PLATFORM("open_platform","开放平台"),
TASK_CENTER("task_center","自动任务");
/**
* 操作类型
*/
private String opType;
/**
* 操作名称
*/
private String opName;
OperateClient(String opType, String opName) {
this.opType = opType;
this.opName = opName;
}
public String getOpType() {
return opType;
}
public void setOpType(String opType) {
this.opType = opType;
}
public String getOpName() {
return opName;
}
public void setOpName(String opName) {
this.opName = opName;
}
public static OperateClient getByOpType(String opType){
if (StringUtils.isEmpty(opType)) {
return null;
}
for (OperateClient operateType : values()) {
if (operateType.getOpType().equals(opType)) {
return operateType;
}
}
return null;
}
}
package com.freemud.application.sdk.api.ordercenter.enums;
import org.apache.commons.lang.StringUtils;
public enum OperateType {
ORDER_CONFIRM("orderConfirm","接单"),
ORDER_REJECT("orderReject","拒单"),
ORDER_DONE("orderDone","制作完成"),
ORDER_SEND("orderSend","送出"),
ORDER_AFFIRM("orderAffirm","完成"),
ORDER_AGREE_REFUND("orderAgreeRefund","同意退款"),
ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款");
/**
* 操作类型
*/
private String opType;
/**
* 操作名称
*/
private String opName;
OperateType(String opType, String opName) {
this.opType = opType;
this.opName = opName;
}
public String getOpType() {
return opType;
}
public void setOpType(String opType) {
this.opType = opType;
}
public String getOpName() {
return opName;
}
public void setOpName(String opName) {
this.opName = opName;
}
public static OperateType getByOpType(String opType){
if (StringUtils.isEmpty(opType)) {
return null;
}
for (OperateType operateType : values()) {
if (operateType.getOpType().equals(opType)) {
return operateType;
}
}
return null;
}
}
package com.freemud.application.sdk.api.ordercenter.request;
import com.freemud.application.sdk.api.ordercenter.enums.OperateClient;
import com.freemud.application.sdk.api.ordercenter.enums.OperateType;
import lombok.Data;
@Data
public class OrderManagerRequest {
/**
* 商户号
*/
private String partnerId;
/**
* 门店号
*/
private String storeId;
/**
* 订单号
*/
private String orderId;
/**
* 退款原因
*/
private String reason;
/**
* 订单操作类型
*/
private String operateType;
/**
* 操作人
* pos
* 开放平台
* 小助手
* 系统自动履单
*/
private String operator;
public OrderManagerRequest(){
}
public OrderManagerRequest(String partnerId, String storeId, String orderId, OperateClient operateClient, OperateType operateType){
this.partnerId=partnerId;
this.storeId=storeId;
this.orderId=orderId;
this.operateType=operateType.getOpType();
this.operator=operateClient.getOpName();
}
public OrderManagerRequest(String partnerId, String storeId, String orderId, OperateClient operateClient, OperateType operateType, String reason){
this.partnerId=partnerId;
this.storeId=storeId;
this.orderId=orderId;
this.operateType=operateType.getOpType();
this.operator=operateClient.getOpName();
this.reason=reason;
}
}
package com.freemud.application.sdk.api.ordercenter.response;
import lombok.Data;
@Data
public class OrderConfirmResponse {
/**
* 预订单打印时间{1:提醒时打印;2:接单时打印} 默认为1
*/
private String orderPrintConfig;
/**
* 订单预约时间
*/
private Long gmtExpect;
public OrderConfirmResponse(){
}
public OrderConfirmResponse(String orderPrintConfig, Long gmtExpect){
this.orderPrintConfig=orderPrintConfig;
this.gmtExpect=gmtExpect;
}
}
package com.freemud.application.sdk.api.ordercenter.service;
import com.freemud.application.sdk.api.base.BaseRequest;
import com.freemud.application.sdk.api.ordercenter.config.OrderManagerCenterProperties;
import com.freemud.application.sdk.api.ordercenter.constant.InterfaceAddressConstant;
import com.freemud.application.sdk.api.ordercenter.enums.ResponseResultEnum;
import com.freemud.application.sdk.api.ordercenter.request.OrderManagerRequest;
import com.freemud.application.sdk.api.ordercenter.response.BaseResponse;
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.OrderConfirmResponse;
import com.freemud.application.sdk.api.ordercenter.util.ResponseUtil;
import com.freemud.application.sdk.api.util.RequestThirdPartyUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.Objects;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderManagerSdkService
* @Package com.freemud.application.sdk.api.ordercenter.service
* @Description:
* @author: shuhu.hou
* @date: 2020/3/27 16:18
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service
@Slf4j
public class OrderManagerSdkService {
@Autowired
@Qualifier("orderManagerRestTemplate")
private RestTemplate restTemplate;
@Autowired
private OrderManagerCenterProperties orderManagerCenterProperties;
public static final String SUCCESS_RESPONSE_CODE = "100";
/**
* 根据综合条件查询订单
*/
public BaseResponse<OrderConfirmResponse> statusOperate(OrderManagerRequest request) {
OrderBaseResp<OrderConfirmResponse> responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, InterfaceAddressConstant.STATUS_OPERATE,
createBaseRequest(request, ""), new ParameterizedTypeReference<OrderBaseResp<OrderConfirmResponse>>() {
});
return responseHandle(responseDTO);
}
private <T> BaseResponse<T> responseHandle(OrderBaseResp<T> responseDTO) {
if (responseDTO == null) {
return ResponseUtil.error(ResponseResultEnum.SYSTEM_BUSINESS_ERROR.getCode(), ResponseResultEnum.SYSTEM_BUSINESS_ERROR.getMessage());
}
if (!Objects.equals(SUCCESS_RESPONSE_CODE, responseDTO.getCode())) {
return ResponseUtil.error(ResponseResultEnum.SYSTEM_BUSINESS_ERROR.getCode(), responseDTO.getMessage());
}
BaseResponse<T> result = new BaseResponse<>();
result.setCode(responseDTO.getCode());
result.setMessage(responseDTO.getMessage());
result.setResult(responseDTO.getResult());
result.setVer(responseDTO.getVer());
return result;
}
private <T> BaseRequest<T> createBaseRequest(T req, String trackingNo) {
BaseRequest<T> request = new BaseRequest<>();
request.setRequestBody(req);
request.setAppName(orderManagerCenterProperties.getAppName());
request.setBaseUrl(orderManagerCenterProperties.getBaseUrl());
request.setTrackingNo(trackingNo);
return request;
}
}
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