فهرست منبع

品类;收藏

wwl 4 سال پیش
والد
کامیت
ce14e963f0

+ 114 - 0
zzjs-admin/src/main/java/com/miaxis/app/controller/customer/AppletCustomerInfoController.java

@@ -0,0 +1,114 @@
+package com.miaxis.app.controller.customer;
+
+import com.miaxis.collection.mapper.CollectionInfoMapper;
+import com.miaxis.collection.service.ICollectionInfoService;
+import com.miaxis.common.core.controller.BaseController;
+import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.core.domain.entity.SysUser;
+import com.miaxis.common.core.domain.entity.UserInfo;
+import com.miaxis.common.core.page.ResponsePageInfo;
+import com.miaxis.common.utils.SecurityUtils;
+import com.miaxis.customer.domain.CustomerInfo;
+import com.miaxis.customer.service.ICustomerInfoService;
+import com.miaxis.customer.vo.CustomerInfoVo;
+import io.swagger.annotations.*;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 【小程序-客户信息】Controller
+ *
+ * @author miaxis
+ * @date 2021-03-10
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/applet/customer")
+@Api(tags = {"【小程序-客户信息】"})
+public class AppletCustomerInfoController extends BaseController {
+
+    private final ICustomerInfoService customerInfoService;
+
+    private final ICollectionInfoService collectionInfoService;
+
+    /**
+     * 查询客户信息列表
+     */
+    @GetMapping("/list")
+    @ApiOperation("查询客户信息列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "当前页码", dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize", value = "每页数据量", dataType = "int", paramType = "query", required = false),
+    })
+    public ResponsePageInfo<CustomerInfo> list(@ModelAttribute CustomerInfo customerInfo) {
+        startPage();
+        List<CustomerInfo> list = customerInfoService.selectCustomerInfoList(customerInfo);
+        return toResponsePageInfo(list);
+    }
+
+
+    /**
+     * 查询所属品类商家
+     */
+    @GetMapping(value = "/getCustomerListByProductId/{id}")
+    @ApiOperation("查询所属品类商家")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "当前页码", dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize", value = "每页数据量", dataType = "int", paramType = "query", required = false),
+    })
+    public ResponsePageInfo<CustomerInfoVo> getCustomerListByProductId(
+            @ApiParam(name = "id", value = "品类id", required = true)
+            @PathVariable("id") Long id
+    ) {
+        startPage();
+        List<CustomerInfoVo> list = customerInfoService.getCustomerListByProductId(id);
+        return toResponsePageInfo(list);
+    }
+
+    /**
+     * 查询精选商家列表 根据收藏数排行
+     */
+    @GetMapping(value = "/getCustomerListByCollectionCount")
+    @ApiOperation("查询精选商家列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "当前页码", dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize", value = "每页数据量", dataType = "int", paramType = "query", required = false),
+    })
+    public ResponsePageInfo<CustomerInfoVo> getCustomerListByCollectionCount() {
+        startPage();
+        List<CustomerInfoVo> list = customerInfoService.getCustomerListByCollectionCount();
+        return toResponsePageInfo(list);
+    }
+
+
+    /**
+     * 收藏商家
+     */
+    @PutMapping(value = "/collectionBusiness/{id}")
+    @ApiOperation("收藏商家")
+    public Response collectionBusiness(
+            @ApiParam(name = "id",value = "商家id",required = true)
+            @PathVariable("id") Long id
+    ){
+        //当前用户
+        UserInfo userInfo = SecurityUtils.getLoginUser().getStudent();
+        return customerInfoService.collectionBusiness(userInfo,id);
+    }
+
+    /**
+     * 取消收藏商家
+     */
+    @DeleteMapping(value = "/cancelCollection/{ids}")
+    @ApiOperation("取消收藏")
+    public Response cancelCollection(
+            @ApiParam(name = "ids", value = "收藏ids参数", required = true)
+            @PathVariable Long[] ids
+    ){
+        return toResponse(collectionInfoService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
+    }
+
+
+}

