JAVA全系列 教程
3762个小节阅读:7092.3k
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
管理系统中所有字典数据,如状态代码、操作类型、处方类型、接诊类型等
序号 | 接口名称 | 接口地址 | 请求类型 |
---|---|---|---|
1 | 查询字典数据列表 | /system/dict/data/listForPage | get |
2 | 查询字典类型列表 | /system/dict/type/listForPage | get |
3 | 根据dictId查字典数据 | /system/dict/data/getOne/{dictId} | get |
4 | 添加字典数据 | /system/dict/data/addDictData | post |
5 | 修改字典数据 | /system/dict/data/update | put |
6 | 删除字典数 | /system/dict/data/deleteDictDataByIds/{dictIds} | delete |
7 | 同步字典数据 | /system/dict/type/dictCacheAsync | get |
参数名称 | 是否必须 |
---|---|
pageNum | 否 |
pageSize | 否 |
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
total | int | |
code | number | |
msg | String | |
data | object [] | item 类型: object |
├─ dictCode | int | |
├─ dictSort | int | |
├─ dictLabel | String | |
├─ dictValue | String | |
├─ dictType | String | |
├─ status | String | |
├─ remark | String | |
├─ createBy | String | |
├─ createTime | String |
创建字典表相关实体类及数据传输对象DTO
xpackage com.bjsxt.domain;
import...
/**
* 字典数据表
*/
value="com-bjsxt-domain-DictData") (
callSuper=true) (
value = "sys_dict_data") (
public class DictData extends BaseEntity {
/**
* 字典编码
*/
value = "dict_code", type = IdType.AUTO) (
value="字典编码") (
private Long dictCode;
/**
* 字典排序
*/
value = "dict_sort") (
value="字典排序") (
private Integer dictSort;
/**
* 字典标签
*/
value = "dict_label") (
value="字典标签") (
private String dictLabel;
/**
* 字典键值
*/
value = "dict_value") (
value="字典键值") (
private String dictValue;
/**
* 字典类型
*/
value = "dict_type") (
value="字典类型") (
private String dictType;
/**
* 状态(0正常 1停用)
*/
value = "status") (
value="状态(0正常 1停用)") (
private String status;
/**
* 备注
*/
value = "remark") (
value="备注") (
private String remark;
/**
* 创建者
*/
value = "create_by") (
value="创建者") (
private String createBy;
/**
* 创建时间
*/
value = "create_time") (
value="创建时间") (
private Date createTime;
/**
* 更新者
*/
value = "update_by") (
value="更新者") (
private String updateBy;
/**
* 更新时间
*/
value = "update_time") (
value="更新时间") (
private Date updateTime;
public static final String COL_DICT_CODE = "dict_code";
public static final String COL_DICT_SORT = "dict_sort";
public static final String COL_DICT_LABEL = "dict_label";
public static final String COL_DICT_VALUE = "dict_value";
public static final String COL_DICT_TYPE = "dict_type";
public static final String COL_STATUS = "status";
public static final String COL_REMARK = "remark";
public static final String COL_CREATE_BY = "create_by";
public static final String COL_CREATE_TIME = "create_time";
public static final String COL_UPDATE_BY = "update_by";
public static final String COL_UPDATE_TIME = "update_time";
}
xxxxxxxxxx
package com.bjsxt.dto;
import...
/**
*
*/
value="com-bjsxt-domain-DictData") (
callSuper=true) (
public class DictDataDto extends BaseDto {
/**
* 字典编码
*/
value="字典编码") (
private Long dictCode;
/**
* 字典排序
*/
value="字典排序") (
message = "排序码不能为空") (
private Integer dictSort;
/**
* 字典标签
*/
value="字典标签") (
message = "字典标签不能为空") (
private String dictLabel;
/**
* 字典键值
*/
value="字典键值") (
message = "字典键值不能为空") (
private String dictValue;
/**
* 字典类型
*/
value="字典类型") (
message = "字典类型不能为空") (
private String dictType;
/**
* 状态(0正常 1停用)
*/
message = "状态不能为空") (
value="状态(0正常 1停用)") (
private String status;
/**
* 备注
*/
value="备注") (
private String remark;
/**
* 创建者
*/
value="创建者") (
private String createBy;
/**
* 创建时间
*/
value="创建时间") (
private Date createTime;
/**
* 更新者
*/
value="更新者") (
private String updateBy;
/**
* 更新时间
*/
value="更新时间") (
private Date updateTime;
}
xxxxxxxxxx
package com.bjsxt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bjsxt.domain.DictData;
/**
*
*/
public interface DictDataMapper extends BaseMapper<DictData> {
}
生成DictDataMapper.xml
xxxxxxxxxx
<mapper namespace="com.bjsxt.mapper.DictDataMapper">
<resultMap id="BaseResultMap" type="com.bjsxt.domain.DictData">
<!--@mbg.generated-->
<!--@Table sys_dict_data-->
<id column="dict_code" jdbcType="BIGINT" property="dictCode" />
<result column="dict_sort" jdbcType="INTEGER" property="dictSort" />
<result column="dict_label" jdbcType="VARCHAR" property="dictLabel" />
<result column="dict_value" jdbcType="VARCHAR" property="dictValue" />
<result column="dict_type" jdbcType="VARCHAR" property="dictType" />
<result column="status" jdbcType="CHAR" property="status" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
dict_code, dict_sort, dict_label, dict_value, dict_type, `status`, remark, create_by,
create_time, update_by, update_time
</sql>
</mapper>
生成到system-api子模块下
xxxxxxxxxx
package com.bjsxt.service;
import com.bjsxt.domain.DictData;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bjsxt.dto.DictDataDto;
import com.bjsxt.vo.DataGridView;
import java.util.List;
/**
*
*/
public interface DictDataService {
/**
* 分页查询字典数据类型
*
* @param dictDataDto
* @return
*/
DataGridView listPage(DictDataDto dictDataDto);
/**
* 插入新的字典类型
*
* @param dictDataDto
* @return
*/
int insert(DictDataDto dictDataDto);
/**
* 修改的字典类型
*
* @param dictDataDto
* @return
*/
int update(DictDataDto dictDataDto);
/**
* 根据ID删除字典类型
*
* @param dictCodeIds
* @return
*/
int deleteDictDataByIds(Long[] dictCodeIds);
/**
* 根据字典类型查询字典数据
*
* @param dictType
* @return
*/
List<DictData> selectDictDataByDictType(String dictType);
/**
* 根据ID查询一个字典类型
*
* @param dictCode
* @return
*/
DictData selectDictDataById(Long dictCode);
}
生成到system-service子模块下
xxxxxxxxxx
package com.bjsxt.service.impl;
import ...
/**
*
*/
public class DictDataServiceImpl implements DictDataService{
private DictDataMapper dictDataMapper;
private StringRedisTemplate redisTemplate;
public DataGridView listPage(DictDataDto dictDataDto) {
Page<DictData> page=new Page<>(dictDataDto.getPageNum(),dictDataDto.getPageSize());
QueryWrapper<DictData> qw=new QueryWrapper<>();
qw.eq(StringUtils.isNotBlank(dictDataDto.getDictType()),
DictData.COL_DICT_TYPE,dictDataDto.getDictType()); qw.like(StringUtils.isNotBlank(dictDataDto.getDictLabel()), DictData.COL_DICT_LABEL,dictDataDto.getDictLabel());
qw.eq(StringUtils.isNotBlank(dictDataDto.getStatus()),DictData.COL_STATUS,dictDataDto.getStatus());
this.dictDataMapper.selectPage(page,qw);
return new DataGridView(page.getTotal(),page.getRecords());
}
public int insert(DictDataDto dictDataDto) {
DictData dictData=new DictData();
BeanUtil.copyProperties(dictDataDto,dictData);
//设置创建者,创建时间
dictData.setCreateBy(dictDataDto.getSimpleUser().getUserName());
dictData.setCreateTime(DateUtil.date());
return this.dictDataMapper.insert(dictData);
}
public int update(DictDataDto dictDataDto) {
DictData dictData=new DictData();
BeanUtil.copyProperties(dictDataDto,dictData);
//设置修改人
dictData.setUpdateBy(dictDataDto.getSimpleUser().getUserName());
return this.dictDataMapper.updateById(dictData);
}
public int deleteDictDataByIds(Long[] dictCodeIds) {
List<Long> ids= Arrays.asList(dictCodeIds);
if(null!=ids&&ids.size()>0){
return this.dictDataMapper.deleteBatchIds(ids);
}else{
return -1;
}
}
}
所有的controller都统一位于system-web子模块下,包括就诊、进销存、统计分析各类业务。
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
/**
* @Auther:
* @Description:字典数据信息
*/
"system/dict/data") (
public class DictDataController {
private DictDataService dictDataService;
/**
* 分页查询
*/
"listForPage") (
public AjaxResult listForPage(DictDataDto dictDataDto){
DataGridView gridView = this.dictDataService.listPage(dictDataDto);
return AjaxResult.success("查询成功",gridView.getData(),gridView.getTotal());
}
/**
* 添加
*/
"addDictData") (
title = "添加字典数据",businessType = BusinessType.INSERT) (
public AjaxResult addDictData( DictDataDto dictDataDto) {
dictDataDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.dictDataService.insert(dictDataDto));
}
/**
* 修改
*/
"updateDictData") (
title = "修改字典数据",businessType = BusinessType.UPDATE) (
public AjaxResult updateDictData( DictDataDto dictDataDto) {
dictDataDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.dictDataService.update(dictDataDto));
}
/**
* 根据ID查询一个字典信息
*/
"getOne/{dictId}") (
public AjaxResult getDictData( (message = "字典数据ID不能为空") Long dictId) {
return AjaxResult.success(this.dictDataService.selectDictDataById(dictId));
}
/**
* 删除
*/
"deleteDictDataByIds/{dictIds}") (
title = "删除字典数据",businessType = BusinessType.DELETE) (
public AjaxResult updateDictData( (message = "要删除的数据ID不能为空") Long[] dictIds) {
return AjaxResult.toAjax(this.dictDataService.deleteDictDataByIds(dictIds));
}
/**
* 查询所有可用的字典类型
*/
"getDataByType/{dictType}") (
public AjaxResult getDataByType( (message = "字典类型不能为空") String dictType){
return AjaxResult.success(this.dictDataService.selectDictDataByDictType(dictType));
}
}
查询字典数据列表,system/dict/data/listForPage
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
dictName | 否 | 字典名称 | |
dictType | 否 | 字典类型 | |
status | 否 | 字典状态 | |
beginTime | 否 | 开始时间 | |
endTime | 否 | 结束时间 | |
pageNum | 否 | 当前页 | |
pageSize | 否 | 每页显示多少条 |
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
total | int | |
code | int | |
msg | String | |
data | object [] | item 类型: object |
├─ dictId | int | |
├─ dictName | String | |
├─ dictType | String | |
├─ status | String | |
├─ createBy | String | |
├─ createTime | String | |
├─ remark | String |
DictType、DictTypeDto
DictTypeMapper、DictTypeMapper.xml
DictTypeService、DictTypeServiceImpl
xxxxxxxxxx
public class DictTypeServiceImpl implements DictTypeService{
private DictTypeMapper dictTypeMapper;
public DataGridView listPage(DictTypeDto dictTypeDto) {
Page<DictType> page=new Page<>(dictTypeDto.getPageNum(),dictTypeDto.getPageSize());
QueryWrapper<DictType> qw=new QueryWrapper<>();
qw.like(StringUtils.isNotBlank(dictTypeDto.getDictName()),DictType.COL_DICT_NAME,dictTypeDto.getDictName());
qw.like(StringUtils.isNotBlank(dictTypeDto.getDictType()),DictType.COL_DICT_TYPE,dictTypeDto.getDictType());
qw.eq(StringUtils.isNotBlank(dictTypeDto.getStatus()),DictType.COL_STATUS,dictTypeDto.getStatus());
qw.ge(dictTypeDto.getBeginTime()!=null,DictType.COL_CREATE_TIME,dictTypeDto.getBeginTime());
qw.le(dictTypeDto.getEndTime()!=null,DictType.COL_CREATE_TIME,dictTypeDto.getEndTime());
this.dictTypeMapper.selectPage(page,qw);
return new DataGridView(page.getTotal(),page.getRecords());
}
}
xxxxxxxxxx
/**
* @Auther:
* @Description:数据字典信息
*/
"system/dict/type") (
public class DictTypeController {
private DictTypeService dictTypeService;
/**
* 分页查询
*/
"listForPage") (
public AjaxResult listForPage(DictTypeDto dictTypeDto){
DataGridView gridView = this.dictTypeService.listPage(dictTypeDto);
return AjaxResult.success("查询成功",gridView.getData(),gridView.getTotal());
}
}
查询字典类型 /system/dict/type/listForPage
参数名称 | 是否必须 |
---|---|
dictCode | 是 |
创建DictData实体类、DictDataDto值对象类
创建DictDataMapper接口、DictDataMapper.xml
xxxxxxxxxx
package com.bjsxt.service;
import com.bjsxt.domain.DictData;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bjsxt.dto.DictDataDto;
import com.bjsxt.vo.DataGridView;
import java.util.List;
/**
*
*/
public interface DictDataService {
/**
* 分页查询字典数据类型
*
* @param dictDataDto
* @return
*/
DataGridView listPage(DictDataDto dictDataDto);
/**
* 根据ID查询一个字典类型
*
* @param dictCode
* @return
*/
DictData selectDictDataById(Long dictCode);
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
/**
* @Auther:
* @Description:字典数据信息
*/
"system/dict/data") (
public class DictDataController {
private DictDataService dictDataService;
/**
* 分页查询
*/
"listForPage") (
public AjaxResult listForPage(DictDataDto dictDataDto){
DataGridView gridView = this.dictDataService.listPage(dictDataDto);
return AjaxResult.success("查询成功",gridView.getData(),gridView.getTotal());
}
/**
* 根据ID查询一个字典信息
*/
"getOne/{dictId}") (
public AjaxResult getDictData( (message = "字典数据ID不能为空") Long dictId) {
return AjaxResult.success(this.dictDataService.selectDictDataById(dictId));
}
}
根据dictId查字典数据,system/dict/data/getOne/{dictId}
参数名称 | 是否必须 |
---|---|
dictLabel | 是 |
dictSort | 是 |
dictType | 是 |
dictValue | 是 |
remark | 是 |
status | 是 |
返回JSON
名称 | 类型 |
---|---|
msg | String |
code | int |
创建DictData实体类、DictDataDto值对象类
创建DictDataMapper接口、DictDataMapper.xml
在DictDataService中增加新增方法
xxxxxxxxxx
/**
* 插入新的字典类型
*
* @param dictDataDto
* @return
*/
int insert(DictDataDto dictDataDto);
在DictDataServiceImpl中增加实现方法
xxxxxxxxxx
public int insert(DictDataDto dictDataDto) {
DictData dictData=new DictData();
BeanUtil.copyProperties(dictDataDto,dictData);
//设置创建者,创建时间
dictData.setCreateBy(dictDataDto.getSimpleUser().getUserName());
dictData.setCreateTime(DateUtil.date());
return this.dictDataMapper.insert(dictData);
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
/**
* @Auther:
* @Description:字典数据信息
*/
"system/dict/data") (
public class DictDataController {
private DictDataService dictDataService;
/**
* 分页查询
*/
"listForPage") (
public AjaxResult listForPage(DictDataDto dictDataDto){
DataGridView gridView = this.dictDataService.listPage(dictDataDto);
return AjaxResult.success("查询成功",gridView.getData(),gridView.getTotal());
}
/**
* 根据ID查询一个字典信息
*/
"getOne/{dictId}") (
public AjaxResult getDictData( (message = "字典数据ID不能为空") Long dictId) {
return AjaxResult.success(this.dictDataService.selectDictDataById(dictId));
}
/**
* 添加
*/
"addDictData") (
title = "添加字典数据",businessType = BusinessType.INSERT) (
public AjaxResult addDictData( DictDataDto dictDataDto) {
dictDataDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.dictDataService.insert(dictDataDto));
}
}
添加字典数据,/system/dict/data/addDictData
参数名称 | 是否必须 |
---|---|
dictCode | 是 |
dictLabel | 是 |
dictSort | 是 |
dictType | 是 |
dictValue | 是 |
remark | 是 |
status | 是 |
返回JSON
名称 | 类型 |
---|---|
msg | String |
code | int |
创建DictData实体类、DictDataDto值对象类
创建DictDataMapper接口、DictDataMapper.xml
在DictDataService中增加更新方法
xxxxxxxxxx
package com.bjsxt.service;
import com.bjsxt.domain.DictData;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bjsxt.dto.DictDataDto;
import com.bjsxt.vo.DataGridView;
import java.util.List;
/**
* @Author: 尚学堂 雷哥
*/
public interface DictDataService {
/**
* 分页查询字典数据类型
*
* @param dictDataDto
* @return
*/
DataGridView listPage(DictDataDto dictDataDto);
/**
* 插入新的字典类型
*
* @param dictDataDto
* @return
*/
int insert(DictDataDto dictDataDto);
/**
* 修改的字典类型
*
* @param dictDataDto
* @return
*/
int update(DictDataDto dictDataDto);
/**
* 根据ID查询一个字典类型
*
* @param dictCode
* @return
*/
DictData selectDictDataById(Long dictCode);
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
/**
* @Auther:
* @Description:字典数据信息
*/
"system/dict/data") (
public class DictDataController {
private DictDataService dictDataService;
/**
* 分页查询
*/
"listForPage") (
public AjaxResult listForPage(DictDataDto dictDataDto){
DataGridView gridView = this.dictDataService.listPage(dictDataDto);
return AjaxResult.success("查询成功",gridView.getData(),gridView.getTotal());
}
/**
* 根据ID查询一个字典信息
*/
"getOne/{dictId}") (
public AjaxResult getDictData( (message = "字典数据ID不能为空") Long dictId) {
return AjaxResult.success(this.dictDataService.selectDictDataById(dictId));
}
/**
* 添加
*/
"addDictData") (
title = "添加字典数据",businessType = BusinessType.INSERT) (
public AjaxResult addDictData( DictDataDto dictDataDto) {
dictDataDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.dictDataService.insert(dictDataDto));
}
/**
* 修改
*/
"updateDictData") (
title = "修改字典数据",businessType = BusinessType.UPDATE) (
public AjaxResult updateDictData( DictDataDto dictDataDto) {
dictDataDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.dictDataService.update(dictDataDto));
}
}
修改字典数据 /system/dict/data/update
参数名称 | 是否必须 |
---|---|
dictCodeIds | 是 |
返回JSON数据
名称 | 类型 | 是否必须 |
---|---|---|
msg | String | 非必须 |
code | int | 非必须 |
创建DictData实体类、DictDataDto值对象类
创建DictDataMapper接口、DictDataMapper.xml
xxxxxxxxxx
package com.bjsxt.service;
import com.bjsxt.domain.DictData;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bjsxt.dto.DictDataDto;
import com.bjsxt.vo.DataGridView;
import java.util.List;
/**
* @Author: 尚学堂 雷哥
*/
public interface DictDataService {
/**
* 分页查询字典数据类型
*
* @param dictDataDto
* @return
*/
DataGridView listPage(DictDataDto dictDataDto);
/**
* 插入新的字典类型
*
* @param dictDataDto
* @return
*/
int insert(DictDataDto dictDataDto);
/**
* 修改的字典类型
*
* @param dictDataDto
* @return
*/
int update(DictDataDto dictDataDto);
/**
* 根据ID删除字典类型
*
* @param dictCodeIds
* @return
*/
int deleteDictDataByIds(Long[] dictCodeIds);
/**
* 根据ID查询一个字典类型
*
* @param dictCode
* @return
*/
DictData selectDictDataById(Long dictCode);
}
xxxxxxxxxx
package com.bjsxt.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bjsxt.constants.Constants;
import com.bjsxt.domain.DictData;
import com.bjsxt.dto.DictDataDto;
import com.bjsxt.mapper.DictDataMapper;
import com.bjsxt.service.DictDataService;
import com.bjsxt.vo.DataGridView;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
/**
* @Author: 尚学堂 雷哥
*/
public class DictDataServiceImpl implements DictDataService{
private DictDataMapper dictDataMapper;
private StringRedisTemplate redisTemplate;
public DataGridView listPage(DictDataDto dictDataDto) {
Page<DictData> page=new Page<>(dictDataDto.getPageNum(),dictDataDto.getPageSize());
QueryWrapper<DictData> qw=new QueryWrapper<>();
qw.eq(StringUtils.isNotBlank(dictDataDto.getDictType()),DictData.COL_DICT_TYPE,dictDataDto.getDictType());
qw.like(StringUtils.isNotBlank(dictDataDto.getDictLabel()),DictData.COL_DICT_LABEL,dictDataDto.getDictLabel());
qw.eq(StringUtils.isNotBlank(dictDataDto.getStatus()),DictData.COL_STATUS,dictDataDto.getStatus());
this.dictDataMapper.selectPage(page,qw);
return new DataGridView(page.getTotal(),page.getRecords());
}
public int insert(DictDataDto dictDataDto) {
DictData dictData=new DictData();
BeanUtil.copyProperties(dictDataDto,dictData);
//设置创建者,创建时间
dictData.setCreateBy(dictDataDto.getSimpleUser().getUserName());
dictData.setCreateTime(DateUtil.date());
return this.dictDataMapper.insert(dictData);
}
public int update(DictDataDto dictDataDto) {
DictData dictData=new DictData();
BeanUtil.copyProperties(dictDataDto,dictData);
//设置修改人
dictData.setUpdateBy(dictDataDto.getSimpleUser().getUserName());
return this.dictDataMapper.updateById(dictData);
}
public int deleteDictDataByIds(Long[] dictCodeIds) {
List<Long> ids= Arrays.asList(dictCodeIds);
if(null!=ids&&ids.size()>0){
return this.dictDataMapper.deleteBatchIds(ids);
}else{
return -1;
}
}
public DictData selectDictDataById(Long dictCode) {
return this.dictDataMapper.selectById(dictCode);
}
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import com.bjsxt.aspectj.annotation.Log;
import com.bjsxt.aspectj.enums.BusinessType;
import com.bjsxt.dto.DictDataDto;
import com.bjsxt.service.DictDataService;
import com.bjsxt.utils.ShiroSecurityUtils;
import com.bjsxt.vo.AjaxResult;
import com.bjsxt.vo.DataGridView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* @Auther: 尚学堂 雷哥
* @Description:字典数据信息
*/
"system/dict/data") (
public class DictDataController {
private DictDataService dictDataService;
/**
* 分页查询
*/
"listForPage") (
public AjaxResult listForPage(DictDataDto dictDataDto){
DataGridView gridView = this.dictDataService.listPage(dictDataDto);
return AjaxResult.success("查询成功",gridView.getData(),gridView.getTotal());
}
/**
* 添加
*/
"addDictData") (
title = "添加字典数据",businessType = BusinessType.INSERT) (
public AjaxResult addDictData( DictDataDto dictDataDto) {
dictDataDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.dictDataService.insert(dictDataDto));
}
/**
* 修改
*/
"updateDictData") (
title = "修改字典数据",businessType = BusinessType.UPDATE) (
public AjaxResult updateDictData( DictDataDto dictDataDto) {
dictDataDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.dictDataService.update(dictDataDto));
}
/**
* 根据ID查询一个字典信息
*/
"getOne/{dictId}") (
public AjaxResult getDictData( (message = "字典数据ID不能为空") Long dictId) {
return AjaxResult.success(this.dictDataService.selectDictDataById(dictId));
}
/**
* 删除
*/
"deleteDictDataByIds/{dictIds}") (
title = "删除字典数据",businessType = BusinessType.DELETE) (
public AjaxResult updateDictData( (message = "要删除的数据ID不能为空") Long[] dictIds) {
return AjaxResult.toAjax(this.dictDataService.deleteDictDataByIds(dictIds));
}
}
删除字典数据 /system/dict/data/deleteDictDataByIds/{dictIds}
通过把字典表数据缓存到redis中,减少与数据库的交互,提高查询效率。service层代码如下
xxxxxxxxxx
/**
* 同步缓存的做法
* 1,查询出所有可用的字典类型数据
* 2,再根据字典的类型查询字典数据
* 3,把字典数据生成json存到redis
* 设计key
* dict:dictType
* 如dict:sys_user_sex --->[{},{},{}]
*
*/
public void dictCacheAsync() {
//查询出所有可用的字典类型数据
QueryWrapper<DictType> qw=new QueryWrapper<>();
qw.eq(DictType.COL_STATUS,Constants.STATUS_TRUE);
List<DictType> dictTypes = this.dictTypeMapper.selectList(qw);
for (DictType dictType : dictTypes) {
QueryWrapper<DictData> qdw=new QueryWrapper<>();
qdw.eq(DictData.COL_STATUS,Constants.STATUS_TRUE);
qdw.eq(DictData.COL_DICT_TYPE,dictType.getDictType());
qdw.orderByAsc(DictData.COL_DICT_SORT);
List<DictData> dictDataList = dictDataMapper.selectList(qdw);
//转成json串
String json= JSON.toJSONString(dictDataList);
ValueOperations<String, String> opsForValue = redisTemplate.opsForValue();
opsForValue.set(Constants.DICT_REDIS_PROFIX+dictType.getDictType(),json);
}
}
在DictTypeController中增加同步方法
xxxxxxxxxx
/**
* 同步字典数据到redis
*/
"dictCacheAsync") (
public AjaxResult dictCacheAsync(){
try {
this.dictTypeService.dictCacheAsync();
return AjaxResult.success();
}catch (Exception e){
System.out.println(e);
return AjaxResult.error();
}
}