فهرست منبع

feat: 新增点餐管理餐食费查询、编辑保存

penghao 2 ماه پیش
والد
کامیت
4786bd98ef

+ 4 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreInfo.java

@@ -355,4 +355,8 @@ public class StoreInfo {
     @TableField("store_tickets")
     private Integer storeTickets;
 
+    @ApiModelProperty(value = "餐具费(限2位正整数)")
+    @TableField("tableware_fee")
+    private Integer tablewareFee;
+
 }

+ 22 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/TablewareFeeDto.java

@@ -0,0 +1,22 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 餐具费DTO
+ *
+ * @author auto-generated
+ * @since 2025-01-27
+ */
+@Data
+@ApiModel(value = "TablewareFeeDto", description = "餐具费DTO")
+public class TablewareFeeDto {
+
+    @ApiModelProperty(value = "门店ID")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "餐具费(限2位正整数)")
+    private Integer tablewareFee;
+}

+ 43 - 0
alien-store/src/main/java/shop/alien/store/controller/StoreCuisineController.java

@@ -11,12 +11,15 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreCuisine;
+import shop.alien.entity.store.StoreInfo;
 import shop.alien.entity.store.StorePrice;
 import shop.alien.entity.store.dto.CuisineComboDto;
 import shop.alien.entity.store.dto.CuisineTypeResponseDto;
+import shop.alien.entity.store.dto.TablewareFeeDto;
 import shop.alien.entity.store.vo.PriceListVo;
 import shop.alien.store.annotation.TrackEvent;
 import shop.alien.store.service.StoreCuisineService;
+import shop.alien.store.service.StoreInfoService;
 import shop.alien.store.service.StorePriceService;
 import shop.alien.store.util.ai.AiGetPriceUtil;
 
@@ -44,6 +47,8 @@ public class StoreCuisineController {
 
     private final StorePriceService storePriceService;
 
+    private final StoreInfoService storeInfoService;
+
     @ApiOperation("新增美食套餐或单品")
     @ApiOperationSupport(order = 1)
     @PostMapping("/addCuisineCombo")
@@ -248,6 +253,44 @@ public class StoreCuisineController {
         String price = priceObj.toString();
         return R.data(price);
     }
+
+    @ApiOperation("保存或更新餐具费")
+    @ApiOperationSupport(order = 8)
+    @PostMapping("/saveTablewareFee")
+    public R<String> saveTablewareFee(@RequestBody TablewareFeeDto tablewareFeeDto) {
+        log.info("StoreCuisineController.saveTablewareFee?storeId={},tablewareFee={}", 
+                tablewareFeeDto.getStoreId(), tablewareFeeDto.getTablewareFee());
+        
+        if (tablewareFeeDto.getStoreId() == null) {
+            return R.fail("门店ID不能为空");
+        }
+        
+        if (storeInfoService.saveOrUpdateTablewareFee(tablewareFeeDto.getStoreId(), tablewareFeeDto.getTablewareFee())) {
+            return R.success("保存成功");
+        }
+        return R.fail("保存失败");
+    }
+
+    @ApiOperation("查询餐具费")
+    @ApiOperationSupport(order = 9)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "storeId", value = "门店ID", dataType = "Integer", paramType = "query", required = true)
+    })
+    @GetMapping("/getTablewareFee")
+    public R<Integer> getTablewareFee(@RequestParam("storeId") Integer storeId) {
+        log.info("StoreCuisineController.getTablewareFee?storeId={}", storeId);
+        
+        if (storeId == null) {
+            return R.fail("门店ID不能为空");
+        }
+        
+        StoreInfo storeInfo = storeInfoService.getById(storeId);
+        if (storeInfo == null) {
+            return R.fail("门店不存在");
+        }
+        
+        return R.data(storeInfo.getTablewareFee());
+    }
 }
 
 

+ 9 - 0
alien-store/src/main/java/shop/alien/store/service/StoreInfoService.java

@@ -213,6 +213,15 @@ public interface StoreInfoService extends IService<StoreInfo> {
     String exportExcelExpirationTime(String id, String expiredState) throws IOException;
 
     /**
+     * 保存或更新餐具费
+     *
+     * @param storeId 门店ID
+     * @param tablewareFee 餐具费(限2位正整数)
+     * @return boolean 是否成功
+     */
+    boolean saveOrUpdateTablewareFee(Integer storeId, Integer tablewareFee);
+
+    /**
      * 八大类用户端筛选
      */
     IPage<StoreInfo> getScreening(ScreeningOfEightMajorCategoriesVO screeningOfEightMajorCategoriesVO);

+ 18 - 0
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -2782,6 +2782,24 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
     }
 
     @Override
+    public boolean saveOrUpdateTablewareFee(Integer storeId, Integer tablewareFee) {
+        if (storeId == null) {
+            throw new IllegalArgumentException("门店ID不能为空");
+        }
+        
+        // 验证餐具费:限2位正整数(0-99)
+        if (tablewareFee != null && (tablewareFee < 0 || tablewareFee > 99)) {
+            throw new IllegalArgumentException("餐具费必须是0-99之间的整数");
+        }
+        
+        LambdaUpdateWrapper<StoreInfo> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(StoreInfo::getId, storeId);
+        wrapper.set(StoreInfo::getTablewareFee, tablewareFee);
+        int result = storeInfoMapper.update(null, wrapper);
+        return result > 0;
+    }
+
+    @Override
     public int saveOrUpdateStoreInfo(StoreInfoDto storeInfodto) {
         if (storeInfodto.getId() != null) {
             // 校验当前店铺存在未完成的订单及正在销售的商品