Эх сурвалжийг харах

Merge branch 'sit-backup' into uat

LuTong 1 долоо хоног өмнө
parent
commit
d52ec600a7
100 өөрчлөгдсөн 6160 нэмэгдсэн , 10 устгасан
  1. 1 1
      alien-api/src/main/java/shop/alien/api/feign/GaoDeFeign.java
  2. 23 0
      alien-config/src/main/java/shop/alien/config/redis/BaseRedisService.java
  3. 6 0
      alien-entity/pom.xml
  4. 79 0
      alien-entity/src/main/java/shop/alien/entity/second/SecondEntrustUser.java
  5. 4 0
      alien-entity/src/main/java/shop/alien/entity/second/SecondGoods.java
  6. 16 0
      alien-entity/src/main/java/shop/alien/entity/second/SecondTradeRecord.java
  7. 39 0
      alien-entity/src/main/java/shop/alien/entity/second/vo/SecondEntrustUserDTO.java
  8. 30 0
      alien-entity/src/main/java/shop/alien/entity/second/vo/SecondEntrustUserDetailVo.java
  9. 41 0
      alien-entity/src/main/java/shop/alien/entity/second/vo/SecondEntrustUserQueryVo.java
  10. 39 0
      alien-entity/src/main/java/shop/alien/entity/second/vo/SecondEntrustUserResultVo.java
  11. 18 0
      alien-entity/src/main/java/shop/alien/entity/second/vo/SecondTradeRecordVo.java
  12. 117 0
      alien-entity/src/main/java/shop/alien/entity/second/vo/SellerEvaluationVo.java
  13. 25 0
      alien-entity/src/main/java/shop/alien/entity/second/vo/StoreImgDTO.java
  14. 100 0
      alien-entity/src/main/java/shop/alien/entity/store/CommentAppeal.java
  15. 183 0
      alien-entity/src/main/java/shop/alien/entity/store/LawFirm.java
  16. 68 0
      alien-entity/src/main/java/shop/alien/entity/store/LawFirmPayment.java
  17. 81 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerAiInteractionLog.java
  18. 94 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerChatMessage.java
  19. 81 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerChatSession.java
  20. 80 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerCommonQuestion.java
  21. 183 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerConsultationOrder.java
  22. 84 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerConsultationReview.java
  23. 55 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerExpertiseArea.java
  24. 76 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerImg.java
  25. 90 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerLegalProblemScenario.java
  26. 94 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerPaymentTransaction.java
  27. 68 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerServiceArea.java
  28. 341 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerUser.java
  29. 56 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerUserSearchHistory.java
  30. 126 0
      alien-entity/src/main/java/shop/alien/entity/store/LawyerUserViolation.java
  31. 4 1
      alien-entity/src/main/java/shop/alien/entity/store/LifeCoupon.java
  32. 3 3
      alien-entity/src/main/java/shop/alien/entity/store/LifeDiscountCoupon.java
  33. 1 1
      alien-entity/src/main/java/shop/alien/entity/store/LifeMessage.java
  34. 13 1
      alien-entity/src/main/java/shop/alien/entity/store/LifeSys.java
  35. 29 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeUserDynamics.java
  36. 4 0
      alien-entity/src/main/java/shop/alien/entity/store/LifeUserViolation.java
  37. 65 0
      alien-entity/src/main/java/shop/alien/entity/store/OcrImageUpload.java
  38. 104 0
      alien-entity/src/main/java/shop/alien/entity/store/OrderReview.java
  39. 154 0
      alien-entity/src/main/java/shop/alien/entity/store/RefundRecord.java
  40. 88 0
      alien-entity/src/main/java/shop/alien/entity/store/ReviewComment.java
  41. 66 0
      alien-entity/src/main/java/shop/alien/entity/store/SecondAiTask.java
  42. 117 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreAliPayRefundLog.java
  43. 12 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreClockIn.java
  44. 1 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreComment.java
  45. 7 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreCommentAppeal.java
  46. 9 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreDictionary.java
  47. 30 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreInfo.java
  48. 73 0
      alien-entity/src/main/java/shop/alien/entity/store/StoreVerificationCode.java
  49. 75 0
      alien-entity/src/main/java/shop/alien/entity/store/UserActionRewardRule.java
  50. 21 0
      alien-entity/src/main/java/shop/alien/entity/store/WorkdayRangeInfo.java
  51. 30 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/AuditAppealRequestDto.java
  52. 134 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerConsultationOrderDto.java
  53. 27 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerLegalProblemScenarioStatusDto.java
  54. 27 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerRecommendedDto.java
  55. 144 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerUserDto.java
  56. 117 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerUserViolationDto.java
  57. 49 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/OrderReviewDto.java
  58. 36 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/PayStatusRequest.java
  59. 26 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/ReviewCommentDto.java
  60. 23 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/ReviewCommentRequestDto.java
  61. 29 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/ReviewReplyDto.java
  62. 17 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/StoreInfoDto.java
  63. 39 0
      alien-entity/src/main/java/shop/alien/entity/store/dto/SystemRegisterDto.java
  64. 36 0
      alien-entity/src/main/java/shop/alien/entity/store/excelVo/BusinessSectionExcelVo.java
  65. 132 0
      alien-entity/src/main/java/shop/alien/entity/store/excelVo/LawFirmExcelVo.java
  66. 114 0
      alien-entity/src/main/java/shop/alien/entity/store/excelVo/LawyerUserExcelVo.java
  67. 34 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/AiApproveStoreInfo.java
  68. 146 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/CommentAppealVo.java
  69. 43 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawFirmExportResponseVO.java
  70. 46 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawFirmListVO.java
  71. 109 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawFirmPaymentVO.java
  72. 69 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawFirmReconciliationVO.java
  73. 80 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerAiInteractionLogVo.java
  74. 285 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerConsultationOrderVO.java
  75. 49 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerExportResponseVO.java
  76. 29 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerImgTypeVo.java
  77. 62 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerListVO.java
  78. 48 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerReconciliationDetailVO.java
  79. 32 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerReviewStatisticsVo.java
  80. 42 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerUserViolationVo.java
  81. 324 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerUserVo.java
  82. 10 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LifeDiscountCouponVo.java
  83. 12 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LifeGroupBuyThaliVo.java
  84. 9 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/LifeUserOrderCommentVo.java
  85. 47 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/OrderRevenueVO.java
  86. 34 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/OrderReviewDetailVo.java
  87. 95 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/OrderReviewVo.java
  88. 53 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/PendingReviewVo.java
  89. 67 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/ReviewCommentVo.java
  90. 43 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/RewardRuleTreeNodeVo.java
  91. 12 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreCashOutRecordVo.java
  92. 33 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreCommentCountVo.java
  93. 17 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreIncomeDetailsRecordVo.java
  94. 3 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreInfoVo.java
  95. 4 1
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreMainInfoVo.java
  96. 46 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/StoreMenuImportVo.java
  97. 3 0
      alien-entity/src/main/java/shop/alien/entity/store/vo/SystemLoginVo.java
  98. 6 2
      alien-entity/src/main/java/shop/alien/entity/store/vo/WebSocketVo.java
  99. 43 0
      alien-entity/src/main/java/shop/alien/entity/storePlatform/LifeGroupBuyMainPlatform.java
  100. 71 0
      alien-entity/src/main/java/shop/alien/entity/storePlatform/StoreLicenseHistory.java

+ 1 - 1
alien-api/src/main/java/shop/alien/api/feign/GaoDeFeign.java

@@ -26,7 +26,7 @@ public interface GaoDeFeign {
      * @return JSONObject
      */
     @GetMapping("/geocode/geo")
-    JSONObject geo(@RequestParam(value = "output") String output,
+                   JSONObject geo(@RequestParam(value = "output") String output,
                    @RequestParam(value = "address") String address,
                    @RequestParam(value = "key") String key);
 

+ 23 - 0
alien-config/src/main/java/shop/alien/config/redis/BaseRedisService.java

@@ -1,6 +1,7 @@
 package shop.alien.config.redis;
 
 import lombok.RequiredArgsConstructor;
+import org.springframework.data.geo.Point;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.script.RedisScript;
 import org.springframework.stereotype.Component;
@@ -113,6 +114,16 @@ public class BaseRedisService {
     public void setString(String key, String value, Long timeOut) {
         set(key, value, timeOut);
     }
+
+    /**
+     * 判断是否存在指定key
+     * @param key
+     * @return
+     */
+    public boolean hasKey(String key) {
+        Boolean exists = stringRedisTemplate.hasKey(key);
+        return exists != null && exists;
+    }
     
     /**
      * 添加String值, 如果key不存在则设置成功并返回true,否则返回false
@@ -174,4 +185,16 @@ public class BaseRedisService {
     public void delete(String key) {
         stringRedisTemplate.delete(key);
     }
+
+    /**
+     * 添加地理信息
+     *
+     * @param point
+     * @param content
+     * @param type
+     * @return
+     */
+    public Long inGeolocation(Point point, String content, String type) {
+        return stringRedisTemplate.opsForGeo().add(type, point, content);
+    }
 }

+ 6 - 0
alien-entity/pom.xml

@@ -76,6 +76,12 @@
             <version>2.0.53</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>4.0.3</version>
+            <scope>compile</scope>
+        </dependency>
 
     </dependencies>
 

+ 79 - 0
alien-entity/src/main/java/shop/alien/entity/second/SecondEntrustUser.java

@@ -0,0 +1,79 @@
+package shop.alien.entity.second;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 二手委托人信息表
+ * </p>
+ *
+ * @author ssk
+ * @since 2025-11-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("second_entrust_user")
+@ApiModel(value = "SecondEntrustUser对象", description = "二手委托人信息表")
+public class SecondEntrustUser extends Model<SecondEntrustUser> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "交易ID")
+    @TableField("entrust_trade_id")
+    private Integer entrustTradeId;
+
+    @ApiModelProperty(value = "交易编号")
+    @TableField("entrust_trade_no")
+    private String entrustTradeNo;
+
+    @ApiModelProperty(value = "委托人电话")
+    @TableField("entrust_user_phone")
+    private String entrustUserPhone;
+
+    @ApiModelProperty(value = "委托人姓名")
+    @TableField("entrust_user_name")
+    private String entrustUserName;
+
+    @ApiModelProperty(value = "委托人身份证")
+    @TableField("entrust_id_card")
+    private String entrustIdCard;
+
+    @ApiModelProperty(value = "委托人身份证照片")
+    @TableField("entrust_id_card_img")
+    private String entrustIdCardImg;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    private Integer deleteFlag;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "created_time", fill = FieldFill.INSERT)
+    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)
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField(value = "updated_user_id", fill = FieldFill.INSERT_UPDATE)
+    private Integer updatedUserId;
+
+}
+

+ 4 - 0
alien-entity/src/main/java/shop/alien/entity/second/SecondGoods.java

@@ -112,6 +112,10 @@ public class SecondGoods implements Serializable {
     @ApiModelProperty(value = "审核失败原因")
     private String failedReason;
 
+    @TableField("ai_task_id")
+    @ApiModelProperty(value = "ai_task_id")
+    private String aiTaskId;
+
     @TableField(value = "created_time", fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty(value = "创建时间")

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

@@ -107,18 +107,34 @@ public class SecondTradeRecord extends Model<SecondTradeRecord> {
     @TableField("buyer_transaction_status")
     private Integer buyerTransactionStatus;
 
+    @ApiModelProperty(value = "买家完成交易时间")
+    @TableField("buyer_complete_time")
+    private Date buyerCompleteTime;
+
     @ApiModelProperty(value = "买家评价")
     @TableField("buyer_evaluate")
     private String buyerEvaluate;
 
+    @ApiModelProperty(value = "买家评分")
+    @TableField("buyer_rating")
+    private Integer buyerRating;
+
     @ApiModelProperty(value = "卖家交易状态  0-未确认  1-交易成功  2-交易失败")
     @TableField("seller_transaction_status")
     private Integer sellerTransactionStatus;
 
+    @ApiModelProperty(value = "卖家完成交易时间")
+    @TableField("seller_complete_time")
+    private Date sellerCompleteTime;
+
     @ApiModelProperty(value = "卖家评价")
     @TableField("seller_evaluate")
     private String sellerEvaluate;
 
+    @ApiModelProperty(value = "卖家评分")
+    @TableField("seller_rating")
+    private Integer sellerRating;
+
     @ApiModelProperty(value = "交易状态  1-待确认  2-已拒绝  3-待交易  4-交易成功  5-交易失败  6-交易取消")
     @TableField("trade_status")
     private Integer tradeStatus;

+ 39 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/SecondEntrustUserDTO.java

@@ -0,0 +1,39 @@
+package shop.alien.entity.second.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.second.SecondTradeRecord;
+
+/**
+ * <p>
+ * 二手委托人信息 DTO
+ * </p>
+ *
+ * @author ssk
+ * @since 2025-11-21
+ */
+@Data
+@ApiModel(value = "SecondEntrustUserDTO", description = "二手委托人信息传输对象")
+public class SecondEntrustUserDTO extends SecondTradeRecord {
+
+    @ApiModelProperty(value = "交易ID")
+    private Integer entrustTradeId;
+
+    @ApiModelProperty(value = "交易编号")
+    private String entrustTradeNo;
+
+    @ApiModelProperty(value = "委托人电话")
+    private String entrustUserPhone;
+
+    @ApiModelProperty(value = "委托人姓名")
+    private String entrustUserName;
+
+    @ApiModelProperty(value = "委托人身份证")
+    private String entrustIdCard;
+
+    @ApiModelProperty(value = "委托人身份证照片")
+    private String entrustIdCardImg;
+
+}
+

+ 30 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/SecondEntrustUserDetailVo.java

@@ -0,0 +1,30 @@
+package shop.alien.entity.second.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.second.SecondEntrustUser;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 二手委托人详情 VO
+ * </p>
+ *
+ * @author ssk
+ * @since 2025-11-21
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "SecondEntrustUserDetailVo", description = "二手委托人详情对象")
+public class SecondEntrustUserDetailVo {
+
+    @ApiModelProperty(value = "委托人基本信息")
+    private SecondEntrustUser entrustUserInfo;
+
+    @ApiModelProperty(value = "关联的交易记录集合")
+    private List<SecondTradeRecordVo> tradeRecords;
+}
+

+ 41 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/SecondEntrustUserQueryVo.java

@@ -0,0 +1,41 @@
+package shop.alien.entity.second.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * <p>
+ * 二手委托人信息查询 VO(以人为维度)
+ * </p>
+ *
+ * @author ssk
+ * @since 2025-11-21
+ */
+@Data
+@JsonInclude
+@NoArgsConstructor
+@ApiModel(value = "SecondEntrustUserQueryVo", description = "二手委托人信息查询对象(以人为维度)")
+public class SecondEntrustUserQueryVo {
+
+    @ApiModelProperty(value = "分页页数")
+    private Integer pageNum;
+
+    @ApiModelProperty(value = "分页条数")
+    private Integer pageSize;
+
+    @ApiModelProperty(value = "委托人姓名")
+    private String entrustUserName;
+
+    @ApiModelProperty(value = "委托人身份证号")
+    private String entrustIdCard;
+
+    @ApiModelProperty(value = "委托人电话")
+    private String entrustUserPhone;
+
+    @ApiModelProperty(value = "交易编号")
+    private String entrustTradeNo;
+}
+

+ 39 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/SecondEntrustUserResultVo.java

@@ -0,0 +1,39 @@
+package shop.alien.entity.second.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import shop.alien.entity.second.SecondEntrustUser;
+
+/**
+ * <p>
+ * 二手委托人信息结果 VO(以人为维度)
+ * </p>
+ *
+ * @author ssk
+ * @since 2025-11-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@JsonInclude
+@NoArgsConstructor
+@ApiModel(value = "SecondEntrustUserResultVo", description = "二手委托人信息结果对象(以人为维度)")
+public class SecondEntrustUserResultVo extends SecondEntrustUser {
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "委托记录总数")
+    private Integer entrustCount;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "关联交易总数")
+    private Integer tradeCount;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "最近委托时间")
+    private String latestEntrustTime;
+}
+

+ 18 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/SecondTradeRecordVo.java

@@ -62,6 +62,9 @@ public class SecondTradeRecordVo extends SecondTradeRecord {
     @ApiModelProperty(value = "用户交易评价")
     private String userEvaluate;
 
+    @ApiModelProperty(value = "用户交易评分")
+    private Integer userRating;
+
     @ApiModelProperty(value = "当前时间是否超过交易时间  0-否  1-是")
     private String timeOutFlag;
 
@@ -73,4 +76,19 @@ public class SecondTradeRecordVo extends SecondTradeRecord {
 
     @ApiModelProperty(value = "商品信息")
     private SecondGoodsVo goodsInfo;
+
+    @ApiModelProperty(value = "委托人ID")
+    private Integer entrustId;
+
+    @ApiModelProperty(value = "委托人电话")
+    private String entrustUserPhone;
+
+    @ApiModelProperty(value = "委托人姓名")
+    private String entrustUserName;
+
+    @ApiModelProperty(value = "委托人身份证")
+    private String entrustIdCard;
+
+    @ApiModelProperty(value = "委托人身份证图片")
+    private String entrustIdCardImg;
 }

+ 117 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/SellerEvaluationVo.java

@@ -0,0 +1,117 @@
+package shop.alien.entity.second.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.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 卖家交易评价VO
+ * </p>
+ *
+ * @author system
+ * @since 2025-11-18
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "SellerEvaluationVo对象", description = "卖家交易评价VO")
+public class SellerEvaluationVo {
+
+    @ApiModelProperty(value = "交易记录ID")
+    private Integer id;
+
+    @ApiModelProperty(value = "交易编号")
+    private String tradeNo;
+
+    @ApiModelProperty(value = "商品ID")
+    private Integer goodsId;
+
+    @ApiModelProperty(value = "商品标题")
+    private String goodsTitle;
+
+    @ApiModelProperty(value = "商品封面图片")
+    private String goodsHomeImage;
+
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal goodsPrice;
+
+    @ApiModelProperty(value = "交易金额")
+    private BigDecimal transactionAmount;
+
+    @ApiModelProperty(value = "买家ID")
+    private Integer buyerId;
+
+    @ApiModelProperty(value = "买家昵称")
+    private String buyerName;
+
+    @ApiModelProperty(value = "买家头像")
+    private String buyerImage;
+
+    @ApiModelProperty(value = "买家手机号")
+    private String buyerPhone;
+
+    @ApiModelProperty(value = "买家真实姓名")
+    private String buyerRealName;
+
+    @ApiModelProperty(value = "买家性别")
+    private String buyerSex;
+
+    @ApiModelProperty(value = "买家简介")
+    private String buyerJianjie;
+
+    @ApiModelProperty(value = "买家评价内容")
+    private String buyerEvaluate;
+
+    @ApiModelProperty(value = "买家评分(1-5分)")
+    private Integer buyerRating;
+
+    @ApiModelProperty(value = "买家信用积分")
+    private Integer buyerCreditScore;
+
+    @ApiModelProperty(value = "买家风控评分等级(A-E,O表示无记录)")
+    private String buyerCreditLevel;
+
+    @ApiModelProperty(value = "卖家ID")
+    private Integer sellerId;
+
+    @ApiModelProperty(value = "卖家昵称")
+    private String sellerName;
+
+    @ApiModelProperty(value = "卖家头像")
+    private String sellerImage;
+
+    @ApiModelProperty(value = "卖家信用积分")
+    private Integer sellerCreditScore;
+
+    @ApiModelProperty(value = "卖家风控评分等级(A-E,O表示无记录)")
+    private String sellerCreditLevel;
+
+    @ApiModelProperty(value = "交易时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date transactionTime;
+
+    @ApiModelProperty(value = "交易状态  1-待确认  2-已拒绝  3-待交易  4-交易成功  5-交易失败  6-交易取消")
+    private Integer tradeStatus;
+
+    @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 buyerCompleteTime;
+
+    @ApiModelProperty(value = "卖家完成交易时间")
+    @TableField("seller_complete_time")
+    private Date sellerCompleteTime;
+
+
+}
+

+ 25 - 0
alien-entity/src/main/java/shop/alien/entity/second/vo/StoreImgDTO.java

@@ -0,0 +1,25 @@
+package shop.alien.entity.second.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import shop.alien.entity.store.StoreImg;
+
+import java.util.Date;
+
+/**
+ * 上传图片vo
+ *
+ * @author ssk
+ * @version 1.0
+ * @date 2025/1/13 10:35
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@JsonInclude
+public class StoreImgDTO extends StoreImg {
+
+    @JsonFormat(pattern = "yyyy/MM/dd", timezone = "GMT+8")
+    Date expirationTime;
+}

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

@@ -0,0 +1,100 @@
+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 system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@EqualsAndHashCode(callSuper = false)
+@TableName("comment_appeals")
+@ApiModel(value = "CommentAppeal对象", description = "评论申诉表")
+public class CommentAppeal extends Model<CommentAppeal> {
+
+    @ApiModelProperty(value = "主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "评论id")
+    @TableField("comment_id")
+    private Integer commentId;
+
+    @ApiModelProperty(value = "评论内容")
+    @TableField("comment_info")
+    private String commentInfo;
+
+    @ApiModelProperty(value = "申诉理由")
+    @TableField("appeal_reason")
+    private String appealReason;
+
+    @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(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 = "申诉时间")
+    @TableField(value = "appeal_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date appealTime;
+
+    @ApiModelProperty(value = "图片路径")
+    @TableField("img_url")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "申诉审核通过 驳回时间")
+    @TableField(value = "appeal_review_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date appealReviewTime;
+
+    @ApiModelProperty(value = "审核原因")
+    @TableField("review_reasons")
+    private String reviewReasons;
+
+    @ApiModelProperty(value = "申诉审核单号")
+    @TableField("appeal_number")
+    private String appealNumber;
+
+    @ApiModelProperty(value = "申诉人id")
+    @TableField("lawyer_user_id")
+    private String lawyerUserId;
+
+    @ApiModelProperty(value = "订单ID")
+    @TableField("order_id")
+    private Integer orderId;
+}
+

+ 183 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawFirm.java

@@ -0,0 +1,183 @@
+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 java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 律所表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("law_firm")
+@ApiModel(value = "LawFirm对象", description = "律所表")
+public class LawFirm extends Model<LawFirm> implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "律所名称")
+    @TableField("firm_name")
+    private String firmName;
+
+    @ApiModelProperty(value = "统一社会信用代码")
+    @TableField("credit_code")
+    private String creditCode;
+
+    @ApiModelProperty(value = "律所简称")
+    @TableField("short_name")
+    private String shortName;
+
+    @ApiModelProperty(value = "律所英文名称")
+    @TableField("english_name")
+    private String englishName;
+
+    @ApiModelProperty(value = "成立日期")
+    @TableField("establishment_date")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date establishmentDate;
+
+    @ApiModelProperty(value = "律所类型, 1:合伙制, 2:个人制, 3:国资制")
+    @TableField("firm_type")
+    private Integer firmType;
+
+    @ApiModelProperty(value = "律所规模, 1:小型(1-10人), 2:中型(11-50人), 3:大型(51-200人), 4:超大型(200人以上)")
+    @TableField("firm_scale")
+    private Integer firmScale;
+
+    @ApiModelProperty(value = "联系电话")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty(value = "传真")
+    @TableField("fax")
+    private String fax;
+
+    @ApiModelProperty(value = "邮箱")
+    @TableField("email")
+    private String email;
+
+    @ApiModelProperty(value = "官网地址")
+    @TableField("website")
+    private String website;
+
+    @ApiModelProperty(value = "律所简介")
+    @TableField("introduction")
+    private String introduction;
+
+    @ApiModelProperty(value = "律所logo")
+    @TableField("logo")
+    private String logo;
+
+    @ApiModelProperty(value = "营业执照照片")
+    @TableField("business_license_image")
+    private String businessLicenseImage;
+
+    @ApiModelProperty(value = "执业许可证号")
+    @TableField("practice_license_no")
+    private String practiceLicenseNo;
+
+    @ApiModelProperty(value = "执业许可证照片")
+    @TableField("practice_license_image")
+    private String practiceLicenseImage;
+
+    @ApiModelProperty(value = "负责人姓名")
+    @TableField("director_name")
+    private String directorName;
+
+    @ApiModelProperty(value = "负责人电话")
+    @TableField("director_phone")
+    private String directorPhone;
+
+    @ApiModelProperty(value = "负责人邮箱")
+    @TableField("director_email")
+    private String directorEmail;
+
+    @ApiModelProperty(value = "律师总数")
+    @TableField("lawyer_count")
+    private Integer lawyerCount;
+
+    @ApiModelProperty(value = "合伙人数量")
+    @TableField("partner_count")
+    private Integer partnerCount;
+
+    @ApiModelProperty(value = "律所状态, 0:禁用, 1:启用")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "认证状态, 0:未认证, 1:认证中, 2:已认证, 3:认证失败")
+    @TableField("certification_status")
+    private Integer certificationStatus;
+
+    @ApiModelProperty(value = "认证失败原因")
+    @TableField("certification_fail_reason")
+    private String certificationFailReason;
+
+    @ApiModelProperty(value = "认证时间")
+    @TableField("certification_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date certificationTime;
+
+    @ApiModelProperty(value = "认证审核人ID")
+    @TableField("certification_reviewer_id")
+    private Integer certificationReviewerId;
+
+    @ApiModelProperty(value = "是否推荐, 0:不推荐, 1:推荐")
+    @TableField("is_recommended")
+    private Integer isRecommended;
+
+    @ApiModelProperty(value = "推荐排序")
+    @TableField("recommend_sort")
+    private Integer recommendSort;
+
+    @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;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
+
+    @ApiModelProperty(value = "平台佣金比例(百分比)")
+    @TableField("platform_commission_ratio")
+    private Integer platformCommissionRatio;
+
+    @ApiModelProperty(value = "律师子表(临时字段,不映射到数据库)")
+    @TableField(exist = false)
+    private List<LawFirmPayment> paymentList;
+}
+

+ 68 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawFirmPayment.java

@@ -0,0 +1,68 @@
+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 java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 律所子表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("law_firm_payment")
+@ApiModel(value = "LawFirmPayment对象", description = "律所子表")
+public class LawFirmPayment extends Model<LawFirmPayment> implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "律师表id")
+    @TableField("firm_id")
+    private Integer firmId;
+
+    @ApiModelProperty(value = "律师事务所收款账号")
+    @TableField("payment_account")
+    private String paymentAccount;
+
+    @ApiModelProperty(value = "详细地址")
+    @TableField("address")
+    private String address;
+
+    @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;
+}
+
+

+ 81 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerAiInteractionLog.java

@@ -0,0 +1,81 @@
+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 java.util.Date;
+
+/**
+ * AI交互日志
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_ai_interaction_log")
+@ApiModel(value = "LawyerAiInteractionLog对象", description = "AI交互日志")
+public class LawyerAiInteractionLog extends Model<LawyerAiInteractionLog> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "客户端用户ID")
+    @TableField("client_user_id")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "会话ID")
+    @TableField("conversation_id")
+    private String conversationId;
+
+    @ApiModelProperty(value = "用户输入内容")
+    @TableField("query_text")
+    private String queryText;
+
+    @ApiModelProperty(value = "AI回复内容")
+    @TableField("response_text")
+    private String responseText;
+
+    @ApiModelProperty(value = "关联的法律问题场景ID")
+    @TableField("problem_scenario_id")
+    private Integer problemScenarioId;
+
+    @ApiModelProperty(value = "交互时间")
+    @TableField("interaction_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date interactionTime;
+
+    @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 = "场景ID")
+    @TableField("scene_id")
+    private Integer sceneId;
+}
+

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

@@ -0,0 +1,94 @@
+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 java.util.Date;
+
+/**
+ * 聊天消息
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_chat_message")
+@ApiModel(value = "LawyerChatMessage对象", description = "聊天消息")
+public class LawyerChatMessage extends Model<LawyerChatMessage> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "聊天会话ID")
+    @TableField("chat_session_id")
+    private Integer chatSessionId;
+
+    @ApiModelProperty(value = "咨询订单ID")
+    @TableField("consultation_order_id")
+    private Integer consultationOrderId;
+
+    @ApiModelProperty(value = "发送者ID")
+    @TableField("sender_id")
+    private Integer senderId;
+
+    @ApiModelProperty(value = "发送者类型, 0:客户端用户, 1:律师用户")
+    @TableField("sender_type")
+    private Integer senderType;
+
+    @ApiModelProperty(value = "消息内容")
+    @TableField("message_content")
+    private String messageContent;
+
+    @ApiModelProperty(value = "消息类型, 0:文本, 1:图片, 2:语音, 3:文件, 4:视频")
+    @TableField("message_type")
+    private Integer messageType;
+
+    @ApiModelProperty(value = "媒体文件URL")
+    @TableField("media_url")
+    private String mediaUrl;
+
+    @ApiModelProperty(value = "消息发送时间")
+    @TableField("message_timestamp")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date messageTimestamp;
+
+    @ApiModelProperty(value = "阅读状态, 0:未读, 1:已读")
+    @TableField("read_status")
+    private Integer readStatus;
+
+    @ApiModelProperty(value = "阅读时间")
+    @TableField("read_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date readTime;
+
+    @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;
+}
+

+ 81 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerChatSession.java

@@ -0,0 +1,81 @@
+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 java.util.Date;
+
+/**
+ * 聊天会话
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_chat_session")
+@ApiModel(value = "LawyerChatSession对象", description = "聊天会话")
+public class LawyerChatSession extends Model<LawyerChatSession> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "咨询订单ID")
+    @TableField("consultation_order_id")
+    private Integer consultationOrderId;
+
+    @ApiModelProperty(value = "客户端用户ID")
+    @TableField("client_user_id")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "律师用户ID")
+    @TableField("lawyer_user_id")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "会话类型, 0:文本咨询, 1:语音咨询, 2:视频咨询")
+    @TableField("session_type")
+    private Integer sessionType;
+
+    @ApiModelProperty(value = "会话状态, 0:未开始, 1:进行中, 2:已结束")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "最后一条消息ID")
+    @TableField("last_message_id")
+    private Integer lastMessageId;
+
+    @ApiModelProperty(value = "最后一条消息时间")
+    @TableField("last_message_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date lastMessageTime;
+
+    @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;
+}
+

+ 80 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerCommonQuestion.java

@@ -0,0 +1,80 @@
+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 java.util.Date;
+
+/**
+ * 常见问题
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_common_question")
+@ApiModel(value = "LawyerCommonQuestion对象", description = "常见问题")
+public class LawyerCommonQuestion extends Model<LawyerCommonQuestion> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "问题文本")
+    @TableField("question_text")
+    private String questionText;
+
+    @ApiModelProperty(value = "回答内容")
+    @TableField("answer_text")
+    private String answerText;
+
+    @ApiModelProperty(value = "分类类型, 0:推荐, 1:常见问题")
+    @TableField("category_type")
+    private Integer categoryType;
+
+    @ApiModelProperty(value = "关联法律问题场景ID")
+    @TableField("problem_scenario_id")
+    private Integer problemScenarioId;
+
+    @ApiModelProperty(value = "排序")
+    @TableField("sort_order")
+    private Integer sortOrder;
+
+    @ApiModelProperty(value = "浏览次数")
+    @TableField("view_count")
+    private Integer viewCount;
+
+    @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;
+}
+

+ 183 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerConsultationOrder.java

@@ -0,0 +1,183 @@
+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 java.util.Date;
+
+/**
+ * 咨询订单
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_consultation_order")
+@ApiModel(value = "LawyerConsultationOrder对象", description = "咨询订单")
+public class LawyerConsultationOrder extends Model<LawyerConsultationOrder> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "订单编号")
+    @TableField("order_number")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "客户端用户ID")
+    @TableField("client_user_id")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "律师用户ID")
+    @TableField("lawyer_user_id")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "法律问题场景ID")
+    @TableField("problem_scenario_id")
+    private String problemScenarioId;
+
+    @ApiModelProperty(value = "问题描述")
+    @TableField("problem_description")
+    private String problemDescription;
+
+    @ApiModelProperty(value = "订单金额,单位分")
+    @TableField("order_amount")
+    private Integer orderAmount;
+
+    @ApiModelProperty(value = "咨询费用,单位分")
+    @TableField("consultation_fee")
+    private Integer consultationFee;
+
+    @ApiModelProperty(value = "咨询开始时间")
+    @TableField("start_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty(value = "咨询结束时间")
+    @TableField("end_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+    @ApiModelProperty(value = "订单状态, 0:待支付, 2:进行中, 3:已完成, 4:已取消")
+    @TableField("order_status")
+    private Integer orderStatus;
+
+    @ApiModelProperty(value = "支付状态, 0:未支付, 1:已支付")
+    @TableField("payment_status")
+    private Integer paymentStatus;
+
+    @ApiModelProperty(value = "下单时间")
+    @TableField("order_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date orderTime;
+
+    @ApiModelProperty(value = "支付时间")
+    @TableField("payment_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date paymentTime;
+
+    @ApiModelProperty(value = "订单有效期")
+    @TableField("validity_period")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date validityPeriod;
+
+    @ApiModelProperty(value = "用户评分, 1-5星")
+    @TableField("rating")
+    private Integer rating;
+
+    @ApiModelProperty(value = "用户评价内容")
+    @TableField("comment")
+    private String comment;
+
+    @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 = "支付宝订单编号")
+    @TableField("alipay_no")
+    private String alipayNo;
+
+    @ApiModelProperty(value = "支付宝订单字符串")
+    @TableField("order_str")
+    private String orderStr;
+
+    @ApiModelProperty(value = "律所id")
+    @TableField("place_id")
+    private  Integer placeId;
+
+    @ApiModelProperty(value = "律师收益(订单金额-平台佣金)")
+    @TableField("lawyer_earnings")
+    private  Integer lawyerEarnings;
+
+    @ApiModelProperty(value = "律师接单时间")
+    @TableField("accept_orders_time")
+    private  Date acceptOrdersTime;
+
+    @ApiModelProperty(value = "拒绝接单原因")
+    @TableField("reason_order_refusal")
+    private  String reasonOrderRefusal;
+
+    @ApiModelProperty(value = "律师接单状态  0接单  1拒绝接单")
+    @TableField("accept_orders_status")
+    private  Integer acceptOrdersStatus;
+
+    @ApiModelProperty(value = "申请退款状态,0-未申请,1-已申请,2-律师已拒绝,3-律师已同意")
+    @TableField("apply_refund_status")
+    private String applyRefundStatus;
+
+    @ApiModelProperty(value = "申请退款时间")
+    @TableField(value = "apply_refund_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyRefundTime;
+
+    @ApiModelProperty(value = "申请退款处理时间")
+    @TableField(value = "apply_refund_process_time", fill = FieldFill.UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyRefundProcessTime;
+
+    @ApiModelProperty(value = "申请退款原因")
+    @TableField("apply_refund_reason")
+    private String applyRefundReason;
+
+    @ApiModelProperty(value = "拒绝退款原因")
+    @TableField("reject_refund_reason")
+    private String rejectRefundReason;
+
+    @ApiModelProperty(value = "是否已被申诉, 0:未申诉, 1:已申诉, 2:申诉中")
+    @TableField("is_appealed")
+    private Integer isAppealed;
+
+    @ApiModelProperty(value = "退款申请处理动作:1-同意,2-拒绝")
+    @TableField(exist = false)
+    private String processAction;
+
+    @ApiModelProperty(value = "支付方式 1支付宝 2微信")
+    @TableField("pay_type")
+    private  String payType;
+}
+

+ 84 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerConsultationReview.java

@@ -0,0 +1,84 @@
+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 java.util.Date;
+
+/**
+ * 咨询评价
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_consultation_review")
+@ApiModel(value = "LawyerConsultationReview对象", description = "咨询评价")
+public class LawyerConsultationReview extends Model<LawyerConsultationReview> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "咨询订单ID")
+    @TableField("consultation_order_id")
+    private Integer consultationOrderId;
+
+    @ApiModelProperty(value = "评价用户ID")
+    @TableField("client_user_id")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "被评价律师ID")
+    @TableField("lawyer_user_id")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "评分, 1-5星")
+    @TableField("rating")
+    private Integer rating;
+
+    @ApiModelProperty(value = "评价内容")
+    @TableField("comment")
+    private String comment;
+
+    @ApiModelProperty(value = "服务质量评分, 1-5星")
+    @TableField("service_quality")
+    private Integer serviceQuality;
+
+    @ApiModelProperty(value = "响应速度评分, 1-5星")
+    @TableField("response_speed")
+    private Integer responseSpeed;
+
+    @ApiModelProperty(value = "专业水平评分, 1-5星")
+    @TableField("professional_level")
+    private Integer professionalLevel;
+
+    @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;
+}
+

+ 55 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerExpertiseArea.java

@@ -0,0 +1,55 @@
+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 java.util.Date;
+
+/**
+ * 领域信息
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_expertise_area")
+@ApiModel(value = "LawyerExpertiseArea对象", description = "领域信息表")
+public class LawyerExpertiseArea extends Model<LawyerExpertiseArea> {
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "领域名称")
+    @TableField("expertise_area_info")
+    private String expertiseAreaInfo;
+
+    @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.INSERT_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;
+}
+

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

@@ -0,0 +1,76 @@
+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 java.util.Date;
+
+/**
+ * 律师图片
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_img")
+@ApiModel(value = "LawyerImg对象", description = "律师图片")
+public class LawyerImg extends Model<LawyerImg> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "律师用户ID")
+    @TableField("lawyer_id")
+    private Integer lawyerId;
+
+    @ApiModelProperty(value = "图片类型, 0:其他, 1:头像, 2:执业证照片, 3:身份证正面, 4:身份证反面, 5:案例图片, 6:相册图片, 7:资质证书, 8:荣誉证书, 9:工作照片")
+    @TableField("img_type")
+    private Integer imgType;
+
+    @ApiModelProperty(value = "图片描述")
+    @TableField("img_description")
+    private String imgDescription;
+
+    @ApiModelProperty(value = "图片排序")
+    @TableField("img_sort")
+    private Integer imgSort;
+
+    @ApiModelProperty(value = "图片链接")
+    @TableField("img_url")
+    private String imgUrl;
+
+    @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.INSERT_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 = "业务ID")
+    @TableField("business_id")
+    private Integer businessId;
+}
+

+ 90 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerLegalProblemScenario.java

@@ -0,0 +1,90 @@
+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 java.util.Date;
+import java.util.List;
+
+/**
+ * 法律问题场景表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_legal_problem_scenario")
+@ApiModel(value = "LawyerLegalProblemScenario对象", description = "法律问题场景")
+public class LawyerLegalProblemScenario extends Model<LawyerLegalProblemScenario> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "名称")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "问题场景层级")
+    @TableField("level")
+    private Integer level;
+
+    @ApiModelProperty(value = "父类主键")
+    @TableField("parent_id")
+    private Integer parentId;
+
+    @ApiModelProperty(value = "父类名称")
+    @TableField("parent_name")
+    private String parentName;
+
+    @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;
+
+    @ApiModelProperty(value = "图片ID(关联lawyer_img表)")
+    @TableField("img_id")
+    private Integer imgId;
+
+    @ApiModelProperty(value = "子分类列表(用于树形结构)")
+    @TableField(exist = false)
+    private List<LawyerLegalProblemScenario> children;
+
+    @ApiModelProperty(value = "场景图片路径")
+    @TableField("img_url")
+    private String imgUrl;
+
+}
+

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

@@ -0,0 +1,94 @@
+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 java.util.Date;
+
+/**
+ * 支付交易
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_payment_transaction")
+@ApiModel(value = "LawyerPaymentTransaction对象", description = "支付交易")
+public class LawyerPaymentTransaction extends Model<LawyerPaymentTransaction> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "咨询订单ID")
+    @TableField("consultation_order_id")
+    private Integer consultationOrderId;
+
+    @ApiModelProperty(value = "支付用户ID")
+    @TableField("client_user_id")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "交易流水号")
+    @TableField("transaction_number")
+    private String transactionNumber;
+
+    @ApiModelProperty(value = "交易金额,单位分")
+    @TableField("transaction_amount")
+    private Integer transactionAmount;
+
+    @ApiModelProperty(value = "支付方式, 0:微信, 1:支付宝, 2:银行卡")
+    @TableField("payment_method")
+    private Integer paymentMethod;
+
+    @ApiModelProperty(value = "交易状态, 0:待支付, 1:支付成功, 2:支付失败, 3:已退款")
+    @TableField("transaction_status")
+    private Integer transactionStatus;
+
+    @ApiModelProperty(value = "交易时间")
+    @TableField("transaction_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date transactionTime;
+
+    @ApiModelProperty(value = "第三方交易号")
+    @TableField("third_party_trade_no")
+    private String thirdPartyTradeNo;
+
+    @ApiModelProperty(value = "退款金额,单位分")
+    @TableField("refund_amount")
+    private Integer refundAmount;
+
+    @ApiModelProperty(value = "退款时间")
+    @TableField("refund_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date refundTime;
+
+    @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;
+}
+

+ 68 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerServiceArea.java

@@ -0,0 +1,68 @@
+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 java.util.Date;
+
+/**
+ * 律师服务领域关联
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_service_area")
+@ApiModel(value = "LawyerServiceArea对象", description = "律师服务领域关联")
+public class LawyerServiceArea extends Model<LawyerServiceArea> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "律师用户ID")
+    @TableField("lawyer_user_id")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "法律问题场景ID")
+    @TableField("problem_scenario_id")
+    private Integer problemScenarioId;
+
+    @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;
+}
+

+ 341 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerUser.java

@@ -0,0 +1,341 @@
+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 java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 律师用户
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_user")
+@ApiModel(value = "LawyerUser对象", description = "律师用户")
+public class LawyerUser extends Model<LawyerUser> {
+
+    public LawyerUser() {
+    }
+
+    public LawyerUser(Integer id, Integer money) {
+        this.id = id;
+        this.money = money;
+    }
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "律所id")
+    @TableField("firm_id")
+    private Integer firmId;
+
+    @ApiModelProperty(value = "律所明细id")
+    @TableField("firm_payment_id")
+    private Integer firmPaymentId;
+
+    @ApiModelProperty(value = "手机号")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty(value = "姓名")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "身份证")
+    @TableField("id_card")
+    private String idCard;
+
+    @ApiModelProperty(value = "密码")
+    @TableField("password")
+    private String password;
+
+    @ApiModelProperty(value = "支付密码")
+    @TableField("pay_password")
+    private String payPassword;
+
+    @ApiModelProperty(value = "用户余额,单位分")
+    @TableField("money")
+    private Integer money;
+
+    @ApiModelProperty(value = "用户状态, 0:禁用, 1:启用")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "密码状态, 0:初始密码, 1:已修改, 2:手机号已验证")
+    @TableField("pass_type")
+    private Integer passType;
+
+    @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 = "注销标记, 0:未注销, 1:已注销")
+    @TableField("logout_flag")
+    private Integer logoutFlag;
+
+    @ApiModelProperty(value = "注销原因")
+    @TableField("logout_reason")
+    private String logoutReason;
+
+    @ApiModelProperty(value = "注销申请时间")
+    @TableField(value = "logout_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date logoutTime;
+
+    @ApiModelProperty(value = "注销code")
+    @TableField("logout_code")
+    private String logoutCode;
+
+    @ApiModelProperty(value = "昵称")
+    @TableField("nick_name")
+    private String nickName;
+
+    @ApiModelProperty(value = "账号简介")
+    @TableField("account_blurb")
+    private String accountBlurb;
+
+    @ApiModelProperty(value = "头像")
+    @TableField("head_img")
+    private String headImg;
+
+    @ApiModelProperty(value = "支付宝账号")
+    @TableField("alipay_account")
+    private String alipayAccount;
+
+    // ========== 律师特有字段 ==========
+
+    @ApiModelProperty(value = "律师执业证号")
+    @TableField("lawyer_certificate_no")
+    private String lawyerCertificateNo;
+
+    @ApiModelProperty(value = "所属律师事务所")
+    @TableField("law_firm")
+    private String lawFirm;
+
+    @ApiModelProperty(value = "执业年限(根据执业开始日期自动计算)")
+    @TableField(exist = false)
+    private Integer practiceYears;
+
+    @ApiModelProperty(value = "执业开始日期")
+    @TableField("practice_start_date")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date practiceStartDate;
+
+    /**
+     * 获取执业年限(根据执业开始日期自动计算)
+     * 返回当前时间减去执业开始时间的年数
+     *
+     * @return 执业年限(年)
+     */
+    public Integer getPracticeYears() {
+        if (practiceStartDate == null) {
+            return null;
+        }
+        try {
+            // 将 Date 转换为 LocalDate
+            LocalDate startDate = practiceStartDate.toInstant()
+                    .atZone(ZoneId.systemDefault())
+                    .toLocalDate();
+            LocalDate currentDate = LocalDate.now();
+
+            // 计算年数差
+            long years = ChronoUnit.YEARS.between(startDate, currentDate);
+            return (int) Math.max(0, years); // 确保不为负数
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    @ApiModelProperty(value = "专业领域,多个用逗号分隔")
+    @TableField("specialty_fields")
+    private String specialtyFields;
+
+    @ApiModelProperty(value = "资质认证状态, 0:未认证, 1:认证中, 2:已认证, 3:认证失败")
+    @TableField("certification_status")
+    private Integer certificationStatus;
+
+    @ApiModelProperty(value = "认证失败原因")
+    @TableField("certification_fail_reason")
+    private String certificationFailReason;
+
+    @ApiModelProperty(value = "认证时间")
+    @TableField("certification_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date certificationTime;
+
+    @ApiModelProperty(value = "认证审核人ID")
+    @TableField("certification_reviewer_id")
+    private Integer certificationReviewerId;
+
+    @ApiModelProperty(value = "执业证照片")
+    @TableField("certificate_image")
+    private String certificateImage;
+
+    @ApiModelProperty(value = "身份证正面照片")
+    @TableField("id_card_front_image")
+    private String idCardFrontImage;
+
+    @ApiModelProperty(value = "身份证反面照片")
+    @TableField("id_card_back_image")
+    private String idCardBackImage;
+
+    @ApiModelProperty(value = "服务评分, 0-5分(保留一位小数)")
+    @TableField("service_score")
+    private Double serviceScore;
+
+    @ApiModelProperty(value = "服务次数")
+    @TableField("service_count")
+    private Integer serviceCount;
+
+    @ApiModelProperty(value = "好评数")
+    @TableField("good_review_count")
+    private Integer goodReviewCount;
+
+    @ApiModelProperty(value = "中评数")
+    @TableField("medium_review_count")
+    private Integer mediumReviewCount;
+
+    @ApiModelProperty(value = "差评数")
+    @TableField("bad_review_count")
+    private Integer badReviewCount;
+
+    @ApiModelProperty(value = "咨询收费标准(单位分/小时)")
+    @TableField("consultation_fee")
+    private Integer consultationFee;
+
+    @ApiModelProperty(value = "代理收费标准(单位分)")
+    @TableField("agency_fee")
+    private Integer agencyFee;
+
+    @ApiModelProperty(value = "所属省份")
+    @TableField("province")
+    private String province;
+
+    @ApiModelProperty(value = "所属城市")
+    @TableField("city")
+    private String city;
+
+    @ApiModelProperty(value = "所属区县")
+    @TableField("district")
+    private String district;
+
+    @ApiModelProperty(value = "详细地址")
+    @TableField("address")
+    private String address;
+
+    @ApiModelProperty(value = "邮箱")
+    @TableField("email")
+    private String email;
+
+    @ApiModelProperty(value = "性别, 0:未知, 1:男, 2:女")
+    @TableField("gender")
+    private Integer gender;
+
+    @ApiModelProperty(value = "生日")
+    @TableField("birthday")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+
+    @ApiModelProperty(value = "个人简介(详细)")
+    @TableField("personal_introduction")
+    private String personalIntroduction;
+
+    @ApiModelProperty(value = "教育背景")
+    @TableField("education_background")
+    private String educationBackground;
+
+    @ApiModelProperty(value = "工作经历")
+    @TableField("work_experience")
+    private String workExperience;
+
+    @ApiModelProperty(value = "擅长案件类型")
+    @TableField("expertise_cases")
+    private String expertiseCases;
+
+    @ApiModelProperty(value = "是否在线, 0:离线, 1:在线")
+    @TableField("is_online")
+    private Integer isOnline;
+
+    @ApiModelProperty(value = "最后在线时间")
+    @TableField("last_online_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date lastOnlineTime;
+
+    @ApiModelProperty(value = "是否推荐, 0:不推荐, 1:推荐")
+    @TableField("is_recommended")
+    private Integer isRecommended;
+
+    @ApiModelProperty(value = "推荐排序")
+    @TableField("recommend_sort")
+    private Integer recommendSort;
+
+    @ApiModelProperty(value = "接单状态, 0:不接单, 1:接单中")
+    @TableField("order_receiving_status")
+    private Integer orderReceivingStatus;
+
+    @ApiModelProperty(value = "领域ID")
+    @TableField("lawyer_expertise_area_id")
+    private Integer lawyerExpertiseAreaId;
+
+    @ApiModelProperty(value = "法律问题场景")
+    @TableField(exist = false)
+    private List<LawyerLegalProblemScenario> lawyerLegalProblemScenarioList;
+
+    @ApiModelProperty(value = "佣金比例")
+    @TableField("commission_rate")
+    private Integer commissionRate;
+
+    @ApiModelProperty(value = "律师事务所收款账号")
+    @TableField("payment_num")
+    private String paymentNum;
+
+    @TableField(exist = false)
+    private String userName;
+
+    @TableField(exist = false)
+    private String userImage;
+
+    @TableField(exist = false)
+    private String jianjie;
+
+    @TableField(exist = false)
+    private String moneyStr;
+
+    @ApiModelProperty(value = "评价数(只统计评价,不包含评论)")
+    @TableField(exist = false)
+    private Integer reviewCount;
+
+}
+

+ 56 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerUserSearchHistory.java

@@ -0,0 +1,56 @@
+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 java.util.Date;
+
+/**
+ * 用户搜索历史
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_user_search_history")
+@ApiModel(value = "LawyerUserSearchHistory对象", description = "用户搜索历史")
+public class LawyerUserSearchHistory extends Model<LawyerUserSearchHistory> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "用户ID")
+    @TableField("client_user_id")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "搜索关键词")
+    @TableField("search_keyword")
+    private String searchKeyword;
+
+    @ApiModelProperty(value = "搜索类型, 0:律师姓名, 1:法律问题, 2:律所名称")
+    @TableField("search_type")
+    private Integer searchType;
+
+    @ApiModelProperty(value = "搜索时间")
+    @TableField("search_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date searchTime;
+
+    @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;
+}
+

+ 126 - 0
alien-entity/src/main/java/shop/alien/entity/store/LawyerUserViolation.java

@@ -0,0 +1,126 @@
+package shop.alien.entity.store;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+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;
+
+/**
+ * <p>
+ * 律师用户举报
+ * </p>
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("lawyer_user_violation")
+@ApiModel(value="LawyerUserViolation对象", description="律师用户举报")
+public class LawyerUserViolation extends Model<LawyerUserViolation> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "被举报用户类型")
+    @TableField("reported_user_type")
+    private String reportedUserType;
+
+    @ApiModelProperty(value = "被举报用户ID")
+    @TableField("reported_user_id")
+    private String reportedUserId;
+
+    @ApiModelProperty(value = "举报用户类型")
+    @TableField("reporting_user_type")
+    private String reportingUserType;
+
+    @ApiModelProperty(value = "举报用户ID")
+    @TableField("reporting_user_id")
+    private String reportingUserId;
+
+    @ApiModelProperty(value = "举报内容分类")
+    @TableField("report_context_type")
+    private String reportContextType;
+
+    @ApiModelProperty(value = "举报原因")
+    @TableField("violation_reason")
+    private String violationReason;
+
+    @ApiModelProperty(value = "其他原因具体内容")
+    @TableField("other_reason_content")
+    private String otherReasonContent;
+
+    @ApiModelProperty(value = "举报凭证图片")
+    @TableField("report_evidence_img")
+    private String reportEvidenceImg;
+
+    @ApiModelProperty(value = "处理状态(0:未处理,1:违规,2:未违规)")
+    @TableField("processing_status")
+    private String processingStatus;
+
+    @ApiModelProperty(value = "处理时间")
+    @TableField(value = "processing_time", fill = FieldFill.INSERT)
+    private Date processingTime;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "created_time", fill = FieldFill.INSERT)
+    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)
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    @TableField(value = "updated_user_id", fill = FieldFill.INSERT_UPDATE)
+    private Integer updatedUserId;
+
+    @ApiModelProperty(value = "订单号")
+    @TableField(value = "order_number")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "举报结果")
+    @TableField(value = "report_result")
+    private String reportResult;
+
+    @ApiModelProperty(value = "举报类型")
+    @TableField(value = "dict_type")
+    private String dictType;
+
+    @ApiModelProperty(value = "举报类型ID")
+    @TableField(value = "dict_id")
+    private Integer dictId;
+
+    @ApiModelProperty(value = "视频第一帧")
+    @TableField(value = "video_first_frame")
+    private String videoFirstFrame;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
+

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

@@ -56,17 +56,20 @@ public class LifeCoupon {
     private Integer expirationDate;
 
     @ApiModelProperty(value = "开始日期")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8" )
+    @TableField(value = "start_date", fill = FieldFill.UPDATE)
     private Date startDate;
 
     @ApiModelProperty(value = "结束日期")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(value = "end_date", fill = FieldFill.UPDATE)
     private Date endDate;
 
     @ApiModelProperty(value = "不可用时间")
     private String unusedDate;
 
     @ApiModelProperty(value = "优惠券数量")
+    @TableField(value = "single_qty", fill = FieldFill.UPDATE)
     private Integer singleQty;
 
     @ApiModelProperty(value = "限制购买数")

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

@@ -42,7 +42,7 @@ public class LifeDiscountCoupon extends Model<LifeDiscountCoupon> {
     private String name;
 
     @ApiModelProperty(value = "面值")
-    @TableField("nominal_value")
+    @TableField(value = "nominal_value", fill = FieldFill.UPDATE)
     private BigDecimal nominalValue;
 
     @ApiModelProperty(value = "有效期(天)")
@@ -58,7 +58,7 @@ public class LifeDiscountCoupon extends Model<LifeDiscountCoupon> {
     private LocalDate endDate;
 
     @ApiModelProperty(value = "库存(优惠券数量)")
-    @TableField("single_qty")
+    @TableField(value = "single_qty", fill = FieldFill.UPDATE)
     private Integer singleQty;
 
     @ApiModelProperty(value = "补充说明")
@@ -74,7 +74,7 @@ public class LifeDiscountCoupon extends Model<LifeDiscountCoupon> {
     private Integer restrictedQuantity;
 
     @ApiModelProperty(value = "最低消费")
-    @TableField("minimum_spending_amount")
+    @TableField(value = "minimum_spending_amount", fill = FieldFill.UPDATE)
     private BigDecimal minimumSpendingAmount;
 
     @ApiModelProperty(value = "类型   1-优惠券  2-红包 3-平台优惠券")

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

@@ -34,7 +34,7 @@ public class LifeMessage {
     @ApiModelProperty(value = "发送内容")
     private String content;
 
-    @ApiModelProperty(value = "消息类型  1-文本  2-图片 3-链接  4-二手交易创建/确认/拒绝/取消  5-二手交易签到提醒  6-二手交易已签到")
+    @ApiModelProperty(value = "消息类型  1-文本  2-图片 3-链接  4-二手交易创建/确认/拒绝/取消  5-二手交易签到提醒  6-二手交易已签到  7-消息内容不合规  8-律师消息  9-二手交易修改交易请求  10-二手交易提醒进入实时定位  11-二手交易委托  12-二手交易是否与交易有关的言论温馨提示")
     private String type;
 
     private Date currentTime;

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

@@ -16,13 +16,17 @@ import java.util.Date;
 @TableName("life_sys")
 public class LifeSys {
 
+    @ApiModelProperty(value = "主键")
     @TableId(value = "id", type = IdType.AUTO)
-    private String id;
+    private Integer id;
 
+    @ApiModelProperty(value = "用户名")
     private String userName;
 
+    @ApiModelProperty(value = "密码")
     private String userPassword;
 
+    @ApiModelProperty(value = "角色id")
     private String roleId;
 
     @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
@@ -47,4 +51,12 @@ public class LifeSys {
     @ApiModelProperty(value = "修改人ID")
     @TableField("updated_user_id")
     private Integer updatedUserId;
+
+    @ApiModelProperty(value = "启用1 禁用 0")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
 }

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

@@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -112,4 +113,32 @@ public class LifeUserDynamics {
     @ApiModelProperty(value = "启用状态0-启用,1-禁用")
     @TableField("enable_status")
     private Integer enableStatus;
+
+    @ApiModelProperty(value = "达人id")
+    @TableField("expert_id")
+    private Integer expertId;
+
+    @ApiModelProperty(value = "业务id")
+    @TableField("business_id")
+    private Integer businessId;
+
+    @ApiModelProperty(value = "转发量")
+    @TableField("transfer_count")
+    private Integer transferCount;
+
+    @ApiModelProperty(value = "达人动态实际浏览数")
+    @TableField("reality_count")
+    private Integer realityCount;
+
+    @ApiModelProperty(value = "是否审核(未审核:0,审核中:1,审核完成:2)")
+    @TableField("check_flag")
+    private Integer checkFlag;
+
+    @ApiModelProperty(value = "AI审核结果查询id")
+    @TableField("ai_task_id")
+    private String aiTaskId;
+
+    @ApiModelProperty(value = "审核失败原因")
+    @TableField("reason")
+    private String reason;
 }

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

@@ -131,6 +131,10 @@ public class LifeUserViolation extends Model<LifeUserViolation> {
     @TableField(value = "goods_id")
     private Integer goodsId;
 
+    @ApiModelProperty(value = "商品ID")
+    @TableField(value = "ai_task_id")
+    private String aiTaskId;
+
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 65 - 0
alien-entity/src/main/java/shop/alien/entity/store/OcrImageUpload.java

@@ -0,0 +1,65 @@
+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;
+
+/**
+ * OCR图片上传记录表
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("ocr_image_uploads")
+@ApiModel(value = "OcrImageUpload对象", description = "OCR图片上传记录表")
+public class OcrImageUpload implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "用户ID(上传图片的用户唯一标识)")
+    @TableField("user_id")
+    private String userId;
+
+    @ApiModelProperty(value = "店铺ID(若图片关联具体店铺,可为NULL表示无店铺关联)")
+    @TableField("store_id")
+    private String storeId;
+
+    @ApiModelProperty(value = "店铺用户ID(店铺内上传图片的操作员ID,与store_id配套使用)")
+    @TableField("store_user_id")
+    private String storeUserId;
+
+    @ApiModelProperty(value = "图片存储路径(本地路径或云存储URL,如OSS / S3地址)")
+    @TableField("image_url")
+    private String imageUrl;
+
+    @ApiModelProperty(value = "OCR识别结果(JSON格式或纯文本,存储识别后的文字内容)")
+    @TableField("ocr_result")
+    private String ocrResult;
+
+    @ApiModelProperty(value = "OCR识别类型")
+    @TableField("ocr_type")
+    private String ocrType;
+
+    @ApiModelProperty(value = "图片上传时间")
+    @TableField(value = "create_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "记录更新时间(如OCR状态变更时间)")
+    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}
+

+ 104 - 0
alien-entity/src/main/java/shop/alien/entity/store/OrderReview.java

@@ -0,0 +1,104 @@
+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("lawyer_order_review")
+@ApiModel(value = "OrderReview对象", description = "订单评价")
+public class OrderReview {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "订单ID")
+    @TableField("order_id")
+    private Integer orderId;
+
+    @ApiModelProperty(value = "订单编号")
+    @TableField("order_number")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "评价用户ID(订单用户)")
+    @TableField("user_id")
+    private Integer userId;
+
+    @ApiModelProperty(value = "律师用户ID")
+    @TableField("lawyer_user_id")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "总体评分(1-5星,支持0.5星)")
+    @TableField("overall_rating")
+    private Double overallRating;
+
+    @ApiModelProperty(value = "服务态度评分(1-5星,支持0.5星)")
+    @TableField("service_attitude_rating")
+    private Double serviceAttitudeRating;
+
+    @ApiModelProperty(value = "响应时间评分(1-5星,支持0.5星)")
+    @TableField("response_time_rating")
+    private Double responseTimeRating;
+
+    @ApiModelProperty(value = "专业能力评分(1-5星,支持0.5星)")
+    @TableField("professional_ability_rating")
+    private Double professionalAbilityRating;
+
+    @ApiModelProperty(value = "评价内容")
+    @TableField("review_content")
+    private String reviewContent;
+
+    @ApiModelProperty(value = "评价图片(JSON数组格式存储图片URL)")
+    @TableField("review_images")
+    private String reviewImages;
+
+    @ApiModelProperty(value = "是否匿名评价,0:否,1:是")
+    @TableField("is_anonymous")
+    private Integer isAnonymous;
+
+    @ApiModelProperty(value = "点赞数")
+    @TableField("like_count")
+    private Integer likeCount;
+
+    @ApiModelProperty(value = "评论数")
+    @TableField("comment_count")
+    private Integer commentCount;
+
+    @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;
+}
+

+ 154 - 0
alien-entity/src/main/java/shop/alien/entity/store/RefundRecord.java

@@ -0,0 +1,154 @@
+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;
+
+/**
+ * <p>
+ * 退款记录表
+ * </p>
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@JsonInclude
+@ApiModel(value = "RefundRecord对象", description = "退款记录表")
+@TableName("refund_record")
+public class RefundRecord extends Model<RefundRecord> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "用户ID")
+    @TableField("user_id")
+    private Integer userId;
+
+    @ApiModelProperty(value = "商户订单号:商户系统生成的原交易订单唯一标识")
+    @TableField("out_trade_no")
+    private String outTradeNo;
+
+    @ApiModelProperty(value = "第三方支付订单号:微信支付订单号或支付宝交易号")
+    @TableField("transaction_id")
+    private String transactionId;
+
+    @ApiModelProperty(value = "商户退款单号:商户系统生成的退款单号")
+    @TableField("out_refund_no")
+    private String outRefundNo;
+
+    @ApiModelProperty(value = "第三方退款单号:微信退款单号或支付宝退款单号")
+    @TableField("refund_id")
+    private String refundId;
+
+    @ApiModelProperty(value = "支付类型:WECHAT_PAY-微信支付, ALIPAY-支付宝")
+    @TableField("pay_type")
+    private String payType;
+
+    @ApiModelProperty(value = "退款状态:SUCCESS-退款成功, CLOSED-退款关闭, PROCESSING-退款处理中, ABNORMAL-退款异常")
+    @TableField("refund_status")
+    private String refundStatus;
+
+    @ApiModelProperty(value = "订单总金额:单位分")
+    @TableField("total_amount")
+    private Long totalAmount;
+
+    @ApiModelProperty(value = "退款金额:单位分")
+    @TableField("refund_amount")
+    private Long refundAmount;
+
+    @ApiModelProperty(value = "实际退款金额:单位分,最终成功退回给用户的金额")
+    @TableField("actual_refund_amount")
+    private Long actualRefundAmount;
+
+    @ApiModelProperty(value = "退款币种:默认CNY")
+    @TableField("currency")
+    private String currency;
+
+    @ApiModelProperty(value = "退款原因")
+    @TableField("refund_reason")
+    private String refundReason;
+
+    @ApiModelProperty(value = "退款渠道:ORIGINAL-原路退回, BALANCE-退回余额, OTHER_BALANCE-其他余额, OTHER_BANKCARD-其他银行卡")
+    @TableField("refund_channel")
+    private String refundChannel;
+
+    @ApiModelProperty(value = "退款资金来源:AVAILABLE-可用余额, UNSETTLED-未结算资金")
+    @TableField("funds_account")
+    private String fundsAccount;
+
+    @ApiModelProperty(value = "退款创建时间:退款请求创建时间")
+    @TableField("refund_create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date refundCreateTime;
+
+    @ApiModelProperty(value = "退款成功时间:退款成功完成时间")
+    @TableField("refund_success_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date refundSuccessTime;
+
+    @ApiModelProperty(value = "用户收到退款账户:退款到账的账户信息")
+    @TableField("user_received_account")
+    private String userReceivedAccount;
+
+    @ApiModelProperty(value = "退款详情:退款渠道明细列表(JSON格式)")
+    @TableField("refund_detail")
+    private String refundDetail;
+
+    @ApiModelProperty(value = "错误码:退款失败时的错误码")
+    @TableField("error_code")
+    private String errorCode;
+
+    @ApiModelProperty(value = "错误信息:退款失败时的错误描述")
+    @TableField("error_msg")
+    private String errorMsg;
+
+    @ApiModelProperty(value = "响应数据:第三方支付平台返回的完整响应数据(JSON格式)")
+    @TableField("response_data")
+    private String responseData;
+
+    @ApiModelProperty(value = "业务订单ID:关联的业务订单ID")
+    @TableField("order_id")
+    private String orderId;
+
+    @ApiModelProperty(value = "店铺ID")
+    @TableField("store_id")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
+
+    @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.INSERT_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;
+}
+

+ 88 - 0
alien-entity/src/main/java/shop/alien/entity/store/ReviewComment.java

@@ -0,0 +1,88 @@
+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("lawyer_review_comment")
+@ApiModel(value = "ReviewComment对象", description = "评价评论")
+public class ReviewComment {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "评价ID")
+    @TableField("review_id")
+    private Integer reviewId;
+
+    @ApiModelProperty(value = "评论用户ID")
+    @TableField("send_user_id")
+    private Integer sendUserId;
+
+    @ApiModelProperty(value = "接收用户ID")
+    @TableField("receive_user_id")
+    private Integer receiveUserId;
+
+    @ApiModelProperty(value = "评论内容")
+    @TableField("comment_content")
+    private String commentContent;
+
+    @ApiModelProperty(value = "点赞数")
+    @TableField("like_count")
+    private Integer likeCount;
+
+    @ApiModelProperty(value = "回复数")
+    @TableField("reply_count")
+    private Integer replyCount;
+
+    @ApiModelProperty(value = "首评标记, 0:是, 1:否")
+    @TableField("head_type")
+    private Integer headType;
+
+    @ApiModelProperty(value = "首评ID(仅子评论存在该属性)")
+    @TableField("head_id")
+    private Integer headId;
+
+    @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.INSERT_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 = "登陆人")
+    @TableField(exist = false)
+    private Integer userId;
+}
+

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

@@ -0,0 +1,66 @@
+package shop.alien.entity.store;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * second_ai_task 表实体
+ */
+@Data
+@TableName("second_ai_task")
+@ApiModel(value = "SecondAiTask", description = "AI视频审核任务表")
+public class SecondAiTask implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("数据ID")
+    @TableField("data_id")
+    private String dataId;
+
+    @ApiModelProperty("视频URL")
+    @TableField("video_url")
+    private String videoUrl;
+
+    @ApiModelProperty("任务ID")
+    @TableField("task_id")
+    private String taskId;
+
+    @ApiModelProperty("任务状态 SUBMITTED/PROCESSING/...")
+    @TableField("status")
+    private String status;
+
+    @ApiModelProperty("风险级别 none/low/medium/high")
+    @TableField("risk_level")
+    private String riskLevel;
+
+    @ApiModelProperty("审核结果(JSON)")
+    @TableField("result")
+    private String result;
+
+    @ApiModelProperty("重试次数")
+    @TableField("retry_count")
+    private Integer retryCount;
+
+    @ApiModelProperty("创建时间")
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty("更新时间")
+    @TableField("update_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}

+ 117 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreAliPayRefundLog.java

@@ -0,0 +1,117 @@
+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;
+
+/**
+ * <p>
+ * 支付宝退款记录表
+ * </p>
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@JsonInclude
+@ApiModel(value = "StoreAliPayRefundLog对象", description = "支付宝退款记录表")
+@TableName("store_ali_pay_refund_log")
+public class StoreAliPayRefundLog extends Model<StoreAliPayRefundLog> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "响应状态码:10000表示接口调用成功")
+    @TableField("response_code")
+    private String responseCode;
+
+    @ApiModelProperty(value = "响应状态描述")
+    @TableField("response_msg")
+    private String responseMsg;
+
+    @ApiModelProperty(value = "买家支付宝账号(邮箱形式,中间字符脱敏处理)")
+    @TableField("buyer_logon_id")
+    private String buyerLogonId;
+
+    @ApiModelProperty(value = "资金变动标识:Y表示用户账户发生实际资金变动,N表示用户账户未发生实际资金变动")
+    @TableField("fund_change")
+    private String fundChange;
+
+    @ApiModelProperty(value = "退款受理时间:支付宝系统处理该退款请求的时间")
+    @TableField("gmt_refund_pay")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date gmtRefundPay;
+
+    @ApiModelProperty(value = "商户订单号:商户系统生成的原交易订单唯一标识")
+    @TableField("out_trade_no")
+    private String outTradeNo;
+
+    @ApiModelProperty(value = "退款渠道明细列表:记录本次退款涉及的资金渠道及对应金额(JSON格式)")
+    @TableField("refund_detail_item_list")
+    private String refundDetailItemList;
+
+    @ApiModelProperty(value = "申请退款金额:商户发起的退款请求金额(单位:元)")
+    @TableField("refund_fee")
+    private String refundFee;
+
+    @ApiModelProperty(value = "实际退回金额:最终成功退回给买家的金额(单位:元)")
+    @TableField("send_back_fee")
+    private String sendBackFee;
+
+    @ApiModelProperty(value = "支付宝交易号:支付宝系统生成的原交易唯一标识")
+    @TableField("trade_no")
+    private String tradeNo;
+
+    @ApiModelProperty(value = "买家开放ID:支付宝为买家分配的唯一标识")
+    @TableField("buyer_open_id")
+    private String buyerOpenId;
+
+    @ApiModelProperty(value = "支付宝证书序列号:用于验证响应数据来源的真实性")
+    @TableField("alipay_cert_sn")
+    private String alipayCertSn;
+
+    @ApiModelProperty(value = "响应签名:支付宝对响应数据的加密签名")
+    @TableField("sign")
+    private String sign;
+
+    @ApiModelProperty(value = "退款原因:商户发起的退款原因")
+    @TableField("refund_reason")
+    private String refundReason;
+
+    @ApiModelProperty(value = "部分退款编号:标识一次退款请求,部分退款时必传")
+    @TableField("out_request_no")
+    private String outRequestNo;
+
+    @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.INSERT_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;
+}
+

+ 12 - 0
alien-entity/src/main/java/shop/alien/entity/store/StoreClockIn.java

@@ -83,6 +83,18 @@ public class StoreClockIn extends Model<StoreClockIn> {
     @TableField(value = "updated_user_id", fill = FieldFill.INSERT_UPDATE)
     private Integer updatedUserId;
 
+    @ApiModelProperty(value = "是否审核(未审核:0,审核中:1,审核完成:2)")
+    @TableField("check_flag")
+    private Integer checkFlag;
+
+    @ApiModelProperty(value = "AI审核结果查询id")
+    @TableField("ai_task_id")
+    private String aiTaskId;
+
+    @ApiModelProperty(value = "审核失败原因")
+    @TableField("reason")
+    private String reason;
+
 
     @Override
     protected Serializable pkVal() {

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

@@ -20,6 +20,7 @@ import java.util.Date;
 @Data
 @JsonInclude
 @EqualsAndHashCode(callSuper = false)
+@TableName("store_comment")
 @ApiModel(value = "StoreComment对象", description = "评论表")
 public class StoreComment extends Model<StoreComment> {
 

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

@@ -74,4 +74,11 @@ public class StoreCommentAppeal extends Model<StoreCommentAppeal> {
     @TableField("updated_user_id")
     private Integer updatedUserId;
 
+    @ApiModelProperty(value = "AI接口返回的ID")
+    @TableField("record_id")
+    private Integer recordId;
+
+    @ApiModelProperty(value = "申诉ai审批过程")
+    @TableField("appeal_ai_approval")
+    private String appealAiApproval;
 }

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

@@ -80,6 +80,15 @@ public class StoreDictionary extends Model<StoreDictionary> {
     @TableField(exist = false)
     private List<StoreDictionary> storeDictionaryList;
 
+    @ApiModelProperty(value = "是否隐藏, 0:不隐藏, 1:隐藏")
+    @TableField("hidden")
+    private Integer hidden;
+
+    @ApiModelProperty(value = "排序ID")
+    @TableField("sort_id")
+    private Integer sortId;
+
+
     @Override
     protected Serializable pkVal() {
         return this.id;

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

@@ -234,4 +234,34 @@ public class StoreInfo {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @TableField("update_renew_contract_time")
     private Date  updateRenewContractTime;
+
+    @ApiModelProperty(value = "分类id(词典表 键为 business_classify)")
+    @TableField("business_classify")
+    private String businessClassify;
+
+    @ApiModelProperty(value = "分类名称")
+    @TableField("business_classify_name")
+    private String businessClassifyName;
+
+    @ApiModelProperty(value = "是否提供餐食 0 否 1 是")
+    @TableField("meal_provided")
+    private Integer mealProvided;
+
+    @ApiModelProperty(value = "娱乐经营许可证状态 字典 foodLicenceStatus")
+    @TableField("entertainment_licence_status")
+    private Integer entertainmentLicenceStatus;
+
+    @ApiModelProperty(value = "娱乐经营许可证失败原因")
+    @TableField("entertainment_licence_reason")
+    private String entertainmentLicenceReason;
+
+    @ApiModelProperty(value = "娱乐经营许可证到期时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField("entertainment_licence_expiration_time")
+    private Date entertainmentLicenceExpirationTime;
+
+    @ApiModelProperty(value = "变更娱乐经营许可证提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField("update_entertainment_licence_time")
+    private Date updateEntertainmentLicenceTime;
 }

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

@@ -0,0 +1,73 @@
+package shop.alien.entity.store;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 短信验证码记录
+ */
+@Data
+@TableName("store_verification_code")
+public class StoreVerificationCode extends Model<StoreVerificationCode> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("业务类型 (0:登录,1:修改密码,2:注册,3:修改手机号,4:注销店铺,5:注销账号,6:忘记密码)")
+    @TableField("business_type")
+    private Integer businessType;
+
+    @ApiModelProperty("手机号")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty("端区分(0:用户,1:商家,2:律师端)")
+    @TableField("app_type")
+    private Integer appType;
+
+    @ApiModelProperty("验证码")
+    @TableField("code")
+    private String code;
+
+    @ApiModelProperty("创建时间")
+    @TableField("created_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    @ApiModelProperty("更新时间")
+    @TableField("updated_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty("创建人ID")
+    @TableField("created_user_id")
+    private Integer createdUserId;
+
+    @ApiModelProperty("更新人ID")
+    @TableField("updated_user_id")
+    private Integer updatedUserId;
+
+    @ApiModelProperty("删除标志(0:正常,1:删除)")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+}
+

+ 75 - 0
alien-entity/src/main/java/shop/alien/entity/store/UserActionRewardRule.java

@@ -0,0 +1,75 @@
+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("user_action_reward_rule")
+@ApiModel(value = "UserActionRewardRule", description = "用户行为奖励规则配置表")
+public class UserActionRewardRule {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "角色(如:当用户)")
+    @TableField("role")
+    private String role;
+
+    @ApiModelProperty(value = "行为(如:核销并评论、核销、打卡)")
+    @TableField("action")
+    private String action;
+
+    @ApiModelProperty(value = "奖励(如:优惠券、红包)")
+    @TableField("reward")
+    private String reward;
+
+    @ApiModelProperty(value = "状态:0-禁用,1-启用")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "排序")
+    @TableField("sort_order")
+    private Integer sortOrder;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
+
+    @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.INSERT_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 = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    @TableLogic
+    private Integer deleteFlag;
+}
+

+ 21 - 0
alien-entity/src/main/java/shop/alien/entity/store/WorkdayRangeInfo.java

@@ -0,0 +1,21 @@
+package shop.alien.entity.store;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+
+/**
+ * 时间信息实体
+ *
+ * @author zhangchen
+ * @since 2025-11-23
+ */
+@Data
+@JsonInclude
+public class WorkdayRangeInfo {
+    public WorkdayRangeInfo(String startTime, String endTime){
+        this.startTime = startTime;
+        this.endTime = endTime;
+    }
+    private String startTime;
+    private String endTime;
+}

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

@@ -0,0 +1,30 @@
+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;
+
+/**
+ * 审核申诉请求对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "AuditAppealRequestDto对象", description = "审核申诉请求")
+public class AuditAppealRequestDto implements Serializable {
+
+    @ApiModelProperty(value = "申诉ID", required = true)
+    private Integer id;
+
+    @ApiModelProperty(value = "审核状态:1-已通过,2-已驳回", required = true)
+    private Integer status;
+
+    @ApiModelProperty(value = "审核原因")
+    private String reviewReasons;
+}
+

+ 134 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerConsultationOrderDto.java

@@ -0,0 +1,134 @@
+package shop.alien.entity.store.dto;
+
+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 java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 咨询订单
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@TableName("lawyer_consultation_order")
+@ApiModel(value = "LawyerConsultationOrder对象", description = "咨询订单")
+public class LawyerConsultationOrderDto extends Model<LawyerConsultationOrderDto> {
+
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "客户端用户ID")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "律师用户ID")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "法律问题场景ID")
+    private String problemScenarioId;
+
+    @ApiModelProperty(value = "问题描述")
+    private String problemDescription;
+
+    @ApiModelProperty(value = "订单金额,单位分")
+    private Integer orderAmount;
+
+    @ApiModelProperty(value = "咨询费用,单位分")
+    private Integer consultationFee;
+
+    @ApiModelProperty(value = "咨询开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty(value = "咨询结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+    @ApiModelProperty(value = "订单状态, 0:待支付, 1:已支付, 2:进行中, 3:已完成, 4:已取消")
+    private Integer orderStatus;
+
+    @ApiModelProperty(value = "支付状态, 0:未支付, 1:已支付")
+    private Integer paymentStatus;
+
+    @ApiModelProperty(value = "下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date orderTime;
+
+    @ApiModelProperty(value = "支付时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date paymentTime;
+
+    @ApiModelProperty(value = "订单有效期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date validityPeriod;
+
+    @ApiModelProperty(value = "用户评分, 1-5星")
+    private Integer rating;
+
+    @ApiModelProperty(value = "用户评价内容")
+    private String comment;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableLogic
+    private Integer deleteFlag;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    @ApiModelProperty(value = "创建人ID")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    private Integer updatedUserId;
+
+    @ApiModelProperty(value = "支付宝订单编号")
+    @TableField("alipay_no")
+    private String alipayNo;
+
+    @ApiModelProperty(value = "支付宝订单字符串")
+    @TableField("order_str")
+    private String orderStr;
+
+    @ApiModelProperty(value = "律所id")
+    @TableField("place_id")
+    private  Integer placeId;
+
+    @ApiModelProperty(value = "律师收益(订单金额-平台佣金)")
+    @TableField("lawyer_earnings")
+    private  Integer lawyerEarnings;
+
+    @ApiModelProperty(value = "律师接单时间")
+    @TableField("accept_orders_time")
+    private  Date acceptOrdersTime;
+
+    @ApiModelProperty(value = "拒绝接单原因")
+    @TableField("reason_order_refusal")
+    private  String reasonOrderRefusal;
+
+    @ApiModelProperty(value = "律师接单状态  0接单  1拒绝接单")
+    @TableField("accept_orders_status")
+    private  Integer acceptOrdersStatus;
+
+
+    @ApiModelProperty(value = "支付方式 1支付宝 2微信")
+    @TableField("pay_type")
+    private  String payType;
+
+}
+

+ 27 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerLegalProblemScenarioStatusDto.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 java.io.Serializable;
+
+/**
+ * 设置法律场景启用/禁用状态请求对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "LawyerLegalProblemScenarioStatusDto对象", description = "设置法律场景启用/禁用状态请求对象")
+public class LawyerLegalProblemScenarioStatusDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "场景ID", required = true)
+    private Integer id;
+
+    @ApiModelProperty(value = "状态,0:禁用,1:启用", required = true)
+    private Integer status;
+}
+

+ 27 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerRecommendedDto.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 java.io.Serializable;
+
+/**
+ * 设置律师推荐状态请求对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "LawyerRecommendedDto对象", description = "设置律师推荐状态请求对象")
+public class LawyerRecommendedDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "律师ID", required = true)
+    private Integer lawyerId;
+
+    @ApiModelProperty(value = "推荐状态,0:取消推荐,1:推荐", required = true)
+    private Integer isRecommended;
+}
+

+ 144 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerUserDto.java

@@ -0,0 +1,144 @@
+package shop.alien.entity.store.dto;
+
+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 shop.alien.entity.store.LawyerLegalProblemScenario;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 律师用户视图对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+public class LawyerUserDto implements Serializable {
+
+
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "律所id")
+    @TableField("firm_id")
+    private Integer firmId;
+
+    @ApiModelProperty(value = "律所id")
+    private Integer firmPaymentId;
+
+    @ApiModelProperty(value = "手机号")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty(value = "密码")
+    private String password;
+
+    @ApiModelProperty(value = "是否密码登录")
+    private Boolean isPassword;
+
+    @ApiModelProperty(value = "姓名")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "身份证")
+    @TableField("id_card")
+    private String idCard;
+
+    @ApiModelProperty(value = "用户状态, 0:禁用, 1:启用")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "昵称")
+    @TableField("nick_name")
+    private String nickName;
+
+    @ApiModelProperty(value = "头像")
+    @TableField("head_img")
+    private String headImg;
+
+    @ApiModelProperty(value = "律师执业证号")
+    @TableField("lawyer_certificate_no")
+    private String lawyerCertificateNo;
+
+    @ApiModelProperty(value = "所属律师事务所")
+    @TableField("law_firm")
+    private String lawFirm;
+
+    @ApiModelProperty(value = "执业年限")
+    @TableField("practice_years")
+    private Integer practiceYears;
+
+    @ApiModelProperty(value = "执业开始日期")
+    @TableField("practice_start_date")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date practiceStartDate;
+
+    @ApiModelProperty(value = "专业领域,多个用逗号分隔")
+    @TableField("specialty_fields")
+    private String specialtyFields;
+
+    @ApiModelProperty(value = "执业证照片")
+    @TableField("certificate_image")
+    private String certificateImage;
+
+    @ApiModelProperty(value = "所属省份")
+    @TableField("province")
+    private String province;
+
+    @ApiModelProperty(value = "所属城市")
+    @TableField("city")
+    private String city;
+
+    @ApiModelProperty(value = "所属区县")
+    @TableField("district")
+    private String district;
+
+    @ApiModelProperty(value = "详细地址")
+    @TableField("address")
+    private String address;
+
+    @ApiModelProperty(value = "邮箱")
+    @TableField("email")
+    private String email;
+
+    @ApiModelProperty(value = "性别, 0:未知, 1:男, 2:女")
+    @TableField("gender")
+    private Integer gender;
+
+    @ApiModelProperty(value = "生日")
+    @TableField("birthday")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+
+    @ApiModelProperty(value = "个人简介(详细)")
+    @TableField("personal_introduction")
+    private String personalIntroduction;
+
+    @ApiModelProperty(value = "领域ID")
+    @TableField("lawyer_expertise_area_id")
+    private Integer lawyerExpertiseAreaId;
+
+    @ApiModelProperty(value = "法律问题场景")
+    @TableField(exist = false)
+    private List<Integer> problemScenarioIds;
+
+    @ApiModelProperty(value = "律师事务所收款账号")
+    @TableField("payment_num")
+    private String paymentNum;
+
+    @ApiModelProperty(value = "登录Token")
+    private String token;
+
+    @ApiModelProperty(value = "验证码")
+    private String msgCode;
+}
+

+ 117 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerUserViolationDto.java

@@ -0,0 +1,117 @@
+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;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 律师用户举报
+ * </p>
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="LawyerUserViolationDto对象", description="律师用户举报")
+public class LawyerUserViolationDto {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ApiModelProperty(value = "被举报用户类型")
+    private String reportedUserType;
+
+    @ApiModelProperty(value = "被举报用户ID")
+    private String reportedUserId;
+
+    @ApiModelProperty(value = "举报用户类型")
+    private String reportingUserType;
+
+    @ApiModelProperty(value = "举报用户ID")
+    private String reportingUserId;
+
+    @ApiModelProperty(value = "举报内容分类")
+    private String reportContextType;
+
+    @ApiModelProperty(value = "1:用户违规,2:色情低俗,3:违法违规,4:谩骂嘲讽、煽动对立,5:涉嫌诈骗,6:人身攻击,7:种族歧视,8:政治敏感,9:虚假、不实内容,违反公德秩序,10:危害人身安全,11:网络暴力,12:其他原因")
+    private String violationType;
+
+    @ApiModelProperty(value = "举报原因")
+    private String violationReason;
+
+    @ApiModelProperty(value = "其他原因具体内容")
+    private String otherReasonContent;
+
+    @ApiModelProperty(value = "举报凭证图片")
+    private String reportEvidenceImg;
+
+    @ApiModelProperty(value = "处理状态(0:未处理,1:违规,2:未违规)")
+    private String processingStatus;
+
+    @ApiModelProperty(value = "处理时间")
+    private Date processingTime;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    private Integer deleteFlag;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createdTime;
+
+    @ApiModelProperty(value = "创建人ID")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "修改人ID")
+    private Integer updatedUserId;
+
+    @ApiModelProperty(value = "订单ID")
+    private String orderId;
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "昵称")
+    private String nickname;
+
+    @ApiModelProperty(value = "联系方式")
+    private String phone;
+
+    @ApiModelProperty(value = "举报人名称")
+    private String reportUserName;
+
+    @ApiModelProperty(value = "被举报人名称")
+    private String reportedUserName;
+
+    @ApiModelProperty(value = "被举报人账号")
+    private String account;
+
+    @ApiModelProperty(value = "图片")
+    private String image;
+
+    @ApiModelProperty(value = "举报结果")
+    private String reportResult;
+
+    @ApiModelProperty(value = "图片List")
+    private List<String> imageList;
+
+    @ApiModelProperty(value = "举报内容")
+    private String LifeNotice;
+
+    @ApiModelProperty(value = "律师电话")
+    private String reportedPhone;
+
+
+}
+

+ 49 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/OrderReviewDto.java

@@ -0,0 +1,49 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 订单评价DTO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "OrderReviewDto对象", description = "订单评价DTO")
+public class OrderReviewDto {
+
+    @ApiModelProperty(value = "订单ID")
+    private Integer orderId;
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "总体评分(1-5星,支持0.5星)")
+    private Double overallRating;
+
+    @ApiModelProperty(value = "服务态度评分(1-5星,支持0.5星)")
+    private Double serviceAttitudeRating;
+
+    @ApiModelProperty(value = "响应时间评分(1-5星,支持0.5星)")
+    private Double responseTimeRating;
+
+    @ApiModelProperty(value = "专业能力评分(1-5星,支持0.5星)")
+    private Double professionalAbilityRating;
+
+    @ApiModelProperty(value = "评价内容")
+    private String reviewContent;
+
+    @ApiModelProperty(value = "评价图片列表")
+    private List<String> reviewImages;
+
+    @ApiModelProperty(value = "是否匿名评价,0:否,1:是")
+    private Integer isAnonymous;
+
+    @ApiModelProperty(value = "用户id")
+    private Integer userId;
+}
+

+ 36 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/PayStatusRequest.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;
+
+/**
+ * 支付状态更新请求对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "PayStatusRequest对象", description = "支付状态更新请求")
+public class PayStatusRequest implements Serializable {
+
+    @ApiModelProperty(value = "订单编号", required = true)
+    private String orderNumber;
+
+    @ApiModelProperty(value = "支付状态, 0:未支付, 1:已支付", required = true)
+    private Integer paymentStatus;
+
+    @ApiModelProperty(value = "订单状态, 0:待支付,1.待接单 2:进行中, 3:已完成, 4:已取消,5.已退款")
+    private Integer orderStatus;
+
+    @ApiModelProperty(value = "支付宝或VX的str")
+    private String orderStr;
+    
+    @ApiModelProperty
+    private String alipayNo;
+}
+

+ 26 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/ReviewCommentDto.java

@@ -0,0 +1,26 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 评价评论DTO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "ReviewCommentDto对象", description = "评价评论DTO")
+public class ReviewCommentDto {
+
+    @ApiModelProperty(value = "评价ID")
+    private Integer reviewId;
+
+    @ApiModelProperty(value = "评论内容")
+    private String commentContent;
+
+    @ApiModelProperty(value = "用户id")
+    private Integer userId;
+}
+

+ 23 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/ReviewCommentRequestDto.java

@@ -0,0 +1,23 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 评价评论请求DTO(用于删除、点赞等操作)
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "ReviewCommentRequestDto对象", description = "评价评论请求DTO")
+public class ReviewCommentRequestDto {
+
+    @ApiModelProperty(value = "评论ID")
+    private Integer commentId;
+
+    @ApiModelProperty(value = "用户ID")
+    private Integer userId;
+}
+

+ 29 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/ReviewReplyDto.java

@@ -0,0 +1,29 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 评价回复DTO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "ReviewReplyDto对象", description = "评价回复DTO")
+public class ReviewReplyDto {
+
+    @ApiModelProperty(value = "首评ID")
+    private Integer commentId;
+
+    @ApiModelProperty(value = "被回复用户ID")
+    private Integer replyToUserId;
+
+    @ApiModelProperty(value = "回复内容")
+    private String replyContent;
+
+    @ApiModelProperty(value = "用户ID")
+    private Integer userId;
+}
+

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

@@ -179,4 +179,21 @@ public class StoreInfoDto {
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date foodLicenceExpirationTime;
+
+    @ApiModelProperty(value = "分类id(词典表 键为 business_classify)")
+    private  List<String> businessClassifyList;
+
+    @ApiModelProperty(value = "分类名称")
+    private String businessClassifyName;
+
+    @ApiModelProperty(value = "分类id(词典表 键为 business_classify)")
+    @TableField("business_classify")
+    private String businessClassify;
+
+    @ApiModelProperty(value = "是否提供餐食 0=不提供  1=提供")
+    @TableField("meal_provided")
+    private Integer mealProvided;
+
+    @ApiModelProperty(value = "娱乐经营许可证")
+    private List<String> entertainmentLicenseAddress;
 }

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

@@ -0,0 +1,39 @@
+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 lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 系统用户注册DTO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "SystemRegisterDto对象", description = "系统用户注册信息")
+public class SystemRegisterDto {
+
+    @ApiModelProperty(value = "用户名", required = true)
+    private String userName;
+
+    @ApiModelProperty(value = "密码", required = true)
+    private String userPassword;
+
+    @ApiModelProperty(value = "角色id")
+    private String roleId;
+
+    @ApiModelProperty(value = "启用1 禁用 0")
+    private Integer status;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+}
+
+

+ 36 - 0
alien-entity/src/main/java/shop/alien/entity/store/excelVo/BusinessSectionExcelVo.java

@@ -0,0 +1,36 @@
+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 = "BusinessSectionExcelVo对象", description = "经营版块Excel导入导出对象")
+public class BusinessSectionExcelVo {
+
+    @ExcelHeader("经营板块")
+    @ApiModelProperty(value = "一级分类名称(必填,如果二级和三级为空,则创建一级分类)")
+    private String firstLevelName;
+
+    @ExcelHeader("经营种类")
+    @ApiModelProperty(value = "二级分类名称(可选,如果三级为空,则创建二级分类)")
+    private String secondLevelName;
+
+    @ExcelHeader("分类")
+    @ApiModelProperty(value = "三级分类名称(可选,如果填写则创建三级分类)")
+    private String thirdLevelName;
+
+    @ExcelHeader("状态")
+    @ApiModelProperty(value = "状态为显示隐藏,如不填默认显示")
+    private String hidden;
+}
+

+ 132 - 0
alien-entity/src/main/java/shop/alien/entity/store/excelVo/LawFirmExcelVo.java

@@ -0,0 +1,132 @@
+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 system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "LawFirmExcelVo对象", description = "律所表Excel导入导出对象")
+public class LawFirmExcelVo {
+
+//    @ExcelHeader("序号")
+    @ApiModelProperty(value = "序号")
+    private Integer serialNumber;
+
+    @ExcelHeader("律所名称")
+    @ApiModelProperty(value = "律所名称")
+    private String firmName;
+
+    @ExcelHeader("统一社会信用代码")
+    @ApiModelProperty(value = "统一社会信用代码")
+    private String creditCode;
+
+//    @ExcelHeader("律所简称")
+    @ApiModelProperty(value = "律所简称")
+    private String shortName;
+
+//    @ExcelHeader("律所英文名称")
+    @ApiModelProperty(value = "律所英文名称")
+    private String englishName;
+
+//    @ExcelHeader("成立日期")
+    @ApiModelProperty(value = "成立日期")
+    private String establishmentDate;
+
+//    @ExcelHeader("律所类型")
+    @ApiModelProperty(value = "律所类型, 1:合伙制, 2:个人制, 3:国资制")
+    private String firmType;
+
+//    @ExcelHeader("律所规模")
+    @ApiModelProperty(value = "律所规模, 1:小型(1-10人), 2:中型(11-50人), 3:大型(51-200人), 4:超大型(200人以上)")
+    private String firmScale;
+
+//    @ExcelHeader("所属省份")
+    @ApiModelProperty(value = "所属省份")
+    private String province;
+
+//    @ExcelHeader("所属城市")
+    @ApiModelProperty(value = "所属城市")
+    private String city;
+
+//    @ExcelHeader("所属区县")
+    @ApiModelProperty(value = "所属区县")
+    private String district;
+
+    @ExcelHeader("详细地址")
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+
+//    @ExcelHeader("联系电话")
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+//    @ExcelHeader("传真")
+    @ApiModelProperty(value = "传真")
+    private String fax;
+
+//    @ExcelHeader("邮箱")
+    @ApiModelProperty(value = "邮箱")
+    private String email;
+
+//    @ExcelHeader("官网地址")
+    @ApiModelProperty(value = "官网地址")
+    private String website;
+
+//    @ExcelHeader("律所简介")
+    @ApiModelProperty(value = "律所简介")
+    private String introduction;
+
+//    @ExcelHeader("执业许可证号")
+    @ApiModelProperty(value = "执业许可证号")
+    private String practiceLicenseNo;
+
+    @ExcelHeader("负责人姓名")
+    @ApiModelProperty(value = "负责人姓名")
+    private String directorName;
+
+//    @ExcelHeader("负责人电话")
+    @ApiModelProperty(value = "负责人电话")
+    private String directorPhone;
+
+//    @ExcelHeader("负责人邮箱")
+    @ApiModelProperty(value = "负责人邮箱")
+    private String directorEmail;
+
+//    @ExcelHeader("律师总数")
+    @ApiModelProperty(value = "律师总数")
+    private Integer lawyerCount;
+
+//    @ExcelHeader("合伙人数量")
+    @ApiModelProperty(value = "合伙人数量")
+    private Integer partnerCount;
+
+//    @ExcelHeader("律所状态")
+    @ApiModelProperty(value = "律所状态, 0:禁用, 1:启用")
+    private String status;
+
+//    @ExcelHeader("认证状态")
+    @ApiModelProperty(value = "认证状态, 0:未认证, 1:认证中, 2:已认证, 3:认证失败")
+    private String certificationStatus;
+
+    @ExcelHeader("律师事务所收款账号")
+    @ApiModelProperty(value = "律师事务所收款账号(必须是16位或19位,每行只能填写一个账号,不允许逗号分隔)")
+    private String paymentAccount;
+
+    @ExcelHeader("平台佣金比例")
+    @ApiModelProperty(value = "平台佣金比例(百分比)")
+    private String platformCommissionRatio;
+
+//    @ExcelHeader("备注")
+    @ApiModelProperty(value = "备注")
+    private String remark;
+}
+

+ 114 - 0
alien-entity/src/main/java/shop/alien/entity/store/excelVo/LawyerUserExcelVo.java

@@ -0,0 +1,114 @@
+package shop.alien.entity.store.excelVo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+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;
+
+/**
+ * 律师用户Excel导出对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "LawyerUserExcelVo对象", description = "律师用户Excel导出对象")
+public class LawyerUserExcelVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ExcelProperty(value = "律师姓名", index = 0)
+    @ApiModelProperty(value = "律师姓名")
+    private String name;
+
+    @ExcelProperty(value = "律师手机号", index = 1)
+    @ApiModelProperty(value = "律师手机号")
+    private String phone;
+
+    @ExcelProperty(value = "律所名称", index = 2)
+    @ApiModelProperty(value = "律所名称")
+    private String firmName;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "律师执业证号")
+    private String lawyerCertificateNo;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "执业开始日期")
+    private String practiceStartDate;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "执业年限")
+    private Integer practiceYears;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "用户状态")
+    private String status;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "资质认证状态")
+    private String certificationStatus;
+
+    @ExcelProperty(value = "推荐状态", index = 3)
+    @ApiModelProperty(value = "推荐状态")
+    private String isRecommended;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "服务评分")
+    private Integer serviceScore;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "服务次数")
+    private Integer serviceCount;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "创建时间")
+    private String createdTime;
+
+    @ExcelProperty(value = "法律场景", index = 4)
+    @ApiModelProperty(value = "法律场景")
+    private String scenarioNames;
+
+    @ExcelProperty(value = "接单状态", index = 5)
+    @ApiModelProperty(value = "接单状态")
+    private String orderReceivingStatus;
+
+    @ExcelProperty(value = "收款账号", index = 6)
+    @ApiModelProperty(value = "收款账号")
+    private String paymentNum;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "律所ID")
+    private Integer firmId;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "用户状态值")
+    private Integer statusValue;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "资质认证状态值")
+    private Integer certificationStatusValue;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "是否推荐值")
+    private Integer isRecommendedValue;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "接单状态值")
+    private Integer orderReceivingStatusValue;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "创建时间原始值")
+    private Date createdTimeValue;
+}
+

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

@@ -0,0 +1,34 @@
+package shop.alien.entity.store.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 店铺审核 - AI 服务请求体
+ */
+@Data
+public class AiApproveStoreInfo {
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "商户名称(公司/门店名称)")
+    private String merchant_name;
+
+    @ApiModelProperty(value = "经营范围 / 业务描述")
+    private String business_scope;
+
+    @ApiModelProperty(value = "联系人姓名")
+    private String contact_name;
+
+    @ApiModelProperty(value = "联系人手机号")
+    private String contact_phone;
+
+    @ApiModelProperty(value = "联系人邮箱")
+    private String contact_email;
+
+    @ApiModelProperty(value = "证照/资质门头照片列表")
+    private List<String> license_images;
+}

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

@@ -0,0 +1,146 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 评论申诉视图对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "CommentAppealVo对象", description = "评论申诉视图对象")
+public class CommentAppealVo implements Serializable {
+
+    @ApiModelProperty(value = "主键id")
+    private Integer id;
+
+    @ApiModelProperty(value = "评论id")
+    private Integer commentId;
+
+    @ApiModelProperty(value = "评论内容")
+    private String commentInfo;
+
+    @ApiModelProperty(value = "申诉理由")
+    private String appealReason;
+
+    @ApiModelProperty(value = "申诉处理状态, 0:审核中, 1:已通过, 2:已驳回")
+    private Integer status;
+
+    @ApiModelProperty(value = "申诉处理状态字符串")
+    private String statusStr;
+
+    @ApiModelProperty(value = "申诉时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date appealTime;
+
+    @ApiModelProperty(value = "申诉审核通过/驳回时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date appealReviewTime;
+
+    @ApiModelProperty(value = "审核原因")
+    private String reviewReasons;
+
+    @ApiModelProperty(value = "图片路径")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "申诉图片列表")
+    private List<String> imgList;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    @ApiModelProperty(value = "创建人ID")
+    private Integer createdUserId;
+
+    @ApiModelProperty(value = "创建人名称")
+    private String createdUserName;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ApiModelProperty(value = "更新人ID")
+    private Integer updatedUserId;
+
+    @ApiModelProperty(value = "更新人名称")
+    private String updatedUserName;
+
+    @ApiModelProperty(value = "审核人ID")
+    private Integer auditUserId;
+
+    @ApiModelProperty(value = "审核人名称")
+    private String auditUserName;
+
+    // 评价相关信息
+    @ApiModelProperty(value = "评价用户ID")
+    private Integer reviewUserId;
+
+    @ApiModelProperty(value = "评价用户名称")
+    private String reviewUserName;
+
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+    @ApiModelProperty(value = "评价用户头像")
+    private String reviewUserAvatar;
+
+    @ApiModelProperty(value = "总体评分")
+    private Double overallRating;
+
+    @ApiModelProperty(value = "服务态度评分")
+    private Double serviceAttitudeRating;
+
+    @ApiModelProperty(value = "响应时间评分")
+    private Double responseTimeRating;
+
+    @ApiModelProperty(value = "专业能力评分")
+    private Double professionalAbilityRating;
+
+    @ApiModelProperty(value = "评价内容")
+    private String reviewContent;
+
+    @ApiModelProperty(value = "评价时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reviewTime;
+
+    @ApiModelProperty(value = "评价图片(JSON字符串,用于查询)")
+    private String reviewImages;
+
+    @ApiModelProperty(value = "评价图片列表")
+    private List<String> reviewImgList;
+
+    @ApiModelProperty(value = "申诉结果描述(申诉成功/申诉失败)")
+    private String appealResult;
+
+    // 中台列表展示字段
+    @ApiModelProperty(value = "订单编号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "用户电话")
+    private String userPhone;
+
+    @ApiModelProperty(value = "律师用户ID")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "律师姓名")
+    private String lawyerName;
+
+    @ApiModelProperty(value = "律师电话")
+    private String lawyerPhone;
+
+    @ApiModelProperty(value = "申诉单号")
+    private String appealNumber;
+
+    @ApiModelProperty(value = "订单ID")
+    private Integer orderId;
+}
+

+ 43 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawFirmExportResponseVO.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;
+
+import java.io.Serializable;
+
+/**
+ * 律所对账导出响应对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "LawFirmExportResponseVO对象", description = "律所对账导出响应对象")
+public class LawFirmExportResponseVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "导出状态:true-成功,false-失败")
+    private Boolean success;
+
+    @ApiModelProperty(value = "导出消息")
+    private String message;
+
+    @ApiModelProperty(value = "查询到的总数据条数")
+    private Integer totalCount;
+
+    @ApiModelProperty(value = "实际导出的数据条数")
+    private Integer exportCount;
+
+    @ApiModelProperty(value = "文件名")
+    private String fileName;
+
+    @ApiModelProperty(value = "是否导出全部数据:true-全部,false-本页")
+    private Boolean exportAll;
+}
+

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

@@ -0,0 +1,46 @@
+package shop.alien.entity.store.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 律所对账列表视图对象
+ * 用于 /getAllLawFirmList 接口
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "LawFirmListVO对象", description = "律所对账列表视图对象")
+public class LawFirmListVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "律所ID")
+    private Integer firmId;
+
+    @ExcelProperty(value = "律所名称", index = 0)
+    @ApiModelProperty(value = "律所名称")
+    private String firmName;
+
+    @ExcelProperty(value = "总订单数量", index = 1)
+    @ApiModelProperty(value = "总订单数量")
+    private Long totalOrderCount;
+
+    @ExcelProperty(value = "总订单金额(元)", index = 2)
+    @ApiModelProperty(value = "总订单金额(单位:元)")
+    private String totalOrderAmountYuan;
+
+    @ExcelProperty(value = "平台信息服务费(元)", index = 3)
+    @ApiModelProperty(value = "平台信息服务费(单位:元)")
+    private String platformServiceFeeYuan;
+}
+

+ 109 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawFirmPaymentVO.java

@@ -0,0 +1,109 @@
+package shop.alien.entity.store.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+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
+@ApiModel(value = "LawFirmPaymentVO对象", description = "律所子表视图对象(包含律所信息)")
+public class LawFirmPaymentVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    // ========== 律所子表字段 ==========
+    @ExcelIgnore
+    @ApiModelProperty(value = "主键id")
+    private Integer id;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "律师表id")
+    private Integer firmId;
+
+    @ExcelProperty(value = "律师事务所收款账号", index = 3)
+    @ApiModelProperty(value = "律师事务所收款账号")
+    private String paymentAccount;
+
+    @ExcelProperty(value = "详细地址", index = 4)
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    private Integer deleteFlag;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "创建人ID")
+    private Integer createdUserId;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "修改人ID")
+    private Integer updatedUserId;
+
+    // ========== 律所表字段 ==========
+    @ExcelProperty(value = "律所名称", index = 0)
+    @ApiModelProperty(value = "律所名称")
+    private String firmName;
+
+    @ExcelProperty(value = "统一社会信用代码", index = 1)
+    @ApiModelProperty(value = "统一社会信用代码")
+    private String creditCode;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "律所简称")
+    private String shortName;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "邮箱")
+    private String email;
+
+    @ExcelProperty(value = "负责人姓名", index = 2)
+    @ApiModelProperty(value = "负责人姓名")
+    private String directorName;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "负责人电话")
+    private String directorPhone;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "律所状态, 0:禁用, 1:启用")
+    private Integer status;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "认证状态, 0:未认证, 1:认证中, 2:已认证, 3:认证失败")
+    private Integer certificationStatus;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "手续费")
+    private Integer platformCommissionRatio;
+}
+
+
+

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

@@ -0,0 +1,69 @@
+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.util.Date;
+import java.util.List;
+
+/**
+ * 律所对账总览视图对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "LawFirmReconciliationVO对象", description = "律所对账总览视图对象")
+public class LawFirmReconciliationVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "律所ID")
+    private Integer firmId;
+
+    @ApiModelProperty(value = "律所名称")
+    private String firmName;
+
+    @ApiModelProperty(value = "总订单数量")
+    private Long totalOrderCount;
+
+    @ApiModelProperty(value = "总订单金额(单位:元)")
+    private String totalOrderAmountYuan;
+
+    @ApiModelProperty(value = "平台信息服务费(单位:元)")
+    private String platformServiceFeeYuan;
+
+    @ApiModelProperty(value = "律师ID")
+    private Integer lawyerId;
+
+    @ApiModelProperty(value = "律师名称")
+    private String lawyerName;
+
+    @ApiModelProperty(value = "律师头像")
+    private String headImg;
+
+    @ApiModelProperty(value = "律师执业证号")
+    private String lawyerCertificateNo;
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "订单金额(单位:分)")
+    private Integer orderAmount;
+
+    @ApiModelProperty(value = "购买时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date orderTime;
+
+    @ApiModelProperty(value = "客户端用户ID")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "客户端用户名称")
+    private String clientUserName;
+
+}

+ 80 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerAiInteractionLogVo.java

@@ -0,0 +1,80 @@
+package shop.alien.entity.store.vo;
+
+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 java.util.Date;
+
+/**
+ * AI交互日志
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "LawyerAiInteractionLog对象", description = "AI交互日志")
+public class LawyerAiInteractionLogVo extends Model<LawyerAiInteractionLogVo> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "客户端用户ID")
+    @TableField("client_user_id")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "会话ID")
+    @TableField("conversation_id")
+    private String conversationId;
+
+    @ApiModelProperty(value = "用户输入内容")
+    @TableField("query_text")
+    private String queryText;
+
+    @ApiModelProperty(value = "AI回复内容")
+    @TableField("response_text")
+    private String responseText;
+
+    @ApiModelProperty(value = "关联的法律问题场景ID")
+    @TableField("problem_scenario_id")
+    private Integer problemScenarioId;
+
+    @ApiModelProperty(value = "交互时间")
+    @TableField("interaction_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date interactionTime;
+
+    @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 = "场景ID")
+    @TableField("scene_id")
+    private Integer sceneId;
+}
+

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

@@ -0,0 +1,285 @@
+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 shop.alien.entity.store.LawyerLegalProblemScenario;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 律师咨询订单视图对象(包含律师信息)
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "LawyerConsultationOrderVO对象", description = "咨询订单视图对象(包含律师信息)")
+public class LawyerConsultationOrderVO implements Serializable {
+
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "客户端用户ID")
+    private Integer clientUserId;
+
+    @ApiModelProperty(value = "律师用户ID")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "法律问题场景ID")
+    private String problemScenarioId;
+
+    @ApiModelProperty(value = "问题描述")
+    private String problemDescription;
+
+    @ApiModelProperty(value = "订单金额,单位分")
+    private Integer orderAmount;
+
+    @ApiModelProperty(value = "咨询费用(本单收益),单位分")
+    private Integer consultationFee;
+
+    @ApiModelProperty(value = "咨询开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty(value = "咨询结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+    @ApiModelProperty(value = "订单状态, 0:待支付,1.待接单 2:进行中, 3:已完成, 4:已取消,5.已退款")
+    private Integer orderStatus;
+
+    @ApiModelProperty(value = "支付状态, 0:未支付, 1:已支付")
+    private Integer paymentStatus;
+
+    @ApiModelProperty(value = "下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date orderTime;
+
+    @ApiModelProperty(value = "支付时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date paymentTime;
+
+    @ApiModelProperty(value = "订单有效期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date validityPeriod;
+
+    @ApiModelProperty(value = "用户评分, 1-5星")
+    private Integer rating;
+
+    @ApiModelProperty(value = "用户评价内容")
+    private String comment;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    // ========== 律师信息 ==========
+
+    @ApiModelProperty(value = "律师姓名")
+    private String lawyerName;
+
+    @ApiModelProperty(value = "律师手机号")
+    private String lawyerPhone;
+
+    @ApiModelProperty(value = "律师邮箱")
+    private String lawyerEmail;
+
+    @ApiModelProperty(value = "律师执业证号")
+    private String lawyerCertificateNo;
+
+    @ApiModelProperty(value = "所属律师事务所")
+    private String lawFirm;
+
+    @ApiModelProperty(value = "执业年限")
+    private Integer practiceYears;
+
+    @ApiModelProperty(value = "专业领域,多个用逗号分隔")
+    private String specialtyFields;
+
+    @ApiModelProperty(value = "资质认证状态, 0:未认证, 1:认证中, 2:已认证, 3:认证失败")
+    private Integer certificationStatus;
+
+    @ApiModelProperty(value = "服务评分, 0-5分")
+    private Double serviceScore;
+
+    @ApiModelProperty(value = "服务次数")
+    private Integer serviceCount;
+
+    @ApiModelProperty(value = "咨询收费标准(单位分/小时)")
+    private Integer lawyerConsultationFee;
+
+    @ApiModelProperty(value = "所属省份")
+    private String province;
+
+    @ApiModelProperty(value = "所属城市")
+    private String city;
+
+    @ApiModelProperty(value = "所属区县")
+    private String district;
+
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+
+    @ApiModelProperty(value = "头像")
+    private String headImg;
+
+    @ApiModelProperty(value = "用户头像")
+    private String userImage;
+
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+
+    @ApiModelProperty(value = "个人简介(详细)")
+    private String personalIntroduction;
+
+    @ApiModelProperty(value = "法律场景列表")
+    private List<String> lawyerLegalProblemScenarioList;
+
+    @ApiModelProperty(value = "倒計時(秒),僅待支付訂單有效,30分鐘有效期")
+    private Long countdownSeconds;
+
+    @ApiModelProperty(value = "领域信息")
+    private String expertiseAreaInfo;
+
+    @ApiModelProperty(value = "客户端用户姓名")
+    private String clientUserName;
+
+    @ApiModelProperty(value = "客户端用户电话")
+    private String clientUserPhone;
+
+    @ApiModelProperty(value = "支付宝订单编号")
+    @TableField("alipay_no")
+    private String alipayNo;
+
+    @ApiModelProperty(value = "支付宝订单字符串")
+    @TableField("order_str")
+    private String orderStr;
+
+    @ApiModelProperty(value = "佣金比例")
+    private String commissionRate;
+
+    @ApiModelProperty(value = "佣金比例(前端使用)")
+    private String commissionRateStr;
+
+    @ApiModelProperty(value = "律师收益(订单金额-平台佣金)")
+    private  Integer lawyerEarnings;
+
+    @ApiModelProperty(value = "开始时间")
+    private String startTimeNew;
+
+    @ApiModelProperty(value = "结束时间")
+    private String endTimeNew;
+
+    @ApiModelProperty(value = "账号简介")
+    private String accountBlurb;
+
+    @ApiModelProperty(value = "律所名称")
+    private String firmName;
+
+    @ApiModelProperty(value = "律师接单时间")
+    @TableField("accept_orders_time")
+    private  Date acceptOrdersTime;
+
+    @ApiModelProperty(value = "拒绝接单原因")
+    @TableField("reason_order_refusal")
+    private  String reasonOrderRefusal;
+
+    @ApiModelProperty(value = "律师接单状态  0接单  1拒绝接单")
+    @TableField("accept_orders_status")
+    private  Integer acceptOrdersStatus;
+
+    @ApiModelProperty(value = "申请退款原因")
+    private  String applyRefundReason;
+
+    @ApiModelProperty(value = "申请退款状态,0-未申请,1-已申请,2-律师已拒绝,3-律师已同意")
+    @TableField("apply_refund_status")
+    private  String applyRefundStatus;
+
+    @ApiModelProperty(value = "是否被举报(1:被举报,2:未被举报)")
+    private  String isViolation;
+
+    @ApiModelProperty(value = "拒绝退款原因")
+    private  String rejectRefundReason;
+
+    @ApiModelProperty(value = "是否可申请退款(1-可申请,2-不可申请)")
+    private  String isCanApplyRefund;
+
+    @ApiModelProperty(value = "是否可申请举报(1-可举报,2-不可举报)")
+    private  String isCanApplyViolation;
+
+    @ApiModelProperty(value = "是否已经评价(1-已评价,2-未评价)")
+    private  String isHasCommon;
+
+    @ApiModelProperty(value = "用户申请退款时间")
+    private  Date applyRefundTime;
+
+    @ApiModelProperty(value = "申请退款处理时间")
+    private  Date applyRefundProcessTime;
+
+    @ApiModelProperty(value = "举报处理状态(0:待处理,1:已通过,2:已驳回)")
+    private  String processingStatus;
+
+    @ApiModelProperty(value = "举报处理时间")
+    private  Date processingTime;
+
+    @ApiModelProperty(value = "举报处理结果")
+    private  String reportResult;
+
+    @ApiModelProperty(value = "律师年限")
+    private  Date practiceStartDate;
+
+    @ApiModelProperty(value = "未读消息数量")
+    private  Long unreadMessage;
+
+    @ApiModelProperty(value = "律师接单状态")
+    private int orderReceivingStatus;
+
+    @ApiModelProperty(value = "申诉处理状态 0 审核中 1审核通过 2驳回")
+    private String commentStatus;
+
+
+    /**
+     * 获取执业年限(根据执业开始日期自动计算)
+     * 返回当前时间减去执业开始时间的年数
+     *
+     * @return 执业年限(年)
+     */
+    public Integer getPracticeYears() {
+        if (practiceStartDate == null) {
+            return null;
+        }
+        try {
+            // 将 Date 转换为 LocalDate
+            LocalDate startDate = practiceStartDate.toInstant()
+                    .atZone(ZoneId.systemDefault())
+                    .toLocalDate();
+            LocalDate currentDate = LocalDate.now();
+
+            // 计算年数差
+            long years = ChronoUnit.YEARS.between(startDate, currentDate);
+            return (int) Math.max(0, years); // 确保不为负数
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    @ApiModelProperty(value = "支付方式 1支付宝 2微信")
+    @TableField("pay_type")
+    private  String payType;
+
+}
+

+ 49 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerExportResponseVO.java

@@ -0,0 +1,49 @@
+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;
+
+import java.io.Serializable;
+
+/**
+ * 律师对账导出响应对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "LawyerExportResponseVO对象", description = "律师对账导出响应对象")
+public class LawyerExportResponseVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "导出状态:true-成功,false-失败")
+    private Boolean success;
+
+    @ApiModelProperty(value = "导出消息")
+    private String message;
+
+    @ApiModelProperty(value = "律所ID")
+    private Integer firmId;
+
+    @ApiModelProperty(value = "律所名称")
+    private String firmName;
+
+    @ApiModelProperty(value = "查询到的总数据条数")
+    private Integer totalCount;
+
+    @ApiModelProperty(value = "实际导出的数据条数")
+    private Integer exportCount;
+
+    @ApiModelProperty(value = "文件名")
+    private String fileName;
+
+    @ApiModelProperty(value = "是否导出全部数据:true-全部,false-本页")
+    private Boolean exportAll;
+}
+

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

@@ -0,0 +1,29 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 律师图片类型
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+public class LawyerImgTypeVo {
+
+    @ApiModelProperty(value = "图片类型, 0:其他, 1:头像, 2:执业证照片, 3:身份证正面, 4:身份证反面, 5:案例图片, 6:相册图片, 7:资质证书, 8:荣誉证书, 9:工作照片")
+    private Integer imgType;
+
+    @ApiModelProperty(value = "图片类型字符串")
+    private String imgTypeStr;
+
+    @ApiModelProperty(value = "数量")
+    private Integer count;
+
+    @ApiModelProperty(value = "图片地址")
+    private String imgUrl;
+}
+

+ 62 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerListVO.java

@@ -0,0 +1,62 @@
+package shop.alien.entity.store.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 律师对账列表视图对象
+ * 用于 /getLawyerListWithName 接口
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "LawyerListVO对象", description = "律师对账列表视图对象")
+public class LawyerListVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "律师ID")
+    private Integer lawyerId;
+
+    @ExcelProperty(value = "律所名称", index = 0)
+    @ApiModelProperty(value = "律所名称")
+    private String firmName;
+
+    @ExcelProperty(value = "律师名称", index = 1)
+    @ApiModelProperty(value = "律师名称")
+    private String lawyerName;
+
+    @ExcelProperty(value = "律师执业证号", index = 2)
+    @ApiModelProperty(value = "律师执业证号")
+    private String lawyerCertificateNo;
+
+    @ExcelProperty(value = "总订单数量", index = 3)
+    @ApiModelProperty(value = "总订单数量")
+    private Long totalOrderCount;
+
+    @ExcelProperty(value = "总订单金额(元)", index = 4)
+    @ApiModelProperty(value = "总订单金额(单位:元)")
+    private String totalOrderAmountYuan;
+
+    @ExcelProperty(value = "平台信息服务费(元)", index = 5)
+    @ApiModelProperty(value = "平台信息服务费(单位:元)")
+    private String platformServiceFeeYuan;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "律师头像")
+    private String headImg;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "律所ID")
+    private Integer firmId;
+}
+

+ 48 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerReconciliationDetailVO.java

@@ -0,0 +1,48 @@
+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;
+
+/**
+ * 律师对账明细视图对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "LawyerReconciliationDetailVO对象", description = "律师对账明细视图对象")
+public class LawyerReconciliationDetailVO implements Serializable {
+
+    @ApiModelProperty(value = "律师ID")
+    private Integer lawyerId;
+
+    @ApiModelProperty(value = "律师姓名")
+    private String lawyerName;
+
+    @ApiModelProperty(value = "律师头像")
+    private String headImg;
+
+    @ApiModelProperty(value = "律师执业证号")
+    private String lawyerCertificateNo;
+
+    @ApiModelProperty(value = "订单数量")
+    private Long orderCount;
+
+    @ApiModelProperty(value = "订单金额(单位:分)")
+    private Long orderAmount;
+
+    @ApiModelProperty(value = "订单金额(单位:元)")
+    private String orderAmountYuan;
+
+    @ApiModelProperty(value = "平台信息服务费(单位:分)")
+    private Long platformServiceFee;
+
+    @ApiModelProperty(value = "平台信息服务费(单位:元)")
+    private String platformServiceFeeYuan;
+}
+

+ 32 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerReviewStatisticsVo.java

@@ -0,0 +1,32 @@
+package shop.alien.entity.store.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 律师评价统计数据VO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "LawyerReviewStatisticsVo对象", description = "律师评价统计数据VO")
+public class LawyerReviewStatisticsVo {
+
+    @ApiModelProperty(value = "全部评价数量")
+    private Integer totalCount;
+
+    @ApiModelProperty(value = "好评数量(4.5-5分)")
+    private Integer goodCount;
+
+    @ApiModelProperty(value = "中评数量(3-4分)")
+    private Integer mediumCount;
+
+    @ApiModelProperty(value = "差评数量(0-2.5分)")
+    private Integer badCount;
+
+    @ApiModelProperty(value = "有图评价数量")
+    private Integer imageCount;
+}
+

+ 42 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerUserViolationVo.java

@@ -0,0 +1,42 @@
+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.LawyerUserViolation;
+
+/**
+ * @Author: system
+ * @CreateTime: 2025-01-XX
+ * @Description: 律师举报
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="LawyerUserViolationVo对象", description="律师举报vo")
+public class LawyerUserViolationVo extends LawyerUserViolation {
+
+    private String reportObject;
+
+    //举报结果通知
+    private String reportResultNotification;
+
+    @ApiModelProperty(value = "用户电话")
+    private String phone;
+
+    @ApiModelProperty(value = "用户姓名")
+    private String nickName;
+
+    private String reportUserName;
+
+    @ApiModelProperty(value = "律师姓名")
+    private String reportedUserName;
+
+    @ApiModelProperty(value = "律师电话")
+    private String reportedPhone;
+
+}
+

+ 324 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LawyerUserVo.java

@@ -0,0 +1,324 @@
+package shop.alien.entity.store.vo;
+
+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 shop.alien.entity.store.LawyerLegalProblemScenario;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 律师用户视图对象
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "LawyerUserVo对象", description = "律师用户视图对象")
+public class LawyerUserVo implements Serializable {
+
+
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "律所id")
+    @TableField("firm_id")
+    private Integer firmId;
+
+    @ApiModelProperty(value = "手机号")
+    @TableField("phone")
+    private String phone;
+
+    @ApiModelProperty(value = "姓名")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "身份证")
+    @TableField("id_card")
+    private String idCard;
+
+    @ApiModelProperty(value = "密码")
+    @TableField("password")
+    private String password;
+
+    @ApiModelProperty(value = "支付密码")
+    @TableField("pay_password")
+    private String payPassword;
+
+    @ApiModelProperty(value = "用户余额,单位分")
+    @TableField("money")
+    private Integer money;
+
+    @ApiModelProperty(value = "用户状态, 0:禁用, 1:启用")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "密码状态, 0:初始密码, 1:已修改, 2:手机号已验证")
+    @TableField("pass_type")
+    private Integer passType;
+
+    @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 = "注销标记, 0:未注销, 1:已注销")
+    @TableField("logout_flag")
+    private Integer logoutFlag;
+
+    @ApiModelProperty(value = "注销原因")
+    @TableField("logout_reason")
+    private String logoutReason;
+
+    @ApiModelProperty(value = "注销申请时间")
+    @TableField(value = "logout_time", fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date logoutTime;
+
+    @ApiModelProperty(value = "注销code")
+    @TableField("logout_code")
+    private String logoutCode;
+
+    @ApiModelProperty(value = "昵称")
+    @TableField("nick_name")
+    private String nickName;
+
+    @ApiModelProperty(value = "账号简介")
+    @TableField("account_blurb")
+    private String accountBlurb;
+
+    @ApiModelProperty(value = "头像")
+    @TableField("head_img")
+    private String headImg;
+
+    @ApiModelProperty(value = "支付宝账号")
+    @TableField("alipay_account")
+    private String alipayAccount;
+
+    // ========== 律师特有字段 ==========
+
+    @ApiModelProperty(value = "律师执业证号")
+    @TableField("lawyer_certificate_no")
+    private String lawyerCertificateNo;
+
+    @ApiModelProperty(value = "所属律师事务所")
+    @TableField("law_firm")
+    private String lawFirm;
+
+    @ApiModelProperty(value = "执业年限")
+    @TableField("practice_years")
+    private Integer practiceYears;
+
+    @ApiModelProperty(value = "执业开始日期")
+    @TableField("practice_start_date")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date practiceStartDate;
+
+    @ApiModelProperty(value = "专业领域,多个用逗号分隔")
+    @TableField("specialty_fields")
+    private String specialtyFields;
+
+    @ApiModelProperty(value = "资质认证状态, 0:未认证, 1:认证中, 2:已认证, 3:认证失败")
+    @TableField("certification_status")
+    private Integer certificationStatus;
+
+    @ApiModelProperty(value = "认证失败原因")
+    @TableField("certification_fail_reason")
+    private String certificationFailReason;
+
+    @ApiModelProperty(value = "认证时间")
+    @TableField("certification_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date certificationTime;
+
+    @ApiModelProperty(value = "认证审核人ID")
+    @TableField("certification_reviewer_id")
+    private Integer certificationReviewerId;
+
+    @ApiModelProperty(value = "执业证照片")
+    @TableField("certificate_image")
+    private String certificateImage;
+
+    @ApiModelProperty(value = "身份证正面照片")
+    @TableField("id_card_front_image")
+    private String idCardFrontImage;
+
+    @ApiModelProperty(value = "身份证反面照片")
+    @TableField("id_card_back_image")
+    private String idCardBackImage;
+
+    @ApiModelProperty(value = "服务评分, 0-5分(保留一位小数)")
+    @TableField("service_score")
+    private Double serviceScore;
+
+    @ApiModelProperty(value = "服务次数")
+    @TableField("service_count")
+    private Integer serviceCount;
+
+    @ApiModelProperty(value = "好评数")
+    @TableField("good_review_count")
+    private Integer goodReviewCount;
+
+    @ApiModelProperty(value = "中评数")
+    @TableField("medium_review_count")
+    private Integer mediumReviewCount;
+
+    @ApiModelProperty(value = "差评数")
+    @TableField("bad_review_count")
+    private Integer badReviewCount;
+
+    @ApiModelProperty(value = "咨询收费标准(单位分/小时)")
+    @TableField("consultation_fee")
+    private Integer consultationFee;
+
+    @ApiModelProperty(value = "代理收费标准(单位分)")
+    @TableField("agency_fee")
+    private Integer agencyFee;
+
+    @ApiModelProperty(value = "所属省份")
+    @TableField("province")
+    private String province;
+
+    @ApiModelProperty(value = "所属城市")
+    @TableField("city")
+    private String city;
+
+    @ApiModelProperty(value = "所属区县")
+    @TableField("district")
+    private String district;
+
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+
+    @ApiModelProperty(value = "邮箱")
+    @TableField("email")
+    private String email;
+
+    @ApiModelProperty(value = "性别, 0:未知, 1:男, 2:女")
+    @TableField("gender")
+    private Integer gender;
+
+    @ApiModelProperty(value = "生日")
+    @TableField("birthday")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+
+    @ApiModelProperty(value = "个人简介(详细)")
+    @TableField("personal_introduction")
+    private String personalIntroduction;
+
+    @ApiModelProperty(value = "教育背景")
+    @TableField("education_background")
+    private String educationBackground;
+
+    @ApiModelProperty(value = "工作经历")
+    @TableField("work_experience")
+    private String workExperience;
+
+    @ApiModelProperty(value = "擅长案件类型")
+    @TableField("expertise_cases")
+    private String expertiseCases;
+
+    @ApiModelProperty(value = "是否在线, 0:离线, 1:在线")
+    @TableField("is_online")
+    private Integer isOnline;
+
+    @ApiModelProperty(value = "最后在线时间")
+    @TableField("last_online_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date lastOnlineTime;
+
+    @ApiModelProperty(value = "是否推荐, 0:不推荐, 1:推荐")
+    @TableField("is_recommended")
+    private Integer isRecommended;
+
+    @ApiModelProperty(value = "推荐排序")
+    @TableField("recommend_sort")
+    private Integer recommendSort;
+
+    @ApiModelProperty(value = "接单状态, 0:不接单, 1:接单中")
+    @TableField("order_receiving_status")
+    private Integer orderReceivingStatus;
+
+    @ApiModelProperty(value = "领域ID")
+    @TableField("lawyer_expertise_area_id")
+    private Integer lawyerExpertiseAreaId;
+
+    @ApiModelProperty(value = "法律问题场景")
+    @TableField(exist = false)
+    private List<LawyerLegalProblemScenario> lawyerLegalProblemScenarioList;
+
+    @ApiModelProperty(value = "佣金比例")
+    @TableField("commission_rate")
+    private Integer commissionRate;
+
+    @ApiModelProperty(value = "律师事务所收款账号")
+    @TableField("payment_num")
+    private String paymentNum;
+
+    @TableField(exist = false)
+    private String userName;
+
+    @TableField(exist = false)
+    private String userImage;
+
+    @TableField(exist = false)
+    private String jianjie;
+
+    @TableField(exist = false)
+    private String moneyStr;
+
+    @TableField(exist = false)
+    private String firmName;
+
+    @ApiModelProperty(value = "登录Token")
+    private String token;
+
+    @ApiModelProperty(value = "一级法律场景id")
+    private String firstLevelScenarioId;
+
+    @ApiModelProperty(value = "一级法律场景")
+    private String firstLevelScenario;
+
+    @ApiModelProperty(value = "律师擅长法律场景id")
+    private String problemScenarioId;
+
+    @ApiModelProperty(value = "律师擅长法律场景")
+    private String scenarioNames;
+
+    @ApiModelProperty(value = "专业领域")
+    private String expertiseAreaInfo;
+
+    @ApiModelProperty(value = "律所地址")
+    private String addressNew;
+
+
+
+}
+

+ 10 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeDiscountCouponVo.java

@@ -1,5 +1,7 @@
 package shop.alien.entity.store.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -28,6 +30,9 @@ public class LifeDiscountCouponVo {
 
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(value = "主键ID")
+    private Integer id;
+
     @ApiModelProperty(value = "用户券id")
     private Integer userCouponId;
 
@@ -154,4 +159,9 @@ public class LifeDiscountCouponVo {
     @ApiModelProperty(value = "到期日期")
     private LocalDate expirationTime;
 
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "created_time")
+    @JsonFormat(pattern = "yyyy/MM/dd", timezone = "GMT+8")
+    private Date createdTime;
+
 }

+ 12 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeGroupBuyThaliVo.java

@@ -259,4 +259,16 @@ public class LifeGroupBuyThaliVo {
     @ApiModelProperty(value = "已售数量")
     private Integer saleNum;
 
+    @ApiModelProperty(value = "审核状态")
+    private String reviewType;
+
+    @ApiModelProperty(value = "成本价")
+    private BigDecimal costPrice;
+
+    @ApiModelProperty(value = "利润")
+    private BigDecimal profit;
+
+    @ApiModelProperty(value = "状态(0草稿/1待审核/2未开始/3审核拒绝/4已售罄/5进行中/6已下架/7已结束)")
+    private String statusName;
+
 }

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

@@ -4,6 +4,9 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.Data;
 import shop.alien.entity.store.LifeUserOrder;
 
+import java.util.Date;
+import java.util.List;
+
 @Data
 @JsonInclude
 public class LifeUserOrderCommentVo extends LifeUserOrder {
@@ -21,4 +24,10 @@ public class LifeUserOrderCommentVo extends LifeUserOrder {
     private String businessTypesName;
 
     private String storeName;
+
+    private String score;
+
+    private Date commentDate;
+
+    private List<String> imgUrls;
 }

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

@@ -0,0 +1,47 @@
+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 = "OrderRevenueVO对象", description = "订单收益统计")
+public class OrderRevenueVO implements Serializable {
+
+    @ApiModelProperty(value = "全部收益-订单总数")
+    private Long allOrderCount;
+
+    @ApiModelProperty(value = "全部收益-收益合计(单位:分)")
+    private Long allRevenue;
+
+    @ApiModelProperty(value = "全部收益-收益合计(单位:分,格式化显示)")
+    private Long allRevenueStr;
+
+    @ApiModelProperty(value = "进行中-订单总数")
+    private Long inProgressOrderCount;
+
+    @ApiModelProperty(value = "进行中-收益合计(单位:分)")
+    private Long inProgressRevenue;
+
+    @ApiModelProperty(value = "进行中-收益合计(单位:分,格式化显示)")
+    private Long inProgressRevenueStr;
+
+    @ApiModelProperty(value = "已完成-订单总数")
+    private Long completedOrderCount;
+
+    @ApiModelProperty(value = "已完成-收益合计(单位:分)")
+    private Long completedRevenue;
+
+    @ApiModelProperty(value = "已完成-收益合计(单位:分,格式化显示)")
+    private Long completedRevenueStr;
+}
+
+

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

@@ -0,0 +1,34 @@
+package shop.alien.entity.store.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 订单评价详情VO(包含评论和回复)
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "OrderReviewDetailVo对象", description = "订单评价详情VO")
+public class OrderReviewDetailVo {
+
+    @ApiModelProperty(value = "评价信息")
+    private OrderReviewVo review;
+
+    @ApiModelProperty(value = "评论列表")
+    private List<ReviewCommentVo> comments;
+
+    @ApiModelProperty(value = "总评论数")
+    private Integer totalCommentCount;
+
+    @ApiModelProperty(value = "评价点赞数")
+    private Integer likeCount;
+
+    @ApiModelProperty(value = "当前用户是否已点赞,0:未点赞,1:已点赞")
+    private Integer isLiked;
+}
+

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

@@ -0,0 +1,95 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 订单评价VO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "OrderReviewVo对象", description = "订单评价VO")
+public class OrderReviewVo {
+
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ApiModelProperty(value = "订单ID")
+    private Integer orderId;
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "评价用户ID")
+    private Integer userId;
+
+    @ApiModelProperty(value = "评价用户名称")
+    private String userName;
+
+    @ApiModelProperty(value = "评价用户头像")
+    private String userAvatar;
+
+    @ApiModelProperty(value = "律师用户ID")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "律师名称")
+    private String lawyerName;
+
+    @ApiModelProperty(value = "律师头像")
+    private String lawyerAvatar;
+
+    @ApiModelProperty(value = "律所名称")
+    private String lawFirmName;
+
+    @ApiModelProperty(value = "总体评分")
+    private Double overallRating;
+
+    @ApiModelProperty(value = "服务态度评分")
+    private Double serviceAttitudeRating;
+
+    @ApiModelProperty(value = "响应时间评分")
+    private Double responseTimeRating;
+
+    @ApiModelProperty(value = "专业能力评分")
+    private Double professionalAbilityRating;
+
+    @ApiModelProperty(value = "评价内容")
+    private String reviewContent;
+
+    @ApiModelProperty(value = "评价图片列表")
+    private List<String> reviewImages;
+
+    @ApiModelProperty(value = "评价图片JSON字符串(内部使用,不对外暴露)")
+    @com.fasterxml.jackson.annotation.JsonIgnore
+    private String reviewImagesJson;
+
+    @ApiModelProperty(value = "是否匿名评价,0:否,1:是")
+    private Integer isAnonymous;
+
+    @ApiModelProperty(value = "点赞数")
+    private Integer likeCount;
+
+    @ApiModelProperty(value = "评论数")
+    private Integer commentCount;
+
+    @ApiModelProperty(value = "当前用户是否已点赞,0:未点赞,1:已点赞")
+    private Integer isLiked;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    @ApiModelProperty(value = "逻辑删除")
+    private Integer deleteFlag;
+
+    @ApiModelProperty(value = "订单申诉状态")
+    private Integer isAppealed;
+}
+

+ 53 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/PendingReviewVo.java

@@ -0,0 +1,53 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 评价VO
+ * 用于显示用户评价信息,包含律师信息、评分、评价内容、发布时间等
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "PendingReviewVo对象", description = "待评价VO")
+public class PendingReviewVo {
+
+    @ApiModelProperty(value = "订单ID")
+    private Integer orderId;
+
+    @ApiModelProperty(value = "订单编号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "律师用户ID")
+    private Integer lawyerUserId;
+
+    @ApiModelProperty(value = "律师名称")
+    private String lawyerName;
+
+    @ApiModelProperty(value = "律师头像")
+    private String lawyerAvatar;
+
+    @ApiModelProperty(value = "律所名称")
+    private String lawFirmName;
+
+    @ApiModelProperty(value = "总体评分")
+    private Double overallRating;
+
+    @ApiModelProperty(value = "评价内容")
+    private String reviewContent;
+
+    @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 completedTime;
+}
+

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

@@ -0,0 +1,67 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 评价评论VO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "ReviewCommentVo对象", description = "评价评论VO")
+public class ReviewCommentVo {
+
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ApiModelProperty(value = "评价ID")
+    private Integer reviewId;
+
+    @ApiModelProperty(value = "评论用户ID")
+    private Integer sendUserId;
+
+    @ApiModelProperty(value = "接收用户ID")
+    private Integer receiveUserId;
+
+    @ApiModelProperty(value = "评论用户名称(发送者)")
+    private String sendUserName;
+
+    @ApiModelProperty(value = "评论用户头像")
+    private String userAvatar;
+
+    @ApiModelProperty(value = "接收用户名称")
+    private String receiveUserName;
+
+    @ApiModelProperty(value = "评论内容")
+    private String commentContent;
+
+    @ApiModelProperty(value = "点赞数")
+    private Integer likeCount;
+
+    @ApiModelProperty(value = "回复数")
+    private Integer replyCount;
+
+    @ApiModelProperty(value = "首评标记, 0:是, 1:否")
+    private Integer headType;
+
+    @ApiModelProperty(value = "首评ID(仅子评论存在该属性)")
+    private Integer headId;
+
+    @ApiModelProperty(value = "当前用户是否已点赞,0:未点赞,1:已点赞")
+    private Integer isLiked;
+
+    @ApiModelProperty(value = "回复列表")
+    private List<ReviewCommentVo> replies;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+}
+

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

@@ -0,0 +1,43 @@
+package shop.alien.entity.store.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 用户行为奖励规则树形节点VO
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Data
+@ApiModel(value = "RewardRuleTreeNodeVo", description = "用户行为奖励规则树形节点")
+public class RewardRuleTreeNodeVo {
+
+    @ApiModelProperty(value = "节点值")
+    private String value;
+
+    @ApiModelProperty(value = "节点标签")
+    private String label;
+
+    @ApiModelProperty(value = "是否禁用")
+    private Boolean disabled;
+
+    @ApiModelProperty(value = "子节点列表")
+    private List<RewardRuleTreeNodeVo> children;
+
+    public RewardRuleTreeNodeVo() {
+        this.children = new ArrayList<>();
+    }
+
+    public RewardRuleTreeNodeVo(String value, String label, Boolean disabled) {
+        this.value = value;
+        this.label = label;
+        this.disabled = disabled;
+        this.children = new ArrayList<>();
+    }
+}
+

+ 12 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreCashOutRecordVo.java

@@ -35,4 +35,16 @@ public class StoreCashOutRecordVo extends StoreCashOutRecord {
 
     @ApiModelProperty(value = "收益记录")
     private JSONArray incomeList;
+
+    @ApiModelProperty(value = "当前页码")
+    private Long currentPage;
+
+    @ApiModelProperty(value = "每页条数")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "总记录数")
+    private Long total;
+
+    @ApiModelProperty(value = "总页数")
+    private Long totalPages;
 }

+ 33 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreCommentCountVo.java

@@ -0,0 +1,33 @@
+package shop.alien.entity.store.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 评价计数VO
+ *
+ * @author ssk
+ * @version 1.0
+ * @date 2025/12/01
+ */
+@Data
+@JsonInclude
+public class StoreCommentCountVo {
+
+    @ApiModelProperty(value = "全部评价数")
+    private Integer totalCount;
+
+    @ApiModelProperty(value = "有图评价数")
+    private Integer imageCount;
+
+    @ApiModelProperty(value = "好评数")
+    private Integer goodCount;
+
+    @ApiModelProperty(value = "中评数")
+    private Integer midCount;
+
+    @ApiModelProperty(value = "差评数")
+    private Integer badCount;
+}
+

+ 17 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreIncomeDetailsRecordVo.java

@@ -30,6 +30,10 @@ public class StoreIncomeDetailsRecordVo extends StoreIncomeDetailsRecord {
     @ApiModelProperty(value = "收入金额")
     String incomeMoney;
 
+    @ApiModelProperty(value = "订单价格(原价)")
+    String orderPrice;
+
+
     @ApiModelProperty(value = "手续费Str")
     String commissionStr;
 
@@ -75,5 +79,18 @@ public class StoreIncomeDetailsRecordVo extends StoreIncomeDetailsRecord {
     @ApiModelProperty(value = "抽成比例")
     private String commissionRate;
 
+    @ApiModelProperty(value = "收入明细列表")
     List<StoreIncomeDetailsRecordVo> incomeDetailsRecordVoList;
+
+    @ApiModelProperty(value = "总记录数")
+    private Long total;
+
+    @ApiModelProperty(value = "总页数")
+    private Long totalPages;
+
+    @ApiModelProperty(value = "当前页")
+    private Long currentPage;
+
+    @ApiModelProperty(value = "每页大小")
+    private Long pageSize;
 }

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

@@ -214,4 +214,7 @@ public class StoreInfoVo extends StoreInfo {
 
     @ApiModelProperty(value = "动态数量")
     private Integer dynamicsNum;
+
+    @ApiModelProperty(value = "是否提供餐食")
+    private Integer  mealsFlag;
 }

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

@@ -83,6 +83,9 @@ public class StoreMainInfoVo extends StoreInfo {
     @ApiModelProperty(value = "经营种类ids")
     private List<String> businessTypesList;
 
+    @ApiModelProperty(value = "分类DistIds")
+    private List<String> businessClassifyList;
+
     @ApiModelProperty(value = "到期时间")
     private String expirationDate;
 
@@ -93,7 +96,7 @@ public class StoreMainInfoVo extends StoreInfo {
     private long countdown;
 
     @ApiModelProperty(value = "经营许可证到期时间")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+//    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date foodLicenceExpirationTime;
 
 }

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

@@ -0,0 +1,46 @@
+package shop.alien.entity.store.vo;
+
+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 shop.alien.entity.store.excelVo.util.ExcelImage;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 二期-门店菜单
+ *
+ * @author ssk
+ * @since 2024-12-05
+ */
+@Data
+@JsonInclude
+@ApiModel(value = "StoreMenuImportVo对象")
+public class StoreMenuImportVo {
+
+    @ApiModelProperty(value = "菜品名称")
+    private String dishName;
+
+    @ApiModelProperty(value = "价格")
+    private BigDecimal dishPrice;
+
+    @ApiModelProperty(value = "成本价")
+    private BigDecimal costPrice;
+
+//    @ApiModelProperty(value = "单位")
+//    private String dishesUnit;
+
+    @ApiModelProperty(value = "图片")
+    @ExcelImage
+    private String img;
+
+    @ApiModelProperty(value = "描述")
+    private String description;
+
+    @ApiModelProperty(value = "是否推荐")
+    private Integer dishType;
+}

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

@@ -20,4 +20,7 @@ public class SystemLoginVo {
 
     @ApiModelProperty(value = "提示信息")
     public String message;
+
+    @ApiModelProperty(value = "角色id")
+    public String roleId;
 }

+ 6 - 2
alien-entity/src/main/java/shop/alien/entity/store/vo/WebSocketVo.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 @JsonInclude
@@ -17,7 +18,7 @@ public class WebSocketVo {
     @ApiModelProperty(value = "接收者id")
     private String receiverId;
 
-    @ApiModelProperty(value = "类别  message:消息  notice:公告  heartbeat:心跳  receipt:消息发送成功回调(用来记录消息id)")
+    @ApiModelProperty(value = "类别  message:消息  notice:公告  heartbeat:心跳  receipt:消息发送成功回调(用来记录消息id) position:二手交易实时定位")
     private String category;
 
     @ApiModelProperty(value = "公告类型  (0-系统通知和订单提醒之外的类型  1-系统通知 2-订单提醒)")
@@ -26,7 +27,7 @@ public class WebSocketVo {
     @ApiModelProperty(value = "是否已读  0:未读  1:已读")
     private Integer isRead;
 
-    @ApiModelProperty(value = "消息类型  1-文本  2-图片 3-链接分享  4-二手交易(确认/拒绝/取消)  5-二手交易签到提醒  6-二手交易已签到  7-消息内容不合规")
+    @ApiModelProperty(value = "消息类型  1-文本  2-图片 3-链接分享  4-二手交易(确认/拒绝/取消)  5-二手交易签到提醒  6-二手交易已签到  7-消息内容不合规 8-律师消息")
     private String type;
 
     @ApiModelProperty(value = "消息内容")
@@ -35,6 +36,9 @@ public class WebSocketVo {
     @ApiModelProperty(value = "消息id")
     private Integer messageId;
 
+    @ApiModelProperty(value = "消息idList")
+    private List<Integer> messageIdList;
+
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty(value = "创建时间")
     private Date createdTime;

+ 43 - 0
alien-entity/src/main/java/shop/alien/entity/storePlatform/LifeGroupBuyMainPlatform.java

@@ -0,0 +1,43 @@
+package shop.alien.entity.storePlatform;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.LifeGroupBuyMain;
+
+import java.util.List;
+
+/**
+ * 团购主表
+ * @TableName life_group_buy_main
+ */
+@JsonInclude
+@Data
+public class LifeGroupBuyMainPlatform extends LifeGroupBuyMain {
+
+    /**
+     * 有效期类型
+     */
+    @ApiModelProperty(value = "有效期时间")
+    private String expirationDate;
+
+    /**
+     * 有效期时间数组
+     */
+    @ApiModelProperty(value = "有效期时间数组")
+    private List<String> expirationDateList;
+
+    /**
+     * 不可用日期类型
+     */
+    @ApiModelProperty(value = "不可用日期二维数组")
+    private List<List<String>> disableDateList;
+
+    /**
+     * 图片list
+     */
+    @ApiModelProperty(value = "图片list")
+    private List<String> imageValueStr;
+
+
+}

+ 71 - 0
alien-entity/src/main/java/shop/alien/entity/storePlatform/StoreLicenseHistory.java

@@ -0,0 +1,71 @@
+package shop.alien.entity.storePlatform;
+
+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 java.util.Date;
+
+/**
+ * 商户证照历史记录
+ *
+ * @author system
+ * @since 2025-11-24
+ */
+@Data
+@JsonInclude
+@TableName("store_license_history")
+@ApiModel(value = "StoreLicenseHistory对象", description = "商户证照历史记录")
+public class StoreLicenseHistory extends Model<StoreLicenseHistory> {
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "商户ID")
+    @TableField("store_id")
+    private Integer storeId;
+
+    @ApiModelProperty(value = "证照类型: 1-合同管理, 2-食品经营许可证")
+    @TableField("license_status")
+    private Integer licenseStatus;
+
+    @ApiModelProperty(value = "审核状态: 1-审核中, 2-审核拒绝, 3-审核通过")
+    @TableField("license_execute_status")
+    private Integer licenseExecuteStatus;
+
+    @ApiModelProperty(value = "图片URL")
+    @TableField("img_url")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "拒绝原因")
+    @TableField("reason_refusal")
+    private String reasonRefusal;
+
+    @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
+    @TableField("delete_flag")
+    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.INSERT_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;
+}
+

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно