Преглед на файлове

Merge branch 'fuck'

# Conflicts:
#	vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderServiceImpl.java
liude преди 1 година
родител
ревизия
10b7a7858d
променени са 16 файла, в които са добавени 248 реда и са изтрити 39 реда
  1. 9 4
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CategoryDTO.java
  2. 38 4
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/MerchantAuthDTO.java
  3. 33 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CategoryListParam.java
  4. 9 5
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CategoryModifyParam.java
  5. 40 12
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/MerchantAuthModifyParam.java
  6. 6 2
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/ReservationQueryParam.java
  7. 5 2
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CategoryService.java
  8. 8 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/ReservationService.java
  9. 1 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/ReservationMapper.java
  10. 9 5
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/Category.java
  11. 32 1
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/MerchantAuth.java
  12. 8 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/MerchantService.java
  13. 12 3
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CategoryServiceImpl.java
  14. 5 1
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantAuthServiceImpl.java
  15. 10 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantServiceImpl.java
  16. 23 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/ReservationServiceImpl.java

+ 9 - 4
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CategoryDTO.java

@@ -31,10 +31,6 @@ public class CategoryDTO implements Serializable {
      */
     private Long parentId;
 
-    /**
-     * 分类类型
-     */
-    private CategoryType type;
 
     /**
      * 分类名称
@@ -74,4 +70,13 @@ public class CategoryDTO implements Serializable {
      * 子集分类
      */
     private List<CategoryDTO> children;
+
+    /**
+     * 分类类型 分类类型 0-平台的分类 1-商家的分类
+     */
+    private String  type;
+    /**
+     * 商家ID
+     */
+    private Long merchantId;
 }

+ 38 - 4
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/MerchantAuthDTO.java

@@ -4,6 +4,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.SuperBuilder;
 
+import javax.validation.constraints.Size;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -38,10 +39,6 @@ public class MerchantAuthDTO implements Serializable {
      * 身份证号
      */
     private String idCardNumber;
-    /**
-     * 身份证照片
-     */
-    private byte[] idCardPhoto;
     /**
      * 身份证有效期
      */
@@ -114,4 +111,41 @@ public class MerchantAuthDTO implements Serializable {
      * 申请时间
      */
     private Date applicationTime; //
+    /**
+     * 商家信息
+     */
+    private MerchantDTO merchant;
+
+
+    /**
+     * 营业执照证件号
+     */
+    private String businessPhoto;
+    /**
+     * 身份证正面照片
+     */
+    private String idCardFrontPhoto;
+
+    /**
+     * 身份证反面照片
+     */
+    private String idCardBackPhoto;
+
+    /**
+     * 店铺内部环境图
+     */
+    private String storeInnerImage;
+
+    /**
+     * 店铺详细地址
+     */
+    @Size(max = 255, message = "店铺详细地址长度不能大于255")
+    private String storeAddressDetail;
+
+    /**
+     * 邮箱
+     */
+    @Size(max = 255, message = "邮箱长度不能大于255")
+    private String email;
+
 }

+ 33 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CategoryListParam.java

@@ -0,0 +1,33 @@
+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.NotEmpty;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
+/**
+ * 分类更新参数
+ *
+ * @author Woody
+ * @date 2023/5/2
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CategoryListParam implements Serializable {
+    /**
+     * 分类类型 分类类型 0-平台的分类 1-商家的分类
+     */
+    private String  type;
+    /**
+     * 商家ID
+     */
+    private Long merchantId;
+}

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

@@ -54,15 +54,19 @@ public class CategoryModifyParam implements Serializable {
     @NotNull(message = "是否启用不能为空")
     private Boolean enabled;
 
-    /**
-     * 分类类型
-     */
-    @NotNull(message = "分类类型不能为空")
-    private CategoryType type;
 
     /**
      * 是否推荐
      */
     @NotNull(message = "是否推荐不能为空")
     private Boolean recommend;
+
+    /**
+     * 分类类型 分类类型 0-平台的分类 1-商家的分类
+     */
+    private String  type;
+    /**
+     * 商家ID
+     */
+    private Long merchantId;
 }

+ 40 - 12
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/MerchantAuthModifyParam.java

@@ -5,6 +5,7 @@ import lombok.NoArgsConstructor;
 import lombok.experimental.SuperBuilder;
 
 import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 import java.io.Serializable;
 import java.util.Date;
