Parcourir la source

Merge branch 'sit' into sit-shenzhen

# Conflicts:
#	alien-entity/src/main/java/shop/alien/mapper/LifeFansMapper.java
penghao il y a 3 mois
Parent
commit
b98026e3e4
100 fichiers modifiés avec 4379 ajouts et 47 suppressions
  1. 18 0
      Dockerfile
  2. 48 0
      alien-entity/src/main/java/shop/alien/entity/result/CommonEnum.java
  3. 58 0
      alien-entity/src/main/java/shop/alien/entity/second/SecondUserCreditDateRecord.java
  4. 3 0
      alien-entity/src/main/java/shop/alien/entity/second/SecondUserCreditRecord.java
  5. 25 0
      alien-entity/src/main/java/shop/alien/entity/second/enums/SecondUserCreditScoreEnum.java
  6. 27 0
      alien-entity/src/main/java/shop/alien/entity/second/vo/SecondUserCreditRecordListVo.java
  7. 16 0
      alien-entity/src/main/java/shop/alien/entity/second/vo/SecondUserViolationDetailVo.java
  8. 1 1
      alien-entity/src/main/java/shop/alien/entity/second/vo/SecondUserViolationVo.java
  9. 142 0
      alien-entity/src/main/java/shop/alien/entity/store/BarPerformance.java
  10. 4 0
      alien-entity/src/main/java/shop/alien/entity/store/CommentAppeal.java
  11. 94 0
      alien-entity/src/main/java/shop/alien/entity/store/FitnessEquipmentInfo.java
  12. 7 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeDiscountCouponUser.java
  13. 4 4
      alien-entity/src/main/java/shop/alien/entity/store/LifeFeedback.java
  14. 1 1
      alien-entity/src/main/java/shop/alien/entity/store/LifeLikeRecord.java
  15. 16 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeSys.java
  16. 87 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeSysDept.java
  17. 108 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeSysMenu.java
  18. 78 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeSysRole.java
  19. 44 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeSysRoleMenu.java
  20. 44 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeSysUserRole.java
  21. 4 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeUser.java
  22. 107 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeUserCreditScoreInfo.java
  23. 54 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeUserLearningRecord.java
  24. 66 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeUserLearningVideo.java
  25. 118 0
      alien-entity/src/main/java/shop/alien/entity/store/OperationLog.java
  26. 66 0
      alien-entity/src/main/java/shop/alien/entity/store/ProtocolManagement.java
  27. 15 3
      alien-entity/src/main/java/shop/alien/entity/store/SportsEquipmentFacility.java
  28. 67 0
      alien-entity/src/main/java/shop/alien/entity/store/SportsFacilityArea.java
  29. 8 7
      alien-entity/src/main/java/shop/alien/entity/store/StoreClockIn.java
  30. 8 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreImg.java
  31. 18 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreInfo.java
  32. 79 0
      alien-entity/src/main/java/shop/alien/entity/store/StorePlatformBenefits.java
  33. 102 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreProductBar.java
  34. 91 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreProductDelicacies.java
  35. 106 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreProductGym.java
  36. 111 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreProductItem.java
  37. 54 2
      alien-entity/src/main/java/shop/alien/entity/store/StoreStaffConfig.java
  38. 82 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreStaffFitnessBase.java
  39. 69 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreStaffFitnessCertification.java
  40. 83 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreStaffFitnessCourse.java
  41. 76 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreStaffFitnessExperience.java
  42. 63 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreVirtualCurrency.java
  43. 33 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/BarPerformanceOnlineStatusDto.java
  44. 2 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/LifeFeedbackQueryDto.java
  45. 45 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/LifeSysDeptAddDto.java
  46. 27 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/LifeSysDeptSortDto.java
  47. 33 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/LifeSysDeptUpdateDto.java
  48. 10 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/LifeUserViolationDto.java
  49. 19 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/StoreInfoDto.java
  50. 64 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/StoreProductItemDto.java
  51. 38 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/StoreStaffConfigListQueryDto.java
  52. 36 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/StoreStaffFitnessCourseGroup.java
  53. 37 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/StoreStaffFitnessCourseItem.java
  54. 48 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/SystemUserAddDto.java
  55. 39 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/SystemUserQueryDto.java
  56. 30 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/SystemUserStatusDto.java
  57. 51 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/SystemUserUpdateDto.java
  58. 43 0
      alien-entity/src/main/java/shop/alien/entity/store/excelVo/DictionaryLibraryExcelVo.java
  59. 201 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/BarPerformanceDetailVo.java
  60. 29 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/CreateAreaRequestVo.java
  61. 26 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/DeleteAreaRequestVo.java
  62. 46 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/FitnessEquipmentCategoryDetailVo.java
  63. 37 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/FitnessEquipmentTypeSummaryVo.java
  64. 3 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerConsultationOrderVO.java
  65. 3 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LifeFansVo.java
  66. 72 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LifeSysDeptVo.java
  67. 9 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LifeSysVo.java
  68. 19 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserLearningVideoVo.java
  69. 9 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserViolationVo.java
  70. 2 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserVo.java
  71. 123 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/MenuWithRoleVo.java
  72. 3 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/OrderReviewVo.java
  73. 47 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/PerformerVo.java
  74. 43 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/SportsEquipmentFacilityCategorySummaryVo.java
  75. 11 12
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreClockInVo.java
  76. 43 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreImgSaveResultVo.java
  77. 22 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreInfoVo.java
  78. 83 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreLicenseInfoVo.java
  79. 6 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreMainInfoVo.java
  80. 34 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StorePlatformBenefitsVo.java
  81. 73 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreProductDelicaciesVo.java
  82. 146 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreProductItemDelicaciesVo.java
  83. 150 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreProductItemGymVo.java
  84. 35 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreStaffDetailVo.java
  85. 46 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreStaffFitnessDetailVo.java
  86. 27 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreStaffPositionCountVo.java
  87. 6 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/SystemLoginVo.java
  88. 19 0
      alien-entity/src/main/java/shop/alien/mapper/BarPerformanceMapper.java
  89. 16 0
      alien-entity/src/main/java/shop/alien/mapper/FitnessEquipmentInfoMapper.java
  90. 2 1
      alien-entity/src/main/java/shop/alien/mapper/LawyerConsultationOrderMapper.java
  91. 18 13
      alien-entity/src/main/java/shop/alien/mapper/LifeFansMapper.java
  92. 12 0
      alien-entity/src/main/java/shop/alien/mapper/LifeFeedbackMapper.java
  93. 19 3
      alien-entity/src/main/java/shop/alien/mapper/LifeMessageMapper.java
  94. 15 0
      alien-entity/src/main/java/shop/alien/mapper/LifeSysDeptMapper.java
  95. 6 0
      alien-entity/src/main/java/shop/alien/mapper/LifeSysMapper.java
  96. 19 0
      alien-entity/src/main/java/shop/alien/mapper/LifeSysMenuMapper.java
  97. 33 0
      alien-entity/src/main/java/shop/alien/mapper/LifeSysRoleMapper.java
  98. 16 0
      alien-entity/src/main/java/shop/alien/mapper/LifeSysRoleMenuMapper.java
  99. 16 0
      alien-entity/src/main/java/shop/alien/mapper/LifeSysUserRoleMapper.java
  100. 7 0
      alien-entity/src/main/java/shop/alien/mapper/LifeUserCreditScoreInfoMapper.java

+ 18 - 0
Dockerfile

@@ -0,0 +1,18 @@
+# 第一阶段:构建 jar(可选,如果你想在 Docker 里编译)
+# 也可以直接用 Jenkins 外面 mvn package,这里用两阶段构建做参考
+
+FROM maven:3.9.6-eclipse-temurin-17 AS build
+WORKDIR /app
+COPY pom.xml .
+COPY src ./src
+RUN mvn clean package -DskipTests
+
+# 第二阶段:运行 jar
+FROM eclipse-temurin:17-jdk
+WORKDIR /app
+
+# 从上一阶段复制打包好的 jar
+COPY --from=build /app/target/*.jar app.jar
+
+EXPOSE 8080
+ENTRYPOINT ["java","-jar","/app/app.jar"]

+ 48 - 0
alien-entity/src/main/java/shop/alien/entity/result/CommonEnum.java

@@ -0,0 +1,48 @@
+package shop.alien.entity.result;
+
+
+public interface CommonEnum {
+
+    /**
+     * 商品所属模块
+     */
+    enum ModelType {
+        BAR(1, "酒吧"),
+        DELICACY(2, "美食"),
+        GYM(3, "运动健身");
+
+        private final int code;
+        private final String desc;
+
+        ModelType(int code, String desc) {
+            this.code = code;
+            this.desc = desc;
+        }
+
+        public int getCode() { return code; }
+        public String getDesc() { return desc; }
+    }
+
+    /**
+     * 商品所属模块,细化
+     */
+    enum StoreProductItemProdType {
+        BAR_DRINK(1, "酒吧-酒水"),
+        BAR_FOOD(2, "酒吧-餐食"),
+        BAR_COMBO(3, "酒吧-套餐"),
+        DELICACY_FOOD(4, "美食-餐食"),
+        GYM_SINGLE(5, "运动健身-单次"),
+        GYM_MULTI(6, "运动健身-多次");
+
+        private final int code;
+        private final String desc;
+
+        StoreProductItemProdType(int code, String desc) {
+            this.code = code;
+            this.desc = desc;
+        }
+
+        public int getCode() { return code; }
+        public String getDesc() { return desc; }
+    }
+}

+ 58 - 0
alien-entity/src/main/java/shop/alien/entity/second/SecondUserCreditDateRecord.java

@@ -0,0 +1,58 @@
+package shop.alien.entity.second;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户积分日期记录表
+ */
+@Data
+@JsonInclude
+@TableName("second_user_credit_date_record")
+public class SecondUserCreditDateRecord implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("user_id")
+    private Integer userId;
+
+    @TableField("record_date")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "记录日期")
+    private Date recordDate;
+
+    @TableField("total_points")
+    @ApiModelProperty(value = "当日总积分")
+    private Integer totalPoints;
+
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @TableField(value = "created_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createdTime;
+
+    @TableField(value = "created_user_id", fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "创建人ID")
+    private Integer createdUserId;
+
+    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updatedTime;
+
+    @TableField(value = "updated_user_id", fill = FieldFill.INSERT_UPDATE)
+    @ApiModelProperty(value = "修改人ID")
+    private Integer updatedUserId;
+}
+

+ 3 - 0
alien-entity/src/main/java/shop/alien/entity/second/SecondUserCreditRecord.java

