src/main/java/com/moral/common/bean/PageBean.java
@@ -24,7 +24,8 @@ private Integer pageIndex; // 第几页 private Integer pageSize; // 每页记录数 private Integer pages; // 总页数 private String queryParams; private String queryParams; //查询参数 private String orderByClause;//排序条件 private Integer size; // 当前页的数量 <= pageSize,该属性来自ArrayList的size属性 /** src/main/java/com/moral/common/util/ExampleUtil.java
@@ -1,5 +1,6 @@ package com.moral.common.util; import com.moral.common.bean.PageBean; import lombok.extern.log4j.Log4j; import tk.mybatis.mapper.entity.Example; import java.beans.PropertyDescriptor; @@ -18,16 +19,35 @@ private final static String CRITERIA_SPLIT = "\\|\\|\\|"; private final static String CONDITION_SPLIT = "\\|\\|"; private static Map<String, Method> criteriaMethodMap = null; public static Example generateExample(Class clzz, String params) { Example example = new Example(clzz); private static void setOrderByClause(Example example,String orderByClause) throws UnsupportedEncodingException { orderByClause = URLDecoder.decode(orderByClause,"UTF-8"); String[] orderBys = orderByClause.split(CRITERIA_SPLIT); for(String orderBy : orderBys){ String[] items = orderBy.split(CONDITION_SPLIT); String property = items[0]; String sort = items[1]; if("asc".equals(sort)){ example.orderBy(property).asc(); }else{ example.orderBy(property).desc(); } } } public static Example generateExample(Class clzz, PageBean page) { Example example = null; try { String params = page.getQueryParams(); String orderByClause = page.getOrderByClause(); example = new Example(clzz); if(!StringUtils.isNullOrEmpty(orderByClause)){ setOrderByClause(example,orderByClause); } if(StringUtils.isNullOrEmpty(params)){ return example;} params = URLDecoder.decode(params, "UTF-8"); if (!StringUtils.isNullOrEmpty(params) && params.startsWith("or|")) { String[] criteria = params.trim().split(OR_SPLIT); Example.Criteria criteriaOfExample = example.or(); for (String criterion : criteria) { Example.Criteria criteriaOfExample = example.or(); if (!StringUtils.isNullOrEmpty(criterion)) { String[] conditions = criterion.trim().split(CRITERIA_SPLIT); for (String condition : conditions) { src/main/java/com/moral/common/util/MyBatisBaseMapUtil.java
@@ -18,7 +18,7 @@ public static PageBean queryPage(BaseMapper baseMapper, PageBean pageBean,Class clazz){ List page = null; try { Example example = ExampleUtil.generateExample(clazz,pageBean.getQueryParams()); Example example = ExampleUtil.generateExample(clazz,pageBean); PageHelper.startPage(pageBean.getPageIndex(),pageBean.getPageSize()); page = baseMapper.selectByExample(example); src/main/java/com/moral/controller/DeviceVersionController.java
@@ -3,6 +3,7 @@ import com.moral.common.bean.PageBean; import com.moral.common.bean.PageResult; import com.moral.common.bean.ResultBean; import com.moral.entity.DeviceVersion; import com.moral.service.DeviceVersionService; import org.springframework.web.bind.annotation.*; @@ -21,4 +22,16 @@ public PageBean<DeviceVersion> pageList(PageBean pageBean) throws NoSuchMethodException, UnsupportedEncodingException { return deviceVersionService.queryByPageBean(pageBean); } @PostMapping("delete-by-ids") public ResultBean deleteByIds(@RequestBody Integer [] ids){ deviceVersionService.deleteByIds(ids); ResultBean resultBean = new ResultBean(ResultBean.SUCCESS); return resultBean; } @PostMapping("add-or-modify") public ResultBean addOrModify(@RequestBody DeviceVersion deviceVersion){ deviceVersionService.addOrModify(deviceVersion); ResultBean resultBean = new ResultBean(ResultBean.SUCCESS); return resultBean; } } src/main/java/com/moral/service/DeviceVersionService.java
@@ -8,5 +8,6 @@ public interface DeviceVersionService { public PageBean queryByPageBean(PageBean pageBean); public void addOrModify(DeviceVersion deviceVersion); public void deleteByIds(Integer... ids); } src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java
@@ -11,6 +11,8 @@ import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Arrays; @Service public class DeviceVersionServiceImpl implements DeviceVersionService { @@ -20,4 +22,30 @@ public PageBean queryByPageBean(PageBean pageBean){ return MyBatisBaseMapUtil.queryPage(deviceVersionMapper,pageBean,ENTITY_CLASS); } public void addOrModify(DeviceVersion deviceVersion){ try{ if(deviceVersion.getId()==null){ deviceVersionMapper.insertSelective(deviceVersion); }else{ deviceVersionMapper.updateByPrimaryKeySelective(deviceVersion); } } catch (Exception ex){ throw ex; } } @Override public void deleteByIds(Integer... ids) { if(ids!=null&&ids.length>0){ if(ids.length==1){ deviceVersionMapper.deleteByPrimaryKey(ids[0]); }else{ Example example = new Example(DeviceVersion.class); example.or().andIn("id", Arrays.asList(ids)); deviceVersionMapper.deleteByExample(example); } } } }