From bfa8a5d046d008aafc05b8f9456a7832d4289ac7 Mon Sep 17 00:00:00 2001 From: winLsy <18332763730@163.com> Date: Sun, 4 Feb 2018 18:46:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=81=E8=A3=85=E5=9F=BA=E7=A1=80=E7=9A=84ss?= =?UTF-8?q?m=20dao=20service=20serviceImpl=20=E5=9F=BA=E7=A1=80=E5=A2=9E?= =?UTF-8?q?=E5=88=A0=E6=94=B9=E5=B7=AE=E4=BB=A3=E7=A0=81=EF=BC=8C=E5=8F=AA?= =?UTF-8?q?=E9=9C=80=E6=9D=A1=E4=BB=B6=E6=9F=A5=E8=AF=A2=E6=97=B6=E5=86=99?= =?UTF-8?q?=E4=B8=80=E4=B8=AAsql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../starter/common/response/BaseConst.java | 8 ++++ boot-starter/boot-starter-ssm/README.md | 3 +- .../com/micro/fast/common/dao/SsmMapper.java | 9 ++++ .../micro/fast/common/service/SsmService.java | 2 +- .../common/service/impl/SsmServiceImpl.java | 45 ++++++++++++++++--- .../upms/controller/UpmsSystemController.java | 10 ++--- .../micro/fast/upms/dao/UpmsSystemMapper.java | 11 +++++ .../service/impl/UpmSystemServiceImpl.java | 9 +--- .../resources/mappers/UpmsSystemMapper.xml | 17 +++++++ 9 files changed, 93 insertions(+), 21 deletions(-) diff --git a/boot-starter/boot-starter-common/src/main/java/com/micro/fast/boot/starter/common/response/BaseConst.java b/boot-starter/boot-starter-common/src/main/java/com/micro/fast/boot/starter/common/response/BaseConst.java index 07d83a0..83cea4b 100644 --- a/boot-starter/boot-starter-common/src/main/java/com/micro/fast/boot/starter/common/response/BaseConst.java +++ b/boot-starter/boot-starter-common/src/main/java/com/micro/fast/boot/starter/common/response/BaseConst.java @@ -17,6 +17,14 @@ public class BaseConst { public static final String BASEMSG_PREFIX = DEFAULT_VALIDATE_CODE+ ExceptionUtil.split; + /** + * 分页排序的分隔符 + */ + public static final String ORDER_SPLIT = "_"; + /** + * 分页排序的连接符号 + */ + public static final String ORDER_CONTACT = " "; /** * 服务器响应数据字典 */ diff --git a/boot-starter/boot-starter-ssm/README.md b/boot-starter/boot-starter-ssm/README.md index f187891..bdef931 100644 --- a/boot-starter/boot-starter-ssm/README.md +++ b/boot-starter/boot-starter-ssm/README.md @@ -11,4 +11,5 @@ 组的形式. - 除此之外`mybatis`的`dao`层扫描的配置需要在项目中自行配置 - 需要注意的是:当使用多数据源的时候,需要在使用的项目之中去除默认的数据源自动装配`@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)` -- 对于数据源的切换方法是使用aop的方式对`@SwitchDataSource('数据源的名字')`进行拦截动态切换数据源,主数据源的名字是`master`,从数据源的名字是`slave`.对于没有注解默认的数据源是`master`. \ No newline at end of file +- 对于数据源的切换方法是使用aop的方式对`@SwitchDataSource('数据源的名字')`进行拦截动态切换数据源,主数据源的名字是`master`,从数据源的名字是`slave`.对于没有注解默认的数据源是`master`. +- PageHelper只对紧跟着的第一个SQL语句起作用 \ No newline at end of file diff --git a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/dao/SsmMapper.java b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/dao/SsmMapper.java index d11b634..70ce26b 100644 --- a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/dao/SsmMapper.java +++ b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/dao/SsmMapper.java @@ -1,6 +1,8 @@ package com.micro.fast.common.dao; +import java.util.List; + public interface SsmMapper { int deleteByPrimaryKey(ID id); @@ -16,4 +18,11 @@ public interface SsmMapper { int updateByPrimaryKeyWithBLOBs(T record); int updateByPrimaryKey(T record); + + /** + * 按条件分页查询 + * @param record + * @return + */ + List selectByCondition(T record); } diff --git a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/service/SsmService.java b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/service/SsmService.java index dbe0e4a..10db3e2 100644 --- a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/service/SsmService.java +++ b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/service/SsmService.java @@ -18,7 +18,7 @@ public interface SsmService { /** * 按条件分页查询 */ - ServerResponse getByCondition(T pojo); + ServerResponse getByCondition(T pojo,int pageNum,int pageSize,String orderBy); /** * 修改 */ diff --git a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/service/impl/SsmServiceImpl.java b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/service/impl/SsmServiceImpl.java index 4f0c68c..d4a828d 100644 --- a/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/service/impl/SsmServiceImpl.java +++ b/boot-starter/boot-starter-ssm/src/main/java/com/micro/fast/common/service/impl/SsmServiceImpl.java @@ -1,13 +1,18 @@ package com.micro.fast.common.service.impl; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.micro.fast.boot.starter.common.exception.SystemException; import com.micro.fast.boot.starter.common.response.BaseConst; import com.micro.fast.boot.starter.common.response.ServerResponse; import com.micro.fast.common.dao.SsmMapper; import com.micro.fast.common.service.SsmService; import lombok.Setter; +import org.apache.commons.lang3.StringUtils; import java.io.Serializable; +import java.lang.reflect.Field; +import java.util.List; /** * T表示的是实体类型,ID表示的是主键类型,DAO表示的是dao层的类型 @@ -17,7 +22,7 @@ import java.io.Serializable; public abstract class SsmServiceImpl> implements SsmService{ /** - * 这个属性一定要使用子类的覆盖 + * 这个属性一定要使用子类的覆盖,不然会报空指针 */ private MAPPER mapper; @@ -38,13 +43,39 @@ public abstract class SsmServiceImpl aClass = pojo.getClass(); + Field[] declaredFields = aClass.getDeclaredFields(); + for (Field declaredField : declaredFields) { + String name = declaredField.getName(); + if (name.equals(split[0])){ + if (split[1].equals("desc")||split[1].equals("asc")){ + PageHelper.startPage(pageNum, pageSize,split[0]+BaseConst.ORDER_CONTACT+split[1]); + isOrderBy = true; + break; + } + } + } + } + //如果排序条件不正确就简单分页查询 + if (isOrderBy == false){ + PageHelper.startPage(pageNum, pageSize); + } + } + List list = mapper.selectByCondition(pojo); + PageInfo pageInfo = new PageInfo(list); + return ServerResponse.successData(pageInfo); + } @Override public ServerResponse update(T pojo) { diff --git a/ms/upms/src/main/java/com/micro/fast/upms/controller/UpmsSystemController.java b/ms/upms/src/main/java/com/micro/fast/upms/controller/UpmsSystemController.java index b5907d2..2f5470e 100644 --- a/ms/upms/src/main/java/com/micro/fast/upms/controller/UpmsSystemController.java +++ b/ms/upms/src/main/java/com/micro/fast/upms/controller/UpmsSystemController.java @@ -43,9 +43,11 @@ public class UpmsSystemController { @ApiOperation("根据条件分页查询") @GetMapping - public ServerResponse getSystemByCondition(){ - - return null; + public ServerResponse getSystemByCondition(UpmsSystem upmsSystem, + @RequestParam(defaultValue = "1",required = false) int pageNum, + @RequestParam(defaultValue = "10",required = false)int pageSize, + @RequestParam(required = false) String orderBy){ + return upmsSystemService.getByCondition(upmsSystem,pageNum,pageSize,orderBy); } @ApiOperation("修改系统信息") @@ -62,6 +64,4 @@ public class UpmsSystemController { @NotBlank(message = BaseConst.BASEMSG_PREFIX+"请传入id") String id){ return upmsSystemService.deleteById(Integer.valueOf(id)); } - - } diff --git a/ms/upms/src/main/java/com/micro/fast/upms/dao/UpmsSystemMapper.java b/ms/upms/src/main/java/com/micro/fast/upms/dao/UpmsSystemMapper.java index 8f882c6..75ccbbd 100644 --- a/ms/upms/src/main/java/com/micro/fast/upms/dao/UpmsSystemMapper.java +++ b/ms/upms/src/main/java/com/micro/fast/upms/dao/UpmsSystemMapper.java @@ -3,17 +3,28 @@ package com.micro.fast.upms.dao; import com.micro.fast.common.dao.SsmMapper; import com.micro.fast.upms.pojo.UpmsSystem; +import java.util.List; + public interface UpmsSystemMapper extends SsmMapper { + @Override int deleteByPrimaryKey(Integer id); + @Override int insert(UpmsSystem record); + @Override int insertSelective(UpmsSystem record); + @Override UpmsSystem selectByPrimaryKey(Integer id); + @Override int updateByPrimaryKeySelective(UpmsSystem record); + @Override int updateByPrimaryKey(UpmsSystem record); + + @Override + List selectByCondition(UpmsSystem record); } \ No newline at end of file diff --git a/ms/upms/src/main/java/com/micro/fast/upms/service/impl/UpmSystemServiceImpl.java b/ms/upms/src/main/java/com/micro/fast/upms/service/impl/UpmSystemServiceImpl.java index d6c0669..c4098fa 100644 --- a/ms/upms/src/main/java/com/micro/fast/upms/service/impl/UpmSystemServiceImpl.java +++ b/ms/upms/src/main/java/com/micro/fast/upms/service/impl/UpmSystemServiceImpl.java @@ -1,6 +1,5 @@ package com.micro.fast.upms.service.impl; -import com.micro.fast.boot.starter.common.response.ServerResponse; import com.micro.fast.common.service.impl.SsmServiceImpl; import com.micro.fast.upms.dao.UpmsSystemMapper; import com.micro.fast.upms.pojo.UpmsSystem; @@ -13,16 +12,12 @@ import org.springframework.stereotype.Service; * @author lsy */ @Service -public class UpmSystemServiceImpl extends SsmServiceImpl implements UpmsSystemService,InitializingBean { +public class UpmSystemServiceImpl extends SsmServiceImpl + implements UpmsSystemService,InitializingBean { @Autowired private UpmsSystemMapper mapper; - @Override - public ServerResponse getByCondition(UpmsSystem pojo) { - return null; - } - /** * 在这个bean初始化完成后覆盖父类的mapper */ diff --git a/ms/upms/src/main/resources/mappers/UpmsSystemMapper.xml b/ms/upms/src/main/resources/mappers/UpmsSystemMapper.xml index 647a1bb..20efb92 100644 --- a/ms/upms/src/main/resources/mappers/UpmsSystemMapper.xml +++ b/ms/upms/src/main/resources/mappers/UpmsSystemMapper.xml @@ -162,4 +162,21 @@ orders = #{orders,jdbcType=BIGINT} where id = #{id,jdbcType=INTEGER} + + + + \ No newline at end of file