2cc49f1a334e9b3830a684dfe615ab547c9e2f2c.svn-base 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package org.jeecg.modules.system.controller;
  2. import java.util.Arrays;
  3. import java.util.Date;
  4. import javax.servlet.http.HttpServletRequest;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import io.swagger.annotations.ApiOperation;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.apache.shiro.authz.annotation.RequiresRoles;
  9. import org.jeecg.common.api.vo.Result;
  10. import org.jeecg.common.constant.CacheConstant;
  11. import org.jeecg.common.system.query.QueryGenerator;
  12. import org.jeecg.common.util.oConvertUtils;
  13. import org.jeecg.modules.system.entity.SysDictItem;
  14. import org.jeecg.modules.system.service.ISysDictItemService;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.cache.annotation.CacheEvict;
  17. import org.springframework.web.bind.annotation.RequestBody;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RequestMethod;
  20. import org.springframework.web.bind.annotation.RequestParam;
  21. import org.springframework.web.bind.annotation.RestController;
  22. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  23. import com.baomidou.mybatisplus.core.metadata.IPage;
  24. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  25. import lombok.extern.slf4j.Slf4j;
  26. /**
  27. * <p>
  28. * 前端控制器
  29. * </p>
  30. *
  31. * @Author zhangweijian
  32. * @since 2018-12-28
  33. */
  34. @RestController
  35. @RequestMapping("/sys/dictItem")
  36. @Slf4j
  37. public class SysDictItemController {
  38. @Autowired
  39. private ISysDictItemService sysDictItemService;
  40. /**
  41. * @功能:查询字典数据
  42. * @param sysDictItem
  43. * @param pageNo
  44. * @param pageSize
  45. * @param req
  46. * @return
  47. */
  48. @RequestMapping(value = "/list", method = RequestMethod.GET)
  49. public Result<IPage<SysDictItem>> queryPageList(SysDictItem sysDictItem,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
  50. @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {
  51. Result<IPage<SysDictItem>> result = new Result<IPage<SysDictItem>>();
  52. QueryWrapper<SysDictItem> queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap());
  53. queryWrapper.orderByAsc("sort_order");
  54. Page<SysDictItem> page = new Page<SysDictItem>(pageNo, pageSize);
  55. IPage<SysDictItem> pageList = sysDictItemService.page(page, queryWrapper);
  56. result.setSuccess(true);
  57. result.setResult(pageList);
  58. return result;
  59. }
  60. /**
  61. * @功能:新增
  62. * @return
  63. */
  64. //@RequiresRoles({"admin"})
  65. @RequestMapping(value = "/add", method = RequestMethod.POST)
  66. @CacheEvict(value= {CacheConstant.SYS_DICT_CACHE, CacheConstant.SYS_ENABLE_DICT_CACHE}, allEntries=true)
  67. public Result<SysDictItem> add(@RequestBody SysDictItem sysDictItem) {
  68. Result<SysDictItem> result = new Result<SysDictItem>();
  69. try {
  70. // sysDictItem.setCreateTime(new Date());
  71. sysDictItemService.save(sysDictItem);
  72. result.success("保存成功!");
  73. } catch (Exception e) {
  74. log.error(e.getMessage(),e);
  75. result.error500("操作失败");
  76. }
  77. return result;
  78. }
  79. /**
  80. * @功能:编辑
  81. * @param sysDictItem
  82. * @return
  83. */
  84. //@RequiresRoles({"admin"})
  85. @RequestMapping(value = "/edit", method = RequestMethod.POST)
  86. @CacheEvict(value={CacheConstant.SYS_DICT_CACHE, CacheConstant.SYS_ENABLE_DICT_CACHE}, allEntries=true)
  87. public Result<SysDictItem> edit(@RequestBody SysDictItem sysDictItem) {
  88. Result<SysDictItem> result = new Result<SysDictItem>();
  89. SysDictItem sysdict = sysDictItemService.getById(sysDictItem.getId());
  90. if(sysdict==null) {
  91. result.error500("未找到对应实体");
  92. }else {
  93. // sysDictItem.setUpdateTime(new Date());
  94. boolean ok = sysDictItemService.updateById(sysDictItem);
  95. //TODO 返回false说明什么?
  96. if(ok) {
  97. result.success("编辑成功!");
  98. }
  99. }
  100. return result;
  101. }
  102. /**
  103. * @功能:删除字典数据
  104. * @param id
  105. * @return
  106. */
  107. //@RequiresRoles({"admin"})
  108. @RequestMapping(value = "/delete", method = RequestMethod.POST)
  109. @CacheEvict(value={CacheConstant.SYS_DICT_CACHE, CacheConstant.SYS_ENABLE_DICT_CACHE}, allEntries=true)
  110. public Result<SysDictItem> delete(@RequestParam(name="id",required=true) String id) {
  111. Result<SysDictItem> result = new Result<SysDictItem>();
  112. SysDictItem joinSystem = sysDictItemService.getById(id);
  113. if(joinSystem==null) {
  114. result.error500("未找到对应实体");
  115. }else {
  116. boolean ok = sysDictItemService.removeById(id);
  117. if(ok) {
  118. result.success("删除成功!");
  119. }
  120. }
  121. return result;
  122. }
  123. /**
  124. * @功能:批量删除字典数据
  125. * @param ids
  126. * @return
  127. */
  128. //@RequiresRoles({"admin"})
  129. @RequestMapping(value = "/deleteBatch", method = RequestMethod.POST)
  130. @CacheEvict(value={CacheConstant.SYS_DICT_CACHE, CacheConstant.SYS_ENABLE_DICT_CACHE}, allEntries=true)
  131. public Result<SysDictItem> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
  132. Result<SysDictItem> result = new Result<SysDictItem>();
  133. if(ids==null || "".equals(ids.trim())) {
  134. result.error500("参数不识别!");
  135. }else {
  136. this.sysDictItemService.removeByIds(Arrays.asList(ids.split(",")));
  137. result.success("删除成功!");
  138. }
  139. return result;
  140. }
  141. /**
  142. * 字典值重复校验
  143. * @param sysDictItem
  144. * @param request
  145. * @return
  146. */
  147. @RequestMapping(value = "/dictItemCheck", method = RequestMethod.GET)
  148. @ApiOperation("字典重复校验接口")
  149. public Result<Object> doDictItemCheck(SysDictItem sysDictItem, HttpServletRequest request) {
  150. int num = 0;
  151. LambdaQueryWrapper<SysDictItem> queryWrapper = new LambdaQueryWrapper<SysDictItem>();
  152. queryWrapper.eq(SysDictItem::getItemValue,sysDictItem.getItemValue());
  153. queryWrapper.eq(SysDictItem::getDictId,sysDictItem.getDictId());
  154. if (StringUtils.isNotBlank(sysDictItem.getId())) {
  155. // 编辑页面校验
  156. queryWrapper.ne(SysDictItem::getId,sysDictItem.getId());
  157. }
  158. num = sysDictItemService.count(queryWrapper);
  159. if (num == 0) {
  160. // 该值可用
  161. return Result.ok("该值可用!");
  162. } else {
  163. // 该值不可用
  164. log.info("该值不可用,系统中已存在!");
  165. return Result.error("该值不可用,系统中已存在!");
  166. }
  167. }
  168. }