+ 48 - 0
zzjs-admin/src/main/java/com/miaxis/app/controller/product/AppletProductTypeInfoController.java

@@ -0,0 +1,48 @@
+package com.miaxis.app.controller.product;
+
+import com.miaxis.common.core.controller.BaseController;
+import com.miaxis.common.core.page.ResponsePageInfo;
+import com.miaxis.customer.service.ICustomerInfoService;
+import com.miaxis.customer.vo.CustomerInfoVo;
+import com.miaxis.product.domain.ProductTypeInfo;
+import com.miaxis.product.service.IProductTypeInfoService;
+import com.miaxis.product.vo.ProductTypeInfoVo;
+import io.swagger.annotations.*;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 【小程序-品类管理】Controller
+ *
+ * @author miaxis
+ * @date 2021-03-11
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/applet/product/info")
+@Api(tags={"【小程序-品类管理】"})
+public class AppletProductTypeInfoController extends BaseController{
+
+    private final IProductTypeInfoService productTypeInfoService;
+
+
+    /**
+     * 查询品类列表
+     */
+    @GetMapping("/list")
+    @ApiOperation("查询品类列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
+    })
+    public ResponsePageInfo<ProductTypeInfoVo> list(@ModelAttribute ProductTypeInfo productTypeInfo){
+        startPage();
+        List<ProductTypeInfoVo> list = productTypeInfoService.selectProductTypeInfoList(productTypeInfo);
+        return toResponsePageInfo(list);
+    }
+
+
+
+}

+ 38 - 0
zzjs-service/src/main/java/com/miaxis/collection/domain/CollectionInfo.java

@@ -0,0 +1,38 @@
+package com.miaxis.collection.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 收藏对象
+ * @Author wwl
+ * @Date 2021/3/15
+ * @Version 1.0
+ */
+@Data
+@TableName("collection_info")
+@ApiModel(value = "CollectionInfo", description = "收藏对象 collection_info")
+public class CollectionInfo extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    /** 用户id----(对应user_info表id) */
+    @TableField("user_id")
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /** 商家id---(对应customer_info表id) */
+    @TableField("customer_id")
+    @ApiModelProperty(value = "商家id")
+    private Long customerId;
+
+}

+ 13 - 0
zzjs-service/src/main/java/com/miaxis/collection/mapper/CollectionInfoMapper.java

@@ -0,0 +1,13 @@
+package com.miaxis.collection.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.miaxis.collection.domain.CollectionInfo;
+
+/**
+ * 收藏Mapper接口
+ * @Author wwl
+ * @Date 2021/3/15
+ * @Version 1.0
+ */
+public interface CollectionInfoMapper extends BaseMapper<CollectionInfo> {
+}

+ 13 - 0
zzjs-service/src/main/java/com/miaxis/collection/service/ICollectionInfoService.java

@@ -0,0 +1,13 @@
+package com.miaxis.collection.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.miaxis.collection.domain.CollectionInfo;
+
+/**
+ * 收藏Service接口
+ * @Author wwl
+ * @Date 2021/3/15
+ * @Version 1.0
+ */
+public interface ICollectionInfoService extends IService<CollectionInfo> {
+}

+ 18 - 0
zzjs-service/src/main/java/com/miaxis/collection/service/impl/CollectionInfoServiceImpl.java

@@ -0,0 +1,18 @@
+package com.miaxis.collection.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.miaxis.collection.domain.CollectionInfo;
+import com.miaxis.collection.mapper.CollectionInfoMapper;
+import com.miaxis.collection.service.ICollectionInfoService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author wwl
+ * @Date 2021/3/15
+ * @Version 1.0
+ */
+@Service
+@RequiredArgsConstructor
+public class CollectionInfoServiceImpl extends ServiceImpl<CollectionInfoMapper, CollectionInfo> implements ICollectionInfoService {
+}

+ 14 - 0
zzjs-service/src/main/java/com/miaxis/customer/mapper/CustomerInfoMapper.java

@@ -28,4 +28,18 @@ public interface CustomerInfoMapper extends BaseMapper<CustomerInfo> {
      * @return
      */
     CustomerInfoVo getCustomerById(@Param("id") Long id);
+
+    /**
+     * 查询所属品类商家
+     * @param productId
+     * @return
+     */
+    List<CustomerInfoVo> getCustomerListByProductId(@Param("productId") Long productId);
+
+    /**
+     * 查询精选商家列表 根据收藏数排行
+     * @return
+     */
+    List<CustomerInfoVo> getCustomerListByCollectionCount();
+
 }

+ 25 - 0
zzjs-service/src/main/java/com/miaxis/customer/service/ICustomerInfoService.java

@@ -3,6 +3,7 @@ package com.miaxis.customer.service;
 import java.util.List;
 
 import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.customer.domain.CustomerInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.miaxis.customer.vo.CustomerInfoVo;
@@ -44,4 +45,28 @@ public interface ICustomerInfoService extends IService<CustomerInfo>{
      * @return
      */
     Response<CustomerInfoVo> getCustomerById(Long id);
+
+    /**
+     * applet
+     * 查询所属品类商家
+     * @param productId
+     * @return
+     */
+    List<CustomerInfoVo> getCustomerListByProductId(Long productId);
+
+    /**
+     * applet
+     * 收藏商家
+     * @param userInfo 当前用户
+     * @param id 商家id
+     * @return
+     */
+    Response collectionBusiness(UserInfo userInfo, Long id);
+
+    /**
+     * 查询精选商家列表 根据收藏数排行
+     * @return
+     */
+    List<CustomerInfoVo> getCustomerListByCollectionCount();
+
 }

+ 47 - 0
zzjs-service/src/main/java/com/miaxis/customer/service/impl/CustomerInfoServiceImpl.java

@@ -3,7 +3,10 @@ package com.miaxis.customer.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.miaxis.collection.domain.CollectionInfo;
+import com.miaxis.collection.mapper.CollectionInfoMapper;
 import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.customer.domain.CustomerInfo;
 import com.miaxis.customer.mapper.CustomerInfoMapper;
 import com.miaxis.customer.service.ICustomerInfoService;
@@ -27,6 +30,8 @@ public class CustomerInfoServiceImpl extends ServiceImpl<CustomerInfoMapper, Cus
 
     private final CustomerInfoMapper customerInfoMapper;
 
+    private final CollectionInfoMapper collectionInfoMapper;
+
     /**
      * 查询客户信息列表
      *
@@ -79,4 +84,46 @@ public class CustomerInfoServiceImpl extends ServiceImpl<CustomerInfoMapper, Cus
     public Response<CustomerInfoVo> getCustomerById(Long id) {
         return Response.success(customerInfoMapper.getCustomerById(id));
     }
+
+    /**
+     * applet
+     * 查询所属品类商家
+     * @param productId
+     * @return
+     */
+    @Override
+    public List<CustomerInfoVo> getCustomerListByProductId(Long productId) {
+        return customerInfoMapper.getCustomerListByProductId(productId);
+    }
+
+    /**
+     * applet
+     * 收藏商家
+     * @param userInfo 当前用户
+     * @param id 商家id
+     * @return
+     */
+    @Override
+    @SneakyThrows
+    @Transactional(rollbackFor = Exception.class)
+    public Response collectionBusiness(UserInfo userInfo, Long id) {
+        //保存收藏表
+        CollectionInfo collectionInfo = new CollectionInfo();
+        collectionInfo.setUserId(userInfo.getId());
+        collectionInfo.setCustomerId(id);
+        collectionInfoMapper.insert(collectionInfo);
+        return Response.success();
+    }
+
+    /**
+     * applet
+     * 查询精选商家列表 根据收藏数排行
+     * @return
+     */
+    @Override
+    public List<CustomerInfoVo> getCustomerListByCollectionCount() {
+        return customerInfoMapper.getCustomerListByCollectionCount();
+    }
+
+
 }

