Bladeren bron

移动商家相关的实体类

qizai 2 jaren geleden
bovenliggende
commit
46e7138e6e
31 gewijzigde bestanden met toevoegingen van 1613 en 0 verwijderingen
  1. 58 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/ArticleDTO.java
  2. 63 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CommentDTO.java
  3. 69 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/EnquireDTO.java
  4. 54 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/EnquireReplyDTO.java
  5. 38 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/ShareDTO.java
  6. 55 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/ArticleModifyParam.java
  7. 36 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/ArticlePagingParam.java
  8. 62 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CommentModifyParam.java
  9. 36 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CommentPagingParam.java
  10. 52 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/EnquireModifyParam.java
  11. 36 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/EnquirePagingParam.java
  12. 37 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/EnquireReplyModifyParam.java
  13. 36 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/EnquireReplyPagingParam.java
  14. 92 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/MerchantModifyParam.java
  15. 51 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/MerchantPagingParam.java
  16. 36 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/SharePagingParam.java
  17. 49 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/ArticleService.java
  18. 73 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CommentService.java
  19. 49 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/EnquireReplyService.java
  20. 48 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/EnquireService.java
  21. 42 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/ShareService.java
  22. 50 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/ArticleCopier.java
  23. 50 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/CommentCopier.java
  24. 50 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/EnquireCopier.java
  25. 50 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/EnquireReplyCopier.java
  26. 50 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/MerchantCopier.java
  27. 32 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/ShareCopier.java
  28. 15 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/CommentMapper.java
  29. 76 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/Comment.java
  30. 75 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/CommentService.java
  31. 93 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CommentServiceImpl.java

+ 58 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/ArticleDTO.java

@@ -0,0 +1,58 @@
+package com.chelvc.cloud.vehicle.api.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 文章信息
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ArticleDTO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 文章标题
+     */
+    private String title;
+
+    /**
+     * 文章内容
+     */
+    private String content;
+
+    /**
+     * 附件列表
+     */
+    private List<String> attachments;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewCount;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+}

+ 63 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CommentDTO.java

@@ -0,0 +1,63 @@
+package com.chelvc.cloud.vehicle.api.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 商家评论信息
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CommentDTO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 商家id
+     */
+    private Long merchantId;
+
+    /**
+     * 评论内容
+     */
+    private String content;
+
+    /**
+     * 附件
+     */
+    private List<String> attachments;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewCount;
+
+    /**
+     * 点赞量
+     */
+    private Long approveCount;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+}

+ 69 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/EnquireDTO.java

@@ -0,0 +1,69 @@
+package com.chelvc.cloud.vehicle.api.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 询价信息
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnquireDTO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 询价类型
+     */
+    private String categoryId;
+
+    /**
+     * 询价内容
+     */
+    private String content;
+
+    /**
+     * 附件列表
+     */
+    private List<String> attachments;
+
+    /**
+     * 经度
+     */
+    private Double latitude;
+
+    /**
+     * 纬度
+     */
+    private Double longitude;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+}

+ 54 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/EnquireReplyDTO.java

@@ -0,0 +1,54 @@
+package com.chelvc.cloud.vehicle.api.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 询价回复信息
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnquireReplyDTO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 询价id
+     */
+    private Long enquireId;
+
+    /**
+     * 回复内容
+     */
+    private String content;
+
+    /**
+     * 附件列表
+     */
+    private List<String> attachments;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+}

+ 38 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/ShareDTO.java

@@ -0,0 +1,38 @@
+package com.chelvc.cloud.vehicle.api.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 分享记录信息
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ShareDTO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+}

+ 55 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/ArticleModifyParam.java

@@ -0,0 +1,55 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 文章更新参数
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ArticleModifyParam implements Serializable {
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 文章标题
+     */
+    @NotBlank(message = "文章标题不能为空")
+    private String title;
+
+    /**
+     * 文章内容
+     */
+    @NotBlank(message = "文章内容不能为空")
+    private String content;
+
+    /**
+     * 附件列表
+     */
+    private List<String> attachments;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewCount;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+}

