Commit f784b8f1 by dingkai

Merge branch 'feature/1.9.19-蜜雪中台订单创建-dingkai'

# Conflicts:
#	order-application-service/pom.xml
parents 3f671fe9 00f06ac3
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.2.9.RELEASE</version> <version>1.3.0.RELEASE</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
...@@ -24,3 +24,4 @@ ...@@ -24,3 +24,4 @@
| 1.2.7.RELEASE | 判断优化 | 丁凯 | 2020-04-03 | | 1.2.7.RELEASE | 判断优化 | 丁凯 | 2020-04-03 |
| 1.2.8.RELEASE | 增加延时队列 | 海波 | 2020-04-13 | | 1.2.8.RELEASE | 增加延时队列 | 海波 | 2020-04-13 |
| 1.2.9.RELEASE | oms接单 | 侯书虎 | 2020-04-13 | | 1.2.9.RELEASE | oms接单 | 侯书虎 | 2020-04-13 |
| 1.3.0.RELEASE | app订单 | 丁凯 | 2020-04-20 |
\ No newline at end of file
...@@ -1244,6 +1244,9 @@ public class OrderSdkAdapter { ...@@ -1244,6 +1244,9 @@ public class OrderSdkAdapter {
case 23: case 23:
name = "saasmall"; name = "saasmall";
break; break;
case 12:
name = "app";
break;
default: default:
name = orderClientType.toString(); name = orderClientType.toString();
break; break;
...@@ -1285,6 +1288,9 @@ public class OrderSdkAdapter { ...@@ -1285,6 +1288,9 @@ public class OrderSdkAdapter {
case 23: case 23:
name = "saas 商城"; name = "saas 商城";
break; break;
case 12:
name = "APP";
break;
default: default:
break; break;
} }
......
...@@ -81,4 +81,11 @@ public class OrderExtInfoDTO { ...@@ -81,4 +81,11 @@ public class OrderExtInfoDTO {
* 微信上报异常补推使用 * 微信上报异常补推使用
*/ */
private String sessionKey; private String sessionKey;
/**
* 来源appId
*/
private String fromAppId;
private String fmId;
} }
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.2.9.RELEASE</version> <version>1.3.0.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -2336,6 +2336,25 @@ public class OrderAdapter { ...@@ -2336,6 +2336,25 @@ public class OrderAdapter {
return createOrderResponseVo; return createOrderResponseVo;
} }
public CreateOrderResponseVo convent2CreateFatherSonOrderNoPayResponseVo(QueryOrdersResponse.DataBean.OrderBean orderBean) {
CreateOrderResponseVo createOrderResponseVo = new CreateOrderResponseVo();
createOrderResponseVo.setOid(orderBean.getOid());
createOrderResponseVo.setWxappId("");
createOrderResponseVo.setFmId("");
createOrderResponseVo.setTimestamp("");
createOrderResponseVo.setNonceStr("");
createOrderResponseVo.setPackageX("");
createOrderResponseVo.setSignType("");
createOrderResponseVo.setSign("");
//微信新版订阅消息判断新加字段
if(orderBean != null && orderBean.getType() != null){
createOrderResponseVo.setOrderType(getNewOrderType(orderBean.getType(), orderBean.getGmtExpect()));
}
createOrderResponseVo.setOrderStr("");
createOrderResponseVo.setPaySuccess(false);
return createOrderResponseVo;
}
public OrderPayResponse convent2OrderPayResponse(UnifiedOrderResponse unifiedOrderResponse) { public OrderPayResponse convent2OrderPayResponse(UnifiedOrderResponse unifiedOrderResponse) {
OrderPayResponse responseDto = new OrderPayResponse(); OrderPayResponse responseDto = new OrderPayResponse();
responseDto.setFmId(unifiedOrderResponse.getFmId()); responseDto.setFmId(unifiedOrderResponse.getFmId());
...@@ -2718,4 +2737,30 @@ public class OrderAdapter { ...@@ -2718,4 +2737,30 @@ public class OrderAdapter {
return orderTask; return orderTask;
} }
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(String partnerId, String wxAppId, String openId,
String faceCode, String cardCode, QueryOrdersResponse.DataBean.OrderBean fatherOrderBean,
QueryOrdersResponse.DataBean.OrderBean productOrderBean, long totalAmount, int cardAmount, OrderExtInfoDTO orderExtInfoDTO){
CreatePrepayRequestDto requestDto = new CreatePrepayRequestDto();
requestDto.setPartnerId(partnerId);
requestDto.setWxAppId(wxAppId);
requestDto.setOpenId(openId);
requestDto.setFaceCode(faceCode);
requestDto.setCardCode(cardCode);
requestDto.setFatherOrderBean(fatherOrderBean);
requestDto.setProductOrderBean(productOrderBean);
requestDto.setTotalAmount(totalAmount);
requestDto.setCardAmount(cardAmount);
requestDto.setOrderExtInfoDTO(orderExtInfoDTO);
return requestDto;
}
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(AssortmentCustomerInfoVo userLoginInfoDto,CreateOrderVo createOrderVo,
CreateOrderOperateDto createOrderOperateDto, OrderExtInfoDTO orderExtInfoDTO){
return this.convertToCreatePrepayRequestDto(createOrderVo.getPartnerId(), userLoginInfoDto.getWxAppId(), userLoginInfoDto.getOpenId(),
createOrderVo.getFaceCode(), createOrderVo.getCardCode(), createOrderOperateDto.getFatherOrderBean(), createOrderOperateDto.getProductOrderBean(),
createOrderOperateDto.getTotalAmount() == null ? 0 : createOrderOperateDto.getTotalAmount(),
createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount(), orderExtInfoDTO);
}
} }
...@@ -25,6 +25,7 @@ import cn.freemud.utils.ResponseUtil; ...@@ -25,6 +25,7 @@ import cn.freemud.utils.ResponseUtil;
import cn.freemud.service.impl.MallOrderServiceImpl; import cn.freemud.service.impl.MallOrderServiceImpl;
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;
import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -218,4 +219,13 @@ public class OrderController { ...@@ -218,4 +219,13 @@ public class OrderController {
return mallOrderService.orderAffirm(request); return mallOrderService.orderAffirm(request);
} }
/**
* 创建预支付
*/
@ApiAnnotation(logMessage = "createPrepay")
@PostMapping("/createPrepay")
public BaseResponse createPrepay(@Validated @LogParams @RequestBody CreatePrepayVo request) {
return orderAdapterService.createPrepay(request);
}
} }
package cn.freemud.entities.dto.order;
import com.freemud.sdk.api.assortment.order.entities.OrderExtInfoDTO;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import lombok.Data;
@Data
public class CreatePrepayRequestDto {
private String partnerId;
private String wxAppId;
private String openId;
private String faceCode;
private String cardCode;
private QueryOrdersResponse.DataBean.OrderBean fatherOrderBean;
private QueryOrdersResponse.DataBean.OrderBean productOrderBean;
private long totalAmount;
private int cardAmount;
private OrderExtInfoDTO orderExtInfoDTO;
}
...@@ -12,47 +12,54 @@ ...@@ -12,47 +12,54 @@
*/ */
package cn.freemud.entities.vo; package cn.freemud.entities.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
public class CreateOrderResponseVo { public class CreateOrderResponseVo {
@ApiModelProperty(value = "订单id")
private String oid; private String oid;
@ApiModelProperty(value = "微信appid")
private String wxappId; private String wxappId;
@ApiModelProperty(value = "时间戳")
private String timestamp; private String timestamp;
@ApiModelProperty(value = "随机字符串")
private String nonceStr; private String nonceStr;
@ApiModelProperty(value = "订单详情扩展字符串")
private String packageX; private String packageX;
@ApiModelProperty(value = "签名方式")
private String signType; private String signType;
@ApiModelProperty(value = "签名")
private String sign; private String sign;
/** /**
* 是否支持成功 支付金额为0,现为商品券时返回true,其余为false * 是否支持成功 支付金额为0,现为商品券时返回true,其余为false
*/ */
@ApiModelProperty(value = "是否支持成功")
private Boolean paySuccess; private Boolean paySuccess;
/** /**
* 非码支付商户号 用户数据上报 * 非码支付商户号 用户数据上报
*/ */
@ApiModelProperty(value = "非码支付商户号")
private String fmId; private String fmId;
/** /**
* 下单版本号 * 下单版本号
*/ */
@ApiModelProperty(value = "下单版本号")
private Integer orderUpdateVer; private Integer orderUpdateVer;
/** /**
* 订单类型 * 订单类型
*/ */
@ApiModelProperty(value = "订单类型")
private Integer orderType; private Integer orderType;
/** /**
* 支付宝参数 唤起支付宝支付使用 * 支付宝参数 唤起支付宝支付使用
*/ */
@ApiModelProperty(value = "支付宝参数 唤起支付宝支付使用")
private String orderStr; private String orderStr;
} }
package cn.freemud.entities.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
@Data
public class CreatePrepayVo {
/**
* 商户id
*/
@NotEmpty
@ApiModelProperty(value = "商户id")
private String partnerId;
/**
* 用户sessionId
*/
@NotEmpty
@ApiModelProperty(value = "用户sessionId")
private String sessionId;
/**
* 订单号
*/
@NotEmpty
@ApiModelProperty(value = "订单号")
private String orderCode;
/**
* 门店id
*/
@NotEmpty
@ApiModelProperty(value = "门店id")
private String storeId;
/**
* 支付appid
*/
@NotEmpty
@ApiModelProperty(value = "支付appId")
private String payAppId;
@ApiModelProperty(value = "微信openId")
private String openId;
}
...@@ -136,6 +136,10 @@ public enum ResponseResult { ...@@ -136,6 +136,10 @@ public enum ResponseResult {
ORDER_HAS_CANCELED("45053", "订单已经被取消"), ORDER_HAS_CANCELED("45053", "订单已经被取消"),
ORDER_MALL_NOT_MATCH("45054", "非商城订单,无法操作"), ORDER_MALL_NOT_MATCH("45054", "非商城订单,无法操作"),
AFFIRM_ORDER_FAIL("45055", "确认订单失败"), AFFIRM_ORDER_FAIL("45055", "确认订单失败"),
ORDER_EMPTY_CREATE_PREPAY_FAIL("45056", "订单为空,创建预订单失败"),
ORDER_HAS_PAID("45057", "订单已支付或已完成"),
ORDER_PRE_PAYMENT_CLOSE_FAILED("45058","关闭预支付订单失败"),
ORDER_OWNER_ERROR("45059","订单归属错误"),
/** /**
* 支付 * 支付
......
package cn.freemud.enums;
import lombok.Getter;
@Getter
public enum UserLoginChannelEnum {
WEIXIN("1", "微信"),
ALIPAY("2", "支付宝"),
APP("3", "APP");
private String code;
private String desc;
UserLoginChannelEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
}
package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
/**
* app订单服务
*/
public interface AppOrderService {
/**
* 创建订单
*/
BaseResponse createOrderFlow(CreateOrderVo createOrderVo);
/**
* 创建预支付
*/
BaseResponse createPrepay(CreatePrepayVo createPrepayVo);
}
...@@ -2,6 +2,7 @@ package cn.freemud.service; ...@@ -2,6 +2,7 @@ package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
/** /**
* All rights Reserved, Designed By www.freemud.cn * All rights Reserved, Designed By www.freemud.cn
...@@ -23,4 +24,9 @@ public interface OrderAdapterService { ...@@ -23,4 +24,9 @@ public interface OrderAdapterService {
*/ */
BaseResponse createOrderNew(CreateOrderVo createOrderVo); BaseResponse createOrderNew(CreateOrderVo createOrderVo);
/**
* 创建预支付
*/
BaseResponse createPrepay(CreatePrepayVo createPrepayVo);
} }
...@@ -116,7 +116,6 @@ public class CheckOrder { ...@@ -116,7 +116,6 @@ public class CheckOrder {
return userLoginInfoDto; return userLoginInfoDto;
} }
/** /**
* 查询门店信息 * 查询门店信息
*/ */
......
...@@ -2,14 +2,13 @@ package cn.freemud.service.impl; ...@@ -2,14 +2,13 @@ package cn.freemud.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo; import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.enums.OrderChannelType; import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.UserLoginChannelEnum;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.EncircleOrderService; import cn.freemud.service.*;
import cn.freemud.service.MallOrderService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.Orderservice;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType; import com.freemud.api.assortment.datamanager.enums.IappIdType;
...@@ -41,6 +40,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -41,6 +40,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
private AssortmentCustomerInfoManager assortmentCustomerInfoManager; private AssortmentCustomerInfoManager assortmentCustomerInfoManager;
@Autowired @Autowired
private MallOrderService mallOrderService; private MallOrderService mallOrderService;
@Autowired
private AppOrderService appOrderService;
@Override @Override
public BaseResponse createOrderNew(CreateOrderVo createOrderVo) { public BaseResponse createOrderNew(CreateOrderVo createOrderVo) {
...@@ -81,6 +82,13 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -81,6 +82,13 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
return mallOrderService.createOrder(createOrderVo); return mallOrderService.createOrder(createOrderVo);
} }
/**
* APP下单
*/
if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
return appOrderService.createOrderFlow(createOrderVo);
}
//原标准点餐程序逻辑处理 //原标准点餐程序逻辑处理
BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo); BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo);
if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){ if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){
...@@ -89,6 +97,18 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -89,6 +97,18 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
return orderservice.createOrderNew(createOrderVo); return orderservice.createOrderNew(createOrderVo);
} }
@Override
public BaseResponse createPrepay(CreatePrepayVo createPrepayVo) {
AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createPrepayVo.getSessionId());
if (assortmentCustomerInfoVo == null || StringUtils.isEmpty(assortmentCustomerInfoVo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
return appOrderService.createPrepay(createPrepayVo);
}
throw new UnsupportedOperationException("暂不支持渠道:"+assortmentCustomerInfoVo.getChannel());
}
/** /**
* 标准点餐参数校验 * 标准点餐参数校验
* @param createOrderVo * @param createOrderVo
......
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