Browse Source

feat: [字典管理] 增加签名

master
memorylkf 1 month ago
parent
commit
4c26574ba7
10 changed files with 180 additions and 70 deletions
  1. +11
    -1
      hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictType.java
  2. +10
    -7
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/controller/SysDictDataController.java
  3. +11
    -8
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/controller/SysDictTypeController.java
  4. +38
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/form/DictDataSaveForm.java
  5. +38
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/form/DictSaveForm.java
  6. +1
    -1
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/form/RoleSaveForm.java
  7. +7
    -6
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/ISysDictDataService.java
  8. +7
    -6
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/ISysDictTypeService.java
  9. +28
    -19
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictDataServiceImpl.java
  10. +29
    -22
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictTypeServiceImpl.java

+ 11
- 1
hxhq-api/hxhq-api-system/src/main/java/com/hxhq/system/api/domain/SysDictType.java View File

@ -86,7 +86,17 @@ public class SysDictType extends BaseEntity
{
this.status = status;
}
@Override
public String getRemark() {
return remark;
}
@Override
public void setRemark(String remark) {
this.remark = remark;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 10
- 7
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/controller/SysDictDataController.java View File

@ -13,6 +13,7 @@ import com.hxhq.business.form.yq.YqSearchForm;
import com.hxhq.business.service.IStorageLocationService;
import com.hxhq.business.service.IYqService;
import com.hxhq.system.api.domain.SysDept;
import com.hxhq.system.form.DictDataSaveForm;
import com.hxhq.system.service.ISysDeptService;
import com.hxhq.system.service.ISysDictDataService;
import com.hxhq.system.service.ISysDictTypeService;
@ -119,10 +120,11 @@ public class SysDictDataController extends BaseController
*/
@Log(title = "字典数据", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysDictData dict)
public AjaxResult add(@Validated @RequestBody DictDataSaveForm form)
{
SysDictData dict = form.getDict();
dict.setCreateBy(SecurityUtils.getUsername());
return toAjax(dictDataService.insertDictData(dict));
return toAjax(dictDataService.insertDictData(form));
}
/**
@ -130,20 +132,21 @@ public class SysDictDataController extends BaseController
*/
@Log(title = "字典数据", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysDictData dict)
public AjaxResult edit(@Validated @RequestBody DictDataSaveForm form)
{
SysDictData dict = form.getDict();
dict.setUpdateBy(SecurityUtils.getUsername());
return toAjax(dictDataService.updateDictData(dict));
return toAjax(dictDataService.updateDictData(form));
}
/**
* 删除字典类型
*/
@Log(title = "字典类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{dictCodes}")
public AjaxResult remove(@PathVariable Long[] dictCodes)
@PostMapping("/delete")
public AjaxResult remove(@RequestBody DictDataSaveForm form)
{
dictDataService.deleteDictDataByIds(dictCodes);
dictDataService.deleteDictDataByIds(form);
return success();
}
}

+ 11
- 8
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/controller/SysDictTypeController.java View File

