任务一后端demo2019-07-28

package com.runshi.autosite.controller.cms;

import com.runshi.autosite.dao.cms.CmsLinkInfoDao;

import com.runshi.autosite.po.PageParameter;

import com.runshi.autosite.po.ResponseResult;

import com.runshi.autosite.po.CmsLinkInfo;

import com.runshi.autosite.utils.CommonUtil;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiImplicitParam;

import io.swagger.annotations.ApiImplicitParams;

import io.swagger.annotations.ApiOperation;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.domain.Page;

import org.springframework.data.domain.PageRequest;

import org.springframework.data.domain.Pageable;

import org.springframework.data.domain.Sort;

import org.springframework.data.jpa.domain.Specification;

import org.springframework.transaction.annotation.Transactional;

import org.springframework.web.bind.annotation.*;

import javax.persistence.criteria.Predicate;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

/**

* @author cli

*/

@RestController

@RequestMapping("/cmslinkinfo")

@Api(tags ="链接_链接信息表api")

@Transactional

public class CmsLinkInfoController {

/**

* 默认主键

*/

    private static final StringPRA_KEY ="id";

/**

* 业务名称

*/

    private static final StringBIZ_NAME ="链接_链接信息表";;

/**

* 业务对象类

*/

    private static final StringBIZ_PO ="CmsLinkInfo";

/**

* 业务对象类名称

*/

    private static final StringBIZ_PO_NAME ="CmsLinkInfo";

/**

* 返回结果

*/

    private ResponseResultresult =new ResponseResult();

@Autowired

    private CmsLinkInfoDaodao;

@ApiOperation(value ="获取" +BIZ_NAME +"列表", notes ="全部列表")

@RequestMapping(value = {""}, method = RequestMethod.GET)

public ResponseResult list() {

try {

result = CommonUtil.setResult("0","查询成功",dao.findAll());

}catch (Exception ex) {

result = CommonUtil.setResult("1", ex.getMessage(),null);

}

return result;

}

@ApiOperation(value ="获取" +BIZ_NAME +"详细信息", notes ="根据url的id来获取" +BIZ_NAME +"详细信息")

@ApiImplicitParam(name ="id", value =BIZ_NAME +"ID", required =true, dataType ="int", paramType ="path")

@RequestMapping(value ="/{id}", method = RequestMethod.GET)

public ResponseResult info(@PathVariable int id) {

try {

result = CommonUtil.setResult("0","查询成功",dao.findById(id));

}catch (Exception ex) {

result = CommonUtil.setResult("1", ex.getMessage(),null);

}

return result;

}

@ApiOperation(value ="获取" +BIZ_NAME +"分页列表", notes ="page:1,size:10,dir:asc/desc,sort:对象字段,parameters:{}")

@ApiImplicitParams({

@ApiImplicitParam(name ="pageParameter", dataType ="PageParameter", value ="自定义条件")

})

@RequestMapping(value ="/page", method = RequestMethod.POST)

public ResponseResult pagelist(@RequestBody PageParameter pageParameter) {

try {

result = CommonUtil.setResult("0",

"查询成功",

pager(pageParameter.getPage(), pageParameter.getSize(),

"".equals(pageParameter.getDir()) ||"asc".equals(pageParameter.getDir()) ? Sort.Direction.ASC : Sort.Direction.DESC,

"".equals(pageParameter.getSort()) ?PRA_KEY : pageParameter.getSort(), pageParameter.getParameters()));

}catch (Exception ex) {

result = CommonUtil.setResult("1", ex.getMessage(),null);

}

return result;

}

@ApiOperation(value ="删除" +BIZ_NAME, notes ="根据url的id删除对象")

@ApiImplicitParam(name ="id", value =BIZ_NAME +"ID", required =true, dataType ="int", paramType ="path")

@RequestMapping(value ="/{id}", method = RequestMethod.DELETE)

public ResponseResult delete(@PathVariable int id) {

try {

dao.deleteById(id);

result = CommonUtil.setResult("0","删除成功","");

}catch (Exception ex) {

result = CommonUtil.setResult("1", ex.getMessage(),null);

}

return result;

}

@ApiOperation(value ="保存" +BIZ_NAME +"信息", notes ="根据" +BIZ_PO_NAME +"对象保存链接_链接信息表")

@ApiImplicitParam(name =BIZ_PO_NAME, value =BIZ_NAME +"详细实体" +BIZ_PO_NAME, required =true, dataType =BIZ_PO, paramType ="path")

@RequestMapping(value ="/save", method = RequestMethod.POST)

public ResponseResult saves(CmsLinkInfo cmsLinkInfo) {

return save(cmsLinkInfo);

}

/**

* 保存

*/

    private ResponseResult save(CmsLinkInfo cmsLinkInfo) {

String code, msg;

int pra;

try {

if (cmsLinkInfo.getId() !=null) {

CmsLinkInfo searchCmsLinkInfo =dao.findById(cmsLinkInfo.getId()).get();

code ="0";

msg ="更新" +BIZ_NAME +"成功";

pra = cmsLinkInfo.getId();

result = CommonUtil.setResult(code, msg,dao.save(CommonUtil.mergeObject(cmsLinkInfo, searchCmsLinkInfo)),pra);

}else {

CmsLinkInfo data =dao.saveAndFlush(cmsLinkInfo);

code ="0";

msg ="保存" +BIZ_NAME +"成功";

pra = data.getId();

result = CommonUtil.setResult(code, msg, data,pra);

}

}catch (Exception ex) {

result = CommonUtil.setResult("1", ex.getMessage(),null);

}

return result;

}

/**

* 分页方法

*

    * @param page      当前页

    * @param size      每页记录数

    * @param dir        排序

    * @param sort      排序字段

    * @param parameters 自定义参数

    * @return 分页数据

*/

    private Page pager(int page,int size, Sort.Direction dir, String sort, HashMap parameters) {

Pageable pageable = PageRequest.of(page -1, size, dir, sort);

Specification specification = getSearch(parameters);

return dao.findAll(specification, pageable);

}

/**

* 自定义查询条件

*

    * @param parameters 自定义条件

    * @return Specification

*/

    private Specification getSearch(HashMap parameters) {

return (root, criteriaQuery, criteriaBuilder) -> {

List predicate =new ArrayList<>();

// 查询条件

            Predicate[] pre =new Predicate[predicate.size()];

return criteriaQuery.where(predicate.toArray(pre)).getRestriction();

};

}

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容