Commit 4ce7b07a by 徐康

Merge remote-tracking branch 'origin/qa' into qa

parents 7354986d 55f060e0
......@@ -48,6 +48,8 @@ public class CreateOrderProductRequest extends BaseConfig {
* 商品货号,商品服务可重复
*/
private String productCode;
/**
* 商品价格 单价分
*/
......@@ -201,6 +203,8 @@ public class CreateOrderProductRequest extends BaseConfig {
private String classificationName;
private String category;
private List<String> specialCodes;
private List<OrderSpecialExtraAttrRequest> specialAttrs;
......
......@@ -11,4 +11,5 @@
| 1.1.3.RELEASE| 增加统计分类classificationId  ,setClassificationName | | 2020-06-16 |
| 1.1.5.RELEASE| 商品加料  | | 2020-08-24 |
| 1.1.6.RELEASE| 新增商品券名称字段| 孙昱 | 2020-11-09 |
| 1.1.7.RELEASE| 标识套餐类型| 孙昱 | 2020-12-01 |
\ No newline at end of file
| 1.1.7.RELEASE| 标识套餐类型| 孙昱 | 2020-12-01 |
| 1.1.8.RELEASE| 拼单| 缪晖 | 2020-12-10 |
\ No newline at end of file
......@@ -29,7 +29,7 @@ public class SubscribeMessageRequest {
* 5 字节小程序
* 6 h5
*/
private Integer channel;
private Integer channel =1;
/**
* 配送异常提醒
......
......@@ -170,6 +170,7 @@ public enum ResponseResult {
COLLAGE_ORDER_CREATE_ERROR_NOT_EXIST("45070", "拼单信息不存在,无法创建订单"),
COLLAGE_ORDER_CREATE_ERROR_PAYING("45071", "拼单正在支付,请勿重复提交"),
COLLAGE_ORDER_CREATE_ERROR_PAYED("45072", "拼单已支付完成,请返回订单列表查看"),
STORE_SELF_ERROR("45069", "请选择截止营业时间大于45分钟下单"),
/**
......
......@@ -59,12 +59,14 @@ import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.enums.NewOrderType;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import lombok.extern.log4j.Log4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
......@@ -110,7 +112,7 @@ public class CheckOrder {
private MemberPropertyService memberPropertyService;
@Autowired
private ShoppingCartClient shoppingCartClient;
// @Autowired
// @Autowired
// private OrderAdapter orderAdapter;
@Autowired
private StoreServiceImpl storeService;
......@@ -133,6 +135,7 @@ public class CheckOrder {
@Value("${coco.partnerId}")
private String cocoPartnerId;
/**
* 下单会员相关校验
*/
......@@ -193,8 +196,8 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
//订单预约单检查
OrderCheckAdapter.check(createOrderVo, storeResponse);
OrderCheckAdapter.check(createOrderVo, storeResponse);
StoreResponse.BizVO storeResponseDto = storeResponse.getBizVO();
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if (storeResponseDto.getActiveFlag() == null || storeResponseDto.getActiveFlag() != 1) {
......@@ -274,6 +277,23 @@ public class CheckOrder {
} else {
storeDeliveryInfoDto = getNewStoreDeliveryInfo(storeResponseDto, config, appId, trackingNo);
}
//coco自配送提前45分钟,禁止下单
if (cocoPartnerId.equals(createOrderVo.getPartnerId()) &&
CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType()) &&
"self".equals(storeDeliveryInfoDto.getDeliveryType())
) {
//即时单是下单时间,预约单是预约单时间
Date orderDate = createOrderVo.getExpectTime() != null
? DateUtil.convert2Date(createOrderVo.getExpectTime(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS)
: new Date();
Date todayEnd = DateUtil.setEndDay(new Date());
boolean toDay = orderDate.before(todayEnd);
BusinessDate businessDate = getStoreBusinessDate(storeResponseDto, toDay);
boolean businessEndDate = (DateUtils.addMinutes(orderDate, 45).compareTo(businessDate.getEndDate()) <= 0);
if (businessEndDate) {
throw new ServiceException(ResponseResult.STORE_SELF_ERROR);
}
}
//todo : 这里不再支持从表中获取门店配送信息 改用接口方式调用
//外卖起送条件(1:杯数,2:金额)
if (!Arrays.asList(1, 2).contains(storeDeliveryInfoDto.getDeliveryCondition())) {
......@@ -297,6 +317,22 @@ public class CheckOrder {
return pushOrderTime;
}
/**
* 获取门店营业时间
*
* @param storeResponseDto
* @param toDay true 今日,false 明天
* @return
*/
private BusinessDate getStoreBusinessDate(StoreResponse.BizVO storeResponseDto, boolean toDay) {
List<String> todayBusinessTimes = storeCenterService.getTodayBusinessTime(Integer.parseInt(storeResponseDto.getBusinessType()), storeResponseDto.getBusinessHoursDay());
if (CollectionUtils.isEmpty(todayBusinessTimes)) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
}
BusinessDate businessDate = getStoreBusinessDate(todayBusinessTimes.get(todayBusinessTimes.size() - 1), toDay);
return businessDate;
}
public void checkOrderExpectTime(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, Date takeMealDateTime) {
if (takeMealDateTime == null) {
return;
......@@ -706,19 +742,19 @@ public class CheckOrder {
storeDeliveryInfoDto.setPushOrderTime(0);
} else {
//如果是coco查询配送服务判断是平台配送还是自配送
if(cocoPartnerId.equals(storeResponseDto.getPartnerId())){
if (cocoPartnerId.equals(storeResponseDto.getPartnerId())) {
GetDeliveryFlagRequest getDeliveryFlagRequest = new GetDeliveryFlagRequest();
getDeliveryFlagRequest.setPartnerId(storeResponseDto.getPartnerId());
getDeliveryFlagRequest.setStoreId(storeResponseDto.getStoreId());
DeliveryBaseResponse<GetDeliveryFlagResponseDto> deliveryBaseResponse = deliveryFeiginClient.getThirdDeliveryFlag(getDeliveryFlagRequest);
if(deliveryBaseResponse.getCode() == 100 && deliveryBaseResponse.getData() != null && deliveryBaseResponse.getData().isThirdDeliveryFlag()){
DeliveryBaseResponse<GetDeliveryFlagResponseDto> deliveryBaseResponse = deliveryFeiginClient.getThirdDeliveryFlag(getDeliveryFlagRequest);
if (deliveryBaseResponse.getCode() == 100 && deliveryBaseResponse.getData() != null && deliveryBaseResponse.getData().isThirdDeliveryFlag()) {
storeDeliveryInfoDto.setDeliveryType("third");
storeDeliveryInfoDto.setPushOrderTime(0);
}else {
} else {
storeDeliveryInfoDto.setDeliveryType("self");
storeDeliveryInfoDto.setPushOrderTime(0);
}
}else{
} else {
if (ObjectUtils.equals(openPlatformIappWxappConfig.getTakeType(), 1)) {
storeDeliveryInfoDto.setDeliveryType("self");
storeDeliveryInfoDto.setPushOrderTime(0);
......@@ -774,19 +810,19 @@ public class CheckOrder {
storeDeliveryInfoDto.setPushOrderTime(0);
} else {
//如果是coco查询配送服务判断是平台配送还是自配送
if(cocoPartnerId.equals(storeResponseDto.getPartnerId())){
if (cocoPartnerId.equals(storeResponseDto.getPartnerId())) {
GetDeliveryFlagRequest getDeliveryFlagRequest = new GetDeliveryFlagRequest();
getDeliveryFlagRequest.setPartnerId(storeResponseDto.getPartnerId());
getDeliveryFlagRequest.setStoreId(storeResponseDto.getStoreId());
DeliveryBaseResponse<GetDeliveryFlagResponseDto> deliveryBaseResponse = deliveryFeiginClient.getThirdDeliveryFlag(getDeliveryFlagRequest);
if(deliveryBaseResponse.getCode() == 100 && deliveryBaseResponse.getData() != null && deliveryBaseResponse.getData().isThirdDeliveryFlag()){
DeliveryBaseResponse<GetDeliveryFlagResponseDto> deliveryBaseResponse = deliveryFeiginClient.getThirdDeliveryFlag(getDeliveryFlagRequest);
if (deliveryBaseResponse.getCode() == 100 && deliveryBaseResponse.getData() != null && deliveryBaseResponse.getData().isThirdDeliveryFlag()) {
storeDeliveryInfoDto.setDeliveryType("third");
storeDeliveryInfoDto.setPushOrderTime(0);
}else {
} else {
storeDeliveryInfoDto.setDeliveryType("self");
storeDeliveryInfoDto.setPushOrderTime(0);
}
}else{
} else {
if (ObjectUtils.equals(openPlatformIappWxappConfig.getTakeType(), 1)) {
storeDeliveryInfoDto.setDeliveryType("self");
storeDeliveryInfoDto.setPushOrderTime(0);
......
package cn.freemud.utils;
import cn.freemud.base.util.DateUtil;
import org.apache.commons.lang.time.DateUtils;
import org.junit.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtilsTest {
@Test
public void testDateCompare() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = sdf.parse("2020-12-30 00:00:00");
Date date2 = sdf.parse("2020-12-14 11:50:00");
System.out.println("date1 : " + sdf.format(date1));
System.out.println("date2 : " + sdf.format(date2));
System.out.println(date1.compareTo(date2));
if (date1.compareTo(date2) > 0) {
System.out.println("Date1 时间在 Date2 之后");
} else if (date1.compareTo(date2) < 0) {
System.out.println("Date1 时间在 Date2 之前");
} else if (date1.compareTo(date2) == 0) {
System.out.println("Date1 时间与 Date2 相等");
} else {
System.out.println("程序怎么会运行到这里?正常应该不会");
}
boolean x =(DateUtils.addMinutes(new Date(), 45).compareTo(date2) <= 0);
System.out.println(x);
}
@Test
public void testBefore() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = sdf.parse("2020-12-30 00:00:00");
Date date = DateUtil.setEndDay(new Date());
String s = DateUtil.convert2String(date, "yyyy-MM-dd HH:mm:ss");
System.out.println(date.before(date1));
}
}
......@@ -26,7 +26,7 @@ public class PaySuccessResp {
//总排队人数
private Integer queueNumber;
//取餐码
private Integer pickUpGoodsNo;
private String pickUpGoodsNo;
//门店订单序号
private Integer daySeq;
......
......@@ -871,14 +871,15 @@ public class ShoppingCartConvertAdapter {
//套餐可选商品
if (CollectionUtils.isNotEmpty(cartGoods.getProductGroupList())) {
for (com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.ComboxGoods comboxGoods : cartGoods.getProductGroupList()){
ProductTypeBeanDTO productBeanDTO = subProductTypeMap.get(comboxGoods.getSpuId());
//套餐子商品多规格商品
if(comboxGoods.getSpuId() != null && !comboxGoods.getSkuId().equals(comboxGoods.getSpuId()) ){
for (com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.ComboxGoods productGroup : cartGoods.getProductGroupList()) {
updateComboxGoodsInfoForMCoffee(productGroup, spuProduct, false);
updateComboxGoodsInfoForMCoffee(productGroup, productBeanDTO, false);
}
}else {
for (com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.ComboxGoods productGroup : cartGoods.getProductGroupList()) {
updateComboxGoodsInfoForMCoffee(productGroup, spuProduct, false);
updateComboxGoodsInfoForMCoffee(productGroup, productBeanDTO, false);
}
}
}
......
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