+ 36 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/ArticlePagingParam.java

@@ -0,0 +1,36 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import com.chelvc.framework.base.model.Paging;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
+/**
+ * 文章分页查询参数
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ArticlePagingParam implements Serializable {
+
+    /**
+     * 分页信息
+     */
+    @NotNull(message = "分页不能为空")
+    private Paging paging;
+
+    /**
+     * 关键字
+     */
+    @Size(max = 100, message = "关键字长度不能大于100")
+    private String keyword;
+}

+ 62 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CommentModifyParam.java

@@ -0,0 +1,62 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 商家评论更新参数
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CommentModifyParam implements Serializable {
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 商家id
+     */
+    @NotNull(message = "商家不能为空")
+    private Long merchantId;
+
+    /**
+     * 评论内容
+     */
+    @NotBlank(message = "评论内容不能为空")
+    private String content;
+
+    /**
+     * 附件
+     */
+    private List<String> attachments;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewCount;
+
+    /**
+     * 点赞量
+     */
+    private Long approveCount;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+
+}

+ 36 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CommentPagingParam.java

@@ -0,0 +1,36 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import com.chelvc.framework.base.model.Paging;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
+/**
+ * 商家评论分页查询参数
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CommentPagingParam implements Serializable {
+
+    /**
+     * 分页信息
+     */
+    @NotNull(message = "分页不能为空")
+    private Paging paging;
+
+    /**
+     * 关键字
+     */
+    @Size(max = 100, message = "关键字长度不能大于100")
+    private String keyword;
+}

+ 52 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/EnquireModifyParam.java

@@ -0,0 +1,52 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 询价更新参数
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnquireModifyParam implements Serializable {
+
+    /**
+     * 询价类型
+     */
+    private String categoryId;
+
+    /**
+     * 询价内容
+     */
+    private String content;
+
+    /**
+     * 附件列表
+     */
+    private List<String> attachments;
+
+    /**
+     * 经度
+     */
+    private Double latitude;
+
+    /**
+     * 纬度
+     */
+    private Double longitude;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+}

+ 36 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/EnquirePagingParam.java

@@ -0,0 +1,36 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import com.chelvc.framework.base.model.Paging;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
+/**
+ * 询价分页查询参数
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnquirePagingParam implements Serializable {
+
+    /**
+     * 分页信息
+     */
+    @NotNull(message = "分页不能为空")
+    private Paging paging;
+
+    /**
+     * 关键字
+     */
+    @Size(max = 100, message = "关键字长度不能大于100")
+    private String keyword;
+}

+ 37 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/EnquireReplyModifyParam.java

@@ -0,0 +1,37 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 询价回复更新参数
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnquireReplyModifyParam implements Serializable {
+
+    /**
+     * 询价id
+     */
+    private Long enquireId;
+
+    /**
+     * 回复内容
+     */
+    private String content;
+
+    /**
+     * 附件列表
+     */
+    private List<String> attachments;
+
+}

+ 36 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/EnquireReplyPagingParam.java

@@ -0,0 +1,36 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import com.chelvc.framework.base.model.Paging;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
+/**
+ * 询价回复分页查询参数
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnquireReplyPagingParam implements Serializable {
+
+    /**
+     * 分页信息
+     */
+    @NotNull(message = "分页不能为空")
+    private Paging paging;
+
+    /**
+     * 关键字
+     */
+    @Size(max = 100, message = "关键字长度不能大于100")
+    private String keyword;
+}

+ 92 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/MerchantModifyParam.java

@@ -0,0 +1,92 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+
+/**
+ * 商家更新参数
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class MerchantModifyParam implements Serializable {
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 分销用户id
+     */
+    private Long referrerId;
+
+    /**
+     * 商家名称
+     */
+    private String name;
+
+    /**
+     * 头像
+     */
+    private String avatar;
+
+    /**
+     * 封面
+     */
+    private String cover;
+
+    /**
+     * 联系人
+     */
+    private String liaison;
+
+    /**
+     * 联系电话
+     */
+    private String mobile;
+
+    /**
+     * 商家等级
+     */
+    private Integer level;
+
+    /**
+     * 区域id
+     */
+    private Long regionId;
+
+    /**
+     * 详细地址
+     */
+    private String address;
+
+    /**
+     * 纬度
+     */
+    private Double latitude;
+
+    /**
+     * 经度
+     */
+    private Double longitude;
+
+    /**
+     * 详细介绍
+     */
+    private String description;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+
+}

