Commit f784b8f1 by dingkai

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

# Conflicts:
#	order-application-service/pom.xml
parents 3f671fe9 00f06ac3
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.2.9.RELEASE</version>
<version>1.3.0.RELEASE</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......
......@@ -24,3 +24,4 @@
| 1.2.7.RELEASE | 判断优化 | 丁凯 | 2020-04-03 |
| 1.2.8.RELEASE | 增加延时队列 | 海波 | 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 {
case 23:
name = "saasmall";
break;
case 12:
name = "app";
break;
default:
name = orderClientType.toString();
break;
......@@ -1285,6 +1288,9 @@ public class OrderSdkAdapter {
case 23:
name = "saas 商城";
break;
case 12:
name = "APP";
break;
default:
break;
}
......
......@@ -81,4 +81,11 @@ public class OrderExtInfoDTO {
* 微信上报异常补推使用
*/
private String sessionKey;
/**
* 来源appId
*/
private String fromAppId;
private String fmId;
}
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.2.9.RELEASE</version>
<version>1.3.0.RELEASE</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -2336,6 +2336,25 @@ public class OrderAdapter {
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) {
OrderPayResponse responseDto = new OrderPayResponse();
responseDto.setFmId(unifiedOrderResponse.getFmId());
......@@ -2718,4 +2737,30 @@ public class OrderAdapter {
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;
import cn.freemud.service.impl.MallOrderServiceImpl;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -218,4 +219,13 @@ public class OrderController {
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 @@
*/
package cn.freemud.entities.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CreateOrderResponseVo {
@ApiModelProperty(value = "订单id")
private String oid;
@ApiModelProperty(value = "微信appid")
private String wxappId;
@ApiModelProperty(value = "时间戳")
private String timestamp;
@ApiModelProperty(value = "随机字符串")
private String nonceStr;
@ApiModelProperty(value = "订单详情扩展字符串")
private String packageX;
@ApiModelProperty(value = "签名方式")
private String signType;
@ApiModelProperty(value = "签名")
private String sign;
/**
* 是否支持成功 支付金额为0,现为商品券时返回true,其余为false
*/
@ApiModelProperty(value = "是否支持成功")
private Boolean paySuccess;
/**
* 非码支付商户号 用户数据上报
*/
@ApiModelProperty(value = "非码支付商户号")
private String fmId;
/**
* 下单版本号
*/
@ApiModelProperty(value = "下单版本号")
private Integer orderUpdateVer;
/**
* 订单类型
*/
@ApiModelProperty(value = "订单类型")
private Integer orderType;
/**
* 支付宝参数 唤起支付宝支付使用
*/
@ApiModelProperty(value = "支付宝参数 唤起支付宝支付使用")
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 {
ORDER_HAS_CANCELED("45053", "订单已经被取消"),
ORDER_MALL_NOT_MATCH("45054", "非商城订单,无法操作"),
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;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
/**
* All rights Reserved, Designed By www.freemud.cn
......@@ -23,4 +24,9 @@ public interface OrderAdapterService {
*/
BaseResponse createOrderNew(CreateOrderVo createOrderVo);
/**
* 创建预支付
*/
BaseResponse createPrepay(CreatePrepayVo createPrepayVo);
}
......@@ -116,7 +116,6 @@ public class CheckOrder {
return userLoginInfoDto;
}
/**
* 查询门店信息
*/
......
......@@ -2,14 +2,13 @@ package cn.freemud.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.UserLoginChannelEnum;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.EncircleOrderService;
import cn.freemud.service.MallOrderService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.Orderservice;
import cn.freemud.service.*;
import cn.freemud.utils.ResponseUtil;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType;
......@@ -41,6 +40,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
private AssortmentCustomerInfoManager assortmentCustomerInfoManager;
@Autowired
private MallOrderService mallOrderService;
@Autowired
private AppOrderService appOrderService;
@Override
public BaseResponse createOrderNew(CreateOrderVo createOrderVo) {
......@@ -81,6 +82,13 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
return mallOrderService.createOrder(createOrderVo);
}
/**
* APP下单
*/
if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
return appOrderService.createOrderFlow(createOrderVo);
}
//原标准点餐程序逻辑处理
BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo);
if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){
......@@ -89,6 +97,18 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
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
......
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