Explorar o código

refactor:删除价目表冗余文件

李亚非 hai 2 meses
pai
achega
abdb2caa64

+ 0 - 111
alien-entity/src/main/java/shop/alien/entity/store/StoreProductItem.java

@@ -1,111 +0,0 @@
-package shop.alien.entity.store;
-
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * 商品表
- *
- * @author system
- * @since 2025-01-XX
- */
-@Data
-@JsonInclude
-@TableName("store_product_item")
-@ApiModel(value = "StoreProductItem对象", description = "商品表")
-public class StoreProductItem implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty(value = "主键")
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    @ApiModelProperty(value = "门店id")
-    @TableField("store_id")
-    private Integer storeId;
-
-    @ApiModelProperty(value = "商品名称")
-    @TableField("prod_name")
-    private String prodName;
-
-    @ApiModelProperty(value = "总价")
-    @TableField("total_price")
-    private BigDecimal totalPrice;
-
-    @ApiModelProperty(value = "商品类型,整型枚举:1酒吧-酒水 2酒吧-餐食 3美食-餐食 4运动健身-单次 5运动健身-多次")
-    @TableField("prod_type")
-    private Integer prodType;
-
-    @ApiModelProperty(value = "图片列表,最多 9 张 URL")
-    @TableField("images")
-    private String images;
-
-    @ApiModelProperty(value = "图文详情-图片")
-    @TableField("image_content")
-    private String imageContent;
-
-    @ApiModelProperty(value = "图文详情-文字")
-    @TableField("detail_content")
-    private String detailContent;
-
-    @ApiModelProperty(value = "补充说明")
-    @TableField("extra_note")
-    private String extraNote;
-
-    @ApiModelProperty(value = "是否需要预约:0=否,1=是")
-    @TableField("need_reserve")
-    private Integer needReserve;
-
-    @ApiModelProperty(value = "预约规则")
-    @TableField("reserve_rule")
-    private String reserveRule;
-
-    @ApiModelProperty(value = "适用人数")
-    @TableField("people_limit")
-    private Integer peopleLimit;
-
-    @ApiModelProperty(value = "使用规则")
-    @TableField("usage_rule")
-    private String usageRule;
-
-    @ApiModelProperty(value = "状态:0-待审核 1-审核通过 2-审核拒绝")
-    @TableField("status")
-    private Integer status;
-
-    @ApiModelProperty(value = "拒绝原因")
-    @TableField("rejection_reason")
-    private String rejectionReason;
-
-    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
-    @TableField("delete_flag")
-    @TableLogic
-    private Integer deleteFlag;
-
-    @ApiModelProperty(value = "创建人")
-    @TableField("created_user_id")
-    private Integer createdUserId;
-
-    @ApiModelProperty(value = "更新人")
-    @TableField("updated_user_id")
-    private Integer updatedUserId;
-
-    @ApiModelProperty(value = "创建时间")
-    @TableField(value = "created_time", fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date createdTime;
-
-    @ApiModelProperty(value = "更新时间")
-    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date updatedTime;
-}
-

+ 0 - 64
alien-entity/src/main/java/shop/alien/entity/store/dto/StoreProductItemDto.java

@@ -1,64 +0,0 @@
-package shop.alien.entity.store.dto;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.List;
-
-@Data
-@ApiModel(value = "StoreProductItemDto", description = "商品表 DTO")
-public class StoreProductItemDto implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty("区分模块:1酒吧 2美食 3运动健身")
-    private Integer modelType;
-
-    @ApiModelProperty("主键")
-    private Integer id;
-
-    @ApiModelProperty("门店id")
-    private Integer storeId;
-
-    @ApiModelProperty("商品名称")
-    private String prodName;
-
-    @ApiModelProperty(value = "总价")
-    @TableField("total_price")
-    private BigDecimal totalPrice;
-
-    @ApiModelProperty("商品类型,整型枚举:1酒吧-酒水 2酒吧-餐食 3酒吧-套餐  4美食-餐食 5运动健身-单次 6运动健身-多次")
-    private Integer prodType;
-
-    @ApiModelProperty("图片列表,最多 9 张 URL")
-    private String images;
-
-    @ApiModelProperty("图文详情-图片")
-    private String imageContent;
-
-    @ApiModelProperty("图文详情-文字")
-    private String detailContent;
-
-    @ApiModelProperty("补充说明")
-    private String extraNote;
-
-    @ApiModelProperty("是否需要预约:0=否,1=是")
-    private Integer needReserve;
-
-    @ApiModelProperty("预约规则")
-    private String reserveRule;
-
-    @ApiModelProperty("适用人数")
-    private Integer peopleLimit;
-
-    @ApiModelProperty("使用规则")
-    private String usageRule;
-
-    @ApiModelProperty("子项列表(后端按类型转换)")
-    private List<?> subList;
-
-}

+ 0 - 146
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreProductItemDelicaciesVo.java

@@ -1,146 +0,0 @@
-package shop.alien.entity.store.vo;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-
-/**
- * 商品表与美食商品表关联查询VO
- *
- * @author system
- * @since 2025-01-XX
- */
-@Data
-@JsonInclude
-@ApiModel(value = "StoreProductItemDelicaciesVo对象", description = "商品表与美食商品表关联查询VO")
-public class StoreProductItemDelicaciesVo implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    // ========== store_product_item 表字段 ==========
-    @ApiModelProperty(value = "商品表主键")
-    private Integer id;
-
-    @ApiModelProperty(value = "门店id")
-    private Integer storeId;
-
-    @ApiModelProperty(value = "商品名称")
-    private String prodName;
-
-    @ApiModelProperty(value = "总价")
-    private BigDecimal totalPrice;
-
-    @ApiModelProperty(value = "商品类型,整型枚举:1酒吧-酒水 2酒吧-餐食 3美食-餐食 4运动健身-单次 5运动健身-多次")
-    private Integer prodType;
-
-    @ApiModelProperty(value = "图片列表,最多 9 张 URL")
-    private String images;
-
-    @ApiModelProperty(value = "图文详情-图片")
-    private String imageContent;
-
-    @ApiModelProperty(value = "图文详情-文字")
-    private String detailContent;
-
-    @ApiModelProperty(value = "补充说明")
-    private String extraNote;
-
-    @ApiModelProperty(value = "是否需要预约:0=否,1=是")
-    private Integer needReserve;
-
-    @ApiModelProperty(value = "预约规则")
-    private String reserveRule;
-
-    @ApiModelProperty(value = "适用人数")
-    private Integer peopleLimit;
-
-    @ApiModelProperty(value = "使用规则")
-    private String usageRule;
-
-    @ApiModelProperty(value = "状态:0-待审核 1-审核通过 2-审核拒绝")
-    private Integer status;
-
-    @ApiModelProperty(value = "拒绝原因")
-    private String rejectionReason;
-
-    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
-    private Integer deleteFlag;
-
-    @ApiModelProperty(value = "创建人")
-    private Integer createdUserId;
-
-    @ApiModelProperty(value = "更新人")
-    private Integer updatedUserId;
-
-    @ApiModelProperty(value = "创建时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date createdTime;
-
-    @ApiModelProperty(value = "更新时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date updatedTime;
-
-    @ApiModelProperty(value = "美食商品子表列表(一对多关系)")
-    private List<StoreProductDelicaciesVo> delicaciesList;
-
-
-    // ========== store_product_delicacies 表字段 ==========
-    @ApiModelProperty(value = "美食商品表主键")
-    private Integer delicaciesId;
-
-    @ApiModelProperty(value = "商品表主键(关联字段)")
-    private Integer extId;
-
-    @ApiModelProperty(value = "名称")
-    private String name;
-
-    @ApiModelProperty(value = "价格(¥)")
-    private BigDecimal price;
-
-    @ApiModelProperty(value = "成本价(¥)")
-    private BigDecimal costPrice;
-
-    @ApiModelProperty(value = "单位,如份/瓶/杯")
-    private String unit;
-
-    @ApiModelProperty(value = "数量")
-    private Integer quantity;
-
-    @ApiModelProperty(value = "类别")
-    private String category;
-
-    @ApiModelProperty(value = "菜品分组")
-    private String extGroup;
-
-    @ApiModelProperty(value = "美食商品状态:0禁用,1启用")
-    private Integer delicaciesStatus;
-
-    @ApiModelProperty(value = "美食商品删除标记, 0:未删除, 1:已删除")
-    private Integer delicaciesDeleteFlag;
-
-    @ApiModelProperty(value = "美食商品创建人")
-    private Integer delicaciesCreatedUserId;
-
-    @ApiModelProperty(value = "美食商品更新人")
-    private Integer delicaciesUpdatedUserId;
-
-    @ApiModelProperty(value = "美食商品创建时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date delicaciesCreatedTime;
-
-    @ApiModelProperty(value = "美食商品更新时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date delicaciesUpdatedTime;
-
-    // ========== 辅助字段 ==========
-    @ApiModelProperty(value = "数据类型:1-菜品(来自store_product_delicacies),2-套餐/商品(来自store_product_item)")
-    private Integer dataType;
-}
-

+ 0 - 150
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreProductItemGymVo.java

@@ -1,150 +0,0 @@
-package shop.alien.entity.store.vo;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * 商品表与运动健身商品表关联查询VO
- *
- * @author system
- * @since 2025-01-XX
- */
-@Data
-@JsonInclude
-@ApiModel(value = "StoreProductItemGymVo对象", description = "商品表与运动健身商品表关联查询VO")
-public class StoreProductItemGymVo implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    // ========== store_product_item 表字段 ==========
-    @ApiModelProperty(value = "商品表主键")
-    private Long id;
-
-    @ApiModelProperty(value = "父id")
-    private Long pid;
-
-    @ApiModelProperty(value = "门店id")
-    private Integer storeId;
-
-    @ApiModelProperty(value = "商品名称")
-    private String prodName;
-
-    @ApiModelProperty(value = "商品类型,整型枚举:1酒吧-酒水 2酒吧-餐食 3美食-餐食 4运动健身-单次 5运动健身-多次")
-    private Integer prodType;
-
-    @ApiModelProperty(value = "图片列表,最多 9 张 URL")
-    private String images;
-
-    @ApiModelProperty(value = "图文详情-图片")
-    private String imageContent;
-
-    @ApiModelProperty(value = "图文详情-文字")
-    private String detailContent;
-
-    @ApiModelProperty(value = "补充说明")
-    private String extraNote;
-
-    @ApiModelProperty(value = "是否需要预约:0=否,1=是")
-    private Integer needReserve;
-
-    @ApiModelProperty(value = "预约规则")
-    private String reserveRule;
-
-    @ApiModelProperty(value = "适用人数")
-    private Integer peopleLimit;
-
-    @ApiModelProperty(value = "使用规则")
-    private String usageRule;
-
-    @ApiModelProperty(value = "状态:0禁用,1启用")
-    private Integer status;
-
-    @ApiModelProperty(value = "拒绝原因")
-    private String rejectionReason;
-
-    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
-    private Integer deleteFlag;
-
-    @ApiModelProperty(value = "创建人")
-    private Long createdUserId;
-
-    @ApiModelProperty(value = "更新人")
-    private Long updatedUserId;
-
-    @ApiModelProperty(value = "创建时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date createdTime;
-
-    @ApiModelProperty(value = "更新时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date updatedTime;
-
-    // ========== store_product_gym 表字段 ==========
-    @ApiModelProperty(value = "运动健身商品表主键")
-    private Long gymId;
-
-    @ApiModelProperty(value = "商品表主键(关联字段)")
-    private Long extId;
-
-    @ApiModelProperty(value = "名称")
-    private String name;
-
-    @ApiModelProperty(value = "上课形式,如一对一/小班课")
-    private String classMode;
-
-    @ApiModelProperty(value = "可用周期(天)")
-    private Integer availableDays;
-
-    @ApiModelProperty(value = "总课时数(节)")
-    private Integer totalSessions;
-
-    @ApiModelProperty(value = "价格(¥)")
-    private BigDecimal price;
-
-    @ApiModelProperty(value = "课程功效")
-    private String courseEffect;
-
-    @ApiModelProperty(value = "适用人群")
-    private String suitablePeople;
-
-    @ApiModelProperty(value = "适用会员")
-    private String suitableMembership;
-
-    @ApiModelProperty(value = "淋浴设施")
-    private String showerFacility;
-
-    @ApiModelProperty(value = "额外须知")
-    private String extraNotice;
-
-    @ApiModelProperty(value = "运动健身商品状态:0禁用,1启用")
-    private Integer gymStatus;
-
-    @ApiModelProperty(value = "运动健身商品删除标记, 0:未删除, 1:已删除")
-    private Integer gymDeleteFlag;
-
-    @ApiModelProperty(value = "运动健身商品创建人")
-    private Long gymCreatedUserId;
-
-    @ApiModelProperty(value = "运动健身商品更新人")
-    private Long gymUpdatedUserId;
-
-    @ApiModelProperty(value = "运动健身商品创建时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date gymCreatedTime;
-
-    @ApiModelProperty(value = "运动健身商品更新时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date gymUpdatedTime;
-
-    // ========== store_info 表字段 ==========
-    @ApiModelProperty(value = "门店电话")
-    private String storeTel;
-}
-

+ 0 - 92
alien-entity/src/main/java/shop/alien/mapper/StoreProductItemMapper.java

@@ -1,92 +0,0 @@
-package shop.alien.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import shop.alien.entity.store.StoreProductItem;
-import shop.alien.entity.store.dto.StoreProductItemDto;
-
-import java.util.ArrayList;
-import java.util.List;
-import shop.alien.entity.store.vo.StoreProductItemGymVo;
-import shop.alien.entity.store.vo.StoreProductItemDelicaciesVo;
-
-/**
- * <p>
- * 商品表 Mapper 接口
- * </p>
- *
- * @author system
- * @since 2025-01-XX
- */
-@Mapper
-public interface StoreProductItemMapper extends BaseMapper<StoreProductItem> {
-
-    ArrayList<StoreProductItemDto> getByPId(Integer id);
-    /**
-     * 分页查询商品表与运动健身商品表关联数据
-     *
-     * @param page 分页对象
-     * @param storeId 门店ID
-     * @param prodName 商品名称(模糊查询)
-     * @param prodType 商品类型
-     * @return IPage<StoreProductItemGymVo>
-     */
-    IPage<StoreProductItemGymVo> getPageWithGym(Page<StoreProductItemGymVo> page,
-                                                 @Param("storeId") Integer storeId,
-                                                 @Param("prodName") String prodName,
-                                                 @Param("prodType") Integer prodType);
-
-    /**
-     * 根据ID查询商品表与运动健身商品表关联详情
-     *
-     * @param id 商品表主键ID
-     * @return StoreProductItemGymVo
-     */
-    StoreProductItemGymVo getDetailWithGym(@Param("id") Long id);
-
-    /**
-     * 查询store_product_delicacies的所有菜品(用于合并查询)
-     *
-     * @param storeId 门店ID
-     * @param name 名称(模糊查询)
-     * @param category 类别
-     * @param extGroup 菜品分组
-     * @param status 状态(0:禁用,1:启用)
-     * @return List<StoreProductItemDelicaciesVo>
-     */
-    List<StoreProductItemDelicaciesVo> getDelicaciesList(@Param("storeId") Integer storeId,
-                                                          @Param("name") String name,
-                                                          @Param("category") String category,
-                                                          @Param("extGroup") String extGroup,
-                                                          @Param("status") Integer status);
-
-    /**
-     * 查询store_product_item的所有美食相关的套餐和商品(prodType = 3)(用于合并查询)
-     *
-     * @param storeId 门店ID
-     * @param name 名称(模糊查询)
-     * @param status 状态(0:禁用,1:启用)
-     * @param packageType 套餐类型(预留,用于根据类型查询套餐)
-     * @return List<StoreProductItemDelicaciesVo>
-     */
-    List<StoreProductItemDelicaciesVo> getFoodPackageList(@Param("storeId") Integer storeId,
-                                                            @Param("name") String name,
-                                                            @Param("status") Integer status,
-                                                            @Param("packageType") Integer packageType);
-
-
-
-
-
-    List<StoreProductItemDelicaciesVo> getAllDelicacies(@Param("storeId") Integer storeId,
-                                                          @Param("name") String name,
-                                                          @Param("category") String category,
-                                                          @Param("extGroup") String extGroup,
-                                                          @Param("status") Integer status,
-                                                        @Param("packageType") Integer packageType
-    );
-}
-

+ 0 - 431
alien-entity/src/main/resources/mapper/StoreProductItemMapper.xml

@@ -1,431 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="shop.alien.mapper.StoreProductItemMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="shop.alien.entity.store.StoreProductItem">
-        <id column="id" property="id" />
-        <result column="store_id" property="storeId" />
-        <result column="prod_name" property="prodName" />
-        <result column="prod_type" property="prodType" />
-        <result column="images" property="images" />
-        <result column="image_content" property="imageContent" />
-        <result column="detail_content" property="detailContent" />
-        <result column="extra_note" property="extraNote" />
-        <result column="need_reserve" property="needReserve" />
-        <result column="reserve_rule" property="reserveRule" />
-        <result column="people_limit" property="peopleLimit" />
-        <result column="usage_rule" property="usageRule" />
-        <result column="status" property="status" />
-        <result column="rejection_reason" property="rejectionReason" />
-        <result column="delete_flag" property="deleteFlag" />
-        <result column="created_user_id" property="createdUserId" />
-        <result column="updated_user_id" property="updatedUserId" />
-        <result column="created_time" property="createdTime" />
-        <result column="updated_time" property="updatedTime" />
-    </resultMap>
-
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        id, store_id, prod_name, prod_type, images, image_content, detail_content,
-        extra_note, need_reserve, reserve_rule, people_limit, usage_rule, status, 
-        rejection_reason, delete_flag, created_user_id, updated_user_id, created_time, updated_time
-    </sql>
-    <!-- 酒吧商品模块 -->
-    <resultMap id="StoreProductItemDtoMap" type="shop.alien.entity.store.dto.StoreProductItemDto">
-        <id column="id" property="id"/>
-        <result column="store_id" property="storeId"/>
-        <result column="prod_name" property="prodName"/>
-        <result column="prod_type" property="prodType"/>
-        <result column="images" property="images"/>
-        <result column="image_content" property="imageContent"/>
-        <result column="detail_content" property="detailContent"/>
-        <result column="extra_note" property="extraNote"/>
-        <result column="need_reserve" property="needReserve"/>
-        <result column="reserve_rule" property="reserveRule"/>
-        <result column="people_limit" property="peopleLimit"/>
-        <result column="usage_rule" property="usageRule"/>
-
-        <collection property="subList" ofType="shop.alien.entity.store.StoreProductBar">
-            <id column="bar_id" property="id"/>
-            <result column="bar_ext_id" property="extId"/>
-            <result column="sub_type" property="sub_type"/>
-            <result column="name" property="name"/>
-            <result column="price" property="price"/>
-            <result column="cost_price" property="costPrice"/>
-            <result column="unit" property="unit"/>
-            <result column="quantity" property="quantity"/>
-            <result column="category" property="category"/>
-            <result column="alcohol_vol" property="alcoholVol"/>
-            <result column="volume_ml" property="volumeMl"/>
-            <result column="flavor" property="flavor"/>
-            <result column="bar_status" property="status"/>
-            <result column="bar_delete_flag" property="deleteFlag"/>
-            <result column="created_user_id" property="createdUserId" />
-            <result column="updated_user_id" property="updatedUserId" />
-            <result column="bar_created_time" property="createdTime"/>
-            <result column="bar_updated_time" property="updatedTime"/>
-        </collection>
-    </resultMap>
-
-    <select id="getByExtId" resultMap="StoreProductItemDtoMap">
-        SELECT
-            spi.id,
-            spi.store_id,
-            spi.prod_name,
-            spi.prod_type,
-            spi.images,
-            spi.image_content,
-            spi.detail_content,
-            spi.extra_note,
-            spi.need_reserve,
-            spi.reserve_rule,
-            spi.people_limit,
-            spi.usage_rule,
-            spb.id           AS bar_id,
-            spb.ext_id       AS bar_ext_id,
-            spb.sub_type,
-            spb.name,
-            spb.price,
-            spb.cost_price,
-            spb.unit,
-            spb.quantity,
-            spb.category,
-            spb.alcohol_vol,
-            spb.volume_ml,
-            spb.flavor,
-            spb.status       AS bar_status,
-            spb.delete_flag  AS bar_delete_flag,
-            spb.created_user_id AS bar_created_user_id,
-            spb.updated_user_id AS bar_updated_user_id,
-            spb.created_time AS bar_created_time,
-            spb.updated_time AS bar_updated_time
-        FROM store_product_item spi
-                 LEFT JOIN store_product_bar spb
-                           ON spb.ext_id = spi.id
-                               AND spb.delete_flag = 0
-        WHERE spi.delete_flag = 0
-    </select>
-
-    <!-- 商品表与运动健身商品表关联查询结果映射 -->
-    <resultMap id="StoreProductItemGymVoResultMap" type="shop.alien.entity.store.vo.StoreProductItemGymVo">
-        <!-- store_product_item 表字段 -->
-        <id column="id" property="id" />
-        <result column="pid" property="pid" />
-        <result column="store_id" property="storeId" />
-        <result column="prod_name" property="prodName" />
-        <result column="prod_type" property="prodType" />
-        <result column="images" property="images" />
-        <result column="image_content" property="imageContent" />
-        <result column="detail_content" property="detailContent" />
-        <result column="extra_note" property="extraNote" />
-        <result column="need_reserve" property="needReserve" />
-        <result column="reserve_rule" property="reserveRule" />
-        <result column="people_limit" property="peopleLimit" />
-        <result column="usage_rule" property="usageRule" />
-        <result column="status" property="status" />
-        <result column="rejection_reason" property="rejectionReason" />
-        <result column="delete_flag" property="deleteFlag" />
-        <result column="created_user_id" property="createdUserId" />
-        <result column="updated_user_id" property="updatedUserId" />
-        <result column="created_time" property="createdTime" />
-        <result column="updated_time" property="updatedTime" />
-        <!-- store_product_gym 表字段 -->
-        <result column="gym_id" property="gymId" />
-        <result column="ext_id" property="extId" />
-        <result column="gym_name" property="name" />
-        <result column="class_mode" property="classMode" />
-        <result column="available_days" property="availableDays" />
-        <result column="total_sessions" property="totalSessions" />
-        <result column="price" property="price" />
-        <result column="course_effect" property="courseEffect" />
-        <result column="suitable_people" property="suitablePeople" />
-        <result column="suitable_membership" property="suitableMembership" />
-        <result column="shower_facility" property="showerFacility" />
-        <result column="extra_notice" property="extraNotice" />
-        <result column="gym_status" property="gymStatus" />
-        <result column="gym_delete_flag" property="gymDeleteFlag" />
-        <result column="gym_created_user_id" property="gymCreatedUserId" />
-        <result column="gym_updated_user_id" property="gymUpdatedUserId" />
-        <result column="gym_created_time" property="gymCreatedTime" />
-        <result column="gym_updated_time" property="gymUpdatedTime" />
-        <!-- store_info 表字段 -->
-        <result column="store_tel" property="storeTel" />
-    </resultMap>
-
-    <!-- 分页查询商品表与运动健身商品表关联数据 -->
-    <select id="getPageWithGym" resultMap="StoreProductItemGymVoResultMap">
-        SELECT
-            -- store_product_item 表字段
-            item.id,
-            item.store_id,
-            item.prod_name,
-            item.prod_type,
-            item.images,
-            item.image_content,
-            item.detail_content,
-            item.extra_note,
-            item.need_reserve,
-            item.reserve_rule,
-            item.people_limit,
-            item.usage_rule,
-            item.status,
-            item.rejection_reason,
-            item.delete_flag,
-            item.created_user_id,
-            item.updated_user_id,
-            item.created_time,
-            item.updated_time,
-            -- store_product_gym 表字段
-            gym.id AS gym_id,
-            gym.ext_id,
-            gym.name AS gym_name,
-            gym.class_mode,
-            gym.available_days,
-            gym.total_sessions,
-            gym.price,
-            gym.course_effect,
-            gym.suitable_people,
-            gym.suitable_membership,
-            gym.shower_facility,
-            gym.extra_notice,
-            gym.status AS gym_status,
-            gym.delete_flag AS gym_delete_flag,
-            gym.created_user_id AS gym_created_user_id,
-            gym.updated_user_id AS gym_updated_user_id,
-            gym.created_time AS gym_created_time,
-            gym.updated_time AS gym_updated_time
-        FROM store_product_item item
-        LEFT JOIN store_product_gym gym ON item.id = gym.ext_id AND gym.delete_flag = 0
-        WHERE item.delete_flag = 0
-        <if test="storeId != null">
-            AND item.store_id = #{storeId}
-        </if>
-        <if test="prodName != null and prodName != ''">
-            AND item.prod_name LIKE CONCAT('%', #{prodName}, '%')
-        </if>
-        <if test="prodType != null">
-            AND item.prod_type = #{prodType}
-        </if>
-        ORDER BY item.created_time DESC
-    </select>
-
-    <!-- 根据ID查询商品表与运动健身商品表关联详情 -->
-    <select id="getDetailWithGym" resultMap="StoreProductItemGymVoResultMap">
-        SELECT
-            -- store_product_item 表字段
-            item.id,
-            item.store_id,
-            item.prod_name,
-            item.prod_type,
-            item.images,
-            item.image_content,
-            item.detail_content,
-            item.extra_note,
-            item.need_reserve,
-            item.reserve_rule,
-            item.people_limit,
-            item.usage_rule,
-            item.status,
-            item.rejection_reason,
-            item.delete_flag,
-            item.created_user_id,
-            item.updated_user_id,
-            item.created_time,
-            item.updated_time,
-            -- store_product_gym 表字段
-            gym.id AS gym_id,
-            gym.ext_id,
-            gym.name AS gym_name,
-            gym.class_mode,
-            gym.available_days,
-            gym.total_sessions,
-            gym.price,
-            gym.course_effect,
-            gym.suitable_people,
-            gym.suitable_membership,
-            gym.shower_facility,
-            gym.extra_notice,
-            gym.status AS gym_status,
-            gym.delete_flag AS gym_delete_flag,
-            gym.created_user_id AS gym_created_user_id,
-            gym.updated_user_id AS gym_updated_user_id,
-            gym.created_time AS gym_created_time,
-            gym.updated_time AS gym_updated_time,
-            -- store_info 表字段
-            store.store_tel
-        FROM store_product_item item
-        LEFT JOIN store_product_gym gym ON item.id = gym.ext_id AND gym.delete_flag = 0
-        LEFT JOIN store_info store ON item.store_id = store.id AND store.delete_flag = 0
-        WHERE item.id = #{id} AND item.delete_flag = 0
-    </select>
-
-    <!-- 商品表与美食商品表关联查询结果映射 -->
-    <resultMap id="StoreProductItemDelicaciesVoResultMap" type="shop.alien.entity.store.vo.StoreProductItemDelicaciesVo">
-        <!-- store_product_item 表字段 -->
-        <id column="id" property="id" />
-        <result column="store_id" property="storeId" />
-        <result column="prod_name" property="prodName" />
-        <result column="total_price" property="totalPrice" />
-        <result column="prod_type" property="prodType" />
-        <result column="images" property="images" />
-        <result column="image_content" property="imageContent" />
-        <result column="detail_content" property="detailContent" />
-        <result column="extra_note" property="extraNote" />
-        <result column="need_reserve" property="needReserve" />
-        <result column="reserve_rule" property="reserveRule" />
-        <result column="people_limit" property="peopleLimit" />
-        <result column="usage_rule" property="usageRule" />
-        <result column="item_status" property="status" />
-        <result column="rejection_reason" property="rejectionReason" />
-        <result column="item_delete_flag" property="deleteFlag" />
-        <result column="item_created_user_id" property="createdUserId" />
-        <result column="item_updated_user_id" property="updatedUserId" />
-        <result column="item_created_time" property="createdTime" />
-        <result column="item_updated_time" property="updatedTime" />
-        <!-- store_product_delicacies 表字段 -->
-        <result column="delicacies_id" property="delicaciesId" />
-        <result column="ext_id" property="extId" />
-        <result column="name" property="name" />
-        <result column="price" property="price" />
-        <result column="cost_price" property="costPrice" />
-        <result column="unit" property="unit" />
-        <result column="quantity" property="quantity" />
-        <result column="category" property="category" />
-        <result column="ext_group" property="extGroup" />
-        <result column="delicacies_status" property="delicaciesStatus" />
-        <result column="delicacies_delete_flag" property="delicaciesDeleteFlag" />
-        <result column="delicacies_created_user_id" property="delicaciesCreatedUserId" />
-        <result column="delicacies_updated_user_id" property="delicaciesUpdatedUserId" />
-        <result column="delicacies_created_time" property="delicaciesCreatedTime" />
-        <result column="delicacies_updated_time" property="delicaciesUpdatedTime" />
-        <!-- 辅助字段 -->
-        <result column="data_type" property="dataType" />
-    </resultMap>
-
-    <!-- 查询store_product_delicacies的所有菜品 -->
-    <select id="getDelicaciesList" resultMap="StoreProductItemDelicaciesVoResultMap">
-        SELECT
-            -- store_product_item 表字段
-            item.id,
-            item.store_id,
-            item.prod_name,
-            item.total_price,
-            item.prod_type,
-            item.images,
-            item.image_content,
-            item.detail_content,
-            item.extra_note,
-            item.need_reserve,
-            item.reserve_rule,
-            item.people_limit,
-            item.usage_rule,
-            item.status AS item_status,
-            item.rejection_reason,
-            item.delete_flag AS item_delete_flag,
-            item.created_user_id AS item_created_user_id,
-            item.updated_user_id AS item_updated_user_id,
-            item.created_time AS item_created_time,
-            item.updated_time AS item_updated_time,
-            -- store_product_delicacies 表字段
-            delicacies.id AS delicacies_id,
-            delicacies.ext_id,
-            delicacies.name,
-            delicacies.price,
-            delicacies.cost_price,
-            delicacies.unit,
-            delicacies.quantity,
-            delicacies.category,
-            delicacies.ext_group,
-            delicacies.status AS delicacies_status,
-            delicacies.delete_flag AS delicacies_delete_flag,
-            delicacies.created_user_id AS delicacies_created_user_id,
-            delicacies.updated_user_id AS delicacies_updated_user_id,
-            delicacies.created_time AS delicacies_created_time,
-            delicacies.updated_time AS delicacies_updated_time,
-            -- 数据类型:1-菜品
-            1 AS data_type
-        FROM store_product_delicacies delicacies
-        LEFT JOIN store_product_item item ON delicacies.ext_id = item.id AND item.delete_flag = 0
-        WHERE delicacies.delete_flag = 0
-        <if test="storeId != null">
-            AND (item.store_id = #{storeId} OR item.store_id IS NULL)
-        </if>
-        <if test="name != null and name != ''">
-            AND delicacies.name LIKE CONCAT('%', #{name}, '%')
-        </if>
-        <if test="category != null and category != ''">
-            AND delicacies.category = #{category}
-        </if>
-        <if test="extGroup != null and extGroup != ''">
-            AND delicacies.ext_group = #{extGroup}
-        </if>
-        <if test="status != null">
-            AND delicacies.status = #{status}
-        </if>
-        ORDER BY delicacies.created_time DESC
-    </select>
-
-    <!-- 查询store_product_item的所有美食相关的套餐和商品(prodType = 3) -->
-    <select id="getFoodPackageList" resultMap="StoreProductItemDelicaciesVoResultMap">
-        SELECT
-            -- store_product_item 表字段
-            item.id,
-            item.store_id,
-            item.prod_name,
-            item.total_price,
-            item.prod_type,
-            item.images,
-            item.image_content,
-            item.detail_content,
-            item.extra_note,
-            item.need_reserve,
-            item.reserve_rule,
-            item.people_limit,
-            item.usage_rule,
-            item.status AS item_status,
-            item.rejection_reason,
-            item.delete_flag AS item_delete_flag,
-            item.created_user_id AS item_created_user_id,
-            item.updated_user_id AS item_updated_user_id,
-            item.created_time AS item_created_time,
-            item.updated_time AS item_updated_time,
-            -- store_product_delicacies 表字段(可能为空,因为是套餐)
-            NULL AS delicacies_id,
-            NULL AS ext_id,
-            NULL AS name,
-            NULL AS price,
-            NULL AS cost_price,
-            NULL AS unit,
-            NULL AS quantity,
-            NULL AS category,
-            NULL AS ext_group,
-            NULL AS delicacies_status,
-            NULL AS delicacies_delete_flag,
-            NULL AS delicacies_created_user_id,
-            NULL AS delicacies_updated_user_id,
-            NULL AS delicacies_created_time,
-            NULL AS delicacies_updated_time,
-            -- 数据类型:2-套餐/商品
-            2 AS data_type
-        FROM store_product_item item
-        WHERE item.delete_flag = 0
-        AND item.prod_type = 3
-        <if test="storeId != null">
-            AND item.store_id = #{storeId}
-        </if>
-        <if test="name != null and name != ''">
-            AND item.prod_name LIKE CONCAT('%', #{name}, '%')
-        </if>
-        <if test="status != null">
-            AND item.status = #{status}
-        </if>
-        <if test="packageType != null">
-            -- 预留:根据类型查询套餐的口子,可以根据需要扩展
-            -- 例如:可以根据某个字段来区分不同类型的套餐
-        </if>
-        ORDER BY item.created_time DESC
-    </select>
-
-</mapper>
-

+ 0 - 179
alien-store/src/main/java/shop/alien/store/controller/StoreProductBarController.java

@@ -1,179 +0,0 @@
-package shop.alien.store.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import io.swagger.annotations.*;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-import shop.alien.entity.result.R;
-import shop.alien.entity.store.StoreProductBar;
-import shop.alien.store.service.StoreProductBarService;
-
-import java.util.List;
-
-/**
- * 酒吧商品表 Controller
- *
- * @author system
- * @since 2025-01-XX
- */
-@Slf4j
-@Api(tags = {"酒吧商品管理"})
-@CrossOrigin
-@RestController
-@RequestMapping("/store/product/bar")
-@RequiredArgsConstructor
-public class StoreProductBarController {
-
-    private final StoreProductBarService storeProductBarService;
-
-    @ApiOperation("新增酒吧商品")
-    @ApiOperationSupport(order = 1)
-    @PostMapping
-    public R<String> saveBar(@RequestBody StoreProductBar bar) {
-        log.info("StoreProductBarController.saveBar?bar={}", bar);
-        // 参数校验
-        if (bar.getName() == null || bar.getName().trim().isEmpty()) {
-            return R.fail("名称不能为空");
-        }
-        if (bar.getPrice() == null) {
-            return R.fail("价格不能为空");
-        }
-
-        R<StoreProductBar> result = storeProductBarService.addStoreProductBar(bar);
-        if (result.getCode() == 200) {
-            return R.success("新增成功");
-        }
-        return R.fail(result.getMsg());
-    }
-
-    @ApiOperation("修改酒吧商品")
-    @ApiOperationSupport(order = 2)
-    @PutMapping
-    public R<String> updateBar(@RequestBody StoreProductBar bar) {
-        log.info("StoreProductBarController.updateBar?bar={}", bar);
-        if (bar.getId() == null) {
-            return R.fail("ID不能为空");
-        }
-
-        R<StoreProductBar> result = storeProductBarService.editStoreProductBar(bar);
-        if (result.getCode() == 200) {
-            return R.success("修改成功");
-        }
-        return R.fail(result.getMsg());
-    }
-
-    @ApiOperation("删除酒吧商品")
-    @ApiOperationSupport(order = 3)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "主键ID", dataType = "Integer", paramType = "path", required = true)
-    })
-    @DeleteMapping("/{id}")
-    public R<String> deleteBar(@PathVariable("id") Integer id) {
-        log.info("StoreProductBarController.deleteBar?id={}", id);
-        R<Boolean> result = storeProductBarService.deleteStoreProductBar(id);
-        if (result.getCode() == 200) {
-            return R.success("删除成功");
-        }
-        return R.fail(result.getMsg());
-    }
-
-    @ApiOperation("根据ID查询酒吧商品详情")
-    @ApiOperationSupport(order = 4)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "主键ID", dataType = "Integer", paramType = "path", required = true)
-    })
-    @GetMapping("/{id}")
-    public R<StoreProductBar> getById(@PathVariable("id") Integer id) {
-        log.info("StoreProductBarController.getById?id={}", id);
-        R<StoreProductBar> result = storeProductBarService.getStoreProductBarById(id);
-        if (result.getCode() == 200 && result.getData() != null) {
-            return result;
-        }
-        return R.fail("未找到该酒吧商品信息");
-    }
-
-    @ApiOperation("分页查询酒吧商品列表")
-    @ApiOperationSupport(order = 5)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum", value = "页码", dataType = "int", paramType = "query", required = true),
-            @ApiImplicitParam(name = "pageSize", value = "页容", dataType = "int", paramType = "query", required = true),
-            @ApiImplicitParam(name = "name", value = "名称(模糊查询)", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "category", value = "品类", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "status", value = "状态(0:禁用,1:启用)", dataType = "Integer", paramType = "query"),
-            @ApiImplicitParam(name = "extId", value = "商品表主键", dataType = "Integer", paramType = "query")
-    })
-    @GetMapping("/page")
-    public R<IPage<StoreProductBar>> getPage(
-            @RequestParam(defaultValue = "1") int pageNum,
-            @RequestParam(defaultValue = "10") int pageSize,
-            @RequestParam(required = false) String name,
-            @RequestParam(required = false) String category,
-            @RequestParam(required = false) Integer status,
-            @RequestParam(required = false) Integer extId) {
-        log.info("StoreProductBarController.getPage?pageNum={}, pageSize={}, name={}, category={}, status={}, extId={}",
-                pageNum, pageSize, name, category, status, extId);
-        IPage<StoreProductBar> page = storeProductBarService.getPage(pageNum, pageSize, name, category, status, extId);
-        return R.data(page);
-    }
-
-    @ApiOperation("批量删除酒吧商品")
-    @ApiOperationSupport(order = 6)
-    @PostMapping("/batchDelete")
-    public R<String> deleteBatch(@RequestBody List<Integer> ids) {
-        log.info("StoreProductBarController.deleteBatch?ids={}", ids);
-        if (ids == null || ids.isEmpty()) {
-            return R.fail("ID列表不能为空");
-        }
-        boolean result = storeProductBarService.deleteBatch(ids);
-        if (result) {
-            return R.success("批量删除成功");
-        }
-        return R.fail("批量删除失败");
-    }
-
-    @ApiOperation("更新酒吧商品状态")
-    @ApiOperationSupport(order = 7)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "主键ID", dataType = "Integer", paramType = "path", required = true),
-            @ApiImplicitParam(name = "status", value = "状态(0:禁用,1:启用)", dataType = "Integer", paramType = "query", required = true)
-    })
-    @PutMapping("/{id}/status")
-    public R<String> updateStatus(
-            @PathVariable("id") Integer id,
-            @RequestParam("status") Integer status) {
-        log.info("StoreProductBarController.updateStatus?id={}, status={}", id, status);
-        if (status == null || (status != 0 && status != 1)) {
-            return R.fail("状态值无效,只能为0或1");
-        }
-        boolean result = storeProductBarService.updateStatus(id, status);
-        if (result) {
-            return R.success("状态更新成功");
-        }
-        return R.fail("状态更新失败");
-    }
-
-    @ApiOperation("根据商品表主键查询酒吧商品列表")
-    @ApiOperationSupport(order = 8)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "extId", value = "商品表主键", dataType = "Integer", paramType = "query", required = true)
-    })
-    @GetMapping("/listByExtId")
-    public R<List<StoreProductBar>> getListByExtId(@RequestParam("extId") Integer extId) {
-        log.info("StoreProductBarController.getListByExtId?extId={}", extId);
-        List<StoreProductBar> list = storeProductBarService.getListByExtId(extId);
-        return R.data(list);
-    }
-
-    @ApiOperation("根据品类查询酒吧商品列表")
-    @ApiOperationSupport(order = 9)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "category", value = "品类", dataType = "String", paramType = "query", required = true)
-    })
-    @GetMapping("/listByCategory")
-    public R<List<StoreProductBar>> getListByCategory(@RequestParam("category") String category) {
-        log.info("StoreProductBarController.getListByCategory?category={}", category);
-        List<StoreProductBar> list = storeProductBarService.getListByCategory(category);
-        return R.data(list);
-    }
-}