@@ -33,13 +34,13 @@ public class MerchantAuthModifyParam implements Serializable {
     /**
      * 营业执照证件号
      */
-    @NotEmpty(message = "营业执照证件号不能为空")
+//    @NotEmpty(message = "营业执照证件号不能为空")
     @Size(max = 100, message = "营业执照证件号长度不能大于64")
     private String businessLicenseNumber;
     /**
      * 营业执照有效期
      */
-    @NotEmpty(message = "营业执照有效期不能为空")
+    @NotNull(message = "营业执照有效期不能为空")
     private Date businessLicenseExpirationDate;
     /**
      * 身份证号
@@ -47,15 +48,10 @@ public class MerchantAuthModifyParam implements Serializable {
     @NotEmpty(message = "身份证号不能为空")
     @Size(max = 100, message = "身份证号长度不能大于32")
     private String idCardNumber;
-    /**
-     * 身份证照片
-     */
-    @NotEmpty(message = "身份证照片不能为空")
-    private byte[] idCardPhoto;
     /**
      * 身份证有效期
      */
-    @NotEmpty(message = "身份证有效期不能为空")
+    @NotNull(message = "身份证有效期不能为空")
     private Date idCardExpirationDate;
     /**
      * 店铺图
@@ -65,14 +61,14 @@ public class MerchantAuthModifyParam implements Serializable {
      * 法人姓名
      */
     @NotEmpty(message = "法人姓名不能为空")
-    @Size(max = 100, message = "法人姓名长度不能大于255")
+    @Size(max = 100, message = "法人姓名长度t不能大于255")
     private String legalRepresentativeName;
     /**
      * 法人性别
      */
-    @NotEmpty(message = "法人性别不能为空")
+//    @NotEmpty(message = "法人性别不能为空")
     @Size(max = 100, message = "营业执照编号长度不能大于1")
-    private String legalRepresentativeGender;
+    private String legalRepresenativeGender;
     /**
      * 手机号
      */
@@ -116,10 +112,42 @@ public class MerchantAuthModifyParam implements Serializable {
     /**
      * 经营许可证有效期
      */
-    @NotEmpty(message = "经营许可证有效期不能为空")
+    @NotNull(message = "经营许可证有效期不能为空")
     private Date businessLicenseExpirationDateValid;
     /**
      * 推荐人
      */
     private String recommendationUser;
+
+    /**
+     * 营业执照证件号
+     */
+    private String businessPhoto;
+    /**
+     * 身份证正面照片
+     */
+    private String idCardFrontPhoto;
+
+    /**
+     * 身份证反面照片
+     */
+    private String idCardBackPhoto;
+
+    /**
+     * 店铺内部环境图
+     */
+    private String storeInnerImage;
+
+
+    /**
+     * 店铺详细地址
+     */
+    @Size(max = 255, message = "店铺详细地址长度不能大于255")
+    private String storeAddressDetail;
+
+    /**
+     * 邮箱
+     */
+    @Size(max = 255, message = "邮箱长度不能大于255")
+    private String email;
 }

+ 6 - 2
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/ReservationQueryParam.java

@@ -14,8 +14,8 @@ import java.io.Serializable;
 /**
  * 预约记录查询参数
  *
- * @author qizai
- * @date 2023/9/9
+ * @author liude
+ * @date 2024/3/10
  */
 @Data
 @SuperBuilder
@@ -41,4 +41,8 @@ public class ReservationQueryParam implements Serializable {
      * 预约状态
      */
     private ReserveStatus status;
+    /**
+     * 商家ID
+     */
+    private Long merchantId;
 }

+ 5 - 2
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CategoryService.java

@@ -3,10 +3,13 @@ package com.chelvc.cloud.vehicle.api.service;
 import java.util.List;
 
 import com.chelvc.cloud.vehicle.api.dto.CategoryDTO;
+import com.chelvc.cloud.vehicle.api.param.CategoryListParam;
 import com.chelvc.cloud.vehicle.api.param.CategoryModifyParam;
 import com.chelvc.cloud.vehicle.api.param.CategoryPagingParam;
 import com.chelvc.framework.common.model.Pagination;
 
+import javax.validation.Valid;
+
 /**
  * 分类业务操作接口
  *
@@ -43,7 +46,7 @@ public interface CategoryService {
      *
      * @return 分类信息列表
      */
-    List<CategoryDTO> listActiveCategories();
+    List<CategoryDTO> listActiveCategories(CategoryListParam param);
 
     /**
      * 获取推荐分类信息
@@ -65,5 +68,5 @@ public interface CategoryService {
      * 获取一级分类
      * @return 分类信息
      */
-    List<CategoryDTO> getRootCategories();
+    List<CategoryDTO> getRootCategories(CategoryListParam param);
 }

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

@@ -44,4 +44,12 @@ public interface ReservationService {
      * @return 预约分页信息
      */
     Pagination<ReservationDTO> getReservationPaging(ReservationPagingParam param);
+
+    /**
+     * 查询商家被预约列表
+     *
+     * @param param 查询参数
+     * @return 用户预约列表
+     */
+    List<ReservationDTO> listMerchantReservations(ReservationQueryParam param);
 }

+ 1 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/ReservationMapper.java

@@ -24,4 +24,5 @@ public interface ReservationMapper extends BaseMapper<Reservation> {
      * @return 用户预约列表
      */
     List<Reservation> listUserReservations(@Param("userId") Long userId, @Param("param") ReservationQueryParam param);
+
 }

+ 9 - 5
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/Category.java

@@ -35,11 +35,6 @@ public class Category extends ModifyEntity<Long> {
      */
     private Long parentId;
 
-    /**
-     * 分类类型
-     */
-    private CategoryType type;
-
     /**
      * 分类名称
      */
@@ -65,4 +60,13 @@ public class Category extends ModifyEntity<Long> {
      * 是否推荐
      */
     private Boolean recommend;
+
+    /**
+     * 分类类型 分类类型 0-平台的分类 1-商家的分类
+     */
+    private String  type;
+    /**
+     * 商家ID
+     */
+    private Long merchantId;
 }

+ 32 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/MerchantAuth.java

@@ -8,6 +8,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.SuperBuilder;
 
+import javax.validation.constraints.Size;
 import java.util.Date;
 
 /**
@@ -30,7 +31,6 @@ public class MerchantAuth implements Entity<Long> {
     private String businessLicenseNumber; // 营业执照证件号
     private Date businessLicenseExpirationDate; // 营业执照有效期
     private String idCardNumber; // 身份证号
-    private byte[] idCardPhoto; // 身份证照片
     private Date idCardExpirationDate; // 身份证有效期
     private String storeImage; // 店铺图
     private String legalRepresentativeName; // 法人姓名
@@ -50,4 +50,35 @@ public class MerchantAuth implements Entity<Long> {
     private String reviewer; // 审核人
     private String recommendationUser; // 推荐人
     private Date reviewTime; // 审核时间
+
+    /**
+     * 营业执照证件号
+     */
+    private String businessPhoto;
+    /**
+     * 身份证正面照片
+     */
+    private String idCardFrontPhoto;
+
+    /**
+     * 身份证反面照片
+     */
+    private String idCardBackPhoto;
+
+    /**
+     * 店铺内部环境图
+     */
+    private String storeInnerImage;
+
+    /**
+     * 店铺详细地址
+     */
+    @Size(max = 255, message = "店铺详细地址长度不能大于255")
+    private String storeAddressDetail;
+
+    /**
+     * 邮箱
+     */
+    @Size(max = 255, message = "邮箱长度不能大于255")
+    private String email;
 }

+ 8 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/MerchantService.java

@@ -51,4 +51,12 @@ public interface MerchantService extends IService<Merchant> {
      * @return
      */
     BigDecimal queryTotalCommissionAmountByLastMonth(Integer regionId, Integer level);
+
+
+    /**
+     * 查询用户商家信息
+     * @param userId
+     * @return
+     */
+    MerchantDTO getMerchantByUserId(Long userId);
 }

+ 12 - 3
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CategoryServiceImpl.java

@@ -8,6 +8,7 @@ import java.util.Objects;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chelvc.cloud.vehicle.api.dto.CategoryDTO;
+import com.chelvc.cloud.vehicle.api.param.CategoryListParam;
 import com.chelvc.cloud.vehicle.api.param.CategoryModifyParam;
 import com.chelvc.cloud.vehicle.api.param.CategoryPagingParam;
 import com.chelvc.cloud.vehicle.server.copier.CategoryCopier;
