diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/ProcessTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/ProcessTask.java index 8e516a305..25f831ea8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/ProcessTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/ProcessTask.java @@ -10,7 +10,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.AcsTaskDto; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index 237013860..61901cf57 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -25,7 +25,7 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBussMan import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.system.util.CodeUtil; +import org.nl.common.utils.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.basedata.st.service.StorattrService; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java index 8c648b47e..0b74a4d30 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java @@ -28,7 +28,7 @@ import org.nl.common.TableDataInfo; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.system.util.CodeUtil; +import org.nl.common.utils.CodeUtil; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.basedata.st.service.StorattrService; diff --git a/lms/nladmin-system/src/main/java/org/nl/common/base/BaseDTO.java b/lms/nladmin-system/src/main/java/org/nl/common/base/BaseDTO.java new file mode 100644 index 000000000..4bd2151c7 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/common/base/BaseDTO.java @@ -0,0 +1,33 @@ +package org.nl.common.base; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author Zheng Jie + * @date 2019年10月24日20:48:53 + */ +@Data +public class BaseDTO implements Serializable { + + private String create_name; + + private String create_id; + + private String update_name; + + private String update_id; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private Date create_time; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private Date update_time; + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/common/constants/FieldConstant.java b/lms/nladmin-system/src/main/java/org/nl/common/constants/FieldConstant.java new file mode 100644 index 000000000..07bf51e5b --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/common/constants/FieldConstant.java @@ -0,0 +1,17 @@ +package org.nl.common.constants; + +/** + * @Author: lyd + * @Description: 字段名称常量:用于Map、JsonObject + * @Date: 2023/12/4 + */ +public class FieldConstant { + public static final String DOP = "doP"; + public static final String DEPTS = "depts"; + public static final String ROLES = "roles"; + public static final String USER_ID = "user_id"; + public static final String DEPTIDS = "deptIds"; + public static final String ROLESIDS = "rolesIds"; + public static final String BLURRY = "blurry"; + public static final String SPECIAL_PARAM = "special_param"; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/common/constants/GeneralDefinition.java b/lms/nladmin-system/src/main/java/org/nl/common/constants/GeneralDefinition.java new file mode 100644 index 000000000..15d0f3bab --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/common/constants/GeneralDefinition.java @@ -0,0 +1,102 @@ +package org.nl.common.constants; + +/** + * @Author: lyd + * @Description: 通用定义类型数据 + * @Date: 2023/7/13 + */ +public class GeneralDefinition { + /** + * 默认密码 + */ + public static final String DEFAULT_PASSWORD = "123456"; + /** + * 盐值加密 + */ + public static final String SALT = "salt"; + /** + * 转义点 + */ + public static final String ESCAPE_DOT = "\\."; + /** + * 点 + */ + public static final String DOT = "."; + /** + * 日期变量 + */ + public static final String DATE_FORMAT = "yyyy-MM-dd"; + /** + * 时间变量 + */ + public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; + /** + * 未知 + */ + public static final String UNKNOWN = "-"; + // 统一编码定义 + /** + * 窑自动任务开启 + */ + public static final String AUTO_KILN_CALL = "auto_kiln_call"; + // 是否 + /** + * 是/正确/可用... + */ + public static final String YES = "1"; + /** + * 否/错误/不可用... + */ + public static final String NO = "0"; + // 账号定义 + /** + * acs系统 + */ + public static final String ACS_ID = "2"; + /** + * acs系统 + */ + public static final String ACS_NAME = "ACS系统"; + /** + * mes系统 + */ + public static final String MES_ID = "3"; + /** + * mes系统 + */ + public static final String MES_NAME = "MES系统"; + // 请求方向 + /** + * ACS->LMS + **/ + public static final String ACS_LMS = "1"; + /** + * LMS->ACS + **/ + public static final String LMS_ACS = "2"; + /** + * MES->LMS + **/ + public static final String MES_LMS = "3"; + /** + * LMS->MES + **/ + public static final String LMS_MES = "4"; + // 参数名称 + /** + * 是否连接 + */ + public static final String IS_CONNECT_ACS = "is_connect_acs"; + /** + * ACS路径 + */ + public static final String ACS_URL = "acs_url"; + /** + * 是否连接 + */ + public static final String IS_CONNECT_MES = "is_connect_mes"; + /** + * MES路径 + */ + public static final String MES_URL = "mes_url"; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/common/domain/query/BaseQuery.java b/lms/nladmin-system/src/main/java/org/nl/common/domain/query/BaseQuery.java index 4089635ac..72a517abb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/common/domain/query/BaseQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/domain/query/BaseQuery.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.LambdaUtils; import com.baomidou.mybatisplus.core.toolkit.support.ColumnCache; import lombok.Data; +import org.nl.common.constants.FieldConstant; import org.nl.common.enums.QueryTEnum; import org.nl.common.utils.MapOf; import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl; @@ -13,7 +14,7 @@ import java.lang.reflect.Type; import java.util.Date; import java.util.Map; -/* +/** * @author ZZQ * @Date 2022/12/14 6:33 下午 * 泛型必须为数据tb对应do:由mybatis管理 @@ -27,19 +28,19 @@ public class BaseQuery { /** * 是否启用 */ - private Boolean isUsed; + private Boolean is_used; /** * 创建时间范围查询 */ - private Date startTime; - private Date endTime; + private Date start_time; + private Date end_time; /** * 字段映射Map:指定字段对应QueryWrapper的查询类型 * 字段与数据库字段对应,不支持驼峰 * - * @see QueryTEnum + * @see org.nl.common.enums.QueryTEnum * 通过buid构建 */ public Map doP = MapOf.of("blurry", QParam.builder().k(new String[]{"name"}).type(QueryTEnum.LK).build() @@ -55,7 +56,7 @@ public class BaseQuery { Type[] types = ((ParameterizedTypeImpl) this.getClass().getGenericSuperclass()).getActualTypeArguments(); Map columnMap = LambdaUtils.getColumnMap((Class) types[0]); json.forEach((key, vel) -> { - if (vel != null && !key.equals("doP")) { + if (vel != null && !(FieldConstant.DOP).equals(key)) { QParam qParam = doP.get(key); if (qParam != null) { QueryTEnum.build(qParam.type, wrapper, qParam.k, vel); diff --git a/lms/nladmin-system/src/main/java/org/nl/common/domain/query/PageQuery.java b/lms/nladmin-system/src/main/java/org/nl/common/domain/query/PageQuery.java index 6a19d0b97..0c233b01c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/common/domain/query/PageQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/domain/query/PageQuery.java @@ -13,7 +13,9 @@ import java.util.Locale; /** - * 分页参数 + * @Author: lyd + * @Description: 分页参数 + * @Date: 2023/8/14 */ @Data public class PageQuery implements Serializable { @@ -51,7 +53,7 @@ public class PageQuery implements Serializable { public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE; public Page build() { - Integer pageNum = ObjectUtil.defaultIfNull(getPage(), DEFAULT_PAGE_NUM) + 1; + Integer pageNum = ObjectUtil.defaultIfNull(getPage(), DEFAULT_PAGE_NUM); Integer pageSize = ObjectUtil.defaultIfNull(getSize(), DEFAULT_PAGE_SIZE); if (pageNum <= 0) { pageNum = DEFAULT_PAGE_NUM; @@ -63,7 +65,7 @@ public class PageQuery implements Serializable { String col = split[i]; OrderItem item = new OrderItem(); item.setColumn(col); - item.setAsc(split[i + 1].toLowerCase(Locale.ROOT).equals("asc")); + item.setAsc("asc".equals(split[i + 1].toLowerCase(Locale.ROOT))); page.addOrder(item); } } @@ -87,7 +89,7 @@ public class PageQuery implements Serializable { } OrderItem item = new OrderItem(); item.setColumn(col); - item.setAsc(split[i + 1].toLowerCase(Locale.ROOT).equals("asc")); + item.setAsc("asc".equals(split[i + 1].toLowerCase(Locale.ROOT))); page.addOrder(item); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptVo.java b/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/DeptVo.java similarity index 70% rename from lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptVo.java rename to lms/nladmin-system/src/main/java/org/nl/common/domain/vo/DeptVo.java index 88e36ee70..64b5c6b21 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptVo.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/DeptVo.java @@ -13,12 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.nl.system.service.dept.dto; - +package org.nl.common.domain.vo; import lombok.Getter; import lombok.Setter; -import org.nl.modules.common.base.BaseDTO; +import org.nl.common.base.BaseDTO; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -34,14 +33,14 @@ import java.util.List; public class DeptVo extends BaseDTO implements Serializable { - private String deptId; + private String dept_id; private String code; - private String extId; + private String ext_id; - private Integer deptSort; + private Integer dept_sort; @NotBlank @@ -50,22 +49,24 @@ public class DeptVo extends BaseDTO implements Serializable { @NotNull - private Boolean isUsed; + private Boolean is_used; private Long pid; - private Integer subCount = 0; - //前端显示 - private Boolean hasChildren = Boolean.FALSE; + private Integer sub_count = 0; + /** + * 前端显示 + */ + private Boolean has_children = Boolean.FALSE; private List children; - public void setSubCount(Integer subCount) { - this.subCount = subCount; - if (subCount > 0) { - this.hasChildren = Boolean.TRUE; + public void setSub_count(Integer sub_count) { + this.sub_count = sub_count; + if (sub_count > 0) { + this.has_children = Boolean.TRUE; } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuMetaVo.java b/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/MenuMetaVo.java similarity index 95% rename from lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuMetaVo.java rename to lms/nladmin-system/src/main/java/org/nl/common/domain/vo/MenuMetaVo.java index b2338b530..e5b22a0d8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuMetaVo.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/MenuMetaVo.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.nl.system.service.menu.dto; +package org.nl.common.domain.vo; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuVo.java b/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/MenuVo.java similarity index 96% rename from lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuVo.java rename to lms/nladmin-system/src/main/java/org/nl/common/domain/vo/MenuVo.java index f96e472f0..009cc7e6f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuVo.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/MenuVo.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.nl.system.service.menu.dto; +package org.nl.common.domain.vo; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; diff --git a/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/RoleVo.java b/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/RoleVo.java new file mode 100644 index 000000000..d647c3b64 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/RoleVo.java @@ -0,0 +1,53 @@ +/* + * Copyright 2019-2020 Zheng Jie + * + * 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 org.nl.common.domain.vo; + +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 角色 + * + * @author Zheng Jie + * @date 2018-11-22 + */ +@Getter +@Setter +public class RoleVo implements Serializable { + + + private Long role_id; + + @NotBlank + + private String name; + + + private Integer level = 3; + + + private String remark; + + + private String order_seq; + + + private String is_used; + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/UserPassVo.java b/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/UserPassVo.java new file mode 100644 index 000000000..0303575f7 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/common/domain/vo/UserPassVo.java @@ -0,0 +1,32 @@ +/* + * Copyright 2019-2020 Zheng Jie + * + * 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 org.nl.common.domain.vo; + +import lombok.Data; + +/** + * 修改密码的 Vo 类 + * + * @author Zheng Jie + * @date 2019年7月11日13:59:49 + */ +@Data +public class UserPassVo { + + private String oldPass; + + private String newPass; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/common/enums/LogTypeEnum.java b/lms/nladmin-system/src/main/java/org/nl/common/enums/LogTypeEnum.java new file mode 100644 index 000000000..1e31587e8 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/common/enums/LogTypeEnum.java @@ -0,0 +1,27 @@ +package org.nl.common.enums; + +/** + * @Author: lyd + * @Description: 日志类型枚举 + * @Date: 2023/8/14 + */ +public enum LogTypeEnum { + /** + * 设备日志 + */ + DEVICE_LOG("设备日志"), + /** + * 接口日志 + */ + INTERFACE_LOG("接口日志"); + + private String desc; + + LogTypeEnum(String desc) { + this.desc = desc; + } + + public String getDesc() { + return desc; + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/notice/NoticeEnum.java b/lms/nladmin-system/src/main/java/org/nl/common/enums/NoticeEnum.java similarity index 93% rename from lms/nladmin-system/src/main/java/org/nl/system/service/notice/NoticeEnum.java rename to lms/nladmin-system/src/main/java/org/nl/common/enums/NoticeEnum.java index 0b887500d..1213ed7de 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/notice/NoticeEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/enums/NoticeEnum.java @@ -1,4 +1,4 @@ -package org.nl.system.service.notice; +package org.nl.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/notice/NoticeTypeEnum.java b/lms/nladmin-system/src/main/java/org/nl/common/enums/NoticeTypeEnum.java similarity index 92% rename from lms/nladmin-system/src/main/java/org/nl/system/service/notice/NoticeTypeEnum.java rename to lms/nladmin-system/src/main/java/org/nl/common/enums/NoticeTypeEnum.java index cc519c731..cda5c24fb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/notice/NoticeTypeEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/enums/NoticeTypeEnum.java @@ -1,4 +1,4 @@ -package org.nl.system.service.notice; +package org.nl.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/lms/nladmin-system/src/main/java/org/nl/common/utils/CodeUtil.java b/lms/nladmin-system/src/main/java/org/nl/common/utils/CodeUtil.java new file mode 100644 index 000000000..a1e7b2a96 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/common/utils/CodeUtil.java @@ -0,0 +1,43 @@ +package org.nl.common.utils; + +import lombok.SneakyThrows; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.system.service.coderule.ISysCodeRuleService; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; + +import java.util.HashMap; +import java.util.concurrent.TimeUnit; + +/** + * @Author: lyd + * @Description: 编码生成工具 + * @Date: 2023/8/14 + */ +public class CodeUtil { + + @SneakyThrows + public static String getNewCode(String ruleCode) { + RedissonClient redissonClient = SpringContextHolder.getBean(RedissonClient.class); + RLock lock = redissonClient.getLock(ruleCode); + boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS); + try { + if (tryLock) { + String flag = "1"; + HashMap map = new HashMap<>(); + map.put("flag", flag); + map.put("code", ruleCode); + return SpringContextHolder.getBean(ISysCodeRuleService.class).codeDemo(map); + } else { + throw new BadRequestException("系统繁忙,稍后在试"); + } + } finally { + if (tryLock) { + lock.unlock(); + } + } + } + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/common/utils/GenUtil.java b/lms/nladmin-system/src/main/java/org/nl/common/utils/GenUtil.java index c7cc426d0..1be88e49e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/common/utils/GenUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/utils/GenUtil.java @@ -163,25 +163,25 @@ public class GenUtil { // 存储模版字段数据 Map genMap = new HashMap<>(16); // 接口别名 - genMap.put("apiAlias", genConfig.getApiAlias()); + genMap.put("apiAlias", genConfig.getApi_alias()); // 包名称 genMap.put("package", genConfig.getPack()); // 模块名称 - genMap.put("moduleName", genConfig.getModuleName()); + genMap.put("moduleName", genConfig.getModule_name()); // 作者 genMap.put("author", genConfig.getAuthor()); // 创建日期 genMap.put("date", LocalDate.now().toString()); // 表名 - genMap.put("tableName", genConfig.getTableName()); + genMap.put("tableName", genConfig.getTable_name()); // 大写开头的类名 - String className = StringUtils.toCapitalizeCamelCase(genConfig.getTableName()); + String className = StringUtils.toCapitalizeCamelCase(genConfig.getTable_name()); // 小写开头的类名 - String changeClassName = StringUtils.toCamelCase(genConfig.getTableName()); + String changeClassName = StringUtils.toCamelCase(genConfig.getTable_name()); // 判断是否去除表前缀 if (StrUtil.isNotEmpty(genConfig.getPrefix())) { - className = StringUtils.toCapitalizeCamelCase(StrUtil.removePrefix(genConfig.getTableName(), genConfig.getPrefix())); - changeClassName = StringUtils.toCamelCase(StrUtil.removePrefix(genConfig.getTableName(), genConfig.getPrefix())); + className = StringUtils.toCapitalizeCamelCase(StrUtil.removePrefix(genConfig.getTable_name(), genConfig.getPrefix())); + changeClassName = StringUtils.toCamelCase(StrUtil.removePrefix(genConfig.getTable_name(), genConfig.getPrefix())); } // 保存类名 genMap.put("className", className); // 驼峰命名 @@ -222,15 +222,15 @@ public class GenUtil { // 字段描述 listMap.put("remark", column.getRemark()); // 字段类型 - listMap.put("columnKey", column.getKeyType()); + listMap.put("columnKey", column.getKey_type()); // 主键类型 - String colType = ColUtil.cloToJava(column.getColumnType()); + String colType = ColUtil.cloToJava(column.getColumn_type()); // 小写开头的字段名 - 转驼峰 // String changeColumnName = StringUtils.toCamelCase(column.getColumnName()); - String changeColumnName = column.getColumnName(); + String changeColumnName = column.getColumn_name(); // 大写开头的字段名 - String capitalColumnName = StringUtils.toCapitalizeCamelCase(column.getColumnName()); - if (PK.equals(column.getKeyType())) { // 如果是主键 + String capitalColumnName = StringUtils.toCapitalizeCamelCase(column.getColumn_name()); + if (PK.equals(column.getKey_type())) { // 如果是主键 genMap.put("hasPk", true); // 存储主键类型 genMap.put("pkColumnType", colType); @@ -252,42 +252,42 @@ public class GenUtil { genMap.put("auto", true); } // 主键存在字典 - if (StrUtil.isNotEmpty(column.getDictName())) { + if (StrUtil.isNotEmpty(column.getDict_name())) { genMap.put("hasDict", true); - dicts.add(column.getDictName()); + dicts.add(column.getDict_name()); } // 存储字段类型 listMap.put("columnType", colType); // 存储字原始段名称 - listMap.put("columnName", column.getColumnName()); + listMap.put("columnName", column.getColumn_name()); // 不为空 - listMap.put("istNotNull", column.getNotNull()); + listMap.put("istNotNull", column.getNot_null()); // 字段列表显示 - listMap.put("columnShow", column.getListShow()); + listMap.put("columnShow", column.getList_show()); // 表单显示 - listMap.put("formShow", column.getFormShow()); + listMap.put("formShow", column.getForm_show()); // 表单组件类型 - listMap.put("formType", StrUtil.isNotEmpty(column.getFormType()) ? column.getFormType() : "Input"); + listMap.put("formType", StrUtil.isNotEmpty(column.getForm_type()) ? column.getForm_type() : "Input"); // 小写开头的字段名称 listMap.put("changeColumnName", changeColumnName); //大写开头的字段名称 listMap.put("capitalColumnName", capitalColumnName); // 字典名称 - listMap.put("dictName", column.getDictName()); + listMap.put("dictName", column.getDict_name()); // 日期注解 - listMap.put("dateAnnotation", column.getDateAnnotation()); - if (StrUtil.isNotEmpty(column.getDateAnnotation())) { + listMap.put("dateAnnotation", column.getDate_annotation()); + if (StrUtil.isNotEmpty(column.getDate_annotation())) { genMap.put("hasDateAnnotation", true); } // 添加非空字段信息 - if (column.getNotNull()) { + if (column.getNot_null()) { isNotNullColumns.add(listMap); } // 判断是否有查询,如有则把查询的字段set进columnQuery - if (!StrUtil.isEmpty(column.getQueryType())) { + if (!StrUtil.isEmpty(column.getQuery_type())) { // 查询类型 - listMap.put("queryType", column.getQueryType()); + listMap.put("queryType", column.getQuery_type()); // 是否存在查询 genMap.put("hasQuery", true); if (TIMESTAMP.equals(colType)) { @@ -298,7 +298,7 @@ public class GenUtil { // 查询中存储 BigDecimal 类型 genMap.put("queryHasBigDecimal", true); } - if ("between".equalsIgnoreCase(column.getQueryType())) { + if ("between".equalsIgnoreCase(column.getQuery_type())) { betweens.add(listMap); } else { // 添加到查询列表中 @@ -332,7 +332,7 @@ public class GenUtil { public static String download(List columns, CodeGenConfig genConfig) throws IOException { // 拼接的路径:/tmpnladmin-gen-temp/,这个路径在Linux下需要root用户才有权限创建,非root用户会权限错误而失败,更改为: /tmp/nladmin-gen-temp/ // String tempPath =SYS_TEM_DIR + "nladmin-gen-temp" + File.separator + genConfig.getTableName() + File.separator; - String tempPath = SYS_TEM_DIR + "nladmin-gen-temp" + File.separator + genConfig.getTableName() + File.separator; + String tempPath = SYS_TEM_DIR + "nladmin-gen-temp" + File.separator + genConfig.getTable_name() + File.separator; Map genMap = getGenMap(columns, genConfig); TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); // 生成后端代码 @@ -423,7 +423,7 @@ public class GenUtil { templates = getFrontTemplateNames(); for (String templateName : templates) { Template template = engine.getTemplate("generator/front/" + templateName + ".ftl"); - String filePath = getFrontFilePath(templateName, genConfig.getApiPath(), genConfig.getPath(), genMap.get("changeClassName").toString()); + String filePath = getFrontFilePath(templateName, genConfig.getApi_path(), genConfig.getPath(), genMap.get("changeClassName").toString()); assert filePath != null; File file = new File(filePath); diff --git a/lms/nladmin-system/src/main/java/org/nl/common/utils/SecurityUtils.java b/lms/nladmin-system/src/main/java/org/nl/common/utils/SecurityUtils.java index 73bf81eaa..d22cbd2fc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/common/utils/SecurityUtils.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/utils/SecurityUtils.java @@ -5,7 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; -import org.nl.system.service.user.dto.CurrentUser; +import org.nl.common.utils.dto.CurrentUser; import java.util.List; diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/user/dto/CurrentUser.java b/lms/nladmin-system/src/main/java/org/nl/common/utils/dto/CurrentUser.java similarity index 78% rename from lms/nladmin-system/src/main/java/org/nl/system/service/user/dto/CurrentUser.java rename to lms/nladmin-system/src/main/java/org/nl/common/utils/dto/CurrentUser.java index 02d6e5f93..ee2178f98 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/user/dto/CurrentUser.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/utils/dto/CurrentUser.java @@ -1,4 +1,4 @@ -package org.nl.system.service.user.dto; +package org.nl.common.utils.dto; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -19,15 +19,22 @@ public class CurrentUser implements Serializable { @JsonSerialize(using = ToStringSerializer.class) private String id; - //账号 + /** + * 账号 + */ private String username; - //姓名 + /** + * 姓名 + */ private String presonName; - //用户详细信息 + /** + * 用户详细信息 + */ private SysUser user; + /** + * 权限列表 + */ private List permissions = new ArrayList<>(); - - private String domain; } diff --git a/lms/nladmin-system/src/main/java/org/nl/config/redis/RedisConvert.java b/lms/nladmin-system/src/main/java/org/nl/config/redis/RedisConvert.java new file mode 100644 index 000000000..273ba149f --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/config/redis/RedisConvert.java @@ -0,0 +1,42 @@ +package org.nl.config.redis; + +import cn.hutool.core.util.StrUtil; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import org.nl.system.service.redis.vo.RedisMonitorRespVO; + +import java.util.ArrayList; +import java.util.Properties; + +/** + * @Author: lyd + * @Description: redis---Spring Boot 对象转换 MapStruct + * @Date: 2022-08-04 + */ +@Mapper +public interface RedisConvert { + + RedisConvert INSTANCE = Mappers.getMapper(RedisConvert.class); + + /** + * 构建 RedisMonitorRespVO + * + * @param info / + * @param dbSize / + * @param commandStats / + * @return / + */ + default RedisMonitorRespVO build(Properties info, Long dbSize, Properties commandStats) { + RedisMonitorRespVO respVO = RedisMonitorRespVO.builder().info(info).dbSize(dbSize) + .commandStats(new ArrayList<>(commandStats.size())).build(); + commandStats.forEach((key, value) -> { + respVO.getCommandStats().add(RedisMonitorRespVO.CommandStat.builder() + .command(StrUtil.subAfter((String) key, "cmdstat_", false)) + .calls(Integer.valueOf(StrUtil.subBetween((String) value, "calls=", ","))) + .usec(Long.valueOf(StrUtil.subBetween((String) value, "usec=", ","))) + .build()); + }); + return respVO; + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/common/base/BaseDTO.java b/lms/nladmin-system/src/main/java/org/nl/modules/common/base/BaseDTO.java deleted file mode 100644 index 72c7e7fbb..000000000 --- a/lms/nladmin-system/src/main/java/org/nl/modules/common/base/BaseDTO.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.nl.modules.common.base; - -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Getter; -import lombok.Setter; - -import java.io.Serializable; -import java.util.Date; - -/** - * @author Zheng Jie - * @date 2019年10月24日20:48:53 - */ -@Getter -@Setter -public class BaseDTO implements Serializable { - - private String createBy; - - private String updatedBy; - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; -} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java index 16107ee06..3fc0e3dc0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java @@ -1,4 +1,4 @@ -/* +package org.nl.modules.logging.aspect;/* * Copyright 2019-2020 Zheng Jie * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,35 +13,31 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.nl.modules.logging.aspect; - -import cn.dev33.satoken.stp.StpUtil; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; -import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; -import org.nl.common.utils.BaseCode; -import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; -import org.nl.config.lucene.LuceneAppender; import org.nl.modules.common.utils.RequestHolder; import org.nl.modules.common.utils.StringUtils; import org.nl.modules.common.utils.ThrowableUtil; -import org.nl.modules.logging.domain.Log; -import org.nl.modules.logging.service.LogService; -import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.system.service.logging.ISysLogService; +import org.nl.system.service.logging.dao.SysLog; import org.slf4j.MDC; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Method; import java.lang.reflect.Parameter; import java.util.ArrayList; @@ -49,99 +45,57 @@ import java.util.HashMap; import java.util.List; import java.util.Map; + /** * @author Zheng Jie * @date 2018-11-24 */ + @Component @Aspect @Slf4j public class LogAspect { - @Autowired - private LogService logService; + private final ISysLogService logService; + ThreadLocal currentTime = new ThreadLocal<>(); + + public LogAspect(ISysLogService logService) { + this.logService = logService; + } + + /** + * 配置切入点 + */ + + @Pointcut("@annotation(org.nl.modules.logging.annotation.Log)") + public void logPointcut() { + // 该方法无方法体,主要为了让同类中其他方法使用此切入点 + } /** * 配置环绕通知,使用在方法logPointcut()上注册的切入点 * * @param joinPoint join point for advice */ - @Around("@annotation(logInfo)") - public Object logAround(ProceedingJoinPoint joinPoint, org.nl.modules.logging.annotation.Log logInfo) throws Throwable { - + @Around("logPointcut()") + public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + HttpServletResponse response = attributes.getResponse(); MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); + // 方法路径 String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; String params = getParameter(method, joinPoint.getArgs()); - HttpServletRequest request = RequestHolder.getHttpServletRequest(); - String url = request.getRequestURI(); - String requestIp = StringUtils.getIp(request); - MDC.put("requestMethod", url); - MDC.put("requestIp", StringUtils.getIp(request)); - MDC.put("traceId", BaseCode.intToChars(IdUtil.getLongId())); - MDC.put("requestTime", DateUtil.now()); - LuceneAppender.traceIdTL.set(BaseCode.intToChars(IdUtil.getLongId())); - Object result = null; - long comming = System.currentTimeMillis(); - try { - log.info("[--request--][请求接口:{}][请求参数:{}]", url, params); - result = joinPoint.proceed(); - //是否把日志存到日志表 - if (logInfo.isAddLogTable()) { - Log log = new Log("INFO", System.currentTimeMillis() - comming); - String loginDevice = StpUtil.getLoginDevice(); - logService.save(getUsername(), StringUtils.getBrowser(request) + "---" + loginDevice, requestIp, joinPoint, log); - } - if (logInfo.isInterfaceLog()) { - try { - WQLObject interfaceLog = WQLObject.getWQLObject("sys_interface_log"); - JSONObject json = new JSONObject(); - json.put("log_id", IdUtil.getStringId()); - json.put("description", logInfo.value()); - json.put("log_type", logInfo.interfaceLogType().getDesc()); - json.put("log_level", "1"); - json.put("method", methodName); - json.put("params", getParameter(method, joinPoint.getArgs())); - json.put("request_ip", StringUtils.getIp(request)); - json.put("time", System.currentTimeMillis() - comming); - json.put("username", getUsername()); - json.put("address", StringUtils.getCityInfo(requestIp)); - json.put("browser", StringUtils.getBrowser(request)); - json.put("exception_detail", IdUtil.getStringId()); - json.put("create_time", DateUtil.now()); - Object parse = JSONObject.parse(result.toString()); - json.put("return_result", parse); - interfaceLog.insert(json); - } catch (Exception e) { - } - } - } catch (Exception ex) { - StringBuffer errorStack = new StringBuffer(); - errorStack.append("
【异常堆栈:"); - String errorMsg = ex.getMessage(); - int x = 0; - StackTraceElement[] stackTrace = ex.getStackTrace(); - if (stackTrace != null && stackTrace.length > 0) { - for (StackTraceElement stack : stackTrace) { - x++; - errorStack.append(stack.toString().replaceAll("<", ">")).append("
"); - if (x > 10) { - break; - } - } - } - log.error("[-requestError-][请求接口:{}]【异常信息:{}】[请求参数:{}] {}", url, errorMsg, params, errorStack.append("】").toString()); - Log log = new Log("ERROR", System.currentTimeMillis() - comming); - log.setExceptionDetail(ThrowableUtil.getStackTrace(ex).getBytes()); - logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint) joinPoint, log); - throw ex; - } finally { - log.info("[--response--][请求接口:{} 执行结束][耗时:{}s]", url, (System.currentTimeMillis() - comming) / 1000); - LuceneAppender.traceIdTL.remove(); - MDC.clear(); - } + Object result; + currentTime.set(System.currentTimeMillis()); + result = joinPoint.proceed(); + SysLog log = new SysLog("INFO", System.currentTimeMillis() - currentTime.get()); + currentTime.remove(); + + logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), joinPoint, log); return result; } @@ -152,12 +106,12 @@ public class LogAspect { List argList = new ArrayList<>(); Parameter[] parameters = method.getParameters(); for (int i = 0; i < parameters.length; i++) { - //将RequestBody注解修饰的参数作为请求参数 + // 将RequestBody注解修饰的参数作为请求参数 RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); if (requestBody != null) { argList.add(args[i]); } - //将RequestParam注解修饰的参数作为请求参数 + // 将RequestParam注解修饰的参数作为请求参数 RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); if (requestParam != null) { Map map = new HashMap<>(); @@ -175,6 +129,22 @@ public class LogAspect { return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); } + + /** + * 配置异常通知 + * + * @param joinPoint join point for advice + * @param e exception + */ + @AfterThrowing(pointcut = "logPointcut()", throwing = "e") + public void logAfterThrowing(JoinPoint joinPoint, Throwable e) { + SysLog log = new SysLog("ERROR", System.currentTimeMillis() - currentTime.get()); + currentTime.remove(); + log.setException_detail(ThrowableUtil.getStackTrace(e).getBytes()); + HttpServletRequest request = RequestHolder.getHttpServletRequest(); + logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint) joinPoint, log); + } + public String getUsername() { try { return SecurityUtils.getCurrentUsername(); diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/domain/Log.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/domain/Log.java index 5dc12dfc2..4cc7eb0da 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/domain/Log.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/domain/Log.java @@ -1,104 +1,104 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.logging.domain; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.hibernate.annotations.CreationTimestamp; - -import javax.persistence.*; -import java.io.Serializable; -import java.sql.Timestamp; - -/** - * @author Zheng Jie - * @date 2018-11-24 - */ -@Entity -@Getter -@Setter -@Table(name = "sys_log") -@NoArgsConstructor -public class Log implements Serializable { - - @Id - @Column(name = "log_id") - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - /** - * 操作用户 - */ - private String username; - - /** - * 描述 - */ - private String description; - - /** - * 方法名 - */ - private String method; - - /** - * 参数 - */ - private String params; - - /** - * 日志类型 - */ - private String logType; - - /** - * 请求ip - */ - private String requestIp; - - /** - * 地址 - */ - private String address; - - /** - * 浏览器 - */ - private String browser; - - /** - * 请求耗时 - */ - private Long time; - - /** - * 异常详细 - */ - private byte[] exceptionDetail; - - /** - * 创建日期 - */ - @CreationTimestamp - private Timestamp createTime; - - public Log(String logType, Long time) { - this.logType = logType; - this.time = time; - } - -} +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.logging.domain; +// +//import lombok.Getter; +//import lombok.NoArgsConstructor; +//import lombok.Setter; +//import org.hibernate.annotations.CreationTimestamp; +// +//import javax.persistence.*; +//import java.io.Serializable; +//import java.sql.Timestamp; +// +///** +// * @author Zheng Jie +// * @date 2018-11-24 +// */ +//@Entity +//@Getter +//@Setter +//@Table(name = "sys_log") +//@NoArgsConstructor +//public class Log implements Serializable { +// +// @Id +// @Column(name = "log_id") +// @GeneratedValue(strategy = GenerationType.IDENTITY) +// private Long id; +// +// /** +// * 操作用户 +// */ +// private String username; +// +// /** +// * 描述 +// */ +// private String description; +// +// /** +// * 方法名 +// */ +// private String method; +// +// /** +// * 参数 +// */ +// private String params; +// +// /** +// * 日志类型 +// */ +// private String logType; +// +// /** +// * 请求ip +// */ +// private String requestIp; +// +// /** +// * 地址 +// */ +// private String address; +// +// /** +// * 浏览器 +// */ +// private String browser; +// +// /** +// * 请求耗时 +// */ +// private Long time; +// +// /** +// * 异常详细 +// */ +// private byte[] exceptionDetail; +// +// /** +// * 创建日期 +// */ +// @CreationTimestamp +// private Timestamp createTime; +// +// public Log(String logType, Long time) { +// this.logType = logType; +// this.time = time; +// } +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/repository/LogRepository.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/repository/LogRepository.java index 4c8fe228c..7e2c9c839 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/repository/LogRepository.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/repository/LogRepository.java @@ -1,40 +1,40 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.logging.repository; - -import org.nl.modules.logging.domain.Log; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.stereotype.Repository; - -/** - * @author Zheng Jie - * @date 2018-11-24 - */ -@Repository -public interface LogRepository extends JpaRepository, JpaSpecificationExecutor { - - /** - * 根据日志类型删除信息 - * - * @param logType 日志类型 - */ - @Modifying - @Query(value = "delete from sys_log where log_type = ?1", nativeQuery = true) - void deleteByLogType(String logType); -} +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.logging.repository; +// +//import org.nl.modules.logging.domain.Log; +//import org.springframework.data.jpa.repository.JpaRepository; +//import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +//import org.springframework.data.jpa.repository.Modifying; +//import org.springframework.data.jpa.repository.Query; +//import org.springframework.stereotype.Repository; +// +///** +// * @author Zheng Jie +// * @date 2018-11-24 +// */ +//@Repository +//public interface LogRepository extends JpaRepository, JpaSpecificationExecutor { +// +// /** +// * 根据日志类型删除信息 +// * +// * @param logType 日志类型 +// */ +// @Modifying +// @Query(value = "delete from sys_log where log_type = ?1", nativeQuery = true) +// void deleteByLogType(String logType); +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/rest/LogController.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/rest/LogController.java index 0dbb6eb6e..42fc567e9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/rest/LogController.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/rest/LogController.java @@ -1,89 +1,89 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.logging.rest; - - -import lombok.RequiredArgsConstructor; -import org.nl.common.utils.SecurityUtils; -import org.nl.modules.logging.annotation.Log; -import org.nl.modules.logging.service.LogService; -import org.nl.modules.logging.service.dto.LogQueryCriteria; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -/** - * @author Zheng Jie - * @date 2018-11-24 - */ -@RestController -@RequiredArgsConstructor -@RequestMapping("/api/logs") - -public class LogController { - - private final LogService logService; - - @GetMapping - - //@SaCheckPermission("@el.check()") - public ResponseEntity query(LogQueryCriteria criteria, Pageable pageable) { - criteria.setLogType("INFO"); - return new ResponseEntity<>(logService.queryAll(criteria, pageable), HttpStatus.OK); - } - - @GetMapping(value = "/user") - // - public ResponseEntity queryUserLog(LogQueryCriteria criteria, Pageable pageable) { - criteria.setLogType("INFO"); - criteria.setBlurry(SecurityUtils.getCurrentUsername()); - return new ResponseEntity<>(logService.queryAllByUser(criteria, pageable), HttpStatus.OK); - } - - @GetMapping(value = "/error") - - // @SaCheckPermission("@el.check()") - public ResponseEntity queryErrorLog(LogQueryCriteria criteria, Pageable pageable) { - criteria.setLogType("ERROR"); - return new ResponseEntity<>(logService.queryAll(criteria, pageable), HttpStatus.OK); - } - - @GetMapping(value = "/error/{id}") - - // @SaCheckPermission("@el.check()") - public ResponseEntity queryErrorLogs(@PathVariable Long id) { - return new ResponseEntity<>(logService.findByErrDetail(id), HttpStatus.OK); - } - - @DeleteMapping(value = "/del/error") - @Log("删除所有ERROR日志") - - // @SaCheckPermission("@el.check()") - public ResponseEntity delAllErrorLog() { - logService.delAllByError(); - return new ResponseEntity<>(HttpStatus.OK); - } - - @DeleteMapping(value = "/del/info") - @Log("删除所有INFO日志") - - // @SaCheckPermission("@el.check()") - public ResponseEntity delAllInfoLog() { - logService.delAllByInfo(); - return new ResponseEntity<>(HttpStatus.OK); - } -} +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.logging.rest; +// +// +//import lombok.RequiredArgsConstructor; +//import org.nl.common.utils.SecurityUtils; +//import org.nl.modules.logging.annotation.Log; +//import org.nl.modules.logging.service.LogService; +//import org.nl.modules.logging.service.dto.LogQueryCriteria; +//import org.springframework.data.domain.Pageable; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.ResponseEntity; +//import org.springframework.web.bind.annotation.*; +// +///** +// * @author Zheng Jie +// * @date 2018-11-24 +// */ +//@RestController +//@RequiredArgsConstructor +//@RequestMapping("/api/logs") +// +//public class LogController { +// +// private final LogService logService; +// +// @GetMapping +// +// //@SaCheckPermission("@el.check()") +// public ResponseEntity query(LogQueryCriteria criteria, Pageable pageable) { +// criteria.setLogType("INFO"); +// return new ResponseEntity<>(logService.queryAll(criteria, pageable), HttpStatus.OK); +// } +// +// @GetMapping(value = "/user") +// // +// public ResponseEntity queryUserLog(LogQueryCriteria criteria, Pageable pageable) { +// criteria.setLogType("INFO"); +// criteria.setBlurry(SecurityUtils.getCurrentUsername()); +// return new ResponseEntity<>(logService.queryAllByUser(criteria, pageable), HttpStatus.OK); +// } +// +// @GetMapping(value = "/error") +// +// // @SaCheckPermission("@el.check()") +// public ResponseEntity queryErrorLog(LogQueryCriteria criteria, Pageable pageable) { +// criteria.setLogType("ERROR"); +// return new ResponseEntity<>(logService.queryAll(criteria, pageable), HttpStatus.OK); +// } +// +// @GetMapping(value = "/error/{id}") +// +// // @SaCheckPermission("@el.check()") +// public ResponseEntity queryErrorLogs(@PathVariable Long id) { +// return new ResponseEntity<>(logService.findByErrDetail(id), HttpStatus.OK); +// } +// +// @DeleteMapping(value = "/del/error") +// @Log("删除所有ERROR日志") +// +// // @SaCheckPermission("@el.check()") +// public ResponseEntity delAllErrorLog() { +// logService.delAllByError(); +// return new ResponseEntity<>(HttpStatus.OK); +// } +// +// @DeleteMapping(value = "/del/info") +// @Log("删除所有INFO日志") +// +// // @SaCheckPermission("@el.check()") +// public ResponseEntity delAllInfoLog() { +// logService.delAllByInfo(); +// return new ResponseEntity<>(HttpStatus.OK); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/LogService.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/LogService.java index cbdf2fad3..84c81bb03 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/LogService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/LogService.java @@ -1,87 +1,87 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.logging.service; - -import org.aspectj.lang.ProceedingJoinPoint; -import org.nl.modules.logging.domain.Log; -import org.nl.modules.logging.service.dto.LogQueryCriteria; -import org.springframework.data.domain.Pageable; -import org.springframework.scheduling.annotation.Async; - -import java.util.List; - -/** - * @author Zheng Jie - * @date 2018-11-24 - */ -public interface LogService { - - /** - * 分页查询 - * - * @param criteria 查询条件 - * @param pageable 分页参数 - * @return / - */ - Object queryAll(LogQueryCriteria criteria, Pageable pageable); - - /** - * 查询全部数据 - * - * @param criteria 查询条件 - * @return / - */ - List queryAll(LogQueryCriteria criteria); - - /** - * 查询用户日志 - * - * @param criteria 查询条件 - * @param pageable 分页参数 - * @return - - */ - Object queryAllByUser(LogQueryCriteria criteria, Pageable pageable); - - /** - * 保存日志数据 - * - * @param username 用户 - * @param browser 浏览器 - * @param ip 请求IP - * @param joinPoint / - * @param log 日志实体 - */ - @Async - void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, Log log); - - /** - * 查询异常详情 - * - * @param id 日志ID - * @return Object - */ - Object findByErrDetail(Long id); - - /** - * 删除所有错误日志 - */ - void delAllByError(); - - /** - * 删除所有INFO日志 - */ - void delAllByInfo(); -} +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.logging.service; +// +//import org.aspectj.lang.ProceedingJoinPoint; +//import org.nl.modules.logging.domain.Log; +//import org.nl.modules.logging.service.dto.LogQueryCriteria; +//import org.springframework.data.domain.Pageable; +//import org.springframework.scheduling.annotation.Async; +// +//import java.util.List; +// +///** +// * @author Zheng Jie +// * @date 2018-11-24 +// */ +//public interface LogService { +// +// /** +// * 分页查询 +// * +// * @param criteria 查询条件 +// * @param pageable 分页参数 +// * @return / +// */ +// Object queryAll(LogQueryCriteria criteria, Pageable pageable); +// +// /** +// * 查询全部数据 +// * +// * @param criteria 查询条件 +// * @return / +// */ +// List queryAll(LogQueryCriteria criteria); +// +// /** +// * 查询用户日志 +// * +// * @param criteria 查询条件 +// * @param pageable 分页参数 +// * @return - +// */ +// Object queryAllByUser(LogQueryCriteria criteria, Pageable pageable); +// +// /** +// * 保存日志数据 +// * +// * @param username 用户 +// * @param browser 浏览器 +// * @param ip 请求IP +// * @param joinPoint / +// * @param log 日志实体 +// */ +// @Async +// void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, Log log); +// +// /** +// * 查询异常详情 +// * +// * @param id 日志ID +// * @return Object +// */ +// Object findByErrDetail(Long id); +// +// /** +// * 删除所有错误日志 +// */ +// void delAllByError(); +// +// /** +// * 删除所有INFO日志 +// */ +// void delAllByInfo(); +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java index c5ab28214..5cf139e31 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java @@ -1,161 +1,161 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.logging.service.impl; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Dict; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.reflect.MethodSignature; -import org.nl.modules.common.utils.PageUtil; -import org.nl.modules.common.utils.QueryHelp; -import org.nl.modules.common.utils.StringUtils; -import org.nl.modules.common.utils.ValidationUtil; -import org.nl.modules.logging.domain.Log; -import org.nl.modules.logging.repository.LogRepository; -import org.nl.modules.logging.service.LogService; -import org.nl.modules.logging.service.dto.LogQueryCriteria; -import org.nl.modules.logging.service.mapstruct.LogErrorMapper; -import org.nl.modules.logging.service.mapstruct.LogSmallMapper; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; - -import java.lang.reflect.Method; -import java.lang.reflect.Parameter; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author Zheng Jie - * @date 2018-11-24 - */ -@Service -@RequiredArgsConstructor -@Slf4j -public class LogServiceImpl implements LogService { - private final LogRepository logRepository; - private final LogErrorMapper logErrorMapper; - private final LogSmallMapper logSmallMapper; - - @Override - public Object queryAll(LogQueryCriteria criteria, Pageable pageable) { - Page page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable); - String status = "ERROR"; - if (status.equals(criteria.getLogType())) { - return PageUtil.toPage(page.map(logErrorMapper::toDto)); - } - return page; - } - - @Override - public List queryAll(LogQueryCriteria criteria) { - return logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb))); - } - - @Override - public Object queryAllByUser(LogQueryCriteria criteria, Pageable pageable) { - Page page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable); - return PageUtil.toPage(page.map(logSmallMapper::toDto)); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, Log logDto) { - - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); - org.nl.modules.logging.annotation.Log aopLog = method.getAnnotation(org.nl.modules.logging.annotation.Log.class); - - // 方法路径 - String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; - - // 描述 - if (logDto != null) { - logDto.setDescription(aopLog.value()); - } - assert logDto != null; - logDto.setRequestIp(ip); - - logDto.setAddress(StringUtils.getCityInfo(logDto.getRequestIp())); - logDto.setMethod(methodName); - logDto.setUsername(username); - logDto.setParams(getParameter(method, joinPoint.getArgs())); - logDto.setBrowser(browser); - logDto.setCreateTime(Timestamp.valueOf(DateUtil.now())); - logRepository.save(logDto); - } - - /** - * 根据方法和传入的参数获取请求参数 - */ - private String getParameter(Method method, Object[] args) { - List argList = new ArrayList<>(); - Parameter[] parameters = method.getParameters(); - for (int i = 0; i < parameters.length; i++) { - //将RequestBody注解修饰的参数作为请求参数 - RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); - if (requestBody != null) { - argList.add(args[i]); - } - //将RequestParam注解修饰的参数作为请求参数 - RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); - if (requestParam != null) { - Map map = new HashMap<>(); - String key = parameters[i].getName(); - if (!StrUtil.isEmpty(requestParam.value())) { - key = requestParam.value(); - } - map.put(key, args[i]); - argList.add(map); - } - } - if (argList.size() == 0) { - return ""; - } - return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); - } - - @Override - public Object findByErrDetail(Long id) { - Log log = logRepository.findById(id).orElseGet(Log::new); - ValidationUtil.isNull(log.getId(), "Log", "id", id); - byte[] details = log.getExceptionDetail(); - return Dict.create().set("exception", new String(ObjectUtil.isNotNull(details) ? details : "".getBytes())); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delAllByError() { - logRepository.deleteByLogType("ERROR"); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delAllByInfo() { - logRepository.deleteByLogType("INFO"); - } -} +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.logging.service.impl; +// +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.lang.Dict; +//import cn.hutool.core.util.ObjectUtil; +//import cn.hutool.core.util.StrUtil; +//import cn.hutool.json.JSONUtil; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.aspectj.lang.ProceedingJoinPoint; +//import org.aspectj.lang.reflect.MethodSignature; +//import org.nl.modules.common.utils.PageUtil; +//import org.nl.modules.common.utils.QueryHelp; +//import org.nl.modules.common.utils.StringUtils; +//import org.nl.modules.common.utils.ValidationUtil; +//import org.nl.modules.logging.domain.Log; +//import org.nl.modules.logging.repository.LogRepository; +//import org.nl.modules.logging.service.LogService; +//import org.nl.modules.logging.service.dto.LogQueryCriteria; +//import org.nl.modules.logging.service.mapstruct.LogErrorMapper; +//import org.nl.modules.logging.service.mapstruct.LogSmallMapper; +//import org.springframework.data.domain.Page; +//import org.springframework.data.domain.Pageable; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +//import org.springframework.web.bind.annotation.RequestBody; +//import org.springframework.web.bind.annotation.RequestParam; +// +//import java.lang.reflect.Method; +//import java.lang.reflect.Parameter; +//import java.sql.Timestamp; +//import java.util.ArrayList; +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +///** +// * @author Zheng Jie +// * @date 2018-11-24 +// */ +//@Service +//@RequiredArgsConstructor +//@Slf4j +//public class LogServiceImpl implements LogService { +// private final LogRepository logRepository; +// private final LogErrorMapper logErrorMapper; +// private final LogSmallMapper logSmallMapper; +// +// @Override +// public Object queryAll(LogQueryCriteria criteria, Pageable pageable) { +// Page page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable); +// String status = "ERROR"; +// if (status.equals(criteria.getLogType())) { +// return PageUtil.toPage(page.map(logErrorMapper::toDto)); +// } +// return page; +// } +// +// @Override +// public List queryAll(LogQueryCriteria criteria) { +// return logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb))); +// } +// +// @Override +// public Object queryAllByUser(LogQueryCriteria criteria, Pageable pageable) { +// Page page = logRepository.findAll(((root, criteriaQuery, cb) -> QueryHelp.getPredicate(root, criteria, cb)), pageable); +// return PageUtil.toPage(page.map(logSmallMapper::toDto)); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, Log logDto) { +// +// MethodSignature signature = (MethodSignature) joinPoint.getSignature(); +// Method method = signature.getMethod(); +// org.nl.modules.logging.annotation.Log aopLog = method.getAnnotation(org.nl.modules.logging.annotation.Log.class); +// +// // 方法路径 +// String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; +// +// // 描述 +// if (logDto != null) { +// logDto.setDescription(aopLog.value()); +// } +// assert logDto != null; +// logDto.setRequestIp(ip); +// +// logDto.setAddress(StringUtils.getCityInfo(logDto.getRequestIp())); +// logDto.setMethod(methodName); +// logDto.setUsername(username); +// logDto.setParams(getParameter(method, joinPoint.getArgs())); +// logDto.setBrowser(browser); +// logDto.setCreateTime(Timestamp.valueOf(DateUtil.now())); +// logRepository.save(logDto); +// } +// +// /** +// * 根据方法和传入的参数获取请求参数 +// */ +// private String getParameter(Method method, Object[] args) { +// List argList = new ArrayList<>(); +// Parameter[] parameters = method.getParameters(); +// for (int i = 0; i < parameters.length; i++) { +// //将RequestBody注解修饰的参数作为请求参数 +// RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); +// if (requestBody != null) { +// argList.add(args[i]); +// } +// //将RequestParam注解修饰的参数作为请求参数 +// RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); +// if (requestParam != null) { +// Map map = new HashMap<>(); +// String key = parameters[i].getName(); +// if (!StrUtil.isEmpty(requestParam.value())) { +// key = requestParam.value(); +// } +// map.put(key, args[i]); +// argList.add(map); +// } +// } +// if (argList.size() == 0) { +// return ""; +// } +// return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); +// } +// +// @Override +// public Object findByErrDetail(Long id) { +// Log log = logRepository.findById(id).orElseGet(Log::new); +// ValidationUtil.isNull(log.getId(), "Log", "id", id); +// byte[] details = log.getExceptionDetail(); +// return Dict.create().set("exception", new String(ObjectUtil.isNotNull(details) ? details : "".getBytes())); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void delAllByError() { +// logRepository.deleteByLogType("ERROR"); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void delAllByInfo() { +// logRepository.deleteByLogType("INFO"); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/mapstruct/LogErrorMapper.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/mapstruct/LogErrorMapper.java index 1188a3c30..8cd8b559f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/mapstruct/LogErrorMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/mapstruct/LogErrorMapper.java @@ -1,31 +1,31 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.logging.service.mapstruct; - -import org.mapstruct.Mapper; -import org.mapstruct.ReportingPolicy; -import org.nl.modules.common.base.BaseMapper; -import org.nl.modules.logging.domain.Log; -import org.nl.modules.logging.service.dto.LogErrorDTO; - -/** - * @author Zheng Jie - * @date 2019-5-22 - */ -@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) -public interface LogErrorMapper extends BaseMapper { - -} \ No newline at end of file +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.logging.service.mapstruct; +// +//import org.mapstruct.Mapper; +//import org.mapstruct.ReportingPolicy; +//import org.nl.modules.common.base.BaseMapper; +//import org.nl.modules.logging.domain.Log; +//import org.nl.modules.logging.service.dto.LogErrorDTO; +// +///** +// * @author Zheng Jie +// * @date 2019-5-22 +// */ +//@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) +//public interface LogErrorMapper extends BaseMapper { +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/mapstruct/LogSmallMapper.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/mapstruct/LogSmallMapper.java index e74acff51..a86f7d507 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/mapstruct/LogSmallMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/service/mapstruct/LogSmallMapper.java @@ -1,31 +1,31 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.logging.service.mapstruct; - -import org.mapstruct.Mapper; -import org.mapstruct.ReportingPolicy; -import org.nl.modules.common.base.BaseMapper; -import org.nl.modules.logging.domain.Log; -import org.nl.modules.logging.service.dto.LogSmallDTO; - -/** - * @author Zheng Jie - * @date 2019-5-22 - */ -@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) -public interface LogSmallMapper extends BaseMapper { - -} \ No newline at end of file +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.logging.service.mapstruct; +// +//import org.mapstruct.Mapper; +//import org.mapstruct.ReportingPolicy; +//import org.nl.modules.common.base.BaseMapper; +//import org.nl.modules.logging.domain.Log; +//import org.nl.modules.logging.service.dto.LogSmallDTO; +// +///** +// * @author Zheng Jie +// * @date 2019-5-22 +// */ +//@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) +//public interface LogSmallMapper extends BaseMapper { +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/rest/StageController.java b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/rest/StageController.java index 799057604..cfdc00afd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/rest/StageController.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/rest/StageController.java @@ -1,88 +1,88 @@ -package org.nl.modules.logicflow.rest; - - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.modules.logging.annotation.Log; -import org.nl.modules.logicflow.service.StageService; -import org.nl.modules.logicflow.service.dto.StageDto; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -/** - * @Author: lyd - * @Description: 舞台管理 - * @Date: 2022-07-29 10:49 - */ -@RestController -@RequiredArgsConstructor - -@RequestMapping("/api/stage") -@Slf4j -public class StageController { - private final StageService stageService; - - @GetMapping - @Log("查询舞台") - - //@SaCheckPermission("stage:list") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(stageService.queryAll(whereJson, page), HttpStatus.OK); - } - - @PostMapping - @Log("新增舞台") - - //@SaCheckPermission("stage:add") - public ResponseEntity create(@Validated @RequestBody StageDto dto) { - stageService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @PutMapping - @Log("修改舞台") - - //@SaCheckPermission("stage:edit") - public ResponseEntity update(@Validated @RequestBody StageDto dto) { - stageService.update(dto); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Log("删除舞台") - - //@SaCheckPermission("stage:del") - @DeleteMapping - public ResponseEntity delete(@RequestBody String[] ids) { - stageService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - - @GetMapping("/selectList") - @Log("下拉选舞台") - - //@SaCheckPermission("routePlan:list") - public ResponseEntity selectList() { - return new ResponseEntity<>(stageService.selectList(), HttpStatus.OK); - } - - @PostMapping("/addNewStage") - @Log("保存舞台数据") - - public ResponseEntity addNewStage(@Validated @RequestBody StageDto dto) { - log.info("dto{}", dto); - stageService.addNewStage(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @PostMapping("/getNewStageDataByCode") - @Log("根据stage_code获取舞台数据") - - public ResponseEntity getNewStageDataByCode(@RequestBody String code) { - return new ResponseEntity<>(stageService.findByCode(code), HttpStatus.CREATED); - } -} +//package org.nl.modules.logicflow.rest; +// +// +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.nl.modules.logging.annotation.Log; +//import org.nl.modules.logicflow.service.StageService; +//import org.nl.modules.logicflow.service.dto.StageDto; +//import org.springframework.data.domain.Pageable; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.ResponseEntity; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.*; +// +//import java.util.Map; +// +///** +// * @Author: lyd +// * @Description: 舞台管理 +// * @Date: 2022-07-29 10:49 +// */ +//@RestController +//@RequiredArgsConstructor +// +//@RequestMapping("/api/stage") +//@Slf4j +//public class StageController { +// private final StageService stageService; +// +// @GetMapping +// @Log("查询舞台") +// +// //@SaCheckPermission("stage:list") +// public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { +// return new ResponseEntity<>(stageService.queryAll(whereJson, page), HttpStatus.OK); +// } +// +// @PostMapping +// @Log("新增舞台") +// +// //@SaCheckPermission("stage:add") +// public ResponseEntity create(@Validated @RequestBody StageDto dto) { +// stageService.create(dto); +// return new ResponseEntity<>(HttpStatus.CREATED); +// } +// +// @PutMapping +// @Log("修改舞台") +// +// //@SaCheckPermission("stage:edit") +// public ResponseEntity update(@Validated @RequestBody StageDto dto) { +// stageService.update(dto); +// return new ResponseEntity<>(HttpStatus.NO_CONTENT); +// } +// +// @Log("删除舞台") +// +// //@SaCheckPermission("stage:del") +// @DeleteMapping +// public ResponseEntity delete(@RequestBody String[] ids) { +// stageService.deleteAll(ids); +// return new ResponseEntity<>(HttpStatus.OK); +// } +// +// @GetMapping("/selectList") +// @Log("下拉选舞台") +// +// //@SaCheckPermission("routePlan:list") +// public ResponseEntity selectList() { +// return new ResponseEntity<>(stageService.selectList(), HttpStatus.OK); +// } +// +// @PostMapping("/addNewStage") +// @Log("保存舞台数据") +// +// public ResponseEntity addNewStage(@Validated @RequestBody StageDto dto) { +// log.info("dto{}", dto); +// stageService.addNewStage(dto); +// return new ResponseEntity<>(HttpStatus.CREATED); +// } +// +// @PostMapping("/getNewStageDataByCode") +// @Log("根据stage_code获取舞台数据") +// +// public ResponseEntity getNewStageDataByCode(@RequestBody String code) { +// return new ResponseEntity<>(stageService.findByCode(code), HttpStatus.CREATED); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/rest/StageImageController.java b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/rest/StageImageController.java index 478df9132..210efa0e6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/rest/StageImageController.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/rest/StageImageController.java @@ -1,72 +1,72 @@ -package org.nl.modules.logicflow.rest; - - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.modules.logging.annotation.Log; -import org.nl.modules.logicflow.service.StageImageService; -import org.nl.modules.logicflow.service.dto.StageImageDto; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -/** - * @Author: lyd - * @Description: 舞台图标控制层 - * @Date: 2022-07-29 - */ -@RestController -@RequiredArgsConstructor - -@RequestMapping("/api/stageImage") -@Slf4j -public class StageImageController { - private final StageImageService stageImageService; - - @GetMapping - @Log("查询舞台") - - //@SaCheckPermission("stageImage:list") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(stageImageService.queryAll(whereJson, page), HttpStatus.OK); - } - - @PostMapping - @Log("新增舞台") - - //@SaCheckPermission("stageImage:add") - public ResponseEntity create(@Validated @RequestBody StageImageDto dto) { - stageImageService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @PutMapping - @Log("修改舞台") - - //@SaCheckPermission("stageImage:edit") - public ResponseEntity update(@Validated @RequestBody StageImageDto dto) { - stageImageService.update(dto); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Log("删除舞台") - - //@SaCheckPermission("stageImage:del") - @DeleteMapping - public ResponseEntity delete(@RequestBody String[] ids) { - stageImageService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - - @GetMapping("/selectList") - @Log("下拉选设备图标") - - //@SaCheckPermission("routePlan:list") - public ResponseEntity selectList() { - return new ResponseEntity<>(stageImageService.selectList(), HttpStatus.OK); - } -} +//package org.nl.modules.logicflow.rest; +// +// +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.nl.modules.logging.annotation.Log; +//import org.nl.modules.logicflow.service.StageImageService; +//import org.nl.modules.logicflow.service.dto.StageImageDto; +//import org.springframework.data.domain.Pageable; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.ResponseEntity; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.*; +// +//import java.util.Map; +// +///** +// * @Author: lyd +// * @Description: 舞台图标控制层 +// * @Date: 2022-07-29 +// */ +//@RestController +//@RequiredArgsConstructor +// +//@RequestMapping("/api/stageImage") +//@Slf4j +//public class StageImageController { +// private final StageImageService stageImageService; +// +// @GetMapping +// @Log("查询舞台") +// +// //@SaCheckPermission("stageImage:list") +// public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { +// return new ResponseEntity<>(stageImageService.queryAll(whereJson, page), HttpStatus.OK); +// } +// +// @PostMapping +// @Log("新增舞台") +// +// //@SaCheckPermission("stageImage:add") +// public ResponseEntity create(@Validated @RequestBody StageImageDto dto) { +// stageImageService.create(dto); +// return new ResponseEntity<>(HttpStatus.CREATED); +// } +// +// @PutMapping +// @Log("修改舞台") +// +// //@SaCheckPermission("stageImage:edit") +// public ResponseEntity update(@Validated @RequestBody StageImageDto dto) { +// stageImageService.update(dto); +// return new ResponseEntity<>(HttpStatus.NO_CONTENT); +// } +// +// @Log("删除舞台") +// +// //@SaCheckPermission("stageImage:del") +// @DeleteMapping +// public ResponseEntity delete(@RequestBody String[] ids) { +// stageImageService.deleteAll(ids); +// return new ResponseEntity<>(HttpStatus.OK); +// } +// +// @GetMapping("/selectList") +// @Log("下拉选设备图标") +// +// //@SaCheckPermission("routePlan:list") +// public ResponseEntity selectList() { +// return new ResponseEntity<>(stageImageService.selectList(), HttpStatus.OK); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/StageImageService.java b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/StageImageService.java index f282923d7..6d72ad56d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/StageImageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/StageImageService.java @@ -1,59 +1,59 @@ -package org.nl.modules.logicflow.service; - -import com.alibaba.fastjson.JSONArray; -import org.nl.modules.logicflow.service.dto.StageImageDto; -import org.springframework.data.domain.Pageable; - -import java.util.Map; - -/** - * @Author: lyd - * @Description: 舞台图标的服务层 - * @Date: 2022-07-29 - */ -public interface StageImageService { - /** - * 查询数据分页 - * - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map queryAll(Map whereJson, Pageable page); - - /** - * 创建 - * - * @param dto / - */ - void create(StageImageDto dto); - - /** - * 编辑 - * - * @param dto / - */ - void update(StageImageDto dto); - - /** - * 根据ID查询 - * - * @param image_uuid ID - * @return StageImage - */ - StageImageDto findById(String image_uuid); - - /** - * 多选删除 - * - * @param ids / - */ - void deleteAll(String[] ids); - - /** - * 前端舞台编辑选择设备图标下拉选列表 - * - * @return - */ - JSONArray selectList(); -} +//package org.nl.modules.logicflow.service; +// +//import com.alibaba.fastjson.JSONArray; +//import org.nl.modules.logicflow.service.dto.StageImageDto; +//import org.springframework.data.domain.Pageable; +// +//import java.util.Map; +// +///** +// * @Author: lyd +// * @Description: 舞台图标的服务层 +// * @Date: 2022-07-29 +// */ +//public interface StageImageService { +// /** +// * 查询数据分页 +// * +// * @param whereJson 条件 +// * @param page 分页参数 +// * @return Map +// */ +// Map queryAll(Map whereJson, Pageable page); +// +// /** +// * 创建 +// * +// * @param dto / +// */ +// void create(StageImageDto dto); +// +// /** +// * 编辑 +// * +// * @param dto / +// */ +// void update(StageImageDto dto); +// +// /** +// * 根据ID查询 +// * +// * @param image_uuid ID +// * @return StageImage +// */ +// StageImageDto findById(String image_uuid); +// +// /** +// * 多选删除 +// * +// * @param ids / +// */ +// void deleteAll(String[] ids); +// +// /** +// * 前端舞台编辑选择设备图标下拉选列表 +// * +// * @return +// */ +// JSONArray selectList(); +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/StageService.java b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/StageService.java index d4cca7a03..06f1f6ac0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/StageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/StageService.java @@ -1,75 +1,75 @@ -package org.nl.modules.logicflow.service; - -import com.alibaba.fastjson.JSONArray; -import org.nl.modules.logicflow.service.dto.StageDto; -import org.springframework.data.domain.Pageable; - -import java.util.Map; - -/** - * @Author: lyd - * @Description: - * @Date: 2022-07-29 10:50 - */ -public interface StageService { - /** - * 查询数据分页 - * - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map queryAll(Map whereJson, Pageable page); - - /** - * 创建 - * - * @param dto / - */ - void create(StageDto dto); - - /** - * 编辑 - * - * @param dto / - */ - void update(StageDto dto); - - /** - * 根据ID查询 - * - * @param stage_uuid ID - * @return Stage - */ - StageDto findById(String stage_uuid); - - /** - * 多选删除 - * - * @param ids / - */ - void deleteAll(String[] ids); - - /** - * 前端舞台下拉选列表 - * - * @return - */ - JSONArray selectList(); - - /** - * 新增舞台信息 - * 将数据保存到remark---保存数据 - * - * @param dto - */ - void addNewStage(StageDto dto); - - /** - * 根据编码查询 - * - * @param code code - * @return Stage - */ - StageDto findByCode(String code); -} +//package org.nl.modules.logicflow.service; +// +//import com.alibaba.fastjson.JSONArray; +//import org.nl.modules.logicflow.service.dto.StageDto; +//import org.springframework.data.domain.Pageable; +// +//import java.util.Map; +// +///** +// * @Author: lyd +// * @Description: +// * @Date: 2022-07-29 10:50 +// */ +//public interface StageService { +// /** +// * 查询数据分页 +// * +// * @param whereJson 条件 +// * @param page 分页参数 +// * @return Map +// */ +// Map queryAll(Map whereJson, Pageable page); +// +// /** +// * 创建 +// * +// * @param dto / +// */ +// void create(StageDto dto); +// +// /** +// * 编辑 +// * +// * @param dto / +// */ +// void update(StageDto dto); +// +// /** +// * 根据ID查询 +// * +// * @param stage_uuid ID +// * @return Stage +// */ +// StageDto findById(String stage_uuid); +// +// /** +// * 多选删除 +// * +// * @param ids / +// */ +// void deleteAll(String[] ids); +// +// /** +// * 前端舞台下拉选列表 +// * +// * @return +// */ +// JSONArray selectList(); +// +// /** +// * 新增舞台信息 +// * 将数据保存到remark---保存数据 +// * +// * @param dto +// */ +// void addNewStage(StageDto dto); +// +// /** +// * 根据编码查询 +// * +// * @param code code +// * @return Stage +// */ +// StageDto findByCode(String code); +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/dto/StageDto.java b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/dto/StageDto.java index ed7420312..8e1d72b8f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/dto/StageDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/dto/StageDto.java @@ -1,63 +1,63 @@ -package org.nl.modules.logicflow.service.dto; - -import lombok.Data; - -import java.io.Serializable; - -/** - * @Author: lyd - * @Description: 舞台数据的Dto - * @Date: 2022-07-29 13:28 - */ -@Data -public class StageDto implements Serializable { - /** - * 舞台标识 - */ - private String stage_uuid; - - /** - * 舞台编码 - */ - private String stage_code; - - /** - * 舞台名字 - */ - private String stage_name; - - /** - * 舞台数据 - */ - private String stage_data; - - /** - * 是否启用 - */ - private String is_active; - - /** - * 是否删除 - */ - private String is_delete; - - /** - * 创建者 - */ - private String create_by; - - /** - * 创建时间 - */ - private String create_time; - - /** - * 修改者 - */ - private String update_by; - - /** - * 修改时间 - */ - private String update_time; -} +//package org.nl.modules.logicflow.service.dto; +// +//import lombok.Data; +// +//import java.io.Serializable; +// +///** +// * @Author: lyd +// * @Description: 舞台数据的Dto +// * @Date: 2022-07-29 13:28 +// */ +//@Data +//public class StageDto implements Serializable { +// /** +// * 舞台标识 +// */ +// private String stage_uuid; +// +// /** +// * 舞台编码 +// */ +// private String stage_code; +// +// /** +// * 舞台名字 +// */ +// private String stage_name; +// +// /** +// * 舞台数据 +// */ +// private String stage_data; +// +// /** +// * 是否启用 +// */ +// private String is_active; +// +// /** +// * 是否删除 +// */ +// private String is_delete; +// +// /** +// * 创建者 +// */ +// private String create_by; +// +// /** +// * 创建时间 +// */ +// private String create_time; +// +// /** +// * 修改者 +// */ +// private String update_by; +// +// /** +// * 修改时间 +// */ +// private String update_time; +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/dto/StageImageDto.java b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/dto/StageImageDto.java index 2d6cf493b..c43309de3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/dto/StageImageDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/dto/StageImageDto.java @@ -1,68 +1,68 @@ -package org.nl.modules.logicflow.service.dto; - -import lombok.Data; - -import java.io.Serializable; - -/** - * @Author: lyd - * @Description: 设备图标dto - * @Date: 2022-07-29 - */ -@Data -public class StageImageDto implements Serializable { - /** - * 设备标识 - */ - private String image_uuid; - - /** - * 设备名字 - */ - private String image_name; - - /** - * 适用驱动 - */ - private String driver_code_json; - - /** - * 备注 - */ - private String remark; - - /** - * 是否启用 - */ - private String is_active; - - /** - * 是否删除 - */ - private String is_delete; - - /** - * 创建者 - */ - private String create_by; - - /** - * 创建时间 - */ - private String create_time; - - /** - * 修改者 - */ - private String update_by; - - /** - * 修改时间 - */ - private String update_time; - - /** - * 图标编码 - */ - private String image_code; -} +//package org.nl.modules.logicflow.service.dto; +// +//import lombok.Data; +// +//import java.io.Serializable; +// +///** +// * @Author: lyd +// * @Description: 设备图标dto +// * @Date: 2022-07-29 +// */ +//@Data +//public class StageImageDto implements Serializable { +// /** +// * 设备标识 +// */ +// private String image_uuid; +// +// /** +// * 设备名字 +// */ +// private String image_name; +// +// /** +// * 适用驱动 +// */ +// private String driver_code_json; +// +// /** +// * 备注 +// */ +// private String remark; +// +// /** +// * 是否启用 +// */ +// private String is_active; +// +// /** +// * 是否删除 +// */ +// private String is_delete; +// +// /** +// * 创建者 +// */ +// private String create_by; +// +// /** +// * 创建时间 +// */ +// private String create_time; +// +// /** +// * 修改者 +// */ +// private String update_by; +// +// /** +// * 修改时间 +// */ +// private String update_time; +// +// /** +// * 图标编码 +// */ +// private String image_code; +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageImageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageImageServiceImpl.java index 53902f556..52b1e59a6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageImageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageImageServiceImpl.java @@ -1,112 +1,112 @@ -package org.nl.modules.logicflow.service.impl; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.utils.SecurityUtils; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.logicflow.service.StageImageService; -import org.nl.modules.logicflow.service.dto.StageImageDto; -import org.nl.modules.wql.core.bean.ResultBean; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.WqlUtil; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Map; - -/** - * @Author: lyd - * @Description: 舞台图标的服务实现 - * @Date: 2022-07-29 - */ -@Service -@RequiredArgsConstructor -@Slf4j -public class StageImageServiceImpl implements StageImageService { - @Override - public Map queryAll(Map whereJson, Pageable page) { - String where = "1=1"; - if (whereJson.get("device_type") != null) { - where = "driver_code_json like ('%" + whereJson.get("device_type") + "%')"; - } - WQLObject wo = WQLObject.getWQLObject("stage_image"); - ResultBean rb = wo.pagequery(WqlUtil.getHttpContext(page), where, "update_time desc"); - final JSONObject json = rb.pageResult(); - return json; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void create(StageImageDto dto) { - String currentUsername = SecurityUtils.getCurrentUsername(); - String now = DateUtil.now(); - - dto.setImage_uuid(IdUtil.simpleUUID()); - dto.setCreate_by(currentUsername); - dto.setUpdate_by(currentUsername); - dto.setUpdate_time(now); - dto.setCreate_time(now); - - WQLObject wo = WQLObject.getWQLObject("stage_image"); - JSONObject json = (JSONObject) JSONObject.toJSON(dto); - - wo.insert(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(StageImageDto dto) { - StageImageDto entity = this.findById(dto.getImage_uuid()); - if (entity == null) { - throw new BadRequestException("被删除或无权限,操作失败!"); - } - - String currentUsername = SecurityUtils.getCurrentUsername(); - String now = DateUtil.now(); - dto.setUpdate_time(now); - dto.setUpdate_by(currentUsername); - - WQLObject wo = WQLObject.getWQLObject("stage_image"); - JSONObject json = (JSONObject) JSONObject.toJSON(dto); - - wo.update(json); - } - - @Override - public StageImageDto findById(String image_uuid) { - WQLObject wo = WQLObject.getWQLObject("stage_image"); - JSONObject json = wo.query("image_uuid ='" + image_uuid + "'").uniqueResult(0); - final StageImageDto obj = json.toJavaObject(StageImageDto.class); - return obj; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteAll(String[] ids) { - WQLObject wo = WQLObject.getWQLObject("stage_image"); - for (String image_uuid : ids) { - wo.delete("image_uuid = '" + image_uuid + "'"); - } - } - - @Override - public JSONArray selectList() { - //设备基础信息表【acs_stage_image】 - JSONArray arr = WQLObject.getWQLObject("stage_image").query("is_delete= '0' AND is_active= '1'", "update_time desc").getResultJSONArray(0); - JSONArray result = new JSONArray(); - for (int i = 0; i < arr.size(); i++) { - JSONObject obj = arr.getJSONObject(i); - JSONObject json = new JSONObject(); - json.put("image_uuid", obj.getString("image_uuid")); - json.put("image_code", obj.getString("image_code")); - json.put("image_name", obj.getString("image_code").toString().split("-")[0]); - result.add(json); - } - return result; - } -} +//package org.nl.modules.logicflow.service.impl; +// +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.util.IdUtil; +//import com.alibaba.fastjson.JSONArray; +//import com.alibaba.fastjson.JSONObject; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.nl.common.utils.SecurityUtils; +//import org.nl.modules.common.exception.BadRequestException; +//import org.nl.modules.logicflow.service.StageImageService; +//import org.nl.modules.logicflow.service.dto.StageImageDto; +//import org.nl.modules.wql.core.bean.ResultBean; +//import org.nl.modules.wql.core.bean.WQLObject; +//import org.nl.modules.wql.util.WqlUtil; +//import org.springframework.data.domain.Pageable; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +// +//import java.util.Map; +// +///** +// * @Author: lyd +// * @Description: 舞台图标的服务实现 +// * @Date: 2022-07-29 +// */ +//@Service +//@RequiredArgsConstructor +//@Slf4j +//public class StageImageServiceImpl implements StageImageService { +// @Override +// public Map queryAll(Map whereJson, Pageable page) { +// String where = "1=1"; +// if (whereJson.get("device_type") != null) { +// where = "driver_code_json like ('%" + whereJson.get("device_type") + "%')"; +// } +// WQLObject wo = WQLObject.getWQLObject("stage_image"); +// ResultBean rb = wo.pagequery(WqlUtil.getHttpContext(page), where, "update_time desc"); +// final JSONObject json = rb.pageResult(); +// return json; +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void create(StageImageDto dto) { +// String currentUsername = SecurityUtils.getCurrentUsername(); +// String now = DateUtil.now(); +// +// dto.setImage_uuid(IdUtil.simpleUUID()); +// dto.setCreate_by(currentUsername); +// dto.setUpdate_by(currentUsername); +// dto.setUpdate_time(now); +// dto.setCreate_time(now); +// +// WQLObject wo = WQLObject.getWQLObject("stage_image"); +// JSONObject json = (JSONObject) JSONObject.toJSON(dto); +// +// wo.insert(json); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void update(StageImageDto dto) { +// StageImageDto entity = this.findById(dto.getImage_uuid()); +// if (entity == null) { +// throw new BadRequestException("被删除或无权限,操作失败!"); +// } +// +// String currentUsername = SecurityUtils.getCurrentUsername(); +// String now = DateUtil.now(); +// dto.setUpdate_time(now); +// dto.setUpdate_by(currentUsername); +// +// WQLObject wo = WQLObject.getWQLObject("stage_image"); +// JSONObject json = (JSONObject) JSONObject.toJSON(dto); +// +// wo.update(json); +// } +// +// @Override +// public StageImageDto findById(String image_uuid) { +// WQLObject wo = WQLObject.getWQLObject("stage_image"); +// JSONObject json = wo.query("image_uuid ='" + image_uuid + "'").uniqueResult(0); +// final StageImageDto obj = json.toJavaObject(StageImageDto.class); +// return obj; +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void deleteAll(String[] ids) { +// WQLObject wo = WQLObject.getWQLObject("stage_image"); +// for (String image_uuid : ids) { +// wo.delete("image_uuid = '" + image_uuid + "'"); +// } +// } +// +// @Override +// public JSONArray selectList() { +// //设备基础信息表【acs_stage_image】 +// JSONArray arr = WQLObject.getWQLObject("stage_image").query("is_delete= '0' AND is_active= '1'", "update_time desc").getResultJSONArray(0); +// JSONArray result = new JSONArray(); +// for (int i = 0; i < arr.size(); i++) { +// JSONObject obj = arr.getJSONObject(i); +// JSONObject json = new JSONObject(); +// json.put("image_uuid", obj.getString("image_uuid")); +// json.put("image_code", obj.getString("image_code")); +// json.put("image_name", obj.getString("image_code").toString().split("-")[0]); +// result.add(json); +// } +// return result; +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageServiceImpl.java index 390765886..c6dcd96ee 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logicflow/service/impl/StageServiceImpl.java @@ -1,134 +1,134 @@ -package org.nl.modules.logicflow.service.impl; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.utils.SecurityUtils; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.logicflow.service.StageService; -import org.nl.modules.logicflow.service.dto.StageDto; -import org.nl.modules.wql.core.bean.ResultBean; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.WqlUtil; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Map; - -/** - * @Author: lyd - * @Description: - * @Date: 2022-07-29 10:51 - */ -@Service -@RequiredArgsConstructor -@Slf4j -public class StageServiceImpl implements StageService { - @Override - public Map queryAll(Map whereJson, Pageable page) { - log.info("分页查找"); - WQLObject wo = WQLObject.getWQLObject("stage"); - ResultBean rb = wo.pagequery(WqlUtil.getHttpContext(page), "", "update_time desc"); - final JSONObject json = rb.pageResult(); - return json; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void create(StageDto dto) { - String currentUsername = SecurityUtils.getCurrentUsername(); - String now = DateUtil.now(); - - dto.setStage_uuid(IdUtil.simpleUUID()); - dto.setCreate_by(currentUsername); - dto.setUpdate_by(currentUsername); - dto.setUpdate_time(now); - dto.setCreate_time(now); - - WQLObject wo = WQLObject.getWQLObject("stage"); - JSONObject json = (JSONObject) JSONObject.toJSON(dto); - - wo.insert(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(StageDto dto) { - StageDto entity = this.findById(dto.getStage_uuid()); - if (entity == null) { - throw new BadRequestException("被删除或无权限,操作失败!"); - } - - String currentUsername = SecurityUtils.getCurrentUsername(); - String now = DateUtil.now(); - dto.setUpdate_time(now); - dto.setUpdate_by(currentUsername); - - WQLObject wo = WQLObject.getWQLObject("stage"); - JSONObject json = (JSONObject) JSONObject.toJSON(dto); - - wo.update(json); - } - - @Override - public StageDto findById(String stage_uuid) { - WQLObject wo = WQLObject.getWQLObject("stage"); - JSONObject json = wo.query("stage_uuid ='" + stage_uuid + "'").uniqueResult(0); - final StageDto obj = json.toJavaObject(StageDto.class); - return obj; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteAll(String[] ids) { - WQLObject wo = WQLObject.getWQLObject("stage"); - for (String stage_uuid : ids) { - wo.delete("stage_uuid = '" + stage_uuid + "'"); - } - } - - @Override - public JSONArray selectList() { - //设备基础信息表【stage】 - JSONArray arr = WQLObject.getWQLObject("stage").query("is_delete= '0' AND is_active= '1'").getResultJSONArray(0); - JSONArray result = new JSONArray(); - for (int i = 0; i < arr.size(); i++) { - JSONObject obj = arr.getJSONObject(i); - JSONObject json = new JSONObject(); - json.put("stage_id", obj.getString("stage_id")); - json.put("stage_code", obj.getString("stage_code")); - json.put("stage_name", obj.getString("stage_name")); - result.add(json); - } - return result; - } - - @Override - public void addNewStage(StageDto dto) { - // 根据dto的code找到数据 - StageDto stageDto = this.findByCode(dto.getStage_code()); - // 设置内容 - stageDto.setStage_data(dto.getStage_data()); - // 获取当前用户与时间 - String currentUsername = SecurityUtils.getCurrentUsername(); - String now = DateUtil.now(); - stageDto.setUpdate_time(now); - stageDto.setUpdate_by(currentUsername); - System.out.println(stageDto); - WQLObject wo = WQLObject.getWQLObject("stage"); - JSONObject json = (JSONObject) JSONObject.toJSON(stageDto); - wo.update(json); - } - - @Override - public StageDto findByCode(String code) { - WQLObject wo = WQLObject.getWQLObject("stage"); - JSONObject json = wo.query("stage_code ='" + code + "'").uniqueResult(0); - final StageDto obj = json.toJavaObject(StageDto.class); - return obj; - } -} +//package org.nl.modules.logicflow.service.impl; +// +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.util.IdUtil; +//import com.alibaba.fastjson.JSONArray; +//import com.alibaba.fastjson.JSONObject; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.nl.common.utils.SecurityUtils; +//import org.nl.modules.common.exception.BadRequestException; +//import org.nl.modules.logicflow.service.StageService; +//import org.nl.modules.logicflow.service.dto.StageDto; +//import org.nl.modules.wql.core.bean.ResultBean; +//import org.nl.modules.wql.core.bean.WQLObject; +//import org.nl.modules.wql.util.WqlUtil; +//import org.springframework.data.domain.Pageable; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +// +//import java.util.Map; +// +///** +// * @Author: lyd +// * @Description: +// * @Date: 2022-07-29 10:51 +// */ +//@Service +//@RequiredArgsConstructor +//@Slf4j +//public class StageServiceImpl implements StageService { +// @Override +// public Map queryAll(Map whereJson, Pageable page) { +// log.info("分页查找"); +// WQLObject wo = WQLObject.getWQLObject("stage"); +// ResultBean rb = wo.pagequery(WqlUtil.getHttpContext(page), "", "update_time desc"); +// final JSONObject json = rb.pageResult(); +// return json; +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void create(StageDto dto) { +// String currentUsername = SecurityUtils.getCurrentUsername(); +// String now = DateUtil.now(); +// +// dto.setStage_uuid(IdUtil.simpleUUID()); +// dto.setCreate_by(currentUsername); +// dto.setUpdate_by(currentUsername); +// dto.setUpdate_time(now); +// dto.setCreate_time(now); +// +// WQLObject wo = WQLObject.getWQLObject("stage"); +// JSONObject json = (JSONObject) JSONObject.toJSON(dto); +// +// wo.insert(json); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void update(StageDto dto) { +// StageDto entity = this.findById(dto.getStage_uuid()); +// if (entity == null) { +// throw new BadRequestException("被删除或无权限,操作失败!"); +// } +// +// String currentUsername = SecurityUtils.getCurrentUsername(); +// String now = DateUtil.now(); +// dto.setUpdate_time(now); +// dto.setUpdate_by(currentUsername); +// +// WQLObject wo = WQLObject.getWQLObject("stage"); +// JSONObject json = (JSONObject) JSONObject.toJSON(dto); +// +// wo.update(json); +// } +// +// @Override +// public StageDto findById(String stage_uuid) { +// WQLObject wo = WQLObject.getWQLObject("stage"); +// JSONObject json = wo.query("stage_uuid ='" + stage_uuid + "'").uniqueResult(0); +// final StageDto obj = json.toJavaObject(StageDto.class); +// return obj; +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void deleteAll(String[] ids) { +// WQLObject wo = WQLObject.getWQLObject("stage"); +// for (String stage_uuid : ids) { +// wo.delete("stage_uuid = '" + stage_uuid + "'"); +// } +// } +// +// @Override +// public JSONArray selectList() { +// //设备基础信息表【stage】 +// JSONArray arr = WQLObject.getWQLObject("stage").query("is_delete= '0' AND is_active= '1'").getResultJSONArray(0); +// JSONArray result = new JSONArray(); +// for (int i = 0; i < arr.size(); i++) { +// JSONObject obj = arr.getJSONObject(i); +// JSONObject json = new JSONObject(); +// json.put("stage_id", obj.getString("stage_id")); +// json.put("stage_code", obj.getString("stage_code")); +// json.put("stage_name", obj.getString("stage_name")); +// result.add(json); +// } +// return result; +// } +// +// @Override +// public void addNewStage(StageDto dto) { +// // 根据dto的code找到数据 +// StageDto stageDto = this.findByCode(dto.getStage_code()); +// // 设置内容 +// stageDto.setStage_data(dto.getStage_data()); +// // 获取当前用户与时间 +// String currentUsername = SecurityUtils.getCurrentUsername(); +// String now = DateUtil.now(); +// stageDto.setUpdate_time(now); +// stageDto.setUpdate_by(currentUsername); +// System.out.println(stageDto); +// WQLObject wo = WQLObject.getWQLObject("stage"); +// JSONObject json = (JSONObject) JSONObject.toJSON(stageDto); +// wo.update(json); +// } +// +// @Override +// public StageDto findByCode(String code) { +// WQLObject wo = WQLObject.getWQLObject("stage"); +// JSONObject json = wo.query("stage_code ='" + code + "'").uniqueResult(0); +// final StageDto obj = json.toJavaObject(StageDto.class); +// return obj; +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/security/rest/MobileAuthorizationController.java b/lms/nladmin-system/src/main/java/org/nl/modules/security/rest/MobileAuthorizationController.java index d4fe8c8d6..c30e91bc3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/security/rest/MobileAuthorizationController.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/security/rest/MobileAuthorizationController.java @@ -1,90 +1,90 @@ -package org.nl.modules.security.rest; - -import cn.dev33.satoken.annotation.SaIgnore; -import cn.dev33.satoken.secure.SaSecureUtil; -import cn.dev33.satoken.stp.SaLoginModel; -import cn.dev33.satoken.stp.StpUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.modules.common.config.RsaProperties; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.common.utils.RedisUtils; -import org.nl.modules.common.utils.RsaUtils; -import org.nl.system.service.role.ISysRoleService; -import org.nl.system.service.secutiry.dto.AuthUserDto; -import org.nl.system.service.user.ISysUserService; -import org.nl.system.service.user.dao.SysUser; -import org.nl.system.service.user.dto.CurrentUser; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.servlet.http.HttpServletRequest; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author: lyd - * @description: 手持登录鉴权 - * @Date: 2022/10/10 - */ -@Slf4j -@RestController -@RequestMapping("/mobile/auth") -@RequiredArgsConstructor - -public class MobileAuthorizationController { - private final RedisUtils redisUtils; - private final ISysUserService userService; - private final ISysRoleService roleService; - - - @PostMapping(value = "/login") - @SaIgnore - public ResponseEntity login(@Validated @RequestBody AuthUserDto authUser, HttpServletRequest request) throws Exception { - // 密码解密 - 前端的加密规则: encrypt(根据实际更改) -// String password = authUser.getPassword(); - String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, authUser.getPassword()); - // 校验数据库 - // 根据用户名查询,在比对密码 - SysUser userDto = userService.getOne(new QueryWrapper().eq("username", authUser.getUsername()));// 拿不到已经抛出异常 - if (userDto == null || !userDto.getPassword().equals(SaSecureUtil.md5BySalt(password, "salt"))) { // 这里需要密码加密 - throw new BadRequestException("账号或密码错误"); - } - // 获取权限列表 - 登录查找权限 - List permissionList = roleService.getPermissionList(JSONObject.parseObject(JSON.toJSONString(userDto))); - - // 登录输入,登出删除 - CurrentUser user = new CurrentUser(); - user.setId(userDto.getUserId()); - user.setUsername(userDto.getUsername()); - user.setPresonName(userDto.getPersonName()); - user.setUser(userDto); - user.setPermissions(permissionList); - - // SaLoginModel 配置登录相关参数 - StpUtil.login(userDto.getUserId(), new SaLoginModel() - .setDevice("PE") // 此次登录的客户端设备类型, 用于[同端互斥登录]时指定此次登录的设备类型 - .setExtra("loginInfo", user) // Token挂载的扩展参数 (此方法只有在集成jwt插件时才会生效) - ); - - // 返回 token 与 用户信息 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("user", userDto); - Map authInfo = new HashMap(2) {{ - put("token", StpUtil.getTokenValue()); - put("user", jsonObject); - }}; - - redisUtils.set("pe-satoken", StpUtil.getTokenValue(), StpUtil.getTokenTimeout()); - - return ResponseEntity.ok(authInfo); - } -} +//package org.nl.modules.security.rest; +// +//import cn.dev33.satoken.annotation.SaIgnore; +//import cn.dev33.satoken.secure.SaSecureUtil; +//import cn.dev33.satoken.stp.SaLoginModel; +//import cn.dev33.satoken.stp.StpUtil; +//import com.alibaba.fastjson.JSON; +//import com.alibaba.fastjson.JSONObject; +//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.nl.common.utils.dto.CurrentUser; +//import org.nl.modules.common.config.RsaProperties; +//import org.nl.modules.common.exception.BadRequestException; +//import org.nl.modules.common.utils.RedisUtils; +//import org.nl.modules.common.utils.RsaUtils; +//import org.nl.system.service.role.ISysRoleService; +//import org.nl.system.service.secutiry.dto.AuthUserDto; +//import org.nl.system.service.user.ISysUserService; +//import org.nl.system.service.user.dao.SysUser; +//import org.springframework.http.ResponseEntity; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.PostMapping; +//import org.springframework.web.bind.annotation.RequestBody; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RestController; +// +//import javax.servlet.http.HttpServletRequest; +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +///** +// * @author: lyd +// * @description: 手持登录鉴权 +// * @Date: 2022/10/10 +// */ +//@Slf4j +//@RestController +//@RequestMapping("/mobile/auth") +//@RequiredArgsConstructor +// +//public class MobileAuthorizationController { +// private final RedisUtils redisUtils; +// private final ISysUserService userService; +// private final ISysRoleService roleService; +// +// +// @PostMapping(value = "/login") +// @SaIgnore +// public ResponseEntity login(@Validated @RequestBody AuthUserDto authUser, HttpServletRequest request) throws Exception { +// // 密码解密 - 前端的加密规则: encrypt(根据实际更改) +//// String password = authUser.getPassword(); +// String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, authUser.getPassword()); +// // 校验数据库 +// // 根据用户名查询,在比对密码 +// SysUser userDto = userService.getOne(new QueryWrapper().eq("username", authUser.getUsername()));// 拿不到已经抛出异常 +// if (userDto == null || !userDto.getPassword().equals(SaSecureUtil.md5BySalt(password, "salt"))) { // 这里需要密码加密 +// throw new BadRequestException("账号或密码错误"); +// } +// // 获取权限列表 - 登录查找权限 +// List permissionList = roleService.getPermissionList(JSONObject.parseObject(JSON.toJSONString(userDto))); +// +// // 登录输入,登出删除 +// CurrentUser user = new CurrentUser(); +// user.setId(userDto.getUser_id()); +// user.setUsername(userDto.getUsername()); +// user.setPresonName(userDto.getPerson_name()); +// user.setUser(userDto); +// user.setPermissions(permissionList); +// +// // SaLoginModel 配置登录相关参数 +// StpUtil.login(userDto.getUser_id(), new SaLoginModel() +// .setDevice("PE") // 此次登录的客户端设备类型, 用于[同端互斥登录]时指定此次登录的设备类型 +// .setExtra("loginInfo", user) // Token挂载的扩展参数 (此方法只有在集成jwt插件时才会生效) +// ); +// +// // 返回 token 与 用户信息 +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("user", userDto); +// Map authInfo = new HashMap(2) {{ +// put("token", StpUtil.getTokenValue()); +// put("user", jsonObject); +// }}; +// +// redisUtils.set("pe-satoken", StpUtil.getTokenValue(), StpUtil.getTokenTimeout()); +// +// return ResponseEntity.ok(authInfo); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/security/satoken/utils/FlushSessionUtil.java b/lms/nladmin-system/src/main/java/org/nl/modules/security/satoken/utils/FlushSessionUtil.java index ecfa84cca..5aa942024 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/security/satoken/utils/FlushSessionUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/security/satoken/utils/FlushSessionUtil.java @@ -3,9 +3,9 @@ package org.nl.modules.security.satoken.utils; import cn.dev33.satoken.stp.StpUtil; import lombok.RequiredArgsConstructor; import net.dreamlu.mica.core.utils.BeanUtil; +import org.nl.common.utils.dto.CurrentUser; +import org.nl.system.service.secutiry.dto.UserDto; import org.nl.system.service.user.dao.SysUser; -import org.nl.system.service.user.dto.CurrentUser; -import org.nl.system.service.user.dto.UserDto; import org.springframework.stereotype.Component; import java.util.List; diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/CodeDetailController.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/CodeDetailController.java index 9310fbca7..40da2ca0c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/CodeDetailController.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/CodeDetailController.java @@ -1,57 +1,57 @@ -package org.nl.modules.system.rest; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import org.nl.modules.logging.annotation.Log; -import org.nl.modules.system.service.CodeDetailService; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -@RestController - -@RequiredArgsConstructor -@RequestMapping("/api/codeDetail") -public class CodeDetailController { - - private final CodeDetailService codeDetailService; - - - @GetMapping - @SaCheckPermission("genCode:list") - public ResponseEntity queryAll(@RequestParam Map form, Pageable pageable) { - return new ResponseEntity<>(codeDetailService.queryAll(form, pageable), HttpStatus.OK); - } - - @Log("新增编码") - - @PostMapping - @SaCheckPermission("genCode:add") - public ResponseEntity create(@Validated @RequestBody Map form) { - codeDetailService.create(form); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @Log("删除编码") - - @DeleteMapping(value = "/{id}") - @SaCheckPermission("genCode:del") - public ResponseEntity delete(@PathVariable String id) { - codeDetailService.delete(id); - return new ResponseEntity<>(HttpStatus.OK); - } - - @Log("修改字典") - - @PutMapping - @SaCheckPermission("dict:edit") - public ResponseEntity update(@RequestBody JSONObject json) { - codeDetailService.update(json); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } -} +//package org.nl.modules.system.rest; +// +//import cn.dev33.satoken.annotation.SaCheckPermission; +//import com.alibaba.fastjson.JSONObject; +//import lombok.RequiredArgsConstructor; +//import org.nl.modules.logging.annotation.Log; +//import org.nl.modules.system.service.CodeDetailService; +//import org.springframework.data.domain.Pageable; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.ResponseEntity; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.*; +// +//import java.util.Map; +// +//@RestController +// +//@RequiredArgsConstructor +//@RequestMapping("/api/codeDetail") +//public class CodeDetailController { +// +// private final CodeDetailService codeDetailService; +// +// +// @GetMapping +// @SaCheckPermission("genCode:list") +// public ResponseEntity queryAll(@RequestParam Map form, Pageable pageable) { +// return new ResponseEntity<>(codeDetailService.queryAll(form, pageable), HttpStatus.OK); +// } +// +// @Log("新增编码") +// +// @PostMapping +// @SaCheckPermission("genCode:add") +// public ResponseEntity create(@Validated @RequestBody Map form) { +// codeDetailService.create(form); +// return new ResponseEntity<>(HttpStatus.CREATED); +// } +// +// @Log("删除编码") +// +// @DeleteMapping(value = "/{id}") +// @SaCheckPermission("genCode:del") +// public ResponseEntity delete(@PathVariable String id) { +// codeDetailService.delete(id); +// return new ResponseEntity<>(HttpStatus.OK); +// } +// +// @Log("修改字典") +// +// @PutMapping +// @SaCheckPermission("dict:edit") +// public ResponseEntity update(@RequestBody JSONObject json) { +// codeDetailService.update(json); +// return new ResponseEntity<>(HttpStatus.NO_CONTENT); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/GenCodeController.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/GenCodeController.java index 2617f6667..ef7a52aa2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/GenCodeController.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/GenCodeController.java @@ -1,67 +1,67 @@ -package org.nl.modules.system.rest; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import org.nl.modules.logging.annotation.Log; -import org.nl.modules.system.service.GenCodeService; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.io.IOException; -import java.util.Map; -import java.util.Set; - -@RestController - -@RequiredArgsConstructor -@RequestMapping("/api/genCode") -public class GenCodeController { - private final GenCodeService genCodeService; - - - @GetMapping - @SaCheckPermission("genCode:list") - public ResponseEntity queryAll(@RequestParam Map form, Pageable pageable) { - return new ResponseEntity<>(genCodeService.queryAll(form, pageable), HttpStatus.OK); - } - - @Log("新增编码") - - @PostMapping - @SaCheckPermission("genCode:add") - public ResponseEntity create(@Validated @RequestBody Map form) { - genCodeService.create(form); - - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @Log("删除编码") - - @DeleteMapping - @SaCheckPermission("genCode:del") - public ResponseEntity delete(@RequestBody Set ids) { - genCodeService.delete(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - - @Log("修改字典") - - @PutMapping - @SaCheckPermission("genCode:edit") - public ResponseEntity update(@RequestBody JSONObject json) { - genCodeService.update(json); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - - @GetMapping(value = "/codeDemo") - @SaCheckPermission("genCode:list") - public ResponseEntity CodeDemo(@RequestParam Map form) throws IOException { - return new ResponseEntity<>(genCodeService.codeDemo(form), HttpStatus.OK); - } - -} +//package org.nl.modules.system.rest; +// +//import cn.dev33.satoken.annotation.SaCheckPermission; +//import com.alibaba.fastjson.JSONObject; +//import lombok.RequiredArgsConstructor; +//import org.nl.modules.logging.annotation.Log; +//import org.nl.modules.system.service.GenCodeService; +//import org.springframework.data.domain.Pageable; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.ResponseEntity; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.*; +// +//import java.io.IOException; +//import java.util.Map; +//import java.util.Set; +// +//@RestController +// +//@RequiredArgsConstructor +//@RequestMapping("/api/genCode") +//public class GenCodeController { +// private final GenCodeService genCodeService; +// +// +// @GetMapping +// @SaCheckPermission("genCode:list") +// public ResponseEntity queryAll(@RequestParam Map form, Pageable pageable) { +// return new ResponseEntity<>(genCodeService.queryAll(form, pageable), HttpStatus.OK); +// } +// +// @Log("新增编码") +// +// @PostMapping +// @SaCheckPermission("genCode:add") +// public ResponseEntity create(@Validated @RequestBody Map form) { +// genCodeService.create(form); +// +// return new ResponseEntity<>(HttpStatus.CREATED); +// } +// +// @Log("删除编码") +// +// @DeleteMapping +// @SaCheckPermission("genCode:del") +// public ResponseEntity delete(@RequestBody Set ids) { +// genCodeService.delete(ids); +// return new ResponseEntity<>(HttpStatus.OK); +// } +// +// @Log("修改字典") +// +// @PutMapping +// @SaCheckPermission("genCode:edit") +// public ResponseEntity update(@RequestBody JSONObject json) { +// genCodeService.update(json); +// return new ResponseEntity<>(HttpStatus.NO_CONTENT); +// } +// +// +// @GetMapping(value = "/codeDemo") +// @SaCheckPermission("genCode:list") +// public ResponseEntity CodeDemo(@RequestParam Map form) throws IOException { +// return new ResponseEntity<>(genCodeService.codeDemo(form), HttpStatus.OK); +// } +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/MonitorController.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/MonitorController.java index 296aea6c1..0923ecea6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/MonitorController.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/MonitorController.java @@ -1,45 +1,45 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.system.rest; - - -import lombok.RequiredArgsConstructor; -import org.nl.modules.system.service.MonitorService; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author Zheng Jie - * @date 2020-05-02 - */ -@RestController -@RequiredArgsConstructor - -@RequestMapping("/api/monitor") -public class MonitorController { - - private final MonitorService serverService; - - @GetMapping - -// @SaCheckPermission("monitor:list") - public ResponseEntity query() { - return new ResponseEntity<>(serverService.getServers(), HttpStatus.OK); - } -} +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.system.rest; +// +// +//import lombok.RequiredArgsConstructor; +//import org.nl.modules.system.service.MonitorService; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.ResponseEntity; +//import org.springframework.web.bind.annotation.GetMapping; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RestController; +// +///** +// * @author Zheng Jie +// * @date 2020-05-02 +// */ +//@RestController +//@RequiredArgsConstructor +// +//@RequestMapping("/api/monitor") +//public class MonitorController { +// +// private final MonitorService serverService; +// +// @GetMapping +// +//// @SaCheckPermission("monitor:list") +// public ResponseEntity query() { +// return new ResponseEntity<>(serverService.getServers(), HttpStatus.OK); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/RedisController.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/RedisController.java index 505c4aa1e..4fd49bb89 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/RedisController.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/rest/RedisController.java @@ -1,56 +1,56 @@ -package org.nl.modules.system.rest; - - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.modules.logging.annotation.Log; -import org.nl.modules.system.service.RedisService; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -/** - * @Author: lyd - * @Description: Redis监控管理 - * @Date: 2022-08-04 - */ -@RestController -@RequiredArgsConstructor - -@RequestMapping("/api/redis") -@Slf4j -public class RedisController { - - private final RedisService redisService; - - @GetMapping("/get-monitor-info") - @Log("查询redis的信息") - - public ResponseEntity getRedisMonitorInfo() { - return new ResponseEntity<>(redisService.getRedisMonitorInfo(), HttpStatus.OK); - } - - @GetMapping("/get-key-define-list") - @Log("获得 Redis Key 模板列表") - - public ResponseEntity getKeyDefineList() { - return new ResponseEntity<>(redisService.getKeyDefineList(), HttpStatus.OK); - } - - @GetMapping("/get-key-value-list") - @Log("获得 Redis Key Value列表") - - public ResponseEntity getKeyValueList() { - return new ResponseEntity<>(redisService.getKeyValueList(), HttpStatus.OK); - } - - @Log("根据key删除Redis数据") - - @DeleteMapping - public ResponseEntity deleteByKey(@RequestBody String[] ids) { - redisService.deleteByKey(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - - -} +//package org.nl.modules.system.rest; +// +// +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.nl.modules.logging.annotation.Log; +//import org.nl.modules.system.service.RedisService; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.ResponseEntity; +//import org.springframework.web.bind.annotation.*; +// +///** +// * @Author: lyd +// * @Description: Redis监控管理 +// * @Date: 2022-08-04 +// */ +//@RestController +//@RequiredArgsConstructor +// +//@RequestMapping("/api/redis") +//@Slf4j +//public class RedisController { +// +// private final RedisService redisService; +// +// @GetMapping("/get-monitor-info") +// @Log("查询redis的信息") +// +// public ResponseEntity getRedisMonitorInfo() { +// return new ResponseEntity<>(redisService.getRedisMonitorInfo(), HttpStatus.OK); +// } +// +// @GetMapping("/get-key-define-list") +// @Log("获得 Redis Key 模板列表") +// +// public ResponseEntity getKeyDefineList() { +// return new ResponseEntity<>(redisService.getKeyDefineList(), HttpStatus.OK); +// } +// +// @GetMapping("/get-key-value-list") +// @Log("获得 Redis Key Value列表") +// +// public ResponseEntity getKeyValueList() { +// return new ResponseEntity<>(redisService.getKeyValueList(), HttpStatus.OK); +// } +// +// @Log("根据key删除Redis数据") +// +// @DeleteMapping +// public ResponseEntity deleteByKey(@RequestBody String[] ids) { +// redisService.deleteByKey(ids); +// return new ResponseEntity<>(HttpStatus.OK); +// } +// +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/CodeDetailService.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/CodeDetailService.java index b5cc6f1b8..d9ea4398c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/CodeDetailService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/CodeDetailService.java @@ -1,23 +1,23 @@ -package org.nl.modules.system.service; - -import com.alibaba.fastjson.JSONObject; -import org.springframework.data.domain.Pageable; - -import java.util.Map; - -public interface CodeDetailService { - /** - * 分页查询 - * - * @param form 条件 - * @param pageable 分页参数 - * @return / - */ - JSONObject queryAll(Map form, Pageable pageable); - - public void create(Map form); - - public void delete(String id); - - public void update(JSONObject json); -} +//package org.nl.modules.system.service; +// +//import com.alibaba.fastjson.JSONObject; +//import org.springframework.data.domain.Pageable; +// +//import java.util.Map; +// +//public interface CodeDetailService { +// /** +// * 分页查询 +// * +// * @param form 条件 +// * @param pageable 分页参数 +// * @return / +// */ +// JSONObject queryAll(Map form, Pageable pageable); +// +// public void create(Map form); +// +// public void delete(String id); +// +// public void update(JSONObject json); +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/DataService.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/DataService.java index d4a39995e..6b308615d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/DataService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/DataService.java @@ -1,37 +1,37 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.system.service; - -import org.nl.system.service.user.dto.UserDto; - -import java.util.List; - -/** - * 数据权限服务类 - * - * @author Zheng Jie - * @date 2020-05-07 - */ -public interface DataService { - - /** - * 获取数据权限 - * - * @param user / - * @return / - */ - List getDeptIds(UserDto user); -} +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.system.service; +// +//import org.nl.system.service.user.dto.UserDto; +// +//import java.util.List; +// +///** +// * 数据权限服务类 +// * +// * @author Zheng Jie +// * @date 2020-05-07 +// */ +//public interface DataService { +// +// /** +// * 获取数据权限 +// * +// * @param user / +// * @return / +// */ +// List getDeptIds(UserDto user); +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/GenCodeService.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/GenCodeService.java index 0a2f9f0b6..4dde92a65 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/GenCodeService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/GenCodeService.java @@ -1,50 +1,50 @@ -package org.nl.modules.system.service; - -import com.alibaba.fastjson.JSONObject; -import org.springframework.data.domain.Pageable; - -import java.util.Map; -import java.util.Set; - -public interface GenCodeService { - /** - * 分页查询 - * - * @param form 条件 - * @param pageable 分页参数 - * @return / - */ - JSONObject queryAll(Map form, Pageable pageable); - - /** - * 新增编码 - * - * @param form - */ - public void create(Map form); - - /** - * 删除编码 - * - * @param ids - */ - public void delete(Set ids); - - /** - * 更新编码 - * - * @param json - */ - public void update(JSONObject json); - - public String codeDemo(Map form); - - /** - * 根据编码获取id - * - * @param code - * @return - */ - public String queryIdByCode(String code); - -} +//package org.nl.modules.system.service; +// +//import com.alibaba.fastjson.JSONObject; +//import org.springframework.data.domain.Pageable; +// +//import java.util.Map; +//import java.util.Set; +// +//public interface GenCodeService { +// /** +// * 分页查询 +// * +// * @param form 条件 +// * @param pageable 分页参数 +// * @return / +// */ +// JSONObject queryAll(Map form, Pageable pageable); +// +// /** +// * 新增编码 +// * +// * @param form +// */ +// public void create(Map form); +// +// /** +// * 删除编码 +// * +// * @param ids +// */ +// public void delete(Set ids); +// +// /** +// * 更新编码 +// * +// * @param json +// */ +// public void update(JSONObject json); +// +// public String codeDemo(Map form); +// +// /** +// * 根据编码获取id +// * +// * @param code +// * @return +// */ +// public String queryIdByCode(String code); +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/MonitorService.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/MonitorService.java index d6d187e78..8f4f5362f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/MonitorService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/MonitorService.java @@ -1,32 +1,32 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.system.service; - -import java.util.Map; - -/** - * @author Zheng Jie - * @date 2020-05-02 - */ -public interface MonitorService { - - /** - * 查询数据分页 - * - * @return Map - */ - Map getServers(); -} +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.system.service; +// +//import java.util.Map; +// +///** +// * @author Zheng Jie +// * @date 2020-05-02 +// */ +//public interface MonitorService { +// +// /** +// * 查询数据分页 +// * +// * @return Map +// */ +// Map getServers(); +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/ParamService.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/ParamService.java index dbe60d407..969062051 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/ParamService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/ParamService.java @@ -1,81 +1,81 @@ -package org.nl.modules.system.service; - -import org.nl.modules.system.service.dto.ParamDto; -import org.springframework.data.domain.Pageable; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.List; -import java.util.Map; - -/** - * @author ldjun - * @description 服务接口 - * @date 2021-03-16 - **/ -public interface ParamService { - - /** - * 查询数据分页 - * - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map queryAll(Map whereJson, Pageable page); - - /** - * 查询所有数据不分页 - * - * @param whereJson 条件参数 - * @return List - */ - List queryAll(Map whereJson); - - /** - * 根据ID查询 - * - * @param id ID - * @return Param - */ - ParamDto findById(String id); - - /** - * 根据编码查询 - * - * @param code code - * @return Param - */ - ParamDto findByCode(String code); - - - /** - * 创建 - * - * @param dto / - */ - void create(ParamDto dto); - - /** - * 编辑 - * - * @param dto / - */ - void update(ParamDto dto); - - /** - * 多选删除 - * - * @param ids / - */ - void deleteAll(String[] ids); - - /** - * 导出数据 - * - * @param dtos 待导出的数据 - * @param response / - * @throws IOException / - */ - void download(List dtos, HttpServletResponse response) throws IOException; -} +//package org.nl.modules.system.service; +// +//import org.nl.modules.system.service.dto.ParamDto; +//import org.springframework.data.domain.Pageable; +// +//import javax.servlet.http.HttpServletResponse; +//import java.io.IOException; +//import java.util.List; +//import java.util.Map; +// +///** +// * @author ldjun +// * @description 服务接口 +// * @date 2021-03-16 +// **/ +//public interface ParamService { +// +// /** +// * 查询数据分页 +// * +// * @param whereJson 条件 +// * @param page 分页参数 +// * @return Map +// */ +// Map queryAll(Map whereJson, Pageable page); +// +// /** +// * 查询所有数据不分页 +// * +// * @param whereJson 条件参数 +// * @return List +// */ +// List queryAll(Map whereJson); +// +// /** +// * 根据ID查询 +// * +// * @param id ID +// * @return Param +// */ +// ParamDto findById(String id); +// +// /** +// * 根据编码查询 +// * +// * @param code code +// * @return Param +// */ +// ParamDto findByCode(String code); +// +// +// /** +// * 创建 +// * +// * @param dto / +// */ +// void create(ParamDto dto); +// +// /** +// * 编辑 +// * +// * @param dto / +// */ +// void update(ParamDto dto); +// +// /** +// * 多选删除 +// * +// * @param ids / +// */ +// void deleteAll(String[] ids); +// +// /** +// * 导出数据 +// * +// * @param dtos 待导出的数据 +// * @param response / +// * @throws IOException / +// */ +// void download(List dtos, HttpServletResponse response) throws IOException; +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/RedisService.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/RedisService.java index 015fcc5e3..61b10aa7b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/RedisService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/RedisService.java @@ -1,39 +1,39 @@ -package org.nl.modules.system.service; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; - -/** - * @Author: lyd - * @Description: Redis监控的服务 - * @Date: 2022-08-04 - */ -public interface RedisService { - /** - * 获取redis的信息 - * - * @return - */ - JSONObject getRedisMonitorInfo(); - - /** - * 获得 Redis Key 模板列表 - * - * @return - */ - JSONObject getKeyDefineList(); - - /** - * 获取所有的键值信息 - * - * @return - */ - JSONArray getKeyValueList(); - - /** - * 删除redis缓存数据 - * - * @param ids - */ - void deleteByKey(String[] ids); -} +//package org.nl.modules.system.service; +// +//import com.alibaba.fastjson.JSONArray; +//import com.alibaba.fastjson.JSONObject; +// +///** +// * @Author: lyd +// * @Description: Redis监控的服务 +// * @Date: 2022-08-04 +// */ +//public interface RedisService { +// /** +// * 获取redis的信息 +// * +// * @return +// */ +// JSONObject getRedisMonitorInfo(); +// +// /** +// * 获得 Redis Key 模板列表 +// * +// * @return +// */ +// JSONObject getKeyDefineList(); +// +// /** +// * 获取所有的键值信息 +// * +// * @return +// */ +// JSONArray getKeyValueList(); +// +// /** +// * 删除redis缓存数据 +// * +// * @param ids +// */ +// void deleteByKey(String[] ids); +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/convert/RedisConvert.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/convert/RedisConvert.java index d03c81500..d0e739b3b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/convert/RedisConvert.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/convert/RedisConvert.java @@ -1,36 +1,36 @@ -package org.nl.modules.system.service.convert; - -import cn.hutool.core.util.StrUtil; -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; -import org.nl.modules.system.service.vo.RedisMonitorRespVO; - -import java.util.ArrayList; -import java.util.Properties; - -/** - * @Author: lyd - * @Description: redis---Spring Boot 对象转换 MapStruct - * @Date: 2022-08-04 - */ -@Mapper -public interface RedisConvert { - - RedisConvert INSTANCE = Mappers.getMapper(RedisConvert.class); - - default RedisMonitorRespVO build(Properties info, Long dbSize, Properties commandStats) { - RedisMonitorRespVO respVO = RedisMonitorRespVO.builder().info(info).dbSize(dbSize) - .commandStats(new ArrayList<>(commandStats.size())).build(); - commandStats.forEach((key, value) -> { - respVO.getCommandStats().add(RedisMonitorRespVO.CommandStat.builder() - .command(StrUtil.subAfter((String) key, "cmdstat_", false)) - .calls(Integer.valueOf(StrUtil.subBetween((String) value, "calls=", ","))) - .usec(Long.valueOf(StrUtil.subBetween((String) value, "usec=", ","))) - .build()); - }); - return respVO; - } - -// List convertList(List list); - -} +//package org.nl.modules.system.service.convert; +// +//import cn.hutool.core.util.StrUtil; +//import org.mapstruct.Mapper; +//import org.mapstruct.factory.Mappers; +//import org.nl.modules.system.service.vo.RedisMonitorRespVO; +// +//import java.util.ArrayList; +//import java.util.Properties; +// +///** +// * @Author: lyd +// * @Description: redis---Spring Boot 对象转换 MapStruct +// * @Date: 2022-08-04 +// */ +//@Mapper +//public interface RedisConvert { +// +// RedisConvert INSTANCE = Mappers.getMapper(RedisConvert.class); +// +// default RedisMonitorRespVO build(Properties info, Long dbSize, Properties commandStats) { +// RedisMonitorRespVO respVO = RedisMonitorRespVO.builder().info(info).dbSize(dbSize) +// .commandStats(new ArrayList<>(commandStats.size())).build(); +// commandStats.forEach((key, value) -> { +// respVO.getCommandStats().add(RedisMonitorRespVO.CommandStat.builder() +// .command(StrUtil.subAfter((String) key, "cmdstat_", false)) +// .calls(Integer.valueOf(StrUtil.subBetween((String) value, "calls=", ","))) +// .usec(Long.valueOf(StrUtil.subBetween((String) value, "usec=", ","))) +// .build()); +// }); +// return respVO; +// } +// +//// List convertList(List list); +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/dto/ParamDto.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/dto/ParamDto.java index 22204bcf9..646dcee07 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/dto/ParamDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/dto/ParamDto.java @@ -1,40 +1,40 @@ -package org.nl.modules.system.service.dto; - -import lombok.Data; - -import java.io.Serializable; - -/** - * @author ldjun - * @description / - * @date 2021-01-14 - **/ -@Data -public class ParamDto implements Serializable { - - private String id; - - private String code; - - private String name; - - private String value; - - private String remark; - - private String is_active; - - private String is_delete; - - private String create_id; - - private String update_optid; - - private String create_name; - - private String create_time; - - private String update_optname; - - private String update_time; -} +//package org.nl.modules.system.service.dto; +// +//import lombok.Data; +// +//import java.io.Serializable; +// +///** +// * @author ldjun +// * @description / +// * @date 2021-01-14 +// **/ +//@Data +//public class ParamDto implements Serializable { +// +// private String id; +// +// private String code; +// +// private String name; +// +// private String value; +// +// private String remark; +// +// private String is_active; +// +// private String is_delete; +// +// private String create_id; +// +// private String update_optid; +// +// private String create_name; +// +// private String create_time; +// +// private String update_optname; +// +// private String update_time; +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/entity/RedisKeyDefine.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/entity/RedisKeyDefine.java index 6b2b176bc..63b69c759 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/entity/RedisKeyDefine.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/entity/RedisKeyDefine.java @@ -1,112 +1,112 @@ -package org.nl.modules.system.service.entity; - -import com.fasterxml.jackson.annotation.JsonValue; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.Getter; - -import java.time.Duration; - -/** - * @Author: lyd - * @Description: Redis Key 定义类 - * @Date: 2022-08-04 - */ -@Data -public class RedisKeyDefine { - - @Getter - @AllArgsConstructor - public enum KeyTypeEnum { - - STRING("String"), - LIST("List"), - HASH("Hash"), - SET("Set"), - ZSET("Sorted Set"), - STREAM("Stream"), - PUBSUB("Pub/Sub"); - - /** - * 类型 - */ - @JsonValue - private final String type; - - } - - @Getter - @AllArgsConstructor - public enum TimeoutTypeEnum { - - FOREVER(1), // 永不超时 - DYNAMIC(2), // 动态超时 - FIXED(3); // 固定超时 - - /** - * 类型 - */ - @JsonValue - private final Integer type; - - } - - /** - * Key 模板 - */ - private final String keyTemplate; - /** - * Key 类型的枚举 - */ - private final KeyTypeEnum keyType; - /** - * Value 类型 - *

- * 如果是使用分布式锁,设置为 {@link java.util.concurrent.locks.Lock} 类型 - */ - private final Class valueType; - /** - * 超时类型 - */ - private final TimeoutTypeEnum timeoutType; - /** - * 过期时间 - */ - private final Duration timeout; - /** - * 备注 - */ - private final String memo; - - private RedisKeyDefine(String memo, String keyTemplate, KeyTypeEnum keyType, Class valueType, - TimeoutTypeEnum timeoutType, Duration timeout) { - this.memo = memo; - this.keyTemplate = keyTemplate; - this.keyType = keyType; - this.valueType = valueType; - this.timeout = timeout; - this.timeoutType = timeoutType; - // 添加注册表 - RedisKeyRegistry.add(this); - } - - public RedisKeyDefine(String memo, String keyTemplate, KeyTypeEnum keyType, Class valueType, Duration timeout) { - this(memo, keyTemplate, keyType, valueType, TimeoutTypeEnum.FIXED, timeout); - } - - public RedisKeyDefine(String memo, String keyTemplate, KeyTypeEnum keyType, Class valueType, TimeoutTypeEnum timeoutType) { - this(memo, keyTemplate, keyType, valueType, timeoutType, Duration.ZERO); - } - - /** - * 格式化 Key - *

- * 注意,内部采用 {@link String#format(String, Object...)} 实现 - * - * @param args 格式化的参数 - * @return Key - */ - public String formatKey(Object... args) { - return String.format(keyTemplate, args); - } -} +//package org.nl.modules.system.service.entity; +// +//import com.fasterxml.jackson.annotation.JsonValue; +//import lombok.AllArgsConstructor; +//import lombok.Data; +//import lombok.Getter; +// +//import java.time.Duration; +// +///** +// * @Author: lyd +// * @Description: Redis Key 定义类 +// * @Date: 2022-08-04 +// */ +//@Data +//public class RedisKeyDefine { +// +// @Getter +// @AllArgsConstructor +// public enum KeyTypeEnum { +// +// STRING("String"), +// LIST("List"), +// HASH("Hash"), +// SET("Set"), +// ZSET("Sorted Set"), +// STREAM("Stream"), +// PUBSUB("Pub/Sub"); +// +// /** +// * 类型 +// */ +// @JsonValue +// private final String type; +// +// } +// +// @Getter +// @AllArgsConstructor +// public enum TimeoutTypeEnum { +// +// FOREVER(1), // 永不超时 +// DYNAMIC(2), // 动态超时 +// FIXED(3); // 固定超时 +// +// /** +// * 类型 +// */ +// @JsonValue +// private final Integer type; +// +// } +// +// /** +// * Key 模板 +// */ +// private final String keyTemplate; +// /** +// * Key 类型的枚举 +// */ +// private final KeyTypeEnum keyType; +// /** +// * Value 类型 +// *

+// * 如果是使用分布式锁,设置为 {@link java.util.concurrent.locks.Lock} 类型 +// */ +// private final Class valueType; +// /** +// * 超时类型 +// */ +// private final TimeoutTypeEnum timeoutType; +// /** +// * 过期时间 +// */ +// private final Duration timeout; +// /** +// * 备注 +// */ +// private final String memo; +// +// private RedisKeyDefine(String memo, String keyTemplate, KeyTypeEnum keyType, Class valueType, +// TimeoutTypeEnum timeoutType, Duration timeout) { +// this.memo = memo; +// this.keyTemplate = keyTemplate; +// this.keyType = keyType; +// this.valueType = valueType; +// this.timeout = timeout; +// this.timeoutType = timeoutType; +// // 添加注册表 +// RedisKeyRegistry.add(this); +// } +// +// public RedisKeyDefine(String memo, String keyTemplate, KeyTypeEnum keyType, Class valueType, Duration timeout) { +// this(memo, keyTemplate, keyType, valueType, TimeoutTypeEnum.FIXED, timeout); +// } +// +// public RedisKeyDefine(String memo, String keyTemplate, KeyTypeEnum keyType, Class valueType, TimeoutTypeEnum timeoutType) { +// this(memo, keyTemplate, keyType, valueType, timeoutType, Duration.ZERO); +// } +// +// /** +// * 格式化 Key +// *

+// * 注意,内部采用 {@link String#format(String, Object...)} 实现 +// * +// * @param args 格式化的参数 +// * @return Key +// */ +// public String formatKey(Object... args) { +// return String.format(keyTemplate, args); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/entity/RedisKeyRegistry.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/entity/RedisKeyRegistry.java index 8b5bb264f..6e5d0bcc8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/entity/RedisKeyRegistry.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/entity/RedisKeyRegistry.java @@ -1,28 +1,28 @@ -package org.nl.modules.system.service.entity; - -import java.util.ArrayList; -import java.util.List; - -/** - * @Author: lyd - * @Description: {@link RedisKeyDefine} 注册表 - * @Date: 2022-08-04 - */ -public class RedisKeyRegistry { - /** - * Redis RedisKeyDefine 数组 - */ - private static final List defines = new ArrayList<>(); - - public static void add(RedisKeyDefine define) { - defines.add(define); - } - - public static List list() { - return defines; - } - - public static int size() { - return defines.size(); - } -} +//package org.nl.modules.system.service.entity; +// +//import java.util.ArrayList; +//import java.util.List; +// +///** +// * @Author: lyd +// * @Description: {@link RedisKeyDefine} 注册表 +// * @Date: 2022-08-04 +// */ +//public class RedisKeyRegistry { +// /** +// * Redis RedisKeyDefine 数组 +// */ +// private static final List defines = new ArrayList<>(); +// +// public static void add(RedisKeyDefine define) { +// defines.add(define); +// } +// +// public static List list() { +// return defines; +// } +// +// public static int size() { +// return defines.size(); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/CodeDetailServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/CodeDetailServiceImpl.java index 500e84950..f2c32bd0c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/CodeDetailServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/CodeDetailServiceImpl.java @@ -1,80 +1,80 @@ -package org.nl.modules.system.service.impl; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import org.nl.common.utils.SecurityUtils; -import org.nl.modules.system.service.CodeDetailService; -import org.nl.modules.wql.core.bean.ResultBean; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.WqlUtil; -import org.springframework.cache.annotation.CacheConfig; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import java.util.Date; -import java.util.Map; - -@Service -@RequiredArgsConstructor -@CacheConfig(cacheNames = "codeDetail") -public class CodeDetailServiceImpl implements CodeDetailService { - @Override - public JSONObject queryAll(Map form, Pageable pageable) { - String where = "code_rule_id = '" + form.get("id") + "'"; - ResultBean rb = WQLObject.getWQLObject("sys_code_rule_detail").pagequery(WqlUtil.getHttpContext(pageable), where, "sort_num desc "); - final JSONObject json = rb.pageResult(); - return json; - } - - @Override - public void create(Map form) { - JSONObject json = new JSONObject(); - String id = IdUtil.simpleUUID(); - String now = DateUtil.now(); - json.put("id", id); - json.put("type", form.get("type")); - json.put("init_value", form.get("init_value")); - json.put("current_value", form.get("init_value")); - json.put("max_value", form.get("max_value")); - json.put("step", form.get("step")); - json.put("fillchar", form.get("fillchar")); - json.put("format", form.get("format")); - json.put("length", form.get("length")); - json.put("sort_num", form.get("sort_num") + ""); - json.put("remark", form.get("remark")); - Map dict = (Map) form.get("dict"); - json.put("code_rule_id", dict.get("id")); - json.put("is_active", "1"); - json.put("is_delete", "0"); - json.put("create_id", SecurityUtils.getCurrentUserId()); - json.put("create_name", SecurityUtils.getCurrentNickName()); - json.put("create_time", now); - json.put("update_id", SecurityUtils.getCurrentUserId()); - json.put("update_name", SecurityUtils.getCurrentNickName()); - json.put("update_time", now); - if (form.get("type").equals("02")) { - Date date = DateUtil.date(); - String format = (String) form.get("format"); - String now_date = DateUtil.format(date, format); - json.put("init_value", now_date); - json.put("current_value", now_date); - } - WQLObject.getWQLObject("sys_code_rule_detail").insert(json); - } - - @Override - public void delete(String id) { - WQLObject.getWQLObject("sys_code_rule_detail").delete("id = '" + id + "'"); - } - - @Override - public void update(JSONObject json) { - String now = DateUtil.now(); - json.put("update_time", now); - json.put("update_id", SecurityUtils.getCurrentUserId()); - json.put("update_name", SecurityUtils.getCurrentNickName()); - WQLObject.getWQLObject("sys_code_rule_detail").update(json); - } -} +//package org.nl.modules.system.service.impl; +// +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.util.IdUtil; +//import com.alibaba.fastjson.JSONObject; +//import lombok.RequiredArgsConstructor; +//import org.nl.common.utils.SecurityUtils; +//import org.nl.modules.system.service.CodeDetailService; +//import org.nl.modules.wql.core.bean.ResultBean; +//import org.nl.modules.wql.core.bean.WQLObject; +//import org.nl.modules.wql.util.WqlUtil; +//import org.springframework.cache.annotation.CacheConfig; +//import org.springframework.data.domain.Pageable; +//import org.springframework.stereotype.Service; +// +//import java.util.Date; +//import java.util.Map; +// +//@Service +//@RequiredArgsConstructor +//@CacheConfig(cacheNames = "codeDetail") +//public class CodeDetailServiceImpl implements CodeDetailService { +// @Override +// public JSONObject queryAll(Map form, Pageable pageable) { +// String where = "code_rule_id = '" + form.get("id") + "'"; +// ResultBean rb = WQLObject.getWQLObject("sys_code_rule_detail").pagequery(WqlUtil.getHttpContext(pageable), where, "sort_num desc "); +// final JSONObject json = rb.pageResult(); +// return json; +// } +// +// @Override +// public void create(Map form) { +// JSONObject json = new JSONObject(); +// String id = IdUtil.simpleUUID(); +// String now = DateUtil.now(); +// json.put("id", id); +// json.put("type", form.get("type")); +// json.put("init_value", form.get("init_value")); +// json.put("current_value", form.get("init_value")); +// json.put("max_value", form.get("max_value")); +// json.put("step", form.get("step")); +// json.put("fillchar", form.get("fillchar")); +// json.put("format", form.get("format")); +// json.put("length", form.get("length")); +// json.put("sort_num", form.get("sort_num") + ""); +// json.put("remark", form.get("remark")); +// Map dict = (Map) form.get("dict"); +// json.put("code_rule_id", dict.get("id")); +// json.put("is_active", "1"); +// json.put("is_delete", "0"); +// json.put("create_id", SecurityUtils.getCurrentUserId()); +// json.put("create_name", SecurityUtils.getCurrentNickName()); +// json.put("create_time", now); +// json.put("update_id", SecurityUtils.getCurrentUserId()); +// json.put("update_name", SecurityUtils.getCurrentNickName()); +// json.put("update_time", now); +// if (form.get("type").equals("02")) { +// Date date = DateUtil.date(); +// String format = (String) form.get("format"); +// String now_date = DateUtil.format(date, format); +// json.put("init_value", now_date); +// json.put("current_value", now_date); +// } +// WQLObject.getWQLObject("sys_code_rule_detail").insert(json); +// } +// +// @Override +// public void delete(String id) { +// WQLObject.getWQLObject("sys_code_rule_detail").delete("id = '" + id + "'"); +// } +// +// @Override +// public void update(JSONObject json) { +// String now = DateUtil.now(); +// json.put("update_time", now); +// json.put("update_id", SecurityUtils.getCurrentUserId()); +// json.put("update_name", SecurityUtils.getCurrentNickName()); +// WQLObject.getWQLObject("sys_code_rule_detail").update(json); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/GenCodeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/GenCodeServiceImpl.java index a13f3535a..3b3d29f23 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/GenCodeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/GenCodeServiceImpl.java @@ -1,184 +1,184 @@ -package org.nl.modules.system.service.impl; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import org.nl.common.utils.SecurityUtils; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.system.service.GenCodeService; -import org.nl.modules.wql.core.bean.ResultBean; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.WqlUtil; -import org.springframework.cache.annotation.CacheConfig; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import javax.transaction.Transactional; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -@Service -@RequiredArgsConstructor -@CacheConfig(cacheNames = "genCode") -public class GenCodeServiceImpl implements GenCodeService { - @Override - public JSONObject queryAll(Map form, Pageable pageable) { - String where = "1=1"; - if (form.get("blurry") != null) { - where = "code like '%" + (String) form.get("blurry") + "%' OR name = '%" + form.get("blurry") + "%'"; - } - ResultBean rb = WQLObject.getWQLObject("sys_code_rule").pagequery(WqlUtil.getHttpContext(pageable), where, "code desc "); - final JSONObject json = rb.pageResult(); - JSONArray ja = json.getJSONArray("content"); - JSONArray new_ja = new JSONArray(); - for (int i = 0; i < ja.size(); i++) { - JSONObject jo = ja.getJSONObject(i); - HashMap map = new HashMap(); - map.put("code", jo.getString("code")); - map.put("flag", "0"); - String demo = this.codeDemo(map); - jo.put("demo", demo); - new_ja.add(jo); - } - json.put("content", new_ja); - return json; - } - - @Override - public void create(Map form) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String currentUsername = SecurityUtils.getCurrentUsername(); - WQLObject wql = WQLObject.getWQLObject("sys_code_rule"); - JSONObject json = new JSONObject(); - String id = IdUtil.simpleUUID(); - String now = DateUtil.now(); - String code = (String) form.get("code"); - JSONObject jo = wql.query("code = '" + code + "'").uniqueResult(0); - if (jo != null) { - throw new BadRequestException("该编码code已存在,请校验!"); - } - json.put("id", id); - json.put("code", form.get("code")); - json.put("name", form.get("name")); - json.put("create_id", currentUserId); - json.put("update_optid", currentUserId); - json.put("create_name", currentUsername); - json.put("update_optname", currentUsername); - json.put("create_time", now); - json.put("update_time", now); - WQLObject.getWQLObject("sys_code_rule").insert(json); - } - - @Override - public void delete(Set ids) { - for (String code : ids) { - WQLObject.getWQLObject("sys_code_rule").delete("id = '" + code + "'"); - WQLObject.getWQLObject("sys_code_rule_detail").delete("code_rule_id = '" + code + "'"); - } - } - - @Override - public void update(JSONObject json) { - WQLObject wql = WQLObject.getWQLObject("sys_code_rule"); - String code = json.getString("code"); - String id = json.getString("id"); - JSONObject jo = wql.query("id<>'" + id + "code = '" + code + "'").uniqueResult(0); - if (jo != null) { - throw new BadRequestException("该编码code已存在,请校验!"); - } - String now = DateUtil.now(); - json.put("update_optid", SecurityUtils.getCurrentUserId()); - json.put("update_time", now); - json.put("update_optname", SecurityUtils.getCurrentUsername()); - WQLObject.getWQLObject("sys_code_rule").update(json); - } - - @Override - @Transactional(Transactional.TxType.REQUIRES_NEW) - public String codeDemo(Map form) { - String code = (String) form.get("code"); - String id = this.queryIdByCode(code); - //如果flag=1就执行更新数据库的操作 - String flag = (String) form.get("flag"); - WQLObject wo = WQLObject.getWQLObject("sys_code_rule_detail"); - JSONArray ja = wo.query("code_rule_id = '" + id + "' order by sort_num FOR UPDATE").getResultJSONArray(0); - String demo = ""; - boolean is_same = true; - for (int i = 0; i < ja.size(); i++) { - String value = ""; - JSONObject jo = ja.getJSONObject(i); - //固定直接取值 - if (jo.getString("type").equals("01")) { - value = jo.getString("init_value"); - } - //日期判断数据库的值与当前值是否相同来决定顺序的值 - if (jo.getString("type").equals("02")) { - String current_value = jo.getString("current_value"); - Date date = DateUtil.date(); - String format = jo.getString("format"); - String now_date = DateUtil.format(date, format); - if (!now_date.equals(current_value)) { - is_same = false; - } - if (flag.equals("1")) { - jo.put("init_value", now_date); - jo.put("current_value", now_date); - } - value = now_date; - } - //顺序的值:如果日期一样就+步长,等于最大值就归为初始值;日期不一样就归为初始值 - if (jo.getString("type").equals("03")) { - String num_value = ""; - int step = jo.getInteger("step"); - Long max_value = jo.getLong("max_value"); - if (!is_same || (jo.getLongValue("current_value") + step > max_value)) { - num_value = jo.getString("init_value"); - } else { - num_value = (jo.getInteger("current_value") + step) + ""; - } - int size = num_value.length(); - int length = jo.getInteger("length"); - String fillchar = jo.getString("fillchar"); - for (int m = 0; m < (length - size); m++) { - value += fillchar; - } - value += num_value; - if (flag.equals("1")) { - if (!is_same) { - int init_value = jo.getInteger("init_value"); - if (StrUtil.isEmpty((init_value + ""))) { - throw new BadRequestException("请完善编码数值的初始值!"); - } - jo.put("current_value", init_value + ""); - } else { - int num_curr = jo.getInteger("current_value"); - if (num_curr >= max_value) { - num_curr = jo.getInteger("init_value"); - jo.put("current_value", num_curr + ""); - } else { - jo.put("current_value", (num_curr + step) + ""); - } - } - } - } - demo += value; - if (flag.equals("1")) { - wo.update(jo); - } - } - return demo; - } - - @Override - public String queryIdByCode(String code) { - JSONObject jo = WQLObject.getWQLObject("sys_code_rule").query("code = '" + code + "'").uniqueResult(0); - String id = jo.getString("id"); - return id; - } - -} +//package org.nl.modules.system.service.impl; +// +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.util.IdUtil; +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.JSONArray; +//import com.alibaba.fastjson.JSONObject; +//import lombok.RequiredArgsConstructor; +//import org.nl.common.utils.SecurityUtils; +//import org.nl.modules.common.exception.BadRequestException; +//import org.nl.modules.system.service.GenCodeService; +//import org.nl.modules.wql.core.bean.ResultBean; +//import org.nl.modules.wql.core.bean.WQLObject; +//import org.nl.modules.wql.util.WqlUtil; +//import org.springframework.cache.annotation.CacheConfig; +//import org.springframework.data.domain.Pageable; +//import org.springframework.stereotype.Service; +// +//import javax.transaction.Transactional; +//import java.util.Date; +//import java.util.HashMap; +//import java.util.Map; +//import java.util.Set; +// +//@Service +//@RequiredArgsConstructor +//@CacheConfig(cacheNames = "genCode") +//public class GenCodeServiceImpl implements GenCodeService { +// @Override +// public JSONObject queryAll(Map form, Pageable pageable) { +// String where = "1=1"; +// if (form.get("blurry") != null) { +// where = "code like '%" + (String) form.get("blurry") + "%' OR name = '%" + form.get("blurry") + "%'"; +// } +// ResultBean rb = WQLObject.getWQLObject("sys_code_rule").pagequery(WqlUtil.getHttpContext(pageable), where, "code desc "); +// final JSONObject json = rb.pageResult(); +// JSONArray ja = json.getJSONArray("content"); +// JSONArray new_ja = new JSONArray(); +// for (int i = 0; i < ja.size(); i++) { +// JSONObject jo = ja.getJSONObject(i); +// HashMap map = new HashMap(); +// map.put("code", jo.getString("code")); +// map.put("flag", "0"); +// String demo = this.codeDemo(map); +// jo.put("demo", demo); +// new_ja.add(jo); +// } +// json.put("content", new_ja); +// return json; +// } +// +// @Override +// public void create(Map form) { +// String currentUserId = SecurityUtils.getCurrentUserId(); +// String currentUsername = SecurityUtils.getCurrentUsername(); +// WQLObject wql = WQLObject.getWQLObject("sys_code_rule"); +// JSONObject json = new JSONObject(); +// String id = IdUtil.simpleUUID(); +// String now = DateUtil.now(); +// String code = (String) form.get("code"); +// JSONObject jo = wql.query("code = '" + code + "'").uniqueResult(0); +// if (jo != null) { +// throw new BadRequestException("该编码code已存在,请校验!"); +// } +// json.put("id", id); +// json.put("code", form.get("code")); +// json.put("name", form.get("name")); +// json.put("create_id", currentUserId); +// json.put("update_optid", currentUserId); +// json.put("create_name", currentUsername); +// json.put("update_optname", currentUsername); +// json.put("create_time", now); +// json.put("update_time", now); +// WQLObject.getWQLObject("sys_code_rule").insert(json); +// } +// +// @Override +// public void delete(Set ids) { +// for (String code : ids) { +// WQLObject.getWQLObject("sys_code_rule").delete("id = '" + code + "'"); +// WQLObject.getWQLObject("sys_code_rule_detail").delete("code_rule_id = '" + code + "'"); +// } +// } +// +// @Override +// public void update(JSONObject json) { +// WQLObject wql = WQLObject.getWQLObject("sys_code_rule"); +// String code = json.getString("code"); +// String id = json.getString("id"); +// JSONObject jo = wql.query("id<>'" + id + "code = '" + code + "'").uniqueResult(0); +// if (jo != null) { +// throw new BadRequestException("该编码code已存在,请校验!"); +// } +// String now = DateUtil.now(); +// json.put("update_optid", SecurityUtils.getCurrentUserId()); +// json.put("update_time", now); +// json.put("update_optname", SecurityUtils.getCurrentUsername()); +// WQLObject.getWQLObject("sys_code_rule").update(json); +// } +// +// @Override +// @Transactional(Transactional.TxType.REQUIRES_NEW) +// public String codeDemo(Map form) { +// String code = (String) form.get("code"); +// String id = this.queryIdByCode(code); +// //如果flag=1就执行更新数据库的操作 +// String flag = (String) form.get("flag"); +// WQLObject wo = WQLObject.getWQLObject("sys_code_rule_detail"); +// JSONArray ja = wo.query("code_rule_id = '" + id + "' order by sort_num FOR UPDATE").getResultJSONArray(0); +// String demo = ""; +// boolean is_same = true; +// for (int i = 0; i < ja.size(); i++) { +// String value = ""; +// JSONObject jo = ja.getJSONObject(i); +// //固定直接取值 +// if (jo.getString("type").equals("01")) { +// value = jo.getString("init_value"); +// } +// //日期判断数据库的值与当前值是否相同来决定顺序的值 +// if (jo.getString("type").equals("02")) { +// String current_value = jo.getString("current_value"); +// Date date = DateUtil.date(); +// String format = jo.getString("format"); +// String now_date = DateUtil.format(date, format); +// if (!now_date.equals(current_value)) { +// is_same = false; +// } +// if (flag.equals("1")) { +// jo.put("init_value", now_date); +// jo.put("current_value", now_date); +// } +// value = now_date; +// } +// //顺序的值:如果日期一样就+步长,等于最大值就归为初始值;日期不一样就归为初始值 +// if (jo.getString("type").equals("03")) { +// String num_value = ""; +// int step = jo.getInteger("step"); +// Long max_value = jo.getLong("max_value"); +// if (!is_same || (jo.getLongValue("current_value") + step > max_value)) { +// num_value = jo.getString("init_value"); +// } else { +// num_value = (jo.getInteger("current_value") + step) + ""; +// } +// int size = num_value.length(); +// int length = jo.getInteger("length"); +// String fillchar = jo.getString("fillchar"); +// for (int m = 0; m < (length - size); m++) { +// value += fillchar; +// } +// value += num_value; +// if (flag.equals("1")) { +// if (!is_same) { +// int init_value = jo.getInteger("init_value"); +// if (StrUtil.isEmpty((init_value + ""))) { +// throw new BadRequestException("请完善编码数值的初始值!"); +// } +// jo.put("current_value", init_value + ""); +// } else { +// int num_curr = jo.getInteger("current_value"); +// if (num_curr >= max_value) { +// num_curr = jo.getInteger("init_value"); +// jo.put("current_value", num_curr + ""); +// } else { +// jo.put("current_value", (num_curr + step) + ""); +// } +// } +// } +// } +// demo += value; +// if (flag.equals("1")) { +// wo.update(jo); +// } +// } +// return demo; +// } +// +// @Override +// public String queryIdByCode(String code) { +// JSONObject jo = WQLObject.getWQLObject("sys_code_rule").query("code = '" + code + "'").uniqueResult(0); +// String id = jo.getString("id"); +// return id; +// } +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/MonitorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/MonitorServiceImpl.java index 33792ca0b..a6fda688c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/MonitorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/MonitorServiceImpl.java @@ -1,194 +1,194 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.system.service.impl; - -import cn.hutool.core.date.BetweenFormatter; -import cn.hutool.core.date.DateUtil; -import org.nl.modules.common.utils.ElAdminConstant; -import org.nl.modules.common.utils.FileUtil; -import org.nl.modules.common.utils.StringUtils; -import org.nl.modules.system.service.MonitorService; -import org.springframework.stereotype.Service; -import oshi.SystemInfo; -import oshi.hardware.CentralProcessor; -import oshi.hardware.GlobalMemory; -import oshi.hardware.HardwareAbstractionLayer; -import oshi.hardware.VirtualMemory; -import oshi.software.os.FileSystem; -import oshi.software.os.OSFileStore; -import oshi.software.os.OperatingSystem; -import oshi.util.FormatUtil; -import oshi.util.Util; - -import java.lang.management.ManagementFactory; -import java.text.DecimalFormat; -import java.util.Date; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author Zheng Jie - * @date 2020-05-02 - */ -@Service -public class MonitorServiceImpl implements MonitorService { - - private final DecimalFormat df = new DecimalFormat("0.00"); - - @Override - public Map getServers() { - Map resultMap = new LinkedHashMap<>(8); - try { - SystemInfo si = new SystemInfo(); - OperatingSystem os = si.getOperatingSystem(); - HardwareAbstractionLayer hal = si.getHardware(); - // 系统信息 - resultMap.put("sys", getSystemInfo(os)); - // cpu 信息 - resultMap.put("cpu", getCpuInfo(hal.getProcessor())); - // 内存信息 - resultMap.put("memory", getMemoryInfo(hal.getMemory())); - // 交换区信息 - resultMap.put("swap", getSwapInfo(hal.getMemory())); - // 磁盘 - resultMap.put("disk", getDiskInfo(os)); - resultMap.put("time", DateUtil.format(new Date(), "HH:mm:ss")); - } catch (Exception e) { - e.printStackTrace(); - } - return resultMap; - } - - /** - * 获取磁盘信息 - * - * @return / - */ - private Map getDiskInfo(OperatingSystem os) { - Map diskInfo = new LinkedHashMap<>(); - FileSystem fileSystem = os.getFileSystem(); - List fsArray = fileSystem.getFileStores(); - String osName = System.getProperty("os.name"); - long available = 0, total = 0; - for (OSFileStore fs : fsArray) { - // windows 需要将所有磁盘分区累加,linux 和 mac 直接累加会出现磁盘重复的问题,待修复 - if (osName.toLowerCase().startsWith(ElAdminConstant.WIN)) { - available += fs.getUsableSpace(); - total += fs.getTotalSpace(); - } else { - available = fs.getUsableSpace(); - total = fs.getTotalSpace(); - break; - } - } - long used = total - available; - diskInfo.put("total", total > 0 ? FileUtil.getSize(total) : "?"); - diskInfo.put("available", FileUtil.getSize(available)); - diskInfo.put("used", FileUtil.getSize(used)); - diskInfo.put("usageRate", df.format(used / (double) total * 100)); - return diskInfo; - } - - /** - * 获取交换区信息 - * - * @param memory / - * @return / - */ - private Map getSwapInfo(GlobalMemory memory) { - Map swapInfo = new LinkedHashMap<>(); - VirtualMemory virtualMemory = memory.getVirtualMemory(); - long total = virtualMemory.getSwapTotal(); - long used = virtualMemory.getSwapUsed(); - swapInfo.put("total", FormatUtil.formatBytes(total)); - swapInfo.put("used", FormatUtil.formatBytes(used)); - swapInfo.put("available", FormatUtil.formatBytes(total - used)); - if (used == 0) { - swapInfo.put("usageRate", 0); - } else { - swapInfo.put("usageRate", df.format(used / (double) total * 100)); - } - return swapInfo; - } - - /** - * 获取内存信息 - * - * @param memory / - * @return / - */ - private Map getMemoryInfo(GlobalMemory memory) { - Map memoryInfo = new LinkedHashMap<>(); - memoryInfo.put("total", FormatUtil.formatBytes(memory.getTotal())); - memoryInfo.put("available", FormatUtil.formatBytes(memory.getAvailable())); - memoryInfo.put("used", FormatUtil.formatBytes(memory.getTotal() - memory.getAvailable())); - memoryInfo.put("usageRate", df.format((memory.getTotal() - memory.getAvailable()) / (double) memory.getTotal() * 100)); - return memoryInfo; - } - - /** - * 获取Cpu相关信息 - * - * @param processor / - * @return / - */ - private Map getCpuInfo(CentralProcessor processor) { - Map cpuInfo = new LinkedHashMap<>(); - cpuInfo.put("name", processor.getProcessorIdentifier().getName()); - cpuInfo.put("package", processor.getPhysicalPackageCount() + "个物理CPU"); - cpuInfo.put("core", processor.getPhysicalProcessorCount() + "个物理核心"); - cpuInfo.put("coreNumber", processor.getPhysicalProcessorCount()); - cpuInfo.put("logic", processor.getLogicalProcessorCount() + "个逻辑CPU"); - // CPU信息 - long[] prevTicks = processor.getSystemCpuLoadTicks(); - // 等待1秒... - Util.sleep(1000); - long[] ticks = processor.getSystemCpuLoadTicks(); - long user = ticks[CentralProcessor.TickType.USER.getIndex()] - prevTicks[CentralProcessor.TickType.USER.getIndex()]; - long nice = ticks[CentralProcessor.TickType.NICE.getIndex()] - prevTicks[CentralProcessor.TickType.NICE.getIndex()]; - long sys = ticks[CentralProcessor.TickType.SYSTEM.getIndex()] - prevTicks[CentralProcessor.TickType.SYSTEM.getIndex()]; - long idle = ticks[CentralProcessor.TickType.IDLE.getIndex()] - prevTicks[CentralProcessor.TickType.IDLE.getIndex()]; - long iowait = ticks[CentralProcessor.TickType.IOWAIT.getIndex()] - prevTicks[CentralProcessor.TickType.IOWAIT.getIndex()]; - long irq = ticks[CentralProcessor.TickType.IRQ.getIndex()] - prevTicks[CentralProcessor.TickType.IRQ.getIndex()]; - long softirq = ticks[CentralProcessor.TickType.SOFTIRQ.getIndex()] - prevTicks[CentralProcessor.TickType.SOFTIRQ.getIndex()]; - long steal = ticks[CentralProcessor.TickType.STEAL.getIndex()] - prevTicks[CentralProcessor.TickType.STEAL.getIndex()]; - long totalCpu = user + nice + sys + idle + iowait + irq + softirq + steal; - cpuInfo.put("used", df.format(100d * user / totalCpu + 100d * sys / totalCpu)); - cpuInfo.put("idle", df.format(100d * idle / totalCpu)); - return cpuInfo; - } - - /** - * 获取系统相关信息,系统、运行天数、系统IP - * - * @param os / - * @return / - */ - private Map getSystemInfo(OperatingSystem os) { - Map systemInfo = new LinkedHashMap<>(); - // jvm 运行时间 - long time = ManagementFactory.getRuntimeMXBean().getStartTime(); - Date date = new Date(time); - // 计算项目运行时间 5.4.3:BetweenFormater, 5.7.14改名为BetweenFormatter - String formatBetween = DateUtil.formatBetween(date, new Date(), BetweenFormatter.Level.HOUR); - // 系统信息 - systemInfo.put("os", os.toString()); - systemInfo.put("day", formatBetween); - systemInfo.put("ip", StringUtils.getLocalIp()); - return systemInfo; - } -} \ No newline at end of file +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.system.service.impl; +// +//import cn.hutool.core.date.BetweenFormatter; +//import cn.hutool.core.date.DateUtil; +//import org.nl.modules.common.utils.ElAdminConstant; +//import org.nl.modules.common.utils.FileUtil; +//import org.nl.modules.common.utils.StringUtils; +//import org.nl.modules.system.service.MonitorService; +//import org.springframework.stereotype.Service; +//import oshi.SystemInfo; +//import oshi.hardware.CentralProcessor; +//import oshi.hardware.GlobalMemory; +//import oshi.hardware.HardwareAbstractionLayer; +//import oshi.hardware.VirtualMemory; +//import oshi.software.os.FileSystem; +//import oshi.software.os.OSFileStore; +//import oshi.software.os.OperatingSystem; +//import oshi.util.FormatUtil; +//import oshi.util.Util; +// +//import java.lang.management.ManagementFactory; +//import java.text.DecimalFormat; +//import java.util.Date; +//import java.util.LinkedHashMap; +//import java.util.List; +//import java.util.Map; +// +///** +// * @author Zheng Jie +// * @date 2020-05-02 +// */ +//@Service +//public class MonitorServiceImpl implements MonitorService { +// +// private final DecimalFormat df = new DecimalFormat("0.00"); +// +// @Override +// public Map getServers() { +// Map resultMap = new LinkedHashMap<>(8); +// try { +// SystemInfo si = new SystemInfo(); +// OperatingSystem os = si.getOperatingSystem(); +// HardwareAbstractionLayer hal = si.getHardware(); +// // 系统信息 +// resultMap.put("sys", getSystemInfo(os)); +// // cpu 信息 +// resultMap.put("cpu", getCpuInfo(hal.getProcessor())); +// // 内存信息 +// resultMap.put("memory", getMemoryInfo(hal.getMemory())); +// // 交换区信息 +// resultMap.put("swap", getSwapInfo(hal.getMemory())); +// // 磁盘 +// resultMap.put("disk", getDiskInfo(os)); +// resultMap.put("time", DateUtil.format(new Date(), "HH:mm:ss")); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// return resultMap; +// } +// +// /** +// * 获取磁盘信息 +// * +// * @return / +// */ +// private Map getDiskInfo(OperatingSystem os) { +// Map diskInfo = new LinkedHashMap<>(); +// FileSystem fileSystem = os.getFileSystem(); +// List fsArray = fileSystem.getFileStores(); +// String osName = System.getProperty("os.name"); +// long available = 0, total = 0; +// for (OSFileStore fs : fsArray) { +// // windows 需要将所有磁盘分区累加,linux 和 mac 直接累加会出现磁盘重复的问题,待修复 +// if (osName.toLowerCase().startsWith(ElAdminConstant.WIN)) { +// available += fs.getUsableSpace(); +// total += fs.getTotalSpace(); +// } else { +// available = fs.getUsableSpace(); +// total = fs.getTotalSpace(); +// break; +// } +// } +// long used = total - available; +// diskInfo.put("total", total > 0 ? FileUtil.getSize(total) : "?"); +// diskInfo.put("available", FileUtil.getSize(available)); +// diskInfo.put("used", FileUtil.getSize(used)); +// diskInfo.put("usageRate", df.format(used / (double) total * 100)); +// return diskInfo; +// } +// +// /** +// * 获取交换区信息 +// * +// * @param memory / +// * @return / +// */ +// private Map getSwapInfo(GlobalMemory memory) { +// Map swapInfo = new LinkedHashMap<>(); +// VirtualMemory virtualMemory = memory.getVirtualMemory(); +// long total = virtualMemory.getSwapTotal(); +// long used = virtualMemory.getSwapUsed(); +// swapInfo.put("total", FormatUtil.formatBytes(total)); +// swapInfo.put("used", FormatUtil.formatBytes(used)); +// swapInfo.put("available", FormatUtil.formatBytes(total - used)); +// if (used == 0) { +// swapInfo.put("usageRate", 0); +// } else { +// swapInfo.put("usageRate", df.format(used / (double) total * 100)); +// } +// return swapInfo; +// } +// +// /** +// * 获取内存信息 +// * +// * @param memory / +// * @return / +// */ +// private Map getMemoryInfo(GlobalMemory memory) { +// Map memoryInfo = new LinkedHashMap<>(); +// memoryInfo.put("total", FormatUtil.formatBytes(memory.getTotal())); +// memoryInfo.put("available", FormatUtil.formatBytes(memory.getAvailable())); +// memoryInfo.put("used", FormatUtil.formatBytes(memory.getTotal() - memory.getAvailable())); +// memoryInfo.put("usageRate", df.format((memory.getTotal() - memory.getAvailable()) / (double) memory.getTotal() * 100)); +// return memoryInfo; +// } +// +// /** +// * 获取Cpu相关信息 +// * +// * @param processor / +// * @return / +// */ +// private Map getCpuInfo(CentralProcessor processor) { +// Map cpuInfo = new LinkedHashMap<>(); +// cpuInfo.put("name", processor.getProcessorIdentifier().getName()); +// cpuInfo.put("package", processor.getPhysicalPackageCount() + "个物理CPU"); +// cpuInfo.put("core", processor.getPhysicalProcessorCount() + "个物理核心"); +// cpuInfo.put("coreNumber", processor.getPhysicalProcessorCount()); +// cpuInfo.put("logic", processor.getLogicalProcessorCount() + "个逻辑CPU"); +// // CPU信息 +// long[] prevTicks = processor.getSystemCpuLoadTicks(); +// // 等待1秒... +// Util.sleep(1000); +// long[] ticks = processor.getSystemCpuLoadTicks(); +// long user = ticks[CentralProcessor.TickType.USER.getIndex()] - prevTicks[CentralProcessor.TickType.USER.getIndex()]; +// long nice = ticks[CentralProcessor.TickType.NICE.getIndex()] - prevTicks[CentralProcessor.TickType.NICE.getIndex()]; +// long sys = ticks[CentralProcessor.TickType.SYSTEM.getIndex()] - prevTicks[CentralProcessor.TickType.SYSTEM.getIndex()]; +// long idle = ticks[CentralProcessor.TickType.IDLE.getIndex()] - prevTicks[CentralProcessor.TickType.IDLE.getIndex()]; +// long iowait = ticks[CentralProcessor.TickType.IOWAIT.getIndex()] - prevTicks[CentralProcessor.TickType.IOWAIT.getIndex()]; +// long irq = ticks[CentralProcessor.TickType.IRQ.getIndex()] - prevTicks[CentralProcessor.TickType.IRQ.getIndex()]; +// long softirq = ticks[CentralProcessor.TickType.SOFTIRQ.getIndex()] - prevTicks[CentralProcessor.TickType.SOFTIRQ.getIndex()]; +// long steal = ticks[CentralProcessor.TickType.STEAL.getIndex()] - prevTicks[CentralProcessor.TickType.STEAL.getIndex()]; +// long totalCpu = user + nice + sys + idle + iowait + irq + softirq + steal; +// cpuInfo.put("used", df.format(100d * user / totalCpu + 100d * sys / totalCpu)); +// cpuInfo.put("idle", df.format(100d * idle / totalCpu)); +// return cpuInfo; +// } +// +// /** +// * 获取系统相关信息,系统、运行天数、系统IP +// * +// * @param os / +// * @return / +// */ +// private Map getSystemInfo(OperatingSystem os) { +// Map systemInfo = new LinkedHashMap<>(); +// // jvm 运行时间 +// long time = ManagementFactory.getRuntimeMXBean().getStartTime(); +// Date date = new Date(time); +// // 计算项目运行时间 5.4.3:BetweenFormater, 5.7.14改名为BetweenFormatter +// String formatBetween = DateUtil.formatBetween(date, new Date(), BetweenFormatter.Level.HOUR); +// // 系统信息 +// systemInfo.put("os", os.toString()); +// systemInfo.put("day", formatBetween); +// systemInfo.put("ip", StringUtils.getLocalIp()); +// return systemInfo; +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/RedisServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/RedisServiceImpl.java index 7aeb706a0..2e5df0af5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/RedisServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/RedisServiceImpl.java @@ -1,83 +1,83 @@ -package org.nl.modules.system.service.impl; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.modules.system.service.RedisService; -import org.nl.modules.system.service.convert.RedisConvert; -import org.nl.modules.system.service.entity.RedisKeyDefine; -import org.nl.modules.system.service.entity.RedisKeyRegistry; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.connection.DataType; -import org.springframework.data.redis.connection.RedisServerCommands; -import org.springframework.data.redis.core.RedisCallback; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Service; - -import java.util.*; - -/** - * @Author: lyd - * @Description: Redis监控的实现类 - * @Date: 2022-08-04 - */ -@Service -@RequiredArgsConstructor -@Slf4j -public class RedisServiceImpl implements RedisService { - - @Autowired - private StringRedisTemplate stringRedisTemplate; - - @Override - public JSONObject getRedisMonitorInfo() { - // 获得 Redis 统计信息 - Properties info = stringRedisTemplate.execute((RedisCallback) RedisServerCommands::info); - Long dbSize = stringRedisTemplate.execute(RedisServerCommands::dbSize); - Properties commandStats = stringRedisTemplate.execute(( - RedisCallback) connection -> connection.info("commandstats")); - assert commandStats != null; // 断言,避免警告 -// System.out.println("info:" + info + " dbsize:" + dbSize + " com:" + commandStats); - // 拼接结果返回 - // 转成实体 - JSONObject json = new JSONObject(); - json.put("info", RedisConvert.INSTANCE.build(info, dbSize, commandStats)); - return json; - } - - @Override - public JSONObject getKeyDefineList() { - List keyDefines = RedisKeyRegistry.list(); - JSONObject json = new JSONObject(); - System.out.println(keyDefines); -// json.put("info", RedisConvert.INSTANCE.convertList(keyDefines)); - return json; - } - - @Override - public JSONArray getKeyValueList() { - JSONArray result = new JSONArray(); - Set keys = stringRedisTemplate.keys("*"); - // 迭代 - Iterator it = keys.iterator(); - while (it.hasNext()) { - String key = it.next(); - JSONObject redis = new JSONObject(); - DataType dataType = stringRedisTemplate.type(key); // 数据类型 - String s = stringRedisTemplate.opsForValue().get(key); // 获取值 - Long expire = stringRedisTemplate.getExpire(key); // 获取剩余时间 - redis.put("dataType", dataType); - redis.put("key", key); - redis.put("value", s); - redis.put("expire", expire); - result.add(redis); - } - return result; - } - - @Override - public void deleteByKey(String[] ids) { - stringRedisTemplate.delete(Arrays.asList(ids)); - } -} +//package org.nl.modules.system.service.impl; +// +//import com.alibaba.fastjson.JSONArray; +//import com.alibaba.fastjson.JSONObject; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.nl.modules.system.service.RedisService; +//import org.nl.modules.system.service.convert.RedisConvert; +//import org.nl.modules.system.service.entity.RedisKeyDefine; +//import org.nl.modules.system.service.entity.RedisKeyRegistry; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.data.redis.connection.DataType; +//import org.springframework.data.redis.connection.RedisServerCommands; +//import org.springframework.data.redis.core.RedisCallback; +//import org.springframework.data.redis.core.StringRedisTemplate; +//import org.springframework.stereotype.Service; +// +//import java.util.*; +// +///** +// * @Author: lyd +// * @Description: Redis监控的实现类 +// * @Date: 2022-08-04 +// */ +//@Service +//@RequiredArgsConstructor +//@Slf4j +//public class RedisServiceImpl implements RedisService { +// +// @Autowired +// private StringRedisTemplate stringRedisTemplate; +// +// @Override +// public JSONObject getRedisMonitorInfo() { +// // 获得 Redis 统计信息 +// Properties info = stringRedisTemplate.execute((RedisCallback) RedisServerCommands::info); +// Long dbSize = stringRedisTemplate.execute(RedisServerCommands::dbSize); +// Properties commandStats = stringRedisTemplate.execute(( +// RedisCallback) connection -> connection.info("commandstats")); +// assert commandStats != null; // 断言,避免警告 +//// System.out.println("info:" + info + " dbsize:" + dbSize + " com:" + commandStats); +// // 拼接结果返回 +// // 转成实体 +// JSONObject json = new JSONObject(); +// json.put("info", RedisConvert.INSTANCE.build(info, dbSize, commandStats)); +// return json; +// } +// +// @Override +// public JSONObject getKeyDefineList() { +// List keyDefines = RedisKeyRegistry.list(); +// JSONObject json = new JSONObject(); +// System.out.println(keyDefines); +//// json.put("info", RedisConvert.INSTANCE.convertList(keyDefines)); +// return json; +// } +// +// @Override +// public JSONArray getKeyValueList() { +// JSONArray result = new JSONArray(); +// Set keys = stringRedisTemplate.keys("*"); +// // 迭代 +// Iterator it = keys.iterator(); +// while (it.hasNext()) { +// String key = it.next(); +// JSONObject redis = new JSONObject(); +// DataType dataType = stringRedisTemplate.type(key); // 数据类型 +// String s = stringRedisTemplate.opsForValue().get(key); // 获取值 +// Long expire = stringRedisTemplate.getExpire(key); // 获取剩余时间 +// redis.put("dataType", dataType); +// redis.put("key", key); +// redis.put("value", s); +// redis.put("expire", expire); +// result.add(redis); +// } +// return result; +// } +// +// @Override +// public void deleteByKey(String[] ids) { +// stringRedisTemplate.delete(Arrays.asList(ids)); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/RedisKeyDefineRespVO.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/RedisKeyDefineRespVO.java index 70b2db54b..7ecc842d9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/RedisKeyDefineRespVO.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/RedisKeyDefineRespVO.java @@ -1,38 +1,38 @@ -package org.nl.modules.system.service.vo; - - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import org.nl.modules.system.service.entity.RedisKeyDefine; - -import java.time.Duration; - -/** - * @Author: lyd - * @Description: 管理后台 - Redis Key 信息 Response VO - * @Date: 2022-08-04 - */ - -@Data -@Builder -@AllArgsConstructor -public class RedisKeyDefineRespVO { - - private String keyTemplate; - - - private RedisKeyDefine.KeyTypeEnum keyType; - - - private Class valueType; - - - private RedisKeyDefine.TimeoutTypeEnum timeoutType; - - - private Duration timeout; - - - private String memo; -} +//package org.nl.modules.system.service.vo; +// +// +//import lombok.AllArgsConstructor; +//import lombok.Builder; +//import lombok.Data; +//import org.nl.modules.system.service.entity.RedisKeyDefine; +// +//import java.time.Duration; +// +///** +// * @Author: lyd +// * @Description: 管理后台 - Redis Key 信息 Response VO +// * @Date: 2022-08-04 +// */ +// +//@Data +//@Builder +//@AllArgsConstructor +//public class RedisKeyDefineRespVO { +// +// private String keyTemplate; +// +// +// private RedisKeyDefine.KeyTypeEnum keyType; +// +// +// private Class valueType; +// +// +// private RedisKeyDefine.TimeoutTypeEnum timeoutType; +// +// +// private Duration timeout; +// +// +// private String memo; +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/RedisMonitorRespVO.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/RedisMonitorRespVO.java index 68e067d9e..4a585d874 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/RedisMonitorRespVO.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/RedisMonitorRespVO.java @@ -1,46 +1,46 @@ -package org.nl.modules.system.service.vo; - - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; - -import java.util.List; -import java.util.Properties; - -/** - * @Author: lyd - * @Description: 管理后台 - Redis 监控信息 Response VO - * @Date: 2022-08-04 - */ - -@Data -@Builder -@AllArgsConstructor -public class RedisMonitorRespVO { - - private Properties info; - - - private Long dbSize; - - - private List commandStats; - - - @Data - @Builder - @AllArgsConstructor - public static class CommandStat { - - - private String command; - - - private Integer calls; - - - private Long usec; - - } -} +//package org.nl.modules.system.service.vo; +// +// +//import lombok.AllArgsConstructor; +//import lombok.Builder; +//import lombok.Data; +// +//import java.util.List; +//import java.util.Properties; +// +///** +// * @Author: lyd +// * @Description: 管理后台 - Redis 监控信息 Response VO +// * @Date: 2022-08-04 +// */ +// +//@Data +//@Builder +//@AllArgsConstructor +//public class RedisMonitorRespVO { +// +// private Properties info; +// +// +// private Long dbSize; +// +// +// private List commandStats; +// +// +// @Data +// @Builder +// @AllArgsConstructor +// public static class CommandStat { +// +// +// private String command; +// +// +// private Integer calls; +// +// +// private Long usec; +// +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/UserVo.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/UserVo.java index 39d2e6246..5dde888e3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/UserVo.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/vo/UserVo.java @@ -1,9 +1,9 @@ -package org.nl.modules.system.service.vo; - -/** - * @author: lyd - * @description: - * @Date: 2022/9/26 - */ -public class UserVo { -} +//package org.nl.modules.system.service.vo; +// +///** +// * @author: lyd +// * @description: +// * @Date: 2022/9/26 +// */ +//public class UserVo { +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java index dfb751315..84d44f34f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java @@ -1,19 +1,19 @@ -package org.nl.modules.system.util; - -import org.nl.modules.system.service.GenCodeService; -import org.nl.modules.wql.util.SpringContextHolder; - -import java.util.HashMap; - -public class CodeUtil { - - public static String getNewCode(String ruleCode) { - GenCodeService bean = SpringContextHolder.getBean(GenCodeService.class); - String flag = "1"; - HashMap map = new HashMap<>(); - map.put("flag", flag); - map.put("code", ruleCode); - return bean.codeDemo(map); - } - -} +//package org.nl.modules.system.util; +// +//import org.nl.modules.system.service.GenCodeService; +//import org.nl.modules.wql.util.SpringContextHolder; +// +//import java.util.HashMap; +// +//public class CodeUtil { +// +// public static String getNewCode(String ruleCode) { +// GenCodeService bean = SpringContextHolder.getBean(GenCodeService.class); +// String flag = "1"; +// HashMap map = new HashMap<>(); +// map.put("flag", flag); +// map.put("code", ruleCode); +// return bean.codeDemo(map); +// } +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/util/YamlUtil.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/util/YamlUtil.java index 03d9896a8..19e55aa8e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/system/util/YamlUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/util/YamlUtil.java @@ -1,11 +1,11 @@ -package org.nl.modules.system.util; - -import java.util.Properties; - -public class YamlUtil { - public static Properties properties; - - public static String getValue(String key) { - return (String) properties.get(key); - } -} +//package org.nl.modules.system.util; +// +//import java.util.Properties; +// +//public class YamlUtil { +// public static Properties properties; +// +// public static String getValue(String key) { +// return (String) properties.get(key); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/tools/domain/LocalStorage.java b/lms/nladmin-system/src/main/java/org/nl/modules/tools/domain/LocalStorage.java index 2147b96d3..095deee34 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/tools/domain/LocalStorage.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/tools/domain/LocalStorage.java @@ -1,75 +1,75 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.tools.domain; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.bean.copier.CopyOptions; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.nl.modules.common.base.BaseEntity; - -import javax.persistence.*; -import java.io.Serializable; - -/** - * @author Zheng Jie - * @date 2019-09-05 - */ -@Getter -@Setter -@Entity -@Table(name = "tool_local_storage") -@NoArgsConstructor -public class LocalStorage extends BaseEntity implements Serializable { - - @Id - @Column(name = "storage_id") - - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - - private String realName; - - - private String name; - - - private String suffix; - - - private String path; - - - private String type; - - - private String size; - - public LocalStorage(String realName, String name, String suffix, String path, String type, String size) { - this.realName = realName; - this.name = name; - this.suffix = suffix; - this.path = path; - this.type = type; - this.size = size; - } - - public void copy(LocalStorage source) { - BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true)); - } -} \ No newline at end of file +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.tools.domain; +// +//import cn.hutool.core.bean.BeanUtil; +//import cn.hutool.core.bean.copier.CopyOptions; +//import lombok.Getter; +//import lombok.NoArgsConstructor; +//import lombok.Setter; +//import org.nl.modules.common.base.BaseEntity; +// +//import javax.persistence.*; +//import java.io.Serializable; +// +///** +// * @author Zheng Jie +// * @date 2019-09-05 +// */ +//@Getter +//@Setter +//@Entity +//@Table(name = "tool_local_storage") +//@NoArgsConstructor +//public class LocalStorage extends BaseEntity implements Serializable { +// +// @Id +// @Column(name = "storage_id") +// +// @GeneratedValue(strategy = GenerationType.IDENTITY) +// private Long id; +// +// +// private String realName; +// +// +// private String name; +// +// +// private String suffix; +// +// +// private String path; +// +// +// private String type; +// +// +// private String size; +// +// public LocalStorage(String realName, String name, String suffix, String path, String type, String size) { +// this.realName = realName; +// this.name = name; +// this.suffix = suffix; +// this.path = path; +// this.type = type; +// this.size = size; +// } +// +// public void copy(LocalStorage source) { +// BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true)); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/tools/repository/LocalStorageRepository.java b/lms/nladmin-system/src/main/java/org/nl/modules/tools/repository/LocalStorageRepository.java index 189101ff2..b3ae5f723 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/tools/repository/LocalStorageRepository.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/tools/repository/LocalStorageRepository.java @@ -1,27 +1,27 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.tools.repository; - -import org.nl.modules.tools.domain.LocalStorage; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; - -/** - * @author Zheng Jie - * @date 2019-09-05 - */ -public interface LocalStorageRepository extends JpaRepository, JpaSpecificationExecutor { -} \ No newline at end of file +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.tools.repository; +// +//import org.nl.modules.tools.domain.LocalStorage; +//import org.springframework.data.jpa.repository.JpaRepository; +//import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +// +///** +// * @author Zheng Jie +// * @date 2019-09-05 +// */ +//public interface LocalStorageRepository extends JpaRepository, JpaSpecificationExecutor { +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/tools/rest/LocalStorageController.java b/lms/nladmin-system/src/main/java/org/nl/modules/tools/rest/LocalStorageController.java index bf5638f7d..8a246280d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/tools/rest/LocalStorageController.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/tools/rest/LocalStorageController.java @@ -1,107 +1,107 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.tools.rest; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.dev33.satoken.annotation.SaIgnore; -import lombok.RequiredArgsConstructor; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.common.utils.FileUtil; -import org.nl.modules.logging.annotation.Log; -import org.nl.modules.tools.domain.LocalStorage; -import org.nl.modules.tools.service.LocalStorageService; -import org.nl.modules.tools.service.dto.LocalStorageQueryCriteria; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * @author Zheng Jie - * @date 2019-09-05 - */ -@RestController -@RequiredArgsConstructor - -@RequestMapping("/api/localStorage") -public class LocalStorageController { - - private final LocalStorageService localStorageService; - - - @GetMapping - @SaCheckPermission("storage:list") - public ResponseEntity query(LocalStorageQueryCriteria criteria, Pageable pageable) { - return new ResponseEntity<>(localStorageService.queryAll(criteria, pageable), HttpStatus.OK); - } - - - @GetMapping(value = "/download") - @SaCheckPermission("storage:list") - public void download(HttpServletResponse response, LocalStorageQueryCriteria criteria) throws IOException { - localStorageService.download(localStorageService.queryAll(criteria), response); - } - - - @PostMapping - @SaCheckPermission("storage:add") - public ResponseEntity create(@RequestParam String name, @RequestParam("file") MultipartFile file) { - LocalStorage localStorage = localStorageService.create(name, file); - return new ResponseEntity<>(localStorage, HttpStatus.CREATED); - } - - @PostMapping("/pictures") - - public ResponseEntity upload(@RequestParam MultipartFile file) { - // 判断文件是否为图片 - String suffix = FileUtil.getExtensionName(file.getOriginalFilename()); - if (!FileUtil.IMAGE.equals(FileUtil.getFileType(suffix))) { - throw new BadRequestException("只能上传图片"); - } - LocalStorage localStorage = localStorageService.create(null, file); - return new ResponseEntity<>(localStorage, HttpStatus.OK); - } - - @Log("修改文件") - - @PutMapping - @SaCheckPermission("storage:edit") - public ResponseEntity update(@Validated @RequestBody LocalStorage resources) { - localStorageService.update(resources); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Log("删除文件") - @DeleteMapping - - public ResponseEntity delete(@RequestBody Long[] ids) { - localStorageService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - - - @PostMapping("/importExcel") - @SaIgnore - public ResponseEntity importExcel(@RequestBody String path) { - localStorageService.importExcel(path); - return new ResponseEntity<>(HttpStatus.OK); - } -} +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.tools.rest; +// +//import cn.dev33.satoken.annotation.SaCheckPermission; +//import cn.dev33.satoken.annotation.SaIgnore; +//import lombok.RequiredArgsConstructor; +//import org.nl.modules.common.exception.BadRequestException; +//import org.nl.modules.common.utils.FileUtil; +//import org.nl.modules.logging.annotation.Log; +//import org.nl.modules.tools.domain.LocalStorage; +//import org.nl.modules.tools.service.LocalStorageService; +//import org.nl.modules.tools.service.dto.LocalStorageQueryCriteria; +//import org.springframework.data.domain.Pageable; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.ResponseEntity; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.*; +//import org.springframework.web.multipart.MultipartFile; +// +//import javax.servlet.http.HttpServletResponse; +//import java.io.IOException; +// +///** +// * @author Zheng Jie +// * @date 2019-09-05 +// */ +//@RestController +//@RequiredArgsConstructor +// +//@RequestMapping("/api/localStorage") +//public class LocalStorageController { +// +// private final LocalStorageService localStorageService; +// +// +// @GetMapping +// @SaCheckPermission("storage:list") +// public ResponseEntity query(LocalStorageQueryCriteria criteria, Pageable pageable) { +// return new ResponseEntity<>(localStorageService.queryAll(criteria, pageable), HttpStatus.OK); +// } +// +// +// @GetMapping(value = "/download") +// @SaCheckPermission("storage:list") +// public void download(HttpServletResponse response, LocalStorageQueryCriteria criteria) throws IOException { +// localStorageService.download(localStorageService.queryAll(criteria), response); +// } +// +// +// @PostMapping +// @SaCheckPermission("storage:add") +// public ResponseEntity create(@RequestParam String name, @RequestParam("file") MultipartFile file) { +// LocalStorage localStorage = localStorageService.create(name, file); +// return new ResponseEntity<>(localStorage, HttpStatus.CREATED); +// } +// +// @PostMapping("/pictures") +// +// public ResponseEntity upload(@RequestParam MultipartFile file) { +// // 判断文件是否为图片 +// String suffix = FileUtil.getExtensionName(file.getOriginalFilename()); +// if (!FileUtil.IMAGE.equals(FileUtil.getFileType(suffix))) { +// throw new BadRequestException("只能上传图片"); +// } +// LocalStorage localStorage = localStorageService.create(null, file); +// return new ResponseEntity<>(localStorage, HttpStatus.OK); +// } +// +// @Log("修改文件") +// +// @PutMapping +// @SaCheckPermission("storage:edit") +// public ResponseEntity update(@Validated @RequestBody LocalStorage resources) { +// localStorageService.update(resources); +// return new ResponseEntity<>(HttpStatus.NO_CONTENT); +// } +// +// @Log("删除文件") +// @DeleteMapping +// +// public ResponseEntity delete(@RequestBody Long[] ids) { +// localStorageService.deleteAll(ids); +// return new ResponseEntity<>(HttpStatus.OK); +// } +// +// +// @PostMapping("/importExcel") +// @SaIgnore +// public ResponseEntity importExcel(@RequestBody String path) { +// localStorageService.importExcel(path); +// return new ResponseEntity<>(HttpStatus.OK); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/LocalStorageService.java b/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/LocalStorageService.java index 01534068b..e66076cb4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/LocalStorageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/LocalStorageService.java @@ -1,98 +1,98 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.tools.service; - - -import org.nl.modules.tools.domain.LocalStorage; -import org.nl.modules.tools.service.dto.LocalStorageDto; -import org.nl.modules.tools.service.dto.LocalStorageQueryCriteria; -import org.springframework.data.domain.Pageable; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.List; - -/** - * @author Zheng Jie - * @date 2019-09-05 - */ -public interface LocalStorageService { - - /** - * 分页查询 - * - * @param criteria 条件 - * @param pageable 分页参数 - * @return / - */ - Object queryAll(LocalStorageQueryCriteria criteria, Pageable pageable); - - /** - * 查询全部数据 - * - * @param criteria 条件 - * @return / - */ - List queryAll(LocalStorageQueryCriteria criteria); - - /** - * 根据ID查询 - * - * @param id / - * @return / - */ - LocalStorageDto findById(Long id); - - /** - * 上传 - * - * @param name 文件名称 - * @param file 文件 - * @return - */ - LocalStorage create(String name, MultipartFile file); - - /** - * 编辑 - * - * @param resources 文件信息 - */ - void update(LocalStorage resources); - - /** - * 多选删除 - * - * @param ids / - */ - void deleteAll(Long[] ids); - - /** - * 导出数据 - * - * @param localStorageDtos 待导出的数据 - * @param response / - * @throws IOException / - */ - void download(List localStorageDtos, HttpServletResponse response) throws IOException; - - /** - * 导入数据 - * - * @param path - */ - void importExcel(String path); -} \ No newline at end of file +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.tools.service; +// +// +//import org.nl.modules.tools.domain.LocalStorage; +//import org.nl.modules.tools.service.dto.LocalStorageDto; +//import org.nl.modules.tools.service.dto.LocalStorageQueryCriteria; +//import org.springframework.data.domain.Pageable; +//import org.springframework.web.multipart.MultipartFile; +// +//import javax.servlet.http.HttpServletResponse; +//import java.io.IOException; +//import java.util.List; +// +///** +// * @author Zheng Jie +// * @date 2019-09-05 +// */ +//public interface LocalStorageService { +// +// /** +// * 分页查询 +// * +// * @param criteria 条件 +// * @param pageable 分页参数 +// * @return / +// */ +// Object queryAll(LocalStorageQueryCriteria criteria, Pageable pageable); +// +// /** +// * 查询全部数据 +// * +// * @param criteria 条件 +// * @return / +// */ +// List queryAll(LocalStorageQueryCriteria criteria); +// +// /** +// * 根据ID查询 +// * +// * @param id / +// * @return / +// */ +// LocalStorageDto findById(Long id); +// +// /** +// * 上传 +// * +// * @param name 文件名称 +// * @param file 文件 +// * @return +// */ +// LocalStorage create(String name, MultipartFile file); +// +// /** +// * 编辑 +// * +// * @param resources 文件信息 +// */ +// void update(LocalStorage resources); +// +// /** +// * 多选删除 +// * +// * @param ids / +// */ +// void deleteAll(Long[] ids); +// +// /** +// * 导出数据 +// * +// * @param localStorageDtos 待导出的数据 +// * @param response / +// * @throws IOException / +// */ +// void download(List localStorageDtos, HttpServletResponse response) throws IOException; +// +// /** +// * 导入数据 +// * +// * @param path +// */ +// void importExcel(String path); +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/dto/LocalStorageDto.java b/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/dto/LocalStorageDto.java index 727e676c8..c5a2b61b7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/dto/LocalStorageDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/dto/LocalStorageDto.java @@ -17,7 +17,7 @@ package org.nl.modules.tools.service.dto; import lombok.Getter; import lombok.Setter; -import org.nl.modules.common.base.BaseDTO; +import org.nl.common.base.BaseDTO; import java.io.Serializable; @@ -40,4 +40,4 @@ public class LocalStorageDto extends BaseDTO implements Serializable { private String type; private String size; -} \ No newline at end of file +} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/impl/LocalStorageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/impl/LocalStorageServiceImpl.java index dadbe0975..16350b1a8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/impl/LocalStorageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/impl/LocalStorageServiceImpl.java @@ -1,367 +1,367 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.tools.service.impl; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import org.nl.common.utils.SecurityUtils; -import org.nl.modules.common.config.FileProperties; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.common.utils.FileUtil; -import org.nl.modules.common.utils.PageUtil; -import org.nl.modules.common.utils.QueryHelp; -import org.nl.modules.common.utils.ValidationUtil; -import org.nl.modules.tools.domain.LocalStorage; -import org.nl.modules.tools.repository.LocalStorageRepository; -import org.nl.modules.tools.service.LocalStorageService; -import org.nl.modules.tools.service.dto.LocalStorageDto; -import org.nl.modules.tools.service.dto.LocalStorageQueryCriteria; -import org.nl.modules.tools.service.mapstruct.LocalStorageMapper; -import org.nl.modules.wql.WQL; -import org.nl.modules.wql.core.bean.WQLObject; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletResponse; -import java.io.File; -import java.io.IOException; -import java.util.*; - -/** - * @author Zheng Jie - * @date 2019-09-05 - */ -@Service -@RequiredArgsConstructor -public class LocalStorageServiceImpl implements LocalStorageService { - - private final LocalStorageRepository localStorageRepository; - private final LocalStorageMapper localStorageMapper; - private final FileProperties properties; - - @Override - public Object queryAll(LocalStorageQueryCriteria criteria, Pageable pageable) { - Page page = localStorageRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); - return PageUtil.toPage(page.map(localStorageMapper::toDto)); - } - - @Override - public List queryAll(LocalStorageQueryCriteria criteria) { - return localStorageMapper.toDto(localStorageRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder))); - } - - @Override - public LocalStorageDto findById(Long id) { - LocalStorage localStorage = localStorageRepository.findById(id).orElseGet(LocalStorage::new); - ValidationUtil.isNull(localStorage.getId(), "LocalStorage", "id", id); - return localStorageMapper.toDto(localStorage); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public LocalStorage create(String name, MultipartFile multipartFile) { - FileUtil.checkSize(properties.getMaxSize(), multipartFile.getSize()); - String suffix = FileUtil.getExtensionName(multipartFile.getOriginalFilename()); - String type = FileUtil.getFileType(suffix); - File file = FileUtil.upload(multipartFile, properties.getPath().getPath() + type + File.separator); - if (ObjectUtil.isNull(file)) { - throw new BadRequestException("上传失败"); - } - try { - name = StrUtil.isEmpty(name) ? FileUtil.getFileNameNoEx(multipartFile.getOriginalFilename()) : name; - LocalStorage localStorage = new LocalStorage( - file.getName(), - name, - suffix, - file.getPath(), - type, - FileUtil.getSize(multipartFile.getSize()) - ); - return localStorageRepository.save(localStorage); - } catch (Exception e) { - FileUtil.del(file); - throw e; - } - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(LocalStorage resources) { - LocalStorage localStorage = localStorageRepository.findById(resources.getId()).orElseGet(LocalStorage::new); - ValidationUtil.isNull(localStorage.getId(), "LocalStorage", "id", resources.getId()); - localStorage.copy(resources); - localStorageRepository.save(localStorage); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteAll(Long[] ids) { - for (Long id : ids) { - LocalStorage storage = localStorageRepository.findById(id).orElseGet(LocalStorage::new); - FileUtil.del(storage.getPath()); - localStorageRepository.delete(storage); - } - } - - @Override - public void download(List queryAll, HttpServletResponse response) throws IOException { - List> list = new ArrayList<>(); - for (LocalStorageDto localStorageDTO : queryAll) { - Map map = new LinkedHashMap<>(); - map.put("文件名", localStorageDTO.getRealName()); - map.put("备注名", localStorageDTO.getName()); - map.put("文件类型", localStorageDTO.getType()); - map.put("文件大小", localStorageDTO.getSize()); - map.put("创建者", localStorageDTO.getCreateBy()); - map.put("创建日期", localStorageDTO.getCreateTime()); - list.add(map); - } - FileUtil.downloadExcel(list, response); - } - - /** - * 导入数据 - * - * @param path - */ - @Override - @Transactional(rollbackFor = Exception.class) - public void importExcel(String path) { - WQLObject measureunitTab = WQLObject.getWQLObject("md_pb_measureunit"); - WQLObject materialbaseTab = WQLObject.getWQLObject("md_me_materialbase"); - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - //List> listMap = EasyExcel.read(path).sheet(1).doReadSync(); - List> listMap = new ArrayList<>(); - for (int i = 3; i < listMap.size(); i++) { - Map map = listMap.get(i); - - /*//外库,计划内 - String package_box_sn = String.valueOf(map.get(16)); - String container_name = String.valueOf(map.get(8)); - String sale_order = String.valueOf(map.get(14)); - String no = String.valueOf(map.get(15)); - String customer_name = String.valueOf(map.get(20)); - String sap_pcsn = String.valueOf(map.get(9)); - String customer_description = String.valueOf(map.get(21)); - String product_name = String.valueOf(map.get(1)); - String product_description = String.valueOf(map.get(2)); - String date_of_FG_inbound = String.valueOf(map.get(11)); - String width = String.valueOf(map.get(22)); - String thickness = String.valueOf(map.get(23)); - String net_weight = String.valueOf(map.get(3)); - String length = String.valueOf(map.get(25)); - String is_un_plan_production = "0";*/ - - /*//外库,计划外分切 - String package_box_sn = String.valueOf(map.get(26)); - String container_name = String.valueOf(map.get(33)); - String sale_order = String.valueOf(map.get(29)); - //String no = String.valueOf(map.get(15)); - String customer_name = String.valueOf(map.get(30)); - String sap_pcsn = String.valueOf(map.get(33)); - String customer_description = String.valueOf(map.get(31)); - String product_name = String.valueOf(map.get(2)); - String product_description = String.valueOf(map.get(3)); - String date_of_FG_inbound = String.valueOf(map.get(25)); - String width = String.valueOf(map.get(34)); - String thickness = String.valueOf(map.get(35)); - String net_weight = String.valueOf(map.get(37)); - String length = String.valueOf(map.get(38)); - String is_un_plan_production = "1";*/ - - //成品库,计划内 - String package_box_sn = String.valueOf(map.get(18)); - String container_name = String.valueOf(map.get(10)); - String sale_order = String.valueOf(map.get(16)); - String no = String.valueOf(map.get(17)); - String customer_name = String.valueOf(map.get(22)); - String sap_pcsn = String.valueOf(map.get(9)); - String customer_description = String.valueOf(map.get(23)); - String product_name = String.valueOf(map.get(2)); - String product_description = String.valueOf(map.get(3)); - String date_of_FG_inbound = String.valueOf(map.get(12)); - String width = String.valueOf(map.get(24)); - String thickness = String.valueOf(map.get(25)); - String net_weight = String.valueOf(map.get(4)); - String length = String.valueOf(map.get(27)); - String is_un_plan_production = "0"; - - /*//成品库,计划外 - String package_box_sn = String.valueOf(map.get(26)); - String container_name = String.valueOf(map.get(34)); - String sale_order = String.valueOf(map.get(29)); - //String no = String.valueOf(map.get(17)); - String customer_name = String.valueOf(map.get(30)); - String sap_pcsn = String.valueOf(map.get(33)); - String customer_description = String.valueOf(map.get(31)); - String product_name = String.valueOf(map.get(2)); - String product_description = String.valueOf(map.get(3)); - String date_of_FG_inbound = String.valueOf(map.get(25)); - String width = String.valueOf(map.get(36)); - String thickness = String.valueOf(map.get(37)); - String net_weight = String.valueOf(map.get(5)); - String length = String.valueOf(map.get(40)); - String is_un_plan_production = "1";*/ - - /*if (StrUtil.isEmpty(package_box_sn)) { - throw new BadRequestException("第" + (i + 2) + "行的木箱唯一码为空!"); - }*/ - if (StrUtil.isEmpty(sale_order)) { - throw new BadRequestException("第" + (i + 2) + "行的销售订单及行号为空!"); - } - if (StrUtil.isEmpty(customer_name)) { - throw new BadRequestException("第" + (i + 2) + "行的客户编号为空!"); - } - if (StrUtil.isEmpty(customer_description)) { - throw new BadRequestException("第" + (i + 2) + "行的客户名称为空!"); - } - if (StrUtil.isEmpty(product_name)) { - throw new BadRequestException("第" + (i + 2) + "行的产品编码为空!"); - } - if (StrUtil.isEmpty(product_description)) { - throw new BadRequestException("第" + (i + 2) + "行的产品描述为空!"); - } - if (StrUtil.isEmpty(container_name)) { - throw new BadRequestException("第" + (i + 2) + "行的子卷号为空!"); - } - if (StrUtil.isEmpty(width)) { - throw new BadRequestException("第" + (i + 2) + "行的产品规格(幅宽)为空!"); - } - if (StrUtil.isEmpty(net_weight)) { - throw new BadRequestException("第" + (i + 2) + "行的净重为空!"); - } - if (StrUtil.isEmpty(length)) { - throw new BadRequestException("第" + (i + 2) + "行的长度为空!"); - } - if (StrUtil.isEmpty(is_un_plan_production)) { - throw new BadRequestException("第" + (i + 2) + "行的计划外分切的子卷为空!"); - } - - JSONObject jo = new JSONObject(); - jo.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); - jo.put("package_box_sn", package_box_sn); - jo.put("sap_pcsn", sap_pcsn); -// jo.put("box_weight", BoxWeight); - jo.put("quality_guaran_period", "90"); - jo.put("sale_order_name", sale_order + "-" + no); - //jo.put("sale_order_name", sale_order); - jo.put("customer_name", customer_name); - jo.put("customer_description", customer_description); - jo.put("product_name", product_name); - jo.put("product_description", product_description); - jo.put("date_of_FG_inbound", date_of_FG_inbound); - jo.put("container_name", container_name); - jo.put("width", width); - if (StrUtil.isEmpty(thickness) || thickness.equals("null")) { - //查询物料中的厚度 - JSONObject mater = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + jo.getString("product_name") + "'").uniqueResult(0); - String code = mater.getString("material_name"); - code = code.replace("|", ","); - String[] split = code.split(","); - String last = split[2]; - String[] s = last.split("微"); - thickness = s[0]; - } - jo.put("thickness", thickness); - jo.put("net_weight", net_weight); - jo.put("length", length); - jo.put("date_of_production", date_of_FG_inbound); - jo.put("is_un_plan_production", is_un_plan_production); - jo.put("status", "0"); - jo.put("create_id", "1"); - jo.put("create_name", "管理员"); - jo.put("create_time", DateUtil.now()); - WQLObject tab = WQLObject.getWQLObject("PDM_BI_SubPackageRelation"); - tab.insert(jo); - } - - JSONArray rows = WQL.getWO("ST_REGION_IN_01").addParam("flag", "3").process().getResultJSONArray(0); - for (int i = 0; i < rows.size(); i++) { - JSONObject row = rows.getJSONObject(i); - String package_box_sn = row.getString("package_box_sn"); - if (StrUtil.isEmpty(package_box_sn) || package_box_sn.equals("null")) { - continue; - } - double total_weight = 0; - JSONArray box_rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + package_box_sn + "'").getResultJSONArray(0); - - //判断该木箱是否已经存在库内 - JSONObject str_jo = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + row.get("package_box_sn") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(str_jo)) { - throw new BadRequestException("木箱:" + row.get("package_box_sn") + "已存在库内,请对数据进行核实!"); - } - - //判断是否属于外库 - JSONObject goal_row = box_rows.getJSONObject(0); - JSONObject stor_jo = new JSONObject(); - if (goal_row.getString("remark").contains("外库")) { - stor_jo = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_virtualstore = '1'").uniqueResult(0); - } else { - stor_jo = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_productstore = '1'").uniqueResult(0); - } - - //查询一个空的虚拟区货位 - JSONObject struct = WQL.getWO("PDA_ST_01").addParam("flag", "3").addParam("stor_id", stor_jo.getString("stor_id")).process().uniqueResult(0); - for (int j = 0; j < box_rows.size(); j++) { - JSONObject box_row = box_rows.getJSONObject(j); - JSONObject ivt_jo = new JSONObject(); - //插入库存数据 - ivt_jo.put("stockrecord_id", IdUtil.getSnowflake(1, 1).nextId()); - ivt_jo.put("struct_id", struct.getString("struct_id")); - ivt_jo.put("struct_code", struct.getString("struct_code")); - ivt_jo.put("struct_name", struct.getString("struct_name")); - ivt_jo.put("region_id", ""); - ivt_jo.put("quality_scode", "01"); - ivt_jo.put("pcsn", box_row.getString("container_name")); - ivt_jo.put("canuse_qty", box_row.getString("net_weight")); - ivt_jo.put("frozen_qty", 0); - ivt_jo.put("ivt_qty", box_row.getString("net_weight")); - ivt_jo.put("instorage_time", DateUtil.now()); - JSONObject mater = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + box_row.getString("product_name") + "'").uniqueResult(0); - ivt_jo.put("material_id", mater.getString("material_id")); - ivt_jo.put("qty_unit_id", mater.getString("base_unit_id")); - WQLObject.getWQLObject("st_ivt_structivt").insert(ivt_jo); - total_weight += box_row.getDoubleValue("net_weight"); - } - - //更新总重量 - HashMap sub_map = new HashMap<>(); - //sub_map.put("box_weight", total_weight + ""); - //sub_map.put("quanlity_in_box", box_rows.size() + ""); - sub_map.put("status", "2"); - WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(sub_map, "package_box_sn = '" + package_box_sn + "'"); - - //更新仓位字段 - struct.put("storagevehicle_code", package_box_sn); - WQLObject.getWQLObject("st_ivt_structattr").update(struct); - - //更新点位字段 - HashMap point_map = new HashMap<>(); - point_map.put("vehicle_code", package_box_sn); - WQLObject.getWQLObject("SCH_BASE_Point").update(point_map, "point_code = '" + struct.getString("struct_code") + "'"); - } - } -} +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.tools.service.impl; +// +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.util.IdUtil; +//import cn.hutool.core.util.ObjectUtil; +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.JSONArray; +//import com.alibaba.fastjson.JSONObject; +//import lombok.RequiredArgsConstructor; +//import org.nl.common.utils.SecurityUtils; +//import org.nl.modules.common.config.FileProperties; +//import org.nl.modules.common.exception.BadRequestException; +//import org.nl.modules.common.utils.FileUtil; +//import org.nl.modules.common.utils.PageUtil; +//import org.nl.modules.common.utils.QueryHelp; +//import org.nl.modules.common.utils.ValidationUtil; +//import org.nl.modules.tools.domain.LocalStorage; +//import org.nl.modules.tools.repository.LocalStorageRepository; +//import org.nl.modules.tools.service.LocalStorageService; +//import org.nl.modules.tools.service.dto.LocalStorageDto; +//import org.nl.modules.tools.service.dto.LocalStorageQueryCriteria; +//import org.nl.modules.tools.service.mapstruct.LocalStorageMapper; +//import org.nl.modules.wql.WQL; +//import org.nl.modules.wql.core.bean.WQLObject; +//import org.springframework.data.domain.Page; +//import org.springframework.data.domain.Pageable; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +//import org.springframework.web.multipart.MultipartFile; +// +//import javax.servlet.http.HttpServletResponse; +//import java.io.File; +//import java.io.IOException; +//import java.util.*; +// +///** +// * @author Zheng Jie +// * @date 2019-09-05 +// */ +//@Service +//@RequiredArgsConstructor +//public class LocalStorageServiceImpl implements LocalStorageService { +// +// private final LocalStorageRepository localStorageRepository; +// private final LocalStorageMapper localStorageMapper; +// private final FileProperties properties; +// +// @Override +// public Object queryAll(LocalStorageQueryCriteria criteria, Pageable pageable) { +// Page page = localStorageRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); +// return PageUtil.toPage(page.map(localStorageMapper::toDto)); +// } +// +// @Override +// public List queryAll(LocalStorageQueryCriteria criteria) { +// return localStorageMapper.toDto(localStorageRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder))); +// } +// +// @Override +// public LocalStorageDto findById(Long id) { +// LocalStorage localStorage = localStorageRepository.findById(id).orElseGet(LocalStorage::new); +// ValidationUtil.isNull(localStorage.getId(), "LocalStorage", "id", id); +// return localStorageMapper.toDto(localStorage); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public LocalStorage create(String name, MultipartFile multipartFile) { +// FileUtil.checkSize(properties.getMaxSize(), multipartFile.getSize()); +// String suffix = FileUtil.getExtensionName(multipartFile.getOriginalFilename()); +// String type = FileUtil.getFileType(suffix); +// File file = FileUtil.upload(multipartFile, properties.getPath().getPath() + type + File.separator); +// if (ObjectUtil.isNull(file)) { +// throw new BadRequestException("上传失败"); +// } +// try { +// name = StrUtil.isEmpty(name) ? FileUtil.getFileNameNoEx(multipartFile.getOriginalFilename()) : name; +// LocalStorage localStorage = new LocalStorage( +// file.getName(), +// name, +// suffix, +// file.getPath(), +// type, +// FileUtil.getSize(multipartFile.getSize()) +// ); +// return localStorageRepository.save(localStorage); +// } catch (Exception e) { +// FileUtil.del(file); +// throw e; +// } +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void update(LocalStorage resources) { +// LocalStorage localStorage = localStorageRepository.findById(resources.getId()).orElseGet(LocalStorage::new); +// ValidationUtil.isNull(localStorage.getId(), "LocalStorage", "id", resources.getId()); +// localStorage.copy(resources); +// localStorageRepository.save(localStorage); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void deleteAll(Long[] ids) { +// for (Long id : ids) { +// LocalStorage storage = localStorageRepository.findById(id).orElseGet(LocalStorage::new); +// FileUtil.del(storage.getPath()); +// localStorageRepository.delete(storage); +// } +// } +// +// @Override +// public void download(List queryAll, HttpServletResponse response) throws IOException { +// List> list = new ArrayList<>(); +// for (LocalStorageDto localStorageDTO : queryAll) { +// Map map = new LinkedHashMap<>(); +// map.put("文件名", localStorageDTO.getRealName()); +// map.put("备注名", localStorageDTO.getName()); +// map.put("文件类型", localStorageDTO.getType()); +// map.put("文件大小", localStorageDTO.getSize()); +// map.put("创建者", localStorageDTO.getCreateBy()); +// map.put("创建日期", localStorageDTO.getCreateTime()); +// list.add(map); +// } +// FileUtil.downloadExcel(list, response); +// } +// +// /** +// * 导入数据 +// * +// * @param path +// */ +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void importExcel(String path) { +// WQLObject measureunitTab = WQLObject.getWQLObject("md_pb_measureunit"); +// WQLObject materialbaseTab = WQLObject.getWQLObject("md_me_materialbase"); +// String currentUserId = SecurityUtils.getCurrentUserId(); +// String nickName = SecurityUtils.getCurrentNickName(); +// String now = DateUtil.now(); +// //List> listMap = EasyExcel.read(path).sheet(1).doReadSync(); +// List> listMap = new ArrayList<>(); +// for (int i = 3; i < listMap.size(); i++) { +// Map map = listMap.get(i); +// +// /*//外库,计划内 +// String package_box_sn = String.valueOf(map.get(16)); +// String container_name = String.valueOf(map.get(8)); +// String sale_order = String.valueOf(map.get(14)); +// String no = String.valueOf(map.get(15)); +// String customer_name = String.valueOf(map.get(20)); +// String sap_pcsn = String.valueOf(map.get(9)); +// String customer_description = String.valueOf(map.get(21)); +// String product_name = String.valueOf(map.get(1)); +// String product_description = String.valueOf(map.get(2)); +// String date_of_FG_inbound = String.valueOf(map.get(11)); +// String width = String.valueOf(map.get(22)); +// String thickness = String.valueOf(map.get(23)); +// String net_weight = String.valueOf(map.get(3)); +// String length = String.valueOf(map.get(25)); +// String is_un_plan_production = "0";*/ +// +// /*//外库,计划外分切 +// String package_box_sn = String.valueOf(map.get(26)); +// String container_name = String.valueOf(map.get(33)); +// String sale_order = String.valueOf(map.get(29)); +// //String no = String.valueOf(map.get(15)); +// String customer_name = String.valueOf(map.get(30)); +// String sap_pcsn = String.valueOf(map.get(33)); +// String customer_description = String.valueOf(map.get(31)); +// String product_name = String.valueOf(map.get(2)); +// String product_description = String.valueOf(map.get(3)); +// String date_of_FG_inbound = String.valueOf(map.get(25)); +// String width = String.valueOf(map.get(34)); +// String thickness = String.valueOf(map.get(35)); +// String net_weight = String.valueOf(map.get(37)); +// String length = String.valueOf(map.get(38)); +// String is_un_plan_production = "1";*/ +// +// //成品库,计划内 +// String package_box_sn = String.valueOf(map.get(18)); +// String container_name = String.valueOf(map.get(10)); +// String sale_order = String.valueOf(map.get(16)); +// String no = String.valueOf(map.get(17)); +// String customer_name = String.valueOf(map.get(22)); +// String sap_pcsn = String.valueOf(map.get(9)); +// String customer_description = String.valueOf(map.get(23)); +// String product_name = String.valueOf(map.get(2)); +// String product_description = String.valueOf(map.get(3)); +// String date_of_FG_inbound = String.valueOf(map.get(12)); +// String width = String.valueOf(map.get(24)); +// String thickness = String.valueOf(map.get(25)); +// String net_weight = String.valueOf(map.get(4)); +// String length = String.valueOf(map.get(27)); +// String is_un_plan_production = "0"; +// +// /*//成品库,计划外 +// String package_box_sn = String.valueOf(map.get(26)); +// String container_name = String.valueOf(map.get(34)); +// String sale_order = String.valueOf(map.get(29)); +// //String no = String.valueOf(map.get(17)); +// String customer_name = String.valueOf(map.get(30)); +// String sap_pcsn = String.valueOf(map.get(33)); +// String customer_description = String.valueOf(map.get(31)); +// String product_name = String.valueOf(map.get(2)); +// String product_description = String.valueOf(map.get(3)); +// String date_of_FG_inbound = String.valueOf(map.get(25)); +// String width = String.valueOf(map.get(36)); +// String thickness = String.valueOf(map.get(37)); +// String net_weight = String.valueOf(map.get(5)); +// String length = String.valueOf(map.get(40)); +// String is_un_plan_production = "1";*/ +// +// /*if (StrUtil.isEmpty(package_box_sn)) { +// throw new BadRequestException("第" + (i + 2) + "行的木箱唯一码为空!"); +// }*/ +// if (StrUtil.isEmpty(sale_order)) { +// throw new BadRequestException("第" + (i + 2) + "行的销售订单及行号为空!"); +// } +// if (StrUtil.isEmpty(customer_name)) { +// throw new BadRequestException("第" + (i + 2) + "行的客户编号为空!"); +// } +// if (StrUtil.isEmpty(customer_description)) { +// throw new BadRequestException("第" + (i + 2) + "行的客户名称为空!"); +// } +// if (StrUtil.isEmpty(product_name)) { +// throw new BadRequestException("第" + (i + 2) + "行的产品编码为空!"); +// } +// if (StrUtil.isEmpty(product_description)) { +// throw new BadRequestException("第" + (i + 2) + "行的产品描述为空!"); +// } +// if (StrUtil.isEmpty(container_name)) { +// throw new BadRequestException("第" + (i + 2) + "行的子卷号为空!"); +// } +// if (StrUtil.isEmpty(width)) { +// throw new BadRequestException("第" + (i + 2) + "行的产品规格(幅宽)为空!"); +// } +// if (StrUtil.isEmpty(net_weight)) { +// throw new BadRequestException("第" + (i + 2) + "行的净重为空!"); +// } +// if (StrUtil.isEmpty(length)) { +// throw new BadRequestException("第" + (i + 2) + "行的长度为空!"); +// } +// if (StrUtil.isEmpty(is_un_plan_production)) { +// throw new BadRequestException("第" + (i + 2) + "行的计划外分切的子卷为空!"); +// } +// +// JSONObject jo = new JSONObject(); +// jo.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); +// jo.put("package_box_sn", package_box_sn); +// jo.put("sap_pcsn", sap_pcsn); +//// jo.put("box_weight", BoxWeight); +// jo.put("quality_guaran_period", "90"); +// jo.put("sale_order_name", sale_order + "-" + no); +// //jo.put("sale_order_name", sale_order); +// jo.put("customer_name", customer_name); +// jo.put("customer_description", customer_description); +// jo.put("product_name", product_name); +// jo.put("product_description", product_description); +// jo.put("date_of_FG_inbound", date_of_FG_inbound); +// jo.put("container_name", container_name); +// jo.put("width", width); +// if (StrUtil.isEmpty(thickness) || thickness.equals("null")) { +// //查询物料中的厚度 +// JSONObject mater = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + jo.getString("product_name") + "'").uniqueResult(0); +// String code = mater.getString("material_name"); +// code = code.replace("|", ","); +// String[] split = code.split(","); +// String last = split[2]; +// String[] s = last.split("微"); +// thickness = s[0]; +// } +// jo.put("thickness", thickness); +// jo.put("net_weight", net_weight); +// jo.put("length", length); +// jo.put("date_of_production", date_of_FG_inbound); +// jo.put("is_un_plan_production", is_un_plan_production); +// jo.put("status", "0"); +// jo.put("create_id", "1"); +// jo.put("create_name", "管理员"); +// jo.put("create_time", DateUtil.now()); +// WQLObject tab = WQLObject.getWQLObject("PDM_BI_SubPackageRelation"); +// tab.insert(jo); +// } +// +// JSONArray rows = WQL.getWO("ST_REGION_IN_01").addParam("flag", "3").process().getResultJSONArray(0); +// for (int i = 0; i < rows.size(); i++) { +// JSONObject row = rows.getJSONObject(i); +// String package_box_sn = row.getString("package_box_sn"); +// if (StrUtil.isEmpty(package_box_sn) || package_box_sn.equals("null")) { +// continue; +// } +// double total_weight = 0; +// JSONArray box_rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + package_box_sn + "'").getResultJSONArray(0); +// +// //判断该木箱是否已经存在库内 +// JSONObject str_jo = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + row.get("package_box_sn") + "'").uniqueResult(0); +// if (ObjectUtil.isNotEmpty(str_jo)) { +// throw new BadRequestException("木箱:" + row.get("package_box_sn") + "已存在库内,请对数据进行核实!"); +// } +// +// //判断是否属于外库 +// JSONObject goal_row = box_rows.getJSONObject(0); +// JSONObject stor_jo = new JSONObject(); +// if (goal_row.getString("remark").contains("外库")) { +// stor_jo = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_virtualstore = '1'").uniqueResult(0); +// } else { +// stor_jo = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_productstore = '1'").uniqueResult(0); +// } +// +// //查询一个空的虚拟区货位 +// JSONObject struct = WQL.getWO("PDA_ST_01").addParam("flag", "3").addParam("stor_id", stor_jo.getString("stor_id")).process().uniqueResult(0); +// for (int j = 0; j < box_rows.size(); j++) { +// JSONObject box_row = box_rows.getJSONObject(j); +// JSONObject ivt_jo = new JSONObject(); +// //插入库存数据 +// ivt_jo.put("stockrecord_id", IdUtil.getSnowflake(1, 1).nextId()); +// ivt_jo.put("struct_id", struct.getString("struct_id")); +// ivt_jo.put("struct_code", struct.getString("struct_code")); +// ivt_jo.put("struct_name", struct.getString("struct_name")); +// ivt_jo.put("region_id", ""); +// ivt_jo.put("quality_scode", "01"); +// ivt_jo.put("pcsn", box_row.getString("container_name")); +// ivt_jo.put("canuse_qty", box_row.getString("net_weight")); +// ivt_jo.put("frozen_qty", 0); +// ivt_jo.put("ivt_qty", box_row.getString("net_weight")); +// ivt_jo.put("instorage_time", DateUtil.now()); +// JSONObject mater = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + box_row.getString("product_name") + "'").uniqueResult(0); +// ivt_jo.put("material_id", mater.getString("material_id")); +// ivt_jo.put("qty_unit_id", mater.getString("base_unit_id")); +// WQLObject.getWQLObject("st_ivt_structivt").insert(ivt_jo); +// total_weight += box_row.getDoubleValue("net_weight"); +// } +// +// //更新总重量 +// HashMap sub_map = new HashMap<>(); +// //sub_map.put("box_weight", total_weight + ""); +// //sub_map.put("quanlity_in_box", box_rows.size() + ""); +// sub_map.put("status", "2"); +// WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(sub_map, "package_box_sn = '" + package_box_sn + "'"); +// +// //更新仓位字段 +// struct.put("storagevehicle_code", package_box_sn); +// WQLObject.getWQLObject("st_ivt_structattr").update(struct); +// +// //更新点位字段 +// HashMap point_map = new HashMap<>(); +// point_map.put("vehicle_code", package_box_sn); +// WQLObject.getWQLObject("SCH_BASE_Point").update(point_map, "point_code = '" + struct.getString("struct_code") + "'"); +// } +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/mapstruct/LocalStorageMapper.java b/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/mapstruct/LocalStorageMapper.java index 26c06d4ef..95a01f418 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/mapstruct/LocalStorageMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/tools/service/mapstruct/LocalStorageMapper.java @@ -1,32 +1,32 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.modules.tools.service.mapstruct; - - -import org.mapstruct.Mapper; -import org.mapstruct.ReportingPolicy; -import org.nl.modules.common.base.BaseMapper; -import org.nl.modules.tools.domain.LocalStorage; -import org.nl.modules.tools.service.dto.LocalStorageDto; - -/** - * @author Zheng Jie - * @date 2019-09-05 - */ -@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) -public interface LocalStorageMapper extends BaseMapper { - -} \ No newline at end of file +///* +// * Copyright 2019-2020 Zheng Jie +// * +// * 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 org.nl.modules.tools.service.mapstruct; +// +// +//import org.mapstruct.Mapper; +//import org.mapstruct.ReportingPolicy; +//import org.nl.modules.common.base.BaseMapper; +//import org.nl.modules.tools.domain.LocalStorage; +//import org.nl.modules.tools.service.dto.LocalStorageDto; +// +///** +// * @author Zheng Jie +// * @date 2019-09-05 +// */ +//@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) +//public interface LocalStorageMapper extends BaseMapper { +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java new file mode 100644 index 000000000..d7cc73b1f --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java @@ -0,0 +1,73 @@ +package org.nl.system.controller.coderule; + + +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.logging.annotation.Log; +import org.nl.system.service.coderule.ISysCodeRuleService; +import org.nl.system.service.coderule.dao.SysCodeRule; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.Map; +import java.util.Set; + +/** + *

+ * 编码规则表 前端控制器 + *

+ * + * @author generator + * @since 2022-12-19 + */ +@RestController + +@RequestMapping("/api/genCode") +public class SysCodeRuleController { + @Autowired + private ISysCodeRuleService codeRuleService; + + + @GetMapping + @SaCheckPermission("genCode:list") + public ResponseEntity queryAll(@RequestParam Map form, PageQuery pageable) { + return new ResponseEntity<>(TableDataInfo.build(codeRuleService.queryAll(form, pageable)), HttpStatus.OK); + } + + @Log("新增编码") + @PostMapping + @SaCheckPermission("genCode:add") + public ResponseEntity create(@Validated @RequestBody SysCodeRule codeRule) { + codeRuleService.create(codeRule); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @Log("删除编码") + @DeleteMapping + @SaCheckPermission("genCode:del") + public ResponseEntity delete(@RequestBody Set ids) { + codeRuleService.deleteCodeRule(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @Log("修改编码") + @PutMapping + @SaCheckPermission("genCode:edit") + public ResponseEntity update(@RequestBody SysCodeRule codeRule) { + codeRuleService.updateCodeRule(codeRule); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + + @GetMapping(value = "/codeDemo") + @SaCheckPermission("genCode:list") + public ResponseEntity CodeDemo(@RequestParam Map form) throws IOException { + return new ResponseEntity<>(codeRuleService.codeDemo(form), HttpStatus.OK); + } +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/coderule/SysCodeRuleDetailController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/coderule/SysCodeRuleDetailController.java new file mode 100644 index 000000000..6a40a1ff9 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/coderule/SysCodeRuleDetailController.java @@ -0,0 +1,66 @@ +package org.nl.system.controller.coderule; + + +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.logging.annotation.Log; +import org.nl.system.service.coderule.ISysCodeRuleDetailService; +import org.nl.system.service.coderule.dao.SysCodeRuleDetail; +import org.nl.system.service.coderule.dto.CodeRuleDetailQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +/** + *

+ * 编码规则明细表 前端控制器 + *

+ * + * @author generator + * @since 2022-12-20 + */ + +@RestController +@RequestMapping("/api/codeDetail") +public class SysCodeRuleDetailController { + + @Autowired + private ISysCodeRuleDetailService codeDetailService; + + + @GetMapping + @SaCheckPermission("genCode:list") + public ResponseEntity queryAll(CodeRuleDetailQuery form, PageQuery pageable) { + return new ResponseEntity<>(TableDataInfo.build(codeDetailService.queryAll(form, pageable)), HttpStatus.OK); + } + + @Log("新增编码明细") + + @PostMapping + @SaCheckPermission("genCode:add") + public ResponseEntity create(@RequestBody SysCodeRuleDetail codeRuleDetail) { + codeDetailService.create(codeRuleDetail); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @Log("删除编码明细") + + @DeleteMapping(value = "/{id}") + @SaCheckPermission("genCode:del") + public ResponseEntity delete(@PathVariable String id) { + codeDetailService.delete(id); + return new ResponseEntity<>(HttpStatus.OK); + } + + @Log("修改编码明细") + + @PutMapping + @SaCheckPermission("genCode:edit") + public ResponseEntity update(@RequestBody SysCodeRuleDetail json) { + codeDetailService.update(json); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/dept/DeptController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/dept/DeptController.java index 416b3a613..572c454ae 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/dept/DeptController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/dept/DeptController.java @@ -18,7 +18,6 @@ package org.nl.system.controller.dept; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaMode; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.modules.common.exception.BadRequestException; @@ -27,6 +26,7 @@ import org.nl.modules.logging.annotation.Log; import org.nl.system.service.dept.ISysDeptService; import org.nl.system.service.dept.dao.SysDept; import org.nl.system.service.dept.dto.DeptQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.CollectionUtils; @@ -41,12 +41,12 @@ import java.util.Set; * @date 2019-03-25 */ @RestController -@RequiredArgsConstructor @RequestMapping("/api/dept") public class DeptController { - private final ISysDeptService deptService; + @Autowired + private ISysDeptService deptService; @GetMapping @@ -78,34 +78,28 @@ public class DeptController { return new ResponseEntity<>(deptService.getSuperior(ids), HttpStatus.OK); } - // @Log("新增部门") @PostMapping -// @SaCheckPermission("dept:add") public ResponseEntity create(@Validated @RequestBody SysDept resources) { deptService.createDept(resources); return new ResponseEntity<>(HttpStatus.CREATED); } - // @Log("修改部门") @PutMapping -// @SaCheckPermission("dept:edit") public ResponseEntity update(@Validated @RequestBody SysDept dept) { - if (dept.getPid() != null && dept.getDeptId().equals(dept.getPid())) { + if (dept.getPid() != null && dept.getDept_id().equals(dept.getPid())) { throw new BadRequestException("上级不能为自己"); } deptService.updateDept(dept); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } - // @Log("删除部门") @DeleteMapping -// @SaCheckPermission("dept:del") public ResponseEntity delete(@RequestBody Set deptIds) { if (CollectionUtils.isEmpty(deptIds)) { return ResponseEntity.noContent().build(); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/dept/SysUserDeptController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/dept/SysUserDeptController.java deleted file mode 100644 index 626ab5426..000000000 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/dept/SysUserDeptController.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.nl.system.controller.dept; - - -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 部门表 前端控制器 - *

- * - * @author generator - * @since 2022-12-15 - */ -@RestController -@RequestMapping("/sysUserDept") -public class SysUserDeptController { - -} - diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/dict/SysDictController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/dict/SysDictController.java index f307be25e..dc3da84de 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/dict/SysDictController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/dict/SysDictController.java @@ -1,14 +1,13 @@ package org.nl.system.controller.dict; - import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; import org.nl.system.service.dict.ISysDictService; import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.dict.dto.DictQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; @@ -28,11 +27,11 @@ import java.util.Set; * @since 2022-12-14 */ @RestController -@RequiredArgsConstructor @RequestMapping("/api/dict") public class SysDictController { - private final ISysDictService dictService; + @Autowired + private ISysDictService dictService; @Log("查询字典") @GetMapping @@ -42,6 +41,13 @@ public class SysDictController { return new ResponseEntity<>(TableDataInfo.build(dictService.queryAll(whereJson, pageable)), HttpStatus.OK); } + + @GetMapping(value = "/all") +// @SaCheckPermission("dict:list") + public ResponseEntity queryAll() { + return new ResponseEntity<>(dictService.queryAll(), HttpStatus.OK); + } + @Log("新增字典") @PostMapping diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/generator/CodeGenConfigController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/generator/CodeGenConfigController.java index bffd59a96..550b93bf9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/generator/CodeGenConfigController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/generator/CodeGenConfigController.java @@ -36,7 +36,7 @@ public class CodeGenConfigController { @PutMapping public ResponseEntity update(@Validated @RequestBody CodeGenConfig genConfig) { - return new ResponseEntity<>(genConfigService.update(genConfig.getTableName(), genConfig), HttpStatus.OK); + return new ResponseEntity<>(genConfigService.update(genConfig.getTable_name(), genConfig), HttpStatus.OK); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/logging/SysLogController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/logging/SysLogController.java new file mode 100644 index 000000000..ced041deb --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/logging/SysLogController.java @@ -0,0 +1,80 @@ +package org.nl.system.controller.logging; + + +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.logging.annotation.Log; +import org.nl.common.utils.SecurityUtils; +import org.nl.system.service.logging.ISysLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + *

+ * 系统日志 前端控制器 + *

+ * + * @author generator + * @since 2023-05-08 + */ +@RestController +@RequestMapping("/api/logs") + +public class SysLogController { + @Autowired + private ISysLogService logService; + + @GetMapping + + //@SaCheckPermission("@el.check()") + public ResponseEntity query(@RequestParam Map criteria, PageQuery pageable) { + criteria.put("log_type", "INFO"); + return new ResponseEntity<>(TableDataInfo.build(logService.queryAll(criteria, pageable)), HttpStatus.OK); + } + + @GetMapping(value = "/user") + // + public ResponseEntity queryUserLog(@RequestParam Map criteria, PageQuery pageable) { + criteria.put("log_type", "INFO"); + criteria.put("username", SecurityUtils.getCurrentUsername()); + return new ResponseEntity<>(TableDataInfo.build(logService.queryAll(criteria, pageable)), HttpStatus.OK); + } + + @GetMapping(value = "/error") + + // @SaCheckPermission("@el.check()") + public ResponseEntity queryErrorLog(@RequestParam Map criteria, PageQuery pageable) { + criteria.put("log_type", "ERROR"); + return new ResponseEntity<>(TableDataInfo.build(logService.queryAll(criteria, pageable)), HttpStatus.OK); + } + + @GetMapping(value = "/error/{id}") + + // @SaCheckPermission("@el.check()") + public ResponseEntity queryErrorLogs(@PathVariable String id) { + return new ResponseEntity<>(logService.findByErrDetail(id), HttpStatus.OK); + } + + @DeleteMapping(value = "/del/error") + @Log("删除所有ERROR日志") + + // @SaCheckPermission("@el.check()") + public ResponseEntity delAllErrorLog() { + logService.delAllByError(); + return new ResponseEntity<>(HttpStatus.OK); + } + + @DeleteMapping(value = "/del/info") + @Log("删除所有INFO日志") + + // @SaCheckPermission("@el.check()") + public ResponseEntity delAllInfoLog() { + logService.delAllByInfo(); + return new ResponseEntity<>(HttpStatus.OK); + } +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/logicflow/StageController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/logicflow/StageController.java new file mode 100644 index 000000000..53333c142 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/logicflow/StageController.java @@ -0,0 +1,97 @@ +package org.nl.system.controller.logicflow; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.logging.annotation.Log; +import org.nl.system.service.logicflow.IStageService; +import org.nl.system.service.logicflow.dao.Stage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; +import java.util.Set; + +/** + *

+ * 舞台主表 前端控制器 + *

+ * + * @author generator + * @since 2023-05-08 + */ +@Slf4j +@RestController + +@RequestMapping("/api/stage") +public class StageController { + + @Autowired + private IStageService stageService; + + @GetMapping + @Log("查询舞台") + + //@SaCheckPermission("stage:list") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(stageService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增舞台") + + //@SaCheckPermission("stage:add") + public ResponseEntity create(@Validated @RequestBody Stage dto) { + stageService.create(dto); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改舞台") + + //@SaCheckPermission("stage:edit") + public ResponseEntity update(@Validated @RequestBody Stage dto) { + stageService.update(dto); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除舞台") + + //@SaCheckPermission("stage:del") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + stageService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @GetMapping("/selectList") + @Log("下拉选舞台") + + //@SaCheckPermission("routePlan:list") + public ResponseEntity selectList() { + return new ResponseEntity<>(stageService.selectList(), HttpStatus.OK); + } + + @PostMapping("/addNewStage") + @Log("保存舞台数据") + + public ResponseEntity addNewStage(@Validated @RequestBody Stage dto) { + log.info("dto{}", dto); + stageService.addNewStage(dto); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PostMapping("/getNewStageDataByCode") + @Log("根据stage_code获取舞台数据") + + public ResponseEntity getNewStageDataByCode(@RequestBody String code) { + Stage one = stageService.getOne(new LambdaQueryWrapper().eq(Stage::getStage_code, code)); + return new ResponseEntity<>(one, HttpStatus.CREATED); + } + +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/logicflow/StageImageController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/logicflow/StageImageController.java new file mode 100644 index 000000000..c495c3527 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/logicflow/StageImageController.java @@ -0,0 +1,79 @@ +package org.nl.system.controller.logicflow; + + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.logging.annotation.Log; +import org.nl.system.service.logicflow.IStageImageService; +import org.nl.system.service.logicflow.dao.StageImage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; +import java.util.Set; + + +/** + * @Author: lyd + * @Description: 舞台图标控制层 + * @Date: 2022-07-29 + */ +@RestController +@RequiredArgsConstructor + +@RequestMapping("/api/stageImage") +@Slf4j +public class StageImageController { + + @Autowired + private IStageImageService stageImageService; + + @GetMapping + @Log("查询舞台") + + //@SaCheckPermission("stageImage:list") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(stageImageService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增舞台图片") + + //@SaCheckPermission("stageImage:add") + public ResponseEntity create(@Validated @RequestBody StageImage entity) { + stageImageService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改舞台") + + //@SaCheckPermission("stageImage:edit") + public ResponseEntity update(@Validated @RequestBody StageImage entity) { + stageImageService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除舞台") + + //@SaCheckPermission("stageImage:del") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + stageImageService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @GetMapping("/selectList") + @Log("下拉选设备图标") + + //@SaCheckPermission("routePlan:list") + public ResponseEntity selectList() { + return new ResponseEntity<>(stageImageService.selectList(), HttpStatus.OK); + } +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/menu/SysMenuController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/menu/SysMenuController.java index d738a144e..ffafe98c5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/menu/SysMenuController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/menu/SysMenuController.java @@ -5,7 +5,6 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; @@ -13,6 +12,7 @@ import org.nl.system.service.menu.ISysMenuService; import org.nl.system.service.menu.dao.SysMenu; import org.nl.system.service.menu.dto.MenuDto; import org.nl.system.service.menu.dto.MenuQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; @@ -31,9 +31,9 @@ import java.util.stream.Collectors; */ @RestController @RequestMapping("api/sysMenu") -@RequiredArgsConstructor public class SysMenuController { - private final ISysMenuService iSysMenuService; + @Autowired + private ISysMenuService iSysMenuService; @GetMapping(value = "/build") @@ -49,7 +49,6 @@ public class SysMenuController { return new ResponseEntity<>(iSysMenuService.getMenus(pid), HttpStatus.OK); } - @PostMapping(value = "/getMenusByRole") @SaCheckPermission(value = {"menu:list", "roles:list"}, mode = SaMode.AND) public ResponseEntity getMenusByRole(@RequestBody JSONObject json) { @@ -67,7 +66,7 @@ public class SysMenuController { List menuList = iSysMenuService.getMenus(id); menuSet.add(iSysMenuService.findById(id)); menuSet = iSysMenuService.getChildMenus(menuList, menuSet); - Set ids = menuSet.stream().map(SysMenu::getMenuId).collect(Collectors.toSet()); + Set ids = menuSet.stream().map(SysMenu::getMenu_id).collect(Collectors.toSet()); return new ResponseEntity<>(ids, HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/monitor/MonitorController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/monitor/MonitorController.java new file mode 100644 index 000000000..a4cdca5f3 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/monitor/MonitorController.java @@ -0,0 +1,48 @@ +/* + * Copyright 2019-2020 Zheng Jie + * + * 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 org.nl.system.controller.monitor; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import lombok.RequiredArgsConstructor; +import org.nl.system.service.monitor.MonitorService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author Zheng Jie + * @date 2020-05-02 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/monitor") +public class MonitorController { + + private final MonitorService serverService; + + @GetMapping + @SaCheckPermission("monitor:list") + public ResponseEntity query() { + return new ResponseEntity<>(serverService.getServers(), HttpStatus.OK); + } + +// @GetMapping("/getThreadData") +// public ResponseEntity getThreadData() { +// return new ResponseEntity<>(serverService.getThreadData(), HttpStatus.OK); +// } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/param/SysParamController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/param/SysParamController.java index a9aed4a1e..0aa2ea2a2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/param/SysParamController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/param/SysParamController.java @@ -1,13 +1,13 @@ package org.nl.system.controller.param; import cn.dev33.satoken.annotation.SaIgnore; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.dao.Param; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; @@ -29,13 +29,13 @@ import java.util.Map; @Slf4j @RestController @RequestMapping("/api/param") -@RequiredArgsConstructor class SysParamController { - private final ISysParamService paramService; + + @Autowired + private ISysParamService paramService; @GetMapping - @Log(value = "查询系统参数", isAddLogTable = true, isInterfaceLog = true) - + @Log("查询系统参数") //@SaCheckPermission("param:list") public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { return new ResponseEntity<>(TableDataInfo.build(paramService.queryPage(whereJson, page)), HttpStatus.OK); @@ -43,7 +43,6 @@ class SysParamController { @PostMapping @Log("新增系统参数") - //@SaCheckPermission("param:add") public ResponseEntity create(@Validated @RequestBody Param param) { paramService.create(param); @@ -52,7 +51,6 @@ class SysParamController { @PutMapping @Log("修改系统参数") - //@SaCheckPermission("param:edit") public ResponseEntity update(@Validated @RequestBody Param param) { paramService.update(param); @@ -60,7 +58,6 @@ class SysParamController { } @Log("删除系统参数") - //@SaCheckPermission("param:del") @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) { @@ -71,7 +68,6 @@ class SysParamController { @PostMapping("/getValueByCode/{code}") @Log("根据编码获取值") - @SaIgnore public ResponseEntity getValueByCode(@PathVariable String code) { return new ResponseEntity<>(paramService.findByCode(code), HttpStatus.CREATED); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/permission/SysDataPermissionController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/permission/SysDataPermissionController.java index 1ab2c5a36..d2e64955d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/permission/SysDataPermissionController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/permission/SysDataPermissionController.java @@ -2,7 +2,6 @@ package org.nl.system.controller.permission; import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; @@ -10,6 +9,7 @@ import org.nl.modules.logging.annotation.Log; import org.nl.system.service.permission.ISysDataPermissionService; import org.nl.system.service.permission.dao.SysDataPermission; import org.nl.system.service.permission.dto.SysDataPermissionQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; @@ -27,12 +27,12 @@ import java.util.Set; */ @Slf4j @RestController -@RequiredArgsConstructor @RequestMapping("/api/dataPermission") public class SysDataPermissionController { - private final ISysDataPermissionService dataPermissionService; + @Autowired + private ISysDataPermissionService dataPermissionService; @GetMapping @Log("查询数据权限") diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/quartz/SysQuartzJobController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/quartz/SysQuartzJobController.java index 9bfda8932..2c914bf78 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/quartz/SysQuartzJobController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/quartz/SysQuartzJobController.java @@ -2,7 +2,6 @@ package org.nl.system.controller.quartz; import cn.dev33.satoken.annotation.SaCheckPermission; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; @@ -11,6 +10,7 @@ import org.nl.modules.logging.annotation.Log; import org.nl.system.service.quartz.ISysQuartzJobService; import org.nl.system.service.quartz.dao.SysQuartzJob; import org.nl.system.service.quartz.dto.JobQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; @@ -28,13 +28,13 @@ import java.util.Set; */ @Slf4j @RestController -@RequiredArgsConstructor @RequestMapping("/api/jobs") public class SysQuartzJobController { private static final String ENTITY_NAME = "quartzJob"; - private final ISysQuartzJobService quartzJobService; + @Autowired + private ISysQuartzJobService quartzJobService; @GetMapping @@ -55,7 +55,7 @@ public class SysQuartzJobController { @PostMapping @SaCheckPermission("timing:add") public ResponseEntity create(@Validated @RequestBody SysQuartzJob resources) { - if (resources.getJobId() != null) { + if (resources.getJob_id() != null) { throw new BadRequestException("A new " + ENTITY_NAME + " cannot already have an ID"); } quartzJobService.createJob(resources); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/redis/RedisController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/redis/RedisController.java new file mode 100644 index 000000000..0cd21f1eb --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/redis/RedisController.java @@ -0,0 +1,56 @@ +package org.nl.system.controller.redis; + + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.logging.annotation.Log; +import org.nl.system.service.redis.RedisService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +/** + * @Author: lyd + * @Description: Redis监控管理 + * @Date: 2022-08-04 + */ +@RestController +@RequiredArgsConstructor + +@RequestMapping("/api/redis") +@Slf4j +public class RedisController { + + private final RedisService redisService; + + @GetMapping("/get-monitor-info") + @Log("查询redis的信息") + + public ResponseEntity getRedisMonitorInfo() { + return new ResponseEntity<>(redisService.getRedisMonitorInfo(), HttpStatus.OK); + } + + @GetMapping("/get-key-define-list") + @Log("获得 Redis Key 模板列表") + + public ResponseEntity getKeyDefineList() { + return new ResponseEntity<>(redisService.getKeyDefineList(), HttpStatus.OK); + } + + @GetMapping("/get-key-value-list") + @Log("获得 Redis Key Value列表") + + public ResponseEntity getKeyValueList() { + return new ResponseEntity<>(redisService.getKeyValueList(), HttpStatus.OK); + } + + @Log("根据key删除Redis数据") + + @DeleteMapping + public ResponseEntity deleteByKey(@RequestBody String[] ids) { + redisService.deleteByKey(ids); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/role/SysRoleController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/role/SysRoleController.java index 8e8c6e223..ea547bbef 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/role/SysRoleController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/role/SysRoleController.java @@ -2,11 +2,11 @@ package org.nl.system.controller.role; import cn.dev33.satoken.annotation.SaCheckPermission; import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; import org.nl.system.service.role.ISysRoleService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -24,10 +24,10 @@ import java.util.Set; */ @RestController @RequestMapping("/api/sysRole") -@RequiredArgsConstructor public class SysRoleController { - private final ISysRoleService roleService; + @Autowired + private ISysRoleService roleService; @GetMapping diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/secutiry/AuthorizationController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/secutiry/AuthorizationController.java index 6286591ae..315e889ef 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/secutiry/AuthorizationController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/secutiry/AuthorizationController.java @@ -1,18 +1,3 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.system.controller.secutiry; @@ -21,25 +6,23 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.wf.captcha.base.Captcha; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.constants.GeneralDefinition; import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.dto.CurrentUser; import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.security.config.bean.LoginCodeEnum; import org.nl.modules.security.config.bean.LoginProperties; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.system.service.dept.ISysDeptService; -import org.nl.system.service.dept.dao.SysDept; import org.nl.system.service.secutiry.impl.OnlineUserService; -import org.nl.system.service.user.dto.CurrentUser; +import org.nl.system.service.user.ISysUserService; +import org.nl.system.service.user.dao.SysUser; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -51,23 +34,23 @@ import java.util.concurrent.TimeUnit; @Slf4j @RestController @RequestMapping("/auth") -@RequiredArgsConstructor - public class AuthorizationController { - private final RedisUtils redisUtils; - private final OnlineUserService onlineUserService; - private final ISysDeptService deptService; - - @Resource + @Autowired + private RedisUtils redisUtils; + @Autowired + private OnlineUserService onlineUserService; + @Autowired + private ISysUserService userService; + @Autowired private LoginProperties loginProperties; @PostMapping(value = "/login") - public ResponseEntity login(@RequestBody Map authMap) throws Exception { + public ResponseEntity login(@RequestBody Map authMap, HttpServletRequest request) throws Exception { if (ObjectUtil.isEmpty(authMap)) { return ResponseEntity.noContent().build(); } - return ResponseEntity.ok(onlineUserService.login(authMap)); + return ResponseEntity.ok(onlineUserService.login(authMap, request)); } @@ -77,10 +60,6 @@ public class AuthorizationController { JSONObject jsonObject = new JSONObject(); jsonObject.put("roles", SecurityUtils.getCurrentUserPermissions()); jsonObject.put("user", currentUser.getUser()); - //TODO:添加部门 - List depts = deptService.getUserDeptRelation(currentUser.getId()); - jsonObject.put("depts", depts); - return ResponseEntity.ok(jsonObject); } @@ -88,8 +67,7 @@ public class AuthorizationController { @GetMapping(value = "/userInfo") public ResponseEntity getUserInfo(Long loginId) { if (loginId != null) { - WQLObject userTab = WQLObject.getWQLObject("sys_user"); - JSONObject user = userTab.query("user_id = '" + loginId + "'").uniqueResult(0); + SysUser user = userService.getById(loginId); return ResponseEntity.ok(user); } return ResponseEntity.noContent().build(); @@ -103,8 +81,8 @@ public class AuthorizationController { String uuid = IdUtil.simpleUUID(); //当验证码类型为 arithmetic时且长度 >= 2 时,captcha.text()的结果有几率为浮点型 String captchaValue = captcha.text(); - if (captcha.getCharType() - 1 == LoginCodeEnum.arithmetic.ordinal() && captchaValue.contains(".")) { - captchaValue = captchaValue.split("\\.")[0]; + if (captcha.getCharType() - 1 == LoginCodeEnum.arithmetic.ordinal() && captchaValue.contains(GeneralDefinition.DOT)) { + captchaValue = captchaValue.split(GeneralDefinition.ESCAPE_DOT)[0]; } // 保存 redisUtils.set(uuid, captchaValue, loginProperties.getLoginCode().getExpiration(), TimeUnit.MINUTES); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java new file mode 100644 index 000000000..7f594f11d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/secutiry/MobileAuthorizationController.java @@ -0,0 +1,94 @@ +package org.nl.system.controller.secutiry; + +import cn.dev33.satoken.annotation.SaIgnore; +import cn.dev33.satoken.secure.SaSecureUtil; +import cn.dev33.satoken.stp.SaLoginModel; +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.constants.GeneralDefinition; +import org.nl.modules.common.config.RsaProperties; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.dto.CurrentUser; +import org.nl.modules.common.utils.RsaUtils; +import org.nl.system.service.role.ISysRoleService; +import org.nl.system.service.secutiry.dto.AuthUserDto; +import org.nl.system.service.user.ISysUserService; +import org.nl.system.service.user.dao.SysUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @Author: lyd + * @Description: 手持登录鉴权 + * @Date: 2023/7/31 + */ +@Slf4j +@RestController +@RequestMapping("/mobile/auth") + +public class MobileAuthorizationController { + @Autowired + private ISysUserService userService; + @Autowired + private ISysRoleService roleService; + + @PostMapping(value = "/login") + @SaIgnore + public ResponseEntity login(@Validated @RequestBody AuthUserDto authUser, HttpServletRequest request) throws Exception { + // 密码解密 - 前端的加密规则: encrypt(根据实际更改) + String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, authUser.getPassword()); + // 校验数据库 + // 根据用户名查询,在比对密码 + // 拿到多个已经抛出异常 + SysUser userInfo = userService.getOne(new LambdaQueryWrapper() + .eq(SysUser::getUsername, authUser.getUsername())); + // 这里需要密码加密 + if (ObjectUtil.isEmpty(userInfo) || !userInfo.getPassword().equals(SaSecureUtil.md5BySalt(password, GeneralDefinition.SALT))) { + throw new BadRequestException("账号或密码错误!"); + } + // 获取权限列表 - 登录查找权限 + List permissionList = roleService.getPermissionList((JSONObject) JSON.toJSON(userInfo)); + + if (!userInfo.getIs_used()) { + throw new BadRequestException("账号未激活"); + } + + // 登录输入,登出删除 + CurrentUser user = new CurrentUser(); + user.setId(userInfo.getUser_id()); + user.setUsername(userInfo.getUsername()); + user.setPresonName(userInfo.getPerson_name()); + user.setUser(userInfo); + user.setPermissions(permissionList); + + // SaLoginModel 配置登录相关参数 + StpUtil.login(userInfo.getUser_id(), new SaLoginModel() + // 此次登录的客户端设备类型, 用于[同端互斥登录]时指定此次登录的设备类型 + .setDevice("PE") + // Token挂载的扩展参数 (此方法只有在集成jwt插件时才会生效) + .setExtra("loginInfo", user) + ); + + // 返回 token 与 用户信息 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("user", userInfo); + JSONObject authInfo = new JSONObject(2) {{ + put("token", "Bearer " + StpUtil.getTokenValue()); + put("user", jsonObject); + }}; + + return ResponseEntity.ok(authInfo); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/tools/ToolLocalStorageController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/tools/ToolLocalStorageController.java new file mode 100644 index 000000000..5e2ac65a7 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/tools/ToolLocalStorageController.java @@ -0,0 +1,82 @@ +package org.nl.system.controller.tools; + + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaIgnore; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.common.utils.FileUtil; +import org.nl.modules.logging.annotation.Log; +import org.nl.system.service.tools.IToolLocalStorageService; +import org.nl.system.service.tools.dao.ToolLocalStorage; +import org.nl.system.service.tools.dto.ToolLocalStorageQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Set; + +/** + *

+ * 本地存储表 前端控制器 + *

+ * + * @author generator + * @since 2022-12-20 + */ +@RestController + +@RequestMapping("/api/localStorage") +public class ToolLocalStorageController { + @Autowired + private IToolLocalStorageService localStorageService; + + + @GetMapping +// @SaCheckPermission("storage:list") + public ResponseEntity query(ToolLocalStorageQuery criteria, PageQuery pageable) { + return new ResponseEntity<>(TableDataInfo.build(localStorageService.queryAll(criteria, pageable)), HttpStatus.OK); + } + + + @PostMapping + @SaIgnore +// @SaCheckPermission("storage:add") + public ResponseEntity create(@RequestParam String name, @RequestParam("file") MultipartFile file) { + return new ResponseEntity<>(localStorageService.create(name, file), HttpStatus.CREATED); + } + + @PostMapping("/pictures") + + public ResponseEntity upload(@RequestParam MultipartFile file) { + // 判断文件是否为图片 + String suffix = FileUtil.getExtensionName(file.getOriginalFilename()); + if (!FileUtil.IMAGE.equals(FileUtil.getFileType(suffix))) { + throw new BadRequestException("只能上传图片"); + } + return new ResponseEntity<>(localStorageService.create(null, file), HttpStatus.OK); + } + + @Log("修改文件") + + @PutMapping + @SaCheckPermission("storage:edit") + public ResponseEntity update(@Validated @RequestBody ToolLocalStorage resources) { + localStorageService.update(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除文件") + @DeleteMapping + + public ResponseEntity delete(@RequestBody Set ids) { + localStorageService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + +} + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/user/OnlineController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/user/OnlineController.java index c28a8ae82..10c071664 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/user/OnlineController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/user/OnlineController.java @@ -16,9 +16,10 @@ package org.nl.system.controller.user; -import lombok.RequiredArgsConstructor; import org.nl.modules.common.utils.EncryptUtils; import org.nl.system.service.secutiry.impl.OnlineUserService; +import org.nl.system.service.user.dto.OnlineUserDto; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -26,18 +27,18 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.Set; +import java.util.List; /** * @author Zheng Jie */ @RestController -@RequiredArgsConstructor @RequestMapping("/auth/online") public class OnlineController { - private final OnlineUserService onlineUserService; + @Autowired + private OnlineUserService onlineUserService; @GetMapping @@ -56,10 +57,10 @@ public class OnlineController { @DeleteMapping // @SaCheckPermission("@el.check()") - public ResponseEntity delete(@RequestBody Set keys) throws Exception { - for (String key : keys) { + public ResponseEntity delete(@RequestBody List keys) throws Exception { + for (OnlineUserDto key : keys) { // 解密Key - key = EncryptUtils.desDecrypt(key); + key.setKey(EncryptUtils.desDecrypt(key.getKey())); onlineUserService.kickOut(key); } return new ResponseEntity<>(HttpStatus.OK); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/controller/user/UserController.java b/lms/nladmin-system/src/main/java/org/nl/system/controller/user/UserController.java index 4c88bdf58..ebbbdbd20 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/controller/user/UserController.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/controller/user/UserController.java @@ -18,15 +18,18 @@ package org.nl.system.controller.user; import cn.dev33.satoken.secure.SaSecureUtil; import cn.dev33.satoken.stp.StpUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; +import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; -import org.nl.common.utils.SecurityUtils; +import org.nl.common.constants.GeneralDefinition; import org.nl.modules.common.config.RsaProperties; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.RsaUtils; import org.nl.modules.logging.annotation.Log; +import org.nl.common.utils.SecurityUtils; import org.nl.system.service.user.ISysUserService; import org.nl.system.service.user.dao.SysUser; import org.nl.system.service.user.dto.UserQuery; @@ -36,7 +39,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.util.List; import java.util.Map; import java.util.Set; @@ -51,19 +53,12 @@ import java.util.Set; public class UserController { @Autowired - ISysUserService userService; + private ISysUserService userService; @GetMapping public ResponseEntity query(UserQuery query, PageQuery page) { - return new ResponseEntity(userService.getUserDetail(query, page), HttpStatus.OK); - } - - - @PostMapping(value = "/getUserList") - public ResponseEntity query() { - List userList = userService.list(new QueryWrapper().eq("is_used", true)); - return new ResponseEntity(userList, HttpStatus.OK); + return new ResponseEntity(TableDataInfo.build(userService.getUserDetail(query, page)), HttpStatus.OK); } @Log("新增用户") @@ -88,7 +83,7 @@ public class UserController { // @PutMapping(value = "center") public ResponseEntity center(@RequestBody SysUser resources) { - if (!resources.getUserId().equals(StpUtil.getLoginIdAsLong())) { + if (!resources.getUser_id().equals(StpUtil.getLoginIdAsLong())) { throw new BadRequestException("不能修改他人资料"); } userService.saveOrUpdate(resources); @@ -107,7 +102,18 @@ public class UserController { @PostMapping(value = "/updatePass") public ResponseEntity updatePass(@RequestBody JSONObject passVo) throws Exception { - userService.updatePass(passVo); + // 解密,得到字符密码 + String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getString("oldPass")); + String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getString("newPass")); + SysUser user = userService.getOne(new LambdaQueryWrapper().eq(SysUser::getUsername, SecurityUtils.getCurrentUsername())); + if (!user.getPassword().equals(SaSecureUtil.md5BySalt(oldPass, GeneralDefinition.SALT))) { + throw new BadRequestException("修改失败,旧密码错误"); + } + if (user.getPassword().equals(SaSecureUtil.md5BySalt(newPass, GeneralDefinition.SALT))) { + throw new BadRequestException("新密码不能与旧密码相同"); + } + user.setPassword(SaSecureUtil.md5BySalt(newPass, GeneralDefinition.SALT)); + userService.updateById(user); return new ResponseEntity<>(HttpStatus.OK); } @@ -123,16 +129,11 @@ public class UserController { public ResponseEntity updateEmail(@PathVariable String code, @RequestBody SysUser user) throws Exception { String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, user.getPassword()); SysUser userInfo = userService.getOne(new QueryWrapper().eq("username", SecurityUtils.getCurrentUsername())); - if (!SaSecureUtil.md5BySalt(userInfo.getPassword(), "salt").equals(SaSecureUtil.md5BySalt(password, "salt"))) { + if (!SaSecureUtil.md5BySalt(userInfo.getPassword(), GeneralDefinition.SALT).equals(SaSecureUtil.md5BySalt(password, GeneralDefinition.SALT))) { throw new BadRequestException("密码错误"); } userService.update(new UpdateWrapper().set(userInfo.getUsername(), user.getEmail())); return new ResponseEntity<>(HttpStatus.OK); } - /** - * 如果当前用户的角色级别低于创建用户的角色级别,则抛出权限不足的错误 - * @param resources / - */ - } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/ISysCodeRuleDetailService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/ISysCodeRuleDetailService.java new file mode 100644 index 000000000..3f349b7ee --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/ISysCodeRuleDetailService.java @@ -0,0 +1,48 @@ +package org.nl.system.service.coderule; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.system.service.coderule.dao.SysCodeRuleDetail; +import org.nl.system.service.coderule.dto.CodeRuleDetailQuery; + +/** + *

+ * 编码规则明细表 服务类 + *

+ * + * @author generator + * @since 2022-12-20 + */ +public interface ISysCodeRuleDetailService extends IService { + + /** + * 分页查询 + * + * @param form + * @param pageable + * @return + */ + IPage queryAll(CodeRuleDetailQuery form, PageQuery pageable); + + /** + * 创建 + * + * @param codeRuleDetail + */ + void create(SysCodeRuleDetail codeRuleDetail); + + /** + * 根据id删除 + * + * @param id + */ + void delete(String id); + + /** + * 修改明细 + * + * @param json + */ + void update(SysCodeRuleDetail json); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/ISysCodeRuleService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/ISysCodeRuleService.java new file mode 100644 index 000000000..e9d9c6c60 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/ISysCodeRuleService.java @@ -0,0 +1,58 @@ +package org.nl.system.service.coderule; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.system.service.coderule.dao.SysCodeRule; + +import java.util.Map; +import java.util.Set; + +/** + *

+ * 编码规则表 服务类 + *

+ * + * @author generator + * @since 2022-12-19 + */ +public interface ISysCodeRuleService extends IService { + + /** + * 分页查询 + * + * @param form + * @param pageable + * @return + */ + IPage queryAll(Map form, PageQuery pageable); + + /** + * 创建编码 + * + * @param form + * @return + */ + String codeDemo(Map form); + + /** + * 添加 + * + * @param codeRule + */ + void create(SysCodeRule codeRule); + + /** + * 删除编码 + * + * @param ids + */ + void deleteCodeRule(Set ids); + + /** + * 修改编码 + * + * @param codeRule + */ + void updateCodeRule(SysCodeRule codeRule); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/SysCodeRule.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/SysCodeRule.java new file mode 100644 index 000000000..a924d6570 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/SysCodeRule.java @@ -0,0 +1,94 @@ +package org.nl.system.service.coderule.dao; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * 编码规则表 + *

+ * + * @author generator + * @since 2022-12-19 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("sys_code_rule") +public class SysCodeRule implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 标识 + */ + @TableId + private String id; + + /** + * 编码 + */ + private String code; + + /** + * 名称 + */ + private String name; + + /** + * 当前值 + */ + private String current_value; + + /** + * 备注 + */ + private String remark; + + /** + * 是否启用 + */ + private String is_active; + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 创建id + */ + private String create_id; + + /** + * 创建者 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改id + */ + private String update_id; + + /** + * 修改者 + */ + private String update_name; + + /** + * 修改时间 + */ + private String update_time; + + @TableField(exist = false) + private String demo; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/SysCodeRuleDetail.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/SysCodeRuleDetail.java new file mode 100644 index 000000000..5323b198a --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/SysCodeRuleDetail.java @@ -0,0 +1,132 @@ +package org.nl.system.service.coderule.dao; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 编码规则明细表 + *

+ * + * @author generator + * @since 2022-12-19 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("sys_code_rule_detail") +public class SysCodeRuleDetail implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 明细标识 + */ + @TableId + private String id; + + /** + * 编码规则类型 + */ + private String type; + + /** + * 初始值 + */ + private String init_value; + + /** + * 当前值 + */ + private String current_value; + + /** + * 允许最大值 + */ + private String max_value; + + /** + * 步长 + */ + private String step; + + /** + * 填充值 + */ + private String fillchar; + + /** + * 格式 + */ + private String format; + + /** + * 长度 + */ + private Integer length; + + /** + * 排序号 + */ + private BigDecimal sort_num; + + /** + * 备注 + */ + private String remark; + + /** + * 编码规则标识 + */ + private String code_rule_id; + + /** + * 是否启用 + */ + private String is_active; + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 创建id + */ + private String create_id; + + /** + * 创建者 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改id + */ + private String update_id; + + /** + * 修改者 + */ + private String update_name; + + /** + * 修改时间 + */ + private String update_time; + + @TableField(exist = false) + private String dict_name; + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleDetailMapper.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleDetailMapper.java new file mode 100644 index 000000000..cf208db6c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleDetailMapper.java @@ -0,0 +1,16 @@ +package org.nl.system.service.coderule.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.system.service.coderule.dao.SysCodeRuleDetail; + +/** + *

+ * 编码规则明细表 Mapper 接口 + *

+ * + * @author generator + * @since 2022-12-19 + */ +public interface SysCodeRuleDetailMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleDetailMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleDetailMapper.xml new file mode 100644 index 000000000..d6301b102 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleDetailMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleMapper.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleMapper.java new file mode 100644 index 000000000..ca0be0b03 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleMapper.java @@ -0,0 +1,16 @@ +package org.nl.system.service.coderule.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.system.service.coderule.dao.SysCodeRule; + +/** + *

+ * 编码规则表 Mapper 接口 + *

+ * + * @author generator + * @since 2022-12-19 + */ +public interface SysCodeRuleMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleMapper.xml new file mode 100644 index 000000000..75142bce2 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dao/mapper/SysCodeRuleMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dto/CodeRuleDetailQuery.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dto/CodeRuleDetailQuery.java new file mode 100644 index 000000000..0aabcf245 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dto/CodeRuleDetailQuery.java @@ -0,0 +1,22 @@ +package org.nl.system.service.coderule.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.system.service.coderule.dao.SysCodeRuleDetail; + +/** + * @Author: lyd + * @Description: + * @Date: 2022/12/20 + */ +@Data +public class CodeRuleDetailQuery extends BaseQuery { + String id; + + @Override + public void paramMapping() { + this.doP.put("id", QParam.builder().k(new String[]{"code_rule_id"}).type(QueryTEnum.EQ).build()); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dto/CodeRuleQuery.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dto/CodeRuleQuery.java new file mode 100644 index 000000000..421f6f2eb --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/dto/CodeRuleQuery.java @@ -0,0 +1,19 @@ +package org.nl.system.service.coderule.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.system.service.coderule.dao.SysCodeRule; + +/** + * @Author: lyd + * @Description: + * @Date: 2022/12/19 + */ +public class CodeRuleQuery extends BaseQuery { + + @Override + public void paramMapping() { + this.doP.put("blurry", QParam.builder().k(new String[]{"code", "name"}).type(QueryTEnum.LK).build()); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleDetailServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleDetailServiceImpl.java new file mode 100644 index 000000000..4cf4df144 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleDetailServiceImpl.java @@ -0,0 +1,80 @@ +package org.nl.system.service.coderule.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.SecurityUtils; +import org.nl.system.service.coderule.ISysCodeRuleDetailService; +import org.nl.system.service.coderule.dao.SysCodeRuleDetail; +import org.nl.system.service.coderule.dao.mapper.SysCodeRuleDetailMapper; +import org.nl.system.service.coderule.dto.CodeRuleDetailQuery; +import org.nl.system.service.coderule.utils.CodeRuleTypeEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; + +/** + *

+ * 编码规则明细表 服务实现类 + *

+ * + * @author generator + * @since 2022-12-20 + */ +@Service +public class SysCodeRuleDetailServiceImpl extends ServiceImpl implements ISysCodeRuleDetailService { + @Autowired + private SysCodeRuleDetailMapper codeRuleDetailMapper; + + @Override + public IPage queryAll(CodeRuleDetailQuery form, PageQuery page) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(SysCodeRuleDetail::getCode_rule_id, form.getId()) + .orderByAsc(SysCodeRuleDetail::getSort_num); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + codeRuleDetailMapper.selectPage(pages, lam); + return pages; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(SysCodeRuleDetail codeRuleDetail) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentNickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + codeRuleDetail.setId(IdUtil.getSnowflake(1, 1).nextIdStr()); + codeRuleDetail.setCurrent_value(codeRuleDetail.getInit_value()); + codeRuleDetail.setCreate_id(currentUserId); + codeRuleDetail.setCreate_name(currentNickName); + codeRuleDetail.setCreate_time(now); + codeRuleDetail.setUpdate_id(currentUserId); + codeRuleDetail.setUpdate_name(currentNickName); + codeRuleDetail.setUpdate_time(now); + if (codeRuleDetail.getType().equals(CodeRuleTypeEnum.DATE.getType())) { + Date date = DateUtil.date(); + String format = codeRuleDetail.getFormat(); + String nowDate = DateUtil.format(date, format); + codeRuleDetail.setInit_value(nowDate); + codeRuleDetail.setCurrent_value(nowDate); + } + codeRuleDetailMapper.insert(codeRuleDetail); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String id) { + codeRuleDetailMapper.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(SysCodeRuleDetail json) { + codeRuleDetailMapper.updateById(json); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleServiceImpl.java new file mode 100644 index 000000000..e143efb7a --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleServiceImpl.java @@ -0,0 +1,187 @@ +package org.nl.system.service.coderule.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.MapOf; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.system.service.coderule.ISysCodeRuleService; +import org.nl.system.service.coderule.dao.SysCodeRule; +import org.nl.system.service.coderule.dao.SysCodeRuleDetail; +import org.nl.system.service.coderule.dao.mapper.SysCodeRuleDetailMapper; +import org.nl.system.service.coderule.dao.mapper.SysCodeRuleMapper; +import org.nl.system.service.coderule.utils.CodeRuleTypeEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + *

+ * 编码规则表 服务实现类 + *

+ * + * @author generator + * @since 2022-12-19 + */ +@Slf4j +@Service +public class SysCodeRuleServiceImpl extends ServiceImpl implements ISysCodeRuleService { + @Autowired + private SysCodeRuleMapper codeRuleMapper; + @Autowired + private SysCodeRuleDetailMapper codeRuleDetailMapper; + + @Override + public IPage queryAll(Map form, PageQuery pageable) { + String blurry = ObjectUtil.isNotEmpty(form.get("blurry")) ? form.get("blurry").toString() : null; + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.like(ObjectUtil.isNotEmpty(blurry), SysCodeRule::getCode, blurry) + .or(ObjectUtil.isNotEmpty(blurry)) + .like(ObjectUtil.isNotEmpty(blurry), SysCodeRule::getName, blurry); + IPage page = new Page<>(pageable.getPage() + 1, pageable.getSize()); + codeRuleMapper.selectPage(page, lam); + page.getRecords().forEach(sysCodeRule -> sysCodeRule.setDemo(codeDemo(MapOf.of("flag", "0", "code", sysCodeRule.getCode())))); + return page; + } + + @SneakyThrows + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) + public String codeDemo(Map form) { + String code = (String) form.get("code"); + String id = codeRuleMapper.selectOne(new LambdaQueryWrapper().eq(SysCodeRule::getCode, code)).getId(); + // 如果flag = 1就执行更新数据库的操作 + String flag = (String) form.get("flag"); + List ruleDetails = codeRuleDetailMapper.selectList(new LambdaQueryWrapper() + .eq(SysCodeRuleDetail::getCode_rule_id, id) + .orderByAsc(SysCodeRuleDetail::getSort_num)); + String demo = ""; + boolean isSame = true; + for (SysCodeRuleDetail detail : ruleDetails) { + String value = ""; + String type = detail.getType(); + //固定直接取值 + if (type.equals(CodeRuleTypeEnum.FIXED.getType())) { + value = detail.getInit_value(); + } + //日期判断数据库的值与当前值是否相同来决定顺序的值 + if (type.equals(CodeRuleTypeEnum.DATE.getType())) { + String currentValue = detail.getCurrent_value(); + Date date = DateUtil.date(); + String format = detail.getFormat(); + String nowDate = DateUtil.format(date, format); + if (!nowDate.equals(currentValue)) { + isSame = false; + } + if ("1".equals(flag)) { + detail.setInit_value(nowDate); + detail.setCurrent_value(nowDate); + } + value = nowDate; + } + //顺序的值:如果日期一样就+步长,等于最大值就归为初始值;日期不一样就归为初始值 + if (type.equals(CodeRuleTypeEnum.ORDER.getType())) { + String numValue = ""; + int step = Integer.parseInt(detail.getStep()); + Long maxValue = Long.valueOf(detail.getMax_value()); + if (!isSame || (Long.valueOf(detail.getCurrent_value()) + step) > maxValue) { + numValue = detail.getInit_value(); + } else { + numValue = Integer.parseInt(detail.getCurrent_value()) + step + ""; + } + int size = numValue.length(); + int length = detail.getLength(); + String fillchar = detail.getFillchar(); + for (int m = 0; m < (length - size); m++) { + value += fillchar; + } + value += numValue; + if ("1".equals(flag)) { + if (!isSame) { + int initValue = Integer.parseInt(detail.getInit_value()); + if (StrUtil.isEmpty((initValue + ""))) { + throw new BadRequestException("请完善编码数值的初始值!"); + } + detail.setCurrent_value(String.valueOf(initValue)); + } else { + int numCurr = Integer.parseInt(detail.getCurrent_value()); + if (numCurr >= maxValue) { + numCurr = Integer.parseInt(detail.getInit_value()); + detail.setCurrent_value(String.valueOf(numCurr)); + } else { + detail.setCurrent_value(String.valueOf(numCurr + step)); + } + } + } + } + demo += value; + if ("1".equals(flag)) { + codeRuleDetailMapper.updateById(detail); + } + log.info("更新成功:更新数据{}", detail); + } + return demo; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(SysCodeRule codeRule) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); + List sysCodeRules = codeRuleMapper.selectList(new LambdaQueryWrapper().eq(SysCodeRule::getCode, codeRule.getCode())); + if (ObjectUtil.isNotEmpty(sysCodeRules)) { + throw new BadRequestException("编号[" + sysCodeRules.get(0).getCode() + "]已存在"); + } + codeRule.setId(IdUtil.getSnowflake(1, 1).nextIdStr()); + codeRule.setCreate_id(currentUserId); + codeRule.setCreate_name(currentUsername); + codeRule.setCreate_time(now); + codeRule.setUpdate_id(currentUserId); + codeRule.setUpdate_name(currentUsername); + codeRule.setUpdate_time(now); + codeRuleMapper.insert(codeRule); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteCodeRule(Set ids) { + ids.forEach(id -> { + codeRuleMapper.deleteById(id); + codeRuleDetailMapper.delete(new LambdaQueryWrapper().eq(SysCodeRuleDetail::getCode_rule_id, id)); + }); + } + + @Override + public void updateCodeRule(SysCodeRule codeRule) { + List sysCodeRules = codeRuleMapper.selectList(new LambdaQueryWrapper() + .eq(SysCodeRule::getCode, codeRule.getCode()) + .ne(SysCodeRule::getId, codeRule.getId())); + if (ObjectUtil.isNotEmpty(sysCodeRules)) { + throw new BadRequestException("该编码code已存在,请校验!"); + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); + codeRule.setUpdate_id(currentUserId); + codeRule.setUpdate_name(currentUsername); + codeRule.setUpdate_time(now); + codeRuleMapper.updateById(codeRule); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/utils/CodeRuleTypeEnum.java b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/utils/CodeRuleTypeEnum.java new file mode 100644 index 000000000..0cacf310c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/coderule/utils/CodeRuleTypeEnum.java @@ -0,0 +1,23 @@ +package org.nl.system.service.coderule.utils; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @Author: lyd + * @Description: 编码类型枚举 + * @Date: 2022/12/19 + */ +@Getter +@AllArgsConstructor +public enum CodeRuleTypeEnum { + /** + * + */ + FIXED("01", "固定"), + DATE("02", "日期"), + ORDER("03", "顺序"); + + private final String type; + private final String description; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/ISysDeptService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/ISysDeptService.java index 02ff6f7ee..91883e289 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/ISysDeptService.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/ISysDeptService.java @@ -53,8 +53,11 @@ public interface ISysDeptService extends IService { */ void saveUserDeptRelation(String UserId, Collection deptIds); - List getUserDeptRelation(String UserId); - + /** + * 删除用户部门关系数据 + * + * @param user + */ void delUserDeptRelation(String user); /** @@ -71,6 +74,19 @@ public interface ISysDeptService extends IService { */ void delateDept(Set deptIds); + /** + * 创建部门 + * + * @param dept + */ void createDept(SysDept dept); + /** + * 获取部门数组 + * + * @param userId + * @return + */ + List getUserDeptByUserId(String userId); + } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/SysDept.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/SysDept.java index e3c4b02ce..b865cf353 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/SysDept.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/SysDept.java @@ -29,7 +29,7 @@ public class SysDept implements Serializable { * ID */ @TableId(value = "dept_id", type = IdType.NONE) - private String deptId; + private String dept_id; /** * 上级部门 @@ -39,7 +39,7 @@ public class SysDept implements Serializable { /** * 子部门数目 */ - private Integer subCount; + private Integer sub_count; /** * 名称 @@ -49,45 +49,45 @@ public class SysDept implements Serializable { /** * 排序 */ - private Integer deptSort; + private Integer dept_sort; /** * 状态 */ - private Boolean isUsed; + private Boolean is_used; - private String createId; + private String create_id; /** * 创建者 */ - private String createName; + private String create_name; - private String updateId; + private String update_id; /** * 更新者 */ - private String updateName; + private String update_name; /** * 创建日期 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; + private Date create_time; /** * 更新时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; + private Date update_time; /** * 部门编号 */ private String code; - private String extId; + private String ext_id; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/SysUserDept.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/SysUserDept.java index 48b97d8c1..fb29ffa80 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/SysUserDept.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/SysUserDept.java @@ -1,7 +1,5 @@ package org.nl.system.service.dept.dao; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,13 +24,12 @@ public class SysUserDept implements Serializable { /** * 用户标识 */ - @TableId(value = "user_id", type = IdType.NONE) - private Long userId; + private Long user_id; /** * 部门标识 */ - private Long deptId; + private Long dept_id; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.java index 74227f56d..6a301026e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.java @@ -2,7 +2,6 @@ package org.nl.system.service.dept.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; import org.nl.system.service.dept.dao.SysDept; import java.util.Collection; @@ -31,10 +30,6 @@ public interface SysDeptMapper extends BaseMapper { List getDeptRelation(@Param("deptIds") Collection deptIds); - - @Select("select sys_dept.* from sys_dept inner join sys_user_dept on sys_dept.dept_id = sys_user_dept.dept_id where sys_user_dept.user_id = #{user}") - List getDeptRelationByUser(@Param("user") String user); - /** * 跟新sub_count字段 * @@ -50,4 +45,6 @@ public interface SysDeptMapper extends BaseMapper { * @return */ String findAllChild(String pid); + + List getUserDeptByUserId(String userId); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.xml index c2466c3da..8c403381e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.xml @@ -35,4 +35,12 @@ ) + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptQuery.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptQuery.java index 6861e2f57..51854f08b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptQuery.java @@ -23,11 +23,11 @@ public class DeptQuery extends BaseQuery { private Long pid; - private Boolean pidIsNull; + private Boolean pid_is_null; @Override public void paramMapping() { - super.doP.put("pidIsNull", QParam.builder().k(new String[]{"pid"}).type(QueryTEnum.NO).build()); - super.doP.put("deptIds", QParam.builder().k(new String[]{"deptId"}).type(QueryTEnum.IN).build()); + super.doP.put("pid_is_null", QParam.builder().k(new String[]{"pid"}).type(QueryTEnum.NO).build()); + super.doP.put("deptIds", QParam.builder().k(new String[]{"dept_id"}).type(QueryTEnum.IN).build()); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptTree.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptTree.java index f8d84e734..a22ab03a1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptTree.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/dto/DeptTree.java @@ -16,8 +16,7 @@ package org.nl.system.service.dept.dto; import com.fasterxml.jackson.annotation.JsonInclude; -import lombok.Getter; -import lombok.Setter; +import lombok.Data; import java.io.Serializable; import java.util.List; @@ -26,11 +25,10 @@ import java.util.List; * @author Zheng Jie * @date 2019-03-25 */ -@Getter -@Setter +@Data public class DeptTree implements Serializable { - private String deptId; + private String dept_id; private String pid; diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java index 0c17c617b..738b71eee 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java @@ -6,17 +6,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.nl.common.domain.query.PageQuery; -import org.nl.common.utils.CopyUtil; -import org.nl.common.utils.IdUtil; -import org.nl.common.utils.SecurityUtils; +import org.nl.common.domain.vo.DeptVo; import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.CopyUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.dto.CurrentUser; import org.nl.system.service.dept.ISysDeptService; import org.nl.system.service.dept.dao.SysDept; import org.nl.system.service.dept.dao.mapper.SysDeptMapper; import org.nl.system.service.dept.dto.DeptQuery; import org.nl.system.service.dept.dto.DeptTree; -import org.nl.system.service.dept.dto.DeptVo; -import org.nl.system.service.user.dto.CurrentUser; +import org.nl.wms.util.IdUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -34,7 +34,6 @@ import java.util.stream.Collectors; * @since 2022-12-15 */ @Service -@Transactional public class SysDeptServiceImpl extends ServiceImpl implements ISysDeptService { @Autowired @@ -63,7 +62,7 @@ public class SysDeptServiceImpl extends ServiceImpl impl trees.add(deptDTO); } for (DeptTree it : deptDtos) { - if (it.getPid() != null && deptDTO.getDeptId().equals(it.getPid())) { + if (it.getPid() != null && deptDTO.getDept_id().equals(it.getPid())) { isChild = true; if (deptDTO.getChildren() == null) { deptDTO.setChildren(new ArrayList<>()); @@ -85,18 +84,18 @@ public class SysDeptServiceImpl extends ServiceImpl impl @Override public Page queryVo(DeptQuery query, PageQuery pageQuery) { - if (query.getPidIsNull() == null) { + if (query.getPid_is_null() == null) { if (query.getPid() == null) { - query.setPidIsNull(true); + query.setPid_is_null(true); } - if (StringUtils.isNotEmpty(query.getName()) || query.getIsUsed() != null) { - query.setPidIsNull(null); + if (StringUtils.isNotEmpty(query.getName()) || query.getIs_used() != null) { + query.setPid_is_null(null); } } Page page = this.page(pageQuery.build(SysDept.class), query.build()); page.setRecords(CopyUtil.copyList(page.getRecords(), DeptVo.class)); - if (StringUtils.isNotEmpty(query.getName()) || query.getIsUsed() != null) { - page.getRecords().forEach(a -> ((DeptVo) a).setHasChildren(false)); + if (StringUtils.isNotEmpty(query.getName()) || query.getIs_used() != null) { + page.getRecords().forEach(a -> ((DeptVo) a).setHas_children(false)); } return page; } @@ -110,11 +109,6 @@ public class SysDeptServiceImpl extends ServiceImpl impl sysDeptMapper.saveDeptRelation(userId, deptIds); } - @Override - public List getUserDeptRelation(String user) { - return sysDeptMapper.getDeptRelationByUser(user); - } - @Override public void delUserDeptRelation(String user) { sysDeptMapper.delDeptRelation(user); @@ -123,12 +117,12 @@ public class SysDeptServiceImpl extends ServiceImpl impl @Override @Transactional(rollbackFor = Exception.class) public void updateDept(SysDept dept) { - if (dept == null || StringUtils.isEmpty(dept.getDeptId())) { + if (dept == null || StringUtils.isEmpty(dept.getDept_id())) { return; } this.updateById(dept); //删除节点信息 - sysDeptMapper.updateSubCount(dept.getDeptId()); + sysDeptMapper.updateSubCount(dept.getDept_id()); if (StringUtils.isNotEmpty(dept.getPid())) { sysDeptMapper.updateSubCount(dept.getPid()); } @@ -173,16 +167,20 @@ public class SysDeptServiceImpl extends ServiceImpl impl @Override @Transactional(rollbackFor = Exception.class) public void createDept(SysDept dept) { - dept.setDeptId(IdUtil.getStringId()); + dept.setDept_id(IdUtil.getStringId()); CurrentUser user = SecurityUtils.getCurrentUser(); - dept.setCreateId(user.getId()); - dept.setCreateName(user.getPresonName()); - dept.setCreateTime(new Date()); - dept.setCode(UUID.randomUUID().toString()); + dept.setCreate_id(user.getId()); + dept.setCreate_name(user.getPresonName()); + dept.setCreate_time(new Date()); this.save(dept); // 清理缓存 if (StringUtils.isNotEmpty(dept.getPid())) { sysDeptMapper.updateSubCount(dept.getPid()); } } + + @Override + public List getUserDeptByUserId(String userId) { + return sysDeptMapper.getUserDeptByUserId(userId); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/impl/SysUserDeptServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/impl/SysUserDeptServiceImpl.java index ac45fc938..e9a9774b7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dept/impl/SysUserDeptServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dept/impl/SysUserDeptServiceImpl.java @@ -5,7 +5,6 @@ import org.nl.system.service.dept.ISysUserDeptService; import org.nl.system.service.dept.dao.SysUserDept; import org.nl.system.service.dept.dao.mapper.SysUserDeptMapper; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; /** *

@@ -16,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional; * @since 2022-12-15 */ @Service -@Transactional public class SysUserDeptServiceImpl extends ServiceImpl implements ISysUserDeptService { } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/ISysDictService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/ISysDictService.java index f6130b6c1..8c168dc06 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/ISysDictService.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/ISysDictService.java @@ -87,4 +87,11 @@ public interface ISysDictService extends IService { * @param id */ void deleteDetail(String id); + + /** + * 查询所有字典信息 + * + * @return + */ + List queryAll(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/Dict.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/Dict.java index 518b5bcf2..fe1b1e750 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/Dict.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dao/Dict.java @@ -27,7 +27,7 @@ public class Dict implements Serializable { * 字典标识 */ @TableId(value = "dict_id") - private String dictId; + private String dict_id; /** * 编码 @@ -52,12 +52,12 @@ public class Dict implements Serializable { /** * 排序号 */ - private BigDecimal dictSort; + private BigDecimal dict_sort; /** * 字典类型 */ - private String dictType; + private String dict_type; /** * 参数1 @@ -77,31 +77,31 @@ public class Dict implements Serializable { /** * 创建人 */ - private String createId; + private String create_id; /** * 创建人 */ - private String createName; + private String create_name; /** * 创建时间 */ - private String createTime; + private String create_time; /** * 修改人 */ - private String updateId; + private String update_id; /** * 修改人 */ - private String updateName; + private String update_name; /** * 修改时间 */ - private String updateTime; + private String update_time; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dto/DictQuery.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dto/DictQuery.java index 3802779cc..c446f9154 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dto/DictQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/dto/DictQuery.java @@ -13,6 +13,6 @@ import org.nl.system.service.dict.dao.Dict; public class DictQuery extends BaseQuery { private String code; - private String dictName; - private String dictId; + private String dict_name; + private String dict_id; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java index 12e97ef8b..a1f5cea70 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java @@ -8,14 +8,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.RequiredArgsConstructor; +import org.nl.common.constants.FieldConstant; import org.nl.common.domain.query.PageQuery; -import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; import org.nl.system.service.dict.ISysDictService; import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.system.service.dict.dto.DictQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,28 +33,24 @@ import java.util.Set; * @since 2022-12-14 */ @Service -@RequiredArgsConstructor -@Transactional public class SysDictServiceImpl extends ServiceImpl implements ISysDictService { - - private final SysDictMapper sysDictMapper; + @Autowired + private SysDictMapper sysDictMapper; @Override public IPage queryAll(Map whereJson, PageQuery page) { String blurry = null; - if (ObjectUtil.isNotEmpty(whereJson.get("blurry"))) { + if (ObjectUtil.isNotEmpty(whereJson.get(FieldConstant.BLURRY))) { blurry = whereJson.get("blurry").toString(); } - IPage pages = new Page<>(page.getPage() + 1, page.getSize()); - QueryWrapper lam = new QueryWrapper<>(); - lam.select("MAX(dict_id) AS dictId, code, name") + IPage pages = this.page(new Page<>(page.getPage() + 1, page.getSize()), new QueryWrapper() + .select("MAX(dict_id) AS dict_id, code, name") .lambda() .like(ObjectUtil.isNotEmpty(blurry), Dict::getCode, blurry) .or(ObjectUtil.isNotEmpty(blurry)) .like(ObjectUtil.isNotEmpty(blurry), Dict::getName, blurry) .orderBy(true, true, Dict::getCode) - .groupBy(Dict::getCode, Dict::getName); - sysDictMapper.selectPage(pages, lam); + .groupBy(Dict::getCode, Dict::getName)); return pages; } @@ -68,20 +65,23 @@ public class SysDictServiceImpl extends ServiceImpl impleme if (ObjectUtil.isNotEmpty(oldDict)) { throw new BadRequestException("字典[" + dict.getCode() + "]已存在"); } - dict.setDictId(IdUtil.getSnowflake(1, 1).nextIdStr()); - dict.setCreateId(currentUserId); - dict.setCreateName(nickName); - dict.setCreateTime(date); - dict.setUpdateId(currentUserId); - dict.setUpdateName(nickName); - dict.setUpdateTime(date); + dict.setDict_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + dict.setCreate_id(currentUserId); + dict.setCreate_name(nickName); + dict.setCreate_time(date); + dict.setUpdate_id(currentUserId); + dict.setUpdate_name(nickName); + dict.setUpdate_time(date); sysDictMapper.insert(dict); } @Override @Transactional(rollbackFor = Exception.class) public void updateDict(Dict dto) { - Dict dict = sysDictMapper.selectById(dto.getDictId()); + Dict dict = sysDictMapper.selectById(dto.getDict_id()); + if (ObjectUtil.isEmpty(dict)) { + throw new BadRequestException("字典不存在"); + } List dictList = sysDictMapper.selectList(new LambdaQueryWrapper().eq(Dict::getCode, dto.getCode())); if (ObjectUtil.isNotEmpty(dictList) && !dto.getCode().equals(dict.getCode())) { throw new BadRequestException("字典[" + dto.getCode() + "]已存在"); @@ -93,9 +93,9 @@ public class SysDictServiceImpl extends ServiceImpl impleme dicts.forEach(di -> { di.setCode(dto.getCode()); di.setName(dto.getName()); - di.setUpdateId(currentUserId); - di.setUpdateName(currentNickName); - di.setUpdateTime(DateUtil.now()); + di.setUpdate_id(currentUserId); + di.setUpdate_name(currentNickName); + di.setUpdate_time(DateUtil.now()); sysDictMapper.updateById(di); }); } @@ -116,7 +116,7 @@ public class SysDictServiceImpl extends ServiceImpl impleme lam.eq(Dict::getCode, criteria.getCode()) .isNotNull(Dict::getLabel) .ne(Dict::getLabel, "") - .orderBy(true, true, Dict::getDictSort); + .orderBy(true, true, Dict::getDict_sort); IPage pages = new Page<>(page.getPage() + 1, page.getSize()); sysDictMapper.selectPage(pages, lam); return pages; @@ -147,8 +147,8 @@ public class SysDictServiceImpl extends ServiceImpl impleme dic.setCode(dict.getCode()); dic.setLabel(dict.getLabel()); dic.setValue(dict.getValue()); - dic.setDictSort(dict.getDictSort()); - dic.setDictType(dict.getDictType()); + dic.setDict_sort(dict.getDict_sort()); + dic.setDict_type(dict.getDict_type()); dic.setPara1(dict.getPara1()); dic.setPara2(dict.getPara2()); dic.setPara3(dict.getPara3()); @@ -156,22 +156,22 @@ public class SysDictServiceImpl extends ServiceImpl impleme return; } // 插入新的数据 - dict.setDictId(IdUtil.getSnowflake(1, 1).nextIdStr()); + dict.setDict_id(IdUtil.getSnowflake(1, 1).nextIdStr()); dict.setCode(dic.getCode()); dict.setName(dic.getName()); - dict.setCreateId(SecurityUtils.getCurrentUserId()); - dict.setCreateName(SecurityUtils.getCurrentNickName()); - dict.setCreateTime(DateUtil.now()); - dict.setUpdateId(SecurityUtils.getCurrentUserId()); - dict.setUpdateName(SecurityUtils.getCurrentNickName()); - dict.setUpdateTime(DateUtil.now()); + dict.setCreate_id(SecurityUtils.getCurrentUserId()); + dict.setCreate_name(SecurityUtils.getCurrentNickName()); + dict.setCreate_time(DateUtil.now()); + dict.setUpdate_id(SecurityUtils.getCurrentUserId()); + dict.setUpdate_name(SecurityUtils.getCurrentNickName()); + dict.setUpdate_time(DateUtil.now()); sysDictMapper.insert(dict); } @Override @Transactional(rollbackFor = Exception.class) public void updateDetail(Dict resources) { - Dict dict = sysDictMapper.selectById(resources.getDictId()); + Dict dict = sysDictMapper.selectById(resources.getDict_id()); if (ObjectUtil.isEmpty(dict)) { throw new BadRequestException("被删除或无权限,操作失败!"); } @@ -179,11 +179,11 @@ public class SysDictServiceImpl extends ServiceImpl impleme List dictList = sysDictMapper.selectList(new LambdaQueryWrapper().eq(Dict::getLabel, resources.getLabel()) .eq(Dict::getCode, resources.getCode())); if (ObjectUtil.isNotEmpty(dictList) && !resources.getLabel().equals(dict.getLabel())) { - throw new BadRequestException("标签[" + dict.getLabel() + "]已存在"); + throw new BadRequestException("标签[" + resources.getLabel() + "]已存在"); } - resources.setUpdateId(SecurityUtils.getCurrentUserId()); - resources.setUpdateName(SecurityUtils.getCurrentNickName()); - resources.setUpdateTime(DateUtil.now()); + resources.setUpdate_id(SecurityUtils.getCurrentUserId()); + resources.setUpdate_name(SecurityUtils.getCurrentNickName()); + resources.setUpdate_time(DateUtil.now()); sysDictMapper.updateById(resources); } @@ -193,4 +193,12 @@ public class SysDictServiceImpl extends ServiceImpl impleme sysDictMapper.deleteById(id); } + @Override + public List queryAll() { + return sysDictMapper.selectList(new QueryWrapper() + .select("MAX(dict_id) AS dictId, code, name") + .lambda() + .groupBy(Dict::getCode, Dict::getName)); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeColumnConfig.java b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeColumnConfig.java index bc94706ee..845e6d330 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeColumnConfig.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeColumnConfig.java @@ -3,7 +3,6 @@ package org.nl.system.service.generator.dao; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -30,46 +29,46 @@ public class CodeColumnConfig implements Serializable { * 标识 */ @TableId(value = "column_id", type = IdType.ASSIGN_ID) - private String columnId; + private String column_id; - @TableField(value = "table_name") - private String tableName; - @TableField(value = "column_name") - private String columnName; + private String table_name; - @TableField(value = "column_type") - private String columnType; - @TableField(value = "key_type") - private String keyType; + private String column_name; + + + private String column_type; + + + private String key_type; + - @TableField(value = "extra") private String extra; - @TableField(value = "remark") + private String remark; - @TableField(value = "not_null") - private Boolean notNull; - @TableField(value = "list_show") - private Boolean listShow; + private Boolean not_null; - @TableField(value = "form_show") - private Boolean formShow; - @TableField(value = "form_type") - private String formType; + private Boolean list_show; - @TableField(value = "query_type") - private String queryType; - @TableField(value = "dict_name") - private String dictName; + private Boolean form_show; - @TableField(value = "date_annotation") - private String dateAnnotation; + + private String form_type; + + + private String query_type; + + + private String dict_name; + + + private String date_annotation; /** * 创建默认的实体 @@ -80,20 +79,20 @@ public class CodeColumnConfig implements Serializable { */ public static CodeColumnConfig createDefault(String tableName, ColumnInfo config) { CodeColumnConfig columnConfig = new CodeColumnConfig(); - columnConfig.setColumnId(IdUtil.getSnowflake(1, 1).nextIdStr()); - columnConfig.setTableName(tableName); - columnConfig.setColumnName(config.getColumnName()); - columnConfig.setColumnType(config.getColumnType()); - columnConfig.setKeyType(config.getKeyType()); + columnConfig.setColumn_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + columnConfig.setTable_name(tableName); + columnConfig.setColumn_name(config.getColumn_name()); + columnConfig.setColumn_type(config.getColumn_type()); + columnConfig.setKey_type(config.getKey_type()); columnConfig.setExtra(config.getExtra()); - columnConfig.setNotNull((ObjectUtil.isNotEmpty(config.getKeyType()) + columnConfig.setNot_null((ObjectUtil.isNotEmpty(config.getKey_type()) && ObjectUtil.isNotEmpty(config.getExtra()) - && GenUtil.PK.equalsIgnoreCase(config.getKeyType()) + && GenUtil.PK.equalsIgnoreCase(config.getKey_type()) && GenUtil.EXTRA.equalsIgnoreCase(config.getExtra())) - ? false : ObjectUtil.isNotEmpty(config.getNotNull()) ? config.getNotNull() : false); + ? false : ObjectUtil.isNotEmpty(config.getNot_null()) ? config.getNot_null() : false); columnConfig.setRemark(ObjectUtil.isNotEmpty(config.getRemark()) ? config.getRemark() : null); - columnConfig.setListShow(true); - columnConfig.setFormShow(true); + columnConfig.setList_show(true); + columnConfig.setForm_show(true); return columnConfig; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeGenConfig.java b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeGenConfig.java index c3e18f4a6..69ea26efb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeGenConfig.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dao/CodeGenConfig.java @@ -1,6 +1,5 @@ package org.nl.system.service.generator.dao; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -25,21 +24,20 @@ public class CodeGenConfig implements Serializable { private static final long serialVersionUID = 1L; - public CodeGenConfig(String tableName) { - this.tableName = tableName; + public CodeGenConfig(String table_name) { + this.table_name = table_name; } /** * ID */ @TableId(value = "config_id") - private String configId; + private String config_id; /** * 表名 */ - @TableField(value = "table_name") - private String tableName; + private String table_name; /** * 作者 @@ -54,8 +52,7 @@ public class CodeGenConfig implements Serializable { /** * 模块名称 */ - @TableField(value = "module_name") - private String moduleName; + private String module_name; /** * 包名 @@ -70,8 +67,7 @@ public class CodeGenConfig implements Serializable { /** * api路径 */ - @TableField(value = "api_path") - private String apiPath; + private String api_path; /** * 表前缀 @@ -81,8 +77,7 @@ public class CodeGenConfig implements Serializable { /** * 接口名称 */ - @TableField(value = "api_alias") - private String apiAlias; + private String api_alias; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dto/ColumnInfo.java b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dto/ColumnInfo.java index dc4453d67..093ee5b54 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dto/ColumnInfo.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dto/ColumnInfo.java @@ -1,6 +1,5 @@ package org.nl.system.service.generator.dto; -import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; /** @@ -11,14 +10,13 @@ import lombok.Data; @Data public class ColumnInfo { - @TableField(value = "column_name") - private String columnName; + private String column_name; - @TableField(value = "column_type") - private String columnType; - @TableField(value = "key_type") - private String keyType; + private String column_type; + + + private String key_type; private String extra; @@ -26,24 +24,24 @@ public class ColumnInfo { private String remark; - @TableField(value = "not_null") - private Boolean notNull; - @TableField(value = "list_show") - private Boolean listShow; + private Boolean not_null; - @TableField(value = "form_show") - private Boolean formShow; - @TableField(value = "form_type") - private String formType; + private Boolean list_show; - @TableField(value = "query_type") - private String queryType; - @TableField(value = "dict_name") - private String dictName; + private Boolean form_show; - @TableField(value = "date_annotation") - private String dateAnnotation; + + private String form_type; + + + private String query_type; + + + private String dict_name; + + + private String date_annotation; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dto/TablesInfo.java b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dto/TablesInfo.java index c081b87ae..9dce5d925 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dto/TablesInfo.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/dto/TablesInfo.java @@ -1,6 +1,5 @@ package org.nl.system.service.generator.dto; -import com.baomidou.mybatisplus.annotation.TableField; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -17,14 +16,12 @@ public class TablesInfo { /** * 表名 */ - @TableField(value = "table_name") - private String tableName; + private String table_name; /** * 创建时间 */ - @TableField(value = "create_time") - private String createTime; + private String create_time; /** * 引擎 diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/impl/CodeGenConfigServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/impl/CodeGenConfigServiceImpl.java index 40a1f8ac5..42e89a226 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/generator/impl/CodeGenConfigServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/generator/impl/CodeGenConfigServiceImpl.java @@ -30,7 +30,7 @@ public class CodeGenConfigServiceImpl extends ServiceImpl() - .eq(CodeGenConfig::getTableName, tableName)); + .eq(CodeGenConfig::getTable_name, tableName)); if (ObjectUtil.isEmpty(codeGenConfig)) { return new CodeGenConfig(tableName); } @@ -40,7 +40,7 @@ public class CodeGenConfigServiceImpl extends ServiceImpl codeColumnConfigs = columnConfigMapper .selectList(new LambdaQueryWrapper() - .eq(CodeColumnConfig::getTableName, tableName)); + .eq(CodeColumnConfig::getTable_name, tableName)); if (ObjectUtil.isEmpty(codeColumnConfigs)) { // 为空查找全新的数据 codeColumnConfigs = query(tableName); @@ -93,13 +93,13 @@ public class CodeGeneratorServiceImpl extends ServiceImpl columns = records.stream().filter(c -> c.getColumnName().equals(columnInfo.getColumnName())).collect(Collectors.toList()); + List columns = records.stream().filter(c -> c.getColumn_name().equals(columnInfo.getColumn_name())).collect(Collectors.toList()); // 如果能找到,就修改部分可能被字段 if (CollectionUtil.isNotEmpty(columns)) { CodeColumnConfig column = columns.get(0); - column.setColumnType(columnInfo.getColumnType()); + column.setColumn_type(columnInfo.getColumn_type()); column.setExtra(columnInfo.getExtra()); - column.setKeyType(columnInfo.getKeyType()); + column.setKey_type(columnInfo.getKey_type()); if (StrUtil.isEmpty(column.getRemark())) { column.setRemark(columnInfo.getRemark()); } @@ -112,10 +112,10 @@ public class CodeGeneratorServiceImpl extends ServiceImpl columns = columnInfoList.stream().filter(c -> c.getColumnName().equals(columnInfo.getColumnName())).collect(Collectors.toList()); + List columns = columnInfoList.stream().filter(c -> c.getColumn_name().equals(columnInfo.getColumn_name())).collect(Collectors.toList()); // 如果找不到,就代表字段被删除了,则需要删除该字段 if (CollectionUtil.isEmpty(columns)) { - columnConfigMapper.deleteById(columnInfo.getColumnId()); + columnConfigMapper.deleteById(columnInfo.getColumn_id()); } } } @@ -123,7 +123,7 @@ public class CodeGeneratorServiceImpl extends ServiceImpl preview(CodeGenConfig genConfig, IPage columns) { List columnsRecords = columns.getRecords(); - if (genConfig.getConfigId() == null) { + if (genConfig.getConfig_id() == null) { throw new BadRequestException("请先配置生成器"); } List> genList = GenUtil.preview(columnsRecords, genConfig); @@ -133,7 +133,7 @@ public class CodeGeneratorServiceImpl extends ServiceImpl columnsPage, HttpServletRequest request, HttpServletResponse response) { List columns = columnsPage.getRecords(); - if (genConfig.getConfigId() == null) { + if (genConfig.getConfig_id() == null) { throw new BadRequestException("请先配置生成器"); } try { @@ -149,7 +149,7 @@ public class CodeGeneratorServiceImpl extends ServiceImpl columnsPage) { List columns = columnsPage.getRecords(); - if (genConfig.getConfigId() == null) { + if (genConfig.getConfig_id() == null) { throw new BadRequestException("请先配置生成器"); } try { diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logging/ISysLogService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/ISysLogService.java new file mode 100644 index 000000000..6d2138457 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/ISysLogService.java @@ -0,0 +1,60 @@ +package org.nl.system.service.logging; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.aspectj.lang.ProceedingJoinPoint; +import org.nl.common.domain.query.PageQuery; +import org.nl.system.service.logging.dao.SysLog; +import org.springframework.scheduling.annotation.Async; + +import java.util.Map; + +/** + *

+ * 系统日志 服务类 + *

+ * + * @author generator + * @since 2023-05-08 + */ +public interface ISysLogService extends IService { + + /** + * 分页查询日志 + * + * @param criteria + * @param pageable + * @return + */ + IPage queryAll(Map criteria, PageQuery pageable); + + /** + * 查询异常详情 + * + * @param id 日志ID + * @return Object + */ + Object findByErrDetail(String id); + + /** + * 删除所有异常日志 + */ + void delAllByError(); + + /** + * 删除所有操作日志 + */ + void delAllByInfo(); + + /** + * 保存日志数据 + * + * @param username 用户 + * @param browser 浏览器 + * @param ip 请求IP + * @param joinPoint / + * @param log 日志实体 + */ + @Async + void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, SysLog log); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dao/SysLog.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dao/SysLog.java new file mode 100644 index 000000000..578d5f77b --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dao/SysLog.java @@ -0,0 +1,62 @@ +package org.nl.system.service.logging.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + *

+ * 系统日志 + *

+ * + * @author generator + * @since 2023-05-08 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +@TableName("sys_log") +public class SysLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @TableId(value = "log_id") + private String log_id; + + private String description; + + private String log_type; + + private String method; + + private String params; + + private String request_ip; + + private Long time; + + private String username; + + private String address; + + private String browser; + + /** + * 异常详细 + */ + private byte[] exception_detail; + + private String create_time; + + public SysLog(String logType, Long time) { + this.log_type = logType; + this.time = time; + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dao/mapper/SysLogMapper.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dao/mapper/SysLogMapper.java new file mode 100644 index 000000000..532579197 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dao/mapper/SysLogMapper.java @@ -0,0 +1,16 @@ +package org.nl.system.service.logging.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.system.service.logging.dao.SysLog; + +/** + *

+ * 系统日志 Mapper 接口 + *

+ * + * @author generator + * @since 2023-05-08 + */ +public interface SysLogMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dao/mapper/SysLogMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dao/mapper/SysLogMapper.xml new file mode 100644 index 000000000..38be495c7 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dao/mapper/SysLogMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dto/SysLogQuery.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dto/SysLogQuery.java new file mode 100644 index 000000000..2fbf52360 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/dto/SysLogQuery.java @@ -0,0 +1,12 @@ +package org.nl.system.service.logging.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.system.service.logging.dao.SysLog; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/5/8 + */ +public class SysLogQuery extends BaseQuery { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java new file mode 100644 index 000000000..1bf8913a2 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logging/impl/SysLogServiceImpl.java @@ -0,0 +1,146 @@ +package org.nl.system.service.logging.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.reflect.MethodSignature; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.common.utils.StringUtils; +import org.nl.modules.common.utils.ValidationUtil; +import org.nl.modules.logging.annotation.Log; +import org.nl.system.service.logging.ISysLogService; +import org.nl.system.service.logging.dao.SysLog; +import org.nl.system.service.logging.dao.mapper.SysLogMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.lang.reflect.Method; +import java.lang.reflect.Parameter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 系统日志 服务实现类 + *

+ * + * @author generator + * @since 2023-05-08 + */ +@Slf4j +@Service +public class SysLogServiceImpl extends ServiceImpl implements ISysLogService { + + @Autowired + private SysLogMapper logMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery pageable) { + String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) ? whereJson.get("blurry").toString() : null; + String log_type = ObjectUtil.isNotEmpty(whereJson.get("log_type")) ? whereJson.get("log_type").toString() : null; + String username = ObjectUtil.isNotEmpty(whereJson.get("username")) ? whereJson.get("username").toString() : null; + String begin_time = ObjectUtil.isNotEmpty(whereJson.get("begin_time")) ? whereJson.get("begin_time").toString() : null; + String end_time = ObjectUtil.isNotEmpty(whereJson.get("end_time")) ? whereJson.get("end_time").toString() : null; + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(ObjectUtil.isNotEmpty(log_type), SysLog::getLog_type, log_type) + .eq(ObjectUtil.isNotEmpty(username), SysLog::getUsername, username) + .like(ObjectUtil.isNotEmpty(blurry), SysLog::getDescription, blurry) + .le(ObjectUtil.isNotEmpty(end_time), SysLog::getCreate_time, end_time) + .ge(ObjectUtil.isNotEmpty(begin_time), SysLog::getCreate_time, begin_time) + .orderByDesc(SysLog::getCreate_time); + IPage page = new Page<>(pageable.getPage() + 1, pageable.getSize()); + logMapper.selectPage(page, lam); + return page; + } + + @Override + public Object findByErrDetail(String id) { + SysLog sysLog = logMapper.selectById(id); + if (ObjectUtil.isEmpty(sysLog)) { + sysLog = new SysLog(); + } + ValidationUtil.isNull(sysLog.getLog_id(), "SysLog", "log_id", id); + byte[] details = sysLog.getException_detail(); + return Dict.create().set("exception", new String(ObjectUtil.isNotNull(details) ? details : "".getBytes())); + } + + @Override + public void delAllByError() { + logMapper.delete(new LambdaQueryWrapper().eq(SysLog::getLog_type, "ERROR")); + } + + @Override + public void delAllByInfo() { + logMapper.delete(new LambdaQueryWrapper().eq(SysLog::getLog_type, "INFO")); + } + + @Override + public void save(String username, String browser, String ip, ProceedingJoinPoint joinPoint, SysLog logDto) { + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); + Log aopLog = method.getAnnotation(Log.class); + + // 方法路径 + String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; + + // 描述 + if (logDto != null) { + logDto.setDescription(aopLog.value()); + } + assert logDto != null; + logDto.setRequest_ip(ip); + + logDto.setAddress(StringUtils.getCityInfo(logDto.getRequest_ip())); + logDto.setMethod(methodName); + logDto.setUsername(username); + logDto.setParams(getParameter(method, joinPoint.getArgs())); + logDto.setBrowser(browser); + logDto.setLog_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + logDto.setCreate_time(DateUtil.now()); + logMapper.insert(logDto); + } + + /** + * 根据方法和传入的参数获取请求参数 + */ + private String getParameter(Method method, Object[] args) { + List argList = new ArrayList<>(); + Parameter[] parameters = method.getParameters(); + for (int i = 0; i < parameters.length; i++) { + //将RequestBody注解修饰的参数作为请求参数 + RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); + if (requestBody != null) { + argList.add(args[i]); + } + //将RequestParam注解修饰的参数作为请求参数 + RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); + if (requestParam != null) { + Map map = new HashMap<>(); + String key = parameters[i].getName(); + if (!StrUtil.isEmpty(requestParam.value())) { + key = requestParam.value(); + } + map.put(key, args[i]); + argList.add(map); + } + } + if (argList.size() == 0) { + return ""; + } + return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/IStageImageService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/IStageImageService.java new file mode 100644 index 000000000..fdae277e8 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/IStageImageService.java @@ -0,0 +1,58 @@ +package org.nl.system.service.logicflow; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.system.service.logicflow.dao.StageImage; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + *

+ * 设备舞台图标表 服务类 + *

+ * + * @author generator + * @since 2023-05-08 + */ +public interface IStageImageService extends IService { + + /** + * 分页 + * + * @param whereJson + * @param page + * @return + */ + IPage queryAll(Map whereJson, PageQuery page); + + /** + * 创建 + * + * @param entity + */ + void create(StageImage entity); + + /** + * 更新 + * + * @param entity + */ + void update(StageImage entity); + + /** + * 删除 + * + * @param ids + */ + void deleteAll(Set ids); + + /** + * 前端舞台编辑选择设备图标下拉选列表 + * + * @return + */ + List selectList(); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/IStageService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/IStageService.java new file mode 100644 index 000000000..70d10b177 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/IStageService.java @@ -0,0 +1,65 @@ +package org.nl.system.service.logicflow; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.system.service.logicflow.dao.Stage; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + *

+ * 舞台主表 服务类 + *

+ * + * @author generator + * @since 2023-05-08 + */ +public interface IStageService extends IService { + + /** + * 分页查询 + * + * @param whereJson + * @param page + * @return + */ + IPage queryAll(Map whereJson, PageQuery page); + + /** + * 新增 + * + * @param dto + */ + void create(Stage dto); + + /** + * 修改 + * + * @param dto + */ + void update(Stage dto); + + /** + * 删除 + * + * @param ids + */ + void deleteAll(Set ids); + + /** + * 前端舞台下拉选列表 + * + * @return + */ + List selectList(); + + /** + * 添加舞台数据 + * + * @param dto + */ + void addNewStage(Stage dto); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/Stage.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/Stage.java new file mode 100644 index 000000000..20d768a77 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/Stage.java @@ -0,0 +1,77 @@ +package org.nl.system.service.logicflow.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * 舞台主表 + *

+ * + * @author generator + * @since 2023-05-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("stage") +public class Stage implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 舞台标识 + */ + @TableId + private String stage_uuid; + + /** + * 舞台编码 + */ + private String stage_code; + + /** + * 舞台名字 + */ + private String stage_name; + + /** + * 舞台数据 + */ + private String stage_data; + + /** + * 是否启用 + */ + private String is_active; + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 创建者 + */ + private String create_by; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改者 + */ + private String update_by; + + /** + * 修改时间 + */ + private String update_time; + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/StageImage.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/StageImage.java new file mode 100644 index 000000000..307a4a00c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/StageImage.java @@ -0,0 +1,82 @@ +package org.nl.system.service.logicflow.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * 设备舞台图标表 + *

+ * + * @author generator + * @since 2023-05-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("stage_image") +public class StageImage implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 图标标识 + */ + @TableId + private String image_uuid; + + /** + * 图标编码 + */ + private String image_code; + + /** + * 图标名字 + */ + private String image_name; + + /** + * 适用驱动 + */ + private String driver_code_json; + + /** + * 备注 + */ + private String remark; + + /** + * 是否启用 + */ + private String is_active; + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 创建者 + */ + private String create_by; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改者 + */ + private String update_by; + + /** + * 修改时间 + */ + private String update_time; + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageImageMapper.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageImageMapper.java new file mode 100644 index 000000000..9193ea90b --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageImageMapper.java @@ -0,0 +1,16 @@ +package org.nl.system.service.logicflow.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.system.service.logicflow.dao.StageImage; + +/** + *

+ * 设备舞台图标表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-05-08 + */ +public interface StageImageMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageImageMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageImageMapper.xml new file mode 100644 index 000000000..93e3cacd8 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageImageMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageMapper.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageMapper.java new file mode 100644 index 000000000..b398c4aaf --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageMapper.java @@ -0,0 +1,16 @@ +package org.nl.system.service.logicflow.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.system.service.logicflow.dao.Stage; + +/** + *

+ * 舞台主表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-05-08 + */ +public interface StageMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageMapper.xml new file mode 100644 index 000000000..10c03e45b --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/dao/mapper/StageMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/impl/StageImageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/impl/StageImageServiceImpl.java new file mode 100644 index 000000000..d645a74aa --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/impl/StageImageServiceImpl.java @@ -0,0 +1,86 @@ +package org.nl.system.service.logicflow.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.system.service.logicflow.IStageImageService; +import org.nl.system.service.logicflow.dao.StageImage; +import org.nl.system.service.logicflow.dao.mapper.StageImageMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + *

+ * 设备舞台图标表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-08 + */ +@Service +public class StageImageServiceImpl extends ServiceImpl implements IStageImageService { + + @Autowired + private StageImageMapper stageImageMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + stageImageMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void create(StageImage entity) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String now = DateUtil.now(); + + entity.setImage_uuid(IdUtil.simpleUUID()); + entity.setCreate_by(currentUserId); + entity.setCreate_time(now); + entity.setUpdate_by(currentUserId); + entity.setUpdate_time(now); + stageImageMapper.insert(entity); + } + + @Override + public void update(StageImage entity) { + StageImage dto = stageImageMapper.selectOne(new LambdaQueryWrapper() + .eq(StageImage::getImage_uuid, entity.getImage_uuid())); + if (dto == null) { + throw new BadRequestException("被删除或无权限,操作失败!"); + } + + String currentUserId = SecurityUtils.getCurrentUserId(); + String now = DateUtil.now(); + entity.setUpdate_time(now); + entity.setUpdate_by(currentUserId); + stageImageMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + stageImageMapper.deleteBatchIds(ids); + } + + @Override + public List selectList() { + List stageImages = stageImageMapper.selectList(new LambdaQueryWrapper() + .eq(StageImage::getIs_delete, "0") + .eq(StageImage::getIs_active, "1") + .orderByDesc(StageImage::getUpdate_time)); + stageImages.forEach(stageImage -> stageImage.setImage_name(stageImage.getImage_code().split("-")[0])); + return stageImages; + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/impl/StageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/impl/StageServiceImpl.java new file mode 100644 index 000000000..96e581e6c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/logicflow/impl/StageServiceImpl.java @@ -0,0 +1,104 @@ +package org.nl.system.service.logicflow.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.system.service.logicflow.IStageService; +import org.nl.system.service.logicflow.dao.Stage; +import org.nl.system.service.logicflow.dao.mapper.StageMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + *

+ * 舞台主表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-08 + */ +@Service +public class StageServiceImpl extends ServiceImpl implements IStageService { + + @Autowired + private StageMapper stageMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + stageMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void create(Stage entity) { + Stage stage = stageMapper.selectOne(new LambdaQueryWrapper().eq(Stage::getStage_code, entity.getStage_code())); + if (ObjectUtil.isNotEmpty(stage)) { + throw new BadRequestException("舞台编码[" + entity.getStage_code() + "]已存在"); + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String now = DateUtil.now(); + + entity.setStage_uuid(IdUtil.simpleUUID()); + entity.setCreate_by(currentUserId); + entity.setCreate_time(now); + entity.setUpdate_by(currentUserId); + entity.setUpdate_time(now); + stageMapper.insert(entity); + } + + @Override + public void update(Stage dto) { + Stage entity = stageMapper.selectOne(new LambdaQueryWrapper().eq(Stage::getStage_uuid, dto.getStage_uuid())); + if (entity == null) { + throw new BadRequestException("被删除或无权限,操作失败!"); + } + + String currentUserId = SecurityUtils.getCurrentUserId(); + String now = DateUtil.now(); + dto.setUpdate_time(now); + dto.setUpdate_by(currentUserId); + stageMapper.updateById(dto); + } + + @Override + public void deleteAll(Set ids) { + stageMapper.deleteBatchIds(ids); + } + + @Override + public List selectList() { + List stages = stageMapper.selectList(new LambdaQueryWrapper() + .eq(Stage::getIs_delete, "0") + .eq(Stage::getIs_active, "1")); + return stages; + } + + @Override + public void addNewStage(Stage dto) { + Stage stage = stageMapper.selectOne(new LambdaQueryWrapper().eq(Stage::getStage_code, dto.getStage_code())); + if (ObjectUtil.isEmpty(stage)) { + throw new BadRequestException("舞台不存在"); + } + // 设置内容 + stage.setStage_data(dto.getStage_data()); + // 获取当前用户与时间 + String currentUsername = SecurityUtils.getCurrentUsername(); + String now = DateUtil.now(); + stage.setUpdate_time(now); + stage.setUpdate_by(currentUsername); + stageMapper.updateById(stage); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/ISysMenuService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/ISysMenuService.java index 5abdfa64c..c51b0f9d2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/ISysMenuService.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/ISysMenuService.java @@ -2,10 +2,10 @@ package org.nl.system.service.menu; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; +import org.nl.common.domain.vo.MenuVo; import org.nl.system.service.menu.dao.SysMenu; import org.nl.system.service.menu.dto.MenuDto; import org.nl.system.service.menu.dto.MenuQuery; -import org.nl.system.service.menu.dto.MenuVo; import java.util.List; import java.util.Map; @@ -24,16 +24,16 @@ public interface ISysMenuService extends IService { * 查询全部数据,菜单不使用分页 * * @param param 查询条件 - * @return + * @return / */ List queryAll(Map param); /** * 条件查询 * - * @param query - * @param page - * @return + * @param query / + * @param page / + * @return / */ List query(MenuQuery query, PageQuery page); @@ -41,7 +41,7 @@ public interface ISysMenuService extends IService { * 根据ID获取同级与上级数据 * * @param menuDto 菜单对象 - * @param menus + * @param menus / * @return / */ List getSuperior(MenuDto menuDto, List menus); @@ -57,7 +57,7 @@ public interface ISysMenuService extends IService { /** * 根据菜单父节点标识查询菜单列表 * - * @param pid + * @param pid / * @return 菜单列表 */ List findByPid(String pid); @@ -72,8 +72,8 @@ public interface ISysMenuService extends IService { /** * 获取所有子节点,包含自身ID * - * @param menuList - * @param menuSet + * @param menuList / + * @param menuSet / * @return / */ Set getChildMenus(List menuList, Set menuSet); @@ -81,37 +81,55 @@ public interface ISysMenuService extends IService { /** * 创建 * - * @param menu + * @param menu 菜单 */ void create(SysMenu menu); /** * 删除 * - * @param menuSet + * @param menuSet / */ void delete(Set menuSet); /** * 编辑 * - * @param menu + * @param menu 菜单 */ void update(SysMenu menu); - + /** + * 获取菜单数据 + * + * @param userId 用户列表 + * @return / + */ List findByUser(String userId); /** * 构建菜单树 * - * @param menuDtos + * @param menuDtos / * @return / */ List buildMenus(List menuDtos); + /** + * 构建菜单 + * + * @param menuDtos 菜单 + * @param pid 父id + * @return / + */ List buildMenus(List menuDtos, String pid); + /** + * 构建菜单 + * + * @param systemType 菜单类型 + * @return / + */ List buildMenus(String systemType); /** @@ -131,11 +149,21 @@ public interface ISysMenuService extends IService { List getMenus(String pid); /** - * @param sysMenu - * @return + * 实体转换 + * + * @param sysMenu 菜单 + * @return / */ MenuDto doToDto(SysMenu sysMenu); + /** + * 获取菜单 + * + * @param roleId 角色标识 + * @param systemType 系统类型 + * @param category 目录 + * @return / + */ List getMenusByRole(String roleId, String systemType, String category); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dao/SysMenu.java b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dao/SysMenu.java index 401fdc22f..33d4d78d5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dao/SysMenu.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dao/SysMenu.java @@ -27,7 +27,7 @@ public class SysMenu implements Serializable { * 菜单标识 */ @TableId(value = "menu_id", type = IdType.NONE) - private String menuId; + private String menu_id; /** * 上级菜单ID @@ -38,7 +38,7 @@ public class SysMenu implements Serializable { /** * 子菜单数目 */ - private Integer subCount; + private Integer sub_count; /** * 菜单类型 @@ -48,7 +48,7 @@ public class SysMenu implements Serializable { /** * 所属系统 */ - private String systemType; + private String system_type; /** * 菜单分类 @@ -63,7 +63,7 @@ public class SysMenu implements Serializable { /** * 组件名称 */ - private String componentName; + private String component_name; /** * 组件 @@ -73,7 +73,7 @@ public class SysMenu implements Serializable { /** * 排序 */ - private Integer menuSort; + private Integer menu_sort; /** * 图标 @@ -108,34 +108,34 @@ public class SysMenu implements Serializable { /** * 创建人标识 */ - private String createId; + private String create_id; /** * 创建人 */ - private String createName; + private String create_name; /** * 创建时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date create_time; /** * 修改人标识 */ - private String updateId; + private String update_id; /** * 修改人 */ - private String updateName; + private String update_name; /** * 修改时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date update_time; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuDto.java b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuDto.java index 3ae1c2991..fcff8d680 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuDto.java @@ -16,16 +16,21 @@ package org.nl.system.service.menu.dto; import lombok.Data; -import org.nl.modules.common.base.BaseDTO; +import org.nl.common.base.BaseDTO; import java.io.Serializable; import java.util.List; import java.util.Objects; +/** + * @Author: lyd + * @Description: 菜单 + * @Date: 2023/8/14 + */ @Data public class MenuDto extends BaseDTO implements Serializable { - private String menuId; + private String menu_id; private List children; @@ -35,7 +40,7 @@ public class MenuDto extends BaseDTO implements Serializable { private String title; - private Integer menuSort; + private Integer menu_sort; private String path; private String name; @@ -44,30 +49,30 @@ public class MenuDto extends BaseDTO implements Serializable { private String pid; - private Integer subCount; + private Integer sub_count; private Boolean iframe; - private String systemType; + private String system_type; private Boolean cache; private Boolean hidden; - private String componentName; + private String component_name; private String icon; - private boolean hasChildren; + private boolean has_children; private boolean leaf; - public Boolean getHasChildren() { - return subCount > 0; + public Boolean getHas_children() { + return sub_count > 0; } public Boolean getLeaf() { - return subCount <= 0; + return sub_count <= 0; } public String getLabel() { @@ -83,11 +88,11 @@ public class MenuDto extends BaseDTO implements Serializable { return false; } MenuDto menuDto = (MenuDto) o; - return Objects.equals(menuId, menuDto.menuId); + return Objects.equals(menu_id, menuDto.menu_id); } @Override public int hashCode() { - return Objects.hash(menuId); + return Objects.hash(menu_id); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuQuery.java b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuQuery.java index 207b30de8..2ac8089bc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/dto/MenuQuery.java @@ -14,7 +14,7 @@ import org.nl.system.service.menu.dao.SysMenu; @Data public class MenuQuery extends BaseQuery { private String pid = ""; - private String systemType; + private String system_type; @Override public void paramMapping() { diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java index 6967c7a58..3aa8403af 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/menu/impl/SysMenuServiceImpl.java @@ -8,24 +8,24 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.nl.common.domain.constant.DictConstantPool; import org.nl.common.domain.query.PageQuery; -import org.nl.common.utils.CopyUtil; -import org.nl.common.utils.IdUtil; -import org.nl.common.utils.SecurityUtils; +import org.nl.common.domain.vo.MenuMetaVo; +import org.nl.common.domain.vo.MenuVo; import org.nl.modules.common.exception.BadRequestException; -import org.nl.system.service.dict.ISysDictService; +import org.nl.common.utils.CopyUtil; +import org.nl.common.utils.SecurityUtils; import org.nl.system.service.dict.dao.Dict; +import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.system.service.menu.ISysMenuService; import org.nl.system.service.menu.dao.SysMenu; import org.nl.system.service.menu.dao.mapper.SysMenuMapper; import org.nl.system.service.menu.dto.MenuDto; -import org.nl.system.service.menu.dto.MenuMetaVo; import org.nl.system.service.menu.dto.MenuQuery; -import org.nl.system.service.menu.dto.MenuVo; +import org.nl.wms.util.IdUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -42,13 +42,14 @@ import java.util.stream.Collectors; * @since 2022-12-15 */ @Service -@RequiredArgsConstructor @Slf4j -@Transactional public class SysMenuServiceImpl extends ServiceImpl implements ISysMenuService { - private final SysMenuMapper baseMapper; - private final ISysDictService sysDictMapper; + @Autowired + private SysMenuMapper baseMapper; + + @Autowired + private SysDictMapper sysDictMapper; @Override public List queryAll(Map param) { @@ -64,7 +65,8 @@ public class SysMenuServiceImpl extends ServiceImpl impl query.setPid(null); } Page menuPage = this.page(page.build(SysMenu.class), query.build()); - List collect = menuPage.getRecords().stream().map(menu -> this.doToDto(menu)).sorted(Comparator.comparingInt(MenuDto::getMenuSort)).collect(Collectors.toList()); + List collect = menuPage.getRecords().stream().map(menu -> this.doToDto(menu)) + .sorted(Comparator.comparingInt(MenuDto::getMenu_sort)).collect(Collectors.toList()); return collect; } @@ -98,7 +100,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl public Set getChildMenus(List menuList, Set menuSet) { for (SysMenu menu : menuList) { menuSet.add(menu); - List menus = this.findByPid(menu.getMenuId()); + List menus = this.findByPid(menu.getMenu_id()); if (menus != null && menus.size() != 0) { getChildMenus(menus, menuSet); } @@ -116,41 +118,41 @@ public class SysMenuServiceImpl extends ServiceImpl impl throw new BadRequestException("外链必须以http://或者https://开头"); } } - resources.setMenuId(IdUtil.getStringId()); - if (resources.getPid().equals("0")) { + resources.setMenu_id(IdUtil.getStringId()); + if ("0".equals(resources.getPid())) { resources.setPid(null); addSystemTypeDict(resources); } baseMapper.insert(resources); // 计算子节点数目 - resources.setSubCount(0); + resources.setSub_count(0); // 更新父节点菜单数目 updateSubCnt(resources.getPid()); updateRootSystemType(resources); } private void addSystemTypeDict(SysMenu resources) { - Dict dict = sysDictMapper.getOne(new QueryWrapper().eq("code", DictConstantPool.DICT_SYS_CODE).orderByDesc("value").last("limit 1")); + Dict dict = sysDictMapper.selectOne(new QueryWrapper().eq("code", DictConstantPool.DICT_SYS_CODE).orderByDesc("value").last("limit 1")); Integer currentType = dict != null ? Integer.valueOf(dict.getValue()) + 1 : 1; Dict currentSysType = new Dict(); - currentSysType.setDictId(IdUtil.getStringId()); + currentSysType.setDict_id(IdUtil.getStringId()); currentSysType.setCode(DictConstantPool.DICT_SYS_CODE); currentSysType.setName(DictConstantPool.DICT_SYS_NAME); currentSysType.setLabel(resources.getTitle()); currentSysType.setValue(String.valueOf(currentType)); - currentSysType.setPara1(resources.getMenuId()); - sysDictMapper.save(currentSysType); - resources.setSystemType(String.valueOf(currentType)); + currentSysType.setPara1(resources.getMenu_id()); + sysDictMapper.insert(currentSysType); + resources.setSystem_type(String.valueOf(currentType)); } private void updateRootSystemType(SysMenu sysMenu) { - String rootMenuId = this.findRootMenuId(sysMenu.getMenuId()); - if (sysMenu.getMenuId().equals(rootMenuId)) { + String rootMenuId = this.findRootMenuId(sysMenu.getMenu_id()); + if (sysMenu.getMenu_id().equals(rootMenuId)) { return; } SysMenu rootMenu = this.findById(rootMenuId); - sysMenu.setSystemType(rootMenu.getSystemType()); + sysMenu.setSystem_type(rootMenu.getSystem_type()); this.updateById(sysMenu); } @@ -169,32 +171,28 @@ public class SysMenuServiceImpl extends ServiceImpl impl List pids = Lists.newArrayList(); for (SysMenu menu : menuSet) { //解绑菜单 - baseMapper.untiedMenu(menu.getMenuId()); - baseMapper.deleteById(menu.getMenuId()); + baseMapper.untiedMenu(menu.getMenu_id()); + baseMapper.deleteById(menu.getMenu_id()); String pid = menu.getPid(); if (StringUtils.isEmpty(pid)) { - pids.add(menu.getMenuId()); + pids.add(pid); } updateSubCnt(pid); } if (!CollectionUtils.isEmpty(pids)) { - sysDictMapper.remove(new QueryWrapper().in("para1", pids).eq("code", DictConstantPool.DICT_SYS_CODE)); + sysDictMapper.delete(new QueryWrapper().in("para1", pids).eq("code", DictConstantPool.DICT_SYS_CODE)); } } @Transactional(rollbackFor = Exception.class) @Override public void update(SysMenu resources) { - String menuId = resources.getMenuId(); + String menuId = resources.getMenu_id(); SysMenu menu = baseMapper.selectById(menuId); + // 获取当前菜单的所有子菜单 String allChild = baseMapper.findAllChild(menuId); - List allChildIds = new ArrayList<>(); - allChildIds.add(menuId); - if (StringUtils.isNotEmpty(allChild)) { - allChildIds.addAll(Arrays.asList(allChild.split(","))); - } - - if (allChildIds.contains(resources.getPid())) { + List allChildIds = ObjectUtil.isNotEmpty(allChild) ? Arrays.asList(allChild.split(",")) : null; + if (ObjectUtil.isNotEmpty(allChildIds) && allChildIds.contains(resources.getPid())) { throw new BadRequestException("上级不能为自己或自己的下级"); } if (resources.getIframe()) { @@ -204,22 +202,19 @@ public class SysMenuServiceImpl extends ServiceImpl impl } } - if (resources.getPid().equals("0")) { + if ("0".equals(resources.getPid())) { resources.setPid(null); if (StringUtils.isNotEmpty(menu.getPid())) { addSystemTypeDict(resources); } } else { - resources.setSystemType(this.findById(resources.getPid()).getSystemType()); + resources.setSystem_type(this.findById(resources.getPid()).getSystem_type()); } String oldPid = menu.getPid(); String newPid = resources.getPid(); // 记录的父节点ID if (oldPid == null && newPid != null) { - sysDictMapper.remove(new QueryWrapper().eq("para1", menu.getMenuId()).eq("code", DictConstantPool.DICT_SYS_CODE)); - } - if (!resources.getTitle().equals(menu.getTitle())) { - sysDictMapper.update(new UpdateWrapper().set("label", resources.getTitle()).eq("para1", menu.getMenuId()).eq("code", DictConstantPool.DICT_SYS_CODE)); + sysDictMapper.delete(new QueryWrapper().eq("para1", menu.getMenu_id())); } menu.setTitle(resources.getTitle()); menu.setComponent(resources.getComponent()); @@ -227,10 +222,10 @@ public class SysMenuServiceImpl extends ServiceImpl impl menu.setIcon(resources.getIcon()); menu.setIframe(resources.getIframe()); menu.setPid(resources.getPid()); - menu.setMenuSort(resources.getMenuSort()); + menu.setMenu_sort(resources.getMenu_sort()); menu.setCache(resources.getCache()); menu.setHidden(resources.getHidden()); - menu.setComponentName(resources.getComponentName()); + menu.setComponent_name(resources.getComponent_name()); menu.setPermission(resources.getPermission()); menu.setType(resources.getType()); baseMapper.updateById(menu); @@ -238,8 +233,8 @@ public class SysMenuServiceImpl extends ServiceImpl impl updateSubCnt(oldPid); updateSubCnt(newPid); //更新SystemType - if (!resources.getSystemType().equals(menu.getSystemType())) { - this.update(new UpdateWrapper().set(DictConstantPool.DICT_SYS_CODE, resources.getSystemType()).in("menu_id", allChildIds)); + if (!resources.getSystem_type().equals(menu.getSystem_type())) { + this.update(new UpdateWrapper().set(DictConstantPool.DICT_SYS_CODE, resources.getSystem_type()).in("menu_id", allChildIds)); } } @@ -256,7 +251,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl if (ObjectUtil.isEmpty(sysMenu)) { return; } - sysMenu.setSubCount(count); + sysMenu.setSub_count(count); baseMapper.updateById(sysMenu); } } @@ -273,7 +268,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl if (menuDTO != null) { List menuDtoList = menuDTO.getChildren(); MenuVo menuVo = new MenuVo(); - menuVo.setName(ObjectUtil.isNotEmpty(menuDTO.getComponentName()) ? menuDTO.getComponentName() : menuDTO.getTitle()); + menuVo.setName(ObjectUtil.isNotEmpty(menuDTO.getComponent_name()) ? menuDTO.getComponent_name() : menuDTO.getTitle()); // 一级目录需要加斜杠,不然会报警告 menuVo.setPath(ObjectUtil.isEmpty(menuDTO.getPid()) ? "/" + menuDTO.getPath() : menuDTO.getPath()); menuVo.setHidden(menuDTO.getHidden()); @@ -328,17 +323,17 @@ public class SysMenuServiceImpl extends ServiceImpl impl trees.add(menuDTO); } for (MenuDto it : menuDtos) { - if (menuDTO.getMenuId().equals(it.getPid())) { + if (menuDTO.getMenu_id().equals(it.getPid())) { if (menuDTO.getChildren() == null) { menuDTO.setChildren(new ArrayList<>()); } menuDTO.getChildren().add(it); - ids.add(it.getMenuId()); + ids.add(it.getMenu_id()); } } } if (trees.size() == 0) { - trees = menuDtos.stream().filter(s -> !ids.contains(s.getMenuId())).collect(Collectors.toList()); + trees = menuDtos.stream().filter(s -> !ids.contains(s.getMenu_id())).collect(Collectors.toList()); } return trees; } @@ -351,7 +346,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl } else { queryWrapper = new QueryWrapper().isNull("pid"); } - return baseMapper.selectList(queryWrapper); + return baseMapper.selectList(queryWrapper.orderByAsc("menu_sort")); } @Override @@ -361,45 +356,45 @@ public class SysMenuServiceImpl extends ServiceImpl impl if (ObjectUtil.isEmpty(entity)) { return menuDto; } - menuDto.setMenuId(entity.getMenuId()); + menuDto.setMenu_id(entity.getMenu_id()); menuDto.setType(entity.getType()); menuDto.setPermission(entity.getPermission()); menuDto.setTitle(entity.getTitle()); - menuDto.setMenuSort(entity.getMenuSort()); + menuDto.setMenu_sort(entity.getMenu_sort()); menuDto.setPath(entity.getPath()); menuDto.setComponent(entity.getComponent()); - menuDto.setSystemType(entity.getSystemType()); + menuDto.setSystem_type(entity.getSystem_type()); menuDto.setPid(entity.getPid()); - menuDto.setSubCount(entity.getSubCount()); + menuDto.setSub_count(entity.getSub_count()); menuDto.setIframe(entity.getIframe()); menuDto.setCache(entity.getCache()); menuDto.setHidden(entity.getHidden()); - menuDto.setComponentName(entity.getComponentName()); + menuDto.setComponent_name(entity.getComponent_name()); menuDto.setIcon(entity.getIcon()); - menuDto.setCreateTime(entity.getCreateTime()); + menuDto.setCreate_time(entity.getCreate_time()); //构建前端需要的数据结构树 - Integer sub_count = entity.getSubCount(); + Integer sub_count = entity.getSub_count(); if (sub_count <= 0) { menuDto.setLeaf(true); - menuDto.setHasChildren(false); + menuDto.setHas_children(false); } else { menuDto.setLeaf(false); - menuDto.setHasChildren(true); + menuDto.setHas_children(true); } return menuDto; } @Override public List buildMenus(String systemType) { - Dict dict = sysDictMapper.getOne(new QueryWrapper().eq("code", DictConstantPool.DICT_SYS_CODE).eq("value", systemType)); + Dict dict = sysDictMapper.selectOne(new QueryWrapper().eq("code", DictConstantPool.DICT_SYS_CODE).eq("value", systemType)); if (dict == null || StringUtils.isEmpty(dict.getPara1())) { throw new BadRequestException("获取对应的系统菜单不存在"); } String pid = dict.getPara1(); List menuDtoList = baseMapper.findSystemMenu(SecurityUtils.getCurrentUserId(), systemType); //移除系统级菜单 - menuDtoList.removeIf(a -> a.getMenuId().equals(pid)); + menuDtoList.removeIf(a -> a.getMenu_id().equals(pid)); List menuDtos = this.buildTree(CopyUtil.copyList(menuDtoList, MenuDto.class)); return this.buildMenus(menuDtos, pid); } @@ -412,7 +407,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl if (menuDTO != null) { List menuDtoList = menuDTO.getChildren(); MenuVo menuVo = new MenuVo(); - menuVo.setName(ObjectUtil.isNotEmpty(menuDTO.getComponentName()) ? menuDTO.getComponentName() : menuDTO.getTitle()); + menuVo.setName(ObjectUtil.isNotEmpty(menuDTO.getComponent_name()) ? menuDTO.getComponent_name() : menuDTO.getTitle()); // 一级目录需要加斜杠,不然会报警告 menuVo.setPath(pid.equals(menuDTO.getPid()) ? "/" + menuDTO.getPath() : menuDTO.getPath()); menuVo.setHidden(menuDTO.getHidden()); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/monitor/MonitorService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/monitor/MonitorService.java new file mode 100644 index 000000000..db66782bb --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/monitor/MonitorService.java @@ -0,0 +1,37 @@ +/* + * Copyright 2019-2020 Zheng Jie + * + * 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 org.nl.system.service.monitor; + +import org.dromara.dynamictp.common.entity.ThreadPoolStats; + +import java.util.List; +import java.util.Map; + +/** + * @author Zheng Jie + * @date 2020-05-02 + */ +public interface MonitorService { + + /** + * 查询数据分页 + * + * @return Map + */ + Map getServers(); + +// List getThreadData(); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/monitor/impl/MonitorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/monitor/impl/MonitorServiceImpl.java new file mode 100644 index 000000000..df41d34ca --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/monitor/impl/MonitorServiceImpl.java @@ -0,0 +1,200 @@ +/* + * Copyright 2019-2020 Zheng Jie + * + * 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 org.nl.system.service.monitor.impl; + +import cn.hutool.core.date.BetweenFormatter; +import cn.hutool.core.date.DateUtil; +import org.dromara.dynamictp.common.entity.ThreadPoolStats; +import org.nl.modules.common.utils.ElAdminConstant; +import org.nl.modules.common.utils.FileUtil; +import org.nl.modules.common.utils.StringUtils; +import org.nl.system.service.monitor.MonitorService; +import org.springframework.stereotype.Service; +import oshi.SystemInfo; +import oshi.hardware.CentralProcessor; +import oshi.hardware.GlobalMemory; +import oshi.hardware.HardwareAbstractionLayer; +import oshi.hardware.VirtualMemory; +import oshi.software.os.FileSystem; +import oshi.software.os.OSFileStore; +import oshi.software.os.OperatingSystem; +import oshi.util.FormatUtil; +import oshi.util.Util; + +import java.lang.management.ManagementFactory; +import java.text.DecimalFormat; +import java.util.*; + +/** + * @author Zheng Jie + * @date 2020-05-02 + */ +@Service +public class MonitorServiceImpl implements MonitorService { + + private final DecimalFormat df = new DecimalFormat("0.00"); + + @Override + public Map getServers() { + Map resultMap = new LinkedHashMap<>(8); + try { + SystemInfo si = new SystemInfo(); + OperatingSystem os = si.getOperatingSystem(); + HardwareAbstractionLayer hal = si.getHardware(); + // 系统信息 + resultMap.put("sys", getSystemInfo(os)); + // cpu 信息 + resultMap.put("cpu", getCpuInfo(hal.getProcessor())); + // 内存信息 + resultMap.put("memory", getMemoryInfo(hal.getMemory())); + // 交换区信息 + resultMap.put("swap", getSwapInfo(hal.getMemory())); + // 磁盘 + resultMap.put("disk", getDiskInfo(os)); + resultMap.put("time", DateUtil.format(new Date(), "HH:mm:ss")); + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + +// @Override +// public List getThreadData() { +// List res = new ArrayList<>(); +// res.add(ThreadMonitorCollector.TOMCAT_THREAD); +// res.add(ThreadMonitorCollector.EL_THREAD); +// return res; +// } + + /** + * 获取磁盘信息 + * + * @return / + */ + private Map getDiskInfo(OperatingSystem os) { + Map diskInfo = new LinkedHashMap<>(); + FileSystem fileSystem = os.getFileSystem(); + List fsArray = fileSystem.getFileStores(); + String osName = System.getProperty("os.name"); + long available = 0, total = 0; + for (OSFileStore fs : fsArray) { + // windows 需要将所有磁盘分区累加,linux 和 mac 直接累加会出现磁盘重复的问题,待修复 + if (osName.toLowerCase().startsWith(ElAdminConstant.WIN)) { + available += fs.getUsableSpace(); + total += fs.getTotalSpace(); + } else { + available = fs.getUsableSpace(); + total = fs.getTotalSpace(); + break; + } + } + long used = total - available; + diskInfo.put("total", total > 0 ? FileUtil.getSize(total) : "?"); + diskInfo.put("available", FileUtil.getSize(available)); + diskInfo.put("used", FileUtil.getSize(used)); + diskInfo.put("usageRate", df.format(used / (double) total * 100)); + return diskInfo; + } + + /** + * 获取交换区信息 + * + * @param memory / + * @return / + */ + private Map getSwapInfo(GlobalMemory memory) { + Map swapInfo = new LinkedHashMap<>(); + VirtualMemory virtualMemory = memory.getVirtualMemory(); + long total = virtualMemory.getSwapTotal(); + long used = virtualMemory.getSwapUsed(); + swapInfo.put("total", FormatUtil.formatBytes(total)); + swapInfo.put("used", FormatUtil.formatBytes(used)); + swapInfo.put("available", FormatUtil.formatBytes(total - used)); + if (used == 0) { + swapInfo.put("usageRate", 0); + } else { + swapInfo.put("usageRate", df.format(used / (double) total * 100)); + } + return swapInfo; + } + + /** + * 获取内存信息 + * + * @param memory / + * @return / + */ + private Map getMemoryInfo(GlobalMemory memory) { + Map memoryInfo = new LinkedHashMap<>(); + memoryInfo.put("total", FormatUtil.formatBytes(memory.getTotal())); + memoryInfo.put("available", FormatUtil.formatBytes(memory.getAvailable())); + memoryInfo.put("used", FormatUtil.formatBytes(memory.getTotal() - memory.getAvailable())); + memoryInfo.put("usageRate", df.format((memory.getTotal() - memory.getAvailable()) / (double) memory.getTotal() * 100)); + return memoryInfo; + } + + /** + * 获取Cpu相关信息 + * + * @param processor / + * @return / + */ + private Map getCpuInfo(CentralProcessor processor) { + Map cpuInfo = new LinkedHashMap<>(); + cpuInfo.put("name", processor.getProcessorIdentifier().getName()); + cpuInfo.put("package", processor.getPhysicalPackageCount() + "个物理CPU"); + cpuInfo.put("core", processor.getPhysicalProcessorCount() + "个物理核心"); + cpuInfo.put("coreNumber", processor.getPhysicalProcessorCount()); + cpuInfo.put("logic", processor.getLogicalProcessorCount() + "个逻辑CPU"); + // CPU信息 + long[] prevTicks = processor.getSystemCpuLoadTicks(); + // 等待1秒... + Util.sleep(1000); + long[] ticks = processor.getSystemCpuLoadTicks(); + long user = ticks[CentralProcessor.TickType.USER.getIndex()] - prevTicks[CentralProcessor.TickType.USER.getIndex()]; + long nice = ticks[CentralProcessor.TickType.NICE.getIndex()] - prevTicks[CentralProcessor.TickType.NICE.getIndex()]; + long sys = ticks[CentralProcessor.TickType.SYSTEM.getIndex()] - prevTicks[CentralProcessor.TickType.SYSTEM.getIndex()]; + long idle = ticks[CentralProcessor.TickType.IDLE.getIndex()] - prevTicks[CentralProcessor.TickType.IDLE.getIndex()]; + long iowait = ticks[CentralProcessor.TickType.IOWAIT.getIndex()] - prevTicks[CentralProcessor.TickType.IOWAIT.getIndex()]; + long irq = ticks[CentralProcessor.TickType.IRQ.getIndex()] - prevTicks[CentralProcessor.TickType.IRQ.getIndex()]; + long softirq = ticks[CentralProcessor.TickType.SOFTIRQ.getIndex()] - prevTicks[CentralProcessor.TickType.SOFTIRQ.getIndex()]; + long steal = ticks[CentralProcessor.TickType.STEAL.getIndex()] - prevTicks[CentralProcessor.TickType.STEAL.getIndex()]; + long totalCpu = user + nice + sys + idle + iowait + irq + softirq + steal; + cpuInfo.put("used", df.format(100d * user / totalCpu + 100d * sys / totalCpu)); + cpuInfo.put("idle", df.format(100d * idle / totalCpu)); + return cpuInfo; + } + + /** + * 获取系统相关信息,系统、运行天数、系统IP + * + * @param os / + * @return / + */ + private Map getSystemInfo(OperatingSystem os) { + Map systemInfo = new LinkedHashMap<>(); + // jvm 运行时间 + long time = ManagementFactory.getRuntimeMXBean().getStartTime(); + Date date = new Date(time); + // 计算项目运行时间 5.4.3:BetweenFormater, 5.7.14改名为BetweenFormatter + String formatBetween = DateUtil.formatBetween(date, new Date(), BetweenFormatter.Level.HOUR); + // 系统信息 + systemInfo.put("os", os.toString()); + systemInfo.put("day", formatBetween); + systemInfo.put("ip", StringUtils.getLocalIp()); + return systemInfo; + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java index 4feb1de8d..7a1efeb18 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/notice/impl/SysNoticeServiceImpl.java @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.nl.common.domain.query.PageQuery; +import org.nl.common.enums.NoticeEnum; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.mnt.websocket.MsgType; import org.nl.modules.mnt.websocket.SocketMsg; @@ -19,7 +20,6 @@ import org.nl.modules.mnt.websocket.WebSocketServer; import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.system.service.notice.ISysNoticeService; -import org.nl.system.service.notice.NoticeEnum; import org.nl.system.service.notice.dao.SysNotice; import org.nl.system.service.notice.dao.mapper.SysNoticeMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -108,7 +108,7 @@ public class SysNoticeServiceImpl extends ServiceImpl> result = new LinkedList<>(); List dictList = dictMapper.selectList(new LambdaQueryWrapper() .eq(Dict::getCode, "notice_type") - .orderByAsc(Dict::getDictSort)); + .orderByAsc(Dict::getDict_sort)); dictList.forEach(dict -> { List sysNotices = sysNoticeMapper.selectList(new LambdaQueryWrapper() .eq(SysNotice::getNotice_type, dict.getValue()) @@ -159,8 +159,6 @@ public class SysNoticeServiceImpl extends ServiceImpl sysNotices = sysNoticeMapper.selectList(new LambdaQueryWrapper() .eq(SysNotice::getNotice_title, title) .eq(SysNotice::getHave_read, NoticeEnum.HAVE_READ_OFF.getValue())); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/param/ISysParamService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/param/ISysParamService.java index 8a2a61a02..fa257c4c5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/param/ISysParamService.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/param/ISysParamService.java @@ -1,6 +1,6 @@ package org.nl.system.service.param; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; import org.nl.system.service.param.dao.Param; @@ -25,7 +25,7 @@ public interface ISysParamService extends IService { * @param page 分页信息 * @return */ - Page queryPage(Map whereJson, PageQuery page); + IPage queryPage(Map whereJson, PageQuery page); /** * 创建参数 diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/param/dao/Param.java b/lms/nladmin-system/src/main/java/org/nl/system/service/param/dao/Param.java index 0cbb48ec3..55be4bc7a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/param/dao/Param.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/param/dao/Param.java @@ -51,42 +51,42 @@ public class Param implements Serializable { /** * 是否启用 */ - private String isActive; + private Boolean is_active; /** * 是否删除 */ - private String isDelete; + private Boolean is_delete; /** * 创建者ID */ - private String createId; + private String create_id; /** * 创建者 */ - private String createName; + private String create_name; /** * 创建时间 */ - private String createTime; + private String create_time; /** * 修改者ID */ - private String updateId; + private String update_id; /** * 修改者 */ - private String updateName; + private String update_name; /** * 修改时间 */ - private String updateTime; + private String update_time; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java index 6c9f4a741..8e7999965 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java @@ -1,24 +1,26 @@ package org.nl.system.service.param.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import com.alicp.jetcache.anno.CachePenetrationProtect; import com.alicp.jetcache.anno.CacheType; import com.alicp.jetcache.anno.CacheUpdate; import com.alicp.jetcache.anno.Cached; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.MapOf; -import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.dao.mapper.SysParamMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -33,24 +35,25 @@ import java.util.Map; * @author generator * @since 2022-12-14 */ -@Service -@RequiredArgsConstructor @Slf4j -@Transactional +@Service public class SysParamServiceImpl extends ServiceImpl implements ISysParamService { - private final SysParamMapper paramMapper; + @Autowired + private SysParamMapper paramMapper; @Override - public Page queryPage(Map whereJson, PageQuery page) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - String code = MapUtil.getStr(whereJson, "code"); - if (ObjectUtil.isNotEmpty(code)) { - queryWrapper.likeRight("code", code).or().likeRight("name", code); - } - queryWrapper.orderBy(true, true, "create_time"); - Page paramPage = paramMapper.selectPage(page.build(), queryWrapper); - return paramPage; + public IPage queryPage(Map whereJson, PageQuery page) { + String code = ObjectUtil.isNotEmpty(whereJson.get("code")) + ? whereJson.get("code").toString() : null; + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + LambdaQueryWrapper lam = new QueryWrapper().lambda(); + lam.like(ObjectUtil.isNotEmpty(code), Param::getCode, code) + .or(ObjectUtil.isNotEmpty(code)) + .like(ObjectUtil.isNotEmpty(code), Param::getName, code) + .orderByAsc(Param::getCreate_time); + paramMapper.selectPage(pages, lam); + return pages; } @Override @@ -64,26 +67,31 @@ public class SysParamServiceImpl extends ServiceImpl impl String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - param.setCreateId(currentUserId); - param.setCreateName(nickName); - param.setCreateTime(now); - param.setUpdateId(currentUserId); - param.setUpdateName(nickName); - param.setUpdateTime(now); + param.setCreate_id(currentUserId); + param.setCreate_name(nickName); + param.setCreate_time(now); + param.setUpdate_id(currentUserId); + param.setUpdate_name(nickName); + param.setUpdate_time(now); paramMapper.insert(param); } @Override + @CacheUpdate(name="paramCache-", key="#param.code", value="#param") @Transactional(rollbackFor = Exception.class) - @CacheUpdate(name = "paramDataCode.", key = "#param.code", value = "#param") public void update(Param param) { Param paramObj = paramMapper.selectById(param.getId()); if (ObjectUtil.isEmpty(paramObj)) { throw new BadRequestException("被删除或无权限,操作失败!"); } - param.setUpdateId(SecurityUtils.getCurrentUserId()); - param.setUpdateName(SecurityUtils.getCurrentNickName()); - param.setUpdateTime(DateUtil.now()); + Param param1 = paramMapper.selectOne(new LambdaQueryWrapper().eq(Param::getCode, param.getCode()) + .and(lam -> lam.ne(Param::getId, param.getId()))); + if (ObjectUtil.isNotEmpty(param1)) { + throw new BadRequestException("编码[" + param.getCode() + "]已存在"); + } + param.setUpdate_id(SecurityUtils.getCurrentUserId()); + param.setUpdate_name(SecurityUtils.getCurrentNickName()); + param.setUpdate_time(DateUtil.now()); paramMapper.updateById(param); } @@ -94,7 +102,8 @@ public class SysParamServiceImpl extends ServiceImpl impl } @Override - @Cached(name = "paramDataCode.", key = "#code", expire = 3600, cacheType = CacheType.REMOTE) + @CachePenetrationProtect + @Cached(name="paramCache-",key = "#code", expire = 3600, cacheType = CacheType.REMOTE) public Param findByCode(String code) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("code", code); diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/ISysDataPermissionService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/ISysDataPermissionService.java index d6f1ef563..6140d461e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/ISysDataPermissionService.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/ISysDataPermissionService.java @@ -35,50 +35,58 @@ public interface ISysDataPermissionService extends IService { /** * 新增数据权限 * - * @param permission + * @param permission / */ void create(SysDataPermission permission); /** * 修改 * - * @param permission + * @param permission / */ void update(SysDataPermission permission); /** * 批量删除 * - * @param ids + * @param ids / */ void deleteAll(Set ids); /** - * @return + * 数据范围类型 + * + * @return Dict */ List getDataScopeType(); /** * 获取数据权限下拉框 * - * @return + * @return / */ List getDataPermissionOption(); + /** + * 获取数据显示 + * + * @param id / + * @return / + */ List getDataShow(String id); /** * 保存数据权限 * - * @param datas + * @param datas / */ void savePermission(JSONObject datas); /** * 数据展示 * - * @param data - * @return + * @param data / + * @return / */ List getDataDetail(JSONObject data); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/SysDataPermission.java b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/SysDataPermission.java index d796b1771..b855cad00 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/SysDataPermission.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/SysDataPermission.java @@ -28,7 +28,7 @@ public class SysDataPermission implements Serializable { * permission_id */ @TableId(value = "permission_id") - private String permissionId; + private String permission_id; /** * 编码 @@ -45,7 +45,7 @@ public class SysDataPermission implements Serializable { /** * 排序 */ - private BigDecimal orderSort; + private BigDecimal order_sort; /** * 备注 @@ -55,42 +55,42 @@ public class SysDataPermission implements Serializable { /** * 是否启用 */ - private String isUsed; + private String is_used; /** * 是否删除 */ - private String isDelete; + private String is_delete; /** * 创建人标识 */ - private String createId; + private String create_id; /** * 创建人 */ - private String createName; + private String create_name; /** * 创建时间 */ - private String createTime; + private String create_time; /** * 修改人标识 */ - private String updateId; + private String update_id; /** * 修改人 */ - private String updateName; + private String update_name; /** * 修改时间 */ - private String updateTime; + private String update_time; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/SysDataScope.java b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/SysDataScope.java index 0160f6609..63becb3a9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/SysDataScope.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/SysDataScope.java @@ -1,6 +1,5 @@ package org.nl.system.service.permission.dao; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,32 +24,22 @@ public class SysDataScope implements Serializable { /** * 当前用户 */ - private String selfUserId; + private String self_user_id; /** * 数据权限类型 */ - private String permissionScopeType; + private String permission_scope_type; /** * 部门权限列表 */ - private String deptId; + private String dept_id; /** * 用户权限列表 */ - private String userId; + private String user_id; - @TableField(exist = false) - private String deptName; - @TableField(exist = false) - private String personName; - - @TableField(exist = false) - private String permissionName; - - @TableField(exist = false) - private String permissionId; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/mapper/SysDataPermissionMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/mapper/SysDataPermissionMapper.xml index e1ee6c890..b4e41f6c2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/mapper/SysDataPermissionMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dao/mapper/SysDataPermissionMapper.xml @@ -3,11 +3,12 @@ INSERT INTO sys_data_scope(self_user_id, permission_scope_type, user_id) - VALUES (#{dataScope.selfUserId}, #{dataScope.permissionScopeType}, #{dataScope.userId}) + VALUES (#{dataScope.self_user_id}, #{dataScope.permission_scope_type}, #{dataScope.user_id}) INSERT INTO sys_data_scope(self_user_id, permission_scope_type, user_id, dept_id) - VALUES (#{dataScope.selfUserId}, #{dataScope.permissionScopeType}, #{dataScope.userId}, #{dataScope.deptId}) + VALUES (#{dataScope.self_user_id}, #{dataScope.permission_scope_type}, #{dataScope.user_id}, + #{dataScope.dept_id}) DELETE diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dto/DataScopeEnum.java b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dto/DataScopeEnum.java index 9cd230035..a3de79671 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dto/DataScopeEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/dto/DataScopeEnum.java @@ -12,8 +12,17 @@ import lombok.Getter; @AllArgsConstructor public enum DataScopeEnum { + /** + * 用户数据权限 + */ USER("user", "用户数据权限"), + /** + * 部门数据权限 + */ DEPT("dept", "部门数据权限"), + /** + * 自身数据权限 + */ SELF("self", "自身数据权限"); private final String code; private final String name; diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/impl/SysDataPermissionServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/impl/SysDataPermissionServiceImpl.java index 341cc8140..8b62f83b9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/permission/impl/SysDataPermissionServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/permission/impl/SysDataPermissionServiceImpl.java @@ -8,10 +8,9 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.RequiredArgsConstructor; import org.nl.common.domain.query.PageQuery; -import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.system.service.permission.ISysDataPermissionService; @@ -22,6 +21,7 @@ import org.nl.system.service.permission.dto.DataScopeEnum; import org.nl.system.service.permission.dto.SysDataPermissionQuery; import org.nl.system.service.user.ISysUserService; import org.nl.system.service.user.dto.UserDataPermissionDto; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,13 +37,14 @@ import java.util.Set; * @since 2022-12-20 */ @Service -@RequiredArgsConstructor -@Transactional public class SysDataPermissionServiceImpl extends ServiceImpl implements ISysDataPermissionService { - private final SysDataPermissionMapper dataPermissionMapper; - private final ISysUserService userService; - private final SysDictMapper dictMapper; + @Autowired + private SysDataPermissionMapper dataPermissionMapper; + @Autowired + private ISysUserService userService; + @Autowired + private SysDictMapper dictMapper; @Override public IPage queryAll(SysDataPermissionQuery dataPermissionQuery, PageQuery page) { @@ -61,26 +62,26 @@ public class SysDataPermissionServiceImpl extends ServiceImpl getDataShow(String userId) { List userDataPermissionDtoList = userService.getUserDataPermissionByUserId(userId); userDataPermissionDtoList.forEach(userDataPermissionDto -> { - SysDataPermission sysDataPermission = dataPermissionMapper.selectOne(new LambdaQueryWrapper().eq(SysDataPermission::getPermissionId, userDataPermissionDto.getPermissionId())); + SysDataPermission sysDataPermission = dataPermissionMapper.selectOne(new LambdaQueryWrapper().eq(SysDataPermission::getPermission_id, userDataPermissionDto.getPermission_id())); if (sysDataPermission.getCode().equals(DataScopeEnum.USER.getCode())) { // 用户权限 - List userIds = dataPermissionMapper.findDataScopeUserIdBySelfUserIdAndScopeType(userId, userDataPermissionDto.getPermissionScopeType()); + List userIds = dataPermissionMapper.findDataScopeUserIdBySelfUserIdAndScopeType(userId, userDataPermissionDto.getPermission_scope_type()); if (ObjectUtil.isNotEmpty(userIds)) { userDataPermissionDto.setUsers(userIds); } } else if (sysDataPermission.getCode().equals(DataScopeEnum.DEPT.getCode())) { // 部门权限 - List deptIds = dataPermissionMapper.findDataScopeDeptIdBySelfUserIdAndScopeType(userId, userDataPermissionDto.getPermissionScopeType()); + List deptIds = dataPermissionMapper.findDataScopeDeptIdBySelfUserIdAndScopeType(userId, userDataPermissionDto.getPermission_scope_type()); if (ObjectUtil.isNotEmpty(deptIds)) { userDataPermissionDto.setDepts(deptIds); } } else if (sysDataPermission.getCode().equals(DataScopeEnum.SELF.getCode())) { // 自身 - List userIds = dataPermissionMapper.findDataScopeUserIdBySelfUserIdAndScopeType(userId, userDataPermissionDto.getPermissionScopeType()); + List userIds = dataPermissionMapper.findDataScopeUserIdBySelfUserIdAndScopeType(userId, userDataPermissionDto.getPermission_scope_type()); if (ObjectUtil.isNotEmpty(userIds)) { userDataPermissionDto.setUsers(userIds); } @@ -135,7 +136,7 @@ public class SysDataPermissionServiceImpl extends ServiceImpl user_ids = userService.getUserIdByDeptId(deptId); + String dept_id = dept.getString("dept_id"); + List user_ids = userService.getUserIdByDeptId(dept_id); user_ids.forEach(id -> { SysDataScope dataScope = new SysDataScope(); - dataScope.setUserId(id); - dataScope.setDeptId(deptId); - dataScope.setSelfUserId(user_id); - dataScope.setPermissionScopeType(permission_scope_type); + dataScope.setUser_id(id); + dataScope.setDept_id(dept_id); + dataScope.setSelf_user_id(user_id); + dataScope.setPermission_scope_type(permission_scope_type); dataPermissionMapper.insertDataScopes(dataScope); }); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/ISysQuartzJobService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/ISysQuartzJobService.java index 9af33155a..976a310c8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/ISysQuartzJobService.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/ISysQuartzJobService.java @@ -73,6 +73,12 @@ public interface ISysQuartzJobService extends IService { */ void deleteJob(Set ids); + /** + * 执行子任务 + * + * @param tasks + * @throws InterruptedException + */ void executionSubJob(String[] tasks) throws InterruptedException; /** diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/JobRunner.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/JobRunner.java index a535ee994..b9ffebc03 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/JobRunner.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/JobRunner.java @@ -13,6 +13,11 @@ import org.springframework.stereotype.Component; import java.util.List; +/** + * @Author: lyd + * @Description: job运行 + * @Date: 2023/8/14 + */ @Component @RequiredArgsConstructor @Order(100) diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/QuartzConfig.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/QuartzConfig.java index c2cc9ac03..b3b88e52e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/QuartzConfig.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/config/QuartzConfig.java @@ -1,14 +1,18 @@ package org.nl.system.service.quartz.config; +import org.quartz.Scheduler; import org.quartz.spi.TriggerFiredBundle; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.quartz.AdaptableJobFactory; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; import org.springframework.stereotype.Component; +import java.util.Properties; + /** * 定时任务配置 - * * @author / * @date 2019-01-07 */ @@ -37,4 +41,27 @@ public class QuartzConfig { } } + /** + * 注入scheduler到spring + * @param quartzJobFactory / + * @return Scheduler + * @throws Exception / + */ + @Bean(name = "scheduler") + public Scheduler scheduler(QuartzJobFactory quartzJobFactory) throws Exception { + SchedulerFactoryBean factoryBean=new SchedulerFactoryBean(); + + //https://blog.csdn.net/YuChenIT/article/details/133344898 + Properties prop = new Properties(); + prop.put("org.quartz.threadPool.threadCount", "9"); + factoryBean.setWaitForJobsToCompleteOnShutdown(true); + + factoryBean.setQuartzProperties(prop); + + factoryBean.setJobFactory(quartzJobFactory); + factoryBean.afterPropertiesSet(); + Scheduler scheduler=factoryBean.getScheduler(); + scheduler.start(); + return scheduler; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dao/SysQuartzJob.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dao/SysQuartzJob.java index c14c2b03b..86ad3a2a7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dao/SysQuartzJob.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dao/SysQuartzJob.java @@ -30,36 +30,36 @@ public class SysQuartzJob implements Serializable { * 标识 */ @TableId(value = "job_id") - private String jobId; + private String job_id; /** * bean名 */ @NotBlank - private String beanName; + private String bean_name; /** * corn表达式 */ @NotBlank - private String cronExpression; + private String cron_expression; /** * 状态 */ - private Boolean isPause; + private Boolean is_pause; /** * 任务名称 */ @NotBlank - private String jobName; + private String job_name; /** * 方法名称 */ @NotBlank - private String methodName; + private String method_name; /** * 参数 @@ -75,7 +75,7 @@ public class SysQuartzJob implements Serializable { /** * 负责人 */ - private String personInCharge; + private String person_in_charge; /** * 邮箱 @@ -85,42 +85,42 @@ public class SysQuartzJob implements Serializable { /** * 子任务ID */ - private String subTask; + private String sub_task; /** * 失败状态 */ - private Boolean pauseAfterFailure; + private Boolean pause_after_failure; /** * 创建人标识 */ - private String createId; + private String create_id; /** * 创建人 */ - private String createName; + private String create_name; /** * 创建时间 */ - private String createTime; + private String create_time; /** * 修改人标识 */ - private String updateId; + private String update_id; /** * 修改人 */ - private String updateName; + private String update_name; /** * 修改时间 */ - private String updateTime; + private String update_time; @TableField(exist = false) private String uuid; diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dao/SysQuartzLog.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dao/SysQuartzLog.java index a7f0cfec2..715ba4987 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dao/SysQuartzLog.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dao/SysQuartzLog.java @@ -26,42 +26,42 @@ public class SysQuartzLog implements Serializable { * 标识 */ @TableId(value = "log_id") - private String logId; + private String log_id; /** * bean名 */ - private String beanName; + private String bean_name; /** * 创建时间 */ - private String createTime; + private String create_time; /** * corn表达式 */ - private String cronExpression; + private String cron_expression; /** * 异常信息 */ - private String exceptionDetail; + private String exception_detail; /** * 是否成功 */ - private Boolean isSuccess; + private Boolean is_success; /** * 任务名称 */ - private String jobName; + private String job_name; /** * 方法名称 */ - private String methodName; + private String method_name; /** * 参数 diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dto/JobQuery.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dto/JobQuery.java index 319eacb7c..8d09b2eae 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dto/JobQuery.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/dto/JobQuery.java @@ -16,12 +16,12 @@ import java.util.List; */ @Data public class JobQuery extends BaseQuery { - private String jobName; - private Boolean isSuccess; - private List createTime; + private String job_name; + private Boolean is_success; + private List create_time; @Override public void paramMapping() { - this.doP.put("jobName", QParam.builder().k(new String[]{"job_name"}).type(QueryTEnum.LK).build()); + this.doP.put("job_name", QParam.builder().k(new String[]{"job_name"}).type(QueryTEnum.LK).build()); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/impl/SysQuartzJobServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/impl/SysQuartzJobServiceImpl.java index 8d092034b..5d4ede481 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/impl/SysQuartzJobServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/impl/SysQuartzJobServiceImpl.java @@ -8,10 +8,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.RequiredArgsConstructor; import org.nl.common.domain.query.PageQuery; -import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.utils.RedisUtils; import org.nl.system.service.quartz.ISysQuartzJobService; import org.nl.system.service.quartz.dao.SysQuartzJob; @@ -21,6 +20,7 @@ import org.nl.system.service.quartz.dao.mapper.SysQuartzLogMapper; import org.nl.system.service.quartz.dto.JobQuery; import org.nl.system.service.quartz.utils.QuartzManage; import org.quartz.CronExpression; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -38,14 +38,15 @@ import java.util.Set; * @since 2022-12-19 */ @Service -@RequiredArgsConstructor -@Transactional public class SysQuartzJobServiceImpl extends ServiceImpl implements ISysQuartzJobService { - - private final SysQuartzJobMapper quartzJobMapper; - private final SysQuartzLogMapper quartzLogMapper; - private final QuartzManage quartzManage; - private final RedisUtils redisUtils; + @Autowired + private SysQuartzJobMapper quartzJobMapper; + @Autowired + private SysQuartzLogMapper quartzLogMapper; + @Autowired + private QuartzManage quartzManage; + @Autowired + private RedisUtils redisUtils; @Override public IPage queryAll(JobQuery criteria, PageQuery pageable) { @@ -55,11 +56,11 @@ public class SysQuartzJobServiceImpl extends ServiceImpl queryAllLog(JobQuery criteria, PageQuery page) { LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); - lam.like(ObjectUtil.isNotEmpty(criteria.getJobName()), SysQuartzLog::getJobName, criteria.getJobName()) - .eq(ObjectUtil.isNotEmpty(criteria.getIsSuccess()), SysQuartzLog::getIsSuccess, criteria.getIsSuccess()) - .nested(ObjectUtil.isNotEmpty(criteria.getCreateTime()), i -> { - i.ge(SysQuartzLog::getCreateTime, criteria.getCreateTime().get(0)) - .le(SysQuartzLog::getCreateTime, criteria.getCreateTime().get(1)); + lam.like(ObjectUtil.isNotEmpty(criteria.getJob_name()), SysQuartzLog::getJob_name, criteria.getJob_name()) + .eq(ObjectUtil.isNotEmpty(criteria.getIs_success()), SysQuartzLog::getIs_success, criteria.getIs_success()) + .nested(ObjectUtil.isNotEmpty(criteria.getCreate_time()), i -> { + i.ge(SysQuartzLog::getCreate_time, criteria.getCreate_time().get(0)) + .le(SysQuartzLog::getCreate_time, criteria.getCreate_time().get(1)); }); IPage pages = new Page<>(page.getPage() + 1, page.getSize()); quartzLogMapper.selectPage(pages, lam); @@ -69,19 +70,19 @@ public class SysQuartzJobServiceImpl extends ServiceImpl tasks = Arrays.asList(resources.getSubTask().split("[,,]")); - if (tasks.contains(resources.getJobId())) { + if (StrUtil.isNotEmpty(resources.getSub_task())) { + List tasks = Arrays.asList(resources.getSub_task().split("[,,]")); + if (tasks.contains(resources.getJob_id())) { throw new BadRequestException("子任务中不能添加当前任务ID"); } } - resources.setUpdateId(SecurityUtils.getCurrentUserId()); - resources.setUpdateName(SecurityUtils.getCurrentNickName()); - resources.setUpdateTime(DateUtil.now()); + resources.setUpdate_id(SecurityUtils.getCurrentUserId()); + resources.setUpdate_name(SecurityUtils.getCurrentNickName()); + resources.setUpdate_time(DateUtil.now()); quartzJobMapper.updateById(resources); quartzManage.updateJobCron(resources); } @@ -109,12 +110,12 @@ public class SysQuartzJobServiceImpl extends ServiceImpl findByIsPauseIsFalse() { - return quartzJobMapper.selectList(new LambdaQueryWrapper().eq(SysQuartzJob::getIsPause, false)); + return quartzJobMapper.selectList(new LambdaQueryWrapper().eq(SysQuartzJob::getIs_pause, false)); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/task/AutoClearInteractionData.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/task/AutoClearInteractionData.java new file mode 100644 index 000000000..930787b2c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/task/AutoClearInteractionData.java @@ -0,0 +1,28 @@ +//package org.nl.system.service.quartz.task; +// +//import lombok.extern.slf4j.Slf4j; +//import org.nl.system.service.param.ISysParamService; +//import org.nl.system.service.param.dao.Param; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Component; +// +///** +// * @Author: lyd +// * @Description: 自动清理交互数据 +// * @Date: 2023/8/11 +// */ +//@Slf4j +//@Component +//public class AutoClearInteractionData { +// @Autowired +// private ISysInteractRecordService recordService; +// @Autowired +// private ISysParamService paramService; +// +// public void run() { +// Param max_rows_to_keep = paramService.findByCode("max_rows_to_keep"); +// Param max_rows_to_delete = paramService.findByCode("max_rows_to_delete"); +// recordService.deleteByRows(max_rows_to_keep, max_rows_to_delete); +// log.info("run 执行成功"); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/task/AutoClearLuceneData.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/task/AutoClearLuceneData.java new file mode 100644 index 000000000..0bdc5064d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/task/AutoClearLuceneData.java @@ -0,0 +1,47 @@ +//package org.nl.system.service.quartz.task; +// +//import lombok.extern.slf4j.Slf4j; +//import org.apache.lucene.document.LongPoint; +//import org.apache.lucene.index.IndexWriter; +//import org.apache.lucene.search.Query; +//import org.nl.config.lucene.LuceneAppender; +//import org.nl.system.service.param.ISysParamService; +//import org.nl.system.service.param.dao.Param; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Component; +// +//import java.io.IOException; +//import java.text.ParseException; +//import java.text.SimpleDateFormat; +//import java.time.LocalDateTime; +//import java.time.temporal.ChronoUnit; +//import java.util.Date; +// +///** +// * @Author: lyd +// * @Description: 自动删除lucene日志 +// * @Date: 2023/10/26 +// */ +//@Slf4j +//@Component +//public class AutoClearLuceneData { +// @Autowired +// private ISysParamService paramService; +// +// public void run() throws ParseException, IOException { +// Param log_day = paramService.findByCode("log_day"); +// IndexWriter writer = LuceneAppender.indexWriter; +// // 获取当前时间 +// LocalDateTime now = LocalDateTime.now(); +// // 减去七天 +// LocalDateTime sevenDaysAgo = now.minus(Long.parseLong(log_day.getValue()), ChronoUnit.DAYS); +// // 获取时间戳 +// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); +// Date date = dateFormat.parse(String.valueOf(sevenDaysAgo)); +// // 获取Unix时间戳 +// long unixTimestamp = date.getTime(); +// Query query = LongPoint.newRangeQuery("time", 0L, unixTimestamp); +// writer.deleteDocuments(query); +// writer.commit(); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/ExecutionJob.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/ExecutionJob.java index 5f2628b56..05968a0ad 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/ExecutionJob.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/ExecutionJob.java @@ -4,7 +4,6 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.yomahub.tlog.task.quartz.TLogQuartzJobBean; import lombok.extern.slf4j.Slf4j; -import org.nl.config.thread.ThreadPoolExecutorUtil; import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.common.utils.ThrowableUtil; import org.nl.modules.wql.util.SpringContextHolder; @@ -41,6 +40,7 @@ public class ExecutionJob extends TLogQuartzJobBean { @Qualifier("threadPoolExecutor") private ThreadPoolExecutor EXECUTOR; + @Override public void executeTask(JobExecutionContext context) throws JobExecutionException { SysQuartzJob quartzJob = (SysQuartzJob) context.getMergedJobDataMap().get(SysQuartzJob.JOB_KEY); @@ -52,16 +52,18 @@ public class ExecutionJob extends TLogQuartzJobBean { String uuid = quartzJob.getUuid(); SysQuartzLog logDto = new SysQuartzLog(); - logDto.setLogId(IdUtil.getSnowflake(1, 1).nextIdStr()); - logDto.setJobName(quartzJob.getJobName()); - logDto.setBeanName(quartzJob.getBeanName()); - logDto.setMethodName(quartzJob.getMethodName()); + logDto.setLog_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + logDto.setJob_name(quartzJob.getJob_name()); + logDto.setBean_name(quartzJob.getBean_name()); + logDto.setMethod_name(quartzJob.getMethod_name()); logDto.setParams(quartzJob.getParams()); long startTime = System.currentTimeMillis(); - logDto.setCronExpression(quartzJob.getCronExpression()); + logDto.setCron_expression(quartzJob.getCron_expression()); try { // 执行任务 - QuartzRunnable task = new QuartzRunnable(quartzJob.getBeanName(), quartzJob.getMethodName(), + System.out.println("--------------------------------------------------------------"); + System.out.println("任务开始执行,任务名称:" + quartzJob.getJob_name()); + QuartzRunnable task = new QuartzRunnable(quartzJob.getBean_name(), quartzJob.getMethod_name(), quartzJob.getParams()); Future future = EXECUTOR.submit(task); future.get(); @@ -71,10 +73,12 @@ public class ExecutionJob extends TLogQuartzJobBean { redisUtils.set(uuid, true); } // 任务状态 - logDto.setIsSuccess(true); + logDto.setIs_success(true); + System.out.println("任务执行完毕,任务名称:" + quartzJob.getJob_name() + ", 执行时间:" + times + "毫秒"); + System.out.println("--------------------------------------------------------------"); // 判断是否存在子任务 - if (StrUtil.isNotEmpty(quartzJob.getSubTask())) { - String[] tasks = quartzJob.getSubTask().split("[,,]"); + if (StrUtil.isNotEmpty(quartzJob.getSub_task())) { + String[] tasks = quartzJob.getSub_task().split("[,,]"); // 执行子任务 quartzJobService.executionSubJob(tasks); } @@ -82,19 +86,21 @@ public class ExecutionJob extends TLogQuartzJobBean { if (StrUtil.isNotEmpty(uuid)) { redisUtils.set(uuid, false); } + System.out.println("任务执行失败,任务名称:" + quartzJob.getJob_name()); + System.out.println("--------------------------------------------------------------"); long times = System.currentTimeMillis() - startTime; logDto.setTime(times); // 任务状态 0:成功 1:失败 - logDto.setIsSuccess(false); - logDto.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + logDto.setIs_success(false); + logDto.setException_detail(ThrowableUtil.getStackTrace(e)); // 任务如果失败了则暂停 - if (quartzJob.getPauseAfterFailure() != null && quartzJob.getPauseAfterFailure()) { - quartzJob.setIsPause(false); + if (quartzJob.getPause_after_failure() != null && quartzJob.getPause_after_failure()) { + quartzJob.setIs_pause(false); //更新状态 quartzJobService.updateIsPause(quartzJob); } //异常时候打印日志 - log.error(logDto.toString()); + log.info(logDto.toString()); quartzLogMapper.insert(logDto); } finally { diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java index a1907a094..0da1b22f4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java @@ -21,20 +21,21 @@ import static org.quartz.TriggerBuilder.newTrigger; @Component public class QuartzManage { private static final String JOB_NAME = "TASK_"; - @Resource(name = "quartzScheduler") + + @Resource(name = "scheduler") private Scheduler scheduler; public void addJob(SysQuartzJob quartzJob) { try { // 构建job信息 JobDetail jobDetail = JobBuilder.newJob(ExecutionJob.class). - withIdentity(JOB_NAME + quartzJob.getJobId()).build(); + withIdentity(JOB_NAME + quartzJob.getJob_id()).build(); //通过触发器名和cron 表达式创建 Trigger Trigger cronTrigger = newTrigger() - .withIdentity(JOB_NAME + quartzJob.getJobId()) + .withIdentity(JOB_NAME + quartzJob.getJob_id()) .startNow() - .withSchedule(CronScheduleBuilder.cronSchedule(quartzJob.getCronExpression())) + .withSchedule(CronScheduleBuilder.cronSchedule(quartzJob.getCron_expression())) .build(); cronTrigger.getJobDataMap().put(SysQuartzJob.JOB_KEY, quartzJob); @@ -46,7 +47,7 @@ public class QuartzManage { scheduler.scheduleJob(jobDetail, cronTrigger); // 暂停任务 - if (quartzJob.getIsPause()) { + if (quartzJob.getIs_pause()) { pauseJob(quartzJob); } } catch (Exception e) { @@ -62,14 +63,14 @@ public class QuartzManage { */ public void updateJobCron(SysQuartzJob quartzJob) { try { - TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getJobId()); + TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getJob_id()); CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); // 如果不存在则创建一个定时任务 if (trigger == null) { addJob(quartzJob); trigger = (CronTrigger) scheduler.getTrigger(triggerKey); } - CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(quartzJob.getCronExpression()); + CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(quartzJob.getCron_expression()); trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); //重置启动时间 ((CronTriggerImpl) trigger).setStartTime(new Date()); @@ -77,7 +78,7 @@ public class QuartzManage { scheduler.rescheduleJob(triggerKey, trigger); // 暂停任务 - if (quartzJob.getIsPause()) { + if (quartzJob.getIs_pause()) { pauseJob(quartzJob); } } catch (Exception e) { @@ -93,13 +94,13 @@ public class QuartzManage { */ public void resumeJob(SysQuartzJob quartzJob) { try { - TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getJobId()); + TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getJob_id()); CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); // 如果不存在则创建一个定时任务 if (trigger == null) { addJob(quartzJob); } - JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getJobId()); + JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getJob_id()); scheduler.resumeJob(jobKey); } catch (Exception e) { log.error("恢复定时任务失败", e); @@ -114,7 +115,7 @@ public class QuartzManage { */ public void pauseJob(SysQuartzJob quartzJob) { try { - JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getJobId()); + JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getJob_id()); scheduler.pauseJob(jobKey); } catch (Exception e) { log.error("定时任务暂停失败", e); @@ -129,7 +130,7 @@ public class QuartzManage { */ public void runJobNow(SysQuartzJob quartzJob) { try { - TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getJobId()); + TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getJob_id()); CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); // 如果不存在则创建一个定时任务 if (trigger == null) { @@ -137,7 +138,7 @@ public class QuartzManage { } JobDataMap dataMap = new JobDataMap(); dataMap.put(SysQuartzJob.JOB_KEY, quartzJob); - JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getJobId()); + JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getJob_id()); scheduler.triggerJob(jobKey, dataMap); } catch (Exception e) { log.error("定时任务执行失败", e); @@ -152,7 +153,7 @@ public class QuartzManage { */ public void deleteJob(SysQuartzJob quartzJob) { try { - JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getJobId()); + JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getJob_id()); scheduler.pauseJob(jobKey); scheduler.deleteJob(jobKey); } catch (Exception e) { diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/redis/RedisService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/RedisService.java new file mode 100644 index 000000000..24e452eb6 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/RedisService.java @@ -0,0 +1,39 @@ +package org.nl.system.service.redis; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +/** + * @Author: lyd + * @Description: Redis监控的服务 + * @Date: 2022-08-04 + */ +public interface RedisService { + /** + * 获取redis的信息 + * + * @return + */ + JSONObject getRedisMonitorInfo(); + + /** + * 获得 Redis Key 模板列表 + * + * @return + */ + JSONObject getKeyDefineList(); + + /** + * 获取所有的键值信息 + * + * @return + */ + JSONArray getKeyValueList(); + + /** + * 删除redis缓存数据 + * + * @param ids + */ + void deleteByKey(String[] ids); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/redis/dao/RedisKeyDefine.java b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/dao/RedisKeyDefine.java new file mode 100644 index 000000000..865225019 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/dao/RedisKeyDefine.java @@ -0,0 +1,141 @@ +package org.nl.system.service.redis.dao; + +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; + +import java.time.Duration; + +/** + * @Author: lyd + * @Description: Redis Key 定义类 + * @Date: 2022-08-04 + */ +@Data +public class RedisKeyDefine { + + @Getter + @AllArgsConstructor + public enum KeyTypeEnum { + + /** + * String + */ + STRING("String"), + /** + * List + */ + LIST("List"), + /** + * Hash + */ + HASH("Hash"), + /** + * Set + */ + SET("Set"), + /** + * Sorted Set + */ + ZSET("Sorted Set"), + /** + * Stream + */ + STREAM("Stream"), + /** + * Pub/Sub + */ + PUBSUB("Pub/Sub"); + + /** + * 类型 + */ + @JsonValue + private final String type; + + } + + @Getter + @AllArgsConstructor + public enum TimeoutTypeEnum { + + /** + * 永不超时 + */ + FOREVER(1), + /** + * 动态超时 + */ + DYNAMIC(2), + /** + * 固定超时 + */ + FIXED(3); + + /** + * 类型 + */ + @JsonValue + private final Integer type; + + } + + /** + * Key 模板 + */ + private final String keyTemplate; + /** + * Key 类型的枚举 + */ + private final KeyTypeEnum keyType; + /** + * Value 类型 + * 如果是使用分布式锁,设置为 {@link java.util.concurrent.locks.Lock} 类型 + */ + private final Class valueType; + /** + * 超时类型 + */ + private final TimeoutTypeEnum timeoutType; + /** + * 过期时间 + */ + private final Duration timeout; + /** + * 备注 + */ + private final String memo; + + private RedisKeyDefine(String memo, String keyTemplate, KeyTypeEnum keyType, Class valueType, + TimeoutTypeEnum timeoutType, Duration timeout) { + this.memo = memo; + this.keyTemplate = keyTemplate; + this.keyType = keyType; + this.valueType = valueType; + this.timeout = timeout; + this.timeoutType = timeoutType; + // 添加注册表 + RedisKeyRegistry.add(this); + } + + public RedisKeyDefine(String memo, String keyTemplate, KeyTypeEnum keyType, Class valueType, Duration timeout) { + this(memo, keyTemplate, keyType, valueType, TimeoutTypeEnum.FIXED, timeout); + } + + public RedisKeyDefine(String memo, String keyTemplate, KeyTypeEnum keyType, Class valueType, TimeoutTypeEnum timeoutType) { + this(memo, keyTemplate, keyType, valueType, timeoutType, Duration.ZERO); + } + + /** + * 格式化 Key + *

+ * 注意,内部采用 {@link String#format(String, Object...)} 实现 + * + * @param args 格式化的参数 + * @return Key + */ + public String formatKey(Object... args) { + return String.format(keyTemplate, args); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/redis/dao/RedisKeyRegistry.java b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/dao/RedisKeyRegistry.java new file mode 100644 index 000000000..2a2c86410 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/dao/RedisKeyRegistry.java @@ -0,0 +1,28 @@ +package org.nl.system.service.redis.dao; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: lyd + * @Description: {@link RedisKeyDefine} 注册表 + * @Date: 2022-08-04 + */ +public class RedisKeyRegistry { + /** + * Redis RedisKeyDefine 数组 + */ + private static final List DEFINES = new ArrayList<>(); + + public static void add(RedisKeyDefine define) { + DEFINES.add(define); + } + + public static List list() { + return DEFINES; + } + + public static int size() { + return DEFINES.size(); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/redis/impl/RedisServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/impl/RedisServiceImpl.java new file mode 100644 index 000000000..321a46f13 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/impl/RedisServiceImpl.java @@ -0,0 +1,82 @@ +package org.nl.system.service.redis.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.config.redis.RedisConvert; +import org.nl.system.service.redis.RedisService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.connection.DataType; +import org.springframework.data.redis.connection.RedisServerCommands; +import org.springframework.data.redis.core.RedisCallback; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Iterator; +import java.util.Properties; +import java.util.Set; + +/** + * @Author: lyd + * @Description: Redis监控的实现类 + * @Date: 2022-08-04 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class RedisServiceImpl implements RedisService { + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + @Override + public JSONObject getRedisMonitorInfo() { + // 获得 Redis 统计信息 + Properties info = stringRedisTemplate.execute((RedisCallback) RedisServerCommands::info); + Long dbSize = stringRedisTemplate.execute(RedisServerCommands::dbSize); + Properties commandStats = stringRedisTemplate.execute(( + RedisCallback) connection -> connection.info("commandstats")); + assert commandStats != null; + // 拼接结果返回 + // 转成实体 + JSONObject json = new JSONObject(); + json.put("info", RedisConvert.INSTANCE.build(info, dbSize, commandStats)); + return json; + } + + @Override + public JSONObject getKeyDefineList() { + return new JSONObject(); + } + + @Override + public JSONArray getKeyValueList() { + JSONArray result = new JSONArray(); + Set keys = stringRedisTemplate.keys("*"); + // 迭代 + Iterator it = keys.iterator(); + while (it.hasNext()) { + String key = it.next(); + JSONObject redis = new JSONObject(); + // 数据类型 + DataType dataType = stringRedisTemplate.type(key); + // 获取值 + String s = stringRedisTemplate.opsForValue().get(key); + // 获取剩余时间 + Long expire = stringRedisTemplate.getExpire(key); + redis.put("dataType", dataType); + redis.put("key", key); + redis.put("value", s); + redis.put("expire", expire); + result.add(redis); + } + return result; + } + + @Override + public void deleteByKey(String[] ids) { + stringRedisTemplate.delete(Arrays.asList(ids)); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/redis/vo/RedisKeyDefineRespVO.java b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/vo/RedisKeyDefineRespVO.java new file mode 100644 index 000000000..d952e7d4d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/vo/RedisKeyDefineRespVO.java @@ -0,0 +1,36 @@ +package org.nl.system.service.redis.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import org.nl.system.service.redis.dao.RedisKeyDefine; + +import java.time.Duration; + +/** + * @Author: lyd + * @Description: 管理后台 - Redis Key 信息 Response VO + * @Date: 2022-08-04 + */ +@Data +@Builder +@AllArgsConstructor +public class RedisKeyDefineRespVO { + + private String keyTemplate; + + + private RedisKeyDefine.KeyTypeEnum keyType; + + + private Class valueType; + + + private RedisKeyDefine.TimeoutTypeEnum timeoutType; + + + private Duration timeout; + + + private String memo; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/redis/vo/RedisMonitorRespVO.java b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/vo/RedisMonitorRespVO.java new file mode 100644 index 000000000..dc808f270 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/redis/vo/RedisMonitorRespVO.java @@ -0,0 +1,43 @@ +package org.nl.system.service.redis.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; + +import java.util.List; +import java.util.Properties; + +/** + * @Author: lyd + * @Description: 管理后台 - Redis 监控信息 Response VO + * @Date: 2022-08-04 + */ +@Data +@Builder +@AllArgsConstructor +public class RedisMonitorRespVO { + + private Properties info; + + + private Long dbSize; + + + private List commandStats; + + @Data + @Builder + @AllArgsConstructor + public static class CommandStat { + + + private String command; + + + private Integer calls; + + + private Long usec; + + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/role/ISysRoleService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/role/ISysRoleService.java index 0e285e3fd..7b30c1ebd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/role/ISysRoleService.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/role/ISysRoleService.java @@ -20,41 +20,48 @@ import java.util.Set; */ public interface ISysRoleService extends IService { + /** + * 查询 + * + * @param param / + * @param page / + * @return / + */ IPage query(Map param, PageQuery page); /** * 创建角色 * - * @param param + * @param param / */ void create(JSONObject param); /** * 更新角色 * - * @param param + * @param param / */ void update(JSONObject param); /** * 删除角色 * - * @param ids + * @param ids / */ void deleteBatchByIds(Set ids); /** * 更新角色菜单 * - * @param form + * @param form / */ void updateMenu(JSONObject form); /** * 通过id获取用户的权限 * - * @param userDto - * @return + * @param userDto / + * @return / */ List getPermissionList(JSONObject userDto); @@ -62,10 +69,15 @@ public interface ISysRoleService extends IService { /** * 保存用户角色关系 * - * @param UserId - * @param deptIds + * @param UserId / + * @param deptIds / */ void saveUserRoleRelation(String UserId, List deptIds); + /** + * 删除用户-角色关系 + * + * @param UserId 用户标识 + */ void delUserRoleRelation(String UserId); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/role/dao/SysRole.java b/lms/nladmin-system/src/main/java/org/nl/system/service/role/dao/SysRole.java index 5b5d342c0..9bf2f5d6a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/role/dao/SysRole.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/role/dao/SysRole.java @@ -3,13 +3,11 @@ package org.nl.system.service.role.dao; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; import java.math.BigDecimal; -import java.util.Date; import java.util.List; /** @@ -31,7 +29,7 @@ public class SysRole implements Serializable { * ID */ @TableId(value = "role_id") - private String roleId; + private String role_id; /** * 名称 @@ -46,7 +44,7 @@ public class SysRole implements Serializable { /** * 排序 */ - private BigDecimal orderSeq; + private BigDecimal order_seq; /** * 备注 @@ -56,44 +54,42 @@ public class SysRole implements Serializable { /** * 是否启用 */ - private String isUsed; + private String is_used; /** * 是否删除 */ - private String isDelete; + private String is_delete; /** * 创建人标识 */ - private String createId; + private String create_id; /** * 创建人 */ - private String createName; + private String create_name; /** * 创建时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; + private String create_time; /** * 修改人标识 */ - private String updateId; + private String update_id; /** * 修改人 */ - private String updateName; + private String update_name; /** * 修改时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; + private String update_time; /** * 角色菜单id diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/role/dao/mapper/SysRoleMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/role/dao/mapper/SysRoleMapper.xml index 6a996be25..60bc77356 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/role/dao/mapper/SysRoleMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/role/dao/mapper/SysRoleMapper.xml @@ -13,8 +13,6 @@ from sys_users_roles where user_id = #{user} - - insert into sys_roles_menus values diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java index 45d8974fc..bdf3280ac 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/role/impl/SysRoleServiceImpl.java @@ -10,17 +10,16 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.nl.common.constants.FieldConstant; import org.nl.common.domain.query.PageQuery; -import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; import org.nl.system.service.menu.dao.mapper.SysMenuMapper; import org.nl.system.service.role.ISysRoleService; import org.nl.system.service.role.dao.SysRole; import org.nl.system.service.role.dao.mapper.SysRoleMapper; -import org.nl.system.service.user.dao.SysUser; -import org.nl.system.service.user.dao.mapper.SysUserMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -36,27 +35,25 @@ import java.util.*; * @since 2022-12-15 */ @Service -@RequiredArgsConstructor -@Transactional public class SysRoleServiceImpl extends ServiceImpl implements ISysRoleService { - private final SysRoleMapper roleMapper; - private final SysUserMapper userMapper; - - private final SysMenuMapper sysMenuMapper; + @Autowired + private SysRoleMapper roleMapper; + @Autowired + private SysMenuMapper sysMenuMapper; @Override public IPage query(Map param, PageQuery page) { String blurry = null; - if (ObjectUtil.isNotEmpty(param.get("blurry"))) { + if (ObjectUtil.isNotEmpty(param.get(FieldConstant.BLURRY))) { blurry = param.get("blurry").toString(); } LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); lam.like(ObjectUtil.isNotEmpty(blurry), SysRole::getName, blurry); IPage pages = new Page<>(page.getPage() + 1, page.getSize()); roleMapper.selectPage(pages, lam); - // 需要吧menus反回去 - pages.getRecords().forEach(sysRole -> sysRole.setMenus(roleMapper.selectMenuIdsByRoles(sysRole.getRoleId()))); + // 需要吧menus返回去 + pages.getRecords().forEach(sysRole -> sysRole.setMenus(roleMapper.selectMenuIdsByRoles(sysRole.getRole_id()))); return pages; } @@ -75,17 +72,18 @@ public class SysRoleServiceImpl extends ServiceImpl impl if (ObjectUtil.isNotEmpty(role)) { throw new BadRequestException("角色【" + name + "】已存在!"); } + String userId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); // 插入 - sysRole.setRoleId(IdUtil.getSnowflake(1, 1).nextIdStr()); - sysRole.setCreateId(userId); - sysRole.setCreateName(nickName); - sysRole.setCreateTime(new Date()); - sysRole.setUpdateId(userId); - sysRole.setUpdateName(nickName); - sysRole.setUpdateTime(new Date()); + sysRole.setRole_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + sysRole.setCreate_id(userId); + sysRole.setCreate_name(nickName); + sysRole.setCreate_time(now); + sysRole.setUpdate_id(userId); + sysRole.setUpdate_name(nickName); + sysRole.setUpdate_time(now); roleMapper.insert(sysRole); } @@ -101,16 +99,16 @@ public class SysRoleServiceImpl extends ServiceImpl impl //判断角色名字是否存在 SysRole role = roleMapper.selectOne(new LambdaQueryWrapper().eq(SysRole::getName, sysRole.getName()) - .ne(SysRole::getRoleId, sysRole.getRoleId())); + .ne(SysRole::getRole_id, sysRole.getRole_id())); if (ObjectUtil.isNotEmpty(role)) { throw new BadRequestException("角色【" + name + "】已存在!"); } String userId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - sysRole.setUpdateId(userId); - sysRole.setUpdateName(nickName); - sysRole.setUpdateTime(new Date()); + sysRole.setUpdate_id(userId); + sysRole.setUpdate_name(nickName); + sysRole.setUpdate_time(now); roleMapper.updateById(sysRole); } @@ -126,7 +124,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl @Override @Transactional(rollbackFor = Exception.class) public void updateMenu(JSONObject form) { - String roleId = form.getString("roleId"); + String roleId = form.getString("role_id"); JSONArray menus = form.getJSONArray("menus"); Set menuIds = new HashSet<>(); for (int i = 0; i < menus.size(); i++) { @@ -143,11 +141,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl public List getPermissionList(JSONObject userDto) { List permission = new LinkedList<>(); // 查看是否为管理员 - String currentUserId = SecurityUtils.getCurrentUserId(); - SysUser sysUser = userMapper.selectOne(new LambdaQueryWrapper().eq(SysUser::getUserId, currentUserId)); - if (ObjectUtil.isNotEmpty(sysUser.getIsAdmin()) && sysUser.getIsAdmin()) { - permission.add("admin"); - } + permission.add("admin"); permission.addAll(sysMenuMapper.getPermissionByUserId(userDto.getString("userId"))); return permission; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/secutiry/dto/OnlineUserDto.java b/lms/nladmin-system/src/main/java/org/nl/system/service/secutiry/dto/OnlineUserDto.java deleted file mode 100644 index 9a959451b..000000000 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/secutiry/dto/OnlineUserDto.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2019-2020 Zheng Jie - * - * 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 org.nl.system.service.secutiry.dto; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Date; - -/** - * 在线用户 - * - * @author Zheng Jie - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class OnlineUserDto { - - /** - * 用户名 - */ - private String userName; - - /** - * 昵称 - */ - private String nickName; - - /** - * 岗位 - */ - private String dept; - - /** - * 浏览器 - */ - private String browser; - - /** - * IP - */ - private String ip; - - /** - * 地址 - */ - private String address; - - /** - * token - */ - private String key; - - /** - * 登录时间 - */ - private Date loginTime; - - -} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/user/dto/UserDto.java b/lms/nladmin-system/src/main/java/org/nl/system/service/secutiry/dto/UserDto.java similarity index 94% rename from lms/nladmin-system/src/main/java/org/nl/system/service/user/dto/UserDto.java rename to lms/nladmin-system/src/main/java/org/nl/system/service/secutiry/dto/UserDto.java index 8d09843c8..1aba3ce8f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/user/dto/UserDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/secutiry/dto/UserDto.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.nl.system.service.user.dto; +package org.nl.system.service.secutiry.dto; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Getter; import lombok.Setter; -import org.nl.modules.common.base.BaseDTO; +import org.nl.common.base.BaseDTO; import java.io.Serializable; import java.util.Date; diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/secutiry/impl/OnlineUserService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/secutiry/impl/OnlineUserService.java index 4cbf77257..70d07f827 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/secutiry/impl/OnlineUserService.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/secutiry/impl/OnlineUserService.java @@ -18,24 +18,27 @@ package org.nl.system.service.secutiry.impl; import cn.dev33.satoken.secure.SaSecureUtil; import cn.dev33.satoken.stp.SaLoginModel; import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.nl.common.constants.GeneralDefinition; import org.nl.modules.common.config.RsaProperties; import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.dto.CurrentUser; import org.nl.modules.common.utils.*; +import org.nl.system.service.dept.ISysDeptService; +import org.nl.system.service.dept.dao.SysDept; import org.nl.system.service.role.ISysRoleService; import org.nl.system.service.secutiry.dto.AuthUserDto; import org.nl.system.service.user.ISysUserService; import org.nl.system.service.user.dao.SysUser; -import org.nl.system.service.user.dto.CurrentUser; import org.nl.system.service.user.dto.OnlineUserDto; -import org.nl.system.service.user.dto.UserDto; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Pageable; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -56,10 +59,11 @@ public class OnlineUserService { @Autowired private ISysUserService sysUserService; @Autowired + private ISysDeptService deptService; + @Autowired private ISysRoleService roleService; - private final RedisUtils redisUtils; - @Value("${sa-token.cookie.domain}") - private String domain; + @Autowired + private RedisUtils redisUtils; public OnlineUserService(RedisUtils redisUtils) { this.redisUtils = redisUtils; @@ -72,20 +76,27 @@ public class OnlineUserService { * @param token / * @param request / */ - public void save(UserDto userDto, String token, HttpServletRequest request) { -// String dept = userDto.getDept().getName(); - String dept = ""; + public void save(SysUser userDto, String token, HttpServletRequest request) { + // 获取用户部门 + List userDeptByUserId = deptService.getUserDeptByUserId(userDto.getUser_id()); + StringBuilder sb = new StringBuilder(); + for (SysDept dept : userDeptByUserId) { + sb.append(dept.getName()).append("、"); + } + if (sb.length() > 0) { + sb.setLength(sb.length() - 1); + } + String dept = sb.toString(); String ip = StringUtils.getIp(request); String browser = StringUtils.getBrowser(request); - // String address = StringUtils.getCityInfo(ip); - String address = "局域网"; + String address = StringUtils.getCityInfo(ip); OnlineUserDto onlineUserDto = null; try { -// onlineUserDto = new OnlineUserDto(userDto.getUsername(), userDto.getNickName(), dept, browser , ip, address, EncryptUtils.desEncrypt(token), new Date()); + onlineUserDto = new OnlineUserDto(userDto.getUsername(), userDto.getPerson_name(), dept, browser, ip, address, EncryptUtils.desEncrypt(token), new Date()); } catch (Exception e) { log.error(e.getMessage(), e); } - redisUtils.set(token, onlineUserDto, StpUtil.getTokenTimeout()); + redisUtils.set("oline-" + userDto.getUsername(), onlineUserDto, StpUtil.getTokenTimeout()); } /** @@ -110,21 +121,12 @@ public class OnlineUserService { * @return / */ public List getAll(String filter) { - List keys = redisUtils.scan("*"); + List keys = redisUtils.scan("oline-*"); Collections.reverse(keys); List onlineUserDtos = new ArrayList<>(); for (String key : keys) { - if (key.length() == 1511) { - OnlineUserDto onlineUserDto = (OnlineUserDto) redisUtils.get(key); - if (StrUtil.isNotEmpty(filter)) { - if (onlineUserDto.toString().contains(filter)) { - onlineUserDtos.add(onlineUserDto); - } - } else { - onlineUserDtos.add(onlineUserDto); - } - } - + OnlineUserDto onlineUserDto = (OnlineUserDto) redisUtils.get(key); + onlineUserDtos.add(onlineUserDto); } onlineUserDtos.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime())); return onlineUserDtos; @@ -133,10 +135,27 @@ public class OnlineUserService { /** * 踢出用户 * - * @param key / + * @param key: OnlineUserDto / + */ + public void kickOut(OnlineUserDto key) { + // 获取用户 + SysUser one = sysUserService.getOne(new LambdaQueryWrapper().eq(SysUser::getUsername, key.getUserName())); + if (ObjectUtil.isNotEmpty(one)) { + redisUtils.del("oline-" + one.getUsername()); + } + // 下线 通过token强退 + StpUtil.logoutByTokenValue(key.getKey()); + } + + /** + * 踢出用户 + * + * @param key:token / */ public void kickOut(String key) { redisUtils.del(key); + // 下线 通过token强退 + StpUtil.logoutByTokenValue(key); } /** @@ -223,7 +242,7 @@ public class OnlineUserService { } @SneakyThrows - public Map login(Map paramMap) { + public Map login(Map paramMap, HttpServletRequest request) { // 密码解密 - 前端的加密规则: encrypt AuthUserDto authUser = JSON.toJavaObject((JSON) JSON.toJSON(paramMap), AuthUserDto.class); String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, authUser.getPassword()); @@ -231,16 +250,17 @@ public class OnlineUserService { String code = (String) redisUtils.get(authUser.getUuid()); // 清除验证码 redisUtils.del(authUser.getUuid()); -// if (StrUtil.isEmpty(code)) { -// throw new BadRequestException("验证码不存在或已过期"); -// } -// if (StrUtil.isEmpty(authUser.getCode()) || !authUser.getCode().equalsIgnoreCase(code)) { -// throw new BadRequestException("验证码错误"); -// } + if (StrUtil.isEmpty(code)) { + throw new BadRequestException("验证码不存在或已过期"); + } + if (StrUtil.isEmpty(authUser.getCode()) || !authUser.getCode().equalsIgnoreCase(code)) { + throw new BadRequestException("验证码错误"); + } // 校验数据库 // 根据用户名查询,在比对密码 SysUser userInfo = sysUserService.getOne(new QueryWrapper().eq("username", authUser.getUsername())); - if (userInfo == null || !userInfo.getPassword().equals(SaSecureUtil.md5BySalt(password, "salt"))) { // 这里需要密码加密 + // 这里需要密码加密 + if (userInfo == null || !userInfo.getPassword().equals(SaSecureUtil.md5BySalt(password, GeneralDefinition.SALT))) { throw new BadRequestException("账号或密码错误"); } @@ -248,32 +268,36 @@ public class OnlineUserService { List permissionList = roleService.getPermissionList((JSONObject) JSON.toJSON(userInfo)); - if (!userInfo.getIsUsed()) { + if (!userInfo.getIs_used()) { throw new BadRequestException("账号未激活"); } // 登录输入,登出删除 CurrentUser user = new CurrentUser(); - user.setId(userInfo.getUserId()); + user.setId(userInfo.getUser_id()); user.setUsername(userInfo.getUsername()); - user.setPresonName((userInfo.getPersonName())); + user.setPresonName((userInfo.getPerson_name())); user.setUser(userInfo); user.setPermissions(permissionList); // SaLoginModel 配置登录相关参数 - StpUtil.login(userInfo.getUserId(), new SaLoginModel() - .setDevice("PC") // 此次登录的客户端设备类型, 用于[同端互斥登录]时指定此次登录的设备类型 - .setExtra("loginInfo", user) // Token挂载的扩展参数 (此方法只有在集成jwt插件时才会生效) + StpUtil.login(userInfo.getUser_id(), new SaLoginModel() + // 此次登录的客户端设备类型, 用于[同端互斥登录]时指定此次登录的设备类型 + .setDevice("PC") + // Token挂载的扩展参数 (此方法只有在集成jwt插件时才会生效) + .setExtra("loginInfo", user) ); + // 返回 token 与 用户信息 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("roles", permissionList); + jsonObject.put("user", userInfo); Map authInfo = new HashMap(2) {{ - put("token", StpUtil.getTokenValue()); - put("roles", permissionList); - put("domain", domain); + put("token", "Bearer " + StpUtil.getTokenValue()); put("user", user); }}; // 保存在线信息 -// onlineUserService.save(userDto, StpUtil.getTokenValue(), request); + this.save(userInfo, StpUtil.getTokenValue(), request); return authInfo; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/tools/IToolLocalStorageService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/IToolLocalStorageService.java new file mode 100644 index 000000000..ca062b191 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/IToolLocalStorageService.java @@ -0,0 +1,53 @@ +package org.nl.system.service.tools; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.system.service.tools.dao.ToolLocalStorage; +import org.nl.system.service.tools.dto.ToolLocalStorageQuery; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Set; + +/** + *

+ * 本地存储表 服务类 + *

+ * + * @author generator + * @since 2022-12-20 + */ +public interface IToolLocalStorageService extends IService { + + /** + * 查询 + * + * @param criteria + * @param pageable + * @return + */ + IPage queryAll(ToolLocalStorageQuery criteria, PageQuery pageable); + + /** + * 上传文件 + * + * @param name + * @param file + * @return + */ + Object create(String name, MultipartFile file); + + /** + * 修改文件 + * + * @param resources + */ + void update(ToolLocalStorage resources); + + /** + * 删除文件 + * + * @param ids + */ + void deleteAll(Set ids); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dao/ToolLocalStorage.java b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dao/ToolLocalStorage.java new file mode 100644 index 000000000..6b4dc307c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dao/ToolLocalStorage.java @@ -0,0 +1,82 @@ +package org.nl.system.service.tools.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * 本地存储表 + *

+ * + * @author generator + * @since 2022-12-20 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("tool_local_storage") +public class ToolLocalStorage implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 标识 + */ + @TableId(value = "storage_id") + private String storage_id; + + /** + * 文件真实的名称 + */ + private String real_name; + + /** + * 文件名 + */ + private String name; + + /** + * 后缀 + */ + private String suffix; + + /** + * 路径 + */ + private String path; + + /** + * 类型 + */ + private String type; + + /** + * 大小 + */ + private String size; + + /** + * 创建人标识 + */ + private String create_by; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改人标识 + */ + private String update_by; + + /** + * 修改时间 + */ + private String update_time; + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dao/mapper/ToolLocalStorageMapper.java b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dao/mapper/ToolLocalStorageMapper.java new file mode 100644 index 000000000..53f140785 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dao/mapper/ToolLocalStorageMapper.java @@ -0,0 +1,16 @@ +package org.nl.system.service.tools.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.system.service.tools.dao.ToolLocalStorage; + +/** + *

+ * 本地存储表 Mapper 接口 + *

+ * + * @author generator + * @since 2022-12-20 + */ +public interface ToolLocalStorageMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dao/mapper/ToolLocalStorageMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dao/mapper/ToolLocalStorageMapper.xml new file mode 100644 index 000000000..816d13058 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dao/mapper/ToolLocalStorageMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dto/ToolLocalStorageQuery.java b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dto/ToolLocalStorageQuery.java new file mode 100644 index 000000000..9fc664a52 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/dto/ToolLocalStorageQuery.java @@ -0,0 +1,15 @@ +package org.nl.system.service.tools.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.system.service.tools.dao.ToolLocalStorage; + +/** + * @Author: lyd + * @Description: + * @Date: 2022/12/20 + */ +@Data +public class ToolLocalStorageQuery extends BaseQuery { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/tools/impl/ToolLocalStorageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/impl/ToolLocalStorageServiceImpl.java new file mode 100644 index 000000000..34066c7ea --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/tools/impl/ToolLocalStorageServiceImpl.java @@ -0,0 +1,105 @@ +package org.nl.system.service.tools.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.common.config.FileProperties; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.utils.FileUtil; +import org.nl.system.service.tools.IToolLocalStorageService; +import org.nl.system.service.tools.dao.ToolLocalStorage; +import org.nl.system.service.tools.dao.mapper.ToolLocalStorageMapper; +import org.nl.system.service.tools.dto.ToolLocalStorageQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.Set; + +/** + *

+ * 本地存储表 服务实现类 + *

+ * + * @author generator + * @since 2022-12-20 + */ +@Service +public class ToolLocalStorageServiceImpl extends ServiceImpl implements IToolLocalStorageService { + + @Autowired + private FileProperties properties; + @Autowired + private ToolLocalStorageMapper localStorageMapper; + + @Override + public IPage queryAll(ToolLocalStorageQuery criteria, PageQuery pageable) { + return this.page(pageable.build(ToolLocalStorage.class), criteria.build()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Object create(String name, MultipartFile multipartFile) { + FileUtil.checkSize(properties.getMaxSize(), multipartFile.getSize()); + String suffix = FileUtil.getExtensionName(multipartFile.getOriginalFilename()); + String type = FileUtil.getFileType(suffix); + File file = FileUtil.upload(multipartFile, properties.getPath().getPath() + type + File.separator); + if (ObjectUtil.isNull(file)) { + throw new BadRequestException("上传失败"); + } + try { + String userId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + name = StrUtil.isEmpty(name) ? FileUtil.getFileNameNoEx(multipartFile.getOriginalFilename()) : name; + ToolLocalStorage localStorage = new ToolLocalStorage(); + localStorage.setStorage_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + localStorage.setReal_name(file.getName()); + localStorage.setName(name); + localStorage.setSuffix(suffix); + localStorage.setPath(file.getPath()); + localStorage.setType(type); + localStorage.setSize(FileUtil.getSize(multipartFile.getSize())); + localStorage.setCreate_by(userId); + localStorage.setCreate_time(now); + localStorage.setUpdate_by(userId); + localStorage.setUpdate_time(now); + localStorageMapper.insert(localStorage); + return localStorage; + } catch (Exception e) { + FileUtil.del(file); + throw e; + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(ToolLocalStorage resources) { + ToolLocalStorage storage = localStorageMapper.selectById(resources.getStorage_id()); + if (ObjectUtil.isEmpty(storage)) { + throw new BadRequestException("文件信息不存在"); + } + resources.setUpdate_by(SecurityUtils.getCurrentUserId()); + resources.setUpdate_time(DateUtil.now()); + localStorageMapper.updateById(resources); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(Set ids) { + ids.forEach(id -> { + ToolLocalStorage localStorage = localStorageMapper.selectById(id); + if (ObjectUtil.isNotEmpty(localStorage)) { + FileUtil.del(localStorage.getPath()); + localStorageMapper.deleteById(localStorage); + } + }); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/user/ISysUserService.java b/lms/nladmin-system/src/main/java/org/nl/system/service/user/ISysUserService.java index 70e635336..f979650cd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/user/ISysUserService.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/user/ISysUserService.java @@ -1,8 +1,6 @@ package org.nl.system.service.user; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; -import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.system.service.user.dao.SysUser; import org.nl.system.service.user.dto.SysUserDetail; @@ -23,28 +21,72 @@ import java.util.Map; */ public interface ISysUserService extends IService { + /** + * 更新用户头像 + * + * @param avatar + * @return + */ Map updateAvatar(MultipartFile avatar); - TableDataInfo getUserDetail(UserQuery query, PageQuery pageQuery); - - void create(Map userDetail); - - void update(Map userDetail); - - List getUserDataPermissionByPermissionId(String permissionId); - - List getUserDataPermissionByUserId(String userId); - - void deleteDataPermissionById(String userId); - - void insertDataPermission(UserDataPermissionDto userDataPermissionDto); - - List getUserIdByDeptId(String deptId); + /** + * 获取用户详情 + * + * @param query + * @param pageQuery + * @return + */ + List getUserDetail(UserQuery query, PageQuery pageQuery); /** - * 修改密码 + * 创建 * - * @param passVo:oldPass/newPass + * @param userDetail */ - void updatePass(JSONObject passVo); + void create(Map userDetail); + + /** + * 更新 + * + * @param userDetail + */ + void update(Map userDetail); + + /** + * 获取权限 + * + * @param permissionId + * @return + */ + List getUserDataPermissionByPermissionId(String permissionId); + + /** + * 通过用户Id获取用户数据权限 + * + * @param userId + * @return + */ + List getUserDataPermissionByUserId(String userId); + + /** + * 删除用户权限 + * + * @param userId + */ + void deleteDataPermissionById(String userId); + + /** + * 插入数据权限 + * + * @param userDataPermissionDto + */ + void insertDataPermission(UserDataPermissionDto userDataPermissionDto); + + /** + * 获取用户 + * + * @param deptId + * @return + */ + List getUserIdByDeptId(String deptId); } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/SysUser.java b/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/SysUser.java index b75b44217..3a36268bf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/SysUser.java +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/SysUser.java @@ -1,5 +1,6 @@ package org.nl.system.service.user.dao; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -29,7 +30,7 @@ public class SysUser implements Serializable { * 用户标识 */ @TableId(value = "user_id", type = IdType.NONE) - private String userId; + private String user_id; /** * 登录账号 @@ -39,7 +40,7 @@ public class SysUser implements Serializable { /** * 姓名 */ - private String personName; + private String person_name; /** * 性别 @@ -59,12 +60,12 @@ public class SysUser implements Serializable { /** * 头像地址 */ - private String avatarName; + private String avatar_name; /** * 头像真实路径 */ - private String avatarPath; + private String avatar_path; /** * 密码 @@ -74,64 +75,65 @@ public class SysUser implements Serializable { /** * 是否为admin账号 */ - private Boolean isAdmin; + private Boolean is_admin; /** * 是否启用 */ - private Boolean isUsed; + private Boolean is_used; /** * 密码重置者 */ - private Long pwdResetUserId; + private Long pwd_reset_user_id; /** * 密码重置时间 */ - private Date pwdResetTime; + private Date pwd_reset_time; /** * 创建人标识 */ - private String createId; + private String create_id; /** * 创建人 */ - private String createName; + private String create_name; /** * 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private Date create_time; /** * 修改人标识 */ - private String updateId; + private String update_id; /** * 修改人 */ - private String updateName; + private String update_name; /** * 修改时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; + private Date update_time; /** * 外部人员标识 */ - private String extpersonId; + private String extperson_id; /** * 外部用户标识 */ - private String extuserId; + private String extuser_id; } diff --git a/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml b/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml index 930f152fc..d9a382ff0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/system/service/user/dao/mapper/SysUserMapper.xml @@ -29,7 +29,7 @@ INSERT INTO sys_user_data_permission(user_id, permission_scope_type, permission_id) - VALUES (#{dataPermission.userId}, #{dataPermission.permissionScopeType}, #{dataPermission.permissionId}) + VALUES (#{dataPermission.user_id}, #{dataPermission.permission_scope_type}, #{dataPermission.permission_id}) DELETE @@ -37,70 +37,65 @@ WHERE user_id = #{userId} - + - + - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - -