zoukankan      html  css  js  c++  java
  • 【项目】01CMS的CRUD

    一,条件分页查询

    1定义接口需要什么返回什么:

    接口

    @Api("cmspage接口管理")
    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")
    })
        QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest);

    返回QueryResponseResult

    import lombok.Data;
    import lombok.ToString;
    
    @Data
    @ToString
    public class QueryResponseResult<T> extends ResponseResult {
    
        QueryResult queryResult;
    
        public QueryResponseResult(ResultCode resultCode,QueryResult queryResult){
            super(resultCode);
            this.queryResult = queryResult;
        }
    
    }

    其中的 QueryResult

    import lombok.Data;
    import lombok.ToString;
    
    import java.util.List;
    
    
    @Data
    @ToString
    public class QueryResult<T> {
        //数据列表
        private List<T> list;
        //数据总数
        private long total;
    
    
    }

    继承了ResponseResult

    import lombok.Data;
    import lombok.NoArgsConstructor;
    import lombok.ToString;
    
    @Data
    @ToString
    @NoArgsConstructor
    public class ResponseResult implements Response {
    
        //操作是否成功
        boolean success = SUCCESS;
    
        //操作代码
        int code = SUCCESS_CODE;
    
        //提示信息
        String message;
    
        public ResponseResult(ResultCode resultCode){
            this.success = resultCode.success();
            this.code = resultCode.code();
            this.message = resultCode.message();
        }
    
        public static ResponseResult SUCCESS(){
            return new ResponseResult(CommonCode.SUCCESS);
        }
        public static ResponseResult FAIL(){
            return new ResponseResult(CommonCode.FAIL);
        }
    
    }

    分页查询条件

    import lombok.Data;
    import lombok.NoArgsConstructor;
    import lombok.ToString;
    
    @Data
    @ToString
    @NoArgsConstructor
    public class QueryPageRequest {
        private String siteId;
        private String pageName;
        private String pageAliase;
    }

    2.创建service-manage-cms工程

    Controller

     1 @RestController
     2 @RequestMapping("/cms/page")
     3 public class CmsPageController implements CmsPageControllerApi {
     4 
     5 @Autowired
     6 private CmsPageService cmsPageService;
     7 
     8    @Override
     9     @GetMapping("/list/{page}/{size}")
    10     public QueryResponseResult findList(@PathVariable("page") int page, @PathVariable("size") int size, QueryPageRequest queryPageRequest) {
    11     /*    //暂时采用测试数据,测试接口是否可以正常运行
    12         QueryResult queryResult = new QueryResult();
    13         queryResult.setTotal(2);
    14         //静态数据列表
    15         List list = new ArrayList();
    16         CmsPage cmsPage = new CmsPage();
    17         cmsPage.setPageName("测试页面");
    18         list.add(cmsPage);
    19         queryResult.setList(list);*/
    20         //QueryResponseResult queryResponseResult = new QueryResponseResult(CommonCode.SUCCESS,queryResult);
    21 
    22 
    23 
    24         return cmsPageService.findList(page,size,queryPageRequest);
    25     }

    精确查询(站点)

    Page<CmsPage> all = cmsPageRepository.findAll(example, pageable);

    example是条件封装

     Example<CmsPage> example=Example.of(cmsPageQuery,matcher);

    模糊查询(关键字)

    ExampleMatcher matchaer=ExampleMatcher.matching().withMatcher("pageAliase",ExampleMatcher.GenericPropertyMatchers.contains())

     分发

     1 @Service
     2 public class CmsPageService  {
     3     @Autowired
     4     CmsPageRepository cmsPageRepository;
     5 @Value("${xuecheng.mq.routingKey}")
     6     private String routingKey;
     7     public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest) {
     8 
     9         if(page<=0){
    10             page=1;
    11 
    12         }if(size<=0){
    13             size=10;
    14 
    15         }
    16         if(queryPageRequest==null){
    17 
    18             queryPageRequest = new QueryPageRequest();
    19         }
    20         Pageable pageable=new PageRequest(page-1,size);
    21         //Page<CmsPage> all = cmsPageRepository.findAll(pageable);
    22         CmsPage cmsPageQuery=new CmsPage();
    23         if(StringUtils.isNotEmpty(queryPageRequest.getSiteId())){
    24 
    25             cmsPageQuery.setSiteId(queryPageRequest.getSiteId());
    26         }
    27         if(StringUtils.isNotEmpty(queryPageRequest.getPageAliase())){
    28 
    29             cmsPageQuery.setPageAliase(queryPageRequest.getPageAliase());
    30         }
    31         ExampleMatcher matcher=ExampleMatcher.matching().withMatcher("pageAliase",ExampleMatcher.GenericPropertyMatchers.contains());
    32         Example<CmsPage> example=Example.of(cmsPageQuery,matcher);
    33         Page<CmsPage> all = cmsPageRepository.findAll(example, pageable);
    34         QueryResult queryResult=new QueryResult();
    35         queryResult.setList(all.getContent());
    36         queryResult.setTotal(all.getTotalElements());
    37         return new QueryResponseResult(CommonCode.SUCCESS,queryResult);
    38     }

    repository

    1 import com.xuecheng.filesystem.framework.domain.cms.CmsPage;
    2 import org.springframework.data.mongodb.repository.MongoRepository;
    3 
    4 public interface CmsPageRepository extends MongoRepository<CmsPage,String> {
    5     CmsPage findByPageNameAndSiteIdAndPageWebPath(String pageName,String siteId,String pageWebPath);
    6 
    7 }





    二,站点下拉类表

    目标实体类

    import lombok.Data;
    import lombok.ToString;
    import org.springframework.data.annotation.Id;
    import org.springframework.data.mongodb.core.mapping.Document;
    
    import java.util.Date;
    
    @Data
    @ToString
    @Document(collection = "cms_site")
    public class CmsSite {
    
        //站点ID
        @Id
        private String siteId;
        //站点名称
        private String siteName;
        //站点名称
        private String siteDomain;
        //站点端口
        private String sitePort;
        //站点访问地址
        private String siteWebPath;
        //创建时间
        private Date siteCreateTime;
    
        private String sitePhysicalPath;
    
    }

    表中

    cms_site

    api

    import com.xuecheng.filesystem.framework.domain.cms.CmsSite;
    import io.swagger.annotations.Api;
    
    import java.util.List;
    
    @Api("cmssite站点管理")
    public interface CmsSiteControllerApi {
        List<CmsSite> findList();
    }

    controller

    @RestController
    @RequestMapping("/cms/site")
    public class CmsSiteController implements CmsSiteControllerApi {
    @Autowired
       private CmsSiteService cmsSiteService;
    
        @Override
        @GetMapping("/list")
        public List<CmsSite> findList() {
            return cmsSiteService.findList();
        }
    }

    service(findAll)

     1 @Service
     2 public class CmsSiteService{
     3 @Autowired
     4 CmsSiteRepository cmsSiteRepository;
     5 
     6 
     7     public List<CmsSite> findList() {
     8         List<CmsSite> all = cmsSiteRepository.findAll();
     9         /*QueryResult queryResult =new QueryResult();
    10         queryResult.setList(all);*/
    11       //  return new QueryResponseResult(CommonCode.SUCCESS,queryResult);
    12     return all;
    13     }

    repository(实体类主键数据类型)

    import com.xuecheng.filesystem.framework.domain.cms.CmsSite;
    import org.springframework.data.mongodb.repository.MongoRepository;
    
    public interface CmsSiteRepository extends MongoRepository<CmsSite,String> {
    
    
    }

     三,新增之页面模板下拉类表‘

    前端vue

    //cmspage列表查询   /api/cms/list/1/1
    export const page_list=(page,size,params)=>{
      let queryParams = querystring.stringify(params);
      return http.requestGet(apiUrl+'/cms/page/list/'+page+'/'+size+'/?'+queryParams);
    }
    1 //添加页面
    2 export const page_add=(params)=>{
    3   return http.requestPost(apiUrl+'/cms/page/add',params);
    4 }

    实体类

     1 import lombok.Data;
     2 import lombok.ToString;
     3 import org.springframework.data.annotation.Id;
     4 import org.springframework.data.mongodb.core.mapping.Document;
     5 
     6 
     7 @Data
     8 @ToString
     9 @Document(collection = "cms_template")
    10 public class CmsTemplate {
    11 
    12     //站点ID
    13     private String siteId;
    14     //模版ID
    15     @Id
    16     private String templateId;
    17     //模版名称
    18     private String templateName;
    19     //模版参数
    20     private String templateParameter;
    21 
    22     //模版文件Id
    23     private String templateFileId;
    24 }

    cms_template

    api

     1 import com.xuecheng.filesystem.framework.domain.cms.CmsTemplate;
     2 import io.swagger.annotations.Api;
     3 import io.swagger.annotations.ApiOperation;
     4 
     5 import java.util.List;
     6 
     7 @Api("页面模板接口管理")
     8 public interface CmsTemplateControllerApi {
     9 @ApiOperation("查询模板列表")
    10     List<CmsTemplate> findList();
    11 }

    controller

     1 import com.xuecheng.filesystem.api.cms.CmsTemplateControllerApi;
     2 import com.xuecheng.filesystem.framework.domain.cms.CmsTemplate;
     3 import com.xuecheng.filesystem.manage_cms.service.CmsTemplateService;
     4 import org.springframework.beans.factory.annotation.Autowired;
     5 import org.springframework.web.bind.annotation.*;
     6 
     7 import java.util.List;
     8 @RestController
     9 @RequestMapping("/cms/template")
    10 public class CmsTemplateController implements CmsTemplateControllerApi {
    11 /*
    12     @Override
    13     @PostMapping("/add")
    14     public CmsPageResult add(@RequestBody CmsPage cmsPage) {
    15         List<String> list = new ArrayList<String>();
    16         return cmsPageService.add(cmsPage);
    17 
    18     }*/
    19 @Autowired
    20 private CmsTemplateService cmsTemplateService;
    21     @Override
    22     @GetMapping("/list")
    23     public List<CmsTemplate> findList() {
    24         return cmsTemplateService.findList();
    25     }
    26 }

    service

    import com.xuecheng.filesystem.framework.domain.cms.CmsTemplate;
    import com.xuecheng.filesystem.manage_cms.dao.CmsTemplateRepository;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    @Service
    public class CmsTemplateService  {
        @Autowired
        CmsTemplateRepository cmsTemplateRepository;
    
        public List<CmsTemplate> findList() {
            List<CmsTemplate> all = cmsTemplateRepository.findAll();
    
            return all;
        }
    }

    repository

    import com.xuecheng.filesystem.framework.domain.cms.CmsTemplate;
    import org.springframework.data.mongodb.repository.MongoRepository;
    
    public interface CmsTemplateRepository extends MongoRepository<CmsTemplate,String> {
    
    }

    四,添加

    controller(

     CmsPageController 

    1    @Override
    2     @PostMapping("/add")
    3     public CmsPageResult addPage(@RequestBody CmsPage cmsPage) {
    4 
    5        return cmsPageService.addPage(cmsPage);
    6     }

    service

    CmsPageService

    避免重复添加(页面名,页面webpath,站点id)先判断(查询三条件都满足视为同一项目不予添加)

     1   public CmsPageResult addPage(CmsPage cmsPage) {
     2         CmsPage pageNameAndSiteIdAndPageWebPath = cmsPageRepository.findByPageNameAndSiteIdAndPageWebPath(cmsPage.getPageName(), cmsPage.getSiteId(), cmsPage.getPageWebPath());
     3     if(pageNameAndSiteIdAndPageWebPath != null )
     4     {
     5         ExceptionCast.cast(CmsCode.CMS_ADDPAGE_EXISTSNAME);
     6 
     7     }
     8         cmsPage.setPageId(null);
     9         cmsPageRepository.save(cmsPage);
    10         CmsPageResult cmsPageResult = new CmsPageResult(CommonCode.SUCCESS, cmsPage);
    11         return cmsPageResult;
    12     //throw new CustomerException(CmsCode.CMS_ADDPAGE_EXISTSNAME);
    13        // return new CmsPageResult(CommonCode.FAIL,null);
    14     }

    repository

    1 import com.xuecheng.filesystem.framework.domain.cms.CmsPage;
    2 import org.springframework.data.mongodb.repository.MongoRepository;
    3 
    4 public interface CmsPageRepository extends MongoRepository<CmsPage,String> {
    5     CmsPage findByPageNameAndSiteIdAndPageWebPath(String pageName,String siteId,String pageWebPath);
    6 
    7 }

    五,编辑

    1.vue前端page_list

    1     <el-button
    2             size="small"type="text"
    3             @click="edit(page.row.pageId)">编辑
    4           </el-button>

    点击edit

          edit:function (pageId) {
            this.$router.push({
              path:'/cms/page/edit/'+pageId,
              query:{
                page:this.params.page,
                siteId:this.params.siteId,
                pageAliase:this.params.pageAliase
              }
            })
          },

    点击跳转到page_edit页面

    methods:{
          go_back(){
            this.$router.push({
              path: '/cms/page/list', query: {
                page: this.$route.query.page,
                siteId:this.$route.query.siteId
              }
            })
          },
          editSubmit(){
            this.$refs.pageForm.validate((valid) => {
              if (valid) {
                this.$confirm('确认提交吗?', '提示', {}).then(() => {
                  this.addLoading = true;
                  cmsApi.page_edit(this.pageId,this.pageForm).then((res) => {
                    console.log(res);
                    if(res.success){
                      this.addLoading = false;
                      this.$message({
                        message: '提交成功',
                        type: 'success'
                      });
                      //返回
                      this.go_back();
    
                    }else{
                      this.addLoading = false;
                      this.$message.error('提交失败');
                    }
                  });
                });
              }
            });
          },
          querySiteList:function () {
            cmsApi.site_list().then(response=>{
                this.siteList=response;
            })
          },
          queryTemplateList:function () {
            cmsApi.template_list().then(response=>{
                this.templateList=response;
            })
          }
    
        },
        created: function () {
          this.pageId=this.$route.params.pageId;
          //根据主键查询页面信息
          cmsApi.page_get(this.pageId).then((res) => {
            console.log(res);
            if(res){
              this.pageForm = res;
            }
          });
        },
        mounted:function(){
          this.querySiteList();
          this.queryTemplateList();
        }
      }

    ctrl单击

    cmsApi.page_edit
    //修改页面
    export const page_edit=(id,params)=>{
      return http.requestPut(apiUrl+'/cms/page/edit/'+id,params);
    }

    回显

     mounted:function(){
          this.querySiteList();
          this.queryTemplateList();
    //修改页面
    export const page_edit=(id,params)=>{
      return http.requestPut(apiUrl+'/cms/page/edit/'+id,params);
    }
    
    //查询单一
    export const page_get=(id)=>{
      return http.requestGet(apiUrl+'/cms/page/get/'+id);
    }
     
    api
        @ApiOperation("修改页面")
    ResponseResult editPage(String id, CmsPage cmsPage);

    controller

     1   @Override
     2     @GetMapping("/get/{id}")
     3     public CmsPage findOne(@PathVariable("id") String id){
     4        return cmsPageService.findOne(id);
     5     }
     6     @Override
     7     @PutMapping("/edit/{id}")
     8     public ResponseResult editPage(@PathVariable("id") String id, @RequestBody CmsPage cmsPage) {
     9         return cmsPageService.editPage(id,cmsPage);
    10     }
    service
        /**
         * 查询单一页面
         * @param id
         * @return
         */
        public CmsPage findOne(String id) {
            Optional<CmsPage> byId = cmsPageRepository.findById(id);
            if (byId.isPresent()) {
                CmsPage cmsPage = byId.get();
                return cmsPage;
            }
    return null;
        }
        /**
         * 修改页面
         * @param id
         * @param cmsPage
         * @return
         */
        public CmsPageResult editPage(String id, CmsPage cmsPage) {
            CmsPage one = this.findOne(id);
    if(one == null){
        return new CmsPageResult(CommonCode.FAIL,null);
    
    }
         //   CmsPage one = this.getById(id);
    
                //更新模板id
                one.setTemplateId(cmsPage.getTemplateId());
                //更新所属站点
                one.setSiteId(cmsPage.getSiteId());
                //更新页面别名
                one.setPageAliase(cmsPage.getPageAliase());
                //更新页面名称
                one.setPageName(cmsPage.getPageName());
                //更新访问路径
                one.setPageWebPath(cmsPage.getPageWebPath());
                //更新物理路径
                one.setPagePhysicalPath(cmsPage.getPagePhysicalPath());
                //更新dataUrl
                one.setDataUrl(cmsPage.getDataUrl());
                //执行更新
            CmsPage save = cmsPageRepository.save(one);
            return new CmsPageResult(CommonCode.SUCCESS,save);
        }
    六。删除
    前端
    //删除页面
    export const page_del=(id)=>{
      return http.requestDelete(apiUrl+'/cms/page/del/'+id);
    }

    api

    @ApiOperation("删除页面")
        ResponseResult deletePage(String id);

    controller

     @Override
        @DeleteMapping("/del/{id}")
        public ResponseResult deletePage(@PathVariable("id") String id) {
            return cmsPageService.deletePage(id);
        }

    service

    //删除页面
        public ResponseResult deletePage(String id) {
            cmsPageRepository.deleteById(id);
            return new ResponseResult(CommonCode.SUCCESS);
        }


    当一个男人不再对你啰嗦,不再缠着你,不再没事找你,对你说话也客气了,也不再气你了。那么恭喜你,你已经成功的失去了他。别嫌弃男人幼稚,那是他喜欢你,爱你。女人说男人像小孩子一样不成熟,可又有谁知道,男人在自己喜欢的女人面前才像小孩子,如果不喜欢你了,不爱你了,他比你爸还成熟。
  • 相关阅读:
    体育场馆预订系统版本1.0
    需求分析
    系统界面主地图
    详细设计
    概要设计
    测试用例正式发布
    第二次全体会议顺利召开5.30
    第一次小组会议(5.24)
    SDk编程基础
    单词canutillos祖母绿canutillos英语
  • 原文地址:https://www.cnblogs.com/fengtangjiang/p/11110582.html
Copyright © 2011-2022 走看看