Procházet zdrojové kódy

Merge remote-tracking branch 'origin/dev' into dev

jinshihui před 6 dny
rodič
revize
c10aac7c56

+ 10 - 0
nightFragrance-massage/src/main/java/com/ylx/project/controller/ProjectController.java

@@ -6,6 +6,8 @@ import com.ylx.common.core.domain.R;
 import com.ylx.common.enums.BusinessType;
 import com.ylx.common.exception.ServiceException;
 import com.ylx.project.domain.Project;
+import com.ylx.project.domain.bookMerchant.dto.BookMerchantDTO;
+import com.ylx.project.domain.bookMerchant.vo.BookProjectDetailVO;
 import com.ylx.project.domain.dto.ProjectAddDTO;
 import com.ylx.project.domain.dto.ProjectSearchDTO;
 import com.ylx.project.domain.dto.ProjectUpdateDTO;
@@ -138,4 +140,12 @@ public class ProjectController {
         return R.ok(list);
     }
 
+    @PreAuthorize("@customerAuth.isCustomer()")
+    @ApiOperation("客户端获取去预约项目详情")
+    @PostMapping("/bookDetail")
+    public R<BookProjectDetailVO> getBookingProjectDetail(BookMerchantDTO dto) {
+        BookProjectDetailVO vo = projectService.getBookingProjectDetail(dto);
+        return R.ok(vo);
+    }
+
 }

+ 26 - 0
nightFragrance-massage/src/main/java/com/ylx/project/domain/bookMerchant/dto/BookMerchantDTO.java

@@ -0,0 +1,26 @@
+package com.ylx.project.domain.bookMerchant.dto;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+@Data
+@ApiModel("项目新增DTO")
+public class BookMerchantDTO extends Page implements Serializable {
+    private static final long serialVersionUID = 3546839192282131252L;
+
+    @NotNull(message = "项目ID不能为空")
+    @ApiModelProperty("项目ID")
+    private Long projectId;
+
+    @ApiModelProperty("经度")
+    private double longitude;
+
+    @ApiModelProperty("纬度")
+    private double latitude;
+
+}

+ 42 - 0
nightFragrance-massage/src/main/java/com/ylx/project/domain/bookMerchant/vo/BookMerchantVO.java

@@ -0,0 +1,42 @@
+package com.ylx.project.domain.bookMerchant.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("预约商户信息vo")
+public class BookMerchantVO implements Serializable {
+    private static final long serialVersionUID = 5070447071110617415L;
+
+    @ApiModelProperty("商户服务项目ID")
+    private String id;
+
+    @ApiModelProperty("项目ID")
+    private String projectId;
+
+    @ApiModelProperty("商户ID")
+    private String merchantId;
+
+    @ApiModelProperty("商户昵称")
+    private String merchantNickName;
+
+    @ApiModelProperty("商户头像")
+    private String merchantAvatar;
+
+    @ApiModelProperty("商户评分")
+    private Double merchantStar;
+
+    @ApiModelProperty("已服务人数")
+    private Integer servedCount;
+
+    @ApiModelProperty("距离")
+    private String distanceText;
+
+    @ApiModelProperty("当前售价")
+    private BigDecimal currentPrice;
+
+}

+ 21 - 0
nightFragrance-massage/src/main/java/com/ylx/project/domain/bookMerchant/vo/BookProjectDetailVO.java

@@ -0,0 +1,21 @@
+package com.ylx.project.domain.bookMerchant.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("项目基本信息vo")
+public class BookProjectDetailVO implements Serializable {
+    private static final long serialVersionUID = 8868692859281349616L;
+
+    @ApiModelProperty("项目基础信息")
+    private ProjectInfoVO projectInfo;
+
+    @ApiModelProperty("预约商户列表")
+    private Page<BookMerchantVO> merchantList;
+
+}

+ 36 - 0
nightFragrance-massage/src/main/java/com/ylx/project/domain/bookMerchant/vo/ProjectInfoVO.java

@@ -0,0 +1,36 @@
+package com.ylx.project.domain.bookMerchant.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("项目基础信息vo")
+public class ProjectInfoVO implements Serializable {
+    private static final long serialVersionUID = 7681704041763799139L;
+
+    @ApiModelProperty("项目ID")
+    private String id;
+
+    @ApiModelProperty("项目名称")
+    private String title;
+
+    @ApiModelProperty("标准时长")
+    private Integer standardDuration;
+
+    @ApiModelProperty("计量单位")
+    private String unitType;
+
+    @ApiModelProperty("封面图")
+    private String cover;
+
+    @ApiModelProperty("项目亮点")
+    private String highlight;
+
+    @ApiModelProperty("标价")
+    private BigDecimal price;
+
+}