@ -3,6 +3,7 @@ package com.hxhq.system.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.hxhq.system.form.DictSaveForm;
import com.hxhq.system.service.ISysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@ -70,14 +71,15 @@ public class SysDictTypeController extends BaseController
@RequiresPermissions("system:dict:add")
@Log(title = "字典类型", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysDictType dict)
public AjaxResult add(@Validated @RequestBody DictSaveForm form)
{
SysDictType dict = form.getDict();
if (!dictTypeService.checkDictTypeUnique(dict))
{
return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
}
dict.setCreateBy(SecurityUtils.getUsername());
return toAjax(dictTypeService.insertDictType(dict));
return toAjax(dictTypeService.insertDictType(form));
}
/**
@ -86,14 +88,15 @@ public class SysDictTypeController extends BaseController
@RequiresPermissions("system:dict:edit")
@Log(title = "字典类型", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysDictType dict)
public AjaxResult edit(@Validated @RequestBody DictSaveForm form)
{
SysDictType dict = form.getDict();
if (!dictTypeService.checkDictTypeUnique(dict))
{
return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
}
dict.setUpdateBy(SecurityUtils.getUsername());
return toAjax(dictTypeService.updateDictType(dict));
return toAjax(dictTypeService.updateDictType(form));
}
/**
@ -101,17 +104,17 @@ public class SysDictTypeController extends BaseController
*/
@RequiresPermissions("system:dict:remove")
@Log(title = "字典类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{dictIds}")
public AjaxResult remove(@PathVariable Long[] dictIds)
@PostMapping("/delete")
public AjaxResult remove(@RequestBody DictSaveForm form)
{
dictTypeService.deleteDictTypeByIds(dictIds);
dictTypeService.deleteDictTypeByIds(form);
return success();
}
/**
* 刷新字典缓存
*/
@RequiresPermissions("system:dict:remove")
@RequiresPermissions("system:dict:refresh")
@Log(title = "字典类型", businessType = BusinessType.CLEAN)
@DeleteMapping("/refreshCache")
public AjaxResult refreshCache()

+ 38
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/form/DictDataSaveForm.java View File

@ -0,0 +1,38 @@
package com.hxhq.system.form;
import com.hxhq.business.form.common.SignForm;
import com.hxhq.system.api.domain.SysDictData;
import com.hxhq.system.api.domain.SysDictType;
/**
* @author memory
*/
public class DictDataSaveForm {
/**
* 字典数据
*/
private SysDictData dict;
/**
* 签名信息
*/
private SignForm sign;
public SignForm getSign() {
return sign;
}
public void setSign(SignForm sign) {
this.sign = sign;
}
public SysDictData getDict() {
return dict;
}
public void setDict(SysDictData dict) {
this.dict = dict;
}
}

+ 38
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/form/DictSaveForm.java View File

@ -0,0 +1,38 @@
package com.hxhq.system.form;
import com.hxhq.business.form.common.SignForm;
import com.hxhq.system.api.domain.SysDictData;
import com.hxhq.system.api.domain.SysDictType;
import com.hxhq.system.api.domain.SysUser;
/**
* @author memory
*/
public class DictSaveForm {
/**
* 字典
*/
private SysDictType dict;
/**
* 签名信息
*/
private SignForm sign;
public SysDictType getDict() {
return dict;
}
public void setDict(SysDictType dict) {
this.dict = dict;
}
public SignForm getSign() {
return sign;
}
public void setSign(SignForm sign) {
this.sign = sign;
}
}

+ 1
- 1
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/form/RoleSaveForm.java View File

@ -9,7 +9,7 @@ import com.hxhq.system.api.domain.SysRole;
public class RoleSaveForm {
/**
* 用户
* 角色
*/
private SysRole role;

+ 7
- 6
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/ISysDictDataService.java View File

@ -2,6 +2,7 @@ package com.hxhq.system.service;
import java.util.List;
import com.hxhq.system.api.domain.SysDictData;
import com.hxhq.system.form.DictDataSaveForm;
/**
* 字典 业务层
@ -38,23 +39,23 @@ public interface ISysDictDataService
/**
* 批量删除字典数据信息
*
* @param dictCodes 需要删除的字典数据ID
* @param form 需要删除的字典数据ID
*/
public void deleteDictDataByIds(Long[] dictCodes);
public void deleteDictDataByIds(DictDataSaveForm form);
/**
* 新增保存字典数据信息
*
* @param dictData 字典数据信息
* @param form 字典数据信息
* @return 结果
*/
public int insertDictData(SysDictData dictData);
public int insertDictData(DictDataSaveForm form);
/**
* 修改保存字典数据信息
*
* @param dictData 字典数据信息
* @param form 字典数据信息
* @return 结果
*/
public int updateDictData(SysDictData dictData);
public int updateDictData(DictDataSaveForm form);
}

+ 7
- 6
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/ISysDictTypeService.java View File

@ -3,6 +3,7 @@ package com.hxhq.system.service;
import java.util.List;
import com.hxhq.system.api.domain.SysDictData;
import com.hxhq.system.api.domain.SysDictType;
import com.hxhq.system.form.DictSaveForm;
/**
* 字典 业务层
@ -53,9 +54,9 @@ public interface ISysDictTypeService
/**
* 批量删除字典信息
*
* @param dictIds 需要删除的字典ID
* @param form 需要删除的字典ID
*/
public void deleteDictTypeByIds(Long[] dictIds);
public void deleteDictTypeByIds(DictSaveForm form);
/**
* 加载字典缓存数据
@ -75,18 +76,18 @@ public interface ISysDictTypeService
/**
* 新增保存字典类型信息
*
* @param dictType 字典类型信息
* @param form 字典类型信息
* @return 结果
*/
public int insertDictType(SysDictType dictType);
public int insertDictType(DictSaveForm form);
/**
* 修改保存字典类型信息
*
* @param dictType 字典类型信息
* @param form 字典类型信息
* @return 结果
*/
public int updateDictType(SysDictType dictType);
public int updateDictType(DictSaveForm form);
/**
* 校验字典类型称是否唯一

+ 28
- 19
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictDataServiceImpl.java View File

@ -4,11 +4,14 @@ import java.util.ArrayList;
import java.util.List;
import com.hxhq.business.domain.SystemLog;
import com.hxhq.business.form.common.SignForm;
import com.hxhq.business.service.ISystemLogService;
import com.hxhq.business.utils.ObjectCompareUtil;
import com.hxhq.common.security.utils.SecurityUtils;
import com.hxhq.system.api.domain.SysDictType;
import com.hxhq.system.form.DictDataSaveForm;
import com.hxhq.system.mapper.SysDictDataMapper;
import com.hxhq.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hxhq.common.security.utils.DictUtils;
@ -28,6 +31,8 @@ public class SysDictDataServiceImpl implements ISysDictDataService
@Autowired
private ISystemLogService systemLogService;
@Autowired
private ISysUserService userService;
/**
* 根据条件分页查询字典数据
@ -81,50 +86,53 @@ public class SysDictDataServiceImpl implements ISysDictDataService
/**
* 批量删除字典数据信息
*
* @param dictCodes 需要删除的字典数据ID
* @param form 需要删除的字典数据ID
*/
@Override
public void deleteDictDataByIds(Long[] dictCodes)
public void deleteDictDataByIds(DictDataSaveForm form)
{
for (Long dictCode : dictCodes)
{
SysDictData data = selectDictDataById(dictCode);
dictDataMapper.deleteDictDataById(dictCode);
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDatas);
userService.checkPassword(SecurityUtils.getLoginUser().getSysUser(),form.getSign().getQmrmm(),false);
Long dictCode = form.getDict().getDictCode();
SysDictData data = selectDictDataById(dictCode);
dictDataMapper.deleteDictDataById(dictCode);
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDatas);
systemLogService.saveInfo(data.getDictLabel(),null,"删除字典数据","Remove Term Book Data",null,null, SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),null);
}
systemLogService.saveInfo(data.getDictLabel(),null,"删除字典数据","Remove Term Book Data",null,null, SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),form.getSign().getRemark());
}
/**
* 新增保存字典数据信息
*
* @param data 字典数据信息
* @param form 字典数据信息
* @return 结果
*/
@Override
public int insertDictData(SysDictData data)
public int insertDictData(DictDataSaveForm form)
{
userService.checkPassword(SecurityUtils.getLoginUser().getSysUser(),form.getSign().getQmrmm(),false);
SysDictData data = form.getDict();
int row = dictDataMapper.insertDictData(data);
if (row > 0)
{
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDatas);
}
systemLogService.saveInfo(data.getDictLabel(),null,"新增字典数据","Create Term Book Data",null,null, SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),null);
systemLogService.saveInfo(data.getDictLabel(),null,"新增字典数据","Create Term Book Data",null,null, SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),form.getSign().getRemark());
return row;
}
/**
* 修改保存字典数据信息
*
* @param data 字典数据信息
* @param form 字典数据信息
* @return 结果
*/
@Override
public int updateDictData(SysDictData data)
public int updateDictData(DictDataSaveForm form)
{
userService.checkPassword(SecurityUtils.getLoginUser().getSysUser(),form.getSign().getQmrmm(),false);
SysDictData data = form.getDict();
SysDictData oldDict = dictDataMapper.selectDictDataById(data.getDictCode());
int row = dictDataMapper.updateDictData(data);
if (row > 0)
@ -133,7 +141,7 @@ public class SysDictDataServiceImpl implements ISysDictDataService
DictUtils.setDictCache(data.getDictType(), dictDatas);
}
List<SystemLog> logList = getModifyLogList(data,oldDict);
List<SystemLog> logList = getModifyLogList(data,oldDict,form.getSign());
if(logList.size()>0){
systemLogService.saveBatch(logList);
}
@ -146,12 +154,12 @@ public class SysDictDataServiceImpl implements ISysDictDataService
* @param old
* @return
*/
private List<SystemLog> getModifyLogList(SysDictData info, SysDictData old){
private List<SystemLog> getModifyLogList(SysDictData info, SysDictData old, SignForm signForm){
List<SystemLog> list = new ArrayList<>();
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(old, info);
for (ObjectCompareUtil.FieldChange fieldChange : fieldChanges) {
SystemLog log = getLogInfo(old);
SystemLog log = getLogInfo(old,signForm);
log.setJcnr(fieldChange.toString());
log.setJcnrEn(fieldChange.toEnString());
list.add(log);
@ -163,7 +171,7 @@ public class SysDictDataServiceImpl implements ISysDictDataService
* 获取日志基础信息
* @return
*/
private SystemLog getLogInfo(SysDictData sysDictData){
private SystemLog getLogInfo(SysDictData sysDictData, SignForm signForm){
SystemLog log = new SystemLog();
log.setName(sysDictData.getDictLabel());
log.setNameEn(sysDictData.getDictLabel());
@ -172,6 +180,7 @@ public class SysDictDataServiceImpl implements ISysDictDataService
log.setQmrId(SecurityUtils.getUserId());
log.setQmrMc(SecurityUtils.getNickName());
log.setQmrMcEn(SecurityUtils.getUsername());
log.setRemark(signForm.getRemark());
return log;
}
}

+ 29
- 22
hxhq-modules/hxhq-system/src/main/java/com/hxhq/system/service/impl/SysDictTypeServiceImpl.java View File

@ -8,13 +8,16 @@ import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import com.hxhq.business.domain.SystemLog;
import com.hxhq.business.form.common.SignForm;
import com.hxhq.business.service.ISystemLogService;
import com.hxhq.business.utils.ObjectCompareUtil;
import com.hxhq.common.security.utils.SecurityUtils;
import com.hxhq.system.api.domain.SysRole;
import com.hxhq.system.domain.SysMenu;
import com.hxhq.system.form.DictSaveForm;
import com.hxhq.system.mapper.SysDictDataMapper;
import com.hxhq.system.mapper.SysDictTypeMapper;
import com.hxhq.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -42,6 +45,8 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
@Autowired
private ISystemLogService systemLogService;
@Autowired
private ISysUserService userService;
/**
* 项目启动时初始化字典到缓存
@ -125,24 +130,21 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
/**
* 批量删除字典类型信息
*
* @param dictIds 需要删除的字典ID
* @param form 需要删除的字典ID
*/
@Override
public void deleteDictTypeByIds(Long[] dictIds)
public void deleteDictTypeByIds(DictSaveForm form)
{
for (Long dictId : dictIds)
userService.checkPassword(SecurityUtils.getLoginUser().getSysUser(),form.getSign().getQmrmm(),false);
Long dictId = form.getDict().getDictId();
SysDictType dictType = selectDictTypeById(dictId);
if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0)
{
SysDictType dictType = selectDictTypeById(dictId);
if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0)
{
throw new ServiceException(String.format("%1$s已分配,不能删除", dictType.getDictName()));
}
dictTypeMapper.deleteDictTypeById(dictId);
DictUtils.removeDictCache(dictType.getDictType());
systemLogService.saveInfo(dictType.getDictName(),null,"删除字典","Remove Term Book",null,null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),null);
throw new ServiceException(String.format("%1$s已分配,不能删除", dictType.getDictName()));
}
dictTypeMapper.deleteDictTypeById(dictId);
DictUtils.removeDictCache(dictType.getDictType());
systemLogService.saveInfo(dictType.getDictName(),null,"删除字典","Remove Term Book",null,null,SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),form.getSign().getRemark());
}
/**
@ -182,31 +184,35 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
/**
* 新增保存字典类型信息
*
* @param dict 字典类型信息
* @param form 字典类型信息
* @return 结果
*/
@Override
public int insertDictType(SysDictType dict)
public int insertDictType(DictSaveForm form)
{
userService.checkPassword(SecurityUtils.getLoginUser().getSysUser(),form.getSign().getQmrmm(),false);
SysDictType dict = form.getDict();
int row = dictTypeMapper.insertDictType(dict);
if (row > 0)
{
DictUtils.setDictCache(dict.getDictType(), null);
}
systemLogService.saveInfo(dict.getDictName(),null,"新增字典","Create Term Book",null,null, SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),null);
systemLogService.saveInfo(dict.getDictName(),null,"新增字典","Create Term Book",null,null, SecurityUtils.getUserId(),SecurityUtils.getNickName(),SecurityUtils.getUsername(),form.getSign().getRemark());
return row;
}
/**
* 修改保存字典类型信息
*
* @param dict 字典类型信息
* @param form 字典类型信息
* @return 结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int updateDictType(SysDictType dict)
public int updateDictType(DictSaveForm form)
{
userService.checkPassword(SecurityUtils.getLoginUser().getSysUser(),form.getSign().getQmrmm(),false);
SysDictType dict = form.getDict();
SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId());
dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType());
int row = dictTypeMapper.updateDictType(dict);
@ -216,7 +222,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
DictUtils.setDictCache(dict.getDictType(), dictDatas);
}
List<SystemLog> logList = getModifyLogList(dict,oldDict);
List<SystemLog> logList = getModifyLogList(dict,oldDict, form.getSign());
if(logList.size()>0){
systemLogService.saveBatch(logList);
}
@ -247,12 +253,12 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
* @param old
* @return
*/
private List<SystemLog> getModifyLogList(SysDictType info, SysDictType old){
private List<SystemLog> getModifyLogList(SysDictType info, SysDictType old, SignForm sign){
List<SystemLog> list = new ArrayList<>();
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(old, info);
for (ObjectCompareUtil.FieldChange fieldChange : fieldChanges) {
SystemLog log = getLogInfo(old);
SystemLog log = getLogInfo(old,sign);
log.setJcnr(fieldChange.toString());
log.setJcnrEn(fieldChange.toEnString());
list.add(log);
@ -264,7 +270,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
* 获取日志基础信息
* @return
*/
private SystemLog getLogInfo(SysDictType sysDictType){
private SystemLog getLogInfo(SysDictType sysDictType,SignForm sign){
SystemLog log = new SystemLog();
log.setName(sysDictType.getDictName());
log.setNameEn(sysDictType.getDictName());
@ -273,6 +279,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
log.setQmrId(SecurityUtils.getUserId());
log.setQmrMc(SecurityUtils.getNickName());
log.setQmrMcEn(SecurityUtils.getUsername());
log.setRemark(sign.getRemark());
return log;
}
}

Loading…
Cancel
Save