@@ -30,6 +30,9 @@ public class SecondUserCreditRecord implements Serializable {
     @TableField("points_type")
     private Integer pointsType;
 
+    @TableField("current_score_count")
+    private Integer currentScoreCount;
+
     @TableField("delete_flag")
     @TableLogic
     private Integer deleteFlag;

+ 25 - 0
alien-entity/src/main/java/shop/alien/entity/second/enums/SecondUserCreditScoreEnum.java

@@ -0,0 +1,25 @@
+package shop.alien.entity.second.enums;
+
+import lombok.Getter;
+
+@Getter
+public enum SecondUserCreditScoreEnum {
+
+    BASE_SCORE(1, 300, "基础分"),
+    CERTIFICATION_SCORE(2, 200, "认证分"),
+    TRANSACTION_SCORE(3, 50, "交易成功"),
+    SUSPECTED_OF_MONEY_LAUNDERING(4, -50, "洗钱嫌疑"),
+    ABNORMAL_ACCOUNTV(5, -50, "账号异常"),
+    TRADING_FRAUD(6, -50, "交易欺诈"),
+    ABNORMAL_RELEASE(7, -50, "异常发布");
+
+    private final Integer code;
+    private final Integer score;
+    private final String description;
+
+    SecondUserCreditScoreEnum(Integer code, Integer score, String description) {
+        this.code = code;
+        this.score = score;
+        this.description = description;
+    }
+}

+ 27 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/SecondUserCreditRecordListVo.java

@@ -0,0 +1,27 @@
+package shop.alien.entity.second.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.second.SecondUserCreditDateRecord;
+import shop.alien.entity.second.SecondUserCreditRecord;
+
+import java.util.List;
+
+/**
+ * 用户信用分记录列表VO
+ */
+@Data
+@JsonInclude
+public class SecondUserCreditRecordListVo {
+
+    @ApiModelProperty(value = "用户积分")
+    private Integer userPoints;
+
+    @ApiModelProperty(value = "信用分记录列表")
+    private List<SecondUserCreditRecord> recordsChange;
+
+    @ApiModelProperty(value = "日期积分记录列表")
+    private List<SecondUserCreditDateRecord> dateRecords;
+}
+

+ 16 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/SecondUserViolationDetailVo.java

@@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import shop.alien.entity.store.LifeUserDynamics;
+import shop.alien.entity.store.StoreComment;
 
 import java.util.List;
 import java.util.Map;
@@ -24,6 +26,20 @@ public class SecondUserViolationDetailVo extends SecondUserViolationVo{
     // 商品信息
     private SecondGoodsVo secondGoods;
 
+    // 动态图片
+    @ApiModelProperty(value = "动态图片")
+    private List<String> dynamicsImg;
 
+    // 评论图片
+    @ApiModelProperty(value = "评论图片")
+    private List<String> commentImg;
+
+    // 动态信息
+    @ApiModelProperty(value = "动态信息")
+    LifeUserDynamics dynamicsInfo;
+
+    // 评论信息
+    @ApiModelProperty(value = "评论信息")
+    StoreComment commentInfo;
 
 }

+ 1 - 1
alien-entity/src/main/java/shop/alien/entity/second/vo/SecondUserViolationVo.java

@@ -52,7 +52,7 @@ public class SecondUserViolationVo extends LifeUserViolation {
     @ApiModelProperty(value = "举报状态")
     private String processingContext;
 
-    @ApiModelProperty(value = "商品图片")
+    @ApiModelProperty(value = "图片")
     private List<String> imgUrl;
 
 }

+ 142 - 0
alien-entity/src/main/java/shop/alien/entity/store/BarPerformance.java

@@ -0,0 +1,142 @@
+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.util.Date;
+
+/**
+ * 演出信息实体类
+ * 对应表: bar_performance
+ *
+ * @author assistant
+ * @since 2025-12-17
+ */
+@Data
+@JsonInclude
+@TableName("bar_performance")
+@ApiModel(value = "BarPerformance对象", description = "酒吧演出表")
+public class BarPerformance implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "演出ID(主键)")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "父演出ID(关联本表id,null为顶级演出)")
+    @TableField("parent_id")
+    private Integer parentId;
+
+    @ApiModelProperty(value = "关联门店ID(关联store_info.id)")
+    @TableField("store_id")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "表演嘉宾ids,逗号分隔")
+    @TableField("staff_config_ids")
+    private String staffConfigIds;
+
+    @ApiModelProperty(value = "演出名称")
+    @TableField("performance_name")
+    private String performanceName;
+
+    @ApiModelProperty(value = "演出海报路径")
+    @TableField("performance_poster")
+    private String performancePoster;
+
+    @ApiModelProperty(value = "演出风格(字典表proficient_tag逗号分隔)")
+    @TableField("performance_style")
+    private String performanceStyle;
+
+    @ApiModelProperty(value = "演出类型(单选:0-特邀演出,1-常规演出)")
+    @TableField("performance_type")
+    private Integer performanceType;
+
+    @ApiModelProperty(value = "演出频次:0-单次 1-每天定时 2-每周定时")
+    @TableField("performance_frequency")
+    private String performanceFrequency;
+
+    @ApiModelProperty(value = "演出日期(0-周一,1-周二,2-周三,3-周四,4-周五,5-周六,6-周日,复选逗号分隔)")
+    @TableField("performance_week")
+    private String performanceWeek;
+
+    @ApiModelProperty(value = "演出日期开始时间")
+    @TableField("single_start_datetime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date singleStartDatetime;
+
+    @ApiModelProperty(value = "演出日期结束时间")
+    @TableField("single_end_datetime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date singleEndDatetime;
+
+    @ApiModelProperty(value = "演出时间开始日期")
+    @TableField("daily_start_date")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date dailyStartDate;
+
+    @ApiModelProperty(value = "演出时间结束日期")
+    @TableField("daily_end_date")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date dailyEndDate;
+
+    @ApiModelProperty(value = "图片")
+    @TableField("performance_detail")
+    private String performanceDetail;
+
+    @ApiModelProperty(value = "演出完整详情")
+    @TableField("performance_content")
+    private String performanceContent;
+
+    @ApiModelProperty(value = "演出须知(限300字)")
+    @TableField("performance_notice")
+    private String performanceNotice;
+
+    @ApiModelProperty(value = "审核状态:0-待审核 1-审核通过 2-审核拒绝")
+    @TableField("review_status")
+    private Integer reviewStatus;
+
+    @ApiModelProperty(value = "审核拒绝原因")
+    @TableField("reject_reason")
+    private String rejectReason;
+
+    @ApiModelProperty(value = "删除标记:0-未删除,1-已删除")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @ApiModelProperty(value = "隐藏标记:0-不隐藏,1-隐藏")
+    @TableField("hidden")
+    private Integer hidden;
+
+    @ApiModelProperty(value = "上线状态:0-下线,1-上线")
+    @TableField("online_status")
+    private Integer onlineStatus;
+
+    @ApiModelProperty(value = "状态:0禁用,1启用")
+    @TableField("status")
+    private Integer status;
+
+    @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;
+}

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

@@ -96,5 +96,9 @@ public class CommentAppeal extends Model<CommentAppeal> {
     @ApiModelProperty(value = "订单ID")
     @TableField("order_id")
     private Integer orderId;
+
+//    @ApiModelProperty(value = "评价图片")
+//    @TableField("review_images")
+//    private String reviewImages;
 }
 

+ 94 - 0
alien-entity/src/main/java/shop/alien/entity/store/FitnessEquipmentInfo.java

@@ -0,0 +1,94 @@
+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.util.Date;
+
+/**
+ * 健身设备信息实体类
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@TableName("fitness_equipment_info")
+@ApiModel(value = "FitnessEquipmentInfo对象", description = "健身设备信息")
+public class FitnessEquipmentInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "设备名称", required = true)
+    @TableField("equipment_name")
+    private String equipmentName;
+
+    @ApiModelProperty(value = "设备编码")
+    @TableField("equipment_code")
+    private String equipmentCode;
+
+    @ApiModelProperty(value = "设备类型(1:心肺训练, 2:核心训练, 3:臀腿训练, 4:上肢训练, 5:全身训练, 6:其他)", required = true)
+    @TableField("equipment_type")
+    private Integer equipmentType;
+
+    @ApiModelProperty(value = "设备图标URL")
+    @TableField("equipment_icon")
+    private String equipmentIcon;
+
+    @ApiModelProperty(value = "设备图片URL")
+    @TableField("equipment_image")
+    private String equipmentImage;
+
+    @ApiModelProperty(value = "设备描述")
+    @TableField("description")
+    private String description;
+
+    @ApiModelProperty(value = "使用方法")
+    @TableField("usage_method")
+    private String usageMethod;
+
+    @ApiModelProperty(value = "注意事项")
+    @TableField("precautions")
+    private String precautions;
+
+    @ApiModelProperty(value = "排序号")
+    @TableField("sort_order")
+    private Integer sortOrder;
+
+    @ApiModelProperty(value = "状态(0:禁用, 1:启用)")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "删除标记(0:未删除, 1:已删除)")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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 = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+}
+

+ 7 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeDiscountCouponUser.java

@@ -77,6 +77,13 @@ public class LifeDiscountCouponUser extends Model<LifeDiscountCouponUser> {
     @TableField(value = "updated_user_id", fill = FieldFill.INSERT_UPDATE)
     private Integer updatedUserId;
 
+    @ApiModelProperty(value = "U币ID")
+    @TableField("ub_id")
+    private Integer ubId;
+
+     @ApiModelProperty(value = "福利ID")
+     @TableField("welfare_id")
+     private Integer welfareId;
 
     @Override
     protected Serializable pkVal() {

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

@@ -53,14 +53,14 @@ public class LifeFeedback implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date feedbackTime;
 
+    @ApiModelProperty(value = "工作人员ID(关联life_sys)")
+    @TableField("staff_id")
+    private Integer staffId;
+
     @ApiModelProperty(value = "处理状态:0-处理中,1-已解决")
     @TableField("handle_status")
     private Integer handleStatus;
 
-    @ApiModelProperty(value = "跟进人员ID(关联life_sys表的id)")
-    @TableField("staff_id")
-    private Integer staffId;
-
     @ApiModelProperty(value = "创建时间")
     @TableField(value = "create_time", fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

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

@@ -23,7 +23,7 @@ public class LifeLikeRecord {
 
     private String huifuId;
 
-    @ApiModelProperty(value = "1-评论 2-社区动态 3-活动 4-推荐菜 5-店铺打卡 6-二手商品")
+    @ApiModelProperty(value = "1-评论 2-社区动态 3-活动 4-推荐菜 5-店铺打卡 6-二手商品 7-律师评分 8-点赞员工")
     private String type;
 
     private Integer dianzanCount;

+ 16 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeSys.java

@@ -29,6 +29,22 @@ public class LifeSys {
     @ApiModelProperty(value = "角色id")
     private String roleId;
 
+    @ApiModelProperty(value = "真实姓名")
+    @TableField("real_name")
+    private String realName;
+
+    @ApiModelProperty(value = "联系电话")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty(value = "邮箱")
+    @TableField("email")
+    private String email;
+
+    @ApiModelProperty(value = "所属部门ID")
+    @TableField("department_id")
+    private String departmentId;
+
     @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
     @TableField("delete_flag")
     @TableLogic

+ 87 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeSysDept.java

@@ -0,0 +1,87 @@
+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.util.Date;
+
+/**
+ * 部门表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("life_sys_dept")
+@ApiModel(value = "LifeSysDept对象", description = "部门表")
+public class LifeSysDept {
+
+    @ApiModelProperty(value = "部门ID")
+    @TableId(value = "dept_id", type = IdType.AUTO)
+    private Long deptId;
+
+    @ApiModelProperty(value = "父部门ID(0表示根部门)")
+    @TableField("parent_id")
+    private Long parentId;
+
+    @ApiModelProperty(value = "祖级列表(用于数据权限查询,如:0,100,101)")
+    @TableField("ancestors")
+    private String ancestors;
+
+    @ApiModelProperty(value = "部门名称")
+    @TableField("dept_name")
+    private String deptName;
+
+    @ApiModelProperty(value = "显示顺序")
+    @TableField("dept_sort")
+    private Integer deptSort;
+
+    @ApiModelProperty(value = "部门负责人")
+    @TableField("leader")
+    private Integer leader;
+
+    @ApiModelProperty(value = "联系电话")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty(value = "邮箱")
+    @TableField("email")
+    private String email;
+
+    @ApiModelProperty(value = "部门状态(0正常 1停用)")
+    @TableField("status")
+    private String status;
+
+    @ApiModelProperty(value = "删除标志(0存在 2删除)")
+    @TableField("del_flag")
+    @TableLogic(value = "0", delval = "2")
+    private String delFlag;
+
+    @ApiModelProperty(value = "创建者")
+    @TableField("create_by")
+    private String createBy;
+
+    @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("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("description")
+    private String description;
+}
+

+ 108 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeSysMenu.java

@@ -0,0 +1,108 @@
+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.util.Date;
+import java.util.List;
+
+/**
+ * 菜单权限表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("life_sys_menu")
+@ApiModel(value = "LifeSysMenu对象", description = "菜单权限表")
+public class LifeSysMenu {
+
+    @ApiModelProperty(value = "菜单ID")
+    @TableId(value = "menu_id", type = IdType.AUTO)
+    private Long menuId;
+
+    @ApiModelProperty(value = "菜单名称")
+    @TableField("menu_name")
+    private String menuName;
+
+    @ApiModelProperty(value = "父菜单ID(0表示根菜单)")
+    @TableField("parent_id")
+    private Long parentId;
+
+    @ApiModelProperty(value = "菜单类型(M目录 C菜单 F按钮)")
+    @TableField("menu_type")
+    private String menuType;
+
+    @ApiModelProperty(value = "显示顺序")
+    @TableField("menu_sort")
+    private Integer menuSort;
+
+    @ApiModelProperty(value = "路由地址")
+    @TableField("path")
+    private String path;
+
+    @ApiModelProperty(value = "组件路径")
+    @TableField("component")
+    private String component;
+
+    @ApiModelProperty(value = "权限标识(如:sys:user:list)")
+    @TableField("perms")
+    private String perms;
+
+    @ApiModelProperty(value = "菜单图标")
+    @TableField("icon")
+    private String icon;
+
+    @ApiModelProperty(value = "菜单状态(0正常 1停用)")
+    @TableField("status")
+    private String status;
+
+    @ApiModelProperty(value = "是否显示(0显示 1隐藏)")
+    @TableField("visible")
+    private String visible;
+
+    @ApiModelProperty(value = "是否为外链(0是 1否)")
+    @TableField("is_frame")
+    private String isFrame;
+
+    @ApiModelProperty(value = "是否缓存(0缓存 1不缓存)")
+    @TableField("is_cache")
+    private String isCache;
+
+    @ApiModelProperty(value = "删除标志(0存在 2删除)")
+    @TableField("del_flag")
+    @TableLogic(value = "0", delval = "2")
+    private String delFlag;
+
+    @ApiModelProperty(value = "创建者")
+    @TableField("create_by")
+    private String createBy;
+
+    @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("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
+
+    @ApiModelProperty(value = "子菜单列表(用于树形结构)")
+    @TableField(exist = false)
+    private List<LifeSysMenu> children;
+}
+

+ 78 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeSysRole.java

@@ -0,0 +1,78 @@
+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.util.Date;
+
+/**
+ * 平台角色信息表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("life_sys_role")
+@ApiModel(value = "LifeSysRole对象", description = "平台角色信息表")
+public class LifeSysRole implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "角色ID")
+    @TableId(value = "role_id", type = IdType.AUTO)
+    private Long roleId;
+
+    @ApiModelProperty(value = "角色名称")
+    @TableField("role_name")
+    private String roleName;
+
+    @ApiModelProperty(value = "角色名称")
+    @TableField("role_name_en")
+    private String roleNameEn;
+
+    @ApiModelProperty(value = "显示顺序")
+    @TableField("role_sort")
+    private Integer roleSort;
+
+    @ApiModelProperty(value = "角色状态(0正常 1停用)")
+    @TableField("status")
+    private String status;
+
+    @ApiModelProperty(value = "角色描述")
+    @TableField("description")
+    private String description;
+
+    @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)")
+    @TableField("del_flag")
+    @TableLogic
+    private String delFlag;
+
+    @ApiModelProperty(value = "创建者")
+    @TableField("create_by")
+    private String createBy;
+
+    @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("update_by")
+    private String updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
+}
+

+ 44 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeSysRoleMenu.java

@@ -0,0 +1,44 @@
+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.util.Date;
+
+/**
+ * 角色菜单关联表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("life_sys_role_menu")
+@ApiModel(value = "LifeSysRoleMenu对象", description = "角色菜单关联表")
+public class LifeSysRoleMenu implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "角色ID(关联life_sys_role.role_id)")
+    @TableField("role_id")
+    private Long roleId;
+
+    @ApiModelProperty(value = "菜单ID(关联life_sys_menu.menu_id)")
+    @TableField("menu_id")
+    private Long menuId;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "created_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+}
+

+ 44 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeSysUserRole.java

@@ -0,0 +1,44 @@
+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.util.Date;
+
+/**
+ * 用户角色关联表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("life_sys_user_role")
+@ApiModel(value = "LifeSysUserRole对象", description = "用户角色关联表")
+public class LifeSysUserRole implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "用户ID(关联life_sys.id)")
+    @TableField("user_id")
+    private Integer userId;
+
+    @ApiModelProperty(value = "角色ID(关联life_sys_role.role_id)")
+    @TableField("role_id")
+    private Long roleId;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "created_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+}
+

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

@@ -121,4 +121,8 @@ public class LifeUser implements Serializable {
     @ApiModelProperty(value = "绑定他人邀请码")
     @TableField("bind_invite_code")
     private String bindInviteCode;
+
+    @ApiModelProperty(value = "是否被封禁(0-否  1-是)")
+    @TableField("is_banned")
+    private Integer isBanned;
 }

+ 107 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeUserCreditScoreInfo.java

@@ -0,0 +1,107 @@
+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.util.Date;
+
+@Data
+@JsonInclude
+@TableName("life_user_credit_score_info")
+@ApiModel(value = "LifeUserCreditScoreInfo对象", description = "用户信用分信息")
+public class LifeUserCreditScoreInfo {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "用户ID")
+    @TableField("user_id")
+    private Integer userId;
+
+    @ApiModelProperty(value = "职业类型")
+    @TableField("occupation_type")
+    private String occupationType;
+
+    @ApiModelProperty(value = "工作单位")
+    @TableField("work_unit")
+    private String workUnit;
+
+    @ApiModelProperty(value = "职业")
+    @TableField("occupation")
+    private String occupation;
+
+    @ApiModelProperty(value = "月收入")
+    @TableField("monthly_income")
+    private Integer monthlyIncome;
+
+    @ApiModelProperty(value = "最高学历")
+    @TableField("highest_degree")
+    private String highestDegree;
+
+    @ApiModelProperty(value = "毕业院校")
+    @TableField("graduated_institution")
+    private String graduatedInstitution;
+
+    @ApiModelProperty(value = "毕业时间")
+    @TableField("graduation_date")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date graduationDate;
+
+    @ApiModelProperty(value = "所学专业")
+    @TableField("major")
+    private String major;
+
+    @ApiModelProperty(value = "房产地址")
+    @TableField("estate_address")
+    private String estateAddress;
+
+    @ApiModelProperty(value = "是否有房产 1-有 0-无")
+    @TableField("has_estate")
+    private Integer hasEstate;
+
+    @ApiModelProperty(value = "房屋类型")
+    @TableField("estate_type")
+    private String estateType;
+
+    @ApiModelProperty(value = "是否有车辆 1-有 0-无")
+    @TableField("has_car")
+    private Integer hasCar;
+
+    @ApiModelProperty(value = "房产证明")
+    @TableField("estate_imgs")
+    private String estateImgs;
+
+    @ApiModelProperty(value = "行驶证明")
+    @TableField("car_imgs")
+    private String carImgs;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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 = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+
+}

+ 54 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeUserLearningRecord.java

@@ -0,0 +1,54 @@
+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.util.Date;
+
+@Data
+@JsonInclude
+@TableName("life_user_learning_record")
+@ApiModel(value = "LifeUserLearningRecord对象", description = "用户学习记录")
+public class LifeUserLearningRecord {
+
+    @ApiModelProperty(value = "主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "用户id")
+    @TableField("user_id")
+    private Integer userId;
+
+    @ApiModelProperty(value = "学习id")
+    @TableField("learning_id")
+    private Integer learningId;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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 = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+
+}
+

+ 66 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeUserLearningVideo.java

@@ -0,0 +1,66 @@
+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.util.Date;
+
+@Data
+@JsonInclude
+@TableName("life_user_learning_video")
+@ApiModel(value = "LifeUserLearningVideo对象", description = "学习视频")
+public class LifeUserLearningVideo {
+
+    @ApiModelProperty(value = "主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "名称")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "简介")
+    @TableField("profile")
+    private String profile;
+
+    @ApiModelProperty(value = "奖励分数")
+    @TableField("score")
+    private Integer score;
+
+    @ApiModelProperty(value = "视频地址")
+    @TableField("video_url")
+    private String videoUrl;
+
+    @ApiModelProperty(value = "视频时长")
+    @TableField("video_duration")
+    private String videoDuration;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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 = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+
+}
+

+ 118 - 0
alien-entity/src/main/java/shop/alien/entity/store/OperationLog.java

@@ -0,0 +1,118 @@
+package shop.alien.entity.store;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 操作日志实体类
+ *
+ * @author ssk
+ * @since 2025-12-09
+ */
+@Data
+@TableName("operation_log")
+@ApiModel(value = "OperationLog对象", description = "操作日志")
+public class OperationLog {
+
+    @ApiModelProperty(value = "主键ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "账号ID")
+    @TableField("account_id")
+    private String accountId;
+
+    @ApiModelProperty(value = "账号")
+    @TableField("account")
+    private String account;
+
+    @ApiModelProperty(value = "姓名")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "职务")
+    @TableField("position")
+    private String position;
+
+    @ApiModelProperty(value = "部门")
+    @TableField("department")
+    private String department;
+
+    @ApiModelProperty(value = "操作时间")
+    @TableField("operation_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date operationTime;
+
+    @ApiModelProperty(value = "操作模块")
+    @TableField("operation_module")
+    private String operationModule;
+
+    @ApiModelProperty(value = "操作类型(导入、删除、新增、修改等)")
+    @TableField("operation_type")
+    private String operationType;
+
+    @ApiModelProperty(value = "操作内容")
+    @TableField("operation_content")
+    private String operationContent;
+
+    @ApiModelProperty(value = "用户类型(平台、用户、商家、律师)")
+    @TableField("user_type")
+    private String userType;
+
+    @ApiModelProperty(value = "修改前的数据(JSON格式)")
+    @TableField("before_data")
+    private String beforeData;
+
+    @ApiModelProperty(value = "修改后的数据(JSON格式)")
+    @TableField("after_data")
+    private String afterData;
+
+    @ApiModelProperty(value = "请求方法")
+    @TableField("method")
+    private String method;
+
+    @ApiModelProperty(value = "请求路径")
+    @TableField("request_path")
+    private String requestPath;
+
+    @ApiModelProperty(value = "请求参数")
+    @TableField("request_params")
+    private String requestParams;
+
+    @ApiModelProperty(value = "IP地址")
+    @TableField("ip_address")
+    private String ipAddress;
+
+    @ApiModelProperty(value = "文件地址")
+    @TableField("file_url")
+    private String fileUrl;
+
+    @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 = "创建人ID")
+    @TableField(value = "created_user_id", fill = FieldFill.INSERT)
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "更新人ID")
+    @TableField(value = "updated_user_id", fill = FieldFill.INSERT_UPDATE)
+    private Integer updatedUserId;
+
+    @ApiModelProperty(value = "删除标识(0:未删除,1:已删除)")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+}
+

