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

询价和回复相关功能开发

WangChanghua 1 жил өмнө
parent
commit
8dd749a864

+ 95 - 0
src/main/java/com/chelvc/cloud/maintain/controller/ArticleController.java

@@ -0,0 +1,95 @@
+package com.chelvc.cloud.maintain.controller;
+
+import com.chelvc.cloud.maintain.copier.ArticleCopier;
+import com.chelvc.cloud.maintain.vo.ArticleVO;
+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.cloud.vehicle.api.service.ArticleService;
+import com.chelvc.framework.base.annotation.ResponseWrapping;
+import com.chelvc.framework.base.util.ResourceUtils;
+import com.chelvc.framework.common.model.Pagination;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.Min;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 文章接口
+ *
+ * @author xp
+ * @data 2023/4/4
+ */
+@Validated
+@RestController
+@ResponseWrapping
+public class ArticleController {
+
+    @DubboReference
+    private ArticleService articleService;
+
+    /**
+     * 新增文章
+     *
+     * @param param 新增参数
+     * @return 文章主键
+     */
+    @PostMapping("/article")
+    public Long addArticle(@RequestBody @Valid ArticleModifyParam param) {
+        return this.articleService.addArticle(param);
+    }
+
+    /**
+     * 修改文章
+     *
+     * @param id    文章主键
+     * @param param 修改参数
+     */
+    @PutMapping("/article/{id}")
+    public void updateArticle(@PathVariable("id") @Min(value = 1, message = "文章主键不能小于1") Long id,
+                               @RequestBody @Valid ArticleModifyParam param) {
+        this.articleService.updateArticle(id, param);
+    }
+
+
+    /**
+     * 获取文章信息
+     *
+     * @param id 文章主键
+     * @return 文章信息
+     */
+    @GetMapping("/article/{id}")
+    public ArticleVO getArticle(@PathVariable("id") @Min(value = 1, message = "文章主键不能小于1") Long id) {
+        ArticleDTO article = this.articleService.getArticle(id);
+        ResourceUtils.required(article, "文章不存在");
+        return this.covert(article);
+    }
+
+    /**
+     * 查询文章分页
+     *
+     * @param param 查询参数
+     * @return 文章分页信息
+     */
+    @GetMapping("/article/paging")
+    public Pagination<ArticleVO> getArticlePaging(@Valid ArticlePagingParam param) {
+        Pagination<ArticleDTO> articlePaging = this.articleService.getArticlePaging(param);
+        List<ArticleVO> articles = articlePaging.getRecords().stream().map(this::covert).collect(Collectors.toList());
+        return articlePaging.convert(articles);
+    }
+
+    /**
+     * 转换
+     *
+     * @param article
+     * @return
+     */
+    public ArticleVO covert(ArticleDTO article) {
+        return ArticleCopier.INSTANCE.copying(article);
+    }
+
+}

+ 2 - 1
src/main/java/com/chelvc/cloud/maintain/controller/CouponController.java

@@ -4,6 +4,7 @@ import com.chelvc.cloud.maintain.copier.CouponCopier;
 import com.chelvc.cloud.maintain.vo.CouponVO;
 import com.chelvc.cloud.vehicle.api.constant.CouponClaimType;
 import com.chelvc.cloud.vehicle.api.constant.CouponStatus;
+import com.chelvc.cloud.vehicle.api.constant.PromotionStatus;
 import com.chelvc.cloud.vehicle.api.dto.CouponDTO;
 import com.chelvc.cloud.vehicle.api.param.CouponModifyParam;
 import com.chelvc.cloud.vehicle.api.param.CouponPagingParam;
@@ -121,7 +122,7 @@ public class CouponController {
      */
     @GetMapping("/coupon/availablePaging")
     public Pagination<CouponVO> getAvailableCouponPaging(@Valid CouponPagingParam param) {
-        param.setCouponStatus(CouponStatus.ONLINE);
+        param.setPromotionStatus(PromotionStatus.START);
         param.setCouponClaimType(CouponClaimType.FREE);
         return this.getCouponPaging(param);
     }

+ 95 - 0
src/main/java/com/chelvc/cloud/maintain/controller/EnquireController.java

@@ -0,0 +1,95 @@
+package com.chelvc.cloud.maintain.controller;
+
+import com.chelvc.cloud.maintain.copier.EnquireCopier;
+import com.chelvc.cloud.maintain.vo.EnquireVO;
+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.cloud.vehicle.api.service.EnquireService;
+import com.chelvc.framework.base.annotation.ResponseWrapping;
+import com.chelvc.framework.base.util.ResourceUtils;
+import com.chelvc.framework.common.model.Pagination;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.Min;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 询价接口
+ * 
+ * @author xp
+ * @data 2023/4/5
+ */
+@Validated
+@RestController
+@ResponseWrapping
+public class EnquireController {
+    
+    @DubboReference
+    private EnquireService enquireService;
+
+    /**
+     * 新增询价
+     *
+     * @param param 新增参数
+     * @return 询价主键
+     */
+    @PostMapping("/enquire")
+    public Long addEnquire(@RequestBody @Valid EnquireModifyParam param) {
+        return this.enquireService.addEnquire(param);
+    }
+
+    /**
+     * 修改询价
+     *
+     * @param id    询价主键
+     * @param param 修改参数
+     */
+    @PutMapping("/enquire/{id}")
+    public void updateEnquire(@PathVariable("id") @Min(value = 1, message = "询价主键不能小于1") Long id,
+                              @RequestBody @Valid EnquireModifyParam param) {
+        this.enquireService.updateEnquire(id, param);
+    }
+
+
+    /**
+     * 获取询价信息
+     *
+     * @param id 询价主键
+     * @return 询价信息
+     */
+    @GetMapping("/enquire/{id}")
+    public EnquireVO getEnquire(@PathVariable("id") @Min(value = 1, message = "询价主键不能小于1") Long id) {
+        EnquireDTO enquire = this.enquireService.getEnquire(id);
+        ResourceUtils.required(enquire, "询价不存在");
+        return this.covert(enquire);
+    }
+
+    /**
+     * 查询询价分页
+     *
+     * @param param 查询参数
+     * @return 询价分页信息
+     */
+    @GetMapping("/enquire/paging")
+    public Pagination<EnquireVO> getEnquirePaging(@Valid EnquirePagingParam param) {
+        Pagination<EnquireDTO> enquirePaging = this.enquireService.getEnquirePaging(param);
+        List<EnquireVO> enquires = enquirePaging.getRecords().stream().map(this::covert).collect(Collectors.toList());
+        return enquirePaging.convert(enquires);
+    }
+
+    /**
+     * 转换
+     *
+     * @param enquire
+     * @return
+     */
+    public EnquireVO covert(EnquireDTO enquire) {
+        return EnquireCopier.INSTANCE.copying(enquire);
+    }
+    
+}

+ 95 - 0
src/main/java/com/chelvc/cloud/maintain/controller/EnquireReplyController.java

@@ -0,0 +1,95 @@
+package com.chelvc.cloud.maintain.controller;
+
+import com.chelvc.cloud.maintain.copier.EnquireReplyCopier;
+import com.chelvc.cloud.maintain.vo.EnquireReplyVO;
+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.cloud.vehicle.api.service.EnquireReplyService;
+import com.chelvc.framework.base.annotation.ResponseWrapping;
+import com.chelvc.framework.base.util.ResourceUtils;
+import com.chelvc.framework.common.model.Pagination;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.Min;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 询价回复接口
+ *
+ * @author xp
+ * @data 2023/4/5
+ */
+@Validated
+@RestController
+@ResponseWrapping
+public class EnquireReplyController {
+    
+    @DubboReference
+    private EnquireReplyService enquireReplyService;
+
+    /**
+     * 新增询价回复
+     *
+     * @param param 新增参数
+     * @return 询价回复主键
+     */
+    @PostMapping("/enquire-reply")
+    public Long addEnquire(@RequestBody @Valid EnquireReplyModifyParam param) {
+        return this.enquireReplyService.addEnquireReply(param);
+    }
+
+    /**
+     * 修改询价回复
+     *
+     * @param id    询价回复主键
+     * @param param 修改参数
+     */
+    @PutMapping("/enquire-reply/{id}")
+    public void updateEnquire(@PathVariable("id") @Min(value = 1, message = "询价回复主键不能小于1") Long id,
+                              @RequestBody @Valid EnquireReplyModifyParam param) {
+        this.enquireReplyService.updateEnquireReply(id, param);
+    }
+
+
+    /**
+     * 回复详情
+     *
+     * @param id 询价回复主键
+     * @return 询价信息
+     */
+    @GetMapping("/enquire-reply/{id}")
+    public EnquireReplyVO getEnquire(@PathVariable("id") @Min(value = 1, message = "询价回复主键不能小于1") Long id) {
+        EnquireReplyDTO enquireReply = this.enquireReplyService.getEnquireReply(id);
+        ResourceUtils.required(enquireReply, "询价回复不存在");
+        return this.covert(enquireReply);
+    }
+
+    /**
+     * 查询询价回复分页
+     *
+     * @param param 查询参数
+     * @return 询价回复分页信息
+     */
+    @GetMapping("/enquire-reply/paging")
+    public Pagination<EnquireReplyVO> getEnquireReplyPaging(@Valid EnquireReplyPagingParam param) {
+        Pagination<EnquireReplyDTO> enquireReplyPaging = this.enquireReplyService.getEnquireReplyPaging(param);
+        List<EnquireReplyVO> enquireReplies = enquireReplyPaging.getRecords().stream().map(this::covert).collect(Collectors.toList());
+        return enquireReplyPaging.convert(enquireReplies);
+    }
+
+    /**
+     * 转换
+     *
+     * @param enquire
+     * @return
+     */
+    public EnquireReplyVO covert(EnquireReplyDTO enquire) {
+        return EnquireReplyCopier.INSTANCE.copying(enquire);
+    }
+    
+}

+ 68 - 0
src/main/java/com/chelvc/cloud/maintain/controller/ShareController.java

@@ -0,0 +1,68 @@
+package com.chelvc.cloud.maintain.controller;
+
+import com.chelvc.cloud.maintain.copier.ShareCopier;
+import com.chelvc.cloud.maintain.vo.ShareVO;
+import com.chelvc.cloud.vehicle.api.dto.ShareDTO;
+import com.chelvc.cloud.vehicle.api.param.SharePagingParam;
+import com.chelvc.cloud.vehicle.api.service.ShareService;
+import com.chelvc.framework.base.annotation.ResponseWrapping;
+import com.chelvc.framework.common.model.Pagination;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 分享记录接口
+ *
+ * @author xp
+ * @data 2023/4/5
+ */
+@Validated
+@RestController
+@ResponseWrapping
+public class ShareController {
+    
+    @DubboReference
+    private ShareService shareService;
+
+    /**
+     * 新增分享记录
+     *
+     * @return 询价主键
+     */
+    @PostMapping("/share")
+    public Long addEnquire() {
+        return this.shareService.addShare();
+    }
+
+
+    /**
+     * 查询分享记录分页
+     *
+     * @param param 查询参数
+     * @return 分享记录分页信息
+     */
+    @GetMapping("/share")
+    public Pagination<ShareVO> getSharePaging(@Valid SharePagingParam param) {
+        Pagination<ShareDTO> sharePaging = this.shareService.getSharePaging(param);
+        List<ShareVO> shares = sharePaging.getRecords().stream().map(this::covert).collect(Collectors.toList());
+        return sharePaging.convert(shares);
+    }
+
+    /**
+     * 转换
+     *
+     * @param share
+     * @return
+     */
+    public ShareVO covert(ShareDTO share) {
+        return ShareCopier.INSTANCE.copying(share);
+    }
+    
+}

+ 0 - 2
src/main/java/com/chelvc/cloud/maintain/controller/UserCouponController.java

@@ -1,10 +1,8 @@
 package com.chelvc.cloud.maintain.controller;
 
 import com.chelvc.cloud.maintain.copier.UserCouponCopier;
-import com.chelvc.cloud.maintain.vo.CouponVO;
 import com.chelvc.cloud.maintain.vo.UserCouponVO;
 import com.chelvc.cloud.vehicle.api.dto.UserCouponDTO;
-import com.chelvc.cloud.vehicle.api.param.CouponPagingParam;
 import com.chelvc.cloud.vehicle.api.param.UserCouponPagingParam;
 import com.chelvc.cloud.vehicle.api.param.UserCouponQueryParam;
 import com.chelvc.cloud.vehicle.api.service.UserCouponService;

+ 30 - 0
src/main/java/com/chelvc/cloud/maintain/copier/ArticleCopier.java

@@ -0,0 +1,30 @@
+package com.chelvc.cloud.maintain.copier;
+
+import com.chelvc.cloud.maintain.vo.ArticleVO;
+import com.chelvc.cloud.vehicle.api.dto.ArticleDTO;
+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 ArticleCopier {
+
+    /**
+     * 对象拷贝接口实例
+     */
+    ArticleCopier INSTANCE = Mappers.getMapper(ArticleCopier.class);
+
+    /**
+     * 文章信息拷贝
+     *
+     * @param article 文章信息
+     * @return 文章信息
+     */
+    ArticleVO copying(ArticleDTO article);
+}

+ 31 - 0
src/main/java/com/chelvc/cloud/maintain/copier/EnquireCopier.java

@@ -0,0 +1,31 @@
+package com.chelvc.cloud.maintain.copier;
+
+import com.chelvc.cloud.maintain.vo.EnquireVO;
+import com.chelvc.cloud.vehicle.api.dto.EnquireDTO;
+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 EnquireCopier {
+
+    /**
+     * 对象拷贝接口实例
+     */
+    EnquireCopier INSTANCE = Mappers.getMapper(EnquireCopier.class);
+
+    /**
+     * 询价信息拷贝
+     *
+     * @param enquire 询价信息
+     * @return 询价信息
+     */
+    EnquireVO copying(EnquireDTO enquire);
+
+}

+ 30 - 0
src/main/java/com/chelvc/cloud/maintain/copier/EnquireReplyCopier.java

@@ -0,0 +1,30 @@
+package com.chelvc.cloud.maintain.copier;
+
+import com.chelvc.cloud.maintain.vo.EnquireReplyVO;
+import com.chelvc.cloud.vehicle.api.dto.EnquireReplyDTO;
+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 EnquireReplyCopier {
+
+    /**
+     * 对象拷贝接口实例
+     */
+    EnquireReplyCopier INSTANCE = Mappers.getMapper(EnquireReplyCopier.class);
+
+    /**
+     * 询价回复信息拷贝
+     *
+     * @param enquireReply 询价回复信息
+     * @return 询价回复信息
+     */
+    EnquireReplyVO copying(EnquireReplyDTO enquireReply);
+}

+ 30 - 0
src/main/java/com/chelvc/cloud/maintain/copier/ShareCopier.java

@@ -0,0 +1,30 @@
+package com.chelvc.cloud.maintain.copier;
+
+import com.chelvc.cloud.maintain.vo.ShareVO;
+import com.chelvc.cloud.vehicle.api.dto.ShareDTO;
+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 分享记录信息
+     */
+    ShareVO copying(ShareDTO share);
+}