@@ -20,6 +21,9 @@ import com.chelvc.framework.common.util.StringUtils;
 import com.chelvc.framework.database.context.DatabaseContextHolder;
 import lombok.NonNull;
 import org.apache.dubbo.config.annotation.DubboService;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.validation.Valid;
 
 /**
  * 分类业务操作实现
@@ -56,8 +60,10 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> i
     }
 
     @Override
-    public List<CategoryDTO> listActiveCategories() {
+    public List<CategoryDTO> listActiveCategories(CategoryListParam param) {
         List<Category> categories = this.lambdaQuery().eq(Category::getEnabled, true)
+                .eq(StringUtils.nonEmpty(param.getType()),Category::getType,param.getType())
+                .eq(StringUtils.nonEmpty(param.getMerchantId()),Category::getMerchantId,param.getMerchantId())
                 .orderByAsc(Category::getSort).list();
         categories.sort(Comparator.comparing(Category::getType).thenComparing(Category::getSort));
         List<CategoryDTO> categoryDTOS = CategoryCopier.INSTANCE.copying(categories);
@@ -90,9 +96,12 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> i
         this.baseMapper.deleteById(id);
     }
     @Override
-    public List<CategoryDTO> getRootCategories(){
-        List<Category> categories = this.lambdaQuery().eq(Category::getEnabled, true)
+    public List<CategoryDTO> getRootCategories(CategoryListParam param){
+        List<Category> categories = this.lambdaQuery()
+                .eq(Category::getEnabled, true)
                 .eq(Category::getParentId,0)
+                .eq(StringUtils.nonEmpty(param.getType()),Category::getType,param.getType())
+                .eq(StringUtils.nonEmpty(param.getMerchantId()),Category::getMerchantId,param.getMerchantId())
                 .orderByAsc(Category::getSort).list();
         categories.sort(Comparator.comparing(Category::getType).thenComparing(Category::getSort));
         return CategoryCopier.INSTANCE.copying(categories);

+ 5 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantAuthServiceImpl.java

@@ -11,6 +11,7 @@ import com.chelvc.cloud.vehicle.server.copier.MerchantAuthCopier;
 import com.chelvc.cloud.vehicle.server.dao.MerchantAuthMapper;
 import com.chelvc.cloud.vehicle.server.entity.MerchantAuth;
 import com.chelvc.cloud.vehicle.server.service.MerchantAuthService;
+import com.chelvc.cloud.vehicle.server.service.MerchantService;
 import com.chelvc.framework.base.context.SessionContextHolder;
 import com.chelvc.framework.common.model.Pagination;
 import com.chelvc.framework.common.util.AssertUtils;
@@ -31,6 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 @DubboService(interfaceClass = com.chelvc.cloud.vehicle.api.service.MerchantAuthService.class)
 public class MerchantAuthServiceImpl extends ServiceImpl<MerchantAuthMapper, MerchantAuth> implements MerchantAuthService,
         com.chelvc.cloud.vehicle.api.service.MerchantAuthService {
+    private final MerchantService merchantService;
     @Override
     public Long addMerchantAuth(@NonNull MerchantAuthModifyParam param) {
         MerchantAuth merchantAuth = MerchantAuthCopier.INSTANCE.copying(param);
@@ -61,7 +63,9 @@ public class MerchantAuthServiceImpl extends ServiceImpl<MerchantAuthMapper, Mer
         Long userId = SessionContextHolder.getId();
         MerchantAuth merchantAuth = this.lambdaQuery()
                 .eq(MerchantAuth::getApplicant, userId).one();
-        return MerchantAuthCopier.INSTANCE.copying(merchantAuth);
+        MerchantAuthDTO merchantAuthDTO = MerchantAuthCopier.INSTANCE.copying(merchantAuth);
+        merchantAuthDTO.setMerchant(this.merchantService.getMerchantByUserId(userId));
+        return merchantAuthDTO;
     }
 
     @Override

+ 10 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/MerchantServiceImpl.java

@@ -325,4 +325,14 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
         });
 
     }
+
+
+    @Override
+    public MerchantDTO getMerchantByUserId(Long userId){
+        Merchant merchants = this.lambdaQuery()
+                .eq(Merchant::getUserId, userId)
+                .eq(Merchant::getStatus, MerchantStatus.ONLINE)
+                .one();
+        return MerchantCopier.INSTANCE.copying(merchants);
+    }
 }

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

@@ -120,4 +120,27 @@ public class ReservationServiceImpl extends ServiceImpl<ReservationMapper, Reser
             return pagination;
         }
     }
+
+
+    @Override
+    public List<ReservationDTO> listMerchantReservations(@NonNull ReservationQueryParam param) {
+        if (StringUtils.isEmpty(param.getMerchantId())) {
+            return null;
+        }
+        List<Reservation> list = this.lambdaQuery()
+                .eq(StringUtils.nonEmpty(param.getStatus()), Reservation::getStatus, param.getStatus())
+                .in(Reservation::getMerchantId, param.getMerchantId())
+                .orderByDesc(Reservation::getAppointTime)
+                .list();
+        List<ReservationDTO> reservations = ReservationCopier.INSTANCE.copying(list);
+        reservations.forEach(item -> {
+            EmployeeDTO employeeDTO = this.employeeService.getEmployee(item.getUserId());
+            if (employeeDTO != null) {
+                item.setUsername(employeeDTO.getUsername());
+            }
+            MerchantDTO merchantDTO = this.merchantService.getMerchantById(item.getMerchantId());
+            item.setMerchant(merchantDTO);
+        });
+        return reservations;
+    }
 }