feat:新增自定义字典功能
This commit is contained in:
parent
698409d541
commit
a5a3b2d19d
@ -73,6 +73,10 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
ColumnName = dic.ColumnName,
|
ColumnName = dic.ColumnName,
|
||||||
List = list.FindAll(f => f.DictType == dic.DictType)
|
List = list.FindAll(f => f.DictType == dic.DictType)
|
||||||
};
|
};
|
||||||
|
if (dic.DictType.StartsWith("cus_"))
|
||||||
|
{
|
||||||
|
vo.List = SysDictService.SelectDictDataByCustomSql(dic.DictType);
|
||||||
|
}
|
||||||
dataVos.Add(vo);
|
dataVos.Add(vo);
|
||||||
}
|
}
|
||||||
return SUCCESS(dataVos);
|
return SUCCESS(dataVos);
|
||||||
|
|||||||
28
ZR.Model/System/Dto/SysDictTypeDto.cs
Normal file
28
ZR.Model/System/Dto/SysDictTypeDto.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace ZR.Model.System.Dto
|
||||||
|
{
|
||||||
|
public class SysDictTypeDto
|
||||||
|
{
|
||||||
|
public long DictId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 字典名称
|
||||||
|
/// </summary>
|
||||||
|
public string DictName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 字典类型
|
||||||
|
/// </summary>
|
||||||
|
[Required(ErrorMessage = "字典类型不能为空")]
|
||||||
|
[RegularExpression(pattern: "^[a-z][a-z0-9_]*$", ErrorMessage = "字典类型必须以字母开头,且字典类型只能由小写字母或加下划线还有数字组成")]
|
||||||
|
public string DictType { get; set; }
|
||||||
|
public string Status { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 系统内置 Y是 N否
|
||||||
|
/// </summary>
|
||||||
|
public string Type { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 自定义sql
|
||||||
|
/// </summary>
|
||||||
|
public string CustomSql { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,8 +1,4 @@
|
|||||||
//using Dapper.Contrib.Extensions;
|
using SqlSugar;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
using SqlSugar;
|
|
||||||
|
|
||||||
namespace ZR.Model.System
|
namespace ZR.Model.System
|
||||||
{
|
{
|
||||||
@ -13,11 +9,10 @@ namespace ZR.Model.System
|
|||||||
[SugarTable("sys_dict_data")]
|
[SugarTable("sys_dict_data")]
|
||||||
public class SysDictData: SysBase
|
public class SysDictData: SysBase
|
||||||
{
|
{
|
||||||
//[Key]
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 字典主键
|
/// 字典主键
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]//主键并且自增 (string不能设置自增)
|
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||||
public long DictCode{ get; set; }
|
public long DictCode{ get; set; }
|
||||||
public int DictSort { get; set; }
|
public int DictSort { get; set; }
|
||||||
public string DictLabel { get; set; }
|
public string DictLabel { get; set; }
|
||||||
|
|||||||
@ -13,7 +13,7 @@ namespace ZR.Model.System
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 字典主键
|
/// 字典主键
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]//主键并且自增 (string不能设置自增)
|
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||||
public long DictId { get; set; }
|
public long DictId { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 字典名称
|
/// 字典名称
|
||||||
@ -32,5 +32,9 @@ namespace ZR.Model.System
|
|||||||
/// 系统内置 Y是 N否
|
/// 系统内置 Y是 N否
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Type { get; set; }
|
public string Type { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 自定义sql
|
||||||
|
/// </summary>
|
||||||
|
public string CustomSql { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -110,5 +110,15 @@ namespace ZR.Repository.System
|
|||||||
.Where(f => f.DictType == old_dictType)
|
.Where(f => f.DictType == old_dictType)
|
||||||
.ExecuteCommand();
|
.ExecuteCommand();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据字典类型查询自定义sql
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="dictType"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public List<SysDictData> SelectDictDataByCustomSql(SysDictType sysDictType)
|
||||||
|
{
|
||||||
|
return Context.Ado.SqlQuery<SysDictData>(sysDictType?.CustomSql).ToList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,5 +47,7 @@ namespace ZR.Service.System.IService
|
|||||||
/// <param name="dictId"></param>
|
/// <param name="dictId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
SysDictType GetInfo(long dictId);
|
SysDictType GetInfo(long dictId);
|
||||||
|
|
||||||
|
List<SysDictData> SelectDictDataByCustomSql(string dictType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using Infrastructure.Attribute;
|
using Infrastructure.Attribute;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using ZR.Model;
|
using ZR.Model;
|
||||||
@ -111,5 +112,21 @@ namespace ZR.Service.System
|
|||||||
{
|
{
|
||||||
return DictRepository.GetFirst(f => f.DictId == dictId);
|
return DictRepository.GetFirst(f => f.DictId == dictId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据字典类型查询自定义sql
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="dictType"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public List<SysDictData> SelectDictDataByCustomSql(string dictType)
|
||||||
|
{
|
||||||
|
var dictInfo = DictRepository.Queryable()
|
||||||
|
.Where(f => f.DictType == dictType).First();
|
||||||
|
if (dictInfo == null || !dictInfo.CustomSql.StartsWith("select", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return DictDataRepository.SelectDictDataByCustomSql(dictInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -181,6 +181,7 @@ CREATE TABLE `sys_dict_type` (
|
|||||||
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
||||||
|
`customSql` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '自定义sql语句',
|
||||||
PRIMARY KEY (`dictId`) USING BTREE,
|
PRIMARY KEY (`dictId`) USING BTREE,
|
||||||
UNIQUE INDEX `dictType`(`dictType`) USING BTREE
|
UNIQUE INDEX `dictType`(`dictType`) USING BTREE
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = Dynamic;
|
||||||
|
|||||||
@ -107,6 +107,7 @@ CREATE TABLE sys_dict_type (
|
|||||||
update_by varchar(64) NULL DEFAULT '' ,-- '更新者',
|
update_by varchar(64) NULL DEFAULT '' ,-- '更新者',
|
||||||
update_time datetime NULL DEFAULT NULL ,-- '更新时间',
|
update_time datetime NULL DEFAULT NULL ,-- '更新时间',
|
||||||
remark varchar(500) NULL DEFAULT NULL ,-- '备注',
|
remark varchar(500) NULL DEFAULT NULL ,-- '备注',
|
||||||
|
customSql varchar(500) NULL DEFAULT NULL ,-- '自定义sql',
|
||||||
)
|
)
|
||||||
GO
|
GO
|
||||||
CREATE UNIQUE INDEX dictType ON dbo.sys_dict_type(dictType)
|
CREATE UNIQUE INDEX dictType ON dbo.sys_dict_type(dictType)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user