You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.6 KiB

9 months ago
  1. package com.spring.modules.base.controller;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.github.pagehelper.PageRowBounds;
  5. import com.spring.common.utils.PageUtils;
  6. import com.spring.common.utils.R;
  7. import com.spring.modules.sys.entity.SysUserEntity;
  8. import org.apache.ibatis.session.SqlSession;
  9. import org.apache.poi.ss.formula.functions.T;
  10. import org.apache.shiro.SecurityUtils;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Controller;
  13. import org.springframework.web.bind.annotation.PathVariable;
  14. import org.springframework.web.bind.annotation.RequestBody;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.ResponseBody;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * 通用查询控制器Controller直接调用mybatis的selectList方法省去service层等
  21. */
  22. @Controller
  23. public class CommonController {
  24. @Autowired
  25. SqlSession sqlSession;
  26. /**
  27. * 通用查询分页暂时有bug如果当前页不在第一页时加参数查询会有问题
  28. */
  29. @RequestMapping(value = "/select/{namespace}/{statement}/paging")
  30. @ResponseBody
  31. public R paging(@PathVariable("namespace") String namespace,
  32. @PathVariable("statement") String statement,
  33. @RequestBody Map<String, Object> paramMap) {
  34. SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
  35. paramMap.put("site", currentUser.getSite());
  36. int page = 1;
  37. if (paramMap.containsKey("page")) {
  38. page = Integer.parseInt(paramMap.get("page").toString());
  39. }
  40. int size = 20;
  41. if (paramMap.containsKey("limit")) {
  42. size = Integer.parseInt(paramMap.get("limit").toString());
  43. }
  44. PageRowBounds rowBounds = new PageRowBounds((page - 1) * size, size);
  45. List rows = sqlSession.selectList(namespace + "." + statement, paramMap, rowBounds);
  46. IPage<T> pageList = new Page<>(page, size,rowBounds.getTotal());
  47. pageList.setRecords(rows);
  48. return R.ok().put("page", new PageUtils(pageList));
  49. }
  50. @RequestMapping(value = "/select/{namespace}/{statement}/list")
  51. @ResponseBody
  52. public R getList(@PathVariable("namespace") String namespace,
  53. @PathVariable("statement") String statement,
  54. @RequestBody Map<String, Object> paramMap) {
  55. List rows = sqlSession.selectList(namespace + "." + statement, paramMap);
  56. return R.ok().put("rows", rows);
  57. }
  58. }