Commit f02dd0c0 by ping.wu

Merge branches 'feature/20200522_买券订单创建_wuping' and 'master' of…

Merge branches 'feature/20200522_买券订单创建_wuping' and 'master' of http://gitlab.freemud.com/order-group-application/order-group

# Conflicts:
#	assortment-ordercenter-sdk/pom.xml
#	assortment-ordercenter-sdk/readme.md
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/QueryOrdersResponse.java
#	order-application-service/pom.xml
#	order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
#	ordercenter-sdk/pom.xml
#	ordercenter-sdk/readme.md
#	ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/constant/InterfaceAddressConstant.java
#	ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/service/OrderSdkService.java
parents 041c264e 1ae11a54
......@@ -58,4 +58,5 @@
| 1.5.6-RELEASE| 更新客如云方法名 | 海波 | 2020-06-05 |
| 1.5.7-RELEASE| 集点参数为0 不要调会员接口 | 梁崇福 | 2020-06-08 |
| 1.5.8-RELEASE| 查询非码微店订单,下载 | 梁崇福 | 2020-06-08 |
| 1.5.9-RELEASE| 券码修改为channle_code | 梁崇福 | 2020-06-08 |
\ No newline at end of file
| 1.5.9-RELEASE| 券码修改为channle_code | 梁崇福 | 2020-06-08 |
| 1.8.9-SNAPSHOT | 用户订单和es综合查询接口新增订单业务类型集合 | wuping | 2020-06-01 |
\ No newline at end of file
......@@ -506,7 +506,7 @@ public class OrderSdkAdapter {
} catch (ParseException e) {
e.printStackTrace();
}
orderConditionsReq.setBizTypes(queryOrdersRequest.getBizTypes());
return orderConditionsReq;
}
......@@ -1034,6 +1034,7 @@ public class OrderSdkAdapter {
}
data.setOrderOperationHistoryList(getOrderOperationHistory(orderInfoReqs.getOrderOperationHistoryList()));
data.setApportionDetails(getApportionDetails(orderInfoReqs));
data.setOrderSettlementDetailList(orderInfoReqs.getOrderSettlementDetailList());
//费用信息
data.setOrderCostDetailList(orderInfoReqs.getOrderCostDetailList());
data.setExpressChannelName(orderInfoReqs.getExpressChannelName());
......
......@@ -51,4 +51,9 @@ public class OrderProductAddInfoDto extends BaseConfig {
/** 是否主食 **/
private Integer stapleFood;
/**
* 商品绑定的券活动(买券虚拟订单才有)
*/
private List<ProductBindingCouponType> productBindingCoupons;
}
package com.freemud.sdk.api.assortment.order.request.order;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ProductBindingCouponType
* @Package com.freemud.sdk.api.assortment.order.request.order
* @Description:
* @author: ping1.wu
* @date: 2020/5/26 14:26
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class ProductBindingCouponType {
/**
* 优惠券CODE
*/
private String activityCode;
private String activityName;
/**
* 数量
*/
private int num;
/**
* 排序
*/
// private int sequence;
}
......@@ -32,4 +32,5 @@ public class QueryOrdersByConditionsRequest extends BaseConfig {
private String userId;
//订单业务类型 1:普通订单 2:虚拟订单
private Integer bizType;
private List<Integer> bizTypes;
}
......@@ -3,6 +3,8 @@ package com.freemud.sdk.api.assortment.order.request.order;
import com.freemud.sdk.api.assortment.order.config.BaseConfig;
import lombok.Data;
import java.util.List;
@Data
public class QueryOrdersRequest extends BaseConfig {
......@@ -55,4 +57,6 @@ public class QueryOrdersRequest extends BaseConfig {
*/
private String[] source;
private List<Integer> bizTypes;
}
......@@ -16,6 +16,7 @@ import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSales
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderCostResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderCostResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInvoice;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang.builder.ToStringBuilder;
......@@ -258,6 +259,7 @@ public class QueryOrdersResponse {
private List<OrderCostResp> orderCostDetailList;
private List<OrderSettlementResp> orderSettlementDetailList;
private AddDeliveryInfo addInfo;
......
......@@ -45,7 +45,7 @@
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>productcenter-sdk</artifactId>
<version>2.6.RELEASE</version>
<version>2.8.4-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>membercenter-sdk</artifactId>
......
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.SellCouponCreateOrderVo;
import cn.freemud.service.impl.SellCouponOrderServiceImpl;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: CreateOrderController
* @Package cn.freemud.controller
* @Description:
* @author: ping1.wu
* @date: 2020/5/21 17:16
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Slf4j
@RequestMapping("/order")
@RestController
@Validated
public class CreateOrderController {
@Autowired
private SellCouponOrderServiceImpl sellCouponOrderService;
/**
* 卖券订单创建
*/
@ApiAnnotation(logMessage = "sellCouponOrderCreate")
@PostMapping("/sellCouponOrder/create")
public BaseResponse sellCouponOrderCreate(@Validated @LogParams @RequestBody SellCouponCreateOrderVo requestVo) {
return sellCouponOrderService.createOrder(requestVo);
}
}
package cn.freemud.entities.dto;
import com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponType;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
@Builder
public class OrderProductAddInfo {
......@@ -16,6 +19,11 @@ public class OrderProductAddInfo {
*/
private ActivityProduct activityProduct;
/**
* 商品绑定的券活动(买券虚拟订单才有)
*/
private List<ProductBindingCouponType> productBindingCoupons;
@Data
@Builder
public static class ActivityProduct {
......
......@@ -2,6 +2,8 @@ package cn.freemud.entities.dto;
import lombok.Data;
import java.util.List;
@Data
public class QueryOrdersDto {
......@@ -54,5 +56,6 @@ public class QueryOrdersDto {
*/
private String[] source;
private List<Integer> bizTypes;
}
package cn.freemud.entities.vo;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: InventedParentActivityVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: ping1.wu
* @date: 2020/5/28 17:01
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class InventedParentActivityVo {
// private String activityCode;
private String activityName;
private int num;
}
......@@ -150,4 +150,6 @@ public class ProductVo {
*/
private List<ProductVo> setMealProducts;
private List<InventedParentActivityVo> InventedParentActivitiesVo;
}
......@@ -341,6 +341,11 @@ public class QueryOrderResponseVo {
*/
private String receiveRegion;
/**
* 订单业务类型 1:普通订单 2:虚拟订单 3:会员订单 4:积分商城订单 5:储值卡订单 6:卖券虚拟商品
*/
private Integer bizType;
@Data
public static class OrderStatusFlow {
/**
......
package cn.freemud.entities.vo;
import cn.freemud.entities.dto.UserDeliveryInfoDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.Valid;
import javax.validation.constraints.Pattern;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: SellCouponCreateOrderVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: ping1.wu
* @date: 2020/5/21 17:27
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class SellCouponCreateOrderVo {
@NotEmpty(message = "sessionId 不能为空")
private String sessionId;
@NotEmpty(message = "shopId 门店号不能为空")
private String shopId;
//一键买券必传
@NotEmpty(message = "skuId 不能为空")
private String skuId;
/**
* svc 储值卡支付使用
*/
private String cardCode;
@NotEmpty(message = "menuType 不能为空")
private String menuType;
/**
* form_id 用于金额是0的情况,支付宝模板消息需要传
*/
private String formId;
/**
* 业务类型
*/
@NotEmpty(message = "bizType 业务类型不能为空")
private String bizType;
/**
* 版本号
*/
// @NotEmpty(message = "version 版本号不能为空")
private String version;
}
......@@ -163,6 +163,7 @@ public enum ResponseResult {
COUPON_ORDER_WAY_ERROR("46011", "您选择得优惠券不适用该点餐方式"),
COUPON_VERIFICATION_FAIL("46012","优惠券核销失败"),
COUPON_CALLBACK_FAIL("46013","优惠券移除卡包失败"),
COUPON_INVAILD("46014", "优惠券失效"),
/**
* 加价购商品
*/
......
......@@ -115,12 +115,24 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
//校验会员svc卡信息
checkCardCode(createOrderVo.getPartnerId(),userLoginInfoDto.getMemberId(),createOrderVo.getCardCode(),trackingNo);
checkCardCode(createOrderVo.getPartnerId(),userLoginInfoDto.getMemberId(),createOrderVo.getCardCode());
createOrderVo.setUserId(userLoginInfoDto.getMemberId());
return userLoginInfoDto;
}
public AssortmentCustomerInfoVo checkOrderByMemberNew(String sessionId, String cardCode) {
// 通过sessionId查询缓存中会员id
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
if (userLoginInfoDto == null || StringUtils.isEmpty(userLoginInfoDto.getMemberId())) {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
//校验会员svc卡信息
checkCardCode(userLoginInfoDto.getPartnerId(),userLoginInfoDto.getMemberId(),cardCode);
return userLoginInfoDto;
}
/**
* 查询门店信息
*/
......@@ -506,14 +518,14 @@ public class CheckOrder {
}
public void checkCardCode(String partnerId,String memberId,String cardCode,String trackingNo){
public void checkCardCode(String partnerId,String memberId,String cardCode){
if(StringUtils.isBlank(cardCode)){
return;
}
StatisticalPropertyRequest request = new StatisticalPropertyRequest();
request.setPartnerId(partnerId);
request.setMemberId(memberId);
BaseResponse<List<GetSvcInfoByMemberIdResponse>> responseDTO = memberPropertyService.getSvcInfoByMemberId(request,trackingNo);
BaseResponse<List<GetSvcInfoByMemberIdResponse>> responseDTO = memberPropertyService.getSvcInfoByMemberId(request,LogThreadLocal.getTrackingNo());
if (!ResponseResult.SUCCESS.getCode().equals(responseDTO.getCode()) || responseDTO.getData() == null
|| responseDTO.getData().size() == 0 ) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR);
......
......@@ -65,6 +65,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
private OrderAdapter orderAdapter;
@Autowired
private OrderCommonService orderCommonService;
@Autowired
private SellCouponOrderServiceImpl sellCouponOrderService;
@Override
......@@ -172,6 +174,10 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if(OrderSourceType.APP.getCode().equals(orderBean.getSource())) {
return appOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
//买券虚拟订单
if(orderBean.getBizType() == 6) {
return sellCouponOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
/**
* 默认点餐处理
*/
......
......@@ -160,10 +160,10 @@ public class OrderServiceTest {
}
@Test
public void getAccessToken() {
orderService.getAccessToken("1779", "wx2eba2ce69704a6c7");
}
// @Test
// public void getAccessToken() {
// orderService.getAccessToken("1779", "wx2eba2ce69704a6c7");
// }
@Test
......
......@@ -31,4 +31,6 @@
| 1.2.10.RELEASE | 增加售后单任务 | wuping | 2020-05-21 |
| 1.2.11.RELEASE | 增加订单支付方式 | 海波 | 2020-05-25 |
| 1.3.1.RELEASE | 增加下游订单号 | 海波 | 2020-06-01 |
| 1.3.2.RELEASE | 增加非码微店类型 | 梁崇福 | 2020-06-05 |
\ No newline at end of file
| 1.3.2.RELEASE | 增加非码微店类型 | 梁崇福 | 2020-06-05 |
| 1.4.12-SNAPSHOT | 增加新接口:新增结算信息 | wuping | 2020-05-28 |
| 1.4.13-SNAPSHOT | 用户订单和es综合查询接口新增订单业务类型集合 | wuping | 2020-06-01 |
\ No newline at end of file
......@@ -176,4 +176,9 @@ public class InterfaceAddressConstant {
* 根据订单下游POS数据查询订单
*/
public static final String GET_ORDER_INFO_DOWNSTREAM = "order/v2/queryOrderByDownstream";
/**
* 新增结算信息
*/
public static final String CREATE_SETTLEMENT="order/v2/createSettlement";
}
......@@ -106,6 +106,8 @@ public class OrderConditionsReq {
//订单业务类型 1:普通订单 2:虚拟订单
private Integer bizType;
private List<Integer> bizTypes;
// 外部对象ID 如:活动ID
private List<String> externalObjectIds;
// 外部对象ID 如:活动类型
......
package com.freemud.application.sdk.api.ordercenter.request;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderSettlementReq
* @Package com.freemud.application.sdk.api.ordercenter.request
* @Description:
* @author: ping1.wu
* @date: 2020/5/28 20:13
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class OrderSettlementReq {
//商户号
private String partnerId;
//订单编码
private String orderCode;
//第三方订单号
private String thirdOrderCode;
private Integer orderClient;
//订单结算信息
private List<OrderSettlementCreateReq> orderSettlementDetailList;
}
......@@ -52,4 +52,7 @@ public class OrderUserConditionsReq {
//当前分页
private Integer pageNum;
//订单类型集合
private List<Integer> bizTypes;
}
......@@ -65,4 +65,6 @@ public class QueryAfterSalesOrderConditionsReq {
private Byte afterSalesStageType;
protected Integer ver;
private List<Integer> bizTypes;
}
......@@ -63,4 +63,13 @@ public class OrderSettlementCreateReq {
//是否线上 false:不是 true:是
private Boolean isOnline;
//外部子对象
private String externalObjectSubId;
//外部对象名称 如:活动名称
private String externalObjectName;
//是否忽略,不参与优惠计算
private Boolean ignoreInDiscountAmount;
}
......@@ -741,4 +741,16 @@ public class OrderSdkService {
return responseDTO;
}
/**
* 新增结算信息,保存虚拟商品订单异步发券券信息
* @return
*/
public BaseResponse createSettlement(OrderSettlementReq request, String trackingNo) {
String url = InterfaceAddressConstant.CREATE_SETTLEMENT;
OrderBaseResp<PaySuccessResp> responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, url,
createBaseRequest(request, trackingNo), new ParameterizedTypeReference<OrderBaseResp<PaySuccessResp>>() {
});
return responseHandle(responseDTO);
}
}
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