zoukankan      html  css  js  c++  java
  • 数据结构设计

    API:

    {
        "code": 0,
        "msg": "成功",
        "data": [
            {
                "name": "热榜",
                "type": 1,
                "foods": [
                    {
                        "id": "123456",
                        "name": "皮蛋粥",
                        "price": 1.2,
                        "description": "好吃的皮蛋粥",
                        "icon": "http://xxx.com",
                    }
                ]
            },
            {
                "name": "好吃的",
                "type": 2,
                "foods": [
                    {
                        "id": "123457",
                        "name": "慕斯蛋糕",
                        "price": 10.9,
                        "description": "美味爽口",
                        "icon": "http://xxx.com",
                    }
                ]
            }
        ]
    }
    

      controller:

    @GetMapping("/list")
        public ResultVO<ProductVO> list() {
            //1. 查询所有在架的商品
            List<ProductInfo> productInfoList = productService.findUpAll();
    
            //2. 获取类目type列表
            List<Integer> categoryTypeList = productInfoList.stream()
                    .map(ProductInfo::getCategoryType)
                    .collect(Collectors.toList());
    
            //3. 从数据库查询类目
            List<ProductCategory> categoryList = categoryService.findByCategoryTypeIn(categoryTypeList);
    
            //4. 构造数据
            List<ProductVO> productVOList = new ArrayList<>();
            for (ProductCategory productCategory: categoryList) {
                ProductVO productVO = new ProductVO();
                productVO.setCategoryName(productCategory.getCategoryName());
                productVO.setCategoryType(productCategory.getCategoryType());
    
                List<ProductInfoVO> productInfoVOList = new ArrayList<>();
                for (ProductInfo productInfo: productInfoList) {
                    if (productInfo.getCategoryType().equals(productCategory.getCategoryType())) {
                        ProductInfoVO productInfoVO = new ProductInfoVO();
                        BeanUtils.copyProperties(productInfo, productInfoVO);
                        productInfoVOList.add(productInfoVO);
                    }
                }
                productVO.setProductInfoVOList(productInfoVOList);
                productVOList.add(productVO);
            }
    
            return ResultVOUtil.success(productVOList);
        }
    

      dataobject: 

    ProductCategory
    package com.imooc.product.dataobject;
    
    import lombok.Data;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import java.util.Date;
    
    @Data
    @Entity
    public class ProductCategory {
    
        @Id
        @GeneratedValue
        private Integer categoryId;
    
        /** 类目名字. */
        private String categoryName;
    
        /** 类目编号. */
        private Integer categoryType;
    
        private Date createTime;
    
        private Date updateTime;
    }
    

      

    ProductInfo
    package com.imooc.product.dataobject;
    
    import lombok.Data;
    
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import java.math.BigDecimal;
    import java.util.Date;
    
    /**
     * Created by 廖师兄
     * 2017-12-09 21:23
     */
    @Data  //自动生成set、get方法
    //@Table(name = "T_proxxx")
    @Entity //生成数据库表
    public class ProductInfo {
    
        @Id
        private String productId;
    
        /** 名字. */
        private String productName;
    
        /** 单价. */
        private BigDecimal productPrice;
    
        /** 库存. */
        private Integer productStock;
    
        /** 描述. */
        private String productDescription;
    
        /** 小图. */
        private String productIcon;
    
        /** 状态, 0正常1下架. */
        private Integer productStatus;
    
        /** 类目编号. */
        private Integer categoryType;
    
        private Date createTime;
    
        private Date updateTime;
    }
    

      



      VO:
    ProductInfoVO
    package com.imooc.product.VO;
    
    import com.fasterxml.jackson.annotation.JsonProperty;
    import lombok.Data;
    
    import java.math.BigDecimal;
    
    /**
     * Created by xyyou
     * 2019/10/11 22:40
     */
    @Data
    public class ProductInfoVO {
    
        @JsonProperty("id")
        private String productId;
    
        @JsonProperty("name")
        private String productName;
    
        @JsonProperty("price")
        private BigDecimal productPrice;
    
        @JsonProperty("description")
        private String productDescription;
    
        @JsonProperty("icon")
        private String productIcon;
    }
    

      ProductVO

    package com.imooc.product.VO;
    
    import com.fasterxml.jackson.annotation.JsonProperty;
    import lombok.Data;
    
    import java.util.List;
    
    /**
     * Created by xyyou
     * 2019/10/11 22:37
     */
    @Data
    public class ProductVO {
    
        @JsonProperty("name")
        private String categoryName;
    
        @JsonProperty("type")
        private Integer categoryType;
    
        @JsonProperty("foods")
        List<ProductInfoVO> productInfoVOList;
    }
    

      ResultVO

    package com.imooc.product.VO;
    
    import lombok.Data;
    
    /**
     * http返回的最外层对象
     * Created by xyyou
     * 2019/10/11 22:34
     */
    @Data
    public class ResultVO<T> {
    
        /**
         * 错误码
         */
        private Integer code;
    
        /**
         * 提示信息
         */
        private String msg;
    
        /**
         * 具体内容
         */
        private T data;
    
    }
    

      

  • 相关阅读:
    【模板时间】◆模板·III◆ 单调子序列
    【学时总结】◆学时·VII◆ 高维DP
    【例题收藏】◇例题·IV◇ Wooden Sticks
    【赛时总结】◇赛时·VI◇ Atcoder ABC-104
    【例题收藏】◇例题·III◇ 木と整数 / Integers on a Tree
    【学时总结】◆学时·VI◆ SPLAY伸展树
    【模板时间】◆模板·II◆ 树链剖分
    【赛时总结】◇赛时·V◇ Codeforces Round #486 Div3
    【例题收藏】◇例题·II◇ Berland and the Shortest Paths
    【例题收藏】◇例题·I◇ Snuke's Subway Trip
  • 原文地址:https://www.cnblogs.com/xyyou/p/11695134.html
Copyright © 2011-2022 走看看