d199c3cb5cb9473bd17dc30661e18e0af0212048.svn-base 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. package org.jeecg.modules.demo.test.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import io.swagger.annotations.Api;
  7. import io.swagger.annotations.ApiOperation;
  8. import io.swagger.annotations.ApiParam;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.jeecg.common.api.vo.Result;
  11. import org.jeecg.common.aspect.annotation.AutoLog;
  12. import org.jeecg.common.aspect.annotation.PermissionData;
  13. import org.jeecg.common.constant.CommonConstant;
  14. import org.jeecg.common.system.base.controller.JeecgController;
  15. import org.jeecg.common.system.query.QueryGenerator;
  16. import org.jeecg.common.util.DateUtils;
  17. import org.jeecg.common.util.RedisUtil;
  18. import org.jeecg.modules.demo.test.entity.JeecgDemo;
  19. import org.jeecg.modules.demo.test.service.IJeecgDemoService;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.web.bind.annotation.*;
  22. import org.springframework.web.servlet.ModelAndView;
  23. import javax.servlet.http.HttpServletRequest;
  24. import javax.servlet.http.HttpServletResponse;
  25. import java.util.ArrayList;
  26. import java.util.Arrays;
  27. import java.util.Date;
  28. import java.util.List;
  29. /**
  30. * @Description: 单表示例
  31. * @Author: jeecg-boot
  32. * @Date:2018-12-29
  33. * @Version:V2.0
  34. */
  35. @Slf4j
  36. @Api(tags = "单表DEMO")
  37. @RestController
  38. @RequestMapping("/test/jeecgDemo")
  39. public class JeecgDemoController extends JeecgController<JeecgDemo, IJeecgDemoService> {
  40. @Autowired
  41. private IJeecgDemoService jeecgDemoService;
  42. @Autowired
  43. private RedisUtil redisUtil;
  44. /**
  45. * 分页列表查询
  46. *
  47. * @param jeecgDemo
  48. * @param pageNo
  49. * @param pageSize
  50. * @param req
  51. * @return
  52. */
  53. @ApiOperation(value = "获取Demo数据列表", notes = "获取所有Demo数据列表")
  54. @GetMapping(value = "/list")
  55. @PermissionData(pageComponent = "jeecg/JeecgDemoList")
  56. public Result<?> list(JeecgDemo jeecgDemo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
  57. HttpServletRequest req) {
  58. QueryWrapper<JeecgDemo> queryWrapper = QueryGenerator.initQueryWrapper(jeecgDemo, req.getParameterMap());
  59. Page<JeecgDemo> page = new Page<JeecgDemo>(pageNo, pageSize);
  60. IPage<JeecgDemo> pageList = jeecgDemoService.page(page, queryWrapper);
  61. log.info("查询当前页:" + pageList.getCurrent());
  62. log.info("查询当前页数量:" + pageList.getSize());
  63. log.info("查询结果数量:" + pageList.getRecords().size());
  64. log.info("数据总数:" + pageList.getTotal());
  65. return Result.OK(pageList);
  66. }
  67. /**
  68. * 添加
  69. *
  70. * @param jeecgDemo
  71. * @return
  72. */
  73. @PostMapping(value = "/add")
  74. @AutoLog(value = "添加测试DEMO")
  75. @ApiOperation(value = "添加DEMO", notes = "添加DEMO")
  76. public Result<?> add(@RequestBody JeecgDemo jeecgDemo) {
  77. jeecgDemoService.save(jeecgDemo);
  78. return Result.OK("添加成功!");
  79. }
  80. /**
  81. * 编辑
  82. *
  83. * @param jeecgDemo
  84. * @return
  85. */
  86. @PostMapping(value = "/edit")
  87. @ApiOperation(value = "编辑DEMO", notes = "编辑DEMO")
  88. @AutoLog(value = "编辑DEMO", operateType = CommonConstant.OPERATE_TYPE_3)
  89. public Result<?> edit(@RequestBody JeecgDemo jeecgDemo) {
  90. jeecgDemoService.updateById(jeecgDemo);
  91. return Result.OK("更新成功!");
  92. }
  93. /**
  94. * 通过id删除
  95. *
  96. * @param id
  97. * @return
  98. */
  99. @AutoLog(value = "删除测试DEMO")
  100. @PostMapping(value = "/delete")
  101. @ApiOperation(value = "通过ID删除DEMO", notes = "通过ID删除DEMO")
  102. public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
  103. jeecgDemoService.removeById(id);
  104. return Result.OK("删除成功!");
  105. }
  106. /**
  107. * 批量删除
  108. *
  109. * @param ids
  110. * @return
  111. */
  112. @PostMapping(value = "/deleteBatch")
  113. @ApiOperation(value = "批量删除DEMO", notes = "批量删除DEMO")
  114. public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
  115. this.jeecgDemoService.removeByIds(Arrays.asList(ids.split(",")));
  116. return Result.OK("批量删除成功!");
  117. }
  118. /**
  119. * 通过id查询
  120. *
  121. * @param id
  122. * @return
  123. */
  124. @GetMapping(value = "/queryById")
  125. @ApiOperation(value = "通过ID查询DEMO", notes = "通过ID查询DEMO")
  126. public Result<?> queryById(@ApiParam(name = "id", value = "示例id", required = true) @RequestParam(name = "id", required = true) String id) {
  127. JeecgDemo jeecgDemo = jeecgDemoService.getById(id);
  128. return Result.OK(jeecgDemo);
  129. }
  130. /**
  131. * 导出excel
  132. *
  133. * @param request
  134. */
  135. @RequestMapping(value = "/exportXls")
  136. @PermissionData(pageComponent = "jeecg/JeecgDemoList")
  137. public ModelAndView exportXls(HttpServletRequest request, JeecgDemo jeecgDemo) {
  138. //获取导出表格字段
  139. String exportFields = jeecgDemoService.getExportFields();
  140. //分sheet导出表格字段
  141. return super.exportXlsSheet(request, jeecgDemo, JeecgDemo.class, "单表模型",exportFields,500);
  142. }
  143. /**
  144. * 通过excel导入数据
  145. *
  146. * @param request
  147. * @param response
  148. * @return
  149. */
  150. @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  151. public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
  152. return super.importExcel(request, response, JeecgDemo.class);
  153. }
  154. // =====Redis 示例===============================================================================================
  155. /**
  156. * redis操作 -- set
  157. */
  158. @GetMapping(value = "/redisSet")
  159. public void redisSet() {
  160. redisUtil.set("name", "张三" + DateUtils.now());
  161. }
  162. /**
  163. * redis操作 -- get
  164. */
  165. @GetMapping(value = "/redisGet")
  166. public String redisGet() {
  167. return (String) redisUtil.get("name");
  168. }
  169. /**
  170. * redis操作 -- setObj
  171. */
  172. @GetMapping(value = "/redisSetObj")
  173. public void redisSetObj() {
  174. JeecgDemo p = new JeecgDemo();
  175. p.setAge(10);
  176. p.setBirthday(new Date());
  177. p.setContent("hello");
  178. p.setName("张三");
  179. p.setSex("男");
  180. redisUtil.set("user-zdh", p);
  181. }
  182. /**
  183. * redis操作 -- setObj
  184. */
  185. @GetMapping(value = "/redisGetObj")
  186. public Object redisGetObj() {
  187. return redisUtil.get("user-zdh");
  188. }
  189. /**
  190. * redis操作 -- get
  191. */
  192. @GetMapping(value = "/redis/{id}")
  193. public JeecgDemo redisGetJeecgDemo(@PathVariable("id") String id) {
  194. JeecgDemo t = jeecgDemoService.getByIdCacheable(id);
  195. log.info(t.toString());
  196. return t;
  197. }
  198. // ===Freemaker示例================================================================================
  199. /**
  200. * freemaker方式 【页面路径: src/main/resources/templates】
  201. *
  202. * @param modelAndView
  203. * @return
  204. */
  205. @RequestMapping("/html")
  206. public ModelAndView ftl(ModelAndView modelAndView) {
  207. modelAndView.setViewName("demo3");
  208. List<String> userList = new ArrayList<String>();
  209. userList.add("admin");
  210. userList.add("user1");
  211. userList.add("user2");
  212. log.info("--------------test--------------");
  213. modelAndView.addObject("userList", userList);
  214. return modelAndView;
  215. }
  216. // ==========================================动态表单 JSON接收测试===========================================
  217. @PostMapping(value = "/testOnlineAdd")
  218. public Result<?> testOnlineAdd(@RequestBody JSONObject json) {
  219. log.info(json.toJSONString());
  220. return Result.OK("添加成功!");
  221. }
  222. /*----------------------------------------外部获取权限示例------------------------------------*/
  223. /**
  224. * 【数据权限示例 - 编程】mybatisPlus java类方式加载权限
  225. *
  226. * @param pageNo
  227. * @param pageSize
  228. * @param req
  229. * @return
  230. */
  231. @GetMapping(value = "/mpList")
  232. @PermissionData(pageComponent = "jeecg/JeecgDemoList")
  233. public Result<?> loadMpPermissonList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
  234. HttpServletRequest req) {
  235. QueryWrapper<JeecgDemo> queryWrapper = new QueryWrapper<JeecgDemo>();
  236. //编程方式,给queryWrapper装载数据权限规则
  237. QueryGenerator.installAuthMplus(queryWrapper, JeecgDemo.class);
  238. Page<JeecgDemo> page = new Page<JeecgDemo>(pageNo, pageSize);
  239. IPage<JeecgDemo> pageList = jeecgDemoService.page(page, queryWrapper);
  240. return Result.OK(pageList);
  241. }
  242. /**
  243. * 【数据权限示例 - 编程】mybatis xml方式加载权限
  244. *
  245. * @param jeecgDemo
  246. * @param pageNo
  247. * @param pageSize
  248. * @param req
  249. * @return
  250. */
  251. @GetMapping(value = "/sqlList")
  252. @PermissionData(pageComponent = "jeecg/JeecgDemoList")
  253. public Result<?> loadSqlPermissonList(JeecgDemo jeecgDemo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
  254. HttpServletRequest req) {
  255. IPage<JeecgDemo> pageList = jeecgDemoService.queryListWithPermission(pageSize, pageNo);
  256. return Result.OK(pageList);
  257. }
  258. /*----------------------------------------外部获取权限示例------------------------------------*/
  259. }