Parcourir la source

消息通知配置与商家认证

liude il y a 1 an
Parent
commit
a13e9331c1
41 fichiers modifiés avec 1654 ajouts et 1 suppressions
  1. 85 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CarouselImagesDTO.java
  2. 10 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CategoryDTO.java
  3. 58 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CommissionConfigDTO.java
  4. 39 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/HotMerchantDTO.java
  5. 66 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/IncomeRecordDTO.java
  6. 71 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CarouselImagesModifyParam.java
  7. 72 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CarouselImagesPagingParam.java
  8. 5 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CategoryModifyParam.java
  9. 43 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CommissionConfigModifyParam.java
  10. 29 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CommissionConfigPagingParam.java
  11. 36 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/HotMerchantModifyParam.java
  12. 54 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/IncomeRecordModifyParam.java
  13. 54 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CarouselImagesService.java
  14. 47 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CommissionConfigService.java
  15. 38 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/HotMerchantService.java
  16. 29 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/IncomeRecordService.java
  17. 7 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/ReservationService.java
  18. 58 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/CarouselImagesCopier.java
  19. 61 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/CommissionConfigCopier.java
  20. 58 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/HotMerchantCopier.java
  21. 61 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/IncomeRecordCopier.java
  22. 15 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/CarouselImagesMapper.java
  23. 16 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/CommissionConfigMapper.java
  24. 29 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/HotMerchantMapper.java
  25. 15 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/IncomeRecordMapper.java
  26. 92 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/CarouselImages.java
  27. 4 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/Category.java
  28. 63 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/CommissionConfig.java
  29. 48 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/HotMerchant.java
  30. 70 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/IncomeRecord.java
  31. 13 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/CarouselImagesService.java
  32. 13 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/CommissionConfigService.java
  33. 13 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/HotMerchantService.java
  34. 13 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/IncomeRecordService.java
  35. 68 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CarouselImagesServiceImpl.java
  36. 16 1
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CategoryServiceImpl.java
  37. 65 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CommissionConfigServiceImpl.java
  38. 47 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/HotMerchantServiceImpl.java
  39. 44 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/IncomeRecordServiceImpl.java
  40. 5 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/ReservationServiceImpl.java
  41. 24 0
      vehicle-server/src/main/resources/mapper/HotmerchantMapper.xml

+ 85 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CarouselImagesDTO.java

@@ -0,0 +1,85 @@
+package com.chelvc.cloud.vehicle.api.dto;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.util.Date;
+
+/**
+ * 轮播图数据模型
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CarouselImagesDTO {
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 跳转地址
+     */
+    private String url;
+
+    /**
+     * 图片路径
+     */
+    private String viewUrl;
+
+    /**
+     * 状态 0- 无效 1-有效
+     */
+    private String status;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 更新人
+     */
+    private String updater;
+    /**
+     * 图片描述
+     */
+    private String remark;
+    /**
+     * 排序
+     */
+    private Integer seq;
+    /**
+     * 适用途径 1-首页
+     */
+    private String applyWay;
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+    /**
+     * 点击量
+     */
+    private Integer hits;
+}

+ 10 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CategoryDTO.java

@@ -2,6 +2,7 @@ package com.chelvc.cloud.vehicle.api.dto;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 import com.chelvc.cloud.vehicle.api.constant.CategoryType;
 import lombok.AllArgsConstructor;
@@ -25,6 +26,11 @@ public class CategoryDTO implements Serializable {
      */
     private Long id;
 
+    /**
+     * 父级id
+     */
+    private Long parentId;
+
     /**
      * 分类类型
      */
@@ -64,4 +70,8 @@ public class CategoryDTO implements Serializable {
      * 创建时间
      */
     private Date createTime;
+    /**
+     * 子集分类
+     */
+    private List<CategoryDTO> children;
 }

+ 58 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CommissionConfigDTO.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.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 邀请别人消费,邀请人数的不同抽成配置数据模型
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CommissionConfigDTO{
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 最小邀请人数
+     */
+    private Integer minInvitees;
+
+    /**
+     * 最大邀请人数
+     */
+    private Integer maxInvitees;
+
+    /**
+     * 抽成比例
+     */
+    private BigDecimal commissionRate;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 更新人
+     */
+    private String updater;
+
+
+}

+ 39 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/HotMerchantDTO.java

@@ -0,0 +1,39 @@
+package com.chelvc.cloud.vehicle.api.dto;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.util.Date;
+
+/**
+ * 热门搜索数据模型
+ *
+ * @author liude
+ * @data 2023/12/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class HotMerchantDTO{
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 商家id
+     */
+    private String merchantId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 创建人
+     */
+    private Long creator;
+}

+ 66 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/IncomeRecordDTO.java

@@ -0,0 +1,66 @@
+package com.chelvc.cloud.vehicle.api.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 收益记录数据模型
+ *
+ * @author liude
+ * @date 2023/12/22
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class IncomeRecordDTO {
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 邀请用户id
+     */
+    private Long inviterId;
+
+    /**
+     * 被邀请用户id
+     */
+    private Long inviteeId;
+
+    /**
+     * 商品ID
+     */
+    private Long goodsId;
+
+    /**
+     * 订单id
+     */
+    private Long orderId;
+
+    /**
+     * 配置ID
+     */
+    private Long configId;
+
+    /**
+     * 邀请产生的金额或数量
+     */
+    private BigDecimal amount;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+
+}

