/** 
 | 
 * 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.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.List; 
 | 
import java.util.Map; 
 | 
  
 | 
/** 
 | 
 * 字典类型 
 | 
 * 
 | 
 * @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()); 
 | 
    } 
 | 
  
 | 
} 
 |