package com.tzy.web.controller.system; import com.alibaba.fastjson.JSON; import com.tzy.common.annotation.Log; import com.tzy.common.core.controller.BaseController; import com.tzy.common.core.domain.MsgResult; import com.tzy.common.core.domain.entity.SysDictData; import com.tzy.common.core.page.TableDataInfo; import com.tzy.common.enums.BusinessType; import com.tzy.common.utils.ShiroUtils; import com.tzy.common.utils.poi.ExcelUtil; import com.tzy.framework.datasource.DBChangeService; import com.tzy.framework.datasource.DynamicDataSourceContextHolder; import com.tzy.framework.util.SysUtils; import com.tzy.system.service.ISysDictDataService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 数据字典信息 * * @author zheng */ @Controller @RequestMapping("/system/dict/data") public class SysDictDataController extends BaseController { private String prefix = "system/dict/data"; @Autowired private ISysDictDataService dictDataService; @Autowired private DBChangeService dbChangeService; @Autowired private SysUtils SysUtils; /** * 平台管理 * @return */ @RequiresPermissions("system:dict:view") @GetMapping() public String dictData() { return prefix + "/data_list"; } /** * 用户管理 通用字典 * @return */ @GetMapping("/local") public String localData() { return prefix + "/data_local_list"; } @PostMapping("/list") @RequiresPermissions("system:dict:list") @ResponseBody public TableDataInfo list(SysDictData dictData) { startPage(); List list = dictDataService.selectDictDataList(dictData); return getDataTable(list); } //获取字典数据 @GetMapping("/GetDictDataList") @ResponseBody public String GetDictDataByType(SysDictData dictData,@RequestParam("dictType") String dictType) { dictData.setDictType(dictType); List list = dictDataService.selectDictDataList(dictData); return JSON.toJSONString(list); } //获取本地字典数据 @GetMapping("/GetLocationDictDataList") @ResponseBody public String GetLocationDictDataByType(SysDictData dictData,@RequestParam("dictType") String dictType) { try { dbChangeService.userDb(); dictData.setDictType(dictType); List list = dictDataService.selectDictDataList(dictData); return JSON.toJSONString(list); } catch (Exception e) { e.printStackTrace(); return ""; } finally { DynamicDataSourceContextHolder.clearDataSource(); } } @Log(title = "字典数据", businessType = BusinessType.EXPORT) @RequiresPermissions("system:dict:export") @PostMapping("/export") @ResponseBody public MsgResult export(SysDictData dictData) { List list = dictDataService.selectDictDataList(dictData); ExcelUtil util = new ExcelUtil(SysDictData.class); return util.exportExcel(list, "字典数据"); } /** * 新增字典类型 */ @GetMapping("/add/{dictType}") public String add(@PathVariable("dictType") String dictType, ModelMap mmap) { mmap.put("dictType", dictType); return prefix + "/add_data"; } /** * 新增本地字典类型 */ @GetMapping("/addLocation/{dictType}") public String addLocation(@PathVariable("dictType") String dictType, ModelMap mmap) { mmap.put("dictType", dictType); return prefix + "/add_location_data"; } /** * 新增保存字典类型 */ @Log(title = "字典数据", businessType = BusinessType.INSERT) @RequiresPermissions("system:dict:add") @PostMapping("/addSave") @ResponseBody public MsgResult addSave(@Validated SysDictData dict) { dict.setCreateBy(ShiroUtils.getLoginName()); return toReturn(dictDataService.insertDictData(dict)); } /** * 新增本地保存字典类型 */ @PostMapping("/addLocationSave") @ResponseBody public MsgResult addLocationSave(@Validated SysDictData dict) { try { dbChangeService.userDb(); dict.setCreateBy(ShiroUtils.getLoginName()); return toReturn(dictDataService.insertDictData(dict)); } catch (Exception e) { e.printStackTrace(); return toReturn(-1); } finally { DynamicDataSourceContextHolder.clearDataSource(); } } /** * 修改字典类型 */ @GetMapping("/edit/{dictCode}") public String edit(@PathVariable("dictCode") Long dictCode, ModelMap mmap) { mmap.put("dict", dictDataService.selectDictDataById(dictCode)); return prefix + "/edit_data"; } /** * 本地修改字典类型 */ @GetMapping("/editLocation/{dictCode}") public String editLocation(@PathVariable("dictCode") Long dictCode, ModelMap mmap) { try { dbChangeService.userDb(); mmap.put("dict", dictDataService.selectDictDataById(dictCode)); } catch (Exception e) { e.printStackTrace(); } finally { DynamicDataSourceContextHolder.clearDataSource(); } return prefix + "/edit_location_data"; } /** * 修改保存字典类型 */ @Log(title = "字典数据", businessType = BusinessType.UPDATE) @RequiresPermissions("system:dict:edit") @PostMapping("/editSave") @ResponseBody public MsgResult editSave(@Validated SysDictData dict) { try { dict.setUpdateBy(ShiroUtils.getLoginName()); return toReturn(dictDataService.updateDictData(dict)); } catch(Exception ex) { return toReturn(-1,ex.getMessage()); } } /** * 本地修改保存字典类型 */ @PostMapping("/editLocationSave") @ResponseBody public MsgResult editLocationSave(@Validated SysDictData dict) { try { dict.setUpdateBy(ShiroUtils.getLoginName()); dbChangeService.userDb(); return toReturn(dictDataService.updateDictData(dict)); } catch(Exception ex) { return toReturn(-1,ex.getMessage()); }finally { DynamicDataSourceContextHolder.clearDataSource(); } } @Log(title = "字典数据", businessType = BusinessType.DELETE) @RequiresPermissions("system:dict:remove") @PostMapping("/remove") @ResponseBody public MsgResult remove(String keyValue) { try { return toReturn(dictDataService.deleteDictDataById(keyValue)); } catch (Exception ex) { return toReturn(-1,ex.getMessage()); } } /** * 本地移除 * @param keyValue * @return */ @PostMapping("/removeLocation") @ResponseBody public MsgResult removeLocation(String keyValue) { try { dbChangeService.userDb(); try { return toReturn(dictDataService.deleteDictDataById(keyValue)); } catch (Exception ex) { return toReturn(-1,ex.getMessage()); } } catch (Exception e) { e.printStackTrace(); return toReturn(-1); } finally { DynamicDataSourceContextHolder.clearDataSource(); } } }