+ 71 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CarouselImagesModifyParam.java

@@ -0,0 +1,71 @@
+package com.chelvc.cloud.vehicle.api.param;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 轮播图数据模型
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CarouselImagesModifyParam {
+
+    /**
+     * 标题
+     */
+    @NotEmpty(message = "标题不能为空")
+    private String title;
+
+    /**
+     * 跳转地址
+     */
+    private String url;
+
+    /**
+     * 图片路径
+     */
+    @NotEmpty(message = "图片不能为空")
+    private String viewUrl;
+
+    /**
+     * 状态 0- 无效 1-有效
+     */
+    @NotEmpty(message = "状态不能为空")
+    private String status;
+    /**
+     * 图片描述
+     */
+    private String remark;
+    /**
+     * 排序
+     */
+    @NotNull(message = "排序不能为空")
+    private Integer seq;
+    /**
+     * 适用途径 1-首页
+     */
+    @NotEmpty(message = "适用途径不能为空")
+    private String applyWay;
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+    /**
+     * 点击量
+     */
+    private Integer hits;
+}

+ 72 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CarouselImagesPagingParam.java

@@ -0,0 +1,72 @@
+package com.chelvc.cloud.vehicle.api.param;
+import com.chelvc.framework.common.model.Paging;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 轮播图数据模型
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CarouselImagesPagingParam {
+
+    /**
+     * 分页信息
+     */
+    @NotNull(message = "分页不能为空")
+    private Paging paging;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 跳转地址
+     */
+    private String url;
+
+    /**
+     * 图片路径
+     */
+    private String viewUrl;
+
+    /**
+     * 状态 0- 无效 1-有效
+     */
+    private String status;
+    /**
+     * 图片描述
+     */
+    private String remark;
+    /**
+     * 排序
+     */
+    private Integer seq;
+    /**
+     * 适用途径 1-首页
+     */
+    private String applyWay;
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+    /**
+     * 点击量
+     */
+    private Integer hits;
+}

+ 5 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CategoryModifyParam.java

@@ -36,6 +36,11 @@ public class CategoryModifyParam implements Serializable {
     @Size(max = 200, message = "分类图标长度不能大于200")
     private String icon;
 
+    /**
+     * 父级id
+     */
+    private Long parentId;
+
     /**
      * 排序数字
      */

+ 43 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CommissionConfigModifyParam.java

@@ -0,0 +1,43 @@
+package com.chelvc.cloud.vehicle.api.param;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 邀请别人消费,邀请人数的不同抽成配置数据模型
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CommissionConfigModifyParam {
+
+    /**
+     * 最小邀请人数
+     */
+    @NotNull(message = "最小邀请人数不能为空")
+    private Integer minInvitees;
+
+    /**
+     * 最大邀请人数
+     */
+    @NotNull(message = "最大邀请人数不能为空")
+    private Integer maxInvitees;
+
+    /**
+     * 抽成比例
+     */
+    @NotNull(message = "抽成比例不能为空")
+    private BigDecimal commissionRate;
+
+
+}

+ 29 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CommissionConfigPagingParam.java

@@ -0,0 +1,29 @@
+package com.chelvc.cloud.vehicle.api.param;
+import com.chelvc.framework.common.model.Paging;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 邀请别人消费,邀请人数的不同抽成配置数据模型
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CommissionConfigPagingParam {
+
+    /**
+     * 分页信息
+     */
+    @NotNull(message = "分页不能为空")
+    private Paging paging;
+
+}

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

@@ -0,0 +1,36 @@
+package com.chelvc.cloud.vehicle.api.param;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * 热门搜索数据模型
+ *
+ * @author liude
+ * @data 2023/12/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class HotMerchantModifyParam {
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 商家id
+     */
+    @NotNull(message = "商家id不能为空")
+    @Min(value = 1, message = "商家id不能小于1")
+    private Long merchantId;
+
+}

+ 54 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/IncomeRecordModifyParam.java

@@ -0,0 +1,54 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 收益记录数据模型
+ *
+ * @author liude
+ * @date 2023/12/22
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class IncomeRecordModifyParam {
+
+    /**
+     * 邀请用户id
+     */
+    private Long inviterId;
+
+    /**
+     * 被邀请用户id
+     */
+    private Long inviteeId;
+
+    /**
+     * 商品ID
+     */
+    private Long goodsId;
+
+    /**
+     * 订单id
+     */
+    private Long orderId;
+
+    /**
+     * 配置ID
+     */
+    private Long configId;
+
+    /**
+     * 邀请产生的金额或数量
+     */
+    private BigDecimal amount;
+
+
+}

+ 54 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CarouselImagesService.java

@@ -0,0 +1,54 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+import com.chelvc.cloud.vehicle.api.dto.CarouselImagesDTO;
+import com.chelvc.cloud.vehicle.api.param.CarouselImagesModifyParam;
+import com.chelvc.cloud.vehicle.api.param.CarouselImagesPagingParam;
+import com.chelvc.framework.common.model.Pagination;
+
+import java.util.List;
+
+/**
+ * 轮播图接口
+ *
+ * @author liude
+ * @data 2023/12/31
+ */
+public interface CarouselImagesService {
+
+    /**
+     * 新增轮播图
+     *
+     * @param param 新增参数
+     * @return 轮播图主键
+     */
+    Long addCarouselImages(CarouselImagesModifyParam param);
+
+    /**
+     * 修改轮播图
+     *
+     * @param id    轮播图主键
+     * @param param 修改参数
+     */
+    void updateCarouselImages(Long id, CarouselImagesModifyParam param);
+
+    /**
+     * 查询轮播图
+     *
+     * @param param 查询参数
+     * @return 轮播图分页信息
+     */
+    Pagination<CarouselImagesDTO> getCarouselImagesPaging(CarouselImagesPagingParam param);
+
+    /**
+     * 删除轮播图
+     *
+     * @param id    轮播图主键
+     */
+    void deleteCarouselImages(Long id);
+
+    /**
+     * 轮播图列表
+     * @return
+     */
+    List<CarouselImagesDTO> listCarouselImages();
+}

+ 47 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CommissionConfigService.java

@@ -0,0 +1,47 @@
+package com.chelvc.cloud.vehicle.api.service;
+import com.chelvc.cloud.vehicle.api.dto.CommissionConfigDTO;
+import com.chelvc.cloud.vehicle.api.param.CarouselImagesPagingParam;
+import com.chelvc.cloud.vehicle.api.param.CommissionConfigModifyParam;
+import com.chelvc.cloud.vehicle.api.param.CommissionConfigPagingParam;
+import com.chelvc.framework.common.model.Pagination;
+
+/**
+ * 邀请别人消费,邀请人数的不同抽成配置接口
+ *
+ * @author liude
+ * @data 2023/12/31
+ */
+public interface CommissionConfigService {
+
+    /**
+     * 新增抽成配置
+     *
+     * @param param 新增参数
+     * @return 抽成配置主键
+     */
+    Long addCommissionConfig(CommissionConfigModifyParam param);
+
+    /**
+     * 修改抽成配置
+     *
+     * @param id    抽成配置主键
+     * @param param 修改参数
+     */
+    void updateCommissionConfig(Long id, CommissionConfigModifyParam param);
+
+    /**
+     * 查询抽成配置
+     *
+     * @param param 查询参数
+     * @return 抽成配置分页信息
+     */
+    Pagination<CommissionConfigDTO> getCommissionConfigPaging(CommissionConfigPagingParam param);
+
+    /**
+     * 删除抽成配置
+     *
+     * @param id    抽成配置主键
+     */
+    void deleteCommissionConfig(Long id);
+
+}

+ 38 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/HotMerchantService.java

@@ -0,0 +1,38 @@
+package com.chelvc.cloud.vehicle.api.service;
+import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
+import com.chelvc.cloud.vehicle.api.param.HotMerchantModifyParam;
+
+import java.util.List;
+
+/**
+ * 热门搜索接口
+ *
+ * @author liude
+ * @data 2023/12/31
+ */
+public interface HotMerchantService {
+
+    /**
+     * 新增热门搜索
+     *
+     * @param param 新增参数
+     * @return 热门搜索主键
+     */
+    Long addHotMerchant(HotMerchantModifyParam param);
+
+    /**
+     * 热门搜索商家
+     * @return
+     */
+    List<MerchantDTO> listHotMerchant();
+
+
+    /**
+     * 猜你喜欢的商家
+     * @return
+     */
+    List<MerchantDTO> likeMerchant();
+
+
+
+}

+ 29 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/IncomeRecordService.java

@@ -0,0 +1,29 @@
+package com.chelvc.cloud.vehicle.api.service;
+import com.chelvc.cloud.vehicle.api.dto.IncomeRecordDTO;
+import com.chelvc.cloud.vehicle.api.param.IncomeRecordModifyParam;
+
+import java.util.List;
+
+/**
+ * 收益记录接口
+ *
+ * @author liude
+ * @data 2023/12/31
+ */
+public interface IncomeRecordService {
+
+    /**
+     * 新增收益记录
+     *
+     * @param param 新增参数
+     * @return 收益记录主键
+     */
+    Long addIncomeRecord(IncomeRecordModifyParam param);
+
+    /**
+     * 查询用户收益
+     * @return
+     */
+    List<IncomeRecordDTO> listIncomeRecord();
+
+}

+ 7 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/ReservationService.java

@@ -28,4 +28,11 @@ public interface ReservationService {
      * @return 用户预约列表
      */
     List<ReservationDTO> listUserReservations(ReservationQueryParam param);
+
+    /**
+     * 取消预约
+     *
+     * @param id    预约记录逐渐主键
+     */
+    void deleteReservation(Long id);
 }

+ 58 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/CarouselImagesCopier.java

@@ -0,0 +1,58 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+import com.chelvc.cloud.vehicle.api.dto.CarouselImagesDTO;
+import com.chelvc.cloud.vehicle.api.param.CarouselImagesModifyParam;
+import com.chelvc.cloud.vehicle.server.entity.CarouselImages;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 轮播图拷贝接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface CarouselImagesCopier {
+    /**
+     * 对象拷贝接口实例
+     */
+    CarouselImagesCopier INSTANCE = Mappers.getMapper(CarouselImagesCopier.class);
+
+    /**
+     * 轮播图信息拷贝
+     *
+     * @param carouselImages 轮播图信息
+     * @return 轮播图信息
+     */
+    CarouselImagesDTO copying(CarouselImages carouselImages);
+
+    /**
+     * 轮播图信息拷贝
+     *
+     * @param carouselImages 轮播图信息集合
+     * @return 轮播图信息列表
+     */
+    List<CarouselImagesDTO> copying(Collection<CarouselImages> carouselImages);
+
+    /**
+     * 轮播图信息拷贝
+     *
+     * @param param 轮播图更新参数
+     * @return 轮播图信息
+     */
+    CarouselImages copying(CarouselImagesModifyParam param);
+
+    /**
+     * 轮播图信息拷贝
+     *
+     * @param param    轮播图更新参数
+     * @param carouselImages 轮播图信息
+     */
+    void copying(CarouselImagesModifyParam param, @MappingTarget CarouselImages carouselImages);
+}

+ 61 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/CommissionConfigCopier.java

@@ -0,0 +1,61 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+import com.chelvc.cloud.vehicle.api.dto.CarouselImagesDTO;
+import com.chelvc.cloud.vehicle.api.dto.CommissionConfigDTO;
+import com.chelvc.cloud.vehicle.api.param.CarouselImagesModifyParam;
+import com.chelvc.cloud.vehicle.api.param.CommissionConfigModifyParam;
+import com.chelvc.cloud.vehicle.server.entity.CarouselImages;
+import com.chelvc.cloud.vehicle.server.entity.CommissionConfig;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 邀请别人消费,邀请人数的不同抽成配置拷贝接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface CommissionConfigCopier {
+    /**
+     * 对象拷贝接口实例
+     */
+    CommissionConfigCopier INSTANCE = Mappers.getMapper(CommissionConfigCopier.class);
+
+    /**
+     * 抽成配置信息拷贝
+     *
+     * @param commissionConfig 抽成配置信息
+     * @return 抽成配置信息
+     */
+    CommissionConfigDTO copying(CommissionConfig commissionConfig);
+
+    /**
+     * 抽成配置信息拷贝
+     *
+     * @param commissionConfigs 抽成配置信息集合
+     * @return 抽成配置信息列表
+     */
+    List<CommissionConfigDTO> copying(Collection<CommissionConfig> commissionConfigs);
+
+    /**
+     * 抽成配置信息拷贝
+     *
+     * @param param 抽成配置更新参数
+     * @return 抽成配置信息
+     */
+    CommissionConfig copying(CommissionConfigModifyParam param);
+
+    /**
+     * 抽成配置信息拷贝
+     *
+     * @param param    抽成配置更新参数
+     * @param commissionConfig 抽成配置信息
+     */
+    void copying(CommissionConfigModifyParam param, @MappingTarget CommissionConfig commissionConfig);
+}

+ 58 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/HotMerchantCopier.java

@@ -0,0 +1,58 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+import com.chelvc.cloud.vehicle.api.dto.HotMerchantDTO;
+import com.chelvc.cloud.vehicle.api.param.HotMerchantModifyParam;
+import com.chelvc.cloud.vehicle.server.entity.HotMerchant;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 热门搜索拷贝接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface HotMerchantCopier {
+    /**
+     * 对象拷贝接口实例
+     */
+    HotMerchantCopier INSTANCE = Mappers.getMapper(HotMerchantCopier.class);
+
+    /**
+     * 热门搜索信息拷贝
+     *
+     * @param hotMerchant 热门搜索信息
+     * @return 热门搜索信息
+     */
+    HotMerchantDTO copying(HotMerchant hotMerchant);
+
+    /**
+     * 热门搜索信息拷贝
+     *
+     * @param hotMerchants 热门搜索信息集合
+     * @return 热门搜索信息列表
+     */
+    List<HotMerchantDTO> copying(Collection<HotMerchant> hotMerchants);
+
+    /**
+     * 热门搜索信息拷贝
+     *
+     * @param param 热门搜索更新参数
+     * @return 热门搜索信息
+     */
+    HotMerchant copying(HotMerchantModifyParam param);
+
+    /**
+     * 热门搜索信息拷贝
+     *
+     * @param param   热门搜索更新参数
+     * @param hotMerchant 热门搜索信息
+     */
+    void copying(HotMerchantModifyParam param, @MappingTarget HotMerchant hotMerchant);
+}

+ 61 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/IncomeRecordCopier.java

@@ -0,0 +1,61 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+import com.chelvc.cloud.vehicle.api.dto.CommissionConfigDTO;
+import com.chelvc.cloud.vehicle.api.dto.IncomeRecordDTO;
+import com.chelvc.cloud.vehicle.api.param.CommissionConfigModifyParam;
+import com.chelvc.cloud.vehicle.api.param.IncomeRecordModifyParam;
+import com.chelvc.cloud.vehicle.server.entity.CommissionConfig;
+import com.chelvc.cloud.vehicle.server.entity.IncomeRecord;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 收益记录拷贝接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface IncomeRecordCopier {
+    /**
+     * 对象拷贝接口实例
+     */
+    IncomeRecordCopier INSTANCE = Mappers.getMapper(IncomeRecordCopier.class);
+
+    /**
+     * 收益记录信息拷贝
+     *
+     * @param incomeRecord 收益记录信息
+     * @return 收益记录信息
+     */
+    IncomeRecordDTO copying(IncomeRecord incomeRecord);
+
+    /**
+     * 收益记录信息拷贝
+     *
+     * @param incomeRecords 收益记录信息集合
+     * @return 收益记录信息列表
+     */
+    List<IncomeRecordDTO> copying(Collection<IncomeRecord> incomeRecords);
+
+    /**
+     * 收益记录信息拷贝
+     *
+     * @param param 收益记录更新参数
+     * @return 收益记录信息
+     */
+    IncomeRecord copying(IncomeRecordModifyParam param);
+
+    /**
+     * 收益记录信息拷贝
+     *
+     * @param param    收益记录更新参数
+     * @param incomeRecord 收益记录信息
+     */
+    void copying(IncomeRecordModifyParam param, @MappingTarget IncomeRecord incomeRecord);
+}

+ 15 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/CarouselImagesMapper.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.CarouselImages;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 轮播图数据操作接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Mapper
+public interface CarouselImagesMapper extends BaseMapper<CarouselImages> {
+}

+ 16 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/CommissionConfigMapper.java

@@ -0,0 +1,16 @@
+package com.chelvc.cloud.vehicle.server.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chelvc.cloud.vehicle.server.entity.CarouselImages;
+import com.chelvc.cloud.vehicle.server.entity.CommissionConfig;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *  邀请别人消费,邀请人数的不同抽成配置操作接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Mapper
+public interface CommissionConfigMapper extends BaseMapper<CommissionConfig> {
+}

+ 29 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/HotMerchantMapper.java

@@ -0,0 +1,29 @@
+package com.chelvc.cloud.vehicle.server.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
+import com.chelvc.cloud.vehicle.server.entity.HotMerchant;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 热门搜索数据操作接口
+ *
+ * @author liude
+ * @date 2023/12/19
+ */
+@Mapper
+public interface HotMerchantMapper extends BaseMapper<HotMerchant> {
+    /**
+     * 热门搜索商家
+     * @return
+     */
+    List<MerchantDTO> listHotMerchant();
+
+    /**
+     * 猜你喜欢的商家
+     * @return
+     */
+    List<MerchantDTO> likeMerchant(Long userId);
+}

+ 15 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/IncomeRecordMapper.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.IncomeRecord;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 收益数据操作接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Mapper
+public interface IncomeRecordMapper extends BaseMapper<IncomeRecord> {
+}

+ 92 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/CarouselImages.java

@@ -0,0 +1,92 @@
+package com.chelvc.cloud.vehicle.server.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.chelvc.framework.database.entity.Entity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.util.Date;
+
+/**
+ * 轮播图数据模型
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CarouselImages implements Entity<Long> {
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 跳转地址
+     */
+    private String url;
+
+    /**
+     * 图片路径
+     */
+    private String viewUrl;
+
+    /**
+     * 状态 0- 无效 1-有效
+     */
+    private String status;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+    /**
+     * 创建人
+     */
+    private String creator;
+    /**
+     * 更新人
+     */
+    private String updater;
+    /**
+     * 图片描述
+     */
+    private String remark;
+    /**
+     * 排序
+     */
+    private Integer seq;
+    /**
+     * 适用途径 1-首页
+     */
+    private String applyWay;
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+    /**
+     * 点击量
+     */
+    private Integer hits;
+
+
+}

+ 4 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/Category.java

@@ -30,6 +30,10 @@ public class Category extends ModifyEntity<Long> {
      */
     @TableId(type = IdType.ASSIGN_ID)
     private Long id;
+    /**
+     * 父级id
+     */
+    private Long parentId;
 
     /**
      * 分类类型

+ 63 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/CommissionConfig.java

@@ -0,0 +1,63 @@
+package com.chelvc.cloud.vehicle.server.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.chelvc.framework.database.entity.Entity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 邀请别人消费,邀请人数的不同抽成配置数据模型
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CommissionConfig implements Entity<Long> {
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 最小邀请人数
+     */
+    private Integer minInvitees;
+
+    /**
+     * 最大邀请人数
+     */
+    private Integer maxInvitees;
+
+    /**
+     * 抽成比例
+     */
+    private BigDecimal commissionRate;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+    /**
+     * 创建人
+     */
+    private Long creator;
+    /**
+     * 更新人
+     */
+    private Long updater;
+
+
+}

+ 48 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/HotMerchant.java

@@ -0,0 +1,48 @@
+package com.chelvc.cloud.vehicle.server.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.chelvc.framework.database.entity.Entity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.util.Date;
+
+/**
+ * 热门搜索数据模型
+ *
+ * @author liude
+ * @data 2023/12/31
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class HotMerchant implements Entity<Long> {
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 商家id
+     */
+    private String merchantId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 创建人
+     */
+    private Long creator;
+}

+ 70 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/IncomeRecord.java

@@ -0,0 +1,70 @@
+package com.chelvc.cloud.vehicle.server.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.chelvc.framework.database.entity.Entity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 邀请别人消费,邀请人数的不同抽成配置数据模型
+ *
+ * @author liude
+ * @date 2023/12/22
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class IncomeRecord implements Entity<Long> {
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 邀请用户id
+     */
+    private Long inviterId;
+
+    /**
+     * 被邀请用户id
+     */
+    private Long inviteeId;
+
+    /**
+     * 商品ID
+     */
+    private Long goodsId;
+
+    /**
+     * 订单id
+     */
+    private Long orderId;
+
+    /**
+     * 配置ID
+     */
+    private Long configId;
+
+    /**
+     * 邀请产生的金额或数量
+     */
+    private BigDecimal amount;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+
+}

+ 13 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/CarouselImagesService.java

@@ -0,0 +1,13 @@
+package com.chelvc.cloud.vehicle.server.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chelvc.cloud.vehicle.server.entity.CarouselImages;
+
+/**
+ * 轮播图业务操作接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+public interface CarouselImagesService extends IService<CarouselImages> {
+}

+ 13 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/CommissionConfigService.java

@@ -0,0 +1,13 @@
+package com.chelvc.cloud.vehicle.server.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chelvc.cloud.vehicle.server.entity.CommissionConfig;
+
+/**
+ * 抽成业务操作接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+public interface CommissionConfigService extends IService<CommissionConfig> {
+}

+ 13 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/HotMerchantService.java

@@ -0,0 +1,13 @@
+package com.chelvc.cloud.vehicle.server.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chelvc.cloud.vehicle.server.entity.HotMerchant;
+
+/**
+ * 热门搜索业务操作接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+public interface HotMerchantService extends IService<HotMerchant> {
+}

+ 13 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/IncomeRecordService.java

@@ -0,0 +1,13 @@
+package com.chelvc.cloud.vehicle.server.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chelvc.cloud.vehicle.server.entity.IncomeRecord;
+
+/**
+ * 收益记录操作接口
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+public interface IncomeRecordService extends IService<IncomeRecord> {
+}

+ 68 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CarouselImagesServiceImpl.java

@@ -0,0 +1,68 @@
+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.CarouselImagesDTO;
+import com.chelvc.cloud.vehicle.api.param.CarouselImagesModifyParam;
+import com.chelvc.cloud.vehicle.api.param.CarouselImagesPagingParam;
+import com.chelvc.cloud.vehicle.server.copier.CarouselImagesCopier;
+import com.chelvc.cloud.vehicle.server.dao.CarouselImagesMapper;
+import com.chelvc.cloud.vehicle.server.entity.CarouselImages;
+import com.chelvc.cloud.vehicle.server.service.CarouselImagesService;
+import com.chelvc.framework.base.util.ResourceUtils;
+import com.chelvc.framework.common.model.Pagination;
+import com.chelvc.framework.common.util.StringUtils;
+import com.chelvc.framework.database.util.PagingUtils;
+import lombok.NonNull;
+import org.apache.dubbo.config.annotation.DubboService;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 轮播图业务操作实现
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@DubboService(interfaceClass = com.chelvc.cloud.vehicle.api.service.CarouselImagesService.class)
+public class CarouselImagesServiceImpl extends ServiceImpl<CarouselImagesMapper, CarouselImages> implements CarouselImagesService,
+        com.chelvc.cloud.vehicle.api.service.CarouselImagesService {
+    @Override
+    public Long addCarouselImages(@NonNull CarouselImagesModifyParam param) {
+        Integer count = this.lambdaQuery().eq(CarouselImages::getTitle, param.getTitle()).count();
+        ResourceUtils.available(count <= 0, "该轮播图已存在");
+        CarouselImages carouselImages = CarouselImagesCopier.INSTANCE.copying(param);
+        this.save(carouselImages);
+        return carouselImages.getId();
+    }
+
+    @Override
+    public void updateCarouselImages(@NonNull Long id, @NonNull CarouselImagesModifyParam param) {
+        CarouselImages carouselImages = ResourceUtils.required(this.getById(id), "该轮播图不存在");
+        CarouselImagesCopier.INSTANCE.copying(param, carouselImages);
+        this.updateById(carouselImages);
+    }
+
+    @Override
+    public Pagination<CarouselImagesDTO> getCarouselImagesPaging(@NonNull CarouselImagesPagingParam param) {
+        Page<CarouselImages> page = this.lambdaQuery()
+                .like(StringUtils.nonEmpty(param.getTitle()), CarouselImages::getTitle, param.getTitle())
+                .eq(Objects.nonNull(param.getStatus()), CarouselImages::getStatus, param.getStatus())
+                .orderByAsc(CarouselImages::getSeq).page(PagingUtils.convert(param.getPaging()));
+        return PagingUtils.convert(page, CarouselImagesCopier.INSTANCE::copying);
+    }
+
+    @Override
+    public void deleteCarouselImages(Long id){
+        ResourceUtils.required(this.getById(id), "该轮播图存在");
+        this.baseMapper.deleteById(id);
+    }
+
+    public List<CarouselImagesDTO> listCarouselImages(){
+        List<CarouselImages> carouselImagesList = this.lambdaQuery()
+                .eq(CarouselImages::getStatus, "1")
+                .orderByAsc(CarouselImages::getSeq).list();
+        return CarouselImagesCopier.INSTANCE.copying(carouselImagesList);
+    }
+
+ }

+ 16 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CategoryServiceImpl.java

@@ -2,7 +2,9 @@ package com.chelvc.cloud.vehicle.server.service.impl;
 
 import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -59,7 +61,19 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> i
         List<Category> categories = this.lambdaQuery().eq(Category::getEnabled, true)
                 .orderByAsc(Category::getSort).list();
         categories.sort(Comparator.comparing(Category::getType).thenComparing(Category::getSort));
-        return CategoryCopier.INSTANCE.copying(categories);
+        List<CategoryDTO> categoryDTOS = CategoryCopier.INSTANCE.copying(categories);
+        categoryDTOS = categoryDTOS.stream().filter(
+                categoryDTO -> categoryDTO.getParentId() == 0L
+        ).collect(Collectors.toList());
+        List<CategoryDTO> categoryList = CategoryCopier.INSTANCE.copying(categories).stream().filter(
+                categoryDTO -> categoryDTO.getParentId() != 0L
+        ).collect(Collectors.toList());
+        Map<Long,List<CategoryDTO>> map = categoryList.stream()
+                .collect(Collectors.groupingBy(CategoryDTO::getParentId));
+        categoryDTOS.forEach(item ->{
+            item.setChildren(map.get(item.getId()));
+        });
+        return categoryDTOS;
     }
 
     @Override
@@ -69,6 +83,7 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> i
     }
     @Override
     public void deleteCategory(Long id){
+        ResourceUtils.required(this.getById(id), "该分类不存在");
         this.baseMapper.deleteById(id);
     }
 }

+ 65 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CommissionConfigServiceImpl.java

@@ -0,0 +1,65 @@
+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.CommissionConfigDTO;
+import com.chelvc.cloud.vehicle.api.param.CommissionConfigModifyParam;
+import com.chelvc.cloud.vehicle.api.param.CommissionConfigPagingParam;
+import com.chelvc.cloud.vehicle.server.copier.CommissionConfigCopier;
+import com.chelvc.cloud.vehicle.server.dao.CommissionConfigMapper;
+import com.chelvc.cloud.vehicle.server.entity.CommissionConfig;
+import com.chelvc.cloud.vehicle.server.service.CommissionConfigService;
+import com.chelvc.framework.base.context.SessionContextHolder;
+import com.chelvc.framework.base.util.ResourceUtils;
+import com.chelvc.framework.common.model.Pagination;
+import com.chelvc.framework.database.util.PagingUtils;
+import lombok.NonNull;
+import org.apache.dubbo.config.annotation.DubboService;
+
+import java.util.Date;
+
+/**
+ * 抽成业务操作实现
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@DubboService(interfaceClass = com.chelvc.cloud.vehicle.api.service.CommissionConfigService.class)
+public class CommissionConfigServiceImpl extends ServiceImpl<CommissionConfigMapper, CommissionConfig> implements CommissionConfigService,
+        com.chelvc.cloud.vehicle.api.service.CommissionConfigService {
+    @Override
+    public Long addCommissionConfig(@NonNull CommissionConfigModifyParam param) {
+        CommissionConfig commissionConfig = CommissionConfigCopier.INSTANCE.copying(param);
+        commissionConfig.setCreateTime(new Date());
+        commissionConfig.setUpdateTime(new Date());
+        Long userId = SessionContextHolder.getId();
+        commissionConfig.setCreator(userId);
+        commissionConfig.setUpdater(userId);
+        this.save(commissionConfig);
+        return commissionConfig.getId();
+    }
+
+    @Override
+    public void updateCommissionConfig(@NonNull Long id, @NonNull CommissionConfigModifyParam param) {
+        CommissionConfig commissionConfig = ResourceUtils.required(this.getById(id), "该轮播图不存在");
+        CommissionConfigCopier.INSTANCE.copying(param, commissionConfig);
+        Long userId = SessionContextHolder.getId();
+        commissionConfig.setUpdateTime(new Date());
+        commissionConfig.setUpdater(userId);
+        this.updateById(commissionConfig);
+    }
+
+    @Override
+    public Pagination<CommissionConfigDTO> getCommissionConfigPaging(@NonNull CommissionConfigPagingParam param) {
+        Page<CommissionConfig> page = this.lambdaQuery()
+                .orderByAsc(CommissionConfig::getCommissionRate).page(PagingUtils.convert(param.getPaging()));
+        return PagingUtils.convert(page, CommissionConfigCopier.INSTANCE::copying);
+    }
+
+    @Override
+    public void deleteCommissionConfig(Long id){
+        ResourceUtils.required(this.getById(id), "该轮播图存在");
+        this.baseMapper.deleteById(id);
+    }
+
+
+ }

+ 47 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/HotMerchantServiceImpl.java

@@ -0,0 +1,47 @@
+package com.chelvc.cloud.vehicle.server.service.impl;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chelvc.cloud.vehicle.api.dto.MerchantDTO;
+import com.chelvc.cloud.vehicle.api.param.HotMerchantModifyParam;
+import com.chelvc.cloud.vehicle.server.copier.HotMerchantCopier;
+import com.chelvc.cloud.vehicle.server.dao.HotMerchantMapper;
+import com.chelvc.cloud.vehicle.server.entity.HotMerchant;
+import com.chelvc.cloud.vehicle.server.service.HotMerchantService;
+import com.chelvc.framework.base.context.SessionContextHolder;
+import lombok.NonNull;
+import org.apache.dubbo.config.annotation.DubboService;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 热门搜索业务操作实现
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@DubboService(interfaceClass = com.chelvc.cloud.vehicle.api.service.HotMerchantService.class)
+public class HotMerchantServiceImpl extends ServiceImpl<HotMerchantMapper, HotMerchant> implements HotMerchantService,
+        com.chelvc.cloud.vehicle.api.service.HotMerchantService{
+    @Override
+    public Long addHotMerchant(@NonNull HotMerchantModifyParam param) {
+        HotMerchant hotMerchant = HotMerchantCopier.INSTANCE.copying(param);
+        Long userId = SessionContextHolder.getId();
+        hotMerchant.setUserId(userId);
+        hotMerchant.setCreator(userId);
+        hotMerchant.setCreateTime(new Date());
+        this.save(hotMerchant);
+        return hotMerchant.getId();
+    }
+
+    @Override
+    public List<MerchantDTO> listHotMerchant(){
+        return this.baseMapper.listHotMerchant();
+    }
+
+
+    @Override
+    public List<MerchantDTO> likeMerchant(){
+        Long userId = SessionContextHolder.getId();
+        return this.baseMapper.likeMerchant(userId);
+    }
+ }

+ 44 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/IncomeRecordServiceImpl.java

@@ -0,0 +1,44 @@
+package com.chelvc.cloud.vehicle.server.service.impl;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chelvc.cloud.vehicle.api.dto.IncomeRecordDTO;
+import com.chelvc.cloud.vehicle.api.param.IncomeRecordModifyParam;
+import com.chelvc.cloud.vehicle.server.copier.IncomeRecordCopier;
+import com.chelvc.cloud.vehicle.server.dao.IncomeRecordMapper;
+import com.chelvc.cloud.vehicle.server.entity.IncomeRecord;
+import com.chelvc.cloud.vehicle.server.service.IncomeRecordService;
+import com.chelvc.framework.base.context.SessionContextHolder;
+import lombok.NonNull;
+import org.apache.dubbo.config.annotation.DubboService;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 收益记录操作实现
+ *
+ * @author liude
+ * @date 2023/12/16
+ */
+@DubboService(interfaceClass = com.chelvc.cloud.vehicle.api.service.IncomeRecordService.class)
+public class IncomeRecordServiceImpl extends ServiceImpl<IncomeRecordMapper, IncomeRecord> implements IncomeRecordService,
+        com.chelvc.cloud.vehicle.api.service.IncomeRecordService {
+    @Override
+    public Long addIncomeRecord(@NonNull IncomeRecordModifyParam param) {
+        IncomeRecord incomeRecord = IncomeRecordCopier.INSTANCE.copying(param);
+        Long userId = SessionContextHolder.getId();
+        incomeRecord.setCreateTime(new Date());
+        incomeRecord.setUpdateTime(new Date());
+        incomeRecord.setInviterId(userId);
+        this.save(incomeRecord);
+        return incomeRecord.getId();
+    }
+    @Override
+    public List<IncomeRecordDTO> listIncomeRecord(){
+        Long userId = SessionContextHolder.getId();
+        List<IncomeRecord> recordList = this.lambdaQuery().eq(IncomeRecord :: getInviteeId,userId).list();
+        return IncomeRecordCopier.INSTANCE.copying(recordList);
+    }
+
+
+
+ }

