一.商品规格模版的分页查询
1.分析数据库表格
商品规格相关操作涉及到两张表格:
tb_item_param: 规格模版表, 跟商品类目相关. 相同类目的商品应该有相同的模版.
tb_item_param_item: 规格数据表, 跟商品相关. 即便是同一类商品, 规格数据也会不同, 但是应该遵循相同的模版.
由于规格数据比较复杂, 比较灵活多变. 所以存储数据时使用json格式存储.
例如规格模版:
规格数据:
2.页面分析
index.jsp
item-param-list.jsp
3.提供查询规格模版使用的实体类
由于逆向工程生成的实体类中没有商品类目名称字段, 需要扩展
package com.baizhan.commons.pojo;
import com.baizhan.pojo.ItemParam;
/**
* 查询规格模版时使用的实体类
*/
public class ItemParam4Query extends ItemParam {
private String itemCatName;
public String getItemCatName() {
return itemCatName;
}
public void setItemCatName(String itemCatName) {
this.itemCatName = itemCatName;
}
}
4.提供控制器
@RestController
@RequestMapping("/item/param")
public class ItemParamController {
@Autowired
private ItemParamService itemParamService;
/**
* 分页查询规格模版信息
*
* @param page
* @param rows
* @return
*/
@GetMapping("/list")
public EasyGrid<ItemParam4Query> paramList(
@RequestParam(defaultValue = "1") int page,
@RequestParam(defaultValue = "10") int rows) {
return itemParamService.itemParamList(page, rows);
}
}
5.后台系统服务代码
public interface ItemParamService {
/**
* 规格模版列表
*
* @param page
* @param rows
* @return
*/
EasyGrid<ItemParam4Query> itemParamList(int page, int rows);
}
@Service
public class ItemParamServiceImpl implements ItemParamService {
@Autowired
private RpcItemParamService rpcItemParamService;
@Override
public EasyGrid<ItemParam4Query> itemParamList(int page, int rows) {
// 准备返回结果对象
EasyGrid<ItemParam4Query> grid = new EasyGrid<>();
try {
// 远程调用获取数据
RpcResult<PageInfo<ItemParam4Query>> result =
rpcItemParamService.paramList(page, rows);
// 类型转换
if(result.getStatus() == 200) {
grid.setTotal(result.getData().getTotal());
grid.setRows(result.getData().getList());
}
} catch (Exceptio