zhuyifan

fix(service): 修复订单创建时的时区问题

...@@ -57,6 +57,9 @@ import lombok.extern.slf4j.Slf4j; ...@@ -57,6 +57,9 @@ import lombok.extern.slf4j.Slf4j;
57 import org.springframework.beans.factory.annotation.Autowired; 57 import org.springframework.beans.factory.annotation.Autowired;
58 import org.springframework.stereotype.Service; 58 import org.springframework.stereotype.Service;
59 59
60 +import java.time.LocalDateTime;
61 +import java.time.ZoneOffset;
62 +import java.time.ZonedDateTime;
60 import java.util.ArrayList; 63 import java.util.ArrayList;
61 import java.util.Arrays; 64 import java.util.Arrays;
62 import java.util.List; 65 import java.util.List;
...@@ -98,8 +101,11 @@ public class OrderServiceImpl implements OrderService { ...@@ -98,8 +101,11 @@ public class OrderServiceImpl implements OrderService {
98 createOrderDto.setCustomerId(operatorCreateOrderDto.getCustomerId()); 101 createOrderDto.setCustomerId(operatorCreateOrderDto.getCustomerId());
99 createOrderDto.setStallId(operatorCreateOrderDto.getStallId()); 102 createOrderDto.setStallId(operatorCreateOrderDto.getStallId());
100 createOrderDto.setMenuId(operatorCreateOrderDto.getMenuId()); 103 createOrderDto.setMenuId(operatorCreateOrderDto.getMenuId());
101 - final var mealTime = operatorCreateOrderDto.getMealTime().toLocalDate().atStartOfDay(); 104 + LocalDateTime utcLocalDateTime = operatorCreateOrderDto.getMealTime();
102 - createOrderDto.setMealTime(mealTime); 105 + ZonedDateTime utcZoned = utcLocalDateTime.atZone(ZoneOffset.UTC);
106 + ZonedDateTime beijingZoned = utcZoned.withZoneSameInstant(DateUtil.CHINA_ZONE);
107 + LocalDateTime mealTimeBeijingStart = beijingZoned.toLocalDate().atStartOfDay();
108 + createOrderDto.setMealTime(mealTimeBeijingStart);
103 createOrderDto.setRemark(operatorCreateOrderDto.getRemark()); 109 createOrderDto.setRemark(operatorCreateOrderDto.getRemark());
104 createOrderDto.setCreatedBy(operatorLoginInfo.getId()); 110 createOrderDto.setCreatedBy(operatorLoginInfo.getId());
105 createOrderDto.setClientId(operator.getClientId()); 111 createOrderDto.setClientId(operator.getClientId());
......