+ 51 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/MerchantPagingParam.java

@@ -0,0 +1,51 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import com.chelvc.framework.base.model.Paging;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
+/**
+ * 商家分页查询参数
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class MerchantPagingParam implements Serializable {
+
+    /**
+     * 分页信息
+     */
+    @NotNull(message = "分页不能为空")
+    private Paging paging;
+
+    /**
+     * 关键字
+     */
+    @Size(max = 100, message = "关键字长度不能大于100")
+    private String keyword;
+
+    /**
+     * 用户所在纬度(附近商家传)
+     */
+    private Double latitude;
+
+    /**
+     * 用户所在经度(附近商家传)
+     */
+    private Double longitude;
+
+    /**
+     * 要查看半径多少公里内的商家;单位km(附近商家传)
+     */
+    private Double radius;
+}

+ 36 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/SharePagingParam.java

@@ -0,0 +1,36 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import com.chelvc.framework.base.model.Paging;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
+/**
+ * 分享记录分页查询参数
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SharePagingParam implements Serializable {
+
+    /**
+     * 分页信息
+     */
+    @NotNull(message = "分页不能为空")
+    private Paging paging;
+
+    /**
+     * 关键字
+     */
+    @Size(max = 100, message = "关键字长度不能大于100")
+    private String keyword;
+}

+ 49 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/ArticleService.java

@@ -0,0 +1,49 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+
+import com.chelvc.cloud.vehicle.api.dto.ArticleDTO;
+import com.chelvc.cloud.vehicle.api.param.ArticleModifyParam;
+import com.chelvc.cloud.vehicle.api.param.ArticlePagingParam;
+import com.chelvc.framework.base.model.Pagination;
+
+/**
+ * 文章业务接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+public interface ArticleService {
+
+    /**
+     * 添加文章
+     *
+     * @param param 新增参数
+     * @return 文章主键
+     */
+    Long addArticle(ArticleModifyParam param);
+
+    /**
+     * 更新文章
+     *
+     * @param param 更新参数
+     * @param id 主键
+     */
+    void updateArticle(Long id, ArticleModifyParam param);
+
+    /**
+     * id查找文章信息
+     *
+     * @param id
+     * @return
+     */
+    ArticleDTO getArticle(Long id);
+
+    /**
+     * 分页查询
+     *
+     * @param param 分页参数
+     * @return
+     */
+    Pagination<ArticleDTO> getArticlePaging(ArticlePagingParam param);
+
+}

+ 73 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CommentService.java

@@ -0,0 +1,73 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+
+import com.chelvc.cloud.vehicle.api.dto.CommentDTO;
+import com.chelvc.cloud.vehicle.api.param.CommentModifyParam;
+import com.chelvc.cloud.vehicle.api.param.CommentPagingParam;
+import com.chelvc.framework.base.model.Pagination;
+
+/**
+ * 商家评论业务接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+public interface CommentService {
+
+    /**
+     * 添加商家评论
+     *
+     * @param param 新增参数
+     * @return 商家评论主键
+     */
+    Long addComment(CommentModifyParam param);
+
+    /**
+     * 更新商家评论
+     *
+     * @param param 更新参数
+     * @param id 主键
+     */
+    void updateComment(Long id, CommentModifyParam param);
+
+    /**
+     * id查找商家评论信息
+     *
+     * @param id 主键
+     * @return
+     */
+    CommentDTO getComment(Long id);
+
+    /**
+     * 分页查询 主键
+     *
+     * @param param 分页参数
+     * @return
+     */
+    Pagination<CommentDTO> getCommentPaging(CommentPagingParam param);
+
+    /**
+     * 浏览量加一
+     *
+     * @param id 主键
+     * @return
+     */
+    Boolean addViewNumOne(Long id);
+
+    /**
+     * 点赞
+     *
+     * @param id 主键
+     * @return
+     */
+    Boolean addThumbsUpOne(Long id);
+
+    /**
+     * 取消点赞
+     *
+     * @param id
+     * @return
+     */
+    Boolean cancelThumbsUp(Long id);
+
+}

+ 49 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/EnquireReplyService.java

@@ -0,0 +1,49 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+
+import com.chelvc.cloud.vehicle.api.dto.EnquireReplyDTO;
+import com.chelvc.cloud.vehicle.api.param.EnquireReplyModifyParam;
+import com.chelvc.cloud.vehicle.api.param.EnquireReplyPagingParam;
+import com.chelvc.framework.base.model.Pagination;
+
+/**
+ * 询价回复业务接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+public interface EnquireReplyService {
+
+    /**
+     * 添加询价回复
+     *
+     * @param param 新增参数
+     * @return 询价回复主键
+     */
+    Long addEnquireReply(EnquireReplyModifyParam param);
+
+    /**
+     * 更新询价回复
+     *
+     * @param param 更新参数
+     * @param id 主键
+     */
+    void updateEnquireReply(Long id, EnquireReplyModifyParam param);
+
+    /**
+     * id查找询价回复信息
+     *
+     * @param id
+     * @return
+     */
+    EnquireReplyDTO getEnquireReply(Long id);
+
+    /**
+     * 分页查询
+     *
+     * @param param 分页参数
+     * @return
+     */
+    Pagination<EnquireReplyDTO> getEnquireReplyPaging(EnquireReplyPagingParam param);
+
+}

+ 48 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/EnquireService.java

@@ -0,0 +1,48 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+import com.chelvc.cloud.vehicle.api.dto.EnquireDTO;
+import com.chelvc.cloud.vehicle.api.param.EnquireModifyParam;
+import com.chelvc.cloud.vehicle.api.param.EnquirePagingParam;
+import com.chelvc.framework.base.model.Pagination;
+
+/**
+ * 询价业务接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+public interface EnquireService {
+
+    /**
+     * 添加询价
+     *
+     * @param param 新增参数
+     * @return 询价主键
+     */
+    Long addEnquire(EnquireModifyParam param);
+
+    /**
+     * 更新询价
+     *
+     * @param param 更新参数
+     * @param id 主键
+     */
+    void updateEnquire(Long id, EnquireModifyParam param);
+
+    /**
+     * id查找询价信息
+     *
+     * @param id
+     * @return
+     */
+    EnquireDTO getEnquire(Long id);
+
+    /**
+     * 分页查询
+     *
+     * @param param 分页参数
+     * @return
+     */
+    Pagination<EnquireDTO> getEnquirePaging(EnquirePagingParam param);
+
+}

+ 42 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/ShareService.java

@@ -0,0 +1,42 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+
+import com.chelvc.cloud.vehicle.api.dto.ShareDTO;
+import com.chelvc.cloud.vehicle.api.param.SharePagingParam;
+import com.chelvc.framework.base.model.Pagination;
+
+/**
+ * 分享记录业务接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+public interface ShareService {
+
+    /**
+     * 添加分享记录
+     *
+     * @param 
+     * @return 分享记录主键
+     */
+    Long addShare();
+    
+
+    /**
+     * id查找分享记录信息
+     *
+     * @param id
+     * @return
+     */
+    ShareDTO getShare(Long id);
+    
+
+    /**
+     * 分页查询
+     *
+     * @param param 分页参数
+     * @return
+     */
+    Pagination<ShareDTO> getSharePaging(SharePagingParam param);
+
+}

+ 50 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/ArticleCopier.java

