1.创建数据库(略)
2.用mabatis-generate生成映射
3.controller
package com.hlj.wym.browser.controller;
import com.hlj.wym.browser.query.ReportTemplateQuery;
import com.hlj.wym.browser.service.ReportTemplateService;
import com.hlj.wym.browser.vo.ReportTemplateAddParam;
import com.hlj.wym.browser.vo.ReportTemplateEditParam;
import com.hlj.wym.common.result.PageResult;
import com.hlj.wym.common.result.Result;
import com.hlj.wym.common.result.ResultCode;
import com.hlj.wym.mbg.model.ReportTemplateWithBLOBs;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@RestController
@RequestMapping("/browser/report/template")
@Api(tags = "ReportTemplateController", description = "模板管理")
public class ReportTemplateController {
@Autowired
private ReportTemplateService reportTemplateService;
@PostMapping("/add")
@ApiOperation("添加模板")
public Result add(@ModelAttribute @Valid ReportTemplateAddParam param){
if(param != null){
Integer count = reportTemplateService.add(param);
if (count > 0) {
return new Result(ResultCode.SUCCESS);
}
return new Result(ResultCode.FAILED);
}
return new Result(ResultCode.PARAM_FAIlED);
}
@PutMapping("/edit")
@ApiOperation("修改模板")
public Result edit(@ModelAttribute @Valid ReportTemplateEditParam param){
if(param != null){
Integer count = reportTemplateService.edit(param);
if (count > 0) {
return new Result(ResultCode.SUCCESS);
}
return new Result(ResultCode.FAILED);
}
return new Result(ResultCode.PARAM_FAIlED);
}
@DeleteMapping("/del")
@ApiOperation("删除模板")
public Result del(@RequestParam Integer id){
if(id != null){
Integer count = reportTemplateService.del(id);
if (count > 0) {
return new Result(ResultCode.SUCCESS);
}
return new Result(ResultCode.FAILED);
}
return new Result(ResultCode.PARAM_FAIlED);
}
@GetMapping("/getAll")
@ApiOperation("查询模板")
public Result getAll(@ModelAttribute @Valid ReportTemplateQuery param){
PageResult data = reportTemplateService.getAll(param);
if (data == null) {
return new Result(ResultCode.PARAM_FAIlED);
}
if (data.getTotal() == 0 || data.getRows().size() == 0) {
return new Result(ResultCode.SELECT_FAILED,data);
}
return new Result(data);
}
@GetMapping("/getOne")
@ApiOperation("查询单个模板")
public Result getOne(@RequestParam Integer id){
if(id != null){
ReportTemplateWithBLOBs reportTemplateWithBLOBs = reportTemplateService.getOne(id);
if (reportTemplateWithBLOBs != null) {
return new Result(ResultCode.SUCCESS, reportTemplateWithBLOBs);
}
return new Result(ResultCode.FAILED);
}
return new Result(ResultCode.PARAM_FAIlED);
}
}
4.vo 和 query(传参数据结构)
package com.hlj.wym.browser.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class ReportTemplateAddParam implements Serializable {
@ApiModelProperty(value = "模板名称")
private String title;
@ApiModelProperty(value = "模板封面")
private String cover;
@ApiModelProperty(value = "模板描述")
private String description;
@ApiModelProperty(value = "页面高度")
private Double height;
@ApiModelProperty(value = "页面样式")
private String style;
@ApiModelProperty(value = "是否发布")
private Boolean isPublish;
@ApiModelProperty(value = "是否是模板")
private Boolean isTemplate;
@ApiModelProperty(value = "页面")
private String pages;
}
package com.hlj.wym.browser.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class ReportTemplateEditParam implements Serializable {
@ApiModelProperty(value = "id", required = true)
private Integer id;
@ApiModelProperty(value = "模板名称")
private String title;
@ApiModelProperty(value = "模板封面")
private String cover;
@ApiModelProperty(value = "模板描述")
private String description;
@ApiModelProperty(value = "页面高度")
private Double height;
@ApiModelProperty(value = "页面样式")
private String style;
@ApiModelProperty(value = "是否发布")
private Boolean isPublish;
@ApiModelProperty(value = "是否是模板")
private Boolean isTemplate;
@ApiModelProperty(value = "页面")
private String pages;
}
5.service(接口与实现)
package com.hlj.wym.browser.service;
import com.hlj.wym.browser.query.ReportTemplateQuery;
import com.hlj.wym.browser.vo.ReportTemplateAddParam;
import com.hlj.wym.browser.vo.ReportTemplateEditParam;
import com.hlj.wym.common.result.PageResult;
import com.hlj.wym.mbg.model.ReportTemplateWithBLOBs;
public interface ReportTemplateService {
Integer add(ReportTemplateAddParam param);
PageResult getAll(ReportTemplateQuery param);
Integer edit(ReportTemplateEditParam param);
Integer del(Integer id);
ReportTemplateWithBLOBs getOne(Integer id);
}
package com.hlj.wym.browser.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.hlj.wym.browser.mapper.ReportTemplateMapper;
import com.hlj.wym.browser.query.ReportTemplateQuery;
import com.hlj.wym.browser.service.ReportTemplateService;
import com.hlj.wym.browser.vo.ReportTemplateAddParam;
import com.hlj.wym.browser.vo.ReportTemplateEditParam;
import com.hlj.wym.common.result.PageResult;
import com.hlj.wym.mbg.dao.ReportTemplateDao;
import com.hlj.wym.mbg.model.ReportTemplateWithBLOBs;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
@Service
public class ReportTemplateServiceImpl implements ReportTemplateService {
@Autowired
private ReportTemplateDao reportTemplateDao;
@Autowired
private ReportTemplateMapper reportTemplateMapper;
@Override
public Integer add(ReportTemplateAddParam param) {
ReportTemplateWithBLOBs reportTemplateWithBLOBs = new ReportTemplateWithBLOBs();
BeanUtils.copyProperties(param,reportTemplateWithBLOBs);
reportTemplateWithBLOBs.setDelStatus("0");
reportTemplateWithBLOBs.setCreateTime(DateUtils.round(new Date(), Calendar.SECOND));
Integer count = reportTemplateDao.insert(reportTemplateWithBLOBs);
return count;
}
@Override
public PageResult getAll(ReportTemplateQuery query) {
Integer pageNum = query.getPageNum();
Integer pageSize = query.getPageSize();
if (pageNum == null || pageSize == null) {
return null;
}
PageHelper.startPage(pageNum, pageSize);
Page<Map<String, Object>> page = reportTemplateMapper.getAll(query);
return new PageResult(page.getTotal(), page.getResult());
}
@Override
public Integer edit(ReportTemplateEditParam param) {
ReportTemplateWithBLOBs bean = new ReportTemplateWithBLOBs();
BeanUtils.copyProperties(param, bean);
bean.setUpdateTime(DateUtils.round(new Date(), Calendar.SECOND));
Integer count = reportTemplateDao.updateByPrimaryKeySelective(bean);
return count;
}
@Override
public Integer del(Integer id) {
ReportTemplateWithBLOBs bean = new ReportTemplateWithBLOBs();
bean.setDelStatus("1");
bean.setId(id);
Integer count = reportTemplateDao.updateByPrimaryKeySelective(bean);
return count;
}
@Override
public ReportTemplateWithBLOBs getOne(Integer id) {
ReportTemplateWithBLOBs reportTemplateWithBLOBs = reportTemplateDao.selectByPrimaryKey(id);
return reportTemplateWithBLOBs;
}
}
6.mapper.xml以及mapper(查询时候使用,包括分页)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hlj.wym.browser.mapper.ReportTemplateMapper">
<select id="getAll" resultType="map" parameterType="com.hlj.wym.browser.query.ReportTemplateQuery">
select * from t_report_template where del_status = 0
</select>
</mapper>
package com.hlj.wym.browser.mapper;
import com.github.pagehelper.Page;
import com.hlj.wym.browser.query.ReportTemplateQuery;
import java.util.Map;
public interface ReportTemplateMapper {
Page<Map<String, Object>> getAll(ReportTemplateQuery query);
}
7.查询条件补充
这里带了一个模糊查询并且可有可无(belong)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hlj.wym.browser.mapper.FormMapper">
<select id="getAll" resultType="map" parameterType="com.hlj.wym.browser.query.FormQuery">
select * from t_form
<trim prefix="where" suffixOverrides="and">
<if test="belong!=null and belong!=''">
t_form.belong
like concat('%',#{belong},'%')
</if>
</trim>
</select>
</mapper>