Procházet zdrojové kódy

Merge branch 'master' into liude

liude před 1 rokem
rodič
revize
d5434bcd4b

+ 5 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/MerchantDTO.java

@@ -77,6 +77,11 @@ public class MerchantDTO implements Serializable {
      */
     private Integer sale;
 
+    /**
+     * 好评数量
+     */
+    private Integer goodReview;
+
     /**
      * 距离(米)
      */

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

@@ -30,6 +30,12 @@ public class CategoryModifyParam implements Serializable {
     @Size(max = 50, message = "分类名称长度不能大于50")
     private String name;
 
+    /**
+     * 分类图标
+     */
+    @Size(max = 200, message = "分类图标长度不能大于200")
+    private String icon;
+
     /**
      * 排序数字
      */

+ 9 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/MerchantService.java

@@ -51,6 +51,15 @@ public interface MerchantService {
      */
     MerchantDetailDTO getMerchantDetail(Long id);
 
+    /**
+     * 获取商家详情
+     *
+     * @param id 商家ID
+     * @param param 查询参数
+     * @return 商家详情
+     */
+    MerchantDetailDTO getMerchantDetail(Long id, LocationQueryParam param);
+
     /**
      * 新增商家
      *

+ 9 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/MerchantMapper.java

@@ -43,4 +43,13 @@ public interface MerchantMapper extends BaseMapper<Merchant> {
      * @return 商家信息列表
      */
     List<MerchantDTO> listSimpleMerchants(MerchantQueryParam param);
+
+    /**
+     * 获取商家详情
+     *
+     * @param id 商家ID
+     * @param param 查询参数
+     * @return 商家详情
+     */
+    Merchant getMerchantById(@Param("id") Long id, @Param("param") LocationQueryParam param);
 }

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

@@ -3,6 +3,7 @@ package com.chelvc.cloud.vehicle.server.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.chelvc.cloud.vehicle.api.constant.CategoryType;
+import com.chelvc.framework.database.annotation.Unique;
 import com.chelvc.framework.database.entity.ModifyEntity;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -38,6 +39,7 @@ public class Category extends ModifyEntity<Long> {
     /**
      * 分类名称
      */
+    @Unique(message = "分类名称已存在")
     private String name;
 
     /**

+ 12 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/Merchant.java

@@ -34,7 +34,7 @@ public class Merchant extends ModifyEntity<Long> {
     /**
      * 主键
      */
-    @TableId(type = IdType.ASSIGN_ID)
+    @TableId(type = IdType.AUTO)
     private Long id;
 
     /**
@@ -112,4 +112,15 @@ public class Merchant extends ModifyEntity<Long> {
      * 商家状态
      */
     private MerchantStatus status;
+
+    /**
+     * 好评数量
+     */
+    private Integer goodReview;
+
+    /**
+     * 距离(米)
+     */
+    @TableField(exist = false)
+    private Integer distance;
 }

+ 0 - 2
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CategoryServiceImpl.java

@@ -31,8 +31,6 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> i
         com.chelvc.cloud.vehicle.api.service.CategoryService {
     @Override
     public Long addCategory(@NonNull CategoryModifyParam param) {
-        Integer count = this.lambdaQuery().eq(Category::getName, param.getName()).count();
-        ResourceUtils.available(count <= 0, "分类名称已存在");
         Category category = CategoryCopier.INSTANCE.copying(param);
         this.save(category);
         return category.getId();

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

@@ -73,6 +73,22 @@ public class MerchantServiceImpl extends ServiceImpl<MerchantMapper, Merchant> i
         return MerchantDetailDTO.builder().merchant(merchant).goods(goods).categories(types).build();
     }
 
+    @Override
+    public MerchantDetailDTO getMerchantDetail(Long id, LocationQueryParam param) {
+        // 获取商家信息
+        MerchantDTO merchant = MerchantCopier.INSTANCE.copying(
+                ResourceUtils.required(this.baseMapper.getMerchantById(id, param), "商家不存在")
+        );
+
+        // 获取商家全部商品列表
+        List<GoodsDTO> goods = this.goodsService.listMerchantSimpleGoods(
+                id, GoodsQueryParam.builder().size(10).build()
+        );
+
+        // 获取商家商品分类类型列表
+        List<CategoryType> types = this.goodsService.listMerchantGoodsCategoryTypes(id);
+        return MerchantDetailDTO.builder().merchant(merchant).goods(goods).categories(types).build();
+    }
 
     @Override
     public Long addMerchant(@NonNull MerchantModifyParam param) {

+ 0 - 1
vehicle-server/src/main/resources/logback-spring.xml

@@ -34,7 +34,6 @@
 
 	<root level="info">
 		<appender-ref ref="CONSOLE_APPENDER"/>
-		<appender-ref ref="FILE_APPENDER"/>
 		<appender-ref ref="ASYNC_FILE_APPENDER"/>
 	</root>
 </configuration>

+ 14 - 2
vehicle-server/src/main/resources/mapper/MerchantMapper.xml

@@ -3,8 +3,8 @@
 <mapper namespace="com.chelvc.cloud.vehicle.server.dao.MerchantMapper">
     <sql id="BASIC_MERCHANT_SELECT">
         select mt.id, mt.user_id, mt.name, mt.logo, mt.banners, mt.liaison, mt.mobile, mt.opening, mt.address,
-        mt.score, mt.sale, mt.region, mt.longitude, mt.latitude, mt.recommend, mt.status, mt.creator, mt.create_time,
-        mt.updater, mt.update_time
+        mt.score, mt.sale, mt.good_review,mt.region, mt.longitude, mt.latitude, mt.recommend, mt.status, mt.creator,
+        mt.create_time,mt.updater, mt.update_time
         from `merchant` mt
     </sql>
 
@@ -67,4 +67,16 @@
         </if>
         limit #{size}
     </select>
+
+    <select id="getMerchantById" resultType="com.chelvc.cloud.vehicle.server.entity.Merchant">
+        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,
+        round(st_distance_sphere(
+        point(mt.longitude, mt.latitude), point(#{param.longitude}, #{param.latitude})
+        )) distance
+        from `merchant` mt
+        where mt.id = #{id} and mt.region = #{param.region}
+    </select>
 </mapper>