BaseController.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package com.bizmatics.controller.web.system;
  2. import com.bizmatics.common.core.bean.ApiResult;
  3. import com.bizmatics.common.core.exception.BusinessErrorCode;
  4. import com.bizmatics.common.core.util.DateUtils;
  5. import com.bizmatics.model.page.PageDomain;
  6. import com.bizmatics.model.page.TableDataInfo;
  7. import com.bizmatics.model.page.TableSupport;
  8. import com.bizmatics.service.util.SqlUtil;
  9. import com.github.pagehelper.PageHelper;
  10. import com.github.pagehelper.PageInfo;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.http.HttpStatus;
  14. import org.springframework.web.bind.WebDataBinder;
  15. import org.springframework.web.bind.annotation.InitBinder;
  16. import java.beans.PropertyEditorSupport;
  17. import java.util.Date;
  18. import java.util.List;
  19. import java.util.Objects;
  20. /**
  21. * web层通用数据处理
  22. */
  23. public class BaseController {
  24. protected final Logger logger = LoggerFactory.getLogger(BaseController.class);
  25. /**
  26. * 将前台传递过来的日期格式的字符串,自动转化为Date类型
  27. */
  28. @InitBinder
  29. public void initBinder(WebDataBinder binder) {
  30. // Date 类型转换
  31. binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
  32. @Override
  33. public void setAsText(String text) {
  34. setValue(DateUtils.parseDate(text));
  35. }
  36. });
  37. }
  38. /**
  39. * 设置请求分页数据
  40. */
  41. protected void startPage() {
  42. PageDomain pageDomain = TableSupport.buildPageRequest();
  43. Integer pageNum = pageDomain.getPageNum();
  44. Integer pageSize = pageDomain.getPageSize();
  45. if (Objects.nonNull(pageNum) && Objects.nonNull(pageSize)) {
  46. String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
  47. PageHelper.startPage(pageNum, pageSize, orderBy);
  48. }
  49. }
  50. /**
  51. * 响应请求分页数据
  52. */
  53. @SuppressWarnings({"rawtypes", "unchecked"})
  54. protected TableDataInfo getDataTable(List<?> list) {
  55. TableDataInfo rspData = new TableDataInfo();
  56. rspData.setCode(HttpStatus.OK.value());
  57. rspData.setRows(list);
  58. rspData.setMsg("查询成功");
  59. rspData.setTotal(new PageInfo(list).getTotal());
  60. return rspData;
  61. }
  62. /**
  63. * 响应返回结果
  64. *
  65. * @param rows 影响行数
  66. * @return 操作结果
  67. */
  68. protected ApiResult<Void> toAjax(int rows) {
  69. return rows > 0 ? ApiResult.success() : ApiResult.error(BusinessErrorCode.BIZ_MODIFY_FAIL.getCode(), BusinessErrorCode.BIZ_MODIFY_FAIL.getDefaultMessage());
  70. }
  71. }