【学成在线】项目学习笔记day01

需求分析

在梳理完用户需求后就要去定义前后端的接口,接口定义后前端和后端就可以依据接口去开发功能了。
本次定义页面查询接口,本接口供前端请求查询页面列表,支持分页及自定义条件查询方式。
具体需求如下:
1、分页查询CmsPage 集合下的数据
2、根据站点Id、模板Id、页面别名查询页面信息
3、接口基于Http Get请求,响应Json数据

CmsPage类

@Data
@ToString
@Document(collection = "cms_page")
public class CmsPage {
    /**
     * 页面名称、别名、访问地址、类型(静态/动态)、页面模版、状态
     */
    //站点ID
    private String siteId;
    //页面ID
    @Id
    private String pageId;
    //页面名称
    private String pageName;
    //别名
    private String pageAliase;
    //访问地址
    private String pageWebPath;
    //参数
    private String pageParameter;
    //物理路径
    private String pagePhysicalPath;
    //类型(静态/动态)
    private String pageType;
    //页面模版
    private String pageTemplate;
    //页面静态化内容
    private String pageHtml;
    //状态
    private String pageStatus;
    //创建时间
    private Date pageCreateTime;
    //模版id
    private String templateId;
    //参数列表
    private List<CmsPageParam> pageParams;
    //模版文件Id
//    private String templateFileId;
    //静态文件Id
    private String htmlFileId;
    //数据Url
    private String dataUrl;

}

配置application.yml

server:
  port: 31001
spring:
  application:
    name: xc‐service‐manage‐cms
  data:
    mongodb:
     uri: mongodb://localhost:27017
     database: xc_cms

创建一个启动类

@SpringBootApplication
@EntityScan("com.xuecheng.framework.domain.cms")//扫描实体类
@ComponentScan(basePackages={"com.xuecheng.api"})//扫描接口
@ComponentScan(basePackages={"com.xuecheng.manage_cms"})//扫描本项目下的所有类
public class ManageCmsApplication {
public static void main(String[] args) {
SpringApplication.run(ManageCmsApplication.class,args);
}
}

CmsPageControllerApi接口定义

@Api(value="cms页面管理接口",description="cms页面管理接口,提供页面的增、删、改、查")
public interface CmsPageControllerApi {
    //页面查询
    @ApiOperation("分页查询页面列表")@ApiImplicitParams({
            @ApiImplicitParam(name="page",value="页码",required=true,paramType="path",dataType="int"),
            @ApiImplicitParam(name="size",value="每页记录数",required=true,paramType="path",dataType="int")
    })
    public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest);
}

CmsPageController继承上个接口

@RestController
@RequestMapping("/cms/page")
public class CmsPageController implements CmsPageControllerApi {
    @Autowired
    PageService pageService;


    @GetMapping("/list/{page}/{size}")
    @Override
    public QueryResponseResult findList(@PathVariable("page") int page,@PathVariable("size") int size, QueryPageRequest queryPageRequest) {
//        QueryResult<CmsPage> queryResult = new QueryResult<>();
//        List<CmsPage> list = new ArrayList<>();
//        CmsPage cmsPage = new CmsPage();
//        cmsPage.setPageName("测试页面");
//        list.add(cmsPage);
//        queryResult.setList(list);
//        queryResult.setTotal(1);
//        QueryResponseResult queryResponseResult = new QueryResponseResult(CommonCode.SUCCESS,queryResult);
        return pageService.findList(page,size,queryPageRequest);
    }
}

PageService业务层

@Service
public class PageService {

    @Autowired
    CmsPageRepository cmsPageRepository;

    /**
     * 页面查询
     *
     * @param page
     * @param size
     * @param queryPageRequest
     * @return
     */
    public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest) {
        if (page <= 0) {
            page = 1;
        }
        page--;
        if (size <= 0) {
            size = 10;
        }
        Pageable pageable = PageRequest.of(page, size); //分页查询
        Page<CmsPage> all = cmsPageRepository.findAll(pageable);
        QueryResult<CmsPage> queryResult = new QueryResult();
        queryResult.setList(all.getContent());      //数据列表
        queryResult.setTotal(all.getTotalElements());   //数据总记录数
        QueryResponseResult queryResponseResult = new QueryResponseResult(CommonCode.SUCCESS, queryResult);
        return queryResponseResult;
    }
}

CmsPageRepository

public interface CmsPageRepository extends MongoRepository<CmsPage,String> {

    CmsPage findByPageName(String pageName);
}

注意:这里dao层使用了spring data mongodb,只需继承MongoRepository类就可以使用各个增删改查方法

结果展示

  • 利用postman测试

在这里插入图片描述
返回结果

{
    "success": true,
    "code": 10000,
    "message": "操作成功!",
    "queryResult": {
        "list": [
            {
                "siteId": "5a751fab6abb5044e0d19ea1",
                "pageId": "5a754adf6abb500ad05688d9",
                "pageName": "index.html",
                "pageAliase": "首页",
                "pageWebPath": "/index.html",
                "pageParameter": null,
                "pagePhysicalPath": "F:\\develop\\xc_portal_static\\",
                "pageType": "0",
                "pageTemplate": null,
                "pageHtml": null,
                "pageStatus": null,
                "pageCreateTime": "2018-02-03T05:37:53.256+0000",
                "templateId": "5a962b52b00ffc514038faf7",
                "pageParams": null,
                "htmlFileId": "5a7c1c54d019f14d90a1fb23",
                "dataUrl": null
            },
            {
                "siteId": "5a751fab6abb5044e0d19ea1",
                "pageId": "5a795ac7dd573c04508f3a56",
                "pageName": "index_banner.html",
                "pageAliase": "轮播图",
                "pageWebPath": "/include/index_banner.html",
                "pageParameter": null,
                "pagePhysicalPath": "F:\\develop\\xc_portal_static\\include\\",
                "pageType": "0",
                "pageTemplate": null,
                "pageHtml": null,
                "pageStatus": null,
                "pageCreateTime": "2018-02-06T07:34:21.255+0000",
                "templateId": "5a962bf8b00ffc514038fafa",
                "pageParams": null,
                "htmlFileId": "5a795bbcdd573c04508f3a59",
                "dataUrl": null
            },
            {
                "siteId": "5a751fab6abb5044e0d19ea1",
                "pageId": "5a7be667d019f14d90a1fb1c",
                "pageName": "index_category.html",
                "pageAliase": "分类导航",
                "pageWebPath": "/include/index_category.html",
                "pageParameter": null,
                "pagePhysicalPath": "F:\\develop\\xc_portal_static\\include\\",
                "pageType": "0",
                "pageTemplate": null,
                "pageHtml": null,
                "pageStatus": null,
                "pageCreateTime": "2018-02-08T05:55:07.590+0000",
                "templateId": "5a962c16b00ffc514038fafd",
                "pageParams": null,
                "htmlFileId": "5a7be8e4d019f14d90a1fb21",
                "dataUrl": null
            },
            {
                "siteId": "5a751fab6abb5044e0d19ea1",
                "pageId": "5a92141cb00ffc5a448ff1a0",
                "pageName": "10101.html",
                "pageAliase": "课程详情页面",
                "pageWebPath": "/course/",
                "pageParameter": null,
                "pagePhysicalPath": "F:\\develop\\xc_portal_static\\course\\detail\\",
                "pageType": "1",
                "pageTemplate": null,
                "pageHtml": null,
                "pageStatus": null,
                "pageCreateTime": "2018-02-25T01:37:25.974+0000",
                "templateId": "5a925be7b00ffc4b3c1578b5",
                "pageParams": [
                    {
                        "pageParamName": "courseid",
                        "pageParamValue": "4028e581617f945f01617f9dabc40000"
                    }
                ],
                "htmlFileId": "5a94d6c6b00ffc3ab4bfa4f4",
                "dataUrl": null
            },
            {
                "siteId": "5a751fab6abb5044e0d19ea1",
                "pageId": "5a94d79cb00ffc3ab4bfa4f6",
                "pageName": "4028e581617f945f01617f9dabc40000.html",
                "pageAliase": "课程详情页面",
                "pageWebPath": "/course/",
                "pageParameter": null,
                "pagePhysicalPath": "F:\\develop\\xc_portal_static\\course\\detail\\",
                "pageType": "1",
                "pageTemplate": null,
                "pageHtml": null,
                "pageStatus": null,
                "pageCreateTime": "2018-02-27T03:59:21.353+0000",
                "templateId": "5a925be7b00ffc4b3c1578b5",
                "pageParams": [
                    {
                        "pageParamName": "courseid",
                        "pageParamValue": "4028e581617f945f01617f9dabc40000"
                    }
                ],
                "htmlFileId": "5aed94530e66185b64804c12",
                "dataUrl": null
            },
            {
                "siteId": "5a751fab6abb5044e0d19ea1",
                "pageId": "5a96114fb00ffc4b44f63e06",
                "pageName": "4028e58161bcf7f40161bcf8b77c0000.html",
                "pageAliase": "课程详情页面",
                "pageWebPath": "/course/",
                "pageParameter": null,
                "pagePhysicalPath": "F:\\develop\\xc_portal_static\\course\\detail\\",
                "pageType": "1",
                "pageTemplate": null,
                "pageHtml": null,
                "pageStatus": null,
                "pageCreateTime": "2018-02-28T02:17:45.785+0000",
                "templateId": "5a925be7b00ffc4b3c1578b5",
                "pageParams": [
                    {
                        "pageParamName": "courseid",
                        "pageParamValue": "4028e58161bcf7f40161bcf8b77c0000"
                    }
                ],
                "htmlFileId": "5a962a07b00ffc514038faef",
                "dataUrl": null
            }
        ],
        "total": 23
    }
}
发布了29 篇原创文章 · 获赞 4 · 访问量 475

猜你喜欢

转载自blog.csdn.net/weixin_43287478/article/details/104533518