+ 55 - 0
src/main/java/com/chelvc/cloud/maintain/vo/ArticleVO.java

@@ -0,0 +1,55 @@
+package com.chelvc.cloud.maintain.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+
+/**
+ * @author xp
+ * @data 2023/4/4
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ArticleVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 文章标题
+     */
+    private String title;
+
+    /**
+     * 文章内容
+     */
+    private String content;
+
+    /**
+     * 附件列表
+     */
+    private String attachments;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewCount;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+}

+ 53 - 0
src/main/java/com/chelvc/cloud/maintain/vo/EnquireReplyVO.java

@@ -0,0 +1,53 @@
+package com.chelvc.cloud.maintain.vo;
+
+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 EnquireReplyVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 询价id
+     */
+    private Long enquireId;
+
+    /**
+     * 回复内容
+     */
+    private String content;
+
+    /**
+     * 附件列表
+     */
+    private String attachments;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+}

+ 68 - 0
src/main/java/com/chelvc/cloud/maintain/vo/EnquireVO.java

@@ -0,0 +1,68 @@
+package com.chelvc.cloud.maintain.vo;
+
+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 EnquireVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 询价类型
+     */
+    private Long categoryId;
+
+    /**
+     * 询价内容
+     */
+    private String content;
+
+    /**
+     * 附件列表
+     */
+    private String attachments;
+
+    /**
+     * 经度
+     */
+    private Double latitude;
+
+    /**
+     * 纬度
+     */
+    private Double longitude;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+}

+ 38 - 0
src/main/java/com/chelvc/cloud/maintain/vo/ShareVO.java

@@ -0,0 +1,38 @@
+package com.chelvc.cloud.maintain.vo;
+
+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 ShareVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+}

+ 0 - 1
src/main/java/com/chelvc/cloud/maintain/vo/UserCouponVO.java

@@ -7,7 +7,6 @@ import lombok.NoArgsConstructor;
 import lombok.experimental.SuperBuilder;
 
 import java.io.Serializable;
-import java.util.Date;
 
 /**
  * 优惠券领取记录