mirror of
https://gitee.com/log4j/pig.git
synced 2024-12-22 20:54:25 +08:00
commit
3a0133593e
56
db/pig.sql
56
db/pig.sql
@ -97,6 +97,8 @@ BEGIN;
|
||||
INSERT INTO `sys_dict` VALUES (1, 'dict_type', '字典类型', NULL, '0', '0', '2019-05-16 14:16:20', '', 'admin', '2021-12-29 12:29:18');
|
||||
INSERT INTO `sys_dict` VALUES (2, 'log_type', '日志类型', NULL, '0', '0', '2020-03-13 14:21:01', '', 'admin', '2021-12-29 12:30:14');
|
||||
INSERT INTO `sys_dict` VALUES (3, 'ds_type', '驱动类型', NULL, '0', '0', '2021-10-15 16:24:35', '', 'admin', '2021-12-29 12:30:18');
|
||||
INSERT INTO `sys_dict` VALUES (4, 'param_type', '参数配置', '检索、原文、报表、安全、文档、消息、其他', '1', '0', '2022-03-25 20:51:26', 'admin', 'admin', '2022-03-25 20:51:26');
|
||||
INSERT INTO `sys_dict` VALUES (5, 'status_type', '租户状态', '租户状态', '1', '0', '2022-03-25 20:56:51', 'admin', 'admin', '2022-03-25 20:56:51');
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
@ -139,8 +141,54 @@ INSERT INTO `sys_dict_item` VALUES (9, 3, 'com.microsoft.sqlserver.jdbc.SQLServe
|
||||
INSERT INTO `sys_dict_item` VALUES (10, 3, 'com.microsoft.jdbc.sqlserver.SQLServerDriver', 'sqlserver2000', 'ds_type', 'sqlserver2000', 0, ' ', '0', NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `sys_dict_item` VALUES (11, 3, 'com.ibm.db2.jcc.DB2Driver', 'db2', 'ds_type', 'db2', 0, ' ', '0', NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `sys_dict_item` VALUES (12, 3, 'org.postgresql.Driver', 'postgresql', 'ds_type', 'postgresql', 0, ' ', '0', NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `sys_dict_item` VALUES (13, 4, '1', '检索', 'param_type', '检索', 0, '检索', '0', '2022-03-25 20:51:51', 'admin', 'admin', '2022-03-25 20:51:51');
|
||||
INSERT INTO `sys_dict_item` VALUES (14, 4, '2', '原文', 'param_type', '原文', 1, '原文', '0', '2022-03-25 20:52:06', 'admin', 'admin', '2022-03-25 20:52:06');
|
||||
INSERT INTO `sys_dict_item` VALUES (15, 4, '3', '报表', 'param_type', '报表', 2, '报表', '0', '2022-03-25 20:52:16', 'admin', 'admin', '2022-03-25 20:52:16');
|
||||
INSERT INTO `sys_dict_item` VALUES (16, 4, '4', '安全', 'param_type', '安全', 3, '安全', '0', '2022-03-25 20:52:32', 'admin', 'admin', '2022-03-25 20:52:32');
|
||||
INSERT INTO `sys_dict_item` VALUES (17, 4, '5', '文档', 'param_type', '文档', 4, '文档', '0', '2022-03-25 20:52:52', 'admin', 'admin', '2022-03-25 20:52:52');
|
||||
INSERT INTO `sys_dict_item` VALUES (18, 4, '6', '消息', 'param_type', '消息', 5, '消息', '0', '2022-03-25 20:53:07', 'admin', 'admin', '2022-03-25 20:53:07');
|
||||
INSERT INTO `sys_dict_item` VALUES (19, 4, '9', '其他', 'param_type', '其他', 6, '其他', '0', '2022-03-25 20:54:50', 'admin', 'admin', '2022-03-25 20:54:50');
|
||||
INSERT INTO `sys_dict_item` VALUES (20, 4, '0', '默认', 'param_type', '默认', 7, '默认', '0', '2022-03-25 20:55:23', 'admin', 'admin', '2022-03-25 20:55:23');
|
||||
INSERT INTO `sys_dict_item` VALUES (21, 5, '0', '正常', 'status_type', '状态正常', 0, '状态正常', '0', '2022-03-25 20:57:12', 'admin', 'admin', '2022-03-25 20:57:12');
|
||||
INSERT INTO `sys_dict_item` VALUES (22, 5, '9', '冻结', 'status_type', '状态冻结', 1, '状态冻结', '0', '2022-03-25 20:57:34', 'admin', 'admin', '2022-03-25 20:57:34');
|
||||
COMMIT;
|
||||
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_public_param
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `sys_public_param`;
|
||||
CREATE TABLE `sys_public_param` (
|
||||
`public_id` bigint(0) NOT NULL COMMENT '编号',
|
||||
`public_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`public_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`public_value` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0',
|
||||
`validate_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' ' COMMENT '创建人',
|
||||
`update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' ' COMMENT '修改人',
|
||||
`create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
|
||||
`update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
|
||||
`public_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0',
|
||||
`system_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0',
|
||||
PRIMARY KEY (`public_id`) USING BTREE
|
||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '公共参数配置表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_public_param
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `sys_public_param` VALUES (1, '租户默认来源', 'TENANT_DEFAULT_ID', '1', '0', 'TENANT_DEFAULT_ID', ' ', 'admin', '2020-05-12 04:03:46', '2022-03-25 21:05:55', '2', '0');
|
||||
INSERT INTO `sys_public_param` VALUES (2, '租户默认部门名称', 'TENANT_DEFAULT_DEPTNAME', '租户默认部门', '0', '', ' ', ' ', '2020-05-12 03:36:32', NULL, '2', '1');
|
||||
INSERT INTO `sys_public_param` VALUES (3, '租户默认账户', 'TENANT_DEFAULT_USERNAME', 'admin', '0', '', ' ', ' ', '2020-05-12 04:05:04', NULL, '2', '1');
|
||||
INSERT INTO `sys_public_param` VALUES (4, '租户默认密码', 'TENANT_DEFAULT_PASSWORD', '123456', '0', '', ' ', ' ', '2020-05-12 04:05:24', NULL, '2', '1');
|
||||
INSERT INTO `sys_public_param` VALUES (5, '租户默认角色编码', 'TENANT_DEFAULT_ROLECODE', 'ROLE_ADMIN', '0', '', ' ', ' ', '2020-05-12 04:05:57', NULL, '2', '1');
|
||||
INSERT INTO `sys_public_param` VALUES (6, '租户默认角色名称', 'TENANT_DEFAULT_ROLENAME', '租户默认角色', '0', '', ' ', ' ', '2020-05-12 04:06:19', NULL, '2', '1');
|
||||
INSERT INTO `sys_public_param` VALUES (7, '表前缀', 'GEN_TABLE_PREFIX', 'tb_', '0', '', ' ', ' ', '2020-05-12 04:23:04', NULL, '9', '1');
|
||||
INSERT INTO `sys_public_param` VALUES (8, '接口文档不显示的字段', 'GEN_HIDDEN_COLUMNS', 'tenant_id', '0', '', ' ', ' ', '2020-05-12 04:25:19', NULL, '9', '1');
|
||||
COMMIT;
|
||||
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_file
|
||||
-- ----------------------------
|
||||
@ -270,6 +318,10 @@ INSERT INTO `sys_menu` VALUES (2600, '文件管理', NULL, '/admin/file/index',
|
||||
INSERT INTO `sys_menu` VALUES (2601, '文件删除', 'sys_file_del', NULL, 2600, NULL, 0, '0', '1', '0', ' ', '2017-11-29 11:30:11', ' ', '2021-05-25 06:48:34');
|
||||
INSERT INTO `sys_menu` VALUES (2602, '文件新增', 'sys_file_add', NULL, 2600, NULL, 0, '0', '1', '0', ' ', '2018-05-11 22:34:55', ' ', '2021-05-25 06:48:34');
|
||||
INSERT INTO `sys_menu` VALUES (2603, '文件修改', 'sys_file_edit', NULL, 2600, NULL, 0, '0', '1', '0', ' ', '2018-05-11 22:36:03', ' ', '2021-05-25 06:48:34');
|
||||
INSERT INTO `sys_menu` VALUES (2700, '参数管理', NULL, '/admin/param/index', 2000, 'icon-navicon-zdgl', 5, '0', '0', '0', 'admin', '2022-03-25 20:40:27', 'admin', '2022-03-25 20:40:35');
|
||||
INSERT INTO `sys_menu` VALUES (2701, '参数新增', 'sys_publicparam_add', NULL, 2700, NULL, 0, '0', '1', '0', 'admin', '2022-03-25 20:45:05', 'admin', '2022-03-25 20:45:05');
|
||||
INSERT INTO `sys_menu` VALUES (2702, '参数删除', 'sys_publicparam_del', NULL, 2700, NULL, 1, '0', '1', '0', 'admin', '2022-03-25 20:45:43', 'admin', '2022-03-25 20:45:43');
|
||||
INSERT INTO `sys_menu` VALUES (2703, '参数修改', 'sys_publicparam_edit', NULL, 2700, NULL, 3, '0', '1', '0', 'admin', '2022-03-25 20:46:04', 'admin', '2022-03-25 20:46:04');
|
||||
INSERT INTO `sys_menu` VALUES (3000, '开发平台', NULL, '/gen', -1, 'icon-shejiyukaifa-', 3, '1', '0', '0', ' ', '2020-03-11 22:15:40', ' ', '2020-03-11 23:52:54');
|
||||
INSERT INTO `sys_menu` VALUES (3100, '数据源管理', NULL, '/gen/datasource', 3000, 'icon-mysql', 3, '1', '0', '0', ' ', '2020-03-11 22:17:05', ' ', '2020-03-12 00:16:09');
|
||||
INSERT INTO `sys_menu` VALUES (3200, '代码生成', NULL, '/gen/index', 3000, 'icon-weibiaoti46', 0, '0', '0', '0', ' ', '2020-03-11 22:23:42', ' ', '2020-03-12 00:16:14');
|
||||
@ -443,6 +495,10 @@ INSERT INTO `sys_role_menu` VALUES (1, 2600);
|
||||
INSERT INTO `sys_role_menu` VALUES (1, 2601);
|
||||
INSERT INTO `sys_role_menu` VALUES (1, 2602);
|
||||
INSERT INTO `sys_role_menu` VALUES (1, 2603);
|
||||
INSERT INTO `sys_role_menu` VALUES (1, 2700);
|
||||
INSERT INTO `sys_role_menu` VALUES (1, 2701);
|
||||
INSERT INTO `sys_role_menu` VALUES (1, 2702);
|
||||
INSERT INTO `sys_role_menu` VALUES (1, 2703);
|
||||
INSERT INTO `sys_role_menu` VALUES (1, 3000);
|
||||
INSERT INTO `sys_role_menu` VALUES (1, 3100);
|
||||
INSERT INTO `sys_role_menu` VALUES (1, 3200);
|
||||
|
@ -59,4 +59,9 @@ public interface CacheConstants {
|
||||
*/
|
||||
String CLIENT_DETAILS_KEY = "pig_oauth:client:details";
|
||||
|
||||
/**
|
||||
* 参数缓存
|
||||
*/
|
||||
String PARAMS_DETAILS = "params_details";
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,92 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
* Author: lengleng (wangiegie@gmail.com)
|
||||
*/
|
||||
|
||||
package com.pig4cloud.pig.admin.api.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import com.pig4cloud.pig.common.mybatis.base.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 公共参数配置
|
||||
*
|
||||
* @author Lucky
|
||||
* @date 2019-04-29
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "公共参数")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysPublicParam extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "公共参数编号")
|
||||
private Long publicId;
|
||||
|
||||
/**
|
||||
* 公共参数名称
|
||||
*/
|
||||
@ApiModelProperty(value = "公共参数名称", required = true, example = "公共参数名称")
|
||||
private String publicName;
|
||||
|
||||
/**
|
||||
* 公共参数地址值,英文大写+下划线
|
||||
*/
|
||||
@ApiModelProperty(value = "键[英文大写+下划线]", required = true, example = "PIGX_PUBLIC_KEY")
|
||||
private String publicKey;
|
||||
|
||||
/**
|
||||
* 值
|
||||
*/
|
||||
@ApiModelProperty(value = "值", required = true, example = "999")
|
||||
private String publicValue;
|
||||
|
||||
/**
|
||||
* 状态(1有效;2无效;)
|
||||
*/
|
||||
@ApiModelProperty(value = "标识[1有效;2无效]", example = "1")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 公共参数编码
|
||||
*/
|
||||
@ApiModelProperty(value = "编码", example = "^(PIG|PIGX)$")
|
||||
private String validateCode;
|
||||
|
||||
/**
|
||||
* 是否是系统内置
|
||||
*/
|
||||
@ApiModelProperty(value = "是否是系统内置")
|
||||
private String systemFlag;
|
||||
|
||||
/**
|
||||
* 配置类型:0-默认;1-检索;2-原文;3-报表;4-安全;5-文档;6-消息;9-其他
|
||||
*/
|
||||
@ApiModelProperty(value = "类型[1-检索;2-原文...]", example = "1")
|
||||
private String publicType;
|
||||
|
||||
}
|
@ -1,19 +1,3 @@
|
||||
/*
|
||||
* Copyright (c) 2020 pig4cloud Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.pig4cloud.pig.admin.api.feign;
|
||||
|
||||
import com.pig4cloud.pig.admin.api.entity.SysDictItem;
|
||||
@ -26,16 +10,18 @@ import org.springframework.web.bind.annotation.PathVariable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 字典调用
|
||||
*
|
||||
* @author lengleng
|
||||
* @date 2020/5/12
|
||||
* <p>
|
||||
* 查询参数相关
|
||||
*/
|
||||
@FeignClient(contextId = "remoteDictService", value = ServiceNameConstants.UMPS_SERVICE)
|
||||
public interface RemoteDictService {
|
||||
|
||||
/**
|
||||
* 通过字典类型查找字典
|
||||
* @param type 字典类型
|
||||
* @return 返回字典项列表
|
||||
* @return 同类型字典
|
||||
*/
|
||||
@GetMapping("/dict/type/{type}")
|
||||
R<List<SysDictItem>> getDictByType(@PathVariable("type") String type);
|
||||
|
@ -0,0 +1,29 @@
|
||||
package com.pig4cloud.pig.admin.api.feign;
|
||||
|
||||
import com.pig4cloud.pig.common.core.constant.SecurityConstants;
|
||||
import com.pig4cloud.pig.common.core.constant.ServiceNameConstants;
|
||||
import com.pig4cloud.pig.common.core.util.R;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestHeader;
|
||||
|
||||
/**
|
||||
* @author lengleng
|
||||
* @date 2020/5/12
|
||||
* <p>
|
||||
* 查询参数相关
|
||||
*/
|
||||
@FeignClient(contextId = "remoteParamService", value = ServiceNameConstants.UMPS_SERVICE)
|
||||
public interface RemoteParamService {
|
||||
|
||||
/**
|
||||
* 通过key 查询参数配置
|
||||
* @param key key
|
||||
* @param from 声明成内部调用,避免MQ 等无法调用
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/param/publicValue/{key}")
|
||||
R<String> getByKey(@PathVariable("key") String key, @RequestHeader(SecurityConstants.FROM) String from);
|
||||
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
package com.pig4cloud.pig.admin.api.util;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.pig4cloud.pig.admin.api.entity.SysDictItem;
|
||||
import com.pig4cloud.pig.admin.api.feign.RemoteDictService;
|
||||
import com.pig4cloud.pig.common.core.util.SpringContextHolder;
|
||||
import lombok.experimental.UtilityClass;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author fxz
|
||||
* @date 2022/3/24 字典解析器
|
||||
*/
|
||||
@UtilityClass
|
||||
public class DictResolver {
|
||||
|
||||
/**
|
||||
* 根据字典类型获取所有字典项
|
||||
* @param type 字典类型
|
||||
* @return 字典数据项集合
|
||||
*/
|
||||
public List<SysDictItem> getDictItemsByType(String type) {
|
||||
Assert.isTrue(StringUtils.isNotBlank(type), "参数不合法");
|
||||
|
||||
RemoteDictService remoteDictService = SpringContextHolder.getBean(RemoteDictService.class);
|
||||
|
||||
return remoteDictService.getDictByType(type).getData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典类型以及字典项字典值获取字典标签
|
||||
* @param type 字典类型
|
||||
* @param itemValue 字典项字典值
|
||||
* @return 字典项标签值
|
||||
*/
|
||||
public String getDictItemLabel(String type, String itemValue) {
|
||||
Assert.isTrue(StringUtils.isNotBlank(type) && StringUtils.isNotBlank(itemValue), "参数不合法");
|
||||
|
||||
SysDictItem sysDictItem = getDictItemByItemValue(type, itemValue);
|
||||
|
||||
return ObjectUtils.isNotEmpty(sysDictItem) ? sysDictItem.getLabel() : StringPool.EMPTY;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典类型以及字典标签获取字典值
|
||||
* @param type 字典类型
|
||||
* @param itemLabel 字典数据标签
|
||||
* @return 字典数据项值
|
||||
*/
|
||||
public String getDictItemValue(String type, String itemLabel) {
|
||||
Assert.isTrue(StringUtils.isNotBlank(type) && StringUtils.isNotBlank(itemLabel), "参数不合法");
|
||||
|
||||
SysDictItem sysDictItem = getDictItemByItemLabel(type, itemLabel);
|
||||
|
||||
return ObjectUtils.isNotEmpty(sysDictItem) ? sysDictItem.getValue() : StringPool.EMPTY;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典类型以及字典值获取字典项
|
||||
* @param type 字典类型
|
||||
* @param itemValue 字典数据值
|
||||
* @return 字典数据项
|
||||
*/
|
||||
public SysDictItem getDictItemByItemValue(String type, String itemValue) {
|
||||
Assert.isTrue(StringUtils.isNotBlank(type) && StringUtils.isNotBlank(itemValue), "参数不合法");
|
||||
|
||||
List<SysDictItem> dictItemList = getDictItemsByType(type);
|
||||
|
||||
if (CollectionUtils.isNotEmpty(dictItemList)) {
|
||||
return dictItemList.stream().filter(item -> itemValue.equals(item.getValue())).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据字典类型以及字典标签获取字典项
|
||||
* @param type 字典类型
|
||||
* @param itemLabel 字典数据项标签
|
||||
* @return 字典数据项
|
||||
*/
|
||||
public SysDictItem getDictItemByItemLabel(String type, String itemLabel) {
|
||||
Assert.isTrue(StringUtils.isNotBlank(type) && StringUtils.isNotBlank(itemLabel), "参数不合法");
|
||||
|
||||
List<SysDictItem> dictItemList = getDictItemsByType(type);
|
||||
|
||||
if (CollectionUtils.isNotEmpty(dictItemList)) {
|
||||
return dictItemList.stream().filter(item -> itemLabel.equals(item.getLabel())).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package com.pig4cloud.pig.admin.api.util;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.pig4cloud.pig.admin.api.feign.RemoteParamService;
|
||||
import com.pig4cloud.pig.common.core.constant.SecurityConstants;
|
||||
import com.pig4cloud.pig.common.core.util.SpringContextHolder;
|
||||
import lombok.experimental.UtilityClass;
|
||||
|
||||
/**
|
||||
* @author lengleng
|
||||
* @date 2020/5/12
|
||||
* <p>
|
||||
* 系统参数配置解析器
|
||||
*/
|
||||
@UtilityClass
|
||||
public class ParamResolver {
|
||||
|
||||
/**
|
||||
* 根据key 查询value 配置
|
||||
* @param key key
|
||||
* @param defaultVal 默认值
|
||||
* @return value
|
||||
*/
|
||||
public Long getLong(String key, Long... defaultVal) {
|
||||
return checkAndGet(key, Long.class, defaultVal);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据key 查询value 配置
|
||||
* @param key key
|
||||
* @param defaultVal 默认值
|
||||
* @return value
|
||||
*/
|
||||
public String getStr(String key, String... defaultVal) {
|
||||
return checkAndGet(key, String.class, defaultVal);
|
||||
}
|
||||
|
||||
private <T> T checkAndGet(String key, Class<T> clazz, T... defaultVal) {
|
||||
// 校验入参是否合法
|
||||
if (StrUtil.isBlank(key) || defaultVal.length > 1) {
|
||||
throw new IllegalArgumentException("参数不合法");
|
||||
}
|
||||
|
||||
RemoteParamService remoteParamService = SpringContextHolder.getBean(RemoteParamService.class);
|
||||
|
||||
String result = remoteParamService.getByKey(key, SecurityConstants.FROM_IN).getData();
|
||||
|
||||
if (StrUtil.isNotBlank(result)) {
|
||||
return Convert.convert(clazz, result);
|
||||
}
|
||||
|
||||
if (defaultVal.length == 1) {
|
||||
return Convert.convert(clazz, defaultVal.clone()[0]);
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -3,4 +3,5 @@ com.pig4cloud.pig.common.feign.PigFeignAutoConfiguration=\
|
||||
com.pig4cloud.pig.admin.api.feign.RemoteDeptService,\
|
||||
com.pig4cloud.pig.admin.api.feign.RemoteLogService,\
|
||||
com.pig4cloud.pig.admin.api.feign.RemoteTokenService,\
|
||||
com.pig4cloud.pig.admin.api.feign.RemoteUserService
|
||||
com.pig4cloud.pig.admin.api.feign.RemoteUserService,\
|
||||
com.pig4cloud.pig.admin.api.feign.RemoteParamService
|
||||
|
@ -0,0 +1,131 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
* Author: lengleng (wangiegie@gmail.com)
|
||||
*/
|
||||
|
||||
package com.pig4cloud.pig.admin.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.pig4cloud.pig.admin.api.entity.SysPublicParam;
|
||||
import com.pig4cloud.pig.admin.service.SysPublicParamService;
|
||||
import com.pig4cloud.pig.common.core.util.R;
|
||||
import com.pig4cloud.pig.common.log.annotation.SysLog;
|
||||
import com.pig4cloud.pig.common.security.annotation.Inner;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 公共参数
|
||||
*
|
||||
* @author Lucky
|
||||
* @date 2019-04-29
|
||||
*/
|
||||
@RestController
|
||||
@AllArgsConstructor
|
||||
@RequestMapping("/param")
|
||||
@Api(value = "param", tags = "公共参数配置")
|
||||
public class PublicParamController {
|
||||
|
||||
private final SysPublicParamService sysPublicParamService;
|
||||
|
||||
/**
|
||||
* 通过key查询公共参数值
|
||||
* @param publicKey
|
||||
* @return
|
||||
*/
|
||||
@Inner(value = false)
|
||||
@ApiOperation(value = "查询公共参数值", notes = "根据key查询公共参数值")
|
||||
@GetMapping("/publicValue/{publicKey}")
|
||||
public R publicKey(@PathVariable("publicKey") String publicKey) {
|
||||
return R.ok(sysPublicParamService.getSysPublicParamKeyToValue(publicKey));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param page 分页对象
|
||||
* @param sysPublicParam 公共参数
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "分页查询", notes = "分页查询")
|
||||
@GetMapping("/page")
|
||||
public R getSysPublicParamPage(Page page, SysPublicParam sysPublicParam) {
|
||||
return R.ok(sysPublicParamService.page(page, Wrappers.query(sysPublicParam)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询公共参数
|
||||
* @param publicId id
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "通过id查询公共参数", notes = "通过id查询公共参数")
|
||||
@GetMapping("/{publicId}")
|
||||
public R getById(@PathVariable("publicId") Long publicId) {
|
||||
return R.ok(sysPublicParamService.getById(publicId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增公共参数
|
||||
* @param sysPublicParam 公共参数
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "新增公共参数", notes = "新增公共参数")
|
||||
@SysLog("新增公共参数")
|
||||
@PostMapping
|
||||
@PreAuthorize("@pms.hasPermission('sys_publicparam_add')")
|
||||
public R save(@RequestBody SysPublicParam sysPublicParam) {
|
||||
return R.ok(sysPublicParamService.save(sysPublicParam));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改公共参数
|
||||
* @param sysPublicParam 公共参数
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "修改公共参数", notes = "修改公共参数")
|
||||
@SysLog("修改公共参数")
|
||||
@PutMapping
|
||||
@PreAuthorize("@pms.hasPermission('sys_publicparam_edit')")
|
||||
public R updateById(@RequestBody SysPublicParam sysPublicParam) {
|
||||
return sysPublicParamService.updateParam(sysPublicParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除公共参数
|
||||
* @param publicId id
|
||||
* @return R
|
||||
*/
|
||||
@ApiOperation(value = "删除公共参数", notes = "删除公共参数")
|
||||
@SysLog("删除公共参数")
|
||||
@DeleteMapping("/{publicId}")
|
||||
@PreAuthorize("@pms.hasPermission('sys_publicparam_del')")
|
||||
public R removeById(@PathVariable Long publicId) {
|
||||
return sysPublicParamService.removeParam(publicId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步参数
|
||||
* @return R
|
||||
*/
|
||||
@SysLog("同步参数")
|
||||
@PutMapping("/sync")
|
||||
public R sync() {
|
||||
return sysPublicParamService.syncParamCache();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
* Author: lengleng (wangiegie@gmail.com)
|
||||
*/
|
||||
package com.pig4cloud.pig.admin.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.pig4cloud.pig.admin.api.entity.SysPublicParam;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 公共参数配置
|
||||
*
|
||||
* @author Lucky
|
||||
* @date 2019-04-29
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysPublicParamMapper extends BaseMapper<SysPublicParam> {
|
||||
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
* Author: lengleng (wangiegie@gmail.com)
|
||||
*/
|
||||
|
||||
package com.pig4cloud.pig.admin.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.pig4cloud.pig.admin.api.entity.SysPublicParam;
|
||||
import com.pig4cloud.pig.common.core.util.R;
|
||||
|
||||
/**
|
||||
* 公共参数配置
|
||||
*
|
||||
* @author Lucky
|
||||
* @date 2019-04-29
|
||||
*/
|
||||
public interface SysPublicParamService extends IService<SysPublicParam> {
|
||||
|
||||
/**
|
||||
* 通过key查询公共参数指定值
|
||||
* @param publicKey
|
||||
* @return
|
||||
*/
|
||||
String getSysPublicParamKeyToValue(String publicKey);
|
||||
|
||||
/**
|
||||
* 更新参数
|
||||
* @param sysPublicParam
|
||||
* @return
|
||||
*/
|
||||
R updateParam(SysPublicParam sysPublicParam);
|
||||
|
||||
/**
|
||||
* 删除参数
|
||||
* @param publicId
|
||||
* @return
|
||||
*/
|
||||
R removeParam(Long publicId);
|
||||
|
||||
/**
|
||||
* 同步缓存
|
||||
* @return R
|
||||
*/
|
||||
R syncParamCache();
|
||||
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2025, lengleng All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the pig4cloud.com developer nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
* Author: lengleng (wangiegie@gmail.com)
|
||||
*/
|
||||
|
||||
package com.pig4cloud.pig.admin.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.pig4cloud.pig.admin.api.entity.SysPublicParam;
|
||||
import com.pig4cloud.pig.admin.mapper.SysPublicParamMapper;
|
||||
import com.pig4cloud.pig.admin.service.SysPublicParamService;
|
||||
import com.pig4cloud.pig.common.core.constant.CacheConstants;
|
||||
import com.pig4cloud.pig.common.core.constant.enums.DictTypeEnum;
|
||||
import com.pig4cloud.pig.common.core.util.R;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 公共参数配置
|
||||
*
|
||||
* @author Lucky
|
||||
* @date 2019-04-29
|
||||
*/
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
public class SysPublicParamServiceImpl extends ServiceImpl<SysPublicParamMapper, SysPublicParam>
|
||||
implements SysPublicParamService {
|
||||
|
||||
@Override
|
||||
@Cacheable(value = CacheConstants.PARAMS_DETAILS, key = "#publicKey", unless = "#result == null ")
|
||||
public String getSysPublicParamKeyToValue(String publicKey) {
|
||||
SysPublicParam sysPublicParam = this.baseMapper
|
||||
.selectOne(Wrappers.<SysPublicParam>lambdaQuery().eq(SysPublicParam::getPublicKey, publicKey));
|
||||
|
||||
if (sysPublicParam != null) {
|
||||
return sysPublicParam.getPublicValue();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新参数
|
||||
* @param sysPublicParam
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@CacheEvict(value = CacheConstants.PARAMS_DETAILS, key = "#sysPublicParam.publicKey")
|
||||
public R updateParam(SysPublicParam sysPublicParam) {
|
||||
SysPublicParam param = this.getById(sysPublicParam.getPublicId());
|
||||
// 系统内置
|
||||
if (DictTypeEnum.SYSTEM.getType().equals(param.getSystemFlag())) {
|
||||
return R.failed("系统内置参数不能删除");
|
||||
}
|
||||
return R.ok(this.updateById(sysPublicParam));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除参数
|
||||
* @param publicId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@CacheEvict(value = CacheConstants.PARAMS_DETAILS, allEntries = true)
|
||||
public R removeParam(Long publicId) {
|
||||
SysPublicParam param = this.getById(publicId);
|
||||
// 系统内置
|
||||
if (DictTypeEnum.SYSTEM.getType().equals(param.getSystemFlag())) {
|
||||
return R.failed("系统内置参数不能删除");
|
||||
}
|
||||
return R.ok(this.removeById(publicId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步缓存
|
||||
* @return R
|
||||
*/
|
||||
@Override
|
||||
@CacheEvict(value = CacheConstants.PARAMS_DETAILS, allEntries = true)
|
||||
public R syncParamCache() {
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user