标签:desc res font new category uri ret 列表 app
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; }
标签:desc res font new category uri ret 列表 app
原文地址:https://www.cnblogs.com/xyyou/p/11695134.html