+ 3 - 3
zzjs-service/src/main/java/com/miaxis/product/service/IProductTypeInfoService.java

@@ -1,12 +1,12 @@
 package com.miaxis.product.service;
 
-import java.util.List;
-
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.product.domain.ProductTypeInfo;
-import com.baomidou.mybatisplus.extension.service.IService;
 import com.miaxis.product.vo.ProductTypeInfoVo;
 
+import java.util.List;
+
 /**
  * 品类Service接口
  *

+ 6 - 0
zzjs-service/src/main/java/com/miaxis/product/service/impl/ProductTypeInfoServiceImpl.java

@@ -1,8 +1,12 @@
 package com.miaxis.product.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.miaxis.common.core.domain.Response;
+import com.miaxis.customer.domain.CustomerInfo;
+import com.miaxis.customer.service.ICustomerInfoService;
+import com.miaxis.customer.vo.CustomerInfoVo;
 import com.miaxis.product.domain.ProductTypeInfo;
 import com.miaxis.product.mapper.ProductTypeInfoMapper;
 import com.miaxis.product.service.IProductTypeInfoService;
@@ -26,6 +30,8 @@ public class ProductTypeInfoServiceImpl extends ServiceImpl<ProductTypeInfoMappe
 
     private final ProductTypeInfoMapper productTypeInfoMapper;
 
+    private final ICustomerInfoService customerInfoService;
+
     /**
      * 查询品类列表
      *

+ 55 - 0
zzjs-service/src/main/resources/mapper/customer/CustomerInfoMapper.xml

@@ -104,4 +104,59 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     </select>
 
+    <select id="getCustomerListByProductId" resultType="com.miaxis.customer.vo.CustomerInfoVo">
+        select
+        ci.id,
+        ci.corporate_name,
+        ci.corporate_logo,
+        f1.file_url as corporateLogoFileUrl,
+        ci.city_code,
+        ci.industry_type,
+        ci.customer_star,
+        ci.applet_address,
+        ci.applet_logo,
+        f2.file_url as appletLogoFileUrl,
+        ci.applet_qr_code,
+        f3.file_url as appletQrCodeFileUrl,
+        ci.applet_introduce,
+        ci.shelf_status,
+        ci.create_time,
+        ci.update_time,
+        ci.status
+        from customer_info ci
+        LEFT JOIN file_info f1 on f1.file_id = ci.corporate_logo
+        LEFT JOIN file_info f2 on f2.file_id = ci.applet_logo
+        LEFT JOIN file_info f3 on f3.file_id = ci.applet_qr_code
+        WHERE ci.industry_type = #{productId}
+
+    </select>
+
+
+    <select id="getCustomerListByCollectionCount" resultType="com.miaxis.customer.vo.CustomerInfoVo">
+        SELECT
+        ci.id,
+        (select COUNT(1) from collection_info coi where coi.customer_id = ci.id) as collectionCount,
+        ci.corporate_name,
+        ci.corporate_logo,
+        f1.file_url as corporateLogoFileUrl,
+        ci.city_code,
+        ci.industry_type,
+        ci.customer_star,
+        ci.applet_address,
+        ci.applet_logo,
+        f2.file_url as appletLogoFileUrl,
+        ci.applet_qr_code,
+        f3.file_url as appletQrCodeFileUrl,
+        ci.applet_introduce,
+        ci.shelf_status,
+        ci.create_time,
+        ci.update_time,
+        ci.status
+        FROM `customer_info` ci
+        LEFT JOIN file_info f1 on f1.file_id = ci.corporate_logo
+        LEFT JOIN file_info f2 on f2.file_id = ci.applet_logo
+        LEFT JOIN file_info f3 on f3.file_id = ci.applet_qr_code
+        ORDER BY collectionCount DESC
+    </select>
+
 </mapper>