+ 5 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/ReservationServiceImpl.java

@@ -52,4 +52,9 @@ public class ReservationServiceImpl extends ServiceImpl<ReservationMapper, Reser
                 }).collect(Collectors.toList());
 
     }
+
+    @Override
+    public void deleteReservation(Long id){
+        this.baseMapper.deleteById(id);
+    }
 }

+ 24 - 0
vehicle-server/src/main/resources/mapper/HotmerchantMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.chelvc.cloud.vehicle.server.dao.HotMerchantMapper">
+
+    <select id="listHotMerchant" resultType="com.chelvc.cloud.vehicle.api.dto.MerchantDTO">
+        select mt.id, mt.user_id as userId, mt.name, mt.logo, mt.banners, mt.liaison, mt.mobile,
+               mt.opening, mt.address, mt.score, mt.sale, mt.good_review as goodReview,mt.region, mt.longitude,
+               mt.latitude, mt.recommend, mt.status, mt.creator,
+               mt.create_time as createTime FROM
+            ( SELECT merchant_id, count( merchant_id ) FROM hot_merchant GROUP BY merchant_id ORDER BY count( merchant_id ) DESC ) t
+                LEFT JOIN merchant mt ON t.merchant_id = mt.id
+    </select>
+
+    <select id="likeMerchant" resultType="com.chelvc.cloud.vehicle.api.dto.MerchantDTO">
+        select mt.id, mt.user_id as userId, mt.name, mt.logo, mt.banners, mt.liaison, mt.mobile,
+               mt.opening, mt.address, mt.score, mt.sale, mt.good_review as goodReview,mt.region, mt.longitude,
+               mt.latitude, mt.recommend, mt.status, mt.creator,
+               mt.create_time as createTime
+            FROM
+                ( SELECT merchant_id,user_id, count( merchant_id) FROM hot_merchant GROUP BY merchant_id,user_id ORDER BY count( merchant_id ) DESC ) t
+                LEFT JOIN merchant m ON t.merchant_id = m.id where t.user_id = #{userId}
+    </select>
+
+</mapper>