+ 66 - 0
alien-entity/src/main/java/shop/alien/entity/store/ProtocolManagement.java

@@ -0,0 +1,66 @@
+package shop.alien.entity.store;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+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 lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 协议管理表
+ *
+ * @author alien
+ * @since 2025-12-09
+ */
+@Data
+@JsonInclude
+@EqualsAndHashCode(callSuper = false)
+@TableName("protocol_management")
+@ApiModel(value = "ProtocolManagement对象", description = "协议管理表")
+public class ProtocolManagement extends Model<ProtocolManagement> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "协议名称")
+    @TableField("protocol_file_name")
+    private String protocolFileName;
+
+    @ApiModelProperty(value = "展示位置")
+    @TableField("display_position")
+    private String displayPosition;
+
+    @ApiModelProperty(value = "协议文件存储路径")
+    @TableField("protocol_file_path")
+    private String protocolFilePath;
+
+    @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.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改人")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+
+    @ApiModelProperty(value = "删除标识, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+}
+

+ 15 - 3
alien-entity/src/main/java/shop/alien/entity/store/SportsEquipmentFacility.java

@@ -11,7 +11,7 @@ import java.io.Serializable;
 import java.util.Date;
 
 /**
- * 运动器材设施表
+ * 店铺运动器材设施表
  *
  * @author system
  * @since 2025-01-XX
@@ -19,7 +19,7 @@ import java.util.Date;
 @Data
 @JsonInclude
 @TableName("sports_equipment_facility")
-@ApiModel(value = "SportsEquipmentFacility对象", description = "运动器材设施表")
+@ApiModel(value = "SportsEquipmentFacility对象", description = "店铺运动器材设施表")
 public class SportsEquipmentFacility implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -32,10 +32,14 @@ public class SportsEquipmentFacility implements Serializable {
     @TableField("store_id")
     private Integer storeId;
 
-    @ApiModelProperty(value = "设施分类(1:有氧区, 2:力量区, 3:单功能机械区)")
+    @ApiModelProperty(value = "设施分类(1:有氧区, 2:力量区, 3:单功能机械区) - 已废弃,请使用facilityCategoryName")
     @TableField("facility_category")
     private Integer facilityCategory;
 
+    @ApiModelProperty(value = "设施分类名称(商户自定义)")
+    @TableField("facility_category_name")
+    private String facilityCategoryName;
+
     @ApiModelProperty(value = "设施名称")
     @TableField("facility_name")
     private String facilityName;
@@ -78,5 +82,13 @@ public class SportsEquipmentFacility implements Serializable {
     @ApiModelProperty(value = "修改人ID")
     @TableField(value = "updated_user_id", fill = FieldFill.INSERT_UPDATE)
     private Integer updatedUserId;
+
+    @ApiModelProperty(value = "设备列表(fitness_equipment_info表的id,用逗号分隔)")
+    @TableField("fitness_equipment_ids")
+    private String fitnessEquipmentIds;
+
+    @ApiModelProperty(value = "区域ID(关联sports_facility_area.id)")
+    @TableField("area_id")
+    private Integer areaId;
 }
 

+ 67 - 0
alien-entity/src/main/java/shop/alien/entity/store/SportsFacilityArea.java

@@ -0,0 +1,67 @@
+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.util.Date;
+
+/**
+ * 运动设施区域表实体类
+ * 对应表: sports_facility_area
+ *
+ * @author assistant
+ * @since 2025-12-19
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@TableName("sports_facility_area")
+@ApiModel(value = "SportsFacilityArea对象", description = "运动设施区域表")
+public class SportsFacilityArea implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "门店ID", required = true)
+    @TableField("store_id")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "区域名称(必填,限10字)", required = true)
+    @TableField("area_name")
+    private String areaName;
+
+    @ApiModelProperty(value = "排序号(数字越小越靠前)")
+    @TableField("sort_order")
+    private Integer sortOrder;
+
+    @ApiModelProperty(value = "删除标记(0-未删除,1-已删除)")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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 = "创建人ID")
+    @TableField(value = "created_user_id", fill = FieldFill.INSERT)
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField(value = "updated_user_id", fill = FieldFill.INSERT_UPDATE)
+    private Integer updatedUserId;
+}
+

+ 8 - 7
alien-entity/src/main/java/shop/alien/entity/store/StoreClockIn.java

@@ -1,19 +1,16 @@
 package shop.alien.entity.store;
 
-import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
  * 店铺打卡
@@ -95,6 +92,10 @@ public class StoreClockIn extends Model<StoreClockIn> {
     @TableField("reason")
     private String reason;
 
+    @ApiModelProperty(value = "ai帮写内容(也可自己手写)")
+    @TableField("maybe_ai_content")
+    private String maybeAiContent;
+
 
     @Override
     protected Serializable pkVal() {

+ 8 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreImg.java

@@ -46,6 +46,14 @@ public class StoreImg extends Model<StoreImg> {
     @TableField("img_url")
     private String imgUrl;
 
+    @ApiModelProperty(value = "是否提取图片颜色:0-未提取,1-已提取")
+    @TableField("is_extract")
+    private Integer isExtract;
+
+    @ApiModelProperty(value = "图片颜色码")
+    @TableField("color_code")
+    private String colorCode;
+
     @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
     @TableField("delete_flag")
     @TableLogic

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

@@ -311,4 +311,22 @@ public class StoreInfo {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @TableField("review_date")
     private Date reviewDate;
+
+    @ApiModelProperty(value = "人工复核状态(1:通过,2:拒绝)")
+    @TableField("manual_review_status")
+    private Integer manualReviewStatus;
+
+    @ApiModelProperty(value = "人工复核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField("manual_review_time")
+    private Date manualReviewTime;
+
+    @ApiModelProperty(value = "人工复核原因")
+    @TableField("manual_review_reason")
+    private String manualReviewReason;
+
+    @ApiModelProperty(value = "头图审核状态(1-审核通过, 2-审核不通过)")
+    @TableField("head_img_status")
+    private Integer headImgStatus;
+
 }

+ 79 - 0
alien-entity/src/main/java/shop/alien/entity/store/StorePlatformBenefits.java

@@ -0,0 +1,79 @@
+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.util.Date;
+
+/**
+ * 福利表
+ *
+ * @author ssk
+ * @since 2025-12-18
+ */
+@Data
+@JsonInclude
+@TableName("store_platform_benefits")
+@ApiModel(value = "StorePlatformBenefits对象", description = "福利表")
+public class StorePlatformBenefits {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "类型:1=优惠券,2=U币")
+    @TableField("type")
+    private Integer type;
+
+    @ApiModelProperty(value = "优惠券类型(如\"全场通用优惠券\")")
+    @TableField("business_id")
+    private String businessId;
+
+    @ApiModelProperty(value = "优惠券使用条件(如\"满100可用\")")
+    @TableField("usage_conditions")
+    private String usageConditions;
+
+    @ApiModelProperty(value = "状态:0待审核/1审核拒绝/2审核通过")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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 = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+
+    @ApiModelProperty(value = "优惠券/U币名称")
+    @TableField(exist = false)
+    private String name;
+
+    @ApiModelProperty(value = "U币Id")
+    @TableField(exist = false)
+    private Integer virtualCurrencyId;
+
+    @ApiModelProperty(value = "UB数量")
+    @TableField(exist = false)
+    private Integer virtualCurrencyAmount;
+}
+

+ 102 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreProductBar.java