@@ -0,0 +1,50 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+
+import com.chelvc.cloud.vehicle.api.dto.ArticleDTO;
+import com.chelvc.cloud.vehicle.api.param.ArticleModifyParam;
+import com.chelvc.cloud.vehicle.server.entity.Article;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * 文章对象拷贝接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface ArticleCopier {
+
+    /**
+     * 对象拷贝接口实例
+     */
+    ArticleCopier INSTANCE = Mappers.getMapper(ArticleCopier.class);
+
+    /**
+     * 文章信息拷贝
+     *
+     * @param article 文章信息
+     * @return 文章信息
+     */
+    ArticleDTO copying(Article article);
+
+    /**
+     * 文章信息拷贝
+     *
+     * @param param 文章更新参数
+     * @return 文章信息
+     */
+    Article copying(ArticleModifyParam param);
+
+    /**
+     * 文章信息拷贝
+     *
+     * @param param  文章更新参数
+     * @param article 文章信息
+     */
+    void copying(ArticleModifyParam param, @MappingTarget Article article);
+
+}

+ 50 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/CommentCopier.java

@@ -0,0 +1,50 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+
+import com.chelvc.cloud.vehicle.api.dto.CommentDTO;
+import com.chelvc.cloud.vehicle.api.param.CommentModifyParam;
+import com.chelvc.cloud.vehicle.server.entity.Comment;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * 商家评论对象拷贝接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface CommentCopier {
+
+    /**
+     * 对象拷贝接口实例
+     */
+    CommentCopier INSTANCE = Mappers.getMapper(CommentCopier.class);
+
+    /**
+     * 商家评论信息拷贝
+     *
+     * @param comment 商家评论信息
+     * @return 商家评论信息
+     */
+    CommentDTO copying(Comment comment);
+
+    /**
+     * 商家评论信息拷贝
+     *
+     * @param param 商家评论更新参数
+     * @return 商家评论信息
+     */
+    Comment copying(CommentModifyParam param);
+
+    /**
+     * 商家评论信息拷贝
+     *
+     * @param param  商家评论更新参数
+     * @param comment 商家评论信息
+     */
+    void copying(CommentModifyParam param, @MappingTarget Comment comment);
+
+}

+ 50 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/EnquireCopier.java

@@ -0,0 +1,50 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+
+import com.chelvc.cloud.vehicle.api.dto.EnquireDTO;
+import com.chelvc.cloud.vehicle.api.param.EnquireModifyParam;
+import com.chelvc.cloud.vehicle.server.entity.Enquire;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * 询价对象拷贝接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface EnquireCopier {
+
+    /**
+     * 对象拷贝接口实例
+     */
+    EnquireCopier INSTANCE = Mappers.getMapper(EnquireCopier.class);
+
+    /**
+     * 询价信息拷贝
+     *
+     * @param enquire 询价信息
+     * @return 询价信息
+     */
+    EnquireDTO copying(Enquire enquire);
+
+    /**
+     * 询价信息拷贝
+     *
+     * @param param 询价更新参数
+     * @return 询价信息
+     */
+    Enquire copying(EnquireModifyParam param);
+
+    /**
+     * 询价信息拷贝
+     *
+     * @param param  询价更新参数
+     * @param enquire 询价信息
+     */
+    void copying(EnquireModifyParam param, @MappingTarget Enquire enquire);
+
+}

+ 50 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/EnquireReplyCopier.java

@@ -0,0 +1,50 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+
+import com.chelvc.cloud.vehicle.api.dto.EnquireReplyDTO;
+import com.chelvc.cloud.vehicle.api.param.EnquireReplyModifyParam;
+import com.chelvc.cloud.vehicle.server.entity.EnquireReply;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * 询价回复对象拷贝接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface EnquireReplyCopier {
+
+    /**
+     * 对象拷贝接口实例
+     */
+    EnquireReplyCopier INSTANCE = Mappers.getMapper(EnquireReplyCopier.class);
+
+    /**
+     * 询价回复信息拷贝
+     *
+     * @param enquireReply 询价回复信息
+     * @return 询价回复信息
+     */
+    EnquireReplyDTO copying(EnquireReply enquireReply);
+
+    /**
+     * 询价回复信息拷贝
+     *
+     * @param param 询价回复更新参数
+     * @return 询价回复信息
+     */
+    EnquireReply copying(EnquireReplyModifyParam param);
+
+    /**
+     * 询价回复信息拷贝
+     *
+     * @param param  询价回复更新参数
+     * @param enquireReply 询价回复信息
+     */
+    void copying(EnquireReplyModifyParam param, @MappingTarget EnquireReply enquireReply);
+
+}

+ 50 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/MerchantCopier.java

@@ -0,0 +1,50 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+
+import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
+import com.chelvc.cloud.vehicle.api.param.MerchantModifyParam;
+import com.chelvc.cloud.vehicle.server.entity.Merchant;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * 商家对象拷贝接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface MerchantCopier {
+
+    /**
+     * 对象拷贝接口实例
+     */
+    MerchantCopier INSTANCE = Mappers.getMapper(MerchantCopier.class);
+
+    /**
+     * 商家信息拷贝
+     *
+     * @param merchant 商家信息
+     * @return 商家信息
+     */
+    MerchantDTO copying(Merchant merchant);
+
+    /**
+     * 商家信息拷贝
+     *
+     * @param param 商家更新参数
+     * @return 商家信息
+     */
+    Merchant copying(MerchantModifyParam param);
+
+    /**
+     * 商家信息拷贝
+     *
+     * @param param  商家更新参数
+     * @param merchant 商家信息
+     */
+    void copying(MerchantModifyParam param, @MappingTarget Merchant merchant);
+
+}

+ 32 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/ShareCopier.java

@@ -0,0 +1,32 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+
+import com.chelvc.cloud.vehicle.api.dto.ShareDTO;
+import com.chelvc.cloud.vehicle.server.entity.Share;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * 分享记录对象拷贝接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface ShareCopier {
+
+    /**
+     * 对象拷贝接口实例
+     */
+    ShareCopier INSTANCE = Mappers.getMapper(ShareCopier.class);
+
+    /**
+     * 分享记录信息拷贝
+     *
+     * @param share 分享记录信息
+     * @return 分享记录信息
+     */
+    ShareDTO copying(Share share);
+
+}

+ 15 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/CommentMapper.java

@@ -0,0 +1,15 @@
+package com.chelvc.cloud.vehicle.server.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chelvc.cloud.vehicle.server.entity.Comment;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 商家评价数据操作接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@Mapper
+public interface CommentMapper extends BaseMapper<Comment> {
+}

+ 76 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/Comment.java

@@ -0,0 +1,76 @@
+package com.chelvc.cloud.vehicle.server.entity;
+
+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.chelvc.cloud.vehicle.api.constant.ContentStatus;
+import com.chelvc.framework.database.entity.BasicEntity;
+import com.chelvc.framework.database.interceptor.StringsTypeHandler;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+import java.util.List;
+
+/**
+ * 商家评价数据模型
+ *
+ * @author xp
+ * @data 2023/4/1
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@TableName(autoResultMap = true)
+public class Comment extends BasicEntity<Long> {
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 商家id
+     */
+    private Long merchantId;
+
+    /**
+     * 评论内容
+     */
+    private String content;
+
+    /**
+     * 附件
+     */
+    @TableField(typeHandler = StringsTypeHandler.class)
+    private List<String> attachments;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewCount;
+
+    /**
+     * 点赞量
+     */
+    private Long approveCount;
+
+    /**
+     * 状态
+     */
+    private ContentStatus status;
+
+}

+ 75 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/CommentService.java