+ 0 - 204
alien-store/src/main/java/shop/alien/store/controller/StoreProductDelicaciesController.java

@@ -1,204 +0,0 @@
-package shop.alien.store.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import io.swagger.annotations.*;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-import shop.alien.entity.result.R;
-import shop.alien.entity.store.StoreProductDelicacies;
-import shop.alien.store.service.StoreProductDelicaciesService;
-
-import java.util.List;
-
-/**
- * 美食商品表 Controller
- *
- * @author system
- * @since 2025-01-XX
- */
-@Slf4j
-@Api(tags = {"美食商品管理"})
-@ApiSort(1)
-@CrossOrigin
-@RestController
-@RequestMapping("/store/product/delicacies")
-@RequiredArgsConstructor
-public class StoreProductDelicaciesController {
-
-    private final StoreProductDelicaciesService storeProductDelicaciesService;
-
-    @ApiOperation("分页查询美食商品列表")
-    @ApiOperationSupport(order = 1)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum", value = "页码", dataType = "int", paramType = "query", required = true),
-            @ApiImplicitParam(name = "pageSize", value = "页容", dataType = "int", paramType = "query", required = true),
-            @ApiImplicitParam(name = "name", value = "名称(模糊查询)", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "category", value = "类别", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "extGroup", value = "菜品分组", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "status", value = "状态(0:禁用,1:启用)", dataType = "Integer", paramType = "query"),
-            @ApiImplicitParam(name = "extId", value = "商品表主键", dataType = "Integer", paramType = "query")
-    })
-    @GetMapping("/page")
-    public R<IPage<StoreProductDelicacies>> getPage(
-            @RequestParam(defaultValue = "1") int pageNum,
-            @RequestParam(defaultValue = "10") int pageSize,
-            @RequestParam(required = false) String name,
-            @RequestParam(required = false) String category,
-            @RequestParam(required = false) String extGroup,
-            @RequestParam(required = false) Integer status,
-            @RequestParam(required = false) Integer extId) {
-        log.info("StoreProductDelicaciesController.getPage?pageNum={}, pageSize={}, name={}, category={}, extGroup={}, status={}, extId={}",
-                pageNum, pageSize, name, category, extGroup, status, extId);
-        IPage<StoreProductDelicacies> page = storeProductDelicaciesService.getPage(pageNum, pageSize, name, category, extGroup, status, extId);
-        return R.data(page);
-    }
-
-    @ApiOperation("根据ID查询美食商品详情")
-    @ApiOperationSupport(order = 2)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "主键ID", dataType = "Integer", paramType = "path", required = true)
-    })
-    @GetMapping("/{id}")
-    public R<StoreProductDelicacies> getById(@PathVariable("id") Integer id) {
-        log.info("StoreProductDelicaciesController.getById?id={}", id);
-        StoreProductDelicacies delicacies = storeProductDelicaciesService.getById(id);
-        if (delicacies == null) {
-            return R.fail("未找到该美食商品信息");
-        }
-        return R.data(delicacies);
-    }
-
-    @ApiOperation("新增美食商品")
-    @ApiOperationSupport(order = 3)
-    @PostMapping
-    public R<String> saveDelicacies(@RequestBody StoreProductDelicacies delicacies) {
-        log.info("StoreProductDelicaciesController.saveDelicacies?delicacies={}", delicacies);
-        // 参数校验
-        if (delicacies.getName() == null || delicacies.getName().trim().isEmpty()) {
-            return R.fail("名称不能为空");
-        }
-        if (delicacies.getPrice() == null) {
-            return R.fail("价格不能为空");
-        }
-        if (delicacies.getCostPrice() == null) {
-            return R.fail("成本价不能为空");
-        }
-        if (delicacies.getCategory() == null || delicacies.getCategory().trim().isEmpty()) {
-            return R.fail("类别不能为空");
-        }
-        if (delicacies.getExtGroup() == null || delicacies.getExtGroup().trim().isEmpty()) {
-            return R.fail("菜品分组不能为空");
-        }
-
-        boolean result = storeProductDelicaciesService.saveDelicacies(delicacies);
-        if (result) {
-            return R.success("新增成功");
-        }
-        return R.fail("新增失败");
-    }
-
-    @ApiOperation("修改美食商品")
-    @ApiOperationSupport(order = 4)
-    @PutMapping
-    public R<String> updateDelicacies(@RequestBody StoreProductDelicacies delicacies) {
-        log.info("StoreProductDelicaciesController.updateDelicacies?delicacies={}", delicacies);
-        if (delicacies.getId() == null) {
-            return R.fail("ID不能为空");
-        }
-
-        boolean result = storeProductDelicaciesService.updateDelicacies(delicacies);
-        if (result) {
-            return R.success("修改成功");
-        }
-        return R.fail("修改失败");
-    }
-
-    @ApiOperation("删除美食商品")
-    @ApiOperationSupport(order = 5)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "主键ID", dataType = "Long", paramType = "path", required = true)
-    })
-    @DeleteMapping("/{id}")
-    public R<String> deleteDelicacies(@PathVariable("id") Integer id) {
-        log.info("StoreProductDelicaciesController.deleteDelicacies?id={}", id);
-        boolean result = storeProductDelicaciesService.deleteDelicacies(id);
-        if (result) {
-            return R.success("删除成功");
-        }
-        return R.fail("删除失败");
-    }
-
-    @ApiOperation("批量删除美食商品")
-    @ApiOperationSupport(order = 6)
-    @PostMapping("/batchDelete")
-    public R<String> deleteBatch(@RequestBody List<Integer> ids) {
-        log.info("StoreProductDelicaciesController.deleteBatch?ids={}", ids);
-        if (ids == null || ids.isEmpty()) {
-            return R.fail("ID列表不能为空");
-        }
-        boolean result = storeProductDelicaciesService.deleteBatch(ids);
-        if (result) {
-            return R.success("批量删除成功");
-        }
-        return R.fail("批量删除失败");
-    }
-
-    @ApiOperation("更新美食商品状态")
-    @ApiOperationSupport(order = 7)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "主键ID", dataType = "Integer", paramType = "path", required = true),
-            @ApiImplicitParam(name = "status", value = "状态(0:禁用,1:启用)", dataType = "Integer", paramType = "query", required = true)
-    })
-    @PutMapping("/{id}/status")
-    public R<String> updateStatus(
-            @PathVariable("id") Integer id,
-            @RequestParam("status") Integer status) {
-        log.info("StoreProductDelicaciesController.updateStatus?id={}, status={}", id, status);
-        if (status == null || (status != 0 && status != 1)) {
-            return R.fail("状态值无效,只能为0或1");
-        }
-        boolean result = storeProductDelicaciesService.updateStatus(id, status);
-        if (result) {
-            return R.success("状态更新成功");
-        }
-        return R.fail("状态更新失败");
-    }
-
-    @ApiOperation("根据商品表主键查询美食商品列表")
-    @ApiOperationSupport(order = 8)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "extId", value = "商品表主键", dataType = "Integer", paramType = "query", required = true)
-    })
-    @GetMapping("/listByExtId")
-    public R<List<StoreProductDelicacies>> getListByExtId(@RequestParam("extId") Integer extId) {
-        log.info("StoreProductDelicaciesController.getListByExtId?extId={}", extId);
-        List<StoreProductDelicacies> list = storeProductDelicaciesService.getListByExtId(extId);
-        return R.data(list);
-    }
-
-    @ApiOperation("根据类别查询美食商品列表")
-    @ApiOperationSupport(order = 9)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "category", value = "类别", dataType = "String", paramType = "query", required = true)
-    })
-    @GetMapping("/listByCategory")
-    public R<List<StoreProductDelicacies>> getListByCategory(@RequestParam("category") String category) {
-        log.info("StoreProductDelicaciesController.getListByCategory?category={}", category);
-        List<StoreProductDelicacies> list = storeProductDelicaciesService.getListByCategory(category);
-        return R.data(list);
-    }
-
-    @ApiOperation("根据菜品分组查询美食商品列表")
-    @ApiOperationSupport(order = 10)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "extGroup", value = "菜品分组", dataType = "String", paramType = "query", required = true)
-    })
-    @GetMapping("/listByExtGroup")
-    public R<List<StoreProductDelicacies>> getListByExtGroup(@RequestParam("extGroup") String extGroup) {
-        log.info("StoreProductDelicaciesController.getListByExtGroup?extGroup={}", extGroup);
-        List<StoreProductDelicacies> list = storeProductDelicaciesService.getListByExtGroup(extGroup);
-        return R.data(list);
-    }
-}
-

+ 0 - 170
alien-store/src/main/java/shop/alien/store/controller/StoreProductGymController.java

@@ -1,170 +0,0 @@
-package shop.alien.store.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import io.swagger.annotations.*;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-import shop.alien.entity.result.R;
-import shop.alien.entity.store.StoreProductGym;
-import shop.alien.store.service.StoreProductGymService;
-
-import java.util.List;
-
-/**
- * 运动健身商品表 Controller
- *
- * @author system
- * @since 2025-01-XX
- */
-@Slf4j
-@Api(tags = {"运动健身商品管理"})
-@CrossOrigin
-@RestController
-@RequestMapping("/store/product/gym")
-@RequiredArgsConstructor
-public class StoreProductGymController {
-
-    private final StoreProductGymService storeProductGymService;
-
-    @ApiOperation("新增运动健身商品")
-    @ApiOperationSupport(order = 1)
-    @PostMapping
-    public R<String> saveGym(@RequestBody StoreProductGym gym) {
-        log.info("StoreProductGymController.saveGym?gym={}", gym);
-        // 参数校验
-        if (gym.getName() == null || gym.getName().trim().isEmpty()) {
-            return R.fail("名称不能为空");
-        }
-        if (gym.getClassMode() == null || gym.getClassMode().trim().isEmpty()) {
-            return R.fail("上课形式不能为空");
-        }
-        if (gym.getPrice() == null) {
-            return R.fail("价格不能为空");
-        }
-
-        R<StoreProductGym> result = storeProductGymService.addStoreProductGym(gym);
-        if (result.getCode() == 200) {
-            return R.success("新增成功");
-        }
-        return R.fail(result.getMsg());
-    }
-
-    @ApiOperation("修改运动健身商品")
-    @ApiOperationSupport(order = 2)
-    @PutMapping
-    public R<String> updateGym(@RequestBody StoreProductGym gym) {
-        log.info("StoreProductGymController.updateGym?gym={}", gym);
-        if (gym.getId() == null) {
-            return R.fail("ID不能为空");
-        }
-
-        R<StoreProductGym> result = storeProductGymService.editStoreProductGym(gym);
-        if (result.getCode() == 200) {
-            return R.success("修改成功");
-        }
-        return R.fail(result.getMsg());
-    }
-
-    @ApiOperation("删除运动健身商品")
-    @ApiOperationSupport(order = 3)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "主键ID", dataType = "Integer", paramType = "path", required = true)
-    })
-    @DeleteMapping("/{id}")
-    public R<String> deleteGym(@PathVariable("id") Integer id) {
-        log.info("StoreProductGymController.deleteGym?id={}", id);
-        R<Boolean> result = storeProductGymService.deleteStoreProductGym(id);
-        if (result.getCode() == 200) {
-            return R.success("删除成功");
-        }
-        return R.fail(result.getMsg());
-    }
-
-    @ApiOperation("根据ID查询运动健身商品详情")
-    @ApiOperationSupport(order = 4)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "主键ID", dataType = "Integer", paramType = "path", required = true)
-    })
-    @GetMapping("/{id}")
-    public R<StoreProductGym> getById(@PathVariable("id") Integer id) {
-        log.info("StoreProductGymController.getById?id={}", id);
-        R<StoreProductGym> result = storeProductGymService.getStoreProductGymById(id);
-        if (result.getCode() == 200 && result.getData() != null) {
-            return result;
-        }
-        return R.fail("未找到该运动健身商品信息");
-    }
-
-    @ApiOperation("分页查询运动健身商品列表")
-    @ApiOperationSupport(order = 5)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum", value = "页码", dataType = "int", paramType = "query", required = true),
-            @ApiImplicitParam(name = "pageSize", value = "页容", dataType = "int", paramType = "query", required = true),
-            @ApiImplicitParam(name = "name", value = "名称(模糊查询)", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "classMode", value = "上课形式", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "status", value = "状态(0:禁用,1:启用)", dataType = "Integer", paramType = "query"),
-            @ApiImplicitParam(name = "extId", value = "商品表主键", dataType = "Integer", paramType = "query")
-    })
-    @GetMapping("/page")
-    public R<IPage<StoreProductGym>> getPage(
-            @RequestParam(defaultValue = "1") int pageNum,
-            @RequestParam(defaultValue = "10") int pageSize,
-            @RequestParam(required = false) String name,
-            @RequestParam(required = false) String classMode,
-            @RequestParam(required = false) Integer status,
-            @RequestParam(required = false) Integer extId) {
-        log.info("StoreProductGymController.getPage?pageNum={}, pageSize={}, name={}, classMode={}, status={}, extId={}",
-                pageNum, pageSize, name, classMode, status, extId);
-        IPage<StoreProductGym> page = storeProductGymService.getPage(pageNum, pageSize, name, classMode, status, extId);
-        return R.data(page);
-    }
-
-    @ApiOperation("批量删除运动健身商品")
-    @ApiOperationSupport(order = 6)
-    @PostMapping("/batchDelete")
-    public R<String> deleteBatch(@RequestBody List<Integer> ids) {
-        log.info("StoreProductGymController.deleteBatch?ids={}", ids);
-        if (ids == null || ids.isEmpty()) {
-            return R.fail("ID列表不能为空");
-        }
-        boolean result = storeProductGymService.deleteBatch(ids);
-        if (result) {
-            return R.success("批量删除成功");
-        }
-        return R.fail("批量删除失败");
-    }
-
-    @ApiOperation("更新运动健身商品状态")
-    @ApiOperationSupport(order = 7)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "主键ID", dataType = "Integer", paramType = "path", required = true),
-            @ApiImplicitParam(name = "status", value = "状态(0:禁用,1:启用)", dataType = "Integer", paramType = "query", required = true)
-    })
-    @PutMapping("/{id}/status")
-    public R<String> updateStatus(
-            @PathVariable("id") Integer id,
-            @RequestParam("status") Integer status) {
-        log.info("StoreProductGymController.updateStatus?id={}, status={}", id, status);
-        if (status == null || (status != 0 && status != 1)) {
-            return R.fail("状态值无效,只能为0或1");
-        }
-        boolean result = storeProductGymService.updateStatus(id, status);
-        if (result) {
-            return R.success("状态更新成功");
-        }
-        return R.fail("状态更新失败");
-    }
-
-    @ApiOperation("根据商品表主键查询运动健身商品列表")
-    @ApiOperationSupport(order = 8)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "extId", value = "商品表主键", dataType = "Integer", paramType = "query", required = true)
-    })
-    @GetMapping("/listByExtId")
-    public R<List<StoreProductGym>> getListByExtId(@RequestParam("extId") Integer extId) {
-        log.info("StoreProductGymController.getListByExtId?extId={}", extId);
-        List<StoreProductGym> list = storeProductGymService.getListByExtId(extId);
-        return R.data(list);
-    }
-}

