zhuyifan

订餐规则

......@@ -5,6 +5,7 @@ import com.infoloop.tianting.annotation.RepeatSubmit;
import com.infoloop.tianting.mealorderservice.SingleMealOrderRpcResponse;
import com.infoloop.tianting.model.common.CreatedResult;
import com.infoloop.tianting.model.dto.MealOrderDTO;
import com.infoloop.tianting.model.vo.DeliveryRuleVO;
import com.infoloop.tianting.model.vo.MealOrderVO;
import com.infoloop.tianting.service.MealOrderService;
import io.swagger.annotations.Api;
......@@ -59,4 +60,11 @@ public class MealOrderController {
return mealOrderService.getMealOrderById(mealOrder);
}
@ApiOperation(value = "订餐规则")
@GetMapping("/deliveryrule")
@ResponseStatus(HttpStatus.OK)
public DeliveryRuleVO getDeliveryRule() {
return mealOrderService.getDeliveryRule();
}
}
......
package com.infoloop.tianting.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
@Data
@ApiModel(value = "订餐规则")
@Builder
public class DeliveryRuleVO {
@ApiModelProperty(value = "订餐开始时间")
private String startTime;
@ApiModelProperty(value = "订餐结束时间")
private String endTime;
private Boolean monday;
private Boolean tuesday;
private Boolean wednesday;
private Boolean thursday;
private Boolean friday;
private Boolean saturday;
private Boolean sunday;
}
......@@ -3,6 +3,7 @@ package com.infoloop.tianting.service;
import com.infoloop.tianting.mealorderservice.SingleMealOrderRpcResponse;
import com.infoloop.tianting.model.common.CreatedResult;
import com.infoloop.tianting.model.dto.MealOrderDTO;
import com.infoloop.tianting.model.vo.DeliveryRuleVO;
import com.infoloop.tianting.model.vo.MealOrderVO;
import java.util.List;
......@@ -14,4 +15,6 @@ public interface MealOrderService {
CreatedResult<MealOrderVO> createMealOrder(MealOrderDTO.CreateMealOrderDTO createMealOrderDTO);
MealOrderVO getMealOrderById(SingleMealOrderRpcResponse mealOrder);
DeliveryRuleVO getDeliveryRule();
}
......
package com.infoloop.tianting.service.client;
import com.infoloop.tianting.deliveryruleservice.DeliveryTemplateTypeEnum;
import com.infoloop.tianting.deliveryruleservice.GetClientLabelsByIdsRpcRequest;
import com.infoloop.tianting.deliveryruleservice.GetClientLabelsByIdsRpcResponse;
import com.infoloop.tianting.deliveryruleservice.GetDefaultDeliveryTemplateAndRuleRpcRequest;
import com.infoloop.tianting.deliveryruleservice.GetDefaultDeliveryTemplateAndRuleRpcResponse;
import com.infoloop.tianting.deliveryruleservice.QueryClientLabelsByConditionRpcRequest;
import com.infoloop.tianting.deliveryruleservice.QueryClientLabelsByConditionRpcResponse;
import com.infoloop.tianting.deliveryruleservice.TiantingDeliveryRuleServiceRpcGrpc;
......@@ -40,5 +43,14 @@ public class DeliveryRuleServiceRpcClient {
return deliveryRuleServiceRpcBlockingStub.getClientLabelsByIds(request);
}
public GetDefaultDeliveryTemplateAndRuleRpcResponse getDefaultDeliveryTemplateAndRule(int enterpriseId) {
final var request = GetDefaultDeliveryTemplateAndRuleRpcRequest
.newBuilder()
.setEnterpriseId(enterpriseId)
.setType(DeliveryTemplateTypeEnum.DELIVERY_TEMPLATE_TYPE_DELIVERY)
.build();
return deliveryRuleServiceRpcBlockingStub.getDefaultDeliveryTemplateAndRule(request);
}
}
......
......@@ -10,9 +10,11 @@ import com.infoloop.tianting.mealorderservice.MenuSchedule;
import com.infoloop.tianting.mealorderservice.SingleMealOrderRpcResponse;
import com.infoloop.tianting.model.common.CreatedResult;
import com.infoloop.tianting.model.dto.MealOrderDTO;
import com.infoloop.tianting.model.vo.DeliveryRuleVO;
import com.infoloop.tianting.model.vo.MealOrderVO;
import com.infoloop.tianting.service.MealOrderService;
import com.infoloop.tianting.service.client.ClientInventoryServiceRpcClient;
import com.infoloop.tianting.service.client.DeliveryRuleServiceRpcClient;
import com.infoloop.tianting.service.client.MealOrderServiceRpcClient;
import com.infoloop.tianting.utils.DateUtil;
import lombok.RequiredArgsConstructor;
......@@ -36,6 +38,8 @@ public class MealOrderServiceImpl implements MealOrderService {
private final ClientInventoryServiceRpcClient clientInventoryServiceRpcClient;
private final DeliveryRuleServiceRpcClient deliveryRuleServiceRpcClient;
@Override
public List<MealOrderVO> queryMealOrders(MealOrderDTO.QueryMealOrderDTO queryMealOrderDTO) {
final var loginInfo = LoginContextHolder.getLoginInfo();
......@@ -118,4 +122,23 @@ public class MealOrderServiceImpl implements MealOrderService {
.meals(mealOrder.getMealsList().stream().map(e -> MealOrderVO.Meals.builder().date(e.getDate()).menu(e.getMenu()).build()).toList())
.build();
}
@Override
public DeliveryRuleVO getDeliveryRule() {
final var rule = deliveryRuleServiceRpcClient.getDefaultDeliveryTemplateAndRule(LoginContextHolder.getEnterpriseId()).getRule();
if (rule.getConfigJson().getRulesList().isEmpty()) {
return DeliveryRuleVO.builder().build();
}
return DeliveryRuleVO.builder()
.startTime(rule.getConfigJson().getRules(0).getStartTime())
.endTime(rule.getConfigJson().getRules(0).getEndTime())
.monday(rule.getConfigJson().getRules(0).getMonday())
.tuesday(rule.getConfigJson().getRules(0).getTuesday())
.wednesday(rule.getConfigJson().getRules(0).getWednesday())
.thursday(rule.getConfigJson().getRules(0).getThursday())
.friday(rule.getConfigJson().getRules(0).getFriday())
.saturday(rule.getConfigJson().getRules(0).getSaturday())
.sunday(rule.getConfigJson().getRules(0).getSunday())
.build();
}
}
......