效果图
模块划分结构
1.1.1. 内容列表查询
请求的url:/content/query/list
参数:categoryId 分类id分页需要的参数
Integer page, Integer rows
响应的数据:json数据
{total:查询结果总数量,rows[{id:1,title:aaa,subtitle:bb,...}]}
EasyUIDataGridResult
描述商品数据List<TbContent>
查询的表:tb_content
业务逻辑:
根据内容分类id查询内容列表。要进行分页处理。
service实现层代码
@Autowired private TbContentMapper contentMapper;
@Override public EasyUIDataGridResult getItemList(Long categoryId, Integer page, Integer rows) { //设置分页信息 PageHelper.startPage(page,rows); //创建查询条件 TbContentExample example=new TbContentExample(); TbContentExample.Criteria criteria = example.createCriteria(); //设置查询条件 criteria.andCategoryIdEqualTo(categoryId); //执行查询 List<TbContent> contents = contentMapper.selectByExample(example); //取分页信息 PageInfo<TbContent> pageInfo = new PageInfo(contents); //创建返回结果对象 EasyUIDataGridResult result = new EasyUIDataGridResult(); result.setTotal(pageInfo.getTotal()); result.setRows(contents); return result; }application-content.xml发布服务
<dubbo:service interface="com.e3mall.content.service.ContentService" ref="contentServiceImpl" timeout="600000"/>
ContentController
表现层
/** * 通过分类id分页显示数据 * @param categoryId * @param page * @param rows * @return */ @RequestMapping("/content/query/list") @ResponseBody public EasyUIDataGridResult list(Long categoryId,Integer page,Integer rows){ //调用内容服务查询指定内容 EasyUIDataGridResult result = contentService.getItemList(categoryId,page,rows); return result; }
springmvc.xml引用服务
1.1.1. 新增内容
功能分析
提交表单请求的url:/content/save
参数:表单的数据。使用pojo接收TbContent
返回值:E3Result(json数据)
业务逻辑:
1、把TbContent对象属性补全。
2、向tb_content表中插入数据。
3、返回E3Result
service实现层代码
@Override public E3Result addContent(TbContent content) { //补全些不能为空的字段信息 content.setCreated(new Date()); content.setUpdated(new Date()); //执行插入语句 contentMapper.insert(content); //缓存同步(添加的时候把缓存中的cid对应的值删除) jedisClient.hdel(CONTENT_LIST,content.getCategoryId().toString()); return E3Result.ok(); }
表现层代码
/** * 添加内容功能实现 * @param content * @return */ @RequestMapping("/content/save") @ResponseBody public E3Result addContent(TbContent content){ //调用内容服务添加内容 E3Result result=contentService.addContent(content); return result; }
编辑功能
富文本没有回显内容所有要异步回显富文本内容才能有数据这个跟商品管理的编辑基本上是使用的相同的方法
service实现层代码
@Override public E3Result editContent(TbContent content) { //设置修改时间 content.setUpdated(new Date()); //执行修改 contentMapper.updateByPrimaryKeySelective(content); return E3Result.ok(); }
Controller层
/** *修改内容功能实现 * @auther: jun * @date: 2018/6/3 0003 13:34 * @param content * @return: com.e3mall.common.utils.E3Result * @Description: */ @RequestMapping("/rest/content/edit") @ResponseBody public E3Result editContent(TbContent content){ //调用服务修改内容 E3Result result= contentService.editContent(content); return result; }
富文本回显内容代码实现
Service实现层
@Override public TbContent selectByidContent(Long id) { //执行查询 TbContent tbContent = contentMapper.selectByPrimaryKey(id); return tbContent; }
表现层
/** * 异步重新回显内容数据 * @return */ @RequestMapping("/query/content/{id}") @ResponseBody public TbContent selectContent(@PathVariable Long id){ TbContent result=contentService.selectByidContent(id); return result; }
删除功能代码(这里我们做的是一个批量删除功能所有传的一个字符串参数)
service实现层
@Override public E3Result deleteBatchContent(String[] ids) { //遍历集合 for (String id :ids) { //执行操作数据库 contentMapper.deleteByPrimaryKey(Long.valueOf(id)); } return E3Result.ok(); }
Controller层
/** * 删除内容信息 * @param ids * @return */ @RequestMapping("/content/delete") @ResponseBody public E3Result deleteContent(String [] ids){ E3Result result=contentService.deleteBatchContent(ids); return result; }