+ 0 - 167
alien-store/src/main/java/shop/alien/store/controller/StoreProductItemController.java

@@ -1,167 +0,0 @@
-package shop.alien.store.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import io.swagger.annotations.*;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-import shop.alien.entity.result.R;
-import shop.alien.entity.store.StoreProductItem;
-import shop.alien.entity.store.dto.StoreProductItemDto;
-import shop.alien.entity.store.vo.StoreProductItemGymVo;
-import shop.alien.entity.store.vo.StoreProductItemDelicaciesVo;
-import shop.alien.store.service.StoreProductItemService;
-
-import java.util.List;
-
-/**
- * 商品表 前端控制器
- *
- * @author system
- * @since 2025-01-XX
- */
-@Slf4j
-@Api(tags = {"商品管理"})
-@CrossOrigin
-@RestController
-@RequestMapping("/storeProductItem")
-@RequiredArgsConstructor
-public class StoreProductItemController {
-
-    private final StoreProductItemService storeProductItemService;
-
-    @ApiOperation("新增商品")
-    @ApiOperationSupport(order = 1)
-    @PostMapping("/add")
-    public R<StoreProductItem> addStoreProductItem(@RequestBody StoreProductItemDto storeProductItemDto) {
-        log.info("StoreProductItemController.addStoreProductItem?storeProductItem={}", storeProductItemDto);
-        return storeProductItemService.addStoreProductItemDto(storeProductItemDto);
-    }
-
-    @ApiOperation("编辑商品")
-    @ApiOperationSupport(order = 2)
-    @PostMapping("/edit")
-    public R<StoreProductItem> editStoreProductItem(@RequestBody StoreProductItemDto storeProductItemDto) {
-        log.info("StoreProductItemController.editStoreProductItem?storeProductItem={}", storeProductItemDto);
-        return storeProductItemService.editStoreProductItem(storeProductItemDto);
-    }
-
-    @ApiOperation("删除商品")
-    @ApiOperationSupport(order = 3)
-    @DeleteMapping("/delete")
-    public R<Boolean> deleteStoreProductItem(@RequestParam(value = "id") Integer id) {
-        log.info("StoreProductItemController.deleteStoreProductItem?id={}", id);
-        return storeProductItemService.deleteStoreProductItem(id);
-    }
-
-    @ApiOperation("根据ID查询商品")
-    @ApiOperationSupport(order = 4)
-    @GetMapping("/getById")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "modelType", value = "1酒吧2美食3运动", dataType = "int", paramType = "query"),
-    })
-    public R<List<StoreProductItemDto>> getStoreProductItemById(@RequestParam(value = "id") Integer id,@RequestParam(value = "modelType")Integer modelType) {
-        log.info("StoreProductItemController.getStoreProductItemById?id={}", id);
-        return storeProductItemService.getStoreProductItemById(id, modelType);
-    }
-
-    @ApiOperation("按商品类型查询列表")
-    @ApiOperationSupport(order = 5)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "prodType", value = "商品类型:1酒吧-酒水 2酒吧-餐食 3美食-餐食 4运动健身-单次 5运动健身-多次", dataType = "Integer", paramType = "query", required = true)
-    })
-    @GetMapping("/listByProdType")
-    public R<List<StoreProductItem>> listByProdType(@RequestParam("prodType") Integer prodType) {
-        log.info("StoreProductItemController.listByProdType?prodType={}", prodType);
-        return storeProductItemService.listByProdType(prodType);
-    }
-
-    @ApiOperation("分页查询(按门店/名称/类型/状态/预约筛选)")
-    @ApiOperationSupport(order = 7)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum", value = "页码(默认1)", dataType = "int", paramType = "query"),
-            @ApiImplicitParam(name = "pageSize", value = "页容(默认10)", dataType = "int", paramType = "query"),
-            @ApiImplicitParam(name = "storeId", value = "门店ID", dataType = "Integer", paramType = "query"),
-            @ApiImplicitParam(name = "prodName", value = "商品名称(模糊查询)", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "prodType", value = "商品类型", dataType = "Integer", paramType = "query"),
-            @ApiImplicitParam(name = "status", value = "状态:0-待审核 1-审核通过 2-审核拒绝", dataType = "Integer", paramType = "query"),
-            @ApiImplicitParam(name = "needReserve", value = "是否需要预约:0-否 1-是", dataType = "Integer", paramType = "query")
-    })
-    @GetMapping("/pageList")
-    public R<IPage<StoreProductItem>> pageList(@RequestParam(defaultValue = "1") int pageNum,
-                                               @RequestParam(defaultValue = "10") int pageSize,
-                                               @RequestParam(required = false) Integer storeId,
-                                               @RequestParam(required = false) String prodName,
-                                               @RequestParam(required = false) Integer prodType,
-                                               @RequestParam(required = false) Integer status,
-                                               @RequestParam(required = false) Integer needReserve) {
-        IPage<StoreProductItem> pageResult = storeProductItemService.pageStoreProductItems(
-                pageNum > 0 ? pageNum : 1,
-                pageSize > 0 ? pageSize : 10,
-                storeId, prodName, prodType, status, needReserve);
-        return R.data(pageResult);
-    }
-
-    @ApiOperation("用户端 运动健身列表查询")
-    @ApiOperationSupport(order = 8)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum", value = "页码(默认1)", dataType = "int", paramType = "query"),
-            @ApiImplicitParam(name = "pageSize", value = "页容(默认10)", dataType = "int", paramType = "query"),
-            @ApiImplicitParam(name = "storeId", value = "门店ID", dataType = "Integer", paramType = "query"),
-            @ApiImplicitParam(name = "prodName", value = "商品名称(模糊查询)", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "prodType", value = "商品类型(1酒吧-酒水 2酒吧-餐食 3美食-餐食 4运动健身-单次 5运动健身-多次)", dataType = "Integer", paramType = "query")
-    })
-    @GetMapping("/getPageWithGym")
-    public R<IPage<StoreProductItemGymVo>> getPageWithGym(
-            @RequestParam int pageNum,
-            @RequestParam int pageSize,
-            @RequestParam(required = false) Integer storeId,
-            @RequestParam(required = false) String prodName,
-            @RequestParam(required = false) Integer prodType) {
-        log.info("StoreProductItemController.getPageWithGym?pageNum={}, pageSize={}, storeId={}, prodName={}, prodType={}",
-                pageNum, pageSize, storeId, prodName, prodType);
-        IPage<StoreProductItemGymVo> pageResult = storeProductItemService.getPageWithGym(pageNum, pageSize, storeId, prodName, prodType);
-        return R.data(pageResult);
-    }
-
-    @ApiOperation("用户端 运动健身详情查询")
-    @ApiOperationSupport(order = 9)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "商品表主键ID", dataType = "Long", paramType = "query", required = true)
-    })
-    @GetMapping("/getDetailWithGym")
-    public R<StoreProductItemGymVo> getDetailWithGym(@RequestParam("id") Long id) {
-        log.info("StoreProductItemController.getDetailWithGym?id={}", id);
-        return storeProductItemService.getDetailWithGym(id);
-    }
-
-    @ApiOperation("用户端查询美食商品列表(包含菜品和套餐)")
-    @ApiOperationSupport(order = 10)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum", value = "页码", dataType = "int", paramType = "query", required = true),
-            @ApiImplicitParam(name = "pageSize", value = "页容", dataType = "int", paramType = "query", required = true),
-            @ApiImplicitParam(name = "storeId", value = "门店ID", dataType = "Integer", paramType = "query"),
-            @ApiImplicitParam(name = "name", value = "名称(模糊查询)", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "category", value = "类别", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "extGroup", value = "菜品分组", dataType = "String", paramType = "query"),
-            @ApiImplicitParam(name = "status", value = "状态(0:禁用,1:启用)", dataType = "Integer", paramType = "query"),
-            @ApiImplicitParam(name = "packageType", value = "套餐类型(预留,用于根据类型查询套餐)", dataType = "Integer", paramType = "query")
-    })
-    @GetMapping("/getFoodAndPackagePage")
-    public R<IPage<StoreProductItemDelicaciesVo>> getFoodAndPackagePage(
-            @RequestParam(defaultValue = "1") int pageNum,
-            @RequestParam(defaultValue = "10") int pageSize,
-            @RequestParam(required = false) Integer storeId,
-            @RequestParam(required = false) String name,
-            @RequestParam(required = false) String category,
-            @RequestParam(required = false) String extGroup,
-            @RequestParam(required = false) Integer status,
-            @RequestParam(required = false) Integer packageType) {
-        log.info("StoreProductItemController.getFoodAndPackagePage?pageNum={}, pageSize={}, storeId={}, name={}, category={}, extGroup={}, status={}, packageType={}",
-                pageNum, pageSize, storeId, name, category, extGroup, status, packageType);
-        IPage<StoreProductItemDelicaciesVo> page = storeProductItemService.getPageWithDelicacies(
-                pageNum, pageSize, storeId, name, category, extGroup, status, packageType);
-        return R.data(page);
-    }
-}
-

+ 0 - 117
alien-store/src/main/java/shop/alien/store/service/StoreProductItemService.java

@@ -1,117 +0,0 @@
-package shop.alien.store.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.service.IService;
-import shop.alien.entity.result.R;
-import shop.alien.entity.store.StoreProductItem;
-import shop.alien.entity.store.dto.StoreProductItemDto;
-import shop.alien.entity.store.vo.StoreProductItemGymVo;
-import shop.alien.entity.store.vo.StoreProductItemDelicaciesVo;
-
-import java.util.List;
-
-/**
- * 商品表 服务类
- *
- * @author system
- * @since 2025-01-XX
- */
-public interface StoreProductItemService extends IService<StoreProductItem> {
-
-    /**
-     * 新增商品
-     * @return R<StoreProductItem>
-     */
-    R<StoreProductItem> addStoreProductItemDto(StoreProductItemDto storeProductItemDto);
-
-    /**
-     * 编辑商品
-     *
-     * @param storeProductItem 商品
-     * @return R<StoreProductItem>
-     */
-    R<StoreProductItem> editStoreProductItem(StoreProductItemDto storeProductItem);
-
-    /**
-     * 删除商品
-     *
-     * @param id 主键
-     * @return R<Boolean>
-     */
-    R<Boolean> deleteStoreProductItem(Integer id);
-
-    /**
-     * 根据ID查询商品
-     *
-     * @param id 主键
-     * @return R<StoreProductItem>
-     */
-    R<List<StoreProductItemDto>> getStoreProductItemById(Integer id,Integer modelType);
-
-
-    /**
-     * 按商品类型查询列表
-     *
-     * @param prodType 商品类型:1酒吧-酒水 2酒吧-餐食 3美食-餐食 4运动健身-单次 5运动健身-多次
-     * @return R<List<StoreProductItem>>
-     */
-    R<List<StoreProductItem>> listByProdType(Integer prodType);
-
-
-    /**
-     * 分页查询商品表与运动健身商品表关联数据
-     *
-     * @param pageNum  页码
-     * @param pageSize 页容
-     * @param storeId  门店ID
-     * @param prodName 商品名称(模糊查询)
-     * @param prodType 商品类型
-     * @return IPage<StoreProductItemGymVo>
-     */
-    IPage<StoreProductItemGymVo> getPageWithGym(int pageNum, int pageSize, Integer storeId, String prodName, Integer prodType);
-
-    /**
-     * 根据ID查询商品表与运动健身商品表关联详情
-     *
-     * @param id 商品表主键ID
-     * @return R<StoreProductItemGymVo>
-     */
-    R<StoreProductItemGymVo> getDetailWithGym(Long id);
-
-    /**
-     * 通用分页查询(支持门店、名称、类型、状态、是否预约筛选)
-     *
-     * @param pageNum     页码
-     * @param pageSize    页容
-     * @param storeId     门店ID
-     * @param prodName    商品名称(模糊)
-     * @param prodType    商品类型
-     * @param status      状态:0-待审核 1-审核通过 2-审核拒绝
-     * @param needReserve 是否需要预约:0-否 1-是
-     * @return IPage<StoreProductItem>
-     */
-    IPage<StoreProductItem> pageStoreProductItems(int pageNum, int pageSize,
-                                                  Integer storeId, String prodName, Integer prodType,
-                                                  Integer status, Integer needReserve);
-
-    /**
-     * 分页查询商品表与美食商品表关联数据
-     * 包含:1. store_product_delicacies的所有菜品
-     *      2. store_product_item的所有美食相关的套餐和商品(prodType = 3)
-     *
-     * @param pageNum     页码
-     * @param pageSize    页容
-     * @param storeId     门店ID
-     * @param name        名称(模糊查询)
-     * @param category    类别
-     * @param extGroup    菜品分组
-     * @param status      状态(0:禁用,1:启用)
-     * @param packageType 套餐类型(预留,用于根据类型查询套餐)
-     * @return IPage<StoreProductItemDelicaciesVo>
-     */
-    IPage<StoreProductItemDelicaciesVo> getPageWithDelicacies(int pageNum, int pageSize,
-                                                              Integer storeId, String name,
-                                                              String category, String extGroup,
-                                                              Integer status, Integer packageType);
-}
-

