|
|
@@ -1,14 +1,18 @@
|
|
|
package com.gree.mall.miniapp.logic.common;
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
+import com.gree.mall.miniapp.bean.common.OrderPickTimeConfigBean;
|
|
|
+import com.gree.mall.miniapp.bean.common.OrderPickTimeCountBean;
|
|
|
import com.gree.mall.miniapp.bean.user.CurrentCompanyWechat;
|
|
|
import com.gree.mall.miniapp.constant.Constant;
|
|
|
+import com.gree.mall.miniapp.enums.OrderStatusEnum;
|
|
|
import com.gree.mall.miniapp.exception.RemoteServiceException;
|
|
|
import com.gree.mall.miniapp.plus.entity.*;
|
|
|
import com.gree.mall.miniapp.plus.service.*;
|
|
|
@@ -59,6 +63,8 @@ public class CommonLogic {
|
|
|
UserCompanyAttrService userCompanyAttrService;
|
|
|
@Resource
|
|
|
UserCompanyDeliveryService userCompanyDeliveryService;
|
|
|
+ @Resource
|
|
|
+ OrderInfoService orderInfoService;
|
|
|
@Value("${spring.profiles.active}")
|
|
|
private String profiles;
|
|
|
@Value("${inf.url}")
|
|
|
@@ -382,7 +388,7 @@ public class CommonLogic {
|
|
|
return infUrl;
|
|
|
}
|
|
|
|
|
|
- public List<OrderPickTimeConfig> orderPickTimeList(String storageId) {
|
|
|
+ public List<OrderPickTimeConfigBean> orderPickTimeList(String storageId) {
|
|
|
CurrentCompanyWechat currentCompanyWechat = getCurrentCompanyWechat();
|
|
|
final List<OrderPickTimeConfig> list = orderPickTimeConfigService.lambdaQuery()
|
|
|
.eq(OrderPickTimeConfig::getCompanyWechatId, currentCompanyWechat.getCompanyWechatId())
|
|
|
@@ -390,10 +396,46 @@ public class CommonLogic {
|
|
|
.orderByDesc(OrderPickTimeConfig::getId)
|
|
|
.list();
|
|
|
|
|
|
+ List<OrderPickTimeConfigBean> beanList = new ArrayList<>();
|
|
|
|
|
|
+ for (OrderPickTimeConfig config : list) {
|
|
|
+ OrderPickTimeConfigBean bean = new OrderPickTimeConfigBean();
|
|
|
+ BeanUtils.copyProperties(config, bean);
|
|
|
+ DateTime curDate = DateUtil.date();
|
|
|
+ int queryDayCount = 7;
|
|
|
|
|
|
+ List<OrderPickTimeCountBean> countBeanList = new ArrayList<>();
|
|
|
+ while (queryDayCount > 0) {
|
|
|
+ if (queryDayCount < 7) {
|
|
|
+ curDate = DateUtil.offsetDay(curDate, 1);
|
|
|
+ }
|
|
|
+ OrderPickTimeCountBean countBean = new OrderPickTimeCountBean();
|
|
|
+ String date = DateUtil.formatDateTime(curDate);
|
|
|
+
|
|
|
+ Date startTime = DateUtil.parseDateTime(date + " " + config.getStartTime() + ":00");
|
|
|
+ Date endTime = DateUtil.parseDateTime(date + " " + config.getEndTime() + ":00");
|
|
|
+ // 统计时间段的订单数量
|
|
|
+ final Integer count = orderInfoService.lambdaQuery()
|
|
|
+ .select(OrderInfo::getOrderId)
|
|
|
+ .eq(OrderInfo::getCompanyWechatId, currentCompanyWechat.getCompanyWechatId())
|
|
|
+ .eq(OrderInfo::getPickStorageId, storageId)
|
|
|
+ .le(OrderInfo::getAppointmentPickStartTime, endTime)
|
|
|
+ .ge(OrderInfo::getAppointmentPickEndTime, startTime)
|
|
|
+ .in(OrderInfo::getOrderStatus, OrderStatusEnum.DQR.toString(), OrderStatusEnum.DJH.toString(), OrderStatusEnum.JHZ.toString())
|
|
|
+ .count();
|
|
|
+
|
|
|
+ countBean.setDate(date);
|
|
|
+ countBean.setCount(count);
|
|
|
+
|
|
|
+ countBeanList.add(countBean);
|
|
|
+
|
|
|
+ queryDayCount--;
|
|
|
+ }
|
|
|
+ bean.setCountList(countBeanList);
|
|
|
+ beanList.add(bean);
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- return list;
|
|
|
+ return beanList;
|
|
|
}
|
|
|
}
|