houweiyu 4 سال پیش
والد
کامیت
be01b136f8

+ 22 - 0
dinner-core/src/main/java/com/fdage/base/dto/DeskListRspDto.java

@@ -0,0 +1,22 @@
+package com.fdage.base.dto;
+
+import com.fdage.base.entity.TmDesk;
+import com.fdage.base.entity.TmOrder;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 2 * @Author: Abner
+ * 3 * @Date: 2021/3/2 10:57
+ * 4
+ */
+@Data
+public class DeskListRspDto implements Serializable {
+    private static final long serialVersionUID=1L;
+
+    private TmDesk tmDesk;
+
+    private TmOrder tmOrder;
+
+}

+ 1 - 0
dinner-core/src/main/java/com/fdage/base/enums/OrderStatusEnum.java

@@ -12,6 +12,7 @@ public enum  OrderStatusEnum {
     ORDER_SUCCESS(2 , "预定成功"),
     ORDER_FAIL(3 , "预定失败"),
     ORDER_CANCEL(4 , "预定取消"),
+    ORDER_USED(5 , "已用餐"),
     ;
 
     private Integer status;

+ 17 - 0
dinner-core/src/main/java/com/fdage/base/service/impl/TmOrderServiceImpl.java

@@ -7,15 +7,19 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdage.base.dao.TmOrderDao;
 import com.fdage.base.entity.TmOrder;
 import com.fdage.base.enums.IdPreEnum;
+import com.fdage.base.enums.OrderStatusEnum;
 import com.fdage.base.service.ITmOrderService;
 import com.fdage.base.utils.DataUtils;
 import fdage.back.sdk.base.enums.ResultCodeEnum;
 import fdage.back.sdk.base.exception.CommonBaseException;
 import fdage.back.sdk.base.uuid.SnowFlakeUUidUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * <p>
@@ -36,6 +40,19 @@ public class TmOrderServiceImpl extends ServiceImpl<TmOrderDao, TmOrder> impleme
         return getBaseMapper().selectPage(page , lambdaQueryWrapper);
     }
 
+    public TmOrder getLatestByDesk(String deskId){
+        if(StringUtils.isBlank(deskId)){
+            return null;
+        }
+        LambdaQueryWrapper<TmOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(TmOrder::getDeskId , deskId);
+        lambdaQueryWrapper.eq(TmOrder::getIsDelete , 0);
+        lambdaQueryWrapper.eq(TmOrder::getStatus , OrderStatusEnum.ORDER_SUCCESS.getStatus());
+        lambdaQueryWrapper.orderByDesc(TmOrder::getCreateTime);
+        lambdaQueryWrapper.last("limit 1");
+        return getBaseMapper().selectOne(lambdaQueryWrapper);
+    }
+
     public TmOrder addNew(TmOrder tmOrder){
         if(null == tmOrder){
             return tmOrder;

+ 25 - 2
dinner-core/src/main/java/com/fdage/controller/app/AppDeskController.java

@@ -1,8 +1,11 @@
 package com.fdage.controller.app;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.fdage.base.dto.DeskListRspDto;
 import com.fdage.base.entity.TmDesk;
+import com.fdage.base.entity.TmOrder;
 import com.fdage.base.service.impl.TmDeskServiceImpl;
+import com.fdage.base.service.impl.TmOrderServiceImpl;
 import com.fdage.base.utils.DataUtils;
 import fdage.back.sdk.base.entity.Result;
 import fdage.back.sdk.base.enums.ResultCodeEnum;
@@ -12,6 +15,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -19,6 +23,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 2 * @Author: Abner
  * 3 * @Date: 2021/2/19 11:02
@@ -33,6 +40,9 @@ public class AppDeskController {
     @Autowired
     private TmDeskServiceImpl tmDeskService;
 
+    @Autowired
+    private TmOrderServiceImpl tmOrderService;
+
     @GetMapping("/listOfCanteen")
     @ApiOperation(value = "获取餐厅下所有可预订的桌子列表")
     @ApiImplicitParams({
@@ -50,9 +60,22 @@ public class AppDeskController {
             throw new CommonBaseException(ResultCodeEnum.D101 , "餐厅ID缺失");
         }
         IPage<TmDesk> resultPage = tmDeskService.getListByCanteen(pageNum , pageSize , canteenId);
-
+        List<DeskListRspDto> totalDestList = new ArrayList<>();
+        if(null != resultPage && !CollectionUtils.isEmpty(resultPage.getRecords())){
+            for (TmDesk desk : resultPage.getRecords()) {
+                 DeskListRspDto deskListRspDto = new DeskListRspDto();
+                 deskListRspDto.setTmDesk(desk);
+                 if(null != desk){
+                     TmOrder tmOrder = tmOrderService.getLatestByDesk(desk.getId());
+                     if(null != tmOrder){
+                         deskListRspDto.setTmOrder(tmOrder);
+                     }
+                 }
+                 totalDestList.add(deskListRspDto);
+            }
+        }
         return  Result.success(DataUtils.assembleResult(resultPage.getTotal(), resultPage.getPages(),
-                resultPage.getCurrent(), resultPage.getRecords()));
+                resultPage.getCurrent(), totalDestList));
     }
 
     @GetMapping("/getDetail")