package org.jeecg.modules.system.controller; import java.util.Arrays; import java.util.Date; import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang.StringUtils; import org.apache.shiro.authz.annotation.RequiresRoles; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CacheConstant; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.system.entity.SysDictItem; import org.jeecg.modules.system.service.ISysDictItemService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; /** *

* 前端控制器 *

* * @Author zhangweijian * @since 2018-12-28 */ @RestController @RequestMapping("/sys/dictItem") @Slf4j public class SysDictItemController { @Autowired private ISysDictItemService sysDictItemService; /** * @功能:查询字典数据 * @param sysDictItem * @param pageNo * @param pageSize * @param req * @return */ @RequestMapping(value = "/list", method = RequestMethod.GET) public Result> queryPageList(SysDictItem sysDictItem,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) { Result> result = new Result>(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap()); queryWrapper.orderByAsc("sort_order"); Page page = new Page(pageNo, pageSize); IPage pageList = sysDictItemService.page(page, queryWrapper); result.setSuccess(true); result.setResult(pageList); return result; } /** * @功能:新增 * @return */ //@RequiresRoles({"admin"}) @RequestMapping(value = "/add", method = RequestMethod.POST) @CacheEvict(value= {CacheConstant.SYS_DICT_CACHE, CacheConstant.SYS_ENABLE_DICT_CACHE}, allEntries=true) public Result add(@RequestBody SysDictItem sysDictItem) { Result result = new Result(); try { // sysDictItem.setCreateTime(new Date()); sysDictItemService.save(sysDictItem); result.success("保存成功!"); } catch (Exception e) { log.error(e.getMessage(),e); result.error500("操作失败"); } return result; } /** * @功能:编辑 * @param sysDictItem * @return */ //@RequiresRoles({"admin"}) @RequestMapping(value = "/edit", method = RequestMethod.POST) @CacheEvict(value={CacheConstant.SYS_DICT_CACHE, CacheConstant.SYS_ENABLE_DICT_CACHE}, allEntries=true) public Result edit(@RequestBody SysDictItem sysDictItem) { Result result = new Result(); SysDictItem sysdict = sysDictItemService.getById(sysDictItem.getId()); if(sysdict==null) { result.error500("未找到对应实体"); }else { // sysDictItem.setUpdateTime(new Date()); boolean ok = sysDictItemService.updateById(sysDictItem); //TODO 返回false说明什么? if(ok) { result.success("编辑成功!"); } } return result; } /** * @功能:删除字典数据 * @param id * @return */ //@RequiresRoles({"admin"}) @RequestMapping(value = "/delete", method = RequestMethod.POST) @CacheEvict(value={CacheConstant.SYS_DICT_CACHE, CacheConstant.SYS_ENABLE_DICT_CACHE}, allEntries=true) public Result delete(@RequestParam(name="id",required=true) String id) { Result result = new Result(); SysDictItem joinSystem = sysDictItemService.getById(id); if(joinSystem==null) { result.error500("未找到对应实体"); }else { boolean ok = sysDictItemService.removeById(id); if(ok) { result.success("删除成功!"); } } return result; } /** * @功能:批量删除字典数据 * @param ids * @return */ //@RequiresRoles({"admin"}) @RequestMapping(value = "/deleteBatch", method = RequestMethod.POST) @CacheEvict(value={CacheConstant.SYS_DICT_CACHE, CacheConstant.SYS_ENABLE_DICT_CACHE}, allEntries=true) public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { Result result = new Result(); if(ids==null || "".equals(ids.trim())) { result.error500("参数不识别!"); }else { this.sysDictItemService.removeByIds(Arrays.asList(ids.split(","))); result.success("删除成功!"); } return result; } /** * 字典值重复校验 * @param sysDictItem * @param request * @return */ @RequestMapping(value = "/dictItemCheck", method = RequestMethod.GET) @ApiOperation("字典重复校验接口") public Result doDictItemCheck(SysDictItem sysDictItem, HttpServletRequest request) { int num = 0; LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); queryWrapper.eq(SysDictItem::getItemValue,sysDictItem.getItemValue()); queryWrapper.eq(SysDictItem::getDictId,sysDictItem.getDictId()); if (StringUtils.isNotBlank(sysDictItem.getId())) { // 编辑页面校验 queryWrapper.ne(SysDictItem::getId,sysDictItem.getId()); } num = sysDictItemService.count(queryWrapper); if (num == 0) { // 该值可用 return Result.ok("该值可用!"); } else { // 该值不可用 log.info("该值不可用,系统中已存在!"); return Result.error("该值不可用,系统中已存在!"); } } }