package com.bizmatics.controller.web.system; import com.bizmatics.common.core.bean.ApiResult; import com.bizmatics.common.core.exception.BusinessErrorCode; import com.bizmatics.common.core.util.DateUtils; import com.bizmatics.model.page.PageDomain; import com.bizmatics.model.page.TableDataInfo; import com.bizmatics.model.page.TableSupport; import com.bizmatics.service.util.SqlUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import java.beans.PropertyEditorSupport; import java.util.Date; import java.util.List; import java.util.Objects; /** * web层通用数据处理 */ public class BaseController { protected final Logger logger = LoggerFactory.getLogger(BaseController.class); /** * 将前台传递过来的日期格式的字符串,自动转化为Date类型 */ @InitBinder public void initBinder(WebDataBinder binder) { // Date 类型转换 binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { @Override public void setAsText(String text) { setValue(DateUtils.parseDate(text)); } }); } /** * 设置请求分页数据 */ protected void startPage() { PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); if (Objects.nonNull(pageNum) && Objects.nonNull(pageSize)) { String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); PageHelper.startPage(pageNum, pageSize, orderBy); } } /** * 响应请求分页数据 */ @SuppressWarnings({"rawtypes", "unchecked"}) protected TableDataInfo getDataTable(List list) { TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.OK.value()); rspData.setRows(list); rspData.setMsg("查询成功"); rspData.setTotal(new PageInfo(list).getTotal()); return rspData; } /** * 响应返回结果 * * @param rows 影响行数 * @return 操作结果 */ protected ApiResult toAjax(int rows) { return rows > 0 ? ApiResult.success() : ApiResult.error(BusinessErrorCode.BIZ_MODIFY_FAIL.getCode(), BusinessErrorCode.BIZ_MODIFY_FAIL.getDefaultMessage()); } }