@@ -0,0 +1,75 @@
+package com.chelvc.cloud.vehicle.server.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chelvc.cloud.vehicle.api.dto.CommentDTO;
+import com.chelvc.cloud.vehicle.api.param.CommentModifyParam;
+import com.chelvc.cloud.vehicle.api.param.CommentPagingParam;
+import com.chelvc.cloud.vehicle.server.entity.Comment;
+import com.chelvc.framework.base.model.Pagination;
+
+/**
+ * 商家评论业务接口
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+public interface CommentService extends IService<Comment> {
+
+    /**
+     * 添加商家评论
+     *
+     * @param param 新增参数
+     * @return 商家评论主键
+     */
+    Long addComment(CommentModifyParam param);
+
+    /**
+     * 更新商家评论
+     *
+     * @param param 更新参数
+     * @param id 主键
+     */
+    void updateComment(Long id, CommentModifyParam param);
+
+    /**
+     * id查找商家评论信息
+     *
+     * @param id 主键
+     * @return
+     */
+    CommentDTO getComment(Long id);
+
+    /**
+     * 分页查询 主键
+     *
+     * @param param 分页参数
+     * @return
+     */
+    Pagination<CommentDTO> getCommentPaging(CommentPagingParam param);
+
+    /**
+     * 浏览量加一
+     *
+     * @param id 主键
+     * @return
+     */
+    Boolean addViewNumOne(Long id);
+
+    /**
+     * 点赞
+     *
+     * @param id 主键
+     * @return
+     */
+    Boolean addThumbsUpOne(Long id);
+
+    /**
+     * 取消点赞
+     *
+     * @param id
+     * @return
+     */
+    Boolean cancelThumbsUp(Long id);
+
+}

+ 93 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CommentServiceImpl.java

@@ -0,0 +1,93 @@
+package com.chelvc.cloud.vehicle.server.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chelvc.cloud.vehicle.api.dto.CommentDTO;
+import com.chelvc.cloud.vehicle.api.param.CommentModifyParam;
+import com.chelvc.cloud.vehicle.api.param.CommentPagingParam;
+import com.chelvc.cloud.vehicle.server.copier.CommentCopier;
+import com.chelvc.cloud.vehicle.server.dao.CommentMapper;
+import com.chelvc.cloud.vehicle.server.entity.Comment;
+import com.chelvc.cloud.vehicle.server.service.CommentService;
+import com.chelvc.framework.base.model.Pagination;
+import com.chelvc.framework.database.context.DatabaseContextHolder;
+import com.chelvc.framework.database.util.PagingUtils;
+import lombok.NonNull;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 商家评论业务操作实现
+ *
+ * @author xp
+ * @data 2023/3/31
+ */
+@DubboService(interfaceClass = com.chelvc.cloud.vehicle.api.service.CommentService.class)
+public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> implements CommentService,
+        com.chelvc.cloud.vehicle.api.service.CommentService {
+
+    @Override
+    public Long addComment(@NonNull CommentModifyParam param) {
+        Comment comment = CommentCopier.INSTANCE.copying(param);
+        this.save(comment);
+        return comment.getId();
+    }
+
+    @Override
+    public void updateComment(@NonNull Long id, @NonNull CommentModifyParam param) {
+        Comment comment = DatabaseContextHolder.getRequireEntity(this, id, "商家评论不存在");
+        CommentCopier.INSTANCE.copying(param, comment);
+        this.updateById(comment);
+    }
+
+    @Override
+    public CommentDTO getComment(@NonNull Long id) {
+        return this.convert(this.getById(id));
+    }
+
+    @Override
+    public Pagination<CommentDTO> getCommentPaging(@NonNull CommentPagingParam param) {
+        // 查询商家评论分页
+        Page<Comment> page = this.lambdaQuery()
+                .orderByDesc(Comment::getId).page(PagingUtils.convert(param.getPaging()));
+        List<Comment> records = page.getRecords();
+        if (CollectionUtils.isEmpty(records)) {
+            return Pagination.empty();
+        }
+
+        // 构建商家评论信息
+        List<CommentDTO> comments = records.stream().map(this::convert).collect(Collectors.toList());
+        return PagingUtils.convert(page, comments);
+    }
+
+    @Override
+    public Boolean addViewNumOne(Long id) {
+        // todo redis还是数据库?
+        return true;
+    }
+
+    @Override
+    public Boolean addThumbsUpOne(Long id) {
+        // todo redis还是数据库?
+        return true;
+    }
+
+    @Override
+    public Boolean cancelThumbsUp(Long id) {
+        // todo redis还是数据库?
+        return true;
+    }
+
+    /**
+     * 转换商家评论信息
+     *
+     * @param comment 商家评论
+     * @return 商家评论
+     */
+    private CommentDTO convert(Comment comment) {
+        return CommentCopier.INSTANCE.copying(comment);
+    }
+}