| /** | 
|  * 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<List<SysDictType>> tree() { | 
|         // 字典类型 | 
|         List<SysDictType> list = sysDictTypeService.tree(); | 
|   | 
|         return Result.ok(list); | 
|     } | 
|   | 
|     @PostMapping("importDataDictExcel") | 
|     @ApiOperation("导入字典") | 
|     @LogOperation("导入字典") | 
|     public Result importDataDictExcel(MultipartFile file, String progressId) { | 
|         Result<List<ImportErrDto>> result = Result.ok(); | 
|         try { | 
|             List<Map<String, Object>> 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<SysDictType> 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<List<DictDto>> all() { | 
|         return Result.ok(sysDictTypeService.getDicts()); | 
|     } | 
|   | 
|     /** | 
|      * 将获取到的关键词存入map | 
|      * @return | 
|      */ | 
|     @GetMapping("getDictMap") | 
|     @ApiOperation("字典Map") | 
|     public Result<Map<String, String>> getDictMap(@RequestParam String dictType) { | 
|   | 
|         List<DictDto> userDicts = sysDictTypeService.getUserDicts(); | 
|         DictDto dict = userDicts.stream() | 
|                 .filter(c -> c.getDictType().equals(dictType)) | 
|                 .collect(Collectors.toList()).get(0); | 
|         Map<String, String> keywordMap = new HashMap<>(); | 
|         for (DictItemDto dictItemDto : ((DictLeafDto) dict).getDataList()) { | 
|             keywordMap.put(dictItemDto.getDictLabel(), dictItemDto.getRemark()); | 
|         } | 
|         return Result.ok(keywordMap); | 
|     } | 
| } |