7.查询热销商品前四名的实现

1.数据库

 1 CREATE TABLE t_product (
 2   id int(20) NOT NULL COMMENT '商品id',
 3   category_id int(20) DEFAULT NULL COMMENT '分类id',
 4   item_type varchar(100) DEFAULT NULL COMMENT '商品系列',
 5   title varchar(100) DEFAULT NULL COMMENT '商品标题',
 6   sell_point varchar(150) DEFAULT NULL COMMENT '商品卖点',
 7   price bigint(20) DEFAULT NULL COMMENT '商品单价',
 8   num int(10) DEFAULT NULL COMMENT '库存数量',
 9   image varchar(500) DEFAULT NULL COMMENT '图片路径',
10   status int(1) DEFAULT '1' COMMENT '商品状态  1:上架   2:下架   3:删除',
11   priority int(10) DEFAULT NULL COMMENT '显示优先级',
12   created_time datetime DEFAULT NULL COMMENT '创建时间',
13   modified_time datetime DEFAULT NULL COMMENT '最后修改时间',
14   created_user varchar(50) DEFAULT NULL COMMENT '创建人',
15   modified_user varchar(50) DEFAULT NULL COMMENT '最后修改人',
16   PRIMARY KEY (id)
17 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Product数据表

2.product实体类

package com.ku.store.entity;

import lombok.Data;

@Data
public class Product extends BaseEntity{
    private Integer id;
    private Integer categoryId;//类别id
    private String itemType;//项目
    private String title;
    private String sellPoint;//销售点
    private Long price;
    private Integer num;
    private String image;
    private Integer status;
    private Integer priority;//优先权
}
Product实体类

3.mapper层

  3.1.接口实现

/**
     * 查询热销商品前四名
     * @return 热销商品前四名的集合
     */
    List<Product> findHostList();

  3.2.接口的xml实现

<resultMap id="ProductEntityMap" type="com.ku.store.entity.Product">
        <id column="id" property="id"/>
        <result column="category_id" property="categoryId"/>
        <result column="item_type" property="itemType"/>
        <result column="sell_point" property="sellPoint"/>
        <result column="created_user" property="createdUser"/>
        <result column="created_time" property="createdTime"/>
        <result column="modified_user" property="modifiedUser"/>
        <result column="modified_time" property="modifiedTime"/>
    </resultMap>

    <!-- 查询热销商品的前四名:List<Product> findHostList() -->
    <select id="findHostList" resultMap="ProductEntityMap">
        select
            *
        from
            store.t_product
        where
            status = 1
        order by
            priority desc
            limit 0,4
    </select>
ProductMapper.xml

  3.3.测试接口方法

@Autowired
    ProductMapper productMapper;
    @Test
    public void findHostList(){
        List<Product> hostList = productMapper.findHostList();
        System.out.println("count:"+hostList.size());
        for (Product product : hostList) {
            System.out.println(product);
        }
    }

  3.4.测试结果

4.service层

  4.1.接口实现

List<Product> getHostList();

  4.2.接口实现类

@Service
public class ProductServiceImpl implements IProductService {

    @Autowired
    private ProductMapper productMapper;

    @Override
    public List<Product> getHostList() {
        List<Product> list = productMapper.findHostList();
        for (Product product : list) {
            product.setCreatedUser(null);
            product.setCreatedTime(null);
            product.setModifiedUser(null);
            product.setModifiedTime(null);
        }
        return list;
    }
}
ProdoctServiceImpl

  4.3.实现类测试

@Autowired
    IProductService productService;

    @Test
    public void getHostList(){
        try {
            List<Product> list = productService.getHostList();
            System.out.println("count=" + list.size());
            for (Product item : list) {
                System.out.println(item);
            }
        } catch (ServiceException e) {
            System.out.println(e.getClass().getSimpleName());
            System.out.println(e.getMessage());
        }
    }
ProductServiceTests

  4.4.测试结果

5.controller层

  5.1.增强BaseController

  5.2.实现ProductController

@RestController
@RequestMapping("/products")
public class ProductController extends BaseController{
    @Autowired
    private IProductService productService;

    @GetMapping("hot_list")
    public JsonResult<List<Product>> getHotList(){
        List<Product> data = productService.getHostList();
        return new JsonResult<>(OK, data);
    }
}
ProductController

  5.3.postman测试

   

 

posted @ 2022-10-10 19:04  求知律己  阅读(40)  评论(0)    收藏  举报