浏览代码

Merge remote-tracking branch 'origin/dev' into dev

penghao 1 周之前
父节点
当前提交
5e63a139b6

+ 2 - 2
alien-entity/src/main/java/shop/alien/entity/store/DrinkInfo.java

@@ -12,7 +12,7 @@ import java.util.Date;
 /**
  * 酒水餐食信息 DTO
  * 用于接口参数传输,实际数据存储在 store_menu 表
- * dish_menu_type: 2=酒水,3=餐食
+ * type: 1=餐食,2=酒水
  *
  * @author ssk
  * @since 2025-05-14
@@ -26,7 +26,7 @@ public class DrinkInfo implements Serializable {
     @ApiModelProperty(value = "主键ID")
     private Integer id;
 
-    @ApiModelProperty(value = "类型(2:酒水,3:餐食)")
+    @ApiModelProperty(value = "类型(1:餐食,2:酒水)")
     private Integer type;
 
     @ApiModelProperty(value = "名称")

+ 1 - 1
alien-entity/src/main/java/shop/alien/entity/store/vo/DrinkInfoVo.java

@@ -21,7 +21,7 @@ public class DrinkInfoVo {
     @ApiModelProperty(value = "主键ID")
     private Integer id;
 
-    @ApiModelProperty(value = "类型(1:菜品,2:酒水)")
+    @ApiModelProperty(value = "类型(1:餐食,2:酒水)")
     private Integer type;
 
     @ApiModelProperty(value = "商品名称")

+ 3 - 2
alien-store/src/main/java/shop/alien/store/controller/DrinkInfoController.java

@@ -13,7 +13,8 @@ import shop.alien.store.service.DrinkInfoService;
 import java.util.List;
 
 /**
- * 酒水餐食信息表Controller
+ * 酒水餐食信息 Controller
+ * 基于 store_menu 表实现(dish_menu_type: 1=餐食,2=酒水)
  *
  * @author ssk
  * @since 2025-06-13
@@ -35,7 +36,7 @@ public class DrinkInfoController {
             @ApiImplicitParam(name = "page", value = "页码", dataType = "int", paramType = "query", required = true),
             @ApiImplicitParam(name = "size", value = "页容", dataType = "int", paramType = "query", required = true),
             @ApiImplicitParam(name = "storeId", value = "门店ID", dataType = "Integer", paramType = "query"),
-            @ApiImplicitParam(name = "type", value = "类型(2:酒水,3:餐食)", dataType = "Integer", paramType = "query"),
+            @ApiImplicitParam(name = "type", value = "类型(1:餐食,2:酒水)", dataType = "Integer", paramType = "query"),
             @ApiImplicitParam(name = "category", value = "分类", dataType = "String", paramType = "query"),
             @ApiImplicitParam(name = "name", value = "名称关键词", dataType = "String", paramType = "query"),
             @ApiImplicitParam(name = "createUserId", value = "创建人ID(只查询自己创建的)", dataType = "Integer", paramType = "query")

+ 0 - 25
alien-store/src/main/java/shop/alien/store/service/DrinkInfoService.java

@@ -113,29 +113,4 @@ public interface DrinkInfoService {
      * @return boolean
      */
     boolean batchUpdateSort(List<DrinkInfo> drinkInfoList);
-
-    /**
-     * 获取酒水餐食类型统计
-     *
-     * @param storeId 门店ID
-     * @return Map<String, Long> 类型统计信息
-     */
-    java.util.Map<String, Long> getStatistics(Integer storeId);
-
-    /**
-     * 批量删除酒水餐食
-     *
-     * @param ids 主键ID列表
-     * @return boolean
-     */
-    boolean batchDelete(List<Integer> ids);
-
-    /**
-     * 批量上下架
-     *
-     * @param ids    主键ID列表
-     * @param status 状态(0:下架, 1:上架)
-     * @return boolean
-     */
-    boolean batchUpdateStatus(List<Integer> ids, Integer status);
 }

+ 33 - 84
alien-store/src/main/java/shop/alien/store/service/impl/DrinkInfoServiceImpl.java

@@ -21,8 +21,9 @@ import java.util.List;
 import java.util.stream.Collectors;
 
 /**
- * 酒水餐食信息表 服务实现类
- * 基于 store_menu 表实现(dish_menu_type: 2=酒水,3=餐食)
+ * 酒水餐食信息 服务实现类
+ * 基于 store_menu 表实现
+ * dish_menu_type: 1=餐食(菜单/菜品),2=酒水
  * 注意:drink_info 表已废弃,现在使用 store_menu 表
  *
  * @author ssk
@@ -39,13 +40,11 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
     
     /**
      * 菜单类型常量
-     * 1 = 菜单(菜品)
+     * 1 = 餐食(菜单/菜品)
      * 2 = 酒水
-     * 3 = 餐食
      */
-    private static final String MENU_TYPE_DISH = "1";
+    private static final String MENU_TYPE_FOOD = "1";
     private static final String MENU_TYPE_DRINK = "2";
-    private static final String MENU_TYPE_FOOD = "3";
     
     /**
      * 菜单图片类型
@@ -56,12 +55,12 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
     public IPage<DrinkInfoVo> getDrinkInfoPage(int page, int size, Integer storeId, Integer type, String category, String name, Integer createUserId) {
         LambdaQueryWrapper<StoreMenu> queryWrapper = new LambdaQueryWrapper<>();
         
-        // type 参数:2=酒水,3=餐食
+        // type 参数:1=餐食,2=酒水
         if (type != null) {
             queryWrapper.eq(StoreMenu::getDishMenuType, type.toString());
         } else {
-            // 不传则查询酒水和餐食(排除菜品
-            queryWrapper.in(StoreMenu::getDishMenuType, MENU_TYPE_DRINK, MENU_TYPE_FOOD);
+            // 不传则查询所有(餐食和酒水
+            queryWrapper.in(StoreMenu::getDishMenuType, MENU_TYPE_FOOD, MENU_TYPE_DRINK);
         }
         
         // 筛选条件
@@ -96,8 +95,9 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
     @Override
     public DrinkInfoVo getDrinkInfoById(Integer id) {
         StoreMenu menu = storeMenuMapper.selectById(id);
-        // 验证是否为酒水或餐食类型(排除菜品)
-        if (menu == null || MENU_TYPE_DISH.equals(menu.getDishMenuType())) {
+        // 验证是否为餐食或酒水类型
+        if (menu == null || 
+            (!MENU_TYPE_FOOD.equals(menu.getDishMenuType()) && !MENU_TYPE_DRINK.equals(menu.getDishMenuType()))) {
             return null;
         }
         return convertMenuToVo(menu);
@@ -111,7 +111,7 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
         menu.setDishName(drinkInfo.getName());
         menu.setDishPrice(drinkInfo.getPrice());
         menu.setCostPrice(drinkInfo.getCostPrice());
-        // type: 2=酒水, 3=餐食,默认为酒水
+        // type: 1=餐食,2=酒水,默认为酒水
         menu.setDishMenuType(drinkInfo.getType() != null ? drinkInfo.getType().toString() : MENU_TYPE_DRINK);
         menu.setCategory(drinkInfo.getCategory());
         menu.setAlcoholVolume(drinkInfo.getAlcoholVolume() != null ? drinkInfo.getAlcoholVolume().toString() : "0");
@@ -132,7 +132,8 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
             img.setImgType(IMG_TYPE_MENU);
             img.setImgUrl(drinkInfo.getPicUrl());
             img.setBusinessId(menu.getId());
-            img.setImgDescription((MENU_TYPE_DRINK.equals(menu.getDishMenuType()) ? "酒水" : "餐食") + "图片-" + menu.getDishName());
+            String typeDesc = MENU_TYPE_DRINK.equals(menu.getDishMenuType()) ? "酒水" : "餐食";
+            img.setImgDescription(typeDesc + "图片-" + menu.getDishName());
             img.setImgSort(1);
             storeImgMapper.insert(img);
             
@@ -150,10 +151,11 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
             return false;
         }
         
-        // 验证是否为酒水或餐食类型(排除菜品)
+        // 验证是否为餐食或酒水类型
         StoreMenu existMenu = storeMenuMapper.selectById(drinkInfo.getId());
-        if (existMenu == null || MENU_TYPE_DISH.equals(existMenu.getDishMenuType())) {
-            log.warn("该商品不是酒水/餐食类型,无法修改");
+        if (existMenu == null || 
+            (!MENU_TYPE_FOOD.equals(existMenu.getDishMenuType()) && !MENU_TYPE_DRINK.equals(existMenu.getDishMenuType()))) {
+            log.warn("该商品不是餐食/酒水类型,无法修改");
             return false;
         }
         
@@ -169,9 +171,6 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
         if (drinkInfo.getCostPrice() != null) {
             menu.setCostPrice(drinkInfo.getCostPrice());
         }
-        if (drinkInfo.getType() != null) {
-            menu.setDishMenuType(drinkInfo.getType().toString());
-        }
         if (StringUtils.hasText(drinkInfo.getCategory())) {
             menu.setCategory(drinkInfo.getCategory());
         }
@@ -204,7 +203,9 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
             img.setImgType(IMG_TYPE_MENU);
             img.setImgUrl(drinkInfo.getPicUrl());
             img.setBusinessId(drinkInfo.getId());
-            img.setImgDescription((MENU_TYPE_DRINK.equals(existMenu.getDishMenuType()) ? "酒水" : "餐食") + "图片-" + menu.getDishName());
+            String typeDesc = MENU_TYPE_DRINK.equals(existMenu.getDishMenuType()) ? "酒水" : "餐食";
+            String dishName = menu.getDishName() != null ? menu.getDishName() : existMenu.getDishName();
+            img.setImgDescription(typeDesc + "图片-" + dishName);
             img.setImgSort(1);
             storeImgMapper.insert(img);
             
@@ -216,10 +217,11 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
 
     @Override
     public boolean deleteDrinkInfo(Integer id) {
-        // 验证是否为酒水或餐食类型(排除菜品)
+        // 验证是否为餐食或酒水类型
         StoreMenu menu = storeMenuMapper.selectById(id);
-        if (menu == null || MENU_TYPE_DISH.equals(menu.getDishMenuType())) {
-            log.warn("该商品不是酒水/餐食类型,无法删除");
+        if (menu == null || 
+            (!MENU_TYPE_FOOD.equals(menu.getDishMenuType()) && !MENU_TYPE_DRINK.equals(menu.getDishMenuType()))) {
+            log.warn("该商品不是餐食/酒水类型,无法删除");
             return false;
         }
         
@@ -232,7 +234,7 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
         // 注意:store_menu 表有 status 字段了,但 StoreMenu 实体类暂未映射
         LambdaUpdateWrapper<StoreMenu> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.eq(StoreMenu::getId, id)
-                .in(StoreMenu::getDishMenuType, MENU_TYPE_DRINK, MENU_TYPE_FOOD);  // 允许修改酒水和餐食
+                .in(StoreMenu::getDishMenuType, MENU_TYPE_FOOD, MENU_TYPE_DRINK);  // 允许修改餐食和酒水
         // TODO: 在 StoreMenu 实体类中添加 status 字段映射后启用
         // .set(StoreMenu::getStatus, status);
         return true;  // 暂时返回 true
@@ -242,7 +244,7 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
     public boolean updateIsRecommended(Integer id, Integer isRecommended) {
         LambdaUpdateWrapper<StoreMenu> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.eq(StoreMenu::getId, id)
-                .in(StoreMenu::getDishMenuType, MENU_TYPE_DRINK, MENU_TYPE_FOOD)  // 支持酒水和餐食
+                .eq(StoreMenu::getDishMenuType, MENU_TYPE_DRINK)  // 只支持酒水
                 .set(StoreMenu::getDishType, isRecommended);
         return storeMenuMapper.update(null, updateWrapper) > 0;
     }
@@ -251,7 +253,7 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
     public boolean updateSort(Integer id, Integer sort) {
         LambdaUpdateWrapper<StoreMenu> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.eq(StoreMenu::getId, id)
-                .in(StoreMenu::getDishMenuType, MENU_TYPE_DRINK, MENU_TYPE_FOOD)  // 支持酒水和餐食
+                .eq(StoreMenu::getDishMenuType, MENU_TYPE_DRINK)  // 只支持酒水
                 .set(StoreMenu::getSort, sort);
         return storeMenuMapper.update(null, updateWrapper) > 0;
     }
@@ -265,8 +267,8 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
         if (type != null) {
             queryWrapper.eq(StoreMenu::getDishMenuType, type.toString());
         } else {
-            // 不传则查询酒水和餐食(排除菜品
-            queryWrapper.in(StoreMenu::getDishMenuType, MENU_TYPE_DRINK, MENU_TYPE_FOOD);
+            // 不传则查询所有(餐食和酒水
+            queryWrapper.in(StoreMenu::getDishMenuType, MENU_TYPE_FOOD, MENU_TYPE_DRINK);
         }
         
         queryWrapper.orderByAsc(StoreMenu::getSort);
@@ -281,7 +283,7 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
     @Override
     public List<DrinkInfoVo> getRecommendedList(Integer storeId, Integer createUserId) {
         LambdaQueryWrapper<StoreMenu> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(StoreMenu::getDishMenuType, MENU_TYPE_DRINK, MENU_TYPE_FOOD)  // 查询酒水和餐食
+        queryWrapper.in(StoreMenu::getDishMenuType, MENU_TYPE_FOOD, MENU_TYPE_DRINK)  // 查询餐食和酒水
                 .eq(StoreMenu::getDishType, 1);  // 推荐
         
         // 只查询指定用户创建的商品
@@ -311,7 +313,7 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
                 if (drinkInfo.getId() != null && drinkInfo.getSort() != null) {
                     LambdaUpdateWrapper<StoreMenu> updateWrapper = new LambdaUpdateWrapper<>();
                     updateWrapper.eq(StoreMenu::getId, drinkInfo.getId())
-                            .in(StoreMenu::getDishMenuType, MENU_TYPE_DRINK, MENU_TYPE_FOOD)  // 支持酒水和餐食
+                            .in(StoreMenu::getDishMenuType, MENU_TYPE_FOOD, MENU_TYPE_DRINK)  // 支持餐食和酒水
                             .set(StoreMenu::getSort, drinkInfo.getSort());
                     storeMenuMapper.update(null, updateWrapper);
                 }
@@ -322,59 +324,6 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
             return false;
         }
     }
-
-    @Override
-    public java.util.Map<String, Long> getStatistics(Integer storeId) {
-        LambdaQueryWrapper<StoreMenu> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(StoreMenu::getDishMenuType, MENU_TYPE_DRINK, MENU_TYPE_FOOD);  // 查询酒水和餐食
-        
-        if (storeId != null) {
-            queryWrapper.eq(StoreMenu::getStoreId, storeId);
-        }
-
-        List<StoreMenu> allList = storeMenuMapper.selectList(queryWrapper);
-        
-        java.util.Map<String, Long> statistics = new java.util.HashMap<>();
-        statistics.put("total", (long) allList.size());
-        statistics.put("drink", allList.stream().filter(d -> MENU_TYPE_DRINK.equals(d.getDishMenuType())).count());
-        statistics.put("food", allList.stream().filter(d -> MENU_TYPE_FOOD.equals(d.getDishMenuType())).count());
-        statistics.put("recommended", allList.stream().filter(d -> d.getDishType() != null && d.getDishType() == 1).count());
-        
-        return statistics;
-    }
-
-    @Override
-    public boolean batchDelete(List<Integer> ids) {
-        if (ids == null || ids.isEmpty()) {
-            return false;
-        }
-        try {
-            for (Integer id : ids) {
-                deleteDrinkInfo(id);
-            }
-            return true;
-        } catch (Exception e) {
-            log.error("批量删除失败", e);
-            return false;
-        }
-    }
-
-    @Override
-    public boolean batchUpdateStatus(List<Integer> ids, Integer status) {
-        if (ids == null || ids.isEmpty()) {
-            return false;
-        }
-        try {
-            for (Integer id : ids) {
-                updateStatus(id, status);
-            }
-            return true;
-        } catch (Exception e) {
-            log.error("批量更新状态失败", e);
-            return false;
-        }
-    }
-
     /**
      * 将 StoreMenu 转换为 DrinkInfoVo
      *
@@ -387,7 +336,7 @@ public class DrinkInfoServiceImpl implements DrinkInfoService {
         vo.setName(menu.getDishName());
         vo.setPrice(menu.getDishPrice());
         vo.setCostPrice(menu.getCostPrice());
-        // 转换类型为数字:2=酒水,3=餐食
+        // 转换类型为数字:1=餐食,2=酒水
         vo.setType(menu.getDishMenuType() != null ? Integer.parseInt(menu.getDishMenuType()) : 2);
         vo.setCategory(menu.getCategory());
         vo.setAlcoholVolume(menu.getAlcoholVolume() != null ? new java.math.BigDecimal(menu.getAlcoholVolume()) : java.math.BigDecimal.ZERO);