+ 0 - 461
alien-store/src/main/java/shop/alien/store/service/impl/StoreProductItemServiceImpl.java

@@ -1,461 +0,0 @@
-package shop.alien.store.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.StringUtils;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import shop.alien.entity.result.CommonEnum;
-import shop.alien.entity.result.R;
-import shop.alien.entity.store.StoreProductBar;
-import shop.alien.entity.store.StoreProductDelicacies;
-import shop.alien.entity.store.StoreProductGym;
-import shop.alien.entity.store.StoreProductItem;
-import shop.alien.entity.store.vo.StoreProductItemGymVo;
-import shop.alien.entity.store.vo.StoreProductItemDelicaciesVo;
-import shop.alien.entity.store.vo.StoreProductDelicaciesVo;
-import shop.alien.entity.store.dto.StoreProductItemDto;
-import shop.alien.mapper.StoreProductItemMapper;
-import shop.alien.store.service.StoreProductBarService;
-import shop.alien.store.service.StoreProductDelicaciesService;
-import shop.alien.store.service.StoreProductGymService;
-import shop.alien.store.service.StoreProductItemService;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.function.BiConsumer;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-/**
- * 商品表 服务实现类
- *
- * @author system
- * @since 2025-01-XX
- */
-@Slf4j
-@Transactional(rollbackFor = Exception.class)
-@Service
-@RequiredArgsConstructor
-public class StoreProductItemServiceImpl extends ServiceImpl<StoreProductItemMapper, StoreProductItem> implements StoreProductItemService {
-
-    private final ObjectMapper objectMapper;
-
-    private final StoreProductBarService storeProductBarService;
-
-    private final StoreProductDelicaciesService storeProductDelicaciesService;
-
-    private final StoreProductGymService storeProductGymService;
-
-    @Override
-    public R<StoreProductItem> addStoreProductItemDto(StoreProductItemDto storeProductItemDto) {
-        log.info("StoreProductItemServiceImpl.addStoreProductItem?storeProductItem={}", storeProductItemDto);
-        StoreProductItem storeProductItem = new StoreProductItem();
-        BeanUtils.copyProperties(storeProductItemDto, storeProductItem);
-        // 先保存主商品,确保可以拿到自增的 id 作为子表 extId。
-        this.save(storeProductItem);
-        // 根据商品类型分发子表保存逻辑。
-        processSubItems(storeProductItemDto, storeProductItem, false);
-        return R.data(storeProductItem);
-    }
-
-    @Override
-    public R<StoreProductItem> editStoreProductItem(StoreProductItemDto storeProductItemDto) {
-        log.info("StoreProductItemServiceImpl.editStoreProductItem?storeProductItem={}", storeProductItemDto);
-        StoreProductItem storeProductItem = new StoreProductItem();
-        BeanUtils.copyProperties(storeProductItemDto, storeProductItem);
-        this.updateById(storeProductItem);
-        // 统一的子表处理:先清理旧数据,再按商品类型重建。
-        processSubItems(storeProductItemDto, storeProductItem, true);
-        return R.data(storeProductItem);
-    }
-
-    /**
-     * 新增/编辑场景下的子表处理。
-     *
-     * @param storeProductItemDto 前端传入的数据,包含主表和子表信息
-     * @param storeProductItem    已保存/更新的主表实体,需从中读取 id 作为子表 extId
-     * @param replaceExisting     是否需要先删除同 extId 的旧数据(编辑场景)
-     */
-    private void processSubItems(StoreProductItemDto storeProductItemDto,
-                                 StoreProductItem storeProductItem,
-                                 boolean replaceExisting) {
-        List<?> rawSubList = storeProductItemDto.getSubList();
-        if (rawSubList == null || rawSubList.isEmpty()) {
-            return;
-        }
-        Integer modelType = storeProductItemDto.getModelType();
-        if (modelType == null) {
-            log.warn("商品缺少 modelType,跳过子项处理");
-            return;
-        }
-        Integer extId = storeProductItem.getId();
-
-        // 编辑场景:删除当前商品 extId 对应的旧子表数据,避免脏数据。
-        if (replaceExisting) {
-            clearSubItemsByModelType(modelType, extId);
-        }
-
-        // 按商品类型把原始子项转换为目标实体并批量入库。
-        if (CommonEnum.ModelType.BAR.getCode() == modelType) {
-            convertAndSave(rawSubList, extId, StoreProductBar.class,
-                    (item, id) -> item.setExtId(id), storeProductBarService::saveBatch);
-        } else if (CommonEnum.ModelType.DELICACY.getCode() == modelType) {
-            convertAndSave(rawSubList, extId, StoreProductDelicacies.class,
-                    (item, id) -> item.setExtId(id), storeProductDelicaciesService::saveBatch);
-        } else if (CommonEnum.ModelType.GYM.getCode() == modelType) {
-            convertAndSave(rawSubList, extId, StoreProductGym.class,
-                    (item, id) -> {
-                        item.setExtId(id);
-                        if (item.getUsageCount() == null) {
-                            item.setUsageCount(0);
-                        }
-                    }, storeProductGymService::saveBatch);
-        } else {
-            log.warn("未知的商品 modelType:{},子项未处理", modelType);
-        }
-    }
-
-    /**
-     * 根据商品模块清理同一个 extId 的旧子表数据,防止编辑后出现重复/脏数据。
-     */
-    private void clearSubItemsByModelType(Integer modelType, Integer extId) {
-        if (CommonEnum.ModelType.BAR.getCode() == modelType) {
-            storeProductBarService.lambdaUpdate().eq(StoreProductBar::getExtId, extId).remove();
-        } else if (CommonEnum.ModelType.DELICACY.getCode() == modelType) {
-            storeProductDelicaciesService.lambdaUpdate().eq(StoreProductDelicacies::getExtId, extId).remove();
-        } else if (CommonEnum.ModelType.GYM.getCode() == modelType) {
-            storeProductGymService.lambdaUpdate().eq(StoreProductGym::getExtId, extId).remove();
-        }
-    }
-
-    /**
-     * 通用转换 + 批量保存,保持原有异常行为。
-     */
-    private <T> void convertAndSave(List<?> rawSubList, Integer extId, Class<T> clazz,
-                                    BiConsumer<T, Integer> extSetter,
-                                    Function<List<T>, Boolean> saveBatchFunc) {
-        List<T> subList = rawSubList.stream()
-                .map(v -> objectMapper.convertValue(v, clazz))
-                .peek(v -> extSetter.accept(v, extId))
-                .collect(Collectors.toList());
-        boolean subSaved = saveBatchFunc.apply(subList);
-        if (!subSaved) {
-            throw new RuntimeException("子项保存失败");
-        }
-    }
-
-    @Override
-    public R<Boolean> deleteStoreProductItem(Integer id) {
-        log.info("StoreProductItemServiceImpl.deleteStoreProductItem?id={}", id);
-        boolean result = this.removeById(id);
-        storeProductBarService.lambdaUpdate().eq(StoreProductBar::getExtId, id).remove();
-        storeProductDelicaciesService.lambdaUpdate().eq(StoreProductDelicacies::getExtId, id).remove();
-        storeProductGymService.lambdaUpdate().eq(StoreProductGym::getExtId, id).remove();
-        if (result) {
-            return R.success("删除成功");
-        }
-        return R.fail("删除失败");
-    }
-
-    @Override
-    public R<List<StoreProductItemDto>> getStoreProductItemById(Integer id,Integer modelType) {
-        log.info("StoreProductItemServiceImpl.getStoreProductItemById?id={}", id);
-        StoreProductItem storeProductItem = this.getById(id);
-        if (storeProductItem != null) {
-            ArrayList<StoreProductItemDto> list = new ArrayList<>();
-            StoreProductItemDto storeProductItemDto = new StoreProductItemDto();
-            list.add(storeProductItemDto);
-            BeanUtils.copyProperties(storeProductItem,storeProductItemDto);
-            List<?> sublist =null;
-            if (modelType == CommonEnum.ModelType.BAR.getCode()) {
-                sublist = storeProductBarService.getByExtId(id);
-            }else if (modelType == CommonEnum.ModelType.DELICACY.getCode()) {
-                sublist = storeProductDelicaciesService.getByExtId(id);
-            }else if (modelType == CommonEnum.ModelType.GYM.getCode()) {
-                sublist = storeProductGymService.getByExtId(id);
-            }
-            storeProductItemDto.setSubList(sublist);
-            return R.data(list);
-        }
-        return R.fail("未找到数据");
-    }
-
-    @Override
-    public R<List<StoreProductItem>> listByProdType(Integer prodType) {
-        log.info("StoreProductItemServiceImpl.listByProdType?prodType={}", prodType);
-        if (prodType == null) {
-            return R.fail("prodType不能为空");
-        }
-        List<StoreProductItem> result = lambdaQuery().eq(StoreProductItem::getProdType, prodType)
-                .orderByDesc(StoreProductItem::getCreatedTime).list();
-        return R.data(result);
-    }
-
-    @Override
-    public IPage<StoreProductItem> pageStoreProductItems(int pageNum, int pageSize,
-                                                         Integer storeId, String prodName, Integer prodType,
-                                                         Integer status, Integer needReserve) {
-        log.info("StoreProductItemServiceImpl.pageStoreProductItems?pageNum={}, pageSize={}, storeId={}, prodName={}, prodType={}, status={}, needReserve={}",
-                pageNum, pageSize, storeId, prodName, prodType, status, needReserve);
-        Page<StoreProductItem> page = new Page<>(pageNum, pageSize);
-        LambdaQueryWrapper<StoreProductItem> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(storeId != null, StoreProductItem::getStoreId, storeId)
-                .eq(prodType != null, StoreProductItem::getProdType, prodType)
-                .eq(status != null, StoreProductItem::getStatus, status)
-                .eq(needReserve != null, StoreProductItem::getNeedReserve, needReserve)
-                .like(StringUtils.hasText(prodName), StoreProductItem::getProdName, prodName)
-                .orderByDesc(StoreProductItem::getCreatedTime);
-        return this.page(page, wrapper);
-    }
-
-    @Override
-    public IPage<StoreProductItemGymVo> getPageWithGym(int pageNum, int pageSize, Integer storeId, String prodName, Integer prodType) {
-        log.info("StoreProductItemServiceImpl.getPageWithGym?pageNum={}, pageSize={}, storeId={}, prodName={}, prodType={}",
-                pageNum, pageSize, storeId, prodName, prodType);
-        Page<StoreProductItemGymVo> page = new Page<>(pageNum, pageSize);
-        if(prodType == 0){
-            return baseMapper.getPageWithGym(page, storeId, prodName, null);
-        }else{
-            return baseMapper.getPageWithGym(page, storeId, prodName, prodType);
-        }
-    }
-
-    @Override
-    public R<StoreProductItemGymVo> getDetailWithGym(Long id) {
-        log.info("StoreProductItemServiceImpl.getDetailWithGym?id={}", id);
-        if (id == null) {
-            return R.fail("ID不能为空");
-        }
-        StoreProductItemGymVo detail = baseMapper.getDetailWithGym(id);
-        if (detail != null) {
-            return R.data(detail);
-        }
-        return R.fail("查询失败,数据不存在");
-    }
-
-    @Override
-    public IPage<StoreProductItemDelicaciesVo> getPageWithDelicacies(int pageNum, int pageSize,
-                                                                      Integer storeId, String name,
-                                                                      String category, String extGroup,
-                                                                      Integer status, Integer packageType) {
-        log.info("StoreProductItemServiceImpl.getPageWithDelicacies?pageNum={}, pageSize={}, storeId={}, name={}, category={}, extGroup={}, status={}, packageType={}",
-                pageNum, pageSize, storeId, name, category, extGroup, status, packageType);
-        
-        // 1. 查询主表store_product_item中关于美食的数据(prodType = 4)
-        LambdaQueryWrapper<StoreProductItem> itemWrapper = new LambdaQueryWrapper<>();
-        itemWrapper.eq(StoreProductItem::getProdType, 4)
-                .eq(StoreProductItem::getDeleteFlag, 0);
-        
-        if (storeId != null) {
-            itemWrapper.eq(StoreProductItem::getStoreId, storeId);
-        }
-        if (StringUtils.hasText(name)) {
-            itemWrapper.like(StoreProductItem::getProdName, name);
-        }
-        if (status != null) {
-            itemWrapper.eq(StoreProductItem::getStatus, status);
-        }
-        
-        // 查询所有主表数据(不分页,用于后续合并)
-        List<StoreProductItem> allItemList = this.list(itemWrapper);
-        List<Integer> allItemIds = allItemList != null ? allItemList.stream()
-                .map(StoreProductItem::getId)
-                .collect(Collectors.toList()) : new ArrayList<>();
-        
-        // 2. 查询所有关联的子表数据
-        LambdaQueryWrapper<StoreProductDelicacies> relatedDelicaciesWrapper = new LambdaQueryWrapper<>();
-        if (!allItemIds.isEmpty()) {
-            relatedDelicaciesWrapper.in(StoreProductDelicacies::getExtId, allItemIds)
-                    .eq(StoreProductDelicacies::getDeleteFlag, 0);
-        } else {
-            // 如果没有主表数据,设置一个不可能的条件
-            relatedDelicaciesWrapper.eq(StoreProductDelicacies::getExtId, -1)
-                    .eq(StoreProductDelicacies::getDeleteFlag, 0);
-        }
-        
-        // 子表筛选条件
-        if (StringUtils.hasText(name)) {
-            relatedDelicaciesWrapper.like(StoreProductDelicacies::getName, name);
-        }
-        if (StringUtils.hasText(category)) {
-            relatedDelicaciesWrapper.eq(StoreProductDelicacies::getCategory, category);
-        }
-        if (StringUtils.hasText(extGroup)) {
-            relatedDelicaciesWrapper.eq(StoreProductDelicacies::getExtGroup, extGroup);
-        }
-        if (status != null) {
-            relatedDelicaciesWrapper.eq(StoreProductDelicacies::getStatus, status);
-        }
-        
-        List<StoreProductDelicacies> relatedDelicaciesList = storeProductDelicaciesService.list(relatedDelicaciesWrapper);
-        
-        // 3. 查询独立的子表数据(extId为null或不在主表ID列表中的)
-        LambdaQueryWrapper<StoreProductDelicacies> independentDelicaciesWrapper = new LambdaQueryWrapper<>();
-        independentDelicaciesWrapper.eq(StoreProductDelicacies::getDeleteFlag, 0);
-        
-        // 独立的子表:extId为null,或者extId不在主表ID列表中
-        if (allItemIds.isEmpty()) {
-            // 如果没有主表数据,查询所有extId为null的子表数据
-            independentDelicaciesWrapper.isNull(StoreProductDelicacies::getExtId);
-        } else {
-            // extId为null,或者extId不在主表ID列表中
-            independentDelicaciesWrapper.and(wrapper -> wrapper.isNull(StoreProductDelicacies::getExtId)
-                    .or().notIn(StoreProductDelicacies::getExtId, allItemIds));
-        }
-        
-        // 子表筛选条件
-        if (StringUtils.hasText(name)) {
-            independentDelicaciesWrapper.like(StoreProductDelicacies::getName, name);
-        }
-        if (StringUtils.hasText(category)) {
-            independentDelicaciesWrapper.eq(StoreProductDelicacies::getCategory, category);
-        }
-        if (StringUtils.hasText(extGroup)) {
-            independentDelicaciesWrapper.eq(StoreProductDelicacies::getExtGroup, extGroup);
-        }
-        if (status != null) {
-            independentDelicaciesWrapper.eq(StoreProductDelicacies::getStatus, status);
-        }
-        
-        List<StoreProductDelicacies> independentDelicaciesList = storeProductDelicaciesService.list(independentDelicaciesWrapper);
-        
-        // 4. 按extId分组,构建关联子表数据映射
-        Map<Integer, List<StoreProductDelicaciesVo>> delicaciesMap = relatedDelicaciesList.stream()
-                .collect(Collectors.groupingBy(
-                        StoreProductDelicacies::getExtId,
-                        Collectors.mapping(delicacies -> convertToDelicaciesVo(delicacies), Collectors.toList())
-                ));
-        
-        // 5. 组装结果列表
-        List<StoreProductItemDelicaciesVo> resultList = new ArrayList<>();
-        
-        // 5.1 添加主表数据及其关联的子表数据
-        if (allItemList != null) {
-            for (StoreProductItem item : allItemList) {
-                StoreProductItemDelicaciesVo vo = convertItemToVo(item);
-                // 设置子表列表(一对多关系)
-                List<StoreProductDelicaciesVo> subList = delicaciesMap.getOrDefault(item.getId(), new ArrayList<>());
-                vo.setDelicaciesList(subList);
-                resultList.add(vo);
-            }
-        }
-        
-        // 5.2 添加独立的子表数据(作为独立的记录,主表字段为空)
-        for (StoreProductDelicacies delicacies : independentDelicaciesList) {
-            StoreProductItemDelicaciesVo vo = new StoreProductItemDelicaciesVo();
-            // 主表字段为空或null
-            vo.setId(null);
-            vo.setStoreId(null);
-            // 子表字段
-            vo.setDelicaciesId(delicacies.getId());
-            vo.setExtId(delicacies.getExtId());
-            vo.setName(delicacies.getName());
-            vo.setPrice(delicacies.getPrice());
-            vo.setCostPrice(delicacies.getCostPrice());
-            vo.setUnit(delicacies.getUnit());
-            vo.setQuantity(delicacies.getQuantity());
-            vo.setCategory(delicacies.getCategory());
-            vo.setExtGroup(delicacies.getExtGroup());
-            vo.setDelicaciesStatus(delicacies.getStatus());
-            vo.setDelicaciesDeleteFlag(delicacies.getDeleteFlag());
-            vo.setDelicaciesCreatedUserId(delicacies.getCreatedUserId());
-            vo.setDelicaciesUpdatedUserId(delicacies.getUpdatedUserId());
-            vo.setDelicaciesCreatedTime(delicacies.getCreatedTime());
-            vo.setDelicaciesUpdatedTime(delicacies.getUpdatedTime());
-            // 子表列表只包含自己
-            List<StoreProductDelicaciesVo> subList = new ArrayList<>();
-            subList.add(convertToDelicaciesVo(delicacies));
-            vo.setDelicaciesList(subList);
-            resultList.add(vo);
-        }
-        
-        // 6. 按创建时间倒序排序(主表或子表的创建时间)
-        resultList.sort((a, b) -> {
-            Date dateA = a.getDelicaciesCreatedTime() != null ? a.getDelicaciesCreatedTime() : a.getCreatedTime();
-            Date dateB = b.getDelicaciesCreatedTime() != null ? b.getDelicaciesCreatedTime() : b.getCreatedTime();
-            if (dateA == null && dateB == null) return 0;
-            if (dateA == null) return 1;
-            if (dateB == null) return -1;
-            return dateB.compareTo(dateA); // 倒序
-        });
-        
-        // 7. 手动分页
-        int total = resultList.size();
-        int start = (pageNum - 1) * pageSize;
-        int end = Math.min(start + pageSize, total);
-        
-        List<StoreProductItemDelicaciesVo> pageList = start < total ? resultList.subList(start, end) : new ArrayList<>();
-        
-        // 8. 构建分页结果
-        Page<StoreProductItemDelicaciesVo> resultPage = new Page<>(pageNum, pageSize);
-        resultPage.setRecords(pageList);
-        resultPage.setTotal(total);
-        resultPage.setPages((int) Math.ceil((double) total / pageSize));
-        resultPage.setCurrent(pageNum);
-        resultPage.setSize(pageSize);
-        
-        return resultPage;
-    }
-
-    /**
-     * 将StoreProductItem转换为VO
-     */
-    private StoreProductItemDelicaciesVo convertItemToVo(StoreProductItem item) {
-        StoreProductItemDelicaciesVo vo = new StoreProductItemDelicaciesVo();
-        vo.setId(item.getId());
-        vo.setStoreId(item.getStoreId());
-        vo.setProdName(item.getProdName());
-        vo.setTotalPrice(item.getTotalPrice());
-        vo.setProdType(item.getProdType());
-        vo.setImages(item.getImages());
-        vo.setImageContent(item.getImageContent());
-        vo.setDetailContent(item.getDetailContent());
-        vo.setExtraNote(item.getExtraNote());
-        vo.setNeedReserve(item.getNeedReserve());
-        vo.setReserveRule(item.getReserveRule());
-        vo.setPeopleLimit(item.getPeopleLimit());
-        vo.setUsageRule(item.getUsageRule());
-        vo.setStatus(item.getStatus());
-        vo.setRejectionReason(item.getRejectionReason());
-        vo.setDeleteFlag(item.getDeleteFlag());
-        vo.setCreatedUserId(item.getCreatedUserId());
-        vo.setUpdatedUserId(item.getUpdatedUserId());
-        vo.setCreatedTime(item.getCreatedTime());
-        vo.setUpdatedTime(item.getUpdatedTime());
-        return vo;
-    }
-
-    /**
-     * 将StoreProductDelicacies转换为VO
-     */
-    private StoreProductDelicaciesVo convertToDelicaciesVo(StoreProductDelicacies delicacies) {
-        StoreProductDelicaciesVo vo = new StoreProductDelicaciesVo();
-        vo.setId(delicacies.getId());
-        vo.setExtId(delicacies.getExtId());
-        vo.setName(delicacies.getName());
-        vo.setPrice(delicacies.getPrice());
-        vo.setCostPrice(delicacies.getCostPrice());
-        vo.setUnit(delicacies.getUnit());
-        vo.setQuantity(delicacies.getQuantity());
-        vo.setCategory(delicacies.getCategory());
-        vo.setExtGroup(delicacies.getExtGroup());
-        vo.setStatus(delicacies.getStatus());
-        vo.setDeleteFlag(delicacies.getDeleteFlag());
-        vo.setCreatedUserId(delicacies.getCreatedUserId());
-        vo.setUpdatedUserId(delicacies.getUpdatedUserId());
-        vo.setCreatedTime(delicacies.getCreatedTime());
-        vo.setUpdatedTime(delicacies.getUpdatedTime());
-        return vo;
-    }
-
-}
-