content: package com.snow.common.core.web.controller;
  
  import java.beans.PropertyEditorSupport;
  import java.util.Date;
  import java.util.List;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  import org.springframework.web.bind.WebDataBinder;
  import org.springframework.web.bind.annotation.InitBinder;
  import com.github.pagehelper.PageInfo;
  import com.snow.common.core.constant.HttpStatus;
  import com.snow.common.core.utils.DateUtils;
  import com.snow.common.core.utils.PageUtils;
  import com.snow.common.core.web.domain.AjaxResult;
  import com.snow.common.core.web.page.TableDataInfo;
  
  /**
   * web层通用数据处理
   *
   * @author snow
   */
  public class BaseController
  {
      protected final Logger logger = LoggerFactory.getLogger(this.getClass());
  
      /**
       * 将前台传递过来的日期格式的字符串，自动转化为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()
      {
          PageUtils.startPage();
      }
  
      /**
       * 清理分页的线程变量
       */
      protected void clearPage()
      {
          PageUtils.clearPage();
      }
  
      /**
       * 响应请求分页数据
       */
      @SuppressWarnings({ "rawtypes", "unchecked" })
      protected TableDataInfo getDataTable(List<?> list)
      {
          TableDataInfo rspData = new TableDataInfo();
          rspData.setCode(HttpStatus.SUCCESS);
          rspData.setRows(list);
          rspData.setMsg("查询成功");
          rspData.setTotal(new PageInfo(list).getTotal());
          return rspData;
      }
  
      /**
       * 返回成功
       */
      public AjaxResult success()
      {
          return AjaxResult.success();
      }
  
      /**
       * 返回成功消息
       */
      public AjaxResult success(String message)
      {
          return AjaxResult.success(message);
      }
  
      /**
       * 返回成功消息
       */
      public AjaxResult success(Object data)
      {
          return AjaxResult.success(data);
      }
  
      /**
       * 返回失败消息
       */
      public AjaxResult error()
      {
          return AjaxResult.error();
      }
  
      /**
       * 返回失败消息
       */
      public AjaxResult error(String message)
      {
          return AjaxResult.error(message);
      }
  
      /**
       * 返回警告消息
       */
      public AjaxResult warn(String message)
      {
          return AjaxResult.warn(message);
      }
  
      /**
       * 响应返回结果
       *
       * @param rows 影响行数
       * @return 操作结果
       */
      protected AjaxResult toAjax(int rows)
      {
          return rows > 0 ? AjaxResult.success() : AjaxResult.error();
      }
  
      /**
       * 响应返回结果
       *
       * @param result 结果
       * @return 操作结果
       */
      protected AjaxResult toAjax(boolean result)
      {
          return result ? success() : error();
      }
  }
  