+ 4 - 0
nightFragrance-massage/src/main/java/com/ylx/project/service/ProjectService.java

@@ -8,6 +8,8 @@ import com.ylx.massage.domain.dto.ServiceOptionDTO;
 import com.ylx.massage.domain.vo.ProductOptionVO;
 import com.ylx.massage.domain.vo.ProductServiceOptionVO;
 import com.ylx.project.domain.Project;
+import com.ylx.project.domain.bookMerchant.dto.BookMerchantDTO;
+import com.ylx.project.domain.bookMerchant.vo.BookProjectDetailVO;
 import com.ylx.project.domain.dto.ProjectAddDTO;
 import com.ylx.project.domain.dto.ProjectSearchDTO;
 import com.ylx.project.domain.dto.ProjectUpdateDTO;
@@ -34,4 +36,6 @@ public interface ProjectService extends IService<Project> {
     Page<ProductServiceOptionVO> selectServiceOptionsPage(Page page, ServiceOptionDTO dto);
 
     List<ProjectBaseVo> getProjectTabListByType(Integer type);
+
+    BookProjectDetailVO getBookingProjectDetail(BookMerchantDTO dto);
 }

+ 35 - 2
nightFragrance-massage/src/main/java/com/ylx/project/service/impl/ProjectServiceImpl.java

@@ -13,12 +13,16 @@ import com.ylx.common.core.domain.entity.SysDictData;
 import com.ylx.common.exception.ServiceException;
 import com.ylx.common.utils.DateUtils;
 import com.ylx.common.utils.SecurityUtils;
-import com.ylx.giftCard.domain.vo.GiftCardVO;
 import com.ylx.massage.domain.dto.OptionDTO;
 import com.ylx.massage.domain.dto.ServiceOptionDTO;
 import com.ylx.massage.domain.vo.ProductOptionVO;
 import com.ylx.massage.domain.vo.ProductServiceOptionVO;
+import com.ylx.massage.service.IMaProjectService;
 import com.ylx.project.domain.Project;
+import com.ylx.project.domain.bookMerchant.dto.BookMerchantDTO;
+import com.ylx.project.domain.bookMerchant.vo.BookMerchantVO;
+import com.ylx.project.domain.bookMerchant.vo.BookProjectDetailVO;
+import com.ylx.project.domain.bookMerchant.vo.ProjectInfoVO;
 import com.ylx.project.domain.dto.ProjectAddDTO;
 import com.ylx.project.domain.dto.ProjectSearchDTO;
 import com.ylx.project.domain.dto.ProjectUpdateDTO;
@@ -38,7 +42,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -50,6 +53,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     private ServiceCategoryService serviceCategoryService;
     @Resource
     private ISysDictDataService sysDictDataService;
+    @Resource
+    private IMaProjectService maProjectService;
 
     @Override
     public Page<ProjectPageVo> list(Page<Project> page, ProjectSearchDTO dto) {
@@ -186,6 +191,34 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return BeanUtil.copyToList(projects, ProjectBaseVo.class);
     }
 
+    @Override
+    public BookProjectDetailVO getBookingProjectDetail(BookMerchantDTO dto) {
+        BookProjectDetailVO vo = new BookProjectDetailVO();
+
+        Long projectId = dto.getProjectId();
+
+        // 1. 查询项目基础信息
+        Project project = this.baseMapper.selectById(projectId);
+        if (ObjectUtil.isNull(project)) {
+            throw new ServiceException("项目不存在");
+        }
+
+        if (ObjectUtil.equals(project.getStatus(), ProjectStatusEnum.OFF_SHELF.getCode())) {
+            throw new ServiceException("项目已下架");
+        }
+
+        ProjectInfoVO projectInfo = new ProjectInfoVO();
+        BeanUtil.copyProperties(project, projectInfo);
+        vo.setProjectInfo(projectInfo);
+
+        // 2. 查询商户列表
+//        Page<BookMerchantVO> merchantList = maProjectService.selectMerchantList(dto);
+
+
+//        vo.setMerchantList(merchantList);
+        return vo;
+    }
+
     private ProjectPageVo convertToVo(Project entity) {
         ProjectPageVo vo = new ProjectPageVo();
         // 属性拷贝(推荐)