@@ -0,0 +1,102 @@
+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_bar")
+@ApiModel(value = "StoreProductBar对象", description = "酒吧商品表")
+public class StoreProductBar implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "商品表主键")
+    @TableField("ext_id")
+    private Integer extId;
+
+    @ApiModelProperty(value = "区分套餐下的酒水1,餐食2")
+    @TableField("sub_type")
+    private int sub_type;
+
+    @ApiModelProperty(value = "名称(酒水,餐食)")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "价格(¥)")
+    @TableField("price")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "成本价(¥)")
+    @TableField("cost_price")
+    private BigDecimal costPrice;
+
+    @ApiModelProperty(value = "单位,如份/瓶/杯")
+    @TableField("unit")
+    private String unit;
+
+    @ApiModelProperty(value = "数量")
+    @TableField("quantity")
+    private Integer quantity;
+
+    @ApiModelProperty(value = "品类")
+    @TableField("category")
+    private String category;
+
+    @ApiModelProperty(value = "酒精度(%vol)")
+    @TableField("alcohol_vol")
+    private BigDecimal alcoholVol;
+
+    @ApiModelProperty(value = "酒水体积(ml)")
+    @TableField("volume_ml")
+    private Integer volumeMl;
+
+    @ApiModelProperty(value = "风味")
+    @TableField("flavor")
+    private String flavor;
+
+    @ApiModelProperty(value = "状态:0禁用,1启用")
+    @TableField("status")
+    private Integer status;
+
+    @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;
+}

+ 91 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreProductDelicacies.java

@@ -0,0 +1,91 @@
+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_delicacies")
+@ApiModel(value = "StoreProductDelicacies对象", description = "美食商品表")
+public class StoreProductDelicacies implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "商品表主键")
+    @TableField("ext_id")
+    private Integer extId;
+
+    @ApiModelProperty(value = "名称")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "价格(¥)")
+    @TableField("price")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "成本价(¥)")
+    @TableField("cost_price")
+    private BigDecimal costPrice;
+
+    @ApiModelProperty(value = "单位,如份/瓶/杯")
+    @TableField("unit")
+    private String unit;
+
+    @ApiModelProperty(value = "数量")
+    @TableField("quantity")
+    private Integer quantity;
+
+    @ApiModelProperty(value = "类别")
+    @TableField("category")
+    private String category;
+
+    @ApiModelProperty(value = "菜品分组")
+    @TableField("ext_group")
+    private String extGroup;
+
+    @ApiModelProperty(value = "状态:0禁用,1启用")
+    @TableField("status")
+    private Integer status;
+
+    @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;
+}
+

+ 106 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreProductGym.java

@@ -0,0 +1,106 @@
+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_gym")
+@ApiModel(value = "StoreProductGym对象", description = "运动健身商品表")
+public class StoreProductGym implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "商品表主键")
+    @TableField("ext_id")
+    private Integer extId;
+
+    @ApiModelProperty(value = "名称")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "可用/剩余次数")
+    @TableField("usage_count")
+    private Integer usageCount;
+
+    @ApiModelProperty(value = "上课形式,如一对一/小班课")
+    @TableField("class_mode")
+    private String classMode;
+
+    @ApiModelProperty(value = "可用周期(天)")
+    @TableField("available_days")
+    private Integer availableDays;
+
+    @ApiModelProperty(value = "总课时数(节)")
+    @TableField("total_sessions")
+    private Integer totalSessions;
+
+    @ApiModelProperty(value = "价格(¥)")
+    @TableField("price")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "课程功效")
+    @TableField("course_effect")
+    private String courseEffect;
+
+    @ApiModelProperty(value = "适用人群")
+    @TableField("suitable_people")
+    private String suitablePeople;
+
+    @ApiModelProperty(value = "适用会员")
+    @TableField("suitable_membership")
+    private String suitableMembership;
+
+    @ApiModelProperty(value = "淋浴设施")
+    @TableField("shower_facility")
+    private String showerFacility;
+
+    @ApiModelProperty(value = "额外须知")
+    @TableField("extra_notice")
+    private String extraNotice;
+
+    @ApiModelProperty(value = "状态:0禁用,1启用")
+    @TableField("status")
+    private Integer status;
+
+    @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;
+}

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

@@ -0,0 +1,111 @@
+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;
+}
+

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

@@ -8,8 +8,10 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import shop.alien.entity.store.dto.StoreStaffFitnessCourseGroup;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @Author: fcw
@@ -33,15 +35,23 @@ public class StoreStaffConfig extends Model<StoreStaffConfig> {
     @TableField("staff_position")
     private String staffPosition;
 
-    @ApiModelProperty(value = "员工名称/昵称")
+    @ApiModelProperty(value = "姓名/昵称")
     @TableField("name")
     private String name;
 
+    @ApiModelProperty(value = "背景图片/视频(存储URL逗号分隔)")
+    @TableField("background_url")
+    private String backgroundUrl;
+
     @ApiModelProperty(value = "头像")
     @TableField("staff_image")
     private String staffImage;
 
-    @ApiModelProperty(value = "擅长项目")
+    @ApiModelProperty(value = "擅长标签id(字典表proficient_tag的dict_id逗号分隔)")
+    @TableField("proficient_id")
+    private String proficientId;
+
+    @ApiModelProperty(value = "擅长标签名称(逗号分隔)")
     @TableField("proficient_projects")
     private String proficientProjects;
 
@@ -53,6 +63,10 @@ public class StoreStaffConfig extends Model<StoreStaffConfig> {
     @TableField("personal_introduction")
     private String personalIntroduction;
 
+    @ApiModelProperty(value = "电话")
+    @TableField("phone")
+    private String phone;
+
     @ApiModelProperty(value = "人员状态0-待审核 1-审核通过 2-审核拒绝")
     @TableField("status")
     private String status;
@@ -100,4 +114,42 @@ public class StoreStaffConfig extends Model<StoreStaffConfig> {
     @TableField("top_time")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date topTime;
+
+    @ApiModelProperty(value = "上线状态(0-上线 1-下线)")
+    @TableField("online_status")
+    private Integer onlineStatus;
+
+    @ApiModelProperty(value = "经营板块id(词典表 键为 business_section)")
+    @TableField("business_section")
+    private Integer businessSection;
+
+    // ===== 运动健身业务扩展信息(当 businessSection 对应“运动健身”时生效) =====
+
+    @ApiModelProperty(value = "运动健身-课程信息列表")
+    @TableField(exist = false)
+    private List<StoreStaffFitnessCourse> fitnessCourseList;
+
+    @ApiModelProperty(value = "运动健身-课程分组(前端推荐使用:课程类型下多项目)")
+    @TableField(exist = false)
+    private List<StoreStaffFitnessCourseGroup> fitnessCourseGroupList;
+
+    @ApiModelProperty(value = "运动健身-职业认证列表")
+    @TableField(exist = false)
+    private List<StoreStaffFitnessCertification> fitnessCertificationList;
+
+    @ApiModelProperty(value = "运动健身-荣誉奖项列表")
+    @TableField(exist = false)
+    private List<StoreStaffFitnessCertification> fitnessHonorList;
+
+    @ApiModelProperty(value = "运动健身-从业经历列表")
+    @TableField(exist = false)
+    private List<StoreStaffFitnessExperience> fitnessExperienceList;
+
+    @ApiModelProperty(value = "运动健身-基本信息")
+    @TableField(exist = false)
+    private StoreStaffFitnessBase fitnessBase;
+
+    @ApiModelProperty(value = "点赞数量")
+    @TableField("like_count")
+    private Integer likeCount;
 }

+ 82 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreStaffFitnessBase.java

@@ -0,0 +1,82 @@
+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.util.Date;
+
+/**
+ * 运动健身员工基本信息表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("store_staff_fitness_base")
+@ApiModel(value = "StoreStaffFitnessBase对象", description = "运动健身员工基本信息表")
+public class StoreStaffFitnessBase implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "员工id")
+    @TableField("staff_id")
+    private Integer staffId;
+
+    @ApiModelProperty(value = "民族")
+    @TableField("nation")
+    private String nation;
+
+    @ApiModelProperty(value = "星座")
+    @TableField("constellation")
+    private String constellation;
+
+    @ApiModelProperty(value = "身高(cm)")
+    @TableField("height")
+    private String height;
+
+    @ApiModelProperty(value = "体重(kg)")
+    @TableField("weight")
+    private String weight;
+
+    @ApiModelProperty(value = "毕业院校")
+    @TableField("Educational_background")
+    private String educationalBackground;
+
+    @ApiModelProperty(value = "学历")
+    @TableField("education")
+    private String education;
+
+    @ApiModelProperty(value = "删除状态")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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;
+
+    @ApiModelProperty(value = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+}
+

+ 69 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreStaffFitnessCertification.java

@@ -0,0 +1,69 @@
+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.util.Date;
+
+/**
+ * 运动健身员工认证/荣誉表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("store_staff_fitness_certification")
+@ApiModel(value = "StoreStaffFitnessCertification对象", description = "运动健身员工认证/荣誉表")
+public class StoreStaffFitnessCertification implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "员工id")
+    @TableField("staff_id")
+    private Integer staffId;
+
+    @ApiModelProperty(value = "类型(1-认证 2-荣誉)")
+    @TableField("type")
+    private Integer type;
+
+    @ApiModelProperty(value = "名称(认证名称/荣誉名称)")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "图片URL(最多9张,逗号隔开)")
+    @TableField("img_urls")
+    private String imgUrls;
+
+    @ApiModelProperty(value = "删除状态")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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;
+
+    @ApiModelProperty(value = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+}

+ 83 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreStaffFitnessCourse.java

@@ -0,0 +1,83 @@
+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_staff_fitness_course")
+@ApiModel(value = "StoreStaffFitnessCourse对象", description = "运动健身员工课程信息表")
+public class StoreStaffFitnessCourse implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "员工id")
+    @TableField("staff_id")
+    private Integer staffId;
+
+    @ApiModelProperty(value = "课程类型")
+    @TableField("course_type")
+    private String courseType;
+
+    @ApiModelProperty(value = "项目名称")
+    @TableField("course_name")
+    private String courseName;
+
+    @ApiModelProperty(value = "价格类型(0-固定价 1-价格区间)")
+    @TableField("course_price_type")
+    private Integer coursePriceType;
+
+    @ApiModelProperty(value = "课程价格")
+    @TableField("course_price")
+    private BigDecimal coursePrice;
+
+    @ApiModelProperty(value = "课程最低价格")
+    @TableField("course_min_price")
+    private BigDecimal courseMinPrice;
+
+    @ApiModelProperty(value = "课程最高价格")
+    @TableField("course_max_price")
+    private BigDecimal courseMaxPrice;
+
+    @ApiModelProperty(value = "删除状态")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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;
+
+    @ApiModelProperty(value = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+}
+

+ 76 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreStaffFitnessExperience.java

@@ -0,0 +1,76 @@
+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.util.Date;
+
+/**
+ * 运动健身员工从业经历表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("store_staff_fitness_experience")
+@ApiModel(value = "StoreStaffFitnessExperience对象", description = "运动健身员工从业经历表")
+public class StoreStaffFitnessExperience implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "员工id")
+    @TableField("staff_id")
+    private Integer staffId;
+
+    @ApiModelProperty(value = "开始时间")
+    @TableField("start_time")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @TableField("end_time")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endTime;
+
+    @ApiModelProperty(value = "工作单位")
+    @TableField("work_unit")
+    private String workUnit;
+
+    @ApiModelProperty(value = "职位")
+    @TableField("work_position")
+    private String workPosition;
+
+    @ApiModelProperty(value = "删除状态")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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;
+
+    @ApiModelProperty(value = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+}
+

+ 63 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreVirtualCurrency.java

@@ -0,0 +1,63 @@
+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.util.Date;
+
+/**
+ * U币表
+ *
+ * @author ssk
+ * @since 2025-12-18
+ */
+@Data
+@JsonInclude
+@TableName("store_virtual_currency")
+@ApiModel(value = "StoreVirtualCurrency对象", description = "U币表")
+public class StoreVirtualCurrency {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "U币名称")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "状态:0待审核/1审核拒绝/2审核通过")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @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 = "创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "U币数量")
+    @TableField("quantity")
+    private Integer quantity;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(value = "updated_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+}
+

+ 33 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/BarPerformanceOnlineStatusDto.java

@@ -0,0 +1,33 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 酒吧演出上线状态设置DTO
+ * 用于接收设置演出上线状态的请求参数
+ *
+ * @author assistant
+ * @since 2025-12-19
+ */
+@Data
+@ApiModel(value = "BarPerformanceOnlineStatusDto对象", description = "酒吧演出上线状态设置DTO")
+public class BarPerformanceOnlineStatusDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 演出ID
+     */
+    @ApiModelProperty(value = "演出ID", required = true)
+    private Integer id;
+
+    /**
+     * 上线状态(0-下线,1-上线)
+     */
+    @ApiModelProperty(value = "上线状态(0-下线,1-上线)", required = true)
+    private Integer onlineStatus;
+}
+

+ 2 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LifeFeedbackQueryDto.java

@@ -28,8 +28,10 @@ public class LifeFeedbackQueryDto implements Serializable {
 
     @ApiModelProperty(value = "页码", required = true)
     private Integer pageNum = 1;
+    private Integer page = 1;
 
     @ApiModelProperty(value = "每页数量", required = true)
     private Integer pageSize = 10;
+    private Integer size = 10;
 }
 

+ 45 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LifeSysDeptAddDto.java

@@ -0,0 +1,45 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 部门新增DTO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "LifeSysDeptAddDto对象", description = "部门新增信息")
+public class LifeSysDeptAddDto {
+
+    @ApiModelProperty(value = "父部门ID(0表示根部门)")
+    private Long parentId;
+
+    @ApiModelProperty(value = "部门名称", required = true)
+    private String deptName;
+
+    @ApiModelProperty(value = "显示顺序")
+    private Integer deptSort;
+
+    @ApiModelProperty(value = "部门负责人")
+    private Integer leader;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "邮箱")
+    private String email;
+
+    @ApiModelProperty(value = "部门状态(0正常 1停用),默认为0")
+    private String status = "0";
+
+    @ApiModelProperty(value = "部门描述")
+    private String description;
+}
+

+ 27 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LifeSysDeptSortDto.java

@@ -0,0 +1,27 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 一级部门排序DTO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "LifeSysDeptSortDto对象", description = "一级部门排序信息")
+public class LifeSysDeptSortDto {
+
+    @ApiModelProperty(value = "部门ID", required = true)
+    private Long deptId;
+
+    @ApiModelProperty(value = "目标排序位置(新排序值)", required = true)
+    private Integer newSort;
+}
+

+ 33 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LifeSysDeptUpdateDto.java

@@ -0,0 +1,33 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 部门编辑DTO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "LifeSysDeptUpdateDto对象", description = "部门编辑信息")
+public class LifeSysDeptUpdateDto {
+
+    @ApiModelProperty(value = "部门ID", required = true)
+    private Long deptId;
+
+    @ApiModelProperty(value = "部门名称", required = true)
+    private String deptName;
+
+    @ApiModelProperty(value = "部门描述")
+    private String description;
+
+    @ApiModelProperty(value = "部门负责人")
+    private Integer leader;
+}
+

+ 10 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LifeUserViolationDto.java

@@ -105,6 +105,16 @@ public class LifeUserViolationDto {
     @ApiModelProperty(value = "举报内容")
     private String LifeNotice;
 
+    //  举报类型状态名称
+    @ApiModelProperty(value = "举报类型状态名称")
+    private String violationTypeName;
 
+    // 举报类型名称
+    @ApiModelProperty(value = "举报类型名称")
+    private String reportContextName;
+
+    // 处理状态名称
+    @ApiModelProperty(value = "处理状态名称")
+    private String processingName;
 
 }

+ 19 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/StoreInfoDto.java

@@ -213,6 +213,25 @@ public class StoreInfoDto {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date entertainmentLicenceExpirationTime;
 
+    @ApiModelProperty(value = "人工复核状态(1:通过,2:拒绝)")
+    private Integer manualReviewStatus;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "人工复核时间")
+    private Date manualReviewTime;
+
+    @ApiModelProperty(value = "人工复核原因")
+    private String manualReviewReason;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "审核时间")
+    private Date reviewDate;
+
+//    @ApiModelProperty(value = "分类id(词典表 键为 business_classify)(多个ID用逗号拼接)")
+//    @JsonDeserialize(using = StringToListDeserializer.class)
+//    private List<String> businessClassify;
     @ApiModelProperty(value = "营业执照图片URL")
     private String businessLicenseUrl;
 

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

@@ -0,0 +1,64 @@
+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;
+
+}

+ 38 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/StoreStaffConfigListQueryDto.java

@@ -0,0 +1,38 @@
+package shop.alien.entity.store.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 商家端-员工列表查询 DTO(QueryString 绑定)
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "StoreStaffConfigListQueryDto对象", description = "商家端-员工列表查询DTO")
+public class StoreStaffConfigListQueryDto {
+
+    @ApiModelProperty(value = "店铺ID")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "分页页数", example = "1")
+    private Integer page;
+
+    @ApiModelProperty(value = "分页条数", example = "10")
+    private Integer size;
+
+    @ApiModelProperty(value = "员工状态(0-待审核 1-审核通过 2-审核拒绝)", example = "1")
+    private String status;
+
+    @ApiModelProperty(value = "经营板块id(词典表 键为 business_section)")
+    private Integer businessSection;
+
+    @ApiModelProperty(value = "上线状态(0-上线 1-下线)")
+    private Integer onlineStatus;
+
+    @ApiModelProperty(value = "职位")
+    private String staffPosition;
+}
+
+

+ 36 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/StoreStaffFitnessCourseGroup.java

@@ -0,0 +1,36 @@
+package shop.alien.entity.store.dto;
+
+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.util.List;
+
+/**
+ * 运动健身-课程类型分组(用于前端“课程类型下多项目”的绑定;不直接映射数据库表)
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "StoreStaffFitnessCourseGroup对象", description = "运动健身-课程类型分组(分组结构用)")
+public class StoreStaffFitnessCourseGroup implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 课程类型编码:
+     * - 推荐传字典 dictId(更稳定)
+     * - 兼容传字典 dictDetail(名称)
+     */
+    @ApiModelProperty(value = "课程类型(推荐 dictId;兼容 dictDetail)")
+    private String courseType;
+
+    @ApiModelProperty(value = "课程类型名称(可选,便于回填展示)")
+    private String courseTypeName;
+
+    @ApiModelProperty(value = "项目列表")
+    private List<StoreStaffFitnessCourseItem> items;
+}
+
+

+ 37 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/StoreStaffFitnessCourseItem.java

@@ -0,0 +1,37 @@
+package shop.alien.entity.store.dto;
+
+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;
+
+/**
+ * 运动健身-课程项目(用于前端分组绑定;不直接映射数据库表)
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "StoreStaffFitnessCourseItem对象", description = "运动健身-课程项目(分组结构用)")
+public class StoreStaffFitnessCourseItem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "项目名称")
+    private String courseName;
+
+    @ApiModelProperty(value = "价格类型(0-固定价 1-价格区间)")
+    private Integer coursePriceType;
+
+    @ApiModelProperty(value = "固定价(coursePriceType=0)")
+    private BigDecimal coursePrice;
+
+    @ApiModelProperty(value = "最低价(coursePriceType=1)")
+    private BigDecimal courseMinPrice;
+
+    @ApiModelProperty(value = "最高价(coursePriceType=1)")
+    private BigDecimal courseMaxPrice;
+}
+
+

+ 48 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/SystemUserAddDto.java

@@ -0,0 +1,48 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 系统用户新增DTO
+ *
+ * @author system
+ * @since 2025-12-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "SystemUserAddDto对象", description = "系统用户新增信息")
+public class SystemUserAddDto {
+
+    @ApiModelProperty(value = "用户名", required = true)
+    private String userName;
+
+    @ApiModelProperty(value = "真实姓名", required = true)
+    private String realName;
+
+    @ApiModelProperty(value = "联系电话", required = true)
+    private String phone;
+
+    @ApiModelProperty(value = "邮箱", required = true)
+    private String email;
+
+    @ApiModelProperty(value = "密码(初始密码)", required = true)
+    private String password;
+
+    @ApiModelProperty(value = "角色ID列表(支持多角色选择)", required = true)
+    private String roleIds;
+
+    @ApiModelProperty(value = "所属部门ID", required = true)
+    private String departmentId;
+
+    @ApiModelProperty(value = "备注说明")
+    private String remark;
+
+    @ApiModelProperty(value = "启用状态 1:启用 0:禁用,默认为1")
+    private Integer status = 1;
+}
+

+ 39 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/SystemUserQueryDto.java

@@ -0,0 +1,39 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 系统用户查询DTO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "SystemUserQueryDto对象", description = "系统用户查询信息")
+public class SystemUserQueryDto {
+
+    @ApiModelProperty(value = "用户名(支持模糊查询)")
+    private String userName;
+
+    @ApiModelProperty(value = "真实姓名(支持模糊查询)")
+    private String realName;
+
+    @ApiModelProperty(value = "联系电话(支持模糊查询)")
+    private String phone;
+
+    @ApiModelProperty(value = "角色ID(精确查询)")
+    private Long roleId;
+
+    @ApiModelProperty(value = "部门ID(精确查询)")
+    private String departmentId;
+
+    @ApiModelProperty(value = "启用状态 1:启用 0:禁用")
+    private Integer status;
+}
+

+ 30 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/SystemUserStatusDto.java

@@ -0,0 +1,30 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 系统用户状态修改DTO
+ *
+ * @author system
+ * @since 2025-12-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "SystemUserStatusDto对象", description = "系统用户状态修改信息")
+public class SystemUserStatusDto {
+
+    @ApiModelProperty(value = "用户ID", required = true)
+    private Integer userId;
+
+    @ApiModelProperty(value = "状态 1:启用 0:禁用", required = true)
+    private Integer status;
+
+    @ApiModelProperty(value = "操作原因/备注")
+    private String remark;
+}
+

+ 51 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/SystemUserUpdateDto.java

@@ -0,0 +1,51 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 系统用户修改DTO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "SystemUserUpdateDto对象", description = "系统用户修改信息")
+public class SystemUserUpdateDto {
+
+    @ApiModelProperty(value = "用户ID", required = true)
+    private Integer userId;
+
+    @ApiModelProperty(value = "用户名")
+    private String userName;
+
+    @ApiModelProperty(value = "真实姓名")
+    private String realName;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "邮箱")
+    private String email;
+
+    @ApiModelProperty(value = "密码(如果提供则更新密码)")
+    private String password;
+
+    @ApiModelProperty(value = "角色ID列表(支持多角色选择,如果提供则更新角色关系)")
+    private String roleIds;
+
+    @ApiModelProperty(value = "所属部门ID")
+    private String departmentId;
+
+    @ApiModelProperty(value = "备注说明")
+    private String remark;
+
+    @ApiModelProperty(value = "启用状态 1:启用 0:禁用")
+    private Integer status;
+}
+

+ 43 - 0
alien-entity/src/main/java/shop/alien/entity/store/excelVo/DictionaryLibraryExcelVo.java

@@ -0,0 +1,43 @@
+package shop.alien.entity.store.excelVo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.excelVo.util.ExcelHeader;
+
+/**
+ * 经营版块Excel导入导出对象
+ *
+ * @author ssk
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "DictionaryLibraryExcelVo对象", description = "举报Excel导入导出对象")
+public class DictionaryLibraryExcelVo {
+
+    @ExcelHeader("序号")
+    @ApiModelProperty(value = "序号")
+    private String sort;
+
+    @ExcelHeader("一级分类名称")
+    @ApiModelProperty(value = "一级分类名称(必填,如果二级和三级为空,则创建一级分类)")
+    private String firstLevelName;
+
+    @ExcelHeader("二级分类名称")
+    @ApiModelProperty(value = "二级分类名称(可选,如果三级为空,则创建二级分类)")
+    private String secondLevelName;
+
+    @ExcelHeader("三级分类名称")
+    @ApiModelProperty(value = "三级分类名称(可选,如果填写则创建三级分类)")
+    private String thirdLevelName;
+
+    @ExcelHeader("四级分类名称")
+    @ApiModelProperty(value = "四级分类名称(可选,如果填写则创建四级分类)")
+    private String fourLevelName;
+
+    @ExcelHeader("状态")
+    @ApiModelProperty(value = "状态为显示隐藏,如不填默认显示")
+    private String hidden;
+}

+ 201 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/BarPerformanceDetailVo.java

@@ -0,0 +1,201 @@
+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 shop.alien.entity.store.BarPerformance;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 酒吧演出详情VO
+ * 包含演出基本信息和表演嘉宾列表
+ *
+ * @author assistant
+ * @since 2025-12-19
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "BarPerformanceDetailVo对象", description = "酒吧演出详情")
+public class BarPerformanceDetailVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 演出ID(主键)
+     */
+    @ApiModelProperty(value = "演出ID(主键)")
+    private Integer id;
+
+    /**
+     * 父演出ID(关联本表id,null为顶级演出)
+     */
+    @ApiModelProperty(value = "父演出ID(关联本表id,null为顶级演出)")
+    private Integer parentId;
+
+    /**
+     * 关联门店ID(关联store_info.id)
+     */
+    @ApiModelProperty(value = "关联门店ID(关联store_info.id)")
+    private Integer storeId;
+
+    /**
+     * 表演嘉宾ids,逗号分隔
+     */
+    @ApiModelProperty(value = "表演嘉宾ids,逗号分隔")
+    private String staffConfigIds;
+
+    /**
+     * 演出名称
+     */
+    @ApiModelProperty(value = "演出名称")
+    private String performanceName;
+
+    /**
+     * 演出海报路径
+     */
+    @ApiModelProperty(value = "演出海报路径")
+    private String performancePoster;
+
+    /**
+     * 演出风格(字典表proficient_tag逗号分隔)
+     */
+    @ApiModelProperty(value = "演出风格(字典表proficient_tag逗号分隔)")
+    private String performanceStyle;
+
+    /**
+     * 演出类型(单选:0-特邀演出,1-常规演出)
+     */
+    @ApiModelProperty(value = "演出类型(单选:0-特邀演出,1-常规演出)")
+    private Integer performanceType;
+
+    /**
+     * 演出频次:0-单次 1-每天定时 2-每周定时
+     */
+    @ApiModelProperty(value = "演出频次:0-单次 1-每天定时 2-每周定时")
+    private String performanceFrequency;
+
+    /**
+     * 演出日期(0-周一,1-周二,2-周三,3-周四,4-周五,5-周六,6-周日,复选逗号分隔)
+     */
+    @ApiModelProperty(value = "演出日期(0-周一,1-周二,2-周三,3-周四,4-周五,5-周六,6-周日,复选逗号分隔)")
+    private String performanceWeek;
+
+    /**
+     * 演出日期开始时间
+     */
+    @ApiModelProperty(value = "演出日期开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date singleStartDatetime;
+
+    /**
+     * 演出日期结束时间
+     */
+    @ApiModelProperty(value = "演出日期结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date singleEndDatetime;
+
+    /**
+     * 演出时间开始日期
+     */
+    @ApiModelProperty(value = "演出时间开始日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date dailyStartDate;
+
+    /**
+     * 演出时间结束日期
+     */
+    @ApiModelProperty(value = "演出时间结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date dailyEndDate;
+
+    /**
+     * 图片
+     */
+    @ApiModelProperty(value = "图片")
+    private String performanceDetail;
+
+    /**
+     * 演出完整详情
+     */
+    @ApiModelProperty(value = "演出完整详情")
+    private String performanceContent;
+
+    /**
+     * 演出须知(限300字)
+     */
+    @ApiModelProperty(value = "演出须知(限300字)")
+    private String performanceNotice;
+
+    /**
+     * 审核状态:0-待审核 1-审核通过 2-审核拒绝
+     */
+    @ApiModelProperty(value = "审核状态:0-待审核 1-审核通过 2-审核拒绝")
+    private Integer reviewStatus;
+
+    /**
+     * 审核拒绝原因
+     */
+    @ApiModelProperty(value = "审核拒绝原因")
+    private String rejectReason;
+
+    /**
+     * 删除标记:0-未删除,1-已删除
+     */
+    @ApiModelProperty(value = "删除标记:0-未删除,1-已删除")
+    private Integer deleteFlag;
+
+    /**
+     * 隐藏标记:0-不隐藏,1-隐藏
+     */
+    @ApiModelProperty(value = "隐藏标记:0-不隐藏,1-隐藏")
+    private Integer hidden;
+
+    /**
+     * 上线状态:0-下线,1-上线
+     */
+    @ApiModelProperty(value = "上线状态:0-下线,1-上线")
+    private Integer onlineStatus;
+
+    /**
+     * 状态:0禁用,1启用
+     */
+    @ApiModelProperty(value = "状态:0禁用,1启用")
+    private Integer status;
+
+    /**
+     * 创建人
+     */
+    @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<PerformerVo> performers;
+}
+

+ 29 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/CreateAreaRequestVo.java

@@ -0,0 +1,29 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 新建区域请求VO
+ *
+ * @author assistant
+ * @since 2025-12-19
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "CreateAreaRequestVo对象", description = "新建区域请求视图对象")
+public class CreateAreaRequestVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "门店ID", required = true, example = "1")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "区域名称(必填,限10字)", required = true, example = "有氧区")
+    private String facilityCategoryName;
+}
+

+ 26 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/DeleteAreaRequestVo.java

@@ -0,0 +1,26 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 删除区域请求VO
+ *
+ * @author assistant
+ * @since 2025-12-19
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "DeleteAreaRequestVo对象", description = "删除区域请求视图对象")
+public class DeleteAreaRequestVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "区域ID", required = true, example = "1")
+    private Integer areaId;
+}
+

+ 46 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/FitnessEquipmentCategoryDetailVo.java

@@ -0,0 +1,46 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.FitnessEquipmentInfo;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 健身设备分类详情视图对象(用于用户端查询)
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "FitnessEquipmentCategoryDetailVo对象", description = "健身设备分类详情视图对象(用于用户端查询)")
+public class FitnessEquipmentCategoryDetailVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "门店ID")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "设施分类(1:有氧区, 2:力量区, 3:单功能机械区)")
+    private Integer facilityCategory;
+
+    @ApiModelProperty(value = "设施分类名称")
+    private String facilityCategoryName;
+
+    @ApiModelProperty(value = "该分类下的设备数量")
+    private Integer facilityCount;
+
+    @ApiModelProperty(value = "该分类下的图片列表(轮播图)")
+    private List<String> imageList;
+
+    @ApiModelProperty(value = "设备类型汇总列表(包含各子分类的设备数量和设备列表)")
+    private List<FitnessEquipmentTypeSummaryVo> equipmentTypeList;
+
+    @ApiModelProperty(value = "设备列表(已废弃,设备列表已放入equipmentTypeList中)")
+    private List<FitnessEquipmentInfo> equipmentList;
+}
+

+ 37 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/FitnessEquipmentTypeSummaryVo.java

@@ -0,0 +1,37 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.FitnessEquipmentInfo;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 健身设备类型汇总视图对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "FitnessEquipmentTypeSummaryVo对象", description = "健身设备类型汇总视图对象")
+public class FitnessEquipmentTypeSummaryVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "设备类型(1:心肺训练, 2:核心训练, 3:臀腿训练, 4:上肢训练, 5:全身训练, 6:其他)")
+    private Integer equipmentType;
+
+    @ApiModelProperty(value = "设备类型名称")
+    private String equipmentTypeName;
+
+    @ApiModelProperty(value = "该类型下的设备数量")
+    private Integer equipmentCount;
+
+    @ApiModelProperty(value = "该类型下的设备列表")
+    private List<FitnessEquipmentInfo> equipmentList;
+}
+

+ 3 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerConsultationOrderVO.java

@@ -252,6 +252,9 @@ public class LawyerConsultationOrderVO implements Serializable {
     @ApiModelProperty(value = "评价状态 1:  没有评价,去评价 2:  有评价了,没有被举报或者举报驳回了,就是查看评价 3:  有评价了,被举报成功了,什么都不显示")
     private String commonStatus;
 
+    @ApiModelProperty(value = "再次举报状态,0-不可以再次举报,1-可以再次举报")
+    private  String repeatViolationStatus;
+
     /**
      * 获取执业年限(根据执业开始日期自动计算)
      * 返回当前时间减去执业开始时间的年数

+ 3 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeFansVo.java

@@ -56,4 +56,7 @@ public class LifeFansVo {
 
     @ApiModelProperty(value = "用户简介")
     public String accountBlurb;
+
+    @ApiModelProperty(value = "是否是已入驻成功的商户 0-不是 1-是(只有 store_application_status = 1 时才是商户)")
+    public String isMerchant;
 }

+ 72 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeSysDeptVo.java

@@ -0,0 +1,72 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import shop.alien.entity.store.LifeSysDept;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 部门树形结构VO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@JsonInclude
+@ApiModel(value = "LifeSysDeptVo对象", description = "部门树形结构")
+public class LifeSysDeptVo extends LifeSysDept {
+
+    @ApiModelProperty(value = "子部门列表")
+    private List<LifeSysDeptVo> children;
+
+    @ApiModelProperty(value = "部门人员数量(包含子部门)")
+    private Integer memberCount;
+
+    @ApiModelProperty(value = "当前部门人数")
+    private Integer currentMemberCount;
+
+    public LifeSysDeptVo() {
+        this.children = new ArrayList<>();
+        this.memberCount = 0;
+        this.currentMemberCount = 0;
+    }
+
+    /**
+     * 从LifeSysDept转换为LifeSysDeptVo
+     *
+     * @param dept 部门实体
+     * @return LifeSysDeptVo
+     */
+    public static LifeSysDeptVo fromEntity(LifeSysDept dept) {
+        if (dept == null) {
+            return null;
+        }
+        LifeSysDeptVo vo = new LifeSysDeptVo();
+        vo.setDeptId(dept.getDeptId());
+        vo.setParentId(dept.getParentId());
+        vo.setAncestors(dept.getAncestors());
+        vo.setDeptName(dept.getDeptName());
+        vo.setDeptSort(dept.getDeptSort());
+        vo.setLeader(dept.getLeader());
+        vo.setPhone(dept.getPhone());
+        vo.setEmail(dept.getEmail());
+        vo.setStatus(dept.getStatus());
+        vo.setDelFlag(dept.getDelFlag());
+        vo.setCreateBy(dept.getCreateBy());
+        vo.setCreatedTime(dept.getCreatedTime());
+        vo.setUpdateBy(dept.getUpdateBy());
+        vo.setUpdatedTime(dept.getUpdatedTime());
+        vo.setDescription(dept.getDescription());
+        vo.setChildren(new ArrayList<>());
+        vo.setMemberCount(0); // 初始化为0,后续会通过统计方法计算
+        vo.setCurrentMemberCount(0); // 初始化为0,后续会通过统计方法计算
+        return vo;
+    }
+}
+

+ 9 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeSysVo.java

@@ -0,0 +1,9 @@
+package shop.alien.entity.store.vo;
+
+import lombok.Data;
+import shop.alien.entity.store.LifeSys;
+
+@Data
+public class LifeSysVo extends LifeSys {
+    private String roleName;
+}

+ 19 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserLearningVideoVo.java

@@ -0,0 +1,19 @@
+package shop.alien.entity.store.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import shop.alien.entity.store.LifeUserLearningVideo;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="LifeUserLearningVideoVo对象")
+public class LifeUserLearningVideoVo extends LifeUserLearningVideo {
+
+    @ApiModelProperty(value = "是否看过  0-没看过 1-看过")
+    private String isWatch;
+
+}

+ 9 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserViolationVo.java

@@ -29,4 +29,13 @@ public class LifeUserViolationVo extends LifeUserViolation {
     private String nickName;
 
     private String image;
+
+    //  举报类型状态名称
+    private String violationTypeName;
+
+    // 举报类型名称
+    private String reportContextName;
+
+    // 处理状态名称
+    private String processingName;
 }

+ 2 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserVo.java

@@ -27,6 +27,8 @@ public class LifeUserVo extends LifeUser {
 
     private double consumePrice;
 
+    private Integer userPoints;
+
     @ApiModelProperty(value = "前端查询集合Label")
     private String Label;
 

+ 123 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/MenuWithRoleVo.java

@@ -0,0 +1,123 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import shop.alien.entity.store.LifeSysMenu;
+
+import java.util.List;
+
+/**
+ * 菜单权限VO(包含角色拥有状态)
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@JsonInclude
+@ApiModel(value = "MenuWithRoleVo对象", description = "菜单权限VO(包含角色拥有状态)")
+public class MenuWithRoleVo {
+
+    @ApiModelProperty(value = "菜单ID")
+    private Long menuId;
+
+    @ApiModelProperty(value = "菜单名称")
+    private String menuName;
+
+    @ApiModelProperty(value = "父菜单ID(0表示根菜单)")
+    private Long parentId;
+
+    @ApiModelProperty(value = "菜单类型(M目录 C菜单 F按钮)")
+    private String menuType;
+
+    @ApiModelProperty(value = "显示顺序")
+    private Integer menuSort;
+
+    @ApiModelProperty(value = "路由地址")
+    private String path;
+
+    @ApiModelProperty(value = "组件路径")
+    private String component;
+
+    @ApiModelProperty(value = "权限标识(如:sys:user:list)")
+    private String perms;
+
+    @ApiModelProperty(value = "菜单图标")
+    private String icon;
+
+    @ApiModelProperty(value = "菜单状态(0正常 1停用)")
+    private String status;
+
+    @ApiModelProperty(value = "是否显示(0显示 1隐藏)")
+    private String visible;
+
+    @ApiModelProperty(value = "是否为外链(0是 1否)")
+    private String isFrame;
+
+    @ApiModelProperty(value = "是否缓存(0缓存 1不缓存)")
+    private String isCache;
+
+    @ApiModelProperty(value = "删除标志(0存在 2删除)")
+    private String delFlag;
+
+    @ApiModelProperty(value = "创建者")
+    private String createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createdTime;
+
+    @ApiModelProperty(value = "更新者")
+    private String updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private java.util.Date updatedTime;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "是否拥有该权限(true:拥有 false:未拥有)")
+    private Boolean hasPermission;
+
+    @ApiModelProperty(value = "子菜单列表(用于树形结构)")
+    private List<MenuWithRoleVo> children;
+
+    /**
+     * 从LifeSysMenu转换为MenuWithRoleVo
+     *
+     * @param menu 菜单实体
+     * @param hasPermission 是否拥有权限
+     * @return MenuWithRoleVo
+     */
+    public static MenuWithRoleVo fromEntity(LifeSysMenu menu, Boolean hasPermission) {
+        if (menu == null) {
+            return null;
+        }
+        MenuWithRoleVo vo = new MenuWithRoleVo();
+        vo.setMenuId(menu.getMenuId());
+        vo.setMenuName(menu.getMenuName());
+        vo.setParentId(menu.getParentId());
+        vo.setMenuType(menu.getMenuType());
+        vo.setMenuSort(menu.getMenuSort());
+        vo.setPath(menu.getPath());
+        vo.setComponent(menu.getComponent());
+        vo.setPerms(menu.getPerms());
+        vo.setIcon(menu.getIcon());
+        vo.setStatus(menu.getStatus());
+        vo.setVisible(menu.getVisible());
+        vo.setIsFrame(menu.getIsFrame());
+        vo.setIsCache(menu.getIsCache());
+        vo.setDelFlag(menu.getDelFlag());
+        vo.setCreateBy(menu.getCreateBy());
+        vo.setCreatedTime(menu.getCreatedTime());
+        vo.setUpdateBy(menu.getUpdateBy());
+        vo.setUpdatedTime(menu.getUpdatedTime());
+        vo.setRemark(menu.getRemark());
+        vo.setHasPermission(hasPermission != null ? hasPermission : false);
+        vo.setChildren(null); // 子菜单会在构建树形结构时设置
+        return vo;
+    }
+}
+

+ 3 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/OrderReviewVo.java

@@ -94,5 +94,8 @@ public class OrderReviewVo {
 
     @ApiModelProperty(value = "申诉id (如果该评价被申诉 申诉id会有值)")
     private String appealId;
+
+    @ApiModelProperty(value = "用户手机号")
+    private String userPhone;
 }
 

+ 47 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/PerformerVo.java

@@ -0,0 +1,47 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 表演嘉宾VO
+ * 用于返回表演嘉宾的基本信息
+ *
+ * @author assistant
+ * @since 2025-12-19
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "PerformerVo对象", description = "表演嘉宾信息")
+public class PerformerVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 表演嘉宾ID
+     */
+    @ApiModelProperty(value = "表演嘉宾ID")
+    private Integer id;
+
+    /**
+     * 头像
+     */
+    @ApiModelProperty(value = "头像URL")
+    private String avatar;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "姓名/昵称")
+    private String name;
+
+    /**
+     * 职位
+     */
+    @ApiModelProperty(value = "职位")
+    private String style;
+}
+

+ 43 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/SportsEquipmentFacilityCategorySummaryVo.java

@@ -0,0 +1,43 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.FitnessEquipmentInfo;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 运动器材设施分类汇总视图对象(用于categorySummary接口)
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "SportsEquipmentFacilityCategorySummaryVo对象", description = "运动器材设施分类汇总视图对象(用于categorySummary接口)")
+public class SportsEquipmentFacilityCategorySummaryVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "门店ID")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "设施分类(1:有氧区, 2:力量区, 3:单功能机械区)")
+    private Integer facilityCategory;
+
+    @ApiModelProperty(value = "设施分类名称")
+    private String facilityCategoryName;
+
+    @ApiModelProperty(value = "该分类下的设备数量")
+    private Integer facilityCount;
+
+    @ApiModelProperty(value = "该分类下的图片列表")
+    private List<String> imageList;
+
+    @ApiModelProperty(value = "该分类下的设备列表(FitnessEquipmentInfo)")
+    private List<FitnessEquipmentInfo> facilityList;
+}
+

+ 11 - 12
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreClockInVo.java

@@ -62,17 +62,16 @@ public class StoreClockInVo extends StoreClockIn {
 
     @ApiModelProperty(value = "商家入口图")
     private String entranceImage;
-    //    @ApiModelProperty(value = "商家是否打卡")
-//    @ApiModelProperty(value = "该用户是否在该店铺打过卡")
-//    private String clockInStore;
-//
-//    @ApiModelProperty(value = "今天在该店铺是否打过卡")
-//    private String clockInStoreToday;
-//
-//    @ApiModelProperty(value = "在该店铺的打卡次数")
-//    private Long clockInStoreNum;
-//
-//    @ApiModelProperty(value = "该用户打卡的所有店铺次数")
-//    private int clockInNum;
 
+    @ApiModelProperty(value = "商家类型大类分")
+    private Integer storeTypeNew;
+
+    @ApiModelProperty(value = "门店地址")
+    private String storeAddress;
+
+    @ApiModelProperty(value = "分类名称")
+    private String businessClassifyName;
+
+    @ApiModelProperty(value = "经营板块名称")
+    private String businessSectionName;
 }

