【项目】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);
    }


猜你喜欢

转载自www.cnblogs.com/fengtangjiang/p/11110582.html
今日推荐