/** * Copyright (c) 2018 人人开源 All rights reserved. * * https://www.renren.io * * 版权所有,侵权必究! */ package com.zt.modules.sys.controller; import com.zt.common.annotation.LogOperation; import com.zt.common.constant.CacheKey; import com.zt.common.constant.Constant; import com.zt.common.servlet.Result; import com.zt.common.utils.CacheUtils; import com.zt.common.validator.AssertUtils; import com.zt.common.validator.ValidatorUtils; import com.zt.common.validator.group.DefaultGroup; import com.zt.common.validator.group.UpdateGroup; import com.zt.core.shiro.ImportErrDto; import com.zt.core.shiro.ImportUtil; import com.zt.core.sys.dto.DictDto; import com.zt.core.sys.dto.DictItemDto; import com.zt.core.sys.dto.DictLeafDto; import com.zt.modules.sys.model.SysDictData; import com.zt.modules.sys.model.SysDictType; import com.zt.modules.sys.service.SysDictTypeService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 字典类型 * * @author hehz */ @RestController @RequestMapping("sys/dict/type") @Api(tags = "字典类型") public class SysDictTypeController { @Autowired private SysDictTypeService sysDictTypeService; @GetMapping("tree") @ApiOperation("字典类型树") @RequiresPermissions("sys:dict:page") public Result> tree() { // 字典类型 List list = sysDictTypeService.tree(); return Result.ok(list); } @PostMapping("importDataDictExcel") @ApiOperation("导入字典") @LogOperation("导入字典") public Result importDataDictExcel(MultipartFile file, String progressId) { Result> result = Result.ok(); try { List> importResults = sysDictTypeService.importDataDictExcel(file,progressId); StringBuilder str = new StringBuilder(); ImportUtil.importResult(result, importResults, str); ImportUtil.ImportErrResult(result, importResults, str); //projectService.updateHasDataDict(); } catch (Exception e) { e.printStackTrace(); } return result; } @PostMapping("copy") @ApiOperation("复制数据到租户") @RequiresPermissions("sys:dict:update") public Result copyData(@RequestParam Long id) { sysDictTypeService.copyData(id); return Result.ok(); } @GetMapping("{id}") @ApiOperation("信息") @RequiresPermissions("sys:dict:info") public Result get(@PathVariable("id") Long id) { SysDictType data = sysDictTypeService.get(id); return Result.ok(data); } @PostMapping @ApiOperation("新增") @LogOperation("字典类型模块--->新增") @RequiresPermissions("sys:dict") public Result insert(@RequestBody SysDictType entity) { // 效验数据 ValidatorUtils.validateEntity(entity, DefaultGroup.class); sysDictTypeService.insert(entity); CacheUtils.remove(Constant.Cache.SYS, CacheKey.SYS_DICT.getKey());// 清除缓存 return Result.ok(); } @PutMapping @ApiOperation("修改") @LogOperation("字典类型模块--->修改") @RequiresPermissions("sys:dict:update") public Result update(@RequestBody SysDictType entity) { // 效验数据 ValidatorUtils.validateEntity(entity, UpdateGroup.class, DefaultGroup.class); sysDictTypeService.update(entity); CacheUtils.remove(Constant.Cache.SYS, CacheKey.SYS_DICT.getKey());// 清除缓存 return Result.ok(); } @DeleteMapping @ApiOperation("删除") @LogOperation("字典类型模块--->删除") @RequiresPermissions("sys:dict:delete") public Result delete(@RequestBody Long[] ids) { // 效验数据 AssertUtils.isArrayEmpty(ids, "id"); for (Long id : ids) { sysDictTypeService.delete(id); } CacheUtils.remove(Constant.Cache.SYS, CacheKey.SYS_DICT.getKey());// 清除缓存 return Result.ok(); } @GetMapping("all") @ApiOperation("所有字典数据") public Result> all() { return Result.ok(sysDictTypeService.getDicts()); } /** * 将获取到的关键词存入map * @return */ @GetMapping("getDictMap") @ApiOperation("字典Map") public Result> getDictMap(@RequestParam String dictType) { List userDicts = sysDictTypeService.getUserDicts(); DictDto dict = userDicts.stream() .filter(c -> c.getDictType().equals(dictType)) .collect(Collectors.toList()).get(0); Map keywordMap = new HashMap<>(); for (DictItemDto dictItemDto : ((DictLeafDto) dict).getDataList()) { keywordMap.put(dictItemDto.getDictLabel(), dictItemDto.getRemark()); } return Result.ok(keywordMap); } }