+ 43 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreImgSaveResultVo.java

@@ -0,0 +1,43 @@
+package shop.alien.entity.store.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 门店图片保存结果VO
+ * 用于返回保存操作的结果和头图审核状态
+ *
+ * @author system
+ * @since 2024-12-27
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "StoreImgSaveResultVo", description = "门店图片保存结果VO")
+public class StoreImgSaveResultVo {
+
+    /**
+     * 操作结果消息
+     */
+    @ApiModelProperty(value = "操作结果消息", example = "保存成功")
+    private String message;
+
+    /**
+     * 头图审核状态
+     * 1: 审核通过
+     * 2: 审核不通过
+     * null: 非头图操作,无需返回状态
+     */
+    @ApiModelProperty(value = "头图审核状态(1:审核通过, 2:审核不通过, null:非头图操作)", example = "1")
+    private Integer headImgStatus;
+
+    /**
+     * 是否为头图操作
+     */
+    @ApiModelProperty(value = "是否为头图操作", example = "true")
+    private Boolean isHeadImage;
+}
+

+ 22 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreInfoVo.java

@@ -1,6 +1,7 @@
 package shop.alien.entity.store.vo;
 
 import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import io.swagger.annotations.ApiModel;
@@ -247,4 +248,25 @@ public class StoreInfoVo extends StoreInfo {
     private JSONObject foodLicence;
     @ApiModelProperty(value = "娱乐经营许可证")
     private JSONObject entertainmentLicence;
+
+    @ApiModelProperty(value = "人工复核状态(1:通过,2:拒绝)")
+    private Integer manualReviewStatus;
+
+    @ApiModelProperty(value = "人工复核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date manualReviewTime;
+
+    @ApiModelProperty(value = "人工复核原因")
+    private String manualReviewReason;
+
+    @ApiModelProperty(value = "审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reviewDate;
+
+    @ApiModelProperty(value = "续签合同状态")
+    private Integer renewContractStatus;
+
+    @ApiModelProperty(value = "续签合同拒绝原因")
+    private String contractReason;
+
 }

+ 83 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreLicenseInfoVo.java

@@ -0,0 +1,83 @@
+package shop.alien.entity.store.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+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.util.Date;
+
+/**
+ * 门店证照查询结果 VO
+ *
+ * 对应证照类型(营业执照 / 娱乐经营许可证 / 食品经营许可证)
+ * 及其当前状态、提交时间、到期时间等信息。
+ */
+@Data
+@ApiModel(value = "StoreLicenseInfoVo对象", description = "门店证照信息")
+@JsonInclude(JsonInclude.Include.ALWAYS)
+public class StoreLicenseInfoVo {
+
+    @ApiModelProperty("证照类型描述:营业执照 / 娱乐经营许可证 / 食品经营许可证")
+    private String imgDescription;
+
+    @ApiModelProperty("证照图片类型(14:营业执照;24/25:食品经营许可证;31/32:娱乐经营许可证)")
+    private Integer imgType;
+
+    @ApiModelProperty("门店ID")
+    private Integer id;
+
+    @ApiModelProperty("门店名称")
+    private String storeName;
+
+    @ApiModelProperty("门店联系电话")
+    private String storeTel;
+
+    @ApiModelProperty("当前证照状态")
+    private String states;
+
+    @ApiModelProperty("当前证照状态名字")
+    private String statesName;
+
+    @ApiModelProperty("证照图片地址")
+    private String imgUrl;
+
+    @ApiModelProperty("证照最近一次提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDate;
+
+    @ApiModelProperty("证照到期时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date expirationTime;
+
+    @ApiModelProperty("用户")
+    private String name;
+
+    @ApiModelProperty("审核失败原因")
+    private String expirationReason;
+
+    @ApiModelProperty(value = "经营板块id(词典表 键为 business_section)")
+    private Integer businessSection;
+
+    @ApiModelProperty(value = "经营板块名称")
+    private String businessSectionName;
+
+    @ApiModelProperty(value = "经营种类ids")
+    private String businessTypes;
+
+    @ApiModelProperty(value = "经营种类名称s")
+    private String businessTypesName;
+
+    @ApiModelProperty(value = "分类ids")
+    private String businessClassify;
+
+    @ApiModelProperty(value = "分类名称s")
+    private String businessClassifyName;
+}
+
+
+
+
+

+ 6 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreMainInfoVo.java

@@ -83,6 +83,9 @@ public class StoreMainInfoVo extends StoreInfo {
     @ApiModelProperty(value = "经营许可证照片")
     private List<StoreImg> foodLicenceList;
 
+    @ApiModelProperty(value = "头图列表(包含is_extract字段)")
+    private List<StoreImg> headerImgList;
+
     @ApiModelProperty(value = "是否连锁转义")
     private String isChainStr;
 
@@ -105,4 +108,7 @@ public class StoreMainInfoVo extends StoreInfo {
 //    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date foodLicenceExpirationTime;
 
+    @ApiModelProperty(value = "头图审核状态(1—审核通过, 2—审核不通过)")
+    private Integer headImgStatus;
+
 }

+ 34 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StorePlatformBenefitsVo.java

@@ -0,0 +1,34 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import shop.alien.entity.store.StorePlatformBenefits;
+
+/**
+ * 福利表
+ *
+ * @author ssk
+ * @since 2025-12-18
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "StorePlatformBenefits对象", description = "福利表")
+public class StorePlatformBenefitsVo extends StorePlatformBenefits {
+
+    /**
+     * 是否领取
+     */
+    private Boolean claimed;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+    /**
+     * 优惠券名称
+     */
+     private String couponName;
+}
+

+ 73 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreProductDelicaciesVo.java

@@ -0,0 +1,73 @@
+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 = "StoreProductDelicaciesVo对象", description = "美食商品表VO")
+public class StoreProductDelicaciesVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "美食商品表主键")
+    private Integer id;
+
+    @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 status;
+
+    @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;
+}
+

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

@@ -0,0 +1,146 @@
+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;
+}
+

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

@@ -0,0 +1,150 @@
+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;
+}
+

+ 35 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreStaffDetailVo.java

@@ -0,0 +1,35 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.StoreStaffConfig;
+import shop.alien.entity.store.StoreStaffFitnessCourse;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 员工详情视图对象(包含员工信息和课程列表)
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "StoreStaffDetailVo对象", description = "员工详情视图对象(包含员工信息和课程列表)")
+public class StoreStaffDetailVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "员工基本信息")
+    private StoreStaffConfig staffInfo;
+
+    @ApiModelProperty(value = "运动健身员工课程信息列表")
+    private List<StoreStaffFitnessCourse> courseList;
+
+    @ApiModelProperty(value = "店铺名称")
+    private String storeName;
+}
+

+ 46 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreStaffFitnessDetailVo.java

@@ -0,0 +1,46 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.StoreStaffConfig;
+import shop.alien.entity.store.StoreStaffFitnessBase;
+import shop.alien.entity.store.StoreStaffFitnessCertification;
+import shop.alien.entity.store.StoreStaffFitnessExperience;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 健身教练详情视图对象(包含员工信息、基本信息、认证/荣誉列表和从业经历)
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "StoreStaffFitnessDetailVo对象", description = "健身教练详情视图对象(包含员工信息、基本信息、认证/荣誉列表和从业经历)")
+public class StoreStaffFitnessDetailVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "员工基本信息")
+    private StoreStaffConfig staffInfo;
+
+    @ApiModelProperty(value = "员工基本信息(运动健身)")
+    private StoreStaffFitnessBase baseInfo;
+
+    @ApiModelProperty(value = "认证列表(type=1)")
+    private List<StoreStaffFitnessCertification> certificationList;
+
+    @ApiModelProperty(value = "荣誉列表(type=2)")
+    private List<StoreStaffFitnessCertification> honorList;
+
+    @ApiModelProperty(value = "从业经历列表")
+    private List<StoreStaffFitnessExperience> experienceList;
+
+    @ApiModelProperty(value = "店铺名称")
+    private String storeName;
+}
+

+ 27 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreStaffPositionCountVo.java

@@ -0,0 +1,27 @@
+package shop.alien.entity.store.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 员工职位统计VO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "StoreStaffPositionCountVo对象", description = "员工职位统计")
+public class StoreStaffPositionCountVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "员工职位")
+    private String staffPosition;
+
+    @ApiModelProperty(value = "该职位对应的员工数量")
+    private Long count;
+}
+

+ 6 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/SystemLoginVo.java

@@ -5,6 +5,9 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import shop.alien.entity.store.LifeSysMenu;
+
+import java.util.List;
 
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -23,4 +26,7 @@ public class SystemLoginVo {
 
     @ApiModelProperty(value = "角色id")
     public String roleId;
+
+    @ApiModelProperty(value = "菜单列表")
+    public List<LifeSysMenu> menuList;
 }

+ 19 - 0
alien-entity/src/main/java/shop/alien/mapper/BarPerformanceMapper.java

@@ -0,0 +1,19 @@
+package shop.alien.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import shop.alien.entity.store.BarPerformance;
+
+/**
+ *
+ * BarPerformanceMapper接口
+ * 对应数据库表:bar_performance
+ * 用于操作演出信息表
+ *
+ * @author AI Assistant
+ * @since 2025-12-17
+ */
+@Mapper
+public interface BarPerformanceMapper extends BaseMapper<BarPerformance> {
+
+}

+ 16 - 0
alien-entity/src/main/java/shop/alien/mapper/FitnessEquipmentInfoMapper.java

@@ -0,0 +1,16 @@
+package shop.alien.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import shop.alien.entity.store.FitnessEquipmentInfo;
+
+/**
+ * 健身设备信息Mapper接口
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Mapper
+public interface FitnessEquipmentInfoMapper extends BaseMapper<FitnessEquipmentInfo> {
+}
+

+ 2 - 1
alien-entity/src/main/java/shop/alien/mapper/LawyerConsultationOrderMapper.java

@@ -407,6 +407,7 @@ public interface LawyerConsultationOrderMapper extends BaseMapper<LawyerConsulta
             "        lco.alipay_no,\n" +
             "        lco.order_str,\n" +
             "        lco.apply_refund_status,\n" +
+            "        lco.reject_refund_reason,\n" +
             "        lco.pay_type,\n" +
             "        CASE\n" +
             "        WHEN EXISTS (SELECT 1 FROM lawyer_order_review lor WHERE lor.order_id = lco.id) THEN '1'\n" +
@@ -524,7 +525,7 @@ public interface LawyerConsultationOrderMapper extends BaseMapper<LawyerConsulta
             "accept_orders_status "+
             "FROM " +
             "lawyer_consultation_order " +
-            "WHERE order_status in (1,2) " +
+            "WHERE order_status in (0,1,2) " +
             " and delete_flag = 0 " +
             "<if test='clientUserId != null'>" +
             "AND client_user_id = #{clientUserId} " +

+ 18 - 13
alien-entity/src/main/java/shop/alien/mapper/LifeFansMapper.java

@@ -15,7 +15,7 @@ import java.util.List;
 @Mapper
 public interface LifeFansMapper extends BaseMapper<LifeFans> {
 
-    @Select("select MAX(foll.id) id, MAX(foll.name) name, MAX(foll.image) image, foll.phoneId, MAX(foll.blurb) blurb, MAX(foll.blockedType) blockedType, MAX(foll.blockedId) blockedId, MAX(foll.username) username, MAX(foll.accountBlurb) accountBlurb, " +
+    @Select("select MAX(foll.id) id, MAX(foll.name) name, MAX(foll.image) image, foll.phoneId, MAX(foll.blurb) blurb, MAX(foll.blockedType) blockedType, MAX(foll.blockedId) blockedId, MAX(foll.username) username, MAX(foll.accountBlurb) accountBlurb, MAX(foll.isMerchant) isMerchant, " +
             "  MAX(lb.id) blackListid, MAX(if(isnull(fans.id), 0, 1)) isFollowMe, 1 as isFollowThis,  " +
             "  (select count(1) from life_fans where fans_id= foll.phoneId and delete_flag =0) followNum, " +
             "  (select count(1) from life_fans where followed_id= foll.phoneId and delete_flag =0) fansNum from ( " +
@@ -25,14 +25,14 @@ public interface LifeFansMapper extends BaseMapper<LifeFans> {
             "        where delete_flag = 0 and fans_id = #{fansId} " +
             "    )   " +
             "    select info.id, IF(info.store_application_status = 0, user.nick_name, info.store_name) AS NAME," +
-            "    user.head_img image, concat('store_', user.phone) phoneId, IF(info.store_application_status = 0, user.account_blurb, info.store_blurb) AS blurb, 1 blockedType,user.id blockedId ,IFNULL(user.nick_name, user.name) username, user.account_blurb accountBlurb " +
+            "    user.head_img image, concat('store_', user.phone) phoneId, IF(info.store_application_status = 0, user.account_blurb, info.store_blurb) AS blurb, 1 blockedType,user.id blockedId ,IFNULL(user.nick_name, user.name) username, user.account_blurb accountBlurb, IF(info.store_application_status = 1, '1', '0') AS isMerchant " +
             "    from follow foll " +
             "    join store_user user on foll.phone = user.phone " +
             "    join store_info info on info.id = user.store_id " +
             "    left join store_img img on img.store_id = user.store_id and img.img_type = '10' and img.delete_flag = 0 " +
             "    where foll.flag = 'store' and user.delete_flag = 0 and info.delete_flag = 0 " +
             "    union " +
-            "    select user.id, user.user_name name, user.user_image image, concat('user_', user.user_phone) phoneId, user.jianjie blurb, 2 blockedType,user.id blockedId,'' username, '' accountBlurb " +
+            "    select user.id, user.user_name name, user.user_image image, concat('user_', user.user_phone) phoneId, user.jianjie blurb, 2 blockedType,user.id blockedId,'' username, '' accountBlurb, '0' AS isMerchant " +
             "    from follow foll " +
             "    join life_user user on foll.phone = user.user_phone   " +
             "    where foll.flag = 'user' and user.delete_flag = 0   " +
@@ -64,7 +64,7 @@ public interface LifeFansMapper extends BaseMapper<LifeFans> {
             "left join life_fans fans on fans.fans_id = foll.phoneId and fans.followed_id = #{fansId} and fans.delete_flag = 0 ")
     List<LifeFansVo> getMyFollowedAll(@Param("fansId") String fansId);
 
-    @Select("select MAX(foll.id) id, MAX(foll.name) name, MAX(foll.image) image, foll.phoneId, MAX(foll.blurb) blurb, MAX(foll.blockedType) blockedType, MAX(foll.blockedId) blockedId, " +
+    @Select("select MAX(foll.id) id, MAX(foll.name) name, MAX(foll.image) image, foll.phoneId, MAX(foll.blurb) blurb, MAX(foll.blockedType) blockedType, MAX(foll.blockedId) blockedId, MAX(foll.isMerchant) isMerchant, " +
             "  MAX(lb.id) blackListid, MAX(if(isnull(fans.id), 0, 1)) isFollowThis, 1 as isFollowMe, " +
             "    (select count(1) from life_fans fans2 where fans2.followed_id = foll.phoneId and fans2.delete_flag = 0) fansNum, " +
             "    (select count(1) from life_fans fans3 where fans3.fans_id = foll.phoneId and fans3.delete_flag = 0) followNum " +
@@ -74,14 +74,14 @@ public interface LifeFansMapper extends BaseMapper<LifeFans> {
             "        from life_fans " +
             "        where delete_flag = 0 and followed_id = #{fansId} " +
             "    ) " +
-            "    select user.id, user.nick_name name, user.head_img image, concat('store_', user.phone) phoneId, user.account_blurb blurb, 1 blockedType,user.id blockedId" +
+            "    select user.id, IF(info.store_application_status = 0, user.nick_name, info.store_name) AS name, user.head_img image, concat('store_', user.phone) phoneId, IF(info.store_application_status = 0, user.account_blurb, info.store_blurb) AS blurb, 1 blockedType,user.id blockedId, IF(info.store_application_status = 1, '1', '0') AS isMerchant" +
             "    from follow foll " +
             "    join store_user user on foll.phone = user.phone " +
-//            "    join store_info info on info.id = user.store_id " +
-//            "    left join store_img img on img.store_id = user.store_id and img.img_type = '10' and img.delete_flag = 0 " +
-            "    where foll.flag = 'store' and user.delete_flag = 0" +
+            "    join store_info info on info.id = user.store_id " +
+            "    left join store_img img on img.store_id = user.store_id and img.img_type = '10' and img.delete_flag = 0 " +
+            "    where foll.flag = 'store' and user.delete_flag = 0 and info.delete_flag = 0" +
             "    union " +
-            "    select user.id, user.user_name name, user.user_image image, concat('user_', user.user_phone) phoneId, user.jianjie blurb, 2 blockedType,user.id blockedId" +
+            "    select user.id, user.user_name name, user.user_image image, concat('user_', user.user_phone) phoneId, user.jianjie blurb, 2 blockedType,user.id blockedId, '0' AS isMerchant" +
             "    from follow foll " +
             "    join life_user user on foll.phone = user.user_phone " +
             "    where foll.flag = 'user' and user.delete_flag = 0 " +
@@ -124,6 +124,7 @@ public interface LifeFansMapper extends BaseMapper<LifeFans> {
             "MAX(foll.blurb) blurb, " +
             "MAX(foll.image) image, " +
             "foll.phoneId, " +
+            "MAX(foll.isMerchant) isMerchant, " +
             "MAX(IF(isnull(fans.id), 0, 1)) isFollowThis, " +
             "1 AS isFollowMe, " +
             "count(fans2.id) fansNum, " +
@@ -151,7 +152,11 @@ public interface LifeFansMapper extends BaseMapper<LifeFans> {
             "ELSE info.store_blurb " +
             "END AS blurb, " +
             "user.head_img AS image, " +
-            "concat('store_', user.phone) AS phoneId " +
+            "concat('store_', user.phone) AS phoneId, " +
+            "CASE " +
+            "WHEN user.store_id IS NOT NULL AND info.store_application_status = 1 THEN '1' " +
+            "ELSE '0' " +
+            "END AS isMerchant " +
             "FROM " +
             "follow foll " +
             "JOIN store_user user ON foll.phone = user.phone " +
@@ -194,7 +199,7 @@ public interface LifeFansMapper extends BaseMapper<LifeFans> {
             "${ew.customSqlSegment} ")
     IPage<LifeFansVo> getMyUserFans(IPage<LifeFansVo> iPage, @Param("fansId") String fansId, @Param(Constants.WRAPPER) QueryWrapper<LifeFansVo> wrapper);
 
-    @Select("select MAX(foll.id) id, MAX(foll.name) name, MAX(foll.image) image, foll.phoneId, MAX(foll.blurb) blurb, MAX(foll.blockedType) blockedType, MAX(foll.blockedId) blockedId, MAX(foll.username) username, MAX(foll.accountBlurb) accountBlurb, " +
+    @Select("select MAX(foll.id) id, MAX(foll.name) name, MAX(foll.image) image, foll.phoneId, MAX(foll.blurb) blurb, MAX(foll.blockedType) blockedType, MAX(foll.blockedId) blockedId, MAX(foll.username) username, MAX(foll.accountBlurb) accountBlurb, MAX(foll.isMerchant) isMerchant, " +
             "  MAX(lb.id) blackListid, 1 as isFollowThis, 1 as isFollowMe, " +
             "       (select count(1) from life_fans fans2 where fans2.followed_id = foll.phoneId and fans2.delete_flag = 0) fansNum, " +
             "       (select count(1) from life_fans fans3 where fans3.fans_id = foll.phoneId and fans3.delete_flag = 0) followNum " +
@@ -205,14 +210,14 @@ public interface LifeFansMapper extends BaseMapper<LifeFans> {
             "        join life_fans fans2 on fans1.followed_id = fans2.fans_id and fans1.fans_id = fans2.followed_id " +
             "        where fans1.delete_flag = 0 and fans2.delete_flag = 0 and fans1.fans_id = #{fansId} " +
             "    ) " +
-            "    select info.id, info.store_name name, user.head_img image, concat('store_', user.phone) phoneId, info.store_blurb blurb, 1 blockedType,user.id blockedId ,IFNULL(user.nick_name, user.name) username, user.account_blurb accountBlurb " +
+            "    select info.id, IF(info.store_application_status = 0, user.nick_name, info.store_name) AS name, user.head_img image, concat('store_', user.phone) phoneId, IF(info.store_application_status = 0, user.account_blurb, info.store_blurb) AS blurb, 1 blockedType,user.id blockedId ,IFNULL(user.nick_name, user.name) username, user.account_blurb accountBlurb, IF(info.store_application_status = 1, '1', '0') AS isMerchant " +
             "    from follow foll " +
             "    join store_user user on foll.phone = user.phone " +
             "    join store_info info on info.id = user.store_id " +
             "    left join store_img img on img.store_id = user.store_id and img.img_type = '10' and img.delete_flag = 0 " +
             "    where foll.flag = 'store' and user.delete_flag = 0 and info.delete_flag = 0 " +
             "    union " +
-            "    select user.id, user.user_name name, user.user_image image, concat('user_', user.user_phone) phoneId, user.jianjie blurb, 2 blockedType,user.id blockedId,'' username, '' accountBlurb " +
+            "    select user.id, user.user_name name, user.user_image image, concat('user_', user.user_phone) phoneId, user.jianjie blurb, 2 blockedType,user.id blockedId,'' username, '' accountBlurb, '0' AS isMerchant " +
             "    from follow foll " +
             "    join life_user user on foll.phone = user.user_phone " +
             "    where foll.flag = 'user' and user.delete_flag = 0 " +

+ 12 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeFeedbackMapper.java

@@ -49,6 +49,18 @@ public interface LifeFeedbackMapper extends BaseMapper<LifeFeedback> {
      */
     Integer countPendingFeedback(@Param("feedbackSource") Integer feedbackSource);
 
+    /**
+     * 查询平台回复列表
+     * @param userId 用户ID
+     * @param feedbackSource 反馈来源
+     * @param startTime 开始时间
+     * @return 平台回复列表
+     */
+    List<LifeFeedbackVo> selectPlatformReplies(
+            @Param("userId") Integer userId,
+            @Param("feedbackSource") Integer feedbackSource,
+            @Param("startTime") Date startTime
+    );
 
     // ==================== Web中台接口 ====================
 

+ 19 - 3
alien-entity/src/main/java/shop/alien/mapper/LifeMessageMapper.java

@@ -42,12 +42,28 @@ public interface LifeMessageMapper extends BaseMapper<LifeMessage> {
             "    from message " +
             ") " +
             "select message.id, message.type, message.phoneId, message.content, message.created_time createdTime, message.is_read, " +
-            "       if (message.flag = 'user', user.user_name, suser.nick_name) userName, " +
-            " IF(INSTR( #{phoneId}, 'user' ) > 0, user.user_image, suser.head_img ) user_image, "+
-            "       if (message.flag = 'user', user.id, suser.id) userId " +
+            "case "+
+            "when message.flag = 'user' then user.user_name "+
+            "when message.flag = 'store' then suser.nick_name "+
+            "when message.flag = 'lawyer' then luser.name "+
+            "else '' "+
+            "end as userName, "+
+            "case "+
+            "when INSTR(  message.phoneId, 'user' ) > 0 then user.user_image "+
+            "when INSTR(  message.phoneId, 'store' ) > 0 then suser.head_img "+
+            "when INSTR(  message.phoneId, 'lawyer' ) > 0 then luser.head_img "+
+            "else ''  "+
+            "end as user_image, "+
+            "case "+
+            "when message.flag = 'user' then user.id "+
+            "when message.flag = 'store' then suser.id "+
+            "when message.flag = 'lawyer' then luser.id "+
+            "else '' "+
+            "end as userId "+
             "from message_num message " +
             "left join life_user user on message.flag = 'user' and message.phone = user.user_phone and user.delete_flag = 0 " +
             "left join store_user suser on message.flag = 'store' and message.phone = suser.phone and suser.delete_flag = 0 " +
+            "left join lawyer_user luser on message.flag = 'lawyer' and message.phone = luser.phone and luser.delete_flag = 0 "+
             "left join store_img img on img.store_id = suser.store_id and img.img_type = '10' and img.delete_flag = 0 " +
             "${ew.customSqlSegment}")
     List<LifeMessageVo> getLifeMessagePageByPhoneId(@Param("phoneId") String phoneId, @Param(Constants.WRAPPER) QueryWrapper<LifeFansVo> dynamicsWrapper);

+ 15 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeSysDeptMapper.java

@@ -0,0 +1,15 @@
+package shop.alien.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import shop.alien.entity.store.LifeSysDept;
+
+/**
+ * LifeSysDeptMapper接口
+ * 对应数据库表:life_sys_dept
+ * 用于操作部门信息表
+ *
+ * @author AI Assistant
+ * @since 2025-12-17
+ */
+public interface LifeSysDeptMapper extends BaseMapper<LifeSysDept> {
+}

+ 6 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeSysMapper.java

@@ -1,12 +1,18 @@
 package shop.alien.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import shop.alien.entity.store.LifeSys;
+import shop.alien.entity.store.vo.LifeSysVo;
 
 /**
  * 系统用户
  */
 @Mapper
 public interface LifeSysMapper extends BaseMapper<LifeSys> {
+    IPage<LifeSysVo> selectPageAndRoleName(IPage<LifeSysVo> pageObj, @Param(Constants.WRAPPER) QueryWrapper<LifeSys> queryWrapper);
 }

+ 19 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeSysMenuMapper.java

@@ -0,0 +1,19 @@
+package shop.alien.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import shop.alien.entity.store.LifeSysMenu;
+
+import java.util.List;
+
+/**
+ * 菜单权限表 Mapper 接口
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Mapper
+public interface LifeSysMenuMapper extends BaseMapper<LifeSysMenu> {
+    List<LifeSysMenu> getMenuByUserId(Long userId);
+}
+

+ 33 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeSysRoleMapper.java

@@ -0,0 +1,33 @@
+package shop.alien.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import shop.alien.entity.store.LifeSysRole;
+
+import java.util.List;
+
+/**
+ * 平台角色信息表 Mapper 接口
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Mapper
+public interface LifeSysRoleMapper extends BaseMapper<LifeSysRole> {
+    /**
+     * 根据用户ID查询角色
+     *
+     * @param queryWrapper 查询条件
+     * @return 角色列表
+     */
+    @Select("select lsr.*\n" +
+            "from life_sys_role lsr\n" +
+            "left join life_sys_user_role lsur on lsur.role_id = lsr.role_id\n" +
+            "${ew.customSqlSegment}")
+    List<LifeSysRole> getRoleByUserId(@Param(Constants.WRAPPER) QueryWrapper<LifeSysRole> queryWrapper);
+}
+

+ 16 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeSysRoleMenuMapper.java

@@ -0,0 +1,16 @@
+package shop.alien.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import shop.alien.entity.store.LifeSysRoleMenu;
+
+/**
+ * 角色菜单关联表 Mapper 接口
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Mapper
+public interface LifeSysRoleMenuMapper extends BaseMapper<LifeSysRoleMenu> {
+}
+

+ 16 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeSysUserRoleMapper.java

@@ -0,0 +1,16 @@
+package shop.alien.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import shop.alien.entity.store.LifeSysUserRole;
+
+/**
+ * 用户角色关联表 Mapper 接口
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Mapper
+public interface LifeSysUserRoleMapper extends BaseMapper<LifeSysUserRole> {
+}
+

+ 7 - 0
alien-entity/src/main/java/shop/alien/mapper/LifeUserCreditScoreInfoMapper.java

@@ -0,0 +1,7 @@
+package shop.alien.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import shop.alien.entity.store.LifeUserCreditScoreInfo;
+
+public interface LifeUserCreditScoreInfoMapper extends BaseMapper<LifeUserCreditScoreInfo> {
+}

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff