Commit ef1837d2 by ping.wu

Merge branches 'develop' and 'feature/20200820_哗啦啦产品分类名称_wuping' of…

Merge branches 'develop' and 'feature/20200820_哗啦啦产品分类名称_wuping' of http://gitlab.freemud.com/order-group-application/order-group into develop

# Conflicts:
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/CreateOrderProductRequest.java
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/OrderProductAddInfoDto.java
#	order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
#	order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
#	order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
parents c2376eec 745eb004
......@@ -26,7 +26,7 @@
<dependency>
<artifactId>couponcenter-sdk</artifactId>
<groupId>com.freemud.application.service.sdk</groupId>
<version>1.11.0-SNAPSHOT</version>
<version>1.10.2.RELEASE</version>
<scope>provided</scope>
</dependency>
<dependency>
......
......@@ -2596,8 +2596,9 @@ public class OrderSdkAdapter {
if (StringUtils.isNotBlank(product.getThirdCategoryId())){
extInfo.setThirdCategoryId(product.getThirdCategoryId());
}
if (StringUtils.isNotBlank(product.getCategory())){
extInfo.setThirdCensusCategoryId(product.getCategory());
if (StringUtils.isNotBlank(product.getClassificationId())){
extInfo.setThirdCensusCategoryId(product.getClassificationId());
extInfo.setThirdCensusCategoryId(product.getSetClassificationName());
}
if (0 != product.getTax()){
extInfo.setTax(product.getTax());
......
......@@ -166,11 +166,13 @@ public class CreateOrderProductRequest extends BaseConfig {
/** 是否主食**/
private Integer stapleFood;
/** 商品统计分类编号**/
private String category;
/** 商品税率**/
private double tax;
private String taxId;
/** 商品统计分类编号**/
private String classificationId;
private String setClassificationName;
}
......@@ -62,7 +62,13 @@ public class OrderProductAddInfoDto extends BaseConfig {
*/
private String thirdCensusCategoryId;
/**
* 商品统计分类名称
*/
private String thirdCensusCategoryName;
private double tax;
private String taxId;
}
......@@ -8,4 +8,4 @@ app.id=SHOP_OPEN_STORE
apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080
env=pro
apollo.bootstrap.enabled=true
apollo.bootstrap.namespaces=micro_progeram_commons,i_callback_service
\ No newline at end of file
apollo.bootstrap.namespaces=i_callback_service,micro_progeram_commons
\ No newline at end of file
......@@ -35,7 +35,7 @@
<dependency>
<artifactId>couponcenter-sdk</artifactId>
<groupId>com.freemud.application.service.sdk</groupId>
<version>1.11.0-SNAPSHOT</version>
<version>1.10.2.RELEASE</version>
</dependency>
<dependency>
<groupId>cn.freemud</groupId>
......
......@@ -2131,9 +2131,10 @@ public class OrderAdapter {
createOrderProductDemoDto.setWeight(cartGoodsDetailDto.getWeight());
createOrderProductDemoDto.setUnit(cartGoodsDetailDto.getUnit());
createOrderProductDemoDto.setStapleFood(0);
createOrderProductDemoDto.setCategory(cartGoodsDetailDto.getClassificationId());
createOrderProductDemoDto.setTax(cartGoodsDetailDto.getTax());
createOrderProductDemoDto.setTaxId(cartGoodsDetailDto.getTaxId());
createOrderProductDemoDto.setClassificationId(cartGoodsDetailDto.getClassificationId());
createOrderProductDemoDto.setSetClassificationName(cartGoodsDetailDto.getSetClassificationName());
return createOrderProductDemoDto;
}
......
......@@ -110,6 +110,7 @@ public class CheckOrder {
@Autowired
private CouponService couponService;
private static Gson gson = new Gson();
/**
* 下单会员相关校验
*/
......@@ -144,7 +145,7 @@ public class CheckOrder {
*/
public StoreResponse getStoreInfo(String partnerId, String shopId, String trackingNo) {
// 获取门店信息
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId,null);
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId, null);
return storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
}
......@@ -190,17 +191,29 @@ public class CheckOrder {
//未营业无预约时间无法下单
if (!StoreConstant.BUSINESS.equals(storeResponseDto.getState()) && StringUtils.isBlank(takeMealFlag) && "0".equals(takeMealFlag)) {
throw new ServiceException(ResponseResult.STORE_ITEM_CHECK_CLOSE);
// String takeMealTimes = createOrderVo.getTakeMealTime();
//立即送达
if ("0".equals(takeMealFlag) || (StringUtils.isEmpty(createOrderVo.getExpectTime()) && StringUtils.isEmpty(takeMealTimes))) {
//未营业无预约时间无法下单
if (!StoreConstant.BUSINESS.equals(storeResponseDto.getState())) {
throw new ServiceException(ResponseResult.STORE_ITEM_CHECK_CLOSE);
}
// 外卖单选择立即送达的话,下单时间必须在店铺外卖时间内
if (createOrderVo.getOrderType().compareTo(CreateOrderType.TAKE_OUT.getCode()) == 0) {
checkTakeOutTime(storeResponseDto, new Date(), new Date(), true);
}
}
String takeMealTimes = createOrderVo.getTakeMealTime();
//有预约时间
if(StringUtils.isNotBlank(takeMealTimes) || StringUtils.isNotBlank(createOrderVo.getExpectTime())){
if (StringUtils.isNotBlank(takeMealTimes) || StringUtils.isNotBlank(createOrderVo.getExpectTime())) {
// 设置预约时间
Date takeMealDateTime = getOrderExpectTime(takeMealFlag,takeMealTimes,createOrderVo.getExpectTime(),
CreateOrderType.getByCode(createOrderVo.getOrderType()),storeResponseDto.getServiceTime(),storeResponseDto);
if(takeMealDateTime != null){
Date takeMealDateTime = getOrderExpectTime(takeMealFlag, takeMealTimes, createOrderVo.getExpectTime(),
CreateOrderType.getByCode(createOrderVo.getOrderType()), storeResponseDto.getServiceTime(), storeResponseDto);
if (takeMealDateTime != null) {
//校验预约时间
checkOrderExpectTime(createOrderVo,storeResponseDto,takeMealDateTime);
checkOrderExpectTime(createOrderVo, storeResponseDto, takeMealDateTime);
//重新赋值为yyyy-MM-dd HH:mm:ss格式字符串时间
createOrderVo.setExpectTime(DateUtil.convert2String(takeMealDateTime, "yyyy-MM-dd HH:mm:ss"));
}
......@@ -344,11 +357,53 @@ public class CheckOrder {
if (!expectTimeInTodayBusinessTime && (takeMealDateTime.before(nextDeliveryStartDate) || takeMealDateTime.after(nextDeliveryEndDate))) {
throw new ServiceException(ResponseResult.ORDER_CREATE_TIME_NOT_DELIVERY);
}
checkTakeOutTime(storeResponseDto, date, takeMealDateTime, expectTimeInTodayBusinessTime);
}
}
/**
* 检验订单是否在外卖时间内
*
* @param storeResponseDto 店铺信息
* @param now 当前时间
* @param takeMealDateTime 预约单送达时间/即时单下单时间
* @param expectTimeInTodayBusinessTime 是否在当日营业时间内
*/
private void checkTakeOutTime(StoreResponse.BizVO storeResponseDto, Date now, Date takeMealDateTime, boolean expectTimeInTodayBusinessTime) {
String deliveryStr = storeResponseDto.getDeliveryHoursDay().replace("-", ",")
.replace("_", ",");
String[] deliverys = deliveryStr.split(",");
Date deliveryStartDate = null;
Date deliveryEndDate = null;
if (deliverys.length == 2) {
SimpleDateFormat hhmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd");
String startDateTimeStr = yyyyMMdd.format(now) + " " + deliverys[0] + ":00";
String endDateTimeStr = yyyyMMdd.format(now) + " " + deliverys[1] + ":00";
try {
deliveryStartDate = hhmmss.parse(startDateTimeStr);
deliveryEndDate = hhmmss.parse(endDateTimeStr);
} catch (ParseException e) {
LogUtil.error("getStoreDeliveryInfo_error", endDateTimeStr, e.getMessage());
}
}
if (deliveryStartDate == null || deliveryEndDate == null) {
throw new ServiceException(ResponseResult.ORDER_CREATE_TIME_NOT_DELIVERY);
}
// 校验预约配送时间
if (expectTimeInTodayBusinessTime && (takeMealDateTime.before(deliveryStartDate) || takeMealDateTime.after(deliveryEndDate))) {
throw new ServiceException(ResponseResult.ORDER_CREATE_TIME_NOT_DELIVERY);
}
Date nextDeliveryStartDate = DateUtil.addDays(deliveryStartDate, 1);
Date nextDeliveryEndDate = DateUtil.addDays(deliveryEndDate, 1);
// 隔日预约外卖校验预约配送时间
if (!expectTimeInTodayBusinessTime && (takeMealDateTime.before(nextDeliveryStartDate) || takeMealDateTime.after(nextDeliveryEndDate))) {
throw new ServiceException(ResponseResult.ORDER_CREATE_TIME_NOT_DELIVERY);
}
}
public Date getOrderExpectTime(String takeMealFlag,String takeMealTimes,String expectTime,
CreateOrderType createOrderType,Integer serviceTime,StoreResponse.BizVO storeResponseDto){
public Date getOrderExpectTime(String takeMealFlag, String takeMealTimes, String expectTime,
CreateOrderType createOrderType, Integer serviceTime, StoreResponse.BizVO storeResponseDto) {
Date takeMealDateTime = null;
//0=到店单我已到店、外卖单尽快送出
if (StringUtils.isNotBlank(takeMealFlag) && "0".equals(takeMealFlag)) {
......@@ -359,7 +414,7 @@ public class CheckOrder {
}
//兼容门店隔日预约单格式修改,HH:mm变yyyy-MM-dd HH:mm,前端未升级,未按要求传
if (StringUtils.isNotBlank(takeMealTimes) && takeMealTimes.length() > 5) {
expectTime = takeMealTimes+":00";
expectTime = takeMealTimes + ":00";
}
Date date = new Date();
......@@ -369,21 +424,21 @@ public class CheckOrder {
takeMealTime = takeMealTime.append(DateUtil.convert2String(date, "yyyy-MM-dd"))
.append(" ").append(takeMealTimes).append(":00");
takeMealDateTime = DateUtil.convert2Date(takeMealTime.toString(), "yyyy-MM-dd HH:mm:ss");
Date newDate = DateUtil.convert2Date(date,DateUtil.FORMAT_yyyyMMdd_date);
newDate = DateUtil.addDays(newDate,1);
Date newDate = DateUtil.convert2Date(date, DateUtil.FORMAT_yyyyMMdd_date);
newDate = DateUtil.addDays(newDate, 1);
//获取门店当天营业结束时间
Date todayEndDate =null;
Date todayEndDate = null;
List<String> todayBusinessTimes = storeCenterService.getTodayBusinessTime(Integer.parseInt(storeResponseDto.getBusinessType()), storeResponseDto.getBusinessHoursDay());
if(CollectionUtils.isEmpty(todayBusinessTimes)){
if (CollectionUtils.isEmpty(todayBusinessTimes)) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
}
BusinessDate businessDate = getStoreBusinessDate(todayBusinessTimes.get(todayBusinessTimes.size()-1),true);
BusinessDate businessDate = getStoreBusinessDate(todayBusinessTimes.get(todayBusinessTimes.size() - 1), true);
todayEndDate = businessDate.getEndDate();
//隔天营业的预约时间处理 计算出预约时间在当前时间之前,预约时间加1天 newDate.before(todayEndDate)=隔天营业
if(takeMealDateTime != null && takeMealDateTime.before(date) && newDate.before(todayEndDate)){
takeMealDateTime = DateUtil.addDays(takeMealDateTime,1);
if (takeMealDateTime != null && takeMealDateTime.before(date) && newDate.before(todayEndDate)) {
takeMealDateTime = DateUtil.addDays(takeMealDateTime, 1);
}
}
if (StringUtils.isNotBlank(expectTime)) {
......@@ -395,13 +450,13 @@ public class CheckOrder {
}
//当顾客指定送达时间小于当前时间+提前预约时间时,订单记录类型为即时单
if (CreateOrderType.TAKE_OUT.equals(createOrderType) && takeMealDateTime != null
&& serviceTime != null && takeMealDateTime.before(DateUtil.addMinutes(date,serviceTime))) {
&& serviceTime != null && takeMealDateTime.before(DateUtil.addMinutes(date, serviceTime))) {
takeMealDateTime = null;
}
return takeMealDateTime;
}
public BusinessDate getStoreBusinessDate(String businessHoursDay, boolean today){
public BusinessDate getStoreBusinessDate(String businessHoursDay, boolean today) {
BusinessDate businessDate = new BusinessDate();
//设置营业开始和结束时间
String businessHourStr = businessHoursDay.replace("-", ",").replace("_", ",");
......@@ -410,13 +465,13 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
Date date = new Date();
if(!today){
date = DateUtil.addDays(date,1);
if (!today) {
date = DateUtil.addDays(date, 1);
}
String startDateTimeStr = DateUtil.convert2String(date, DateUtil.FORMAT_YMD) + " " + businessHours[0] + ":00";
String endDateTimeStr = DateUtil.convert2String(date, DateUtil.FORMAT_YMD) + " " + businessHours[1] + ":00";
Date startDateTime ;
Date endDateTime ;
Date startDateTime;
Date endDateTime;
startDateTime = DateUtil.convert2Date(startDateTimeStr, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
SimpleDateFormat hhmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
......@@ -425,8 +480,8 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
}
//隔天营业时间处理
if(startDateTime.after(endDateTime)){
endDateTime = DateUtil.addDays(endDateTime,1);
if (startDateTime.after(endDateTime)) {
endDateTime = DateUtil.addDays(endDateTime, 1);
}
// 校验门店是否打烊,打烊了则不让操作
if (startDateTime == null || endDateTime == null) {
......@@ -490,7 +545,7 @@ public class CheckOrder {
cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse = shoppingCartClient.getShoppingCartGoodsApportionNew(requestDto);
if (!ObjectUtils.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, apportionResponse.getCode())) {
ResponseResult responseResult = ResponseResult.getResponseResult(apportionResponse.getCode());
throw new ServiceException(responseResult != null ? responseResult : ResponseResult.SHOPPING_CART_GETINFO_ERROR );
throw new ServiceException(responseResult != null ? responseResult : ResponseResult.SHOPPING_CART_GETINFO_ERROR);
}
if (apportionResponse.getResult() == null || CollectionUtils.isEmpty(apportionResponse.getResult().getProducts())) {
throw new ServiceException(ResponseResult.SHOPPING_CART_GETINFO_INVAILD);
......@@ -667,31 +722,31 @@ public class CheckOrder {
}
public void checkCardCode(String partnerId,String memberId,String cardCode){
if(StringUtils.isBlank(cardCode)){
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,LogThreadLocal.getTrackingNo());
BaseResponse<List<GetSvcInfoByMemberIdResponse>> responseDTO = memberPropertyService.getSvcInfoByMemberId(request, LogThreadLocal.getTrackingNo());
if (!ResponseResult.SUCCESS.getCode().equals(responseDTO.getCode()) || responseDTO.getData() == null
|| responseDTO.getData().size() == 0 ) {
|| responseDTO.getData().size() == 0) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR);
}
//svc卡无效
boolean b = true;
for (GetSvcInfoByMemberIdResponse getSvcInfoByMemberIdResponse : responseDTO.getData()){
if(cardCode.equals(getSvcInfoByMemberIdResponse.getCardCode()) && getSvcInfoByMemberIdResponse.getStatusFlag() == 0){
for (GetSvcInfoByMemberIdResponse getSvcInfoByMemberIdResponse : responseDTO.getData()) {
if (cardCode.equals(getSvcInfoByMemberIdResponse.getCardCode()) && getSvcInfoByMemberIdResponse.getStatusFlag() == 0) {
b = false;
}
}
if(b){
if (b) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR);
}
}
public void checkOrderByStore(StoreResponse.BizVO storeResponseDto){
public void checkOrderByStore(StoreResponse.BizVO storeResponseDto) {
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if (storeResponseDto.getActiveFlag() == null || storeResponseDto.getActiveFlag() != 1) {
throw new ServiceException(ResponseResult.STORE_ITEM_STOP_BUSINESS);
......
......@@ -13,6 +13,7 @@
package cn.freemud;
import cn.freemud.core.db.DataSourcesConfig;
import com.alibaba.fastjson.parser.ParserConfig;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import feign.RequestInterceptor;
import org.jasypt.encryption.StringEncryptor;
......@@ -48,6 +49,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@EnableAsync
public class ShoppingCartApplication {
public static void main(String[] args) {
ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
SpringApplication.run(ShoppingCartApplication.class, args);
}
......
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