Commit 75fed94e by ping.wu

Merge branches 'feature/20211224_订单业务类型改造合并分支_wuping' and 'qa' of…

Merge branches 'feature/20211224_订单业务类型改造合并分支_wuping' and 'qa' of http://gitlab.freemud.com/order-group-application/order-group into qa

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
#	order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerExtendClient.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CustomScoreClient.java
parents 140da01e 657edb66
...@@ -664,10 +664,13 @@ public class OrderAdapter { ...@@ -664,10 +664,13 @@ public class OrderAdapter {
orderClients = Arrays.asList(OrderClientType.SAAS.getIndex(),OrderClientType.ALIPAY.getIndex()); orderClients = Arrays.asList(OrderClientType.SAAS.getIndex(),OrderClientType.ALIPAY.getIndex());
bizTypes.add(BizTypeEnum.ORDINARY.getBizType()); bizTypes.add(BizTypeEnum.ORDINARY.getBizType());
queryOrdersDto.setMarketingType(MarketTypeEnum.CASHIER.getIndex()); queryOrdersDto.setMarketingType(MarketTypeEnum.CASHIER.getIndex());
} else if (OrderChannelType.TIKTOK.getCode().equals(channelType)) {//抖音目前只有卖券,点餐业务已废弃
orderClients = Arrays.asList(OrderClientType.TIKTOKPAY.getIndex());
bizTypes.add(BizTypeEnum.SALE_COUPON.getBizType());
} else { } else {
orderClients = Arrays.asList(OrderClientType.SAAS.getIndex(),OrderClientType.ALIPAY.getIndex(),OrderClientType.APP.getIndex()); orderClients = Arrays.asList(OrderClientType.SAAS.getIndex(), OrderClientType.ALIPAY.getIndex(), OrderClientType.APP.getIndex());
bizTypes = Arrays.asList(BizTypeEnum.ORDINARY.getBizType(), BizTypeEnum.SALE_COUPON.getBizType(), BizTypeEnum.ADVANCE_ORDER.getBizType()); bizTypes = Arrays.asList(BizTypeEnum.ORDINARY.getBizType(), BizTypeEnum.SALE_COUPON.getBizType(), BizTypeEnum.ADVANCE_ORDER.getBizType());
queryOrdersDto.setMarketingTypes(Arrays.asList(MarketTypeEnum.ORDER.getIndex(),MarketTypeEnum.COLLAGE.getIndex(),MarketTypeEnum.WE_CHAT_LIVE_SELL.getIndex())); queryOrdersDto.setMarketingTypes(Arrays.asList(MarketTypeEnum.ORDER.getIndex(), MarketTypeEnum.COLLAGE.getIndex(), MarketTypeEnum.WE_CHAT_LIVE_SELL.getIndex()));
} }
List<Integer> payStatus = Arrays.asList(PayStatus.HAVE_PAID.getCode(), PayStatus.HAVE_REFUND.getCode(), PayStatus.COMPLETE.getCode()); List<Integer> payStatus = Arrays.asList(PayStatus.HAVE_PAID.getCode(), PayStatus.HAVE_REFUND.getCode(), PayStatus.COMPLETE.getCode());
queryOrdersDto.setPayStatus((Integer[]) payStatus.toArray()); queryOrdersDto.setPayStatus((Integer[]) payStatus.toArray());
...@@ -1875,7 +1878,7 @@ public class OrderAdapter { ...@@ -1875,7 +1878,7 @@ public class OrderAdapter {
String redisKey = MessageFormat.format(OrderRedisKeyConstant.ORDER_REFUND_CONFIG, partnerId, wxAppId); String redisKey = MessageFormat.format(OrderRedisKeyConstant.ORDER_REFUND_CONFIG, partnerId, wxAppId);
String hashKey = OrderTypeV1.TAKE_OUT.getCode().equals(orderType) String hashKey = OrderTypeV1.TAKE_OUT.getCode().equals(orderType)
? OrderRedisKeyConstant.HashKeyForOrderRefundConfig.TAKE_OUT ? OrderRedisKeyConstant.HashKeyForOrderRefundConfig.TAKE_OUT
: OrderRedisKeyConstant.HashKeyForOrderRefundConfig.EAT_IN;; : OrderRedisKeyConstant.HashKeyForOrderRefundConfig.EAT_IN;
String configStr = redisCache.hashGet(redisKey, hashKey); String configStr = redisCache.hashGet(redisKey, hashKey);
if (StringUtils.isNotEmpty(configStr)) { if (StringUtils.isNotEmpty(configStr)) {
OrderRefundConfigEntity config = JSON.parseObject(configStr, OrderRefundConfigEntity.class); OrderRefundConfigEntity config = JSON.parseObject(configStr, OrderRefundConfigEntity.class);
...@@ -3502,7 +3505,7 @@ public class OrderAdapter { ...@@ -3502,7 +3505,7 @@ public class OrderAdapter {
orderClients.add(OrderClientType.ALIPAY.getIndex()); orderClients.add(OrderClientType.ALIPAY.getIndex());
// } else if (OrderChannelType.BEAUTIFUL.getCode().equals(channelType)) {// 美业新加 // } else if (OrderChannelType.BEAUTIFUL.getCode().equals(channelType)) {// 美业新加
// orderClients.add(OrderClientType.BEAUTIFUL.getIndex()); // orderClients.add(OrderClientType.BEAUTIFUL.getIndex());
orderClients.add(OrderClientType.ALIPAY.getIndex()); // orderClients.add(OrderClientType.ALIPAY.getIndex());
// } else if (OrderChannelType.CASHIER.getCode().equals(channelType)) { // } else if (OrderChannelType.CASHIER.getCode().equals(channelType)) {
// orderClients.add(OrderClientType.CASHIER.getIndex()); // orderClients.add(OrderClientType.CASHIER.getIndex());
} else { } else {
......
...@@ -22,7 +22,7 @@ public enum OrderChannelType { ...@@ -22,7 +22,7 @@ public enum OrderChannelType {
SAASMALL("saasmall", "微商城"), SAASMALL("saasmall", "微商城"),
BEAUTIFUL("beautiful", "美业"), // BEAUTIFUL("beautiful", "美业"),
APP("app", "APP"), APP("app", "APP"),
......
...@@ -64,7 +64,7 @@ public class WeChatLiveMsgHandle { ...@@ -64,7 +64,7 @@ public class WeChatLiveMsgHandle {
*/ */
public void reportOrderStatus(OrderBeanV1 orderBean, int flag) { public void reportOrderStatus(OrderBeanV1 orderBean, int flag) {
if (Objects.nonNull(orderBean) if (Objects.nonNull(orderBean)
&& Objects.equals(orderBean.getMarketingType(), MarketTypeEnum.WE_CHAT_LIVE_SELL.getIndex())) { && Objects.equals(MarketTypeEnum.WE_CHAT_LIVE_SELL.getIndex().byteValue(),orderBean.getMarketingType())) {
OrderSycnPayRequestVO request = new OrderSycnPayRequestVO(); OrderSycnPayRequestVO request = new OrderSycnPayRequestVO();
String orderId = orderBean.getOid(); String orderId = orderBean.getOid();
......
...@@ -46,6 +46,7 @@ import cn.freemud.service.thirdparty.CustomerPropertyClient; ...@@ -46,6 +46,7 @@ import cn.freemud.service.thirdparty.CustomerPropertyClient;
import cn.freemud.service.thirdparty.ShoppingCartClient; import cn.freemud.service.thirdparty.ShoppingCartClient;
import cn.freemud.service.thirdparty.StoreBaseApiClient; import cn.freemud.service.thirdparty.StoreBaseApiClient;
import cn.freemud.utils.AppLogUtil; import cn.freemud.utils.AppLogUtil;
import cn.freemud.utils.DateUtils;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -502,9 +503,10 @@ public class CheckOrder { ...@@ -502,9 +503,10 @@ public class CheckOrder {
} }
Date createOrder = DateUtil.addMinutes(new Date(), 10); Date createOrder = DateUtil.addMinutes(new Date(), 10);
int diffDay = DateUtils.diffDay(new Date(), takeMealDateTime);
for (String todayTime : todayBusinessTimes) { for (String todayTime : todayBusinessTimes) {
//每段营业时间校验 //每段营业时间校验
BusinessDate businessDate2 = this.getStoreBusinessDate(todayTime, true); BusinessDate businessDate2 = this.getStoreBusinessDate(todayTime, diffDay);
if (createOrder.after(businessDate2.getEndDate())) { if (createOrder.after(businessDate2.getEndDate())) {
throw new ServiceException(ResponseResult.STORE_SELF_ERROR_10); throw new ServiceException(ResponseResult.STORE_SELF_ERROR_10);
} }
...@@ -522,21 +524,6 @@ public class CheckOrder { ...@@ -522,21 +524,6 @@ public class CheckOrder {
&& BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(bizType) == 0; && BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(bizType) == 0;
} }
/**
* 获取门店营业时间
*
* @param storeResponseDto
* @param toDay true 今日,false 明天
* @return
*/
private BusinessDate getStoreBusinessDate(StoreResponseDto 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, StoreResponseDto storeResponseDto, Date takeMealDateTime) { public void checkOrderExpectTime(CreateOrderVo createOrderVo, StoreResponseDto storeResponseDto, Date takeMealDateTime) {
if (takeMealDateTime == null) { if (takeMealDateTime == null) {
...@@ -548,11 +535,12 @@ public class CheckOrder { ...@@ -548,11 +535,12 @@ public class CheckOrder {
if (CollectionUtils.isEmpty(todayBusinessTimes)) { if (CollectionUtils.isEmpty(todayBusinessTimes)) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR); throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
} }
BusinessDate businessDate = getStoreBusinessDate(todayBusinessTimes.get(todayBusinessTimes.size() - 1), true); Date date = new Date();
int diffDay = DateUtils.diffDay(date, takeMealDateTime);
BusinessDate businessDate = getStoreBusinessDate(todayBusinessTimes.get(todayBusinessTimes.size() - 1), diffDay);
todayEndDate = businessDate.getEndDate(); todayEndDate = businessDate.getEndDate();
//在当天营业时间内 //在当天营业时间内
boolean expectTimeInTodayBusinessTime = true; boolean expectTimeInTodayBusinessTime = true;
Date date = new Date();
Date newDate = DateUtil.convert2Date(date, DateUtil.FORMAT_yyyyMMdd_date); Date newDate = DateUtil.convert2Date(date, DateUtil.FORMAT_yyyyMMdd_date);
newDate = DateUtil.addDays(newDate, 1); newDate = DateUtil.addDays(newDate, 1);
//隔天预约(在明日凌晨之后且在门店营业结束之后) //隔天预约(在明日凌晨之后且在门店营业结束之后)
...@@ -563,7 +551,7 @@ public class CheckOrder { ...@@ -563,7 +551,7 @@ public class CheckOrder {
boolean inTodayBusinessTime = true; boolean inTodayBusinessTime = true;
for (String todayTime : todayBusinessTimes) { for (String todayTime : todayBusinessTimes) {
//每段营业时间校验 //每段营业时间校验
BusinessDate businessDate2 = getStoreBusinessDate(todayTime, true); BusinessDate businessDate2 = getStoreBusinessDate(todayTime, diffDay);
if (takeMealDateTime.getTime() >= businessDate2.getStartDate().getTime() if (takeMealDateTime.getTime() >= businessDate2.getStartDate().getTime()
&& takeMealDateTime.getTime() <= businessDate2.getEndDate().getTime()) { && takeMealDateTime.getTime() <= businessDate2.getEndDate().getTime()) {
inTodayBusinessTime = false; inTodayBusinessTime = false;
...@@ -579,7 +567,7 @@ public class CheckOrder { ...@@ -579,7 +567,7 @@ public class CheckOrder {
List<String> nextDayBusinessTimes = storeCenterService.getNextDayBusinessTime(Integer.parseInt(storeResponseDto.getBusinessType()), storeResponseDto.getBusinessHoursDay()); List<String> nextDayBusinessTimes = storeCenterService.getNextDayBusinessTime(Integer.parseInt(storeResponseDto.getBusinessType()), storeResponseDto.getBusinessHoursDay());
boolean inNextDayBusinessTime = true; boolean inNextDayBusinessTime = true;
for (String nextDayTime : nextDayBusinessTimes) { for (String nextDayTime : nextDayBusinessTimes) {
BusinessDate storeNextBusinessDate = getStoreBusinessDate(nextDayTime, false); BusinessDate storeNextBusinessDate = getStoreBusinessDate(nextDayTime, diffDay);
if (takeMealDateTime.getTime() >= storeNextBusinessDate.getStartDate().getTime() if (takeMealDateTime.getTime() >= storeNextBusinessDate.getStartDate().getTime()
&& takeMealDateTime.getTime() <= storeNextBusinessDate.getEndDate().getTime()) { && takeMealDateTime.getTime() <= storeNextBusinessDate.getEndDate().getTime()) {
inNextDayBusinessTime = false; inNextDayBusinessTime = false;
...@@ -668,7 +656,7 @@ public class CheckOrder { ...@@ -668,7 +656,7 @@ public class CheckOrder {
if (CollectionUtils.isEmpty(todayBusinessTimes)) { if (CollectionUtils.isEmpty(todayBusinessTimes)) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR); 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), 0);
todayEndDate = businessDate.getEndDate(); todayEndDate = businessDate.getEndDate();
//隔天营业的预约时间处理 计算出预约时间在当前时间之前,预约时间加1天 newDate.before(todayEndDate)=隔天营业 //隔天营业的预约时间处理 计算出预约时间在当前时间之前,预约时间加1天 newDate.before(todayEndDate)=隔天营业
...@@ -691,9 +679,6 @@ public class CheckOrder { ...@@ -691,9 +679,6 @@ public class CheckOrder {
return takeMealDateTime; return takeMealDateTime;
} }
public BusinessDate getStoreBusinessDate(String businessHoursDay, boolean today) {
return this.getStoreBusinessDate(businessHoursDay, today ? 0 : 1);
}
public ShoppingCartGoodsDto getShoppingCartGoodsDto(CreateOrderVo createOrderVo) { public ShoppingCartGoodsDto getShoppingCartGoodsDto(CreateOrderVo createOrderVo) {
// ShoppingCartInfoRequestVo.BuyMemberCard buyMemberCard = null; // ShoppingCartInfoRequestVo.BuyMemberCard buyMemberCard = null;
...@@ -1402,7 +1387,7 @@ public class CheckOrder { ...@@ -1402,7 +1387,7 @@ public class CheckOrder {
} }
} }
private BusinessDate getStoreBusinessDate(String businessHoursDay, int today) { public BusinessDate getStoreBusinessDate(String businessHoursDay, int today) {
BusinessDate businessDate = new BusinessDate(); BusinessDate businessDate = new BusinessDate();
//设置营业开始和结束时间 //设置营业开始和结束时间
String businessHourStr = businessHoursDay.replace("-", ",").replace("_", ","); String businessHourStr = businessHoursDay.replace("-", ",").replace("_", ",");
...@@ -1459,13 +1444,14 @@ public class CheckOrder { ...@@ -1459,13 +1444,14 @@ public class CheckOrder {
private void getBusinessTimeByType1(String businessHoursDay, Date takeMealDateTime) { private void getBusinessTimeByType1(String businessHoursDay, Date takeMealDateTime) {
String[] splitArr = businessHoursDay.split(";"); String[] splitArr = businessHoursDay.split(";");
boolean isBusinessTime = false; boolean isBusinessTime = false;
int diffDay = DateUtils.diffDay(new Date(), takeMealDateTime);
for (String businessHours : splitArr) { for (String businessHours : splitArr) {
if ("00: 00-00: 00".equals(businessHours)) { if ("00: 00-00: 00".equals(businessHours)) {
// 不在营业时间范围 // 不在营业时间范围
throw new ServiceException(ResponseResult.STORE_NO_OPEN); throw new ServiceException(ResponseResult.STORE_NO_OPEN);
} }
// 获取营业时间 // 获取营业时间
BusinessDate storeBusinessDate = getStoreBusinessDate(businessHours, true); BusinessDate storeBusinessDate = getStoreBusinessDate(businessHours, diffDay);
// 检验 是否在营业时间 范围内 // 检验 是否在营业时间 范围内
if (takeMealDateTime.after(storeBusinessDate.getStartDate()) && takeMealDateTime.before(storeBusinessDate.getEndDate())) { if (takeMealDateTime.after(storeBusinessDate.getStartDate()) && takeMealDateTime.before(storeBusinessDate.getEndDate())) {
// 在营业时间范围 // 在营业时间范围
......
...@@ -2514,9 +2514,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -2514,9 +2514,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
channelType = OrderChannelType.SAASMALL.getCode(); channelType = OrderChannelType.SAASMALL.getCode();
} else if (UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) { } else if (UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) {
channelType = OrderChannelType.APP.getCode(); channelType = OrderChannelType.APP.getCode();
} else if (OrderChannelType.BEAUTIFUL.getCode().equals(queryOrderVo.getChannelType())) {
channelType = OrderChannelType.BEAUTIFUL.getCode();
} }
// else if (OrderChannelType.BEAUTIFUL.getCode().equals(queryOrderVo.getChannelType())) {
// channelType = OrderChannelType.BEAUTIFUL.getCode();
// }
return channelType; return channelType;
} }
......
...@@ -295,7 +295,7 @@ public class OrderAdapterServiceImpl { ...@@ -295,7 +295,7 @@ public class OrderAdapterServiceImpl {
if (!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)) { if (!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)) {
return orderAdapter.paySuccessLockedMessage(); return orderAdapter.paySuccessLockedMessage();
} }
OrderBeanV1 orderBeanSass = null; OrderBeanV1 orderBean = null;
try { try {
ConfirmOrderDto confirmOrderDto = orderAdapter.convent2ConfirmOrderDto(message); ConfirmOrderDto confirmOrderDto = orderAdapter.convent2ConfirmOrderDto(message);
// 蜜雪+混合支付专用:通过交易号从缓存中拿订单号,如果有数据则实际订单号为其value值 // 蜜雪+混合支付专用:通过交易号从缓存中拿订单号,如果有数据则实际订单号为其value值
...@@ -307,7 +307,7 @@ public class OrderAdapterServiceImpl { ...@@ -307,7 +307,7 @@ public class OrderAdapterServiceImpl {
if (MapUtils.isEmpty(orderBeans)) { if (MapUtils.isEmpty(orderBeans)) {
return gson.toJson(message); return gson.toJson(message);
} }
OrderBeanV1 orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode()); orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
// 注意,支付状态判断优先级最高 // 注意,支付状态判断优先级最高
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) { if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return orderAdapter.sendPaySuccessNoticeMessage(); return orderAdapter.sendPaySuccessNoticeMessage();
...@@ -319,10 +319,6 @@ public class OrderAdapterServiceImpl { ...@@ -319,10 +319,6 @@ public class OrderAdapterServiceImpl {
orderServiceImpl.timeOutRefund(orderBean); orderServiceImpl.timeOutRefund(orderBean);
return orderAdapter.sendPaySuccessNoticeMessage(); return orderAdapter.sendPaySuccessNoticeMessage();
} }
//紧急开关时 判断订单bean是否存在
orderBeanSass = orderBean;
OrderClientType.SAAS.getIndex();
// 支付成功处理 // 支付成功处理
String result = ""; String result = "";
switch (client) { switch (client) {
...@@ -330,42 +326,36 @@ public class OrderAdapterServiceImpl { ...@@ -330,42 +326,36 @@ public class OrderAdapterServiceImpl {
result = orderCommonService.paySuccessCallback(message, confirmOrderDto, orderBeans); result = orderCommonService.paySuccessCallback(message, confirmOrderDto, orderBeans);
break; break;
case 27: //抖音卖券订单处理 OrderClientType.TIKTOKPAY.getIndex() case 27: //抖音卖券订单处理 OrderClientType.TIKTOKPAY.getIndex()
if (orderBean.getBizType() == BizTypeEnum.SALE_COUPON.getBizType()) { if (Objects.equals(BizTypeEnum.SALE_COUPON.getBizType(),orderBean.getBizType())) {
result = sellCouponOrderService.paySuccessCallbackForTiktok(message, confirmOrderDto, orderBeans); result = sellCouponOrderService.paySuccessCallbackForTiktok(message, confirmOrderDto, orderBeans);
break; break;
} }
break; break;
// bizType不等于4的,非积分商城订单,继续往下走 // bizType不等于4的,非积分商城订单,继续往下走
case 12: //app订单 OrderClientType.APP.getIndex() case 12: //app订单 OrderClientType.APP.getIndex()
if (orderBean.getBizType() != 6) { if (!Objects.equals(BizTypeEnum.SALE_COUPON.getBizType(),orderBean.getBizType())) {
// bizType为卖券的订单,不走app订单逻辑 // bizType为卖券的订单,不走app订单逻辑
result = appOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans); result = appOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
break; break;
} }
// 默认点餐处理 default://微信,支付宝渠道
if (orderBean.getBizType() == BizTypeEnum.ORDINARY.getBizType()) {
result = orderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
break;
}
break;
default:
// 积分商城订单 // 积分商城订单
if (orderBean.getBizType() == BizTypeEnum.INTEGRAL_MALL.getBizType()) { if (Objects.equals(BizTypeEnum.INTEGRAL_MALL.getBizType(),orderBean.getBizType())) {
result = pointsMallOrderService.paySuccessCallback(message,orderBeans); result = pointsMallOrderService.paySuccessCallback(message,orderBeans);
break; break;
} }
// 买券虚拟订单 // 买券虚拟订单
if (orderBean.getBizType() == BizTypeEnum.SALE_COUPON.getBizType()) { if (Objects.equals(BizTypeEnum.SALE_COUPON.getBizType(),orderBean.getBizType())) {
result = sellCouponOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans); result = sellCouponOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
break; break;
} }
// 微商城订单处理 // 微商城订单处理
if (orderBean.getBizType() == BizTypeEnum.MALL.getBizType()) { if (Objects.equals(BizTypeEnum.MALL.getBizType(),orderBean.getBizType())){
result = mallOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans); result = mallOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
break; break;
} }
// 收银单处理 // 收银单处理
if (orderBean.getMarketingType().intValue() == MarketTypeEnum.CASHIER.getIndex()) { if (Objects.equals(MarketTypeEnum.CASHIER.getIndex(),orderBean.getMarketingType().intValue())) {
result = cashierOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans); result = cashierOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
break; break;
} }
...@@ -374,8 +364,9 @@ public class OrderAdapterServiceImpl { ...@@ -374,8 +364,9 @@ public class OrderAdapterServiceImpl {
result = mcCafeOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans); result = mcCafeOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
break; break;
} }
// 默认点餐处理 // 默认点餐处理(点餐业务和预定业务)
if (orderBean.getBizType() == BizTypeEnum.ORDINARY.getBizType() || orderBean.getBizType() == BizTypeEnum.ADVANCE_ORDER.getBizType() ) { if (Objects.equals(BizTypeEnum.ORDINARY.getBizType(),orderBean.getBizType())
|| Objects.equals(BizTypeEnum.ADVANCE_ORDER.getBizType(),orderBean.getBizType())) {
result = orderService.paySuccessCallback(message, confirmOrderDto, orderBeans); result = orderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
break; break;
} }
...@@ -387,9 +378,9 @@ public class OrderAdapterServiceImpl { ...@@ -387,9 +378,9 @@ public class OrderAdapterServiceImpl {
//删除分布式锁 //删除分布式锁
redisCache.delete("saas:lockAfter:" + paySuccessKey); redisCache.delete("saas:lockAfter:" + paySuccessKey);
// 增加全局开关,当紧急方案打开时进行直接处理callBack消息 // 增加全局开关,当紧急方案打开时进行直接处理callBack消息
if (orderBeanSass != null && orderCenterProperties.isUrgentCallbackOpen()) { if (orderBean != null && orderCenterProperties.isUrgentCallbackOpen()) {
// 查询 // 查询
OrderCallBackRequestVo requestVo = saasOrderHandle.convert2CallbackReq(orderBeanSass.getOid(),2,null,null); OrderCallBackRequestVo requestVo = saasOrderHandle.convert2CallbackReq(orderBean.getOid(),2,null,null);
ApiLog.infoMessage("紧急方案 支付成功直接调用callback,orderCode:{},requestId:{}",requestVo.getOrderCode(),requestVo.getRequestId()); ApiLog.infoMessage("紧急方案 支付成功直接调用callback,orderCode:{},requestId:{}",requestVo.getOrderCode(),requestVo.getRequestId());
orderCallbackClient.callbackOrder(requestVo); orderCallbackClient.callbackOrder(requestVo);
} }
......
...@@ -2736,8 +2736,10 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2736,8 +2736,10 @@ public class OrderServiceImpl implements Orderservice {
channelType = OrderChannelType.SAASMALL.getCode(); channelType = OrderChannelType.SAASMALL.getCode();
} else if (UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) { } else if (UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) {
channelType = OrderChannelType.APP.getCode(); channelType = OrderChannelType.APP.getCode();
} else if (OrderChannelType.BEAUTIFUL.getCode().equals(queryOrderVo.getChannelType())) { // } else if (OrderChannelType.BEAUTIFUL.getCode().equals(queryOrderVo.getChannelType())) {
channelType = OrderChannelType.BEAUTIFUL.getCode(); // channelType = OrderChannelType.BEAUTIFUL.getCode();
} else if (OrderChannelType.TIKTOK.getCode().equals(queryOrderVo.getChannelType())) {
channelType = OrderChannelType.TIKTOK.getCode();
} else if (OrderChannelType.CASHIER.getCode().equals(queryOrderVo.getChannelType())) { } else if (OrderChannelType.CASHIER.getCode().equals(queryOrderVo.getChannelType())) {
channelType = OrderChannelType.CASHIER.getCode(); channelType = OrderChannelType.CASHIER.getCode();
} }
......
...@@ -16,7 +16,6 @@ import cn.freemud.base.util.DateUtil; ...@@ -16,7 +16,6 @@ import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.StoreResponseDto; import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.order.BusinessDate; import cn.freemud.entities.dto.order.BusinessDate;
import cn.freemud.entities.vo.CreateOrderBaseVo; import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.ProductVo; import cn.freemud.entities.vo.ProductVo;
import cn.freemud.entities.vo.QueryOrderResponseVo; import cn.freemud.entities.vo.QueryOrderResponseVo;
import cn.freemud.enums.CreateOrderType; import cn.freemud.enums.CreateOrderType;
...@@ -28,7 +27,6 @@ import com.alibaba.fastjson.JSONObject; ...@@ -28,7 +27,6 @@ import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1;
import com.freemud.application.sdk.api.ordercenter.entities.v1.ProductDiscountV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.ProductDiscountV1;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSendCouponResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSendCouponResp;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType; import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto; import com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto;
...@@ -54,42 +52,6 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService { ...@@ -54,42 +52,6 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
private CheckOrder checkOrder; private CheckOrder checkOrder;
// @Override // @Override
public void createOrderTimeCheck(StoreResponseDto storeResponseDto, CreateOrderVo createOrderVo) {
// 只有外卖单才做下单时间判断
if (!CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType())){
return;
}
// 如果是明天的预约单,不做时间检查
// 设置预约时间
Date takeMealDateTime = checkOrder.getOrderExpectTime(createOrderVo.getTakeMealFlag(), createOrderVo.getTakeMealTime(), createOrderVo.getExpectTime(),
CreateOrderType.getByCode(createOrderVo.getOrderType()), storeResponseDto.getServiceTime(), storeResponseDto);
Date todayEnd = DateUtil.setEndDay(new Date());
if(takeMealDateTime != null && todayEnd.before(takeMealDateTime)){
return;
}
//获取门店当天营业时间
// coco只有一个营业时间,如果返回多个就报错
Date todayEndDate = null;
List<String> todayBusinessTimes = storeCenterService.getTodayBusinessTime(Integer.parseInt(storeResponseDto.getBusinessType()), storeResponseDto.getBusinessHoursDay());
if (CollectionUtils.isEmpty(todayBusinessTimes) || 1 < todayBusinessTimes.size() ) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
}
BusinessDate businessDate = checkOrder.getStoreBusinessDate(todayBusinessTimes.get(0), true);
todayEndDate = businessDate.getEndDate();
// 当前时间+15分钟 > 门店打烊时间,返回错误
Date nowAddDate = DateUtil.addMinutes(new Date(),15);
if(nowAddDate.after(todayEndDate)){
throw new ServiceException(ResponseResult.STORE_WILL_COLSE);
}
}
// @Override
public void createOrderTimeCheck(StoreResponseDto storeResponseDto, CreateOrderBaseVo createOrderVo) { public void createOrderTimeCheck(StoreResponseDto storeResponseDto, CreateOrderBaseVo createOrderVo) {
// 只有外卖单才做下单时间判断 // 只有外卖单才做下单时间判断
if (!CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType())){ if (!CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType())){
...@@ -114,7 +76,7 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService { ...@@ -114,7 +76,7 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
if (CollectionUtils.isEmpty(todayBusinessTimes) || 1 < todayBusinessTimes.size() ) { if (CollectionUtils.isEmpty(todayBusinessTimes) || 1 < todayBusinessTimes.size() ) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR); throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
} }
BusinessDate businessDate = checkOrder.getStoreBusinessDate(todayBusinessTimes.get(0), true); BusinessDate businessDate = checkOrder.getStoreBusinessDate(todayBusinessTimes.get(0), 0);
todayEndDate = businessDate.getEndDate(); todayEndDate = businessDate.getEndDate();
// 当前时间+15分钟 > 门店打烊时间,返回错误 // 当前时间+15分钟 > 门店打烊时间,返回错误
......
...@@ -44,6 +44,38 @@ public class DateUtils { ...@@ -44,6 +44,38 @@ public class DateUtils {
} }
} }
public static int diffDay(Date before, Date after) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(before);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(after);
int day1= cal1.get(Calendar.DAY_OF_YEAR);
int day2 = cal2.get(Calendar.DAY_OF_YEAR);
int year1 = cal1.get(Calendar.YEAR);
int year2 = cal2.get(Calendar.YEAR);
if(year1 != year2) //同一年
{
int timeDistance = 0 ;
for(int i = year1 ; i < year2 ; i ++)
{
if(i%4==0 && i%100!=0 || i%400==0) //闰年
{
timeDistance += 366;
}
else //不是闰年
{
timeDistance += 365;
}
}
return timeDistance + (day2-day1) ;
}
else //不同年
{
return day2-day1;
}
}
} }
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