一,需求:java
CommonQuery--PyQueryBeanmysql
PyQueryBean:鵬飛歷史記錄查詢,以往哪些人對徵信進行了查詢。
CommonQuery:查詢條件:根據查詢人(umName)、被查詢人姓名(name)、身份證號(documentNo)、手機號(phone)、查詢日期(queryDate)
二,配置相關:
1,mybatis-config.xmlgit
<!-- 配置分頁插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 設置數據庫類型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種數據庫-->
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
複製代碼
2,pom依賴
<!-- mybatis分頁 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency>
三,代碼
Controller
/** * @param request, pyQueryBean * @return com.pingan.credit.model.ResponseResult<java.util.List<com.pingan.credit.model.py.PyQueryBean>> * @Description: 歷史記錄查詢 * @date 2017/11/23 17:00 */ @RequestMapping(path = "/queryPyHistoryRecord", method = {RequestMethod.GET, RequestMethod.POST}) @ResponseBody public ResponseResult<BasePageInfo<PyQueryBean>> queryPyHistoryRecord(HttpServletRequest request, CommonQuery commonQuery) { ResponseResult<BasePageInfo<PyQueryBean>> responseResult = new ResponseResult<>(); try { BasePageInfo<PyQueryBean> pageInfo = pyQueryService.queryHistoryRecord(commonQuery); responseResult.setData(pageInfo); responseResult.setRet(SUCCESS); responseResult.setRefID(commonQuery.getRefID()); responseResult.setTimestamp(DateUtil.getTimeStamp().toString()); } catch (CreditException e) { responseResult.setErrorCode(e.getErrorCode()); responseResult.setRet(SUCCESS); responseResult.setErrorMsg(e.getMessage()); } catch (Exception e) { responseResult.setErrorCode(PyCreditServiceErrorEnum.SYSTEM_ERROR.getCode()); responseResult.setRet(FAILED); responseResult.setErrorMsg(PyCreditServiceErrorEnum.SYSTEM_ERROR.getMsg()); } return responseResult; }
接口響應類
public class ResponseResult<T> extends BasePojo { /**成功標識符 **/ private boolean ret; /** 異常信息**/ private String errorMsg; /** 返回數據類型 **/ private T data; /** 異常碼 **/ private String errorCode; /** 請求ID**/ private String refID; /** 時間戳 **/ private String timestamp;
--響應結果類
public class PyQueryBean extends BaseQuery implements Serializable { private transient int id; /**查詢者姓名,不容許爲空**/ private String name; //被查詢者證件號碼,不容許爲空 private String documentNo; //被查詢者手機號碼,反欺詐的報告不容許爲空 深圳我的徵信能夠爲空 private String phone; //查詢緣由ID,只能傳本單位容許的查詢緣由 101 private String queryReasonID; //96040 反欺詐 90008 深圳我的信用 private String subreportIDs; //引用ID,查詢者提交的用於識別本次查詢的流水號,系統返回結果中會原樣包含該流水號。能夠爲空。 private String refID; private String umName; //證件類型 private String documentType; //報告 private String docId; //查詢日期 private String queryDate; //查詢類型 @JSONField(serialize = false ) private Integer queryType; private String imageId; //是否直連 1:直連 private Integer queryFromPy;
** * 分頁查詢類 ** @date 2017/11/29 15:54 **/ public class BasePageInfo<T>{ /** * 總記錄數 **/ private long total; /** * 結果集 **/ private List<T> list; /** * 第幾頁 **/ private int pageNum; /** * 每頁記錄數 */ private int pageSize; /** * 總頁數 **/ private int pages; /** * 當前頁的數量 <= pageSize,該屬性來自ArrayList的size屬性 **/ private int size; /** * 包裝Page對象,由於直接返回Page對象,在JSON處理以及其餘狀況下會被當成List來處理, * 而出現一些問題。 * * @param list page結果 */ public BasePageInfo(List<T> list) { if (list instanceof Page) { Page<T> page = (Page<T>) list; this.pageNum = page.getPageNum(); this.pageSize = page.getPageSize(); this.total = page.getTotal(); this.pages = page.getPages(); this.list = page; this.size = page.size(); } }
** * 通用查詢類,封裝查詢條件* @date 2017/11/29 9:27 **/ public class CommonQuery extends BaseQuery { /** * 姓名 **/ private String name; /** * 身份證號 **/ private String documentNo; /** * 手機號 **/ private String phone; /** * 查詢起始日期 **/ private String startDate; /** * 查詢終止日期 **/ private String endDate; /** * 查詢方式 **/ private String queryWay; /** * um賬號 **/ private String umName; /** * 引用ID **/ private String refID; /** * 查詢頁碼 **/ private int page; /** * 頁面展現數量 **/ private int pageSize;
Service
/** * @param commonQuery, type, pageNum, pageSize * @return com.github.pagehelper.PageInfo<com.pingan.credit.model.py.PyQueryBean> * @Description: 根據查詢人(umName)、被查詢人姓名(name)、身份證號(documentNo)、手機號(phone)、查詢日期(queryDate) * @date 2017/11/29 9:24 */ @Override public BasePageInfo<PyQueryBean> queryHistoryRecord(CommonQuery commonQuery) throws Exception { try { logger.info("queryHistoryRecord ... "); Map<String, Object> map = new HashMap<>(); map.put("obj", commonQuery); PageHelper.startPage(commonQuery.getPage(), commonQuery.getPageSize()); List<PyQueryBean> list = queryRecordMapper.selectQueryRecordByCondition(map); BasePageInfo<PyQueryBean> result = new BasePageInfo<>(list); result.setList(list); logger.info(JSON.toJSONString(list)); return result; } catch (Exception e) { logger.error("level0_queryHistoryRecord@PyQueryServiceImpl_Exception", e); throw e; } }
sql
<!-- 根據條件查詢出歷史記錄 --> <select id="selectQueryRecordByCondition" resultMap="BaseResultMap" parameterType="Map"> SELECT name,documentNo,umName,to_char(queryDate,'yyyy-MM-dd hh24:mi:ss') as queryDate,queryWay,queryReasonCode,queryReason FROM ICS_PY_QUERYRECORD <trim prefix="WHERE" prefixOverrides="AND | OR "> <if test="obj.startDate !=null and obj.startDate !='' "> <![CDATA[ AND QUERYDATE> to_date(#{obj.startDate,jdbcType=DATE},'yyyy-MM-dd hh24:mi:ss') ]]> </if> <if test="obj.endDate !=null and obj.endDate !='' "> <![CDATA[ AND QUERYDATE<=to_date(#{obj.endDate,jdbcType=DATE},'yyyy-MM-dd hh24:mi:ss' )]]> </if> <if test="obj.umName != null and obj.umName !=''"> AND UMNAME = #{obj.umName,jdbcType=VARCHAR} </if> <if test="obj.name != null and obj.name !=''"> AND NAME = #{obj.name,jdbcType=VARCHAR} </if> <if test="obj.queryWay !=null and obj.queryWay !='' "> AND QUERYWAY = #{obj.queryWay,jdbcType=VARCHAR} </if> <if test="obj.queryReasonCode !=null and obj.queryReasonCode !='' "> AND QUERYREASONCODE = #{obj.queryReasonCode,jdbcType=VARCHAR} </if> </trim> ORDER BY QUERYDATE DESC </select>