diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java index fb78500d..1e9544b5 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java @@ -28,7 +28,7 @@ public class NoticeQueryForm extends PageParam { private String documentNumber; @Schema(description = "创建人") - private Long createUserId; + private String createUserName; @Schema(description = "删除标识") private Boolean deletedFlag; diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java index 2236f536..e3e4afb7 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java @@ -208,6 +208,10 @@ public class NoticeService { } NoticeUpdateFormVO updateFormVO = SmartBeanUtil.copy(noticeEntity, NoticeUpdateFormVO.class); + NoticeTypeVO noticeType = noticeTypeService.getByNoticeTypeId(noticeEntity.getNoticeTypeId()); + updateFormVO.setNoticeTypeName(noticeType.getNoticeTypeName()); + updateFormVO.setPublishFlag(updateFormVO.getPublishTime() != null && updateFormVO.getPublishTime().isBefore(LocalDateTime.now())); + if (!updateFormVO.getAllVisibleFlag()) { List noticeVisibleRangeList = noticeDao.queryVisibleRange(noticeId); List employeeIdList = noticeVisibleRangeList.stream().filter(e -> NoticeVisibleRangeDataTypeEnum.EMPLOYEE.getValue().equals(e.getDataType())) diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java index c6ce9e20..2350e2c4 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java @@ -5,7 +5,7 @@ import net.lab1024.sa.base.common.enumeration.BaseEnum; /** - * 数据范围 种类 + * 数据可见范围类型 * * @Author 1024创新实验室: 罗伊 * @Date 2020/11/28 20:59:17 diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java index 65995c74..3ba5c42f 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java @@ -25,7 +25,7 @@ public class DataScopeSqlConfig { /** * join sql 具体实现类 */ - private Class joinSqlImplClazz; + private Class joinSqlImplClazz; private String joinSql; diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java index 17b55fa8..106a2fc6 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java @@ -5,7 +5,7 @@ import lombok.Builder; import lombok.Data; /** - * 数据范围 + * 数据可见范围 * * @Author 1024创新实验室: 罗伊 * @Date 2020/11/28 20:59:17 diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java index 38200442..b7063914 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java @@ -46,6 +46,11 @@ public class DataScopeSqlConfigService { private static final String DEPARTMENT_PARAM = "#departmentIds"; + /** + * 用于拼接查看本人数据范围的 SQL + */ + private static final String CREATE_USER_ID_EQUALS = "create_user_id = "; + private final ConcurrentHashMap dataScopeMethodMap = new ConcurrentHashMap<>(); @Resource @@ -94,14 +99,23 @@ public class DataScopeSqlConfigService { * 组装需要拼接的sql */ public String getJoinSql(Map paramMap, DataScopeSqlConfig sqlConfigDTO) { - DataScopeTypeEnum dataScopeTypeEnum = sqlConfigDTO.getDataScopeType(); - String joinSql = sqlConfigDTO.getJoinSql(); Long employeeId = SmartRequestUtil.getRequestUserId(); if (employeeId == null) { return ""; } + + DataScopeTypeEnum dataScopeTypeEnum = sqlConfigDTO.getDataScopeType(); + DataScopeViewTypeEnum viewTypeEnum = dataScopeViewService.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); + + // 数据权限设置为仅本人可见时 直接返回 create_user_id = employeeId + if (DataScopeViewTypeEnum.ME == viewTypeEnum) { + return CREATE_USER_ID_EQUALS + employeeId; + } + + String joinSql = sqlConfigDTO.getJoinSql(); + if (DataScopeWhereInTypeEnum.CUSTOM_STRATEGY == sqlConfigDTO.getDataScopeWhereInType()) { - Class strategyClass = sqlConfigDTO.getJoinSqlImplClazz(); + Class strategyClass = sqlConfigDTO.getJoinSqlImplClazz(); if (strategyClass == null) { log.warn("data scope custom strategy class is null"); return ""; @@ -111,11 +125,10 @@ public class DataScopeSqlConfigService { log.warn("data scope custom strategy class:{} ,bean is null", sqlConfigDTO.getJoinSqlImplClazz()); return ""; } - DataScopeViewTypeEnum viewTypeEnum = dataScopeViewService.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); return powerStrategy.getCondition(viewTypeEnum,paramMap, sqlConfigDTO); } if (DataScopeWhereInTypeEnum.EMPLOYEE == sqlConfigDTO.getDataScopeWhereInType()) { - List canViewEmployeeIds = dataScopeViewService.getCanViewEmployeeId(dataScopeTypeEnum, employeeId); + List canViewEmployeeIds = dataScopeViewService.getCanViewEmployeeId(viewTypeEnum, employeeId); if (CollectionUtils.isEmpty(canViewEmployeeIds)) { return ""; } @@ -124,7 +137,7 @@ public class DataScopeSqlConfigService { return sql; } if (DataScopeWhereInTypeEnum.DEPARTMENT == sqlConfigDTO.getDataScopeWhereInType()) { - List canViewDepartmentIds = dataScopeViewService.getCanViewDepartmentId(dataScopeTypeEnum, employeeId); + List canViewDepartmentIds = dataScopeViewService.getCanViewDepartmentId(viewTypeEnum, employeeId); if (CollectionUtils.isEmpty(canViewDepartmentIds)) { return ""; } diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java index b426af30..15585731 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java @@ -44,10 +44,9 @@ public class DataScopeViewService { private DepartmentService departmentService; /** - * 获取某人可以查看的所有人员信息 + * 获取某人可以查看的所有人员数据 */ - public List getCanViewEmployeeId(DataScopeTypeEnum dataScopeTypeEnum, Long employeeId) { - DataScopeViewTypeEnum viewType = this.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); + public List getCanViewEmployeeId(DataScopeViewTypeEnum viewType, Long employeeId) { if (DataScopeViewTypeEnum.ME == viewType) { return this.getMeEmployeeIdList(employeeId); } @@ -57,16 +56,17 @@ public class DataScopeViewService { if (DataScopeViewTypeEnum.DEPARTMENT_AND_SUB == viewType) { return this.getDepartmentAndSubEmployeeIdList(employeeId); } + // 可以查看所有员工数据 return Lists.newArrayList(); } /** - * 获取某人可以查看的所有部门信息 + * 获取某人可以查看的所有部门数据 */ - public List getCanViewDepartmentId(DataScopeTypeEnum dataScopeTypeEnum, Long employeeId) { - DataScopeViewTypeEnum viewType = this.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); + public List getCanViewDepartmentId(DataScopeViewTypeEnum viewType, Long employeeId) { if (DataScopeViewTypeEnum.ME == viewType) { - return this.getMeDepartmentIdList(employeeId); + // 数据可见范围类型为本人时 不可以查看任何部门数据 + return Lists.newArrayList(0L); } if (DataScopeViewTypeEnum.DEPARTMENT == viewType) { return this.getMeDepartmentIdList(employeeId); @@ -74,6 +74,7 @@ public class DataScopeViewService { if (DataScopeViewTypeEnum.DEPARTMENT_AND_SUB == viewType) { return this.getDepartmentAndSubIdList(employeeId); } + // 可以查看所有部门数据 return Lists.newArrayList(); } @@ -91,10 +92,16 @@ public class DataScopeViewService { * 根据员工id 获取各数据范围最大的可见范围 map */ public DataScopeViewTypeEnum getEmployeeDataScopeViewType(DataScopeTypeEnum dataScopeTypeEnum, Long employeeId) { - if (employeeId == null) { + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + if (employeeEntity == null || employeeEntity.getEmployeeId() == null) { return DataScopeViewTypeEnum.ME; } + // 如果是超级管理员 则可查看全部 + if (employeeEntity.getAdministratorFlag()) { + return DataScopeViewTypeEnum.ALL; + } + List roleIdList = roleEmployeeDao.selectRoleIdByEmployeeId(employeeId); //未设置角色 默认本人 if (CollectionUtils.isEmpty(roleIdList)) { diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java index 6393827a..b86f63e8 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java @@ -57,11 +57,11 @@ public class EmployeeController { return employeeService.updateEmployee(employeeUpdateForm); } - @Operation(summary = "更新登录人信息 @author 善逸") - @PostMapping("/employee/update/login") - public ResponseDTO updateByLogin(@Valid @RequestBody EmployeeUpdateForm employeeUpdateForm) { - employeeUpdateForm.setEmployeeId(SmartRequestUtil.getRequestUserId()); - return employeeService.updateEmployee(employeeUpdateForm); + @Operation(summary = "更新员工个人中心信息 @author 善逸") + @PostMapping("/employee/update/center") + public ResponseDTO updateCenter(@Valid @RequestBody EmployeeUpdateCenterForm updateCenterForm) { + updateCenterForm.setEmployeeId(SmartRequestUtil.getRequestUserId()); + return employeeService.updateCenter(updateCenterForm); } @Operation(summary = "更新登录人头像 @author 善逸") diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java index 6ef0acab..60a510df 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java @@ -34,31 +34,30 @@ public interface EmployeeDao extends BaseMapper { */ List selectEmployeeByDisabledAndDeleted(@Param("disabledFlag") Boolean disabledFlag, @Param("deletedFlag") Boolean deletedFlag); - /** - * 更新单个 + * 更新禁用状态 */ void updateDisableFlag(@Param("employeeId") Long employeeId, @Param("disabledFlag") Boolean disabledFlag); - /** * 通过登录名查询 */ - EmployeeEntity getByLoginName(@Param("loginName") String loginName, - @Param("disabledFlag") Boolean disabledFlag); - + EmployeeEntity getByLoginName(@Param("loginName") String loginName, @Param("deletedFlag") Boolean deletedFlag); /** * 通过姓名查询 */ - EmployeeEntity getByActualName(@Param("actualName") String actualName, - @Param("disabledFlag") Boolean disabledFlag - ); + EmployeeEntity getByActualName(@Param("actualName") String actualName, @Param("deletedFlag") Boolean deletedFlag); /** * 通过手机号查询 */ - EmployeeEntity getByPhone(@Param("phone") String phone, @Param("disabledFlag") Boolean disabledFlag); + EmployeeEntity getByPhone(@Param("phone") String phone, @Param("deletedFlag") Boolean deletedFlag); + + /** + * 通过邮箱账号查询 + */ + EmployeeEntity getByEmail(@Param("email") String email, @Param("deletedFlag") Boolean deletedFlag); /** * 获取所有员工 @@ -67,7 +66,6 @@ public interface EmployeeDao extends BaseMapper { /** * 获取某个部门员工数 - * */ Integer countByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); @@ -76,39 +74,35 @@ public interface EmployeeDao extends BaseMapper { */ List getEmployeeByIds(@Param("employeeIds") Collection employeeIds); - /** * 查询单个员工信息 */ EmployeeVO getEmployeeById(@Param("employeeId") Long employeeId); - /** * 获取某个部门的员工 */ - List selectByDepartmentId(@Param("departmentId") Long departmentId, @Param("disabledFlag") Boolean disabledFlag); - + List selectByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); /** * 查询某些部门下用户名是xxx的员工 */ - List selectByActualName(@Param("departmentIdList") List departmentIdList, @Param("actualName") String actualName, @Param("disabledFlag") Boolean disabledFlag); - + List selectByActualName(@Param("departmentIdList") List departmentIdList, @Param("actualName") String actualName, @Param("deletedFlag") Boolean deletedFlag); /** * 获取某批部门的员工Id */ - List getEmployeeIdByDepartmentIdList(@Param("departmentIds") List departmentIds, @Param("disabledFlag") Boolean disabledFlag); + List getEmployeeIdByDepartmentIdList(@Param("departmentIds") List departmentIds, @Param("deletedFlag") Boolean deletedFlag); /** * 获取所有 */ - List getEmployeeId(@Param("leaveFlag") Boolean leaveFlag, @Param("disabledFlag") Boolean disabledFlag); + List getEmployeeId(@Param("leaveFlag") Boolean leaveFlag, @Param("deletedFlag") Boolean deletedFlag); /** * 获取某个部门的员工Id */ - List getEmployeeIdByDepartmentId(@Param("departmentId") Long departmentId, @Param("disabledFlag") Boolean disabledFlag); + List getEmployeeIdByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); /** * 员工重置密码 diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java index 1d071218..00792d29 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java @@ -51,17 +51,19 @@ public class EmployeeAddForm { @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") private String phone; - @Schema(description = "邮箱") + @Schema(description = "邮箱账号") + @NotNull(message = "邮箱账号不能为空") + @Pattern(regexp = SmartVerificationUtil.EMAIL, message = "邮箱账号格式不正确") private String email; + @Schema(description = "职务级别ID") + private Long positionId; + @Schema(description = "角色列表") private List roleIdList; @Schema(description = "备注") - @Length(max = 30, message = "备注最多200字符") + @Length(max = 200, message = "备注最多200字符") private String remark; - @Schema(description = "职务级别ID") - private Long positionId; - } diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java new file mode 100644 index 00000000..a857ae4b --- /dev/null +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java @@ -0,0 +1,56 @@ +package net.lab1024.sa.admin.module.system.employee.domain.form; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import lombok.Data; +import net.lab1024.sa.base.common.enumeration.GenderEnum; +import net.lab1024.sa.base.common.swagger.SchemaEnum; +import net.lab1024.sa.base.common.util.SmartVerificationUtil; +import net.lab1024.sa.base.common.validator.enumeration.CheckEnum; +import org.hibernate.validator.constraints.Length; + +/** + * 更新员工个人中心信息 + * + * @Author 1024创新实验室: 开云 + * @Date 2021-12-20 21:06:49 + * @Wechat zhuoda1024 + * @Email lab1024@163.com + * @Copyright 1024创新实验室 + */ +@Data +public class EmployeeUpdateCenterForm { + + @Schema(hidden = true) + private Long employeeId; + + @Schema(description = "姓名") + @NotNull(message = "姓名不能为空") + @Length(max = 30, message = "姓名最多30字符") + private String actualName; + + @SchemaEnum(GenderEnum.class) + @CheckEnum(value = GenderEnum.class, message = "性别错误") + private Integer gender; + + @Schema(description = "手机号") + @NotNull(message = "手机号不能为空") + @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") + private String phone; + + @Schema(description = "邮箱账号") + @NotNull(message = "邮箱账号不能为空") + @Pattern(regexp = SmartVerificationUtil.EMAIL, message = "邮箱账号格式不正确") + private String email; + + @Schema(description = "职务级别ID") + private Long positionId; + + @Schema(description = "头像") + private String avatar; + + @Schema(description = "备注") + @Length(max = 200, message = "备注最多200字符") + private String remark; +} diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java index 47c59b7e..5d684d31 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java @@ -168,19 +168,14 @@ public class EmployeeService { return ResponseDTO.userErrorParam("部门不存在"); } - - EmployeeEntity existEntity = employeeDao.getByLoginName(employeeUpdateForm.getLoginName(), null); - if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { - return ResponseDTO.userErrorParam("登录名重复"); + // 检查唯一性 + ResponseDTO checkResponse = checkUniqueness(employeeId, employeeUpdateForm.getLoginName(), employeeUpdateForm.getPhone(), employeeUpdateForm.getEmail()); + if (!checkResponse.getOk()) { + return checkResponse; } - existEntity = employeeDao.getByPhone(employeeUpdateForm.getPhone(), null); - if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { - return ResponseDTO.userErrorParam("手机号已存在"); - } - - // 不更新密码 EmployeeEntity entity = SmartBeanUtil.copy(employeeUpdateForm, EmployeeEntity.class); + // 不更新密码 entity.setLoginPwd(null); // 更新数据 @@ -192,6 +187,58 @@ public class EmployeeService { return ResponseDTO.ok(); } + /** + * 更新员工个人中心信息 + */ + public ResponseDTO updateCenter(EmployeeUpdateCenterForm updateCenterForm) { + + Long employeeId = updateCenterForm.getEmployeeId(); + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + if (null == employeeEntity) { + return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); + } + + // 检查唯一性 登录账号不能修改则不需要检查 + ResponseDTO checkResponse = checkUniqueness(employeeId, "", updateCenterForm.getPhone(), updateCenterForm.getEmail()); + if (!checkResponse.getOk()) { + return checkResponse; + } + + EmployeeEntity employee = SmartBeanUtil.copy(updateCenterForm, EmployeeEntity.class); + // 不更新密码 + employee.setLoginPwd(null); + + // 更新数据 + employeeDao.updateById(employee); + + // 清除员工缓存 + loginService.clearLoginEmployeeCache(employeeId); + + return ResponseDTO.ok(); + } + + /** + * 检查唯一性 + */ + private ResponseDTO checkUniqueness(Long employeeId, String loginName, String phone, String email) { + EmployeeEntity existEntity = employeeDao.getByLoginName(loginName, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("登录名重复"); + } + + existEntity = employeeDao.getByPhone(phone, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("手机号已存在"); + } + + existEntity = employeeDao.getByEmail(email, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("邮箱账号已存在"); + } + + return ResponseDTO.ok(); + } + /** * 更新登录人头像 diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java index 5ba92785..0b61e3d2 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java @@ -46,6 +46,12 @@ public class RequestEmployee implements RequestUser { @Schema(description = "部门名称") private String departmentName; + @Schema(description = "职务级别ID") + private Long positionId; + + @Schema(description = "邮箱") + private String email; + @Schema(description = "是否禁用") private Boolean disabledFlag; diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml index b1dc8ad5..9b141c80 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml @@ -2,6 +2,28 @@ + + + t_notice.notice_id, + t_notice.notice_type_id, + t_notice.title, + t_notice.all_visible_flag, + t_notice.scheduled_publish_flag, + t_notice.publish_time, + t_notice.content_text, + t_notice.content_html, + t_notice.attachment, + t_notice.page_view_count, + t_notice.user_view_count, + t_notice.source, + t_notice.author, + t_notice.document_number, + t_notice.deleted_flag, + t_notice.create_user_id, + t_notice.update_time, + t_notice.create_time + + @@ -35,32 +57,30 @@ - select - t_notice.*, + , t_notice_type.notice_type_name, (select count(*) from t_notice_view_record where t_notice_view_record.employee_id = #{requestEmployeeId} and t_notice_view_record.notice_id = t_notice.notice_id) as viewFlag @@ -142,12 +161,11 @@ order by t_notice.publish_time desc - select * from ( select - t_notice.*, + , t_notice_type.notice_type_name, (select count(*) from t_notice_view_record where t_notice_view_record.employee_id = #{requestEmployeeId} and t_notice_view_record.notice_id = t_notice.notice_id) as viewFlag @@ -198,8 +216,7 @@ ) t where viewFlag = 0 order by t.publish_time desc - select t_notice_view_record.*, t_employee.actual_name as employeeName, t_department.name as departmentName diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml index 506c6832..670d52ed 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml @@ -33,21 +33,19 @@ - UPDATE t_employee SET disabled_flag = #{disabledFlag} WHERE employee_id = #{employeeId} - @@ -57,24 +55,33 @@ FROM t_employee actual_name = #{actualName} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} - + - - SELECT * FROM t_employee department_id = #{departmentId} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} ORDER BY create_time DESC - SELECT * FROM t_employee actual_name = #{actualName} @@ -111,8 +115,8 @@ #{item} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} @@ -125,20 +129,19 @@ #{item} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} ORDER BY create_time DESC - @@ -148,8 +151,8 @@ FROM t_employee department_id = #{departmentId} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} ORDER BY create_time DESC @@ -164,7 +167,6 @@ ORDER BY create_time DESC - - SELECT t_employee.*, t_department.name AS departmentName @@ -196,5 +197,4 @@ WHERE employee_id = #{employeeId} - \ No newline at end of file diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm index dd01bbc0..a4bd167f 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm @@ -37,14 +37,14 @@ public interface ${name.upperCamel}Dao extends BaseMapper<${name.upperCamel}Enti /** * 更新删除状态 */ - long updateDeleted(@Param("${primaryKeyFieldName}")${primaryKeyJavaType} ${primaryKeyFieldName},@Param("deletedFlag")boolean deletedFlag); + long updateDeleted(@Param("${primaryKeyFieldName}") ${primaryKeyJavaType} ${primaryKeyFieldName}, @Param("deletedFlag") boolean deletedFlag); #end #if($deleteInfo.deleteEnum == "Batch" || $deleteInfo.deleteEnum == "SingleAndBatch") /** * 批量更新删除状态 */ - void batchUpdateDeleted(@Param("idList")List<${primaryKeyJavaType}> idList,@Param("deletedFlag")boolean deletedFlag); + void batchUpdateDeleted(@Param("idList") List<${primaryKeyJavaType}> idList, @Param("deletedFlag") boolean deletedFlag); #end #end diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/sql/Menu.sql.vm b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/sql/Menu.sql.vm index 90525f78..9ca5cc42 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/sql/Menu.sql.vm +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/sql/Menu.sql.vm @@ -10,13 +10,13 @@ SET @parent_id = NULL; SELECT t_menu.menu_id INTO @parent_id FROM t_menu WHERE t_menu.menu_name = '${basic.description}'; INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) -VALUES ( '查询', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:query', 1, @parent_id, 1 ); +VALUES ( '查询', 3, @parent_id, false, false, true, false, '${name.lowerCamel}:query', 1, @parent_id, 1 ); INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) -VALUES ( '添加', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:add', 1, @parent_id, 1 ); +VALUES ( '添加', 3, @parent_id, false, false, true, false, '${name.lowerCamel}:add', 1, @parent_id, 1 ); INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) -VALUES ( '更新', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:update', 1, @parent_id, 1 ); +VALUES ( '更新', 3, @parent_id, false, false, true, false, '${name.lowerCamel}:update', 1, @parent_id, 1 ); INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) -VALUES ( '删除', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:delete', 1, @parent_id, 1 ); +VALUES ( '删除', 3, @parent_id, false, false, true, false, '${name.lowerCamel}:delete', 1, @parent_id, 1 ); diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java index fb78500d..1e9544b5 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java @@ -28,7 +28,7 @@ public class NoticeQueryForm extends PageParam { private String documentNumber; @Schema(description = "创建人") - private Long createUserId; + private String createUserName; @Schema(description = "删除标识") private Boolean deletedFlag; diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java index 85d31eb4..a51f432f 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java @@ -208,6 +208,10 @@ public class NoticeService { } NoticeUpdateFormVO updateFormVO = SmartBeanUtil.copy(noticeEntity, NoticeUpdateFormVO.class); + NoticeTypeVO noticeType = noticeTypeService.getByNoticeTypeId(noticeEntity.getNoticeTypeId()); + updateFormVO.setNoticeTypeName(noticeType.getNoticeTypeName()); + updateFormVO.setPublishFlag(updateFormVO.getPublishTime() != null && updateFormVO.getPublishTime().isBefore(LocalDateTime.now())); + if (!updateFormVO.getAllVisibleFlag()) { List noticeVisibleRangeList = noticeDao.queryVisibleRange(noticeId); List employeeIdList = noticeVisibleRangeList.stream().filter(e -> NoticeVisibleRangeDataTypeEnum.EMPLOYEE.getValue().equals(e.getDataType())) diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java index c6ce9e20..2350e2c4 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java @@ -5,7 +5,7 @@ import net.lab1024.sa.base.common.enumeration.BaseEnum; /** - * 数据范围 种类 + * 数据可见范围类型 * * @Author 1024创新实验室: 罗伊 * @Date 2020/11/28 20:59:17 diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java index 65995c74..3ba5c42f 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java @@ -25,7 +25,7 @@ public class DataScopeSqlConfig { /** * join sql 具体实现类 */ - private Class joinSqlImplClazz; + private Class joinSqlImplClazz; private String joinSql; diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java index 17b55fa8..106a2fc6 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java @@ -5,7 +5,7 @@ import lombok.Builder; import lombok.Data; /** - * 数据范围 + * 数据可见范围 * * @Author 1024创新实验室: 罗伊 * @Date 2020/11/28 20:59:17 diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java index b28b5c79..0202a3c7 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java @@ -33,7 +33,7 @@ import java.util.concurrent.ConcurrentHashMap; * @Date 2020/11/28 20:59:17 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室 + * @Copyright 1024创新实验室 */ @Slf4j @Service @@ -46,6 +46,11 @@ public class DataScopeSqlConfigService { private static final String DEPARTMENT_PARAM = "#departmentIds"; + /** + * 用于拼接查看本人数据范围的 SQL + */ + private static final String CREATE_USER_ID_EQUALS = "create_user_id = "; + private final ConcurrentHashMap dataScopeMethodMap = new ConcurrentHashMap<>(); @Resource @@ -84,7 +89,6 @@ public class DataScopeSqlConfigService { /** * 根据调用的方法获取,此方法的配置信息 - * */ public DataScopeSqlConfig getSqlConfig(String method) { return this.dataScopeMethodMap.get(method); @@ -94,14 +98,23 @@ public class DataScopeSqlConfigService { * 组装需要拼接的sql */ public String getJoinSql(Map paramMap, DataScopeSqlConfig sqlConfigDTO) { - DataScopeTypeEnum dataScopeTypeEnum = sqlConfigDTO.getDataScopeType(); - String joinSql = sqlConfigDTO.getJoinSql(); Long employeeId = SmartRequestUtil.getRequestUserId(); if (employeeId == null) { return ""; } + + DataScopeTypeEnum dataScopeTypeEnum = sqlConfigDTO.getDataScopeType(); + DataScopeViewTypeEnum viewTypeEnum = dataScopeViewService.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); + + // 数据权限设置为仅本人可见时 直接返回 create_user_id = employeeId + if (DataScopeViewTypeEnum.ME == viewTypeEnum) { + return CREATE_USER_ID_EQUALS + employeeId; + } + + String joinSql = sqlConfigDTO.getJoinSql(); + if (DataScopeWhereInTypeEnum.CUSTOM_STRATEGY == sqlConfigDTO.getDataScopeWhereInType()) { - Class strategyClass = sqlConfigDTO.getJoinSqlImplClazz(); + Class strategyClass = sqlConfigDTO.getJoinSqlImplClazz(); if (strategyClass == null) { log.warn("data scope custom strategy class is null"); return ""; @@ -111,11 +124,10 @@ public class DataScopeSqlConfigService { log.warn("data scope custom strategy class:{} ,bean is null", sqlConfigDTO.getJoinSqlImplClazz()); return ""; } - DataScopeViewTypeEnum viewTypeEnum = dataScopeViewService.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); - return powerStrategy.getCondition(viewTypeEnum,paramMap, sqlConfigDTO); + return powerStrategy.getCondition(viewTypeEnum, paramMap, sqlConfigDTO); } if (DataScopeWhereInTypeEnum.EMPLOYEE == sqlConfigDTO.getDataScopeWhereInType()) { - List canViewEmployeeIds = dataScopeViewService.getCanViewEmployeeId(dataScopeTypeEnum, employeeId); + List canViewEmployeeIds = dataScopeViewService.getCanViewEmployeeId(viewTypeEnum, employeeId); if (CollectionUtils.isEmpty(canViewEmployeeIds)) { return ""; } @@ -124,7 +136,7 @@ public class DataScopeSqlConfigService { return sql; } if (DataScopeWhereInTypeEnum.DEPARTMENT == sqlConfigDTO.getDataScopeWhereInType()) { - List canViewDepartmentIds = dataScopeViewService.getCanViewDepartmentId(dataScopeTypeEnum, employeeId); + List canViewDepartmentIds = dataScopeViewService.getCanViewDepartmentId(viewTypeEnum, employeeId); if (CollectionUtils.isEmpty(canViewDepartmentIds)) { return ""; } diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java index f478c608..818c2449 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java @@ -44,10 +44,9 @@ public class DataScopeViewService { private DepartmentService departmentService; /** - * 获取某人可以查看的所有人员信息 + * 获取某人可以查看的所有人员数据 */ - public List getCanViewEmployeeId(DataScopeTypeEnum dataScopeTypeEnum, Long employeeId) { - DataScopeViewTypeEnum viewType = this.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); + public List getCanViewEmployeeId(DataScopeViewTypeEnum viewType, Long employeeId) { if (DataScopeViewTypeEnum.ME == viewType) { return this.getMeEmployeeIdList(employeeId); } @@ -57,16 +56,17 @@ public class DataScopeViewService { if (DataScopeViewTypeEnum.DEPARTMENT_AND_SUB == viewType) { return this.getDepartmentAndSubEmployeeIdList(employeeId); } + // 可以查看所有员工数据 return Lists.newArrayList(); } /** - * 获取某人可以查看的所有部门信息 + * 获取某人可以查看的所有部门数据 */ - public List getCanViewDepartmentId(DataScopeTypeEnum dataScopeTypeEnum, Long employeeId) { - DataScopeViewTypeEnum viewType = this.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); + public List getCanViewDepartmentId(DataScopeViewTypeEnum viewType, Long employeeId) { if (DataScopeViewTypeEnum.ME == viewType) { - return this.getMeDepartmentIdList(employeeId); + // 数据可见范围类型为本人时 不可以查看任何部门数据 + return Lists.newArrayList(0L); } if (DataScopeViewTypeEnum.DEPARTMENT == viewType) { return this.getMeDepartmentIdList(employeeId); @@ -74,6 +74,7 @@ public class DataScopeViewService { if (DataScopeViewTypeEnum.DEPARTMENT_AND_SUB == viewType) { return this.getDepartmentAndSubIdList(employeeId); } + // 可以查看所有部门数据 return Lists.newArrayList(); } @@ -91,10 +92,16 @@ public class DataScopeViewService { * 根据员工id 获取各数据范围最大的可见范围 map */ public DataScopeViewTypeEnum getEmployeeDataScopeViewType(DataScopeTypeEnum dataScopeTypeEnum, Long employeeId) { - if (employeeId == null) { + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + if (employeeEntity == null || employeeEntity.getEmployeeId() == null) { return DataScopeViewTypeEnum.ME; } + // 如果是超级管理员 则可查看全部 + if (employeeEntity.getAdministratorFlag()) { + return DataScopeViewTypeEnum.ALL; + } + List roleIdList = roleEmployeeDao.selectRoleIdByEmployeeId(employeeId); //未设置角色 默认本人 if (CollectionUtils.isEmpty(roleIdList)) { diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java index 56c9856b..f6367d19 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java @@ -1,8 +1,8 @@ package net.lab1024.sa.admin.module.system.employee.controller; import cn.dev33.satoken.annotation.SaCheckPermission; -import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import net.lab1024.sa.admin.constant.AdminSwaggerTagConst; import net.lab1024.sa.admin.module.system.employee.domain.form.*; import net.lab1024.sa.admin.module.system.employee.domain.vo.EmployeeVO; @@ -57,11 +57,11 @@ public class EmployeeController { return employeeService.updateEmployee(employeeUpdateForm); } - @Operation(summary = "更新登录人信息 @author 善逸") - @PostMapping("/employee/update/login") - public ResponseDTO updateByLogin(@Valid @RequestBody EmployeeUpdateForm employeeUpdateForm) { - employeeUpdateForm.setEmployeeId(SmartRequestUtil.getRequestUserId()); - return employeeService.updateEmployee(employeeUpdateForm); + @Operation(summary = "更新员工个人中心信息 @author 善逸") + @PostMapping("/employee/update/center") + public ResponseDTO updateCenter(@Valid @RequestBody EmployeeUpdateCenterForm updateCenterForm) { + updateCenterForm.setEmployeeId(SmartRequestUtil.getRequestUserId()); + return employeeService.updateCenter(updateCenterForm); } @Operation(summary = "更新登录人头像 @author 善逸") @@ -117,7 +117,7 @@ public class EmployeeController { @Operation(summary = "查询员工-根据部门id @author 卓大") @GetMapping("/employee/getAllEmployeeByDepartmentId/{departmentId}") public ResponseDTO> getAllEmployeeByDepartmentId(@PathVariable Long departmentId) { - return employeeService.getAllEmployeeByDepartmentId(departmentId, Boolean.FALSE); + return employeeService.getAllEmployeeByDepartmentId(departmentId); } @Operation(summary = "查询所有员工 @author 卓大") diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java index 6ef0acab..e5bc28d5 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java @@ -34,31 +34,30 @@ public interface EmployeeDao extends BaseMapper { */ List selectEmployeeByDisabledAndDeleted(@Param("disabledFlag") Boolean disabledFlag, @Param("deletedFlag") Boolean deletedFlag); - /** * 更新单个 */ void updateDisableFlag(@Param("employeeId") Long employeeId, @Param("disabledFlag") Boolean disabledFlag); - /** * 通过登录名查询 */ - EmployeeEntity getByLoginName(@Param("loginName") String loginName, - @Param("disabledFlag") Boolean disabledFlag); - + EmployeeEntity getByLoginName(@Param("loginName") String loginName, @Param("deletedFlag") Boolean deletedFlag); /** * 通过姓名查询 */ - EmployeeEntity getByActualName(@Param("actualName") String actualName, - @Param("disabledFlag") Boolean disabledFlag - ); + EmployeeEntity getByActualName(@Param("actualName") String actualName, @Param("deletedFlag") Boolean deletedFlag); /** * 通过手机号查询 */ - EmployeeEntity getByPhone(@Param("phone") String phone, @Param("disabledFlag") Boolean disabledFlag); + EmployeeEntity getByPhone(@Param("phone") String phone, @Param("deletedFlag") Boolean deletedFlag); + + /** + * 通过邮箱账号查询 + */ + EmployeeEntity getByEmail(@Param("email") String email, @Param("deletedFlag") Boolean deletedFlag); /** * 获取所有员工 @@ -67,7 +66,6 @@ public interface EmployeeDao extends BaseMapper { /** * 获取某个部门员工数 - * */ Integer countByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); @@ -76,39 +74,35 @@ public interface EmployeeDao extends BaseMapper { */ List getEmployeeByIds(@Param("employeeIds") Collection employeeIds); - /** * 查询单个员工信息 */ EmployeeVO getEmployeeById(@Param("employeeId") Long employeeId); - /** * 获取某个部门的员工 */ - List selectByDepartmentId(@Param("departmentId") Long departmentId, @Param("disabledFlag") Boolean disabledFlag); - + List selectByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); /** * 查询某些部门下用户名是xxx的员工 */ - List selectByActualName(@Param("departmentIdList") List departmentIdList, @Param("actualName") String actualName, @Param("disabledFlag") Boolean disabledFlag); - + List selectByActualName(@Param("departmentIdList") List departmentIdList, @Param("actualName") String actualName, @Param("deletedFlag") Boolean deletedFlag); /** * 获取某批部门的员工Id */ - List getEmployeeIdByDepartmentIdList(@Param("departmentIds") List departmentIds, @Param("disabledFlag") Boolean disabledFlag); + List getEmployeeIdByDepartmentIdList(@Param("departmentIds") List departmentIds, @Param("deletedFlag") Boolean deletedFlag); /** * 获取所有 */ - List getEmployeeId(@Param("leaveFlag") Boolean leaveFlag, @Param("disabledFlag") Boolean disabledFlag); + List getEmployeeId(@Param("leaveFlag") Boolean leaveFlag, @Param("deletedFlag") Boolean deletedFlag); /** * 获取某个部门的员工Id */ - List getEmployeeIdByDepartmentId(@Param("departmentId") Long departmentId, @Param("disabledFlag") Boolean disabledFlag); + List getEmployeeIdByDepartmentId(@Param("departmentId") Long departmentId, @Param("deletedFlag") Boolean deletedFlag); /** * 员工重置密码 diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java index 2621eb7f..8cecbbd6 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java @@ -4,9 +4,9 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import net.lab1024.sa.base.common.enumeration.GenderEnum; import net.lab1024.sa.base.common.swagger.SchemaEnum; +import net.lab1024.sa.base.common.util.SmartVerificationUtil; import net.lab1024.sa.base.common.validator.enumeration.CheckEnum; import org.hibernate.validator.constraints.Length; -import net.lab1024.sa.base.common.util.SmartVerificationUtil; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; @@ -51,17 +51,19 @@ public class EmployeeAddForm { @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") private String phone; - @Schema(description = "邮箱") + @Schema(description = "邮箱账号") + @NotNull(message = "邮箱账号不能为空") + @Pattern(regexp = SmartVerificationUtil.EMAIL, message = "邮箱账号格式不正确") private String email; + @Schema(description = "职务级别ID") + private Long positionId; + @Schema(description = "角色列表") private List roleIdList; @Schema(description = "备注") - @Length(max = 30, message = "备注最多200字符") + @Length(max = 200, message = "备注最多200字符") private String remark; - @Schema(description = "职务级别ID") - private Long positionId; - } diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java new file mode 100644 index 00000000..08295a2a --- /dev/null +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateCenterForm.java @@ -0,0 +1,58 @@ +package net.lab1024.sa.admin.module.system.employee.domain.form; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import net.lab1024.sa.base.common.enumeration.GenderEnum; +import net.lab1024.sa.base.common.swagger.SchemaEnum; +import net.lab1024.sa.base.common.util.SmartVerificationUtil; +import net.lab1024.sa.base.common.validator.enumeration.CheckEnum; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + + +/** + * 更新员工个人中心信息 + * + * @Author 1024创新实验室: 开云 + * @Date 2021-12-20 21:06:49 + * @Wechat zhuoda1024 + * @Email lab1024@163.com + * @Copyright 1024创新实验室 + */ +@Data +public class EmployeeUpdateCenterForm { + + @Schema(hidden = true) + private Long employeeId; + + @Schema(description = "姓名") + @NotNull(message = "姓名不能为空") + @Length(max = 30, message = "姓名最多30字符") + private String actualName; + + @SchemaEnum(GenderEnum.class) + @CheckEnum(value = GenderEnum.class, message = "性别错误") + private Integer gender; + + @Schema(description = "手机号") + @NotNull(message = "手机号不能为空") + @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") + private String phone; + + @Schema(description = "邮箱账号") + @NotNull(message = "邮箱账号不能为空") + @Pattern(regexp = SmartVerificationUtil.EMAIL, message = "邮箱账号格式不正确") + private String email; + + @Schema(description = "职务级别ID") + private Long positionId; + + @Schema(description = "头像") + private String avatar; + + @Schema(description = "备注") + @Length(max = 200, message = "备注最多200字符") + private String remark; +} diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java index 6df2df0c..a0bc7a0a 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java @@ -168,19 +168,14 @@ public class EmployeeService { return ResponseDTO.userErrorParam("部门不存在"); } - - EmployeeEntity existEntity = employeeDao.getByLoginName(employeeUpdateForm.getLoginName(), null); - if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { - return ResponseDTO.userErrorParam("登录名重复"); + // 检查唯一性 + ResponseDTO checkResponse = checkUniqueness(employeeId, employeeUpdateForm.getLoginName(), employeeUpdateForm.getPhone(), employeeUpdateForm.getEmail()); + if (!checkResponse.getOk()) { + return checkResponse; } - existEntity = employeeDao.getByPhone(employeeUpdateForm.getPhone(), null); - if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { - return ResponseDTO.userErrorParam("手机号已存在"); - } - - // 不更新密码 EmployeeEntity entity = SmartBeanUtil.copy(employeeUpdateForm, EmployeeEntity.class); + // 不更新密码 entity.setLoginPwd(null); // 更新数据 @@ -192,6 +187,57 @@ public class EmployeeService { return ResponseDTO.ok(); } + /** + * 更新员工个人中心信息 + */ + public ResponseDTO updateCenter(EmployeeUpdateCenterForm updateCenterForm) { + + Long employeeId = updateCenterForm.getEmployeeId(); + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + if (null == employeeEntity) { + return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST); + } + + // 检查唯一性 登录账号不能修改则不需要检查 + ResponseDTO checkResponse = checkUniqueness(employeeId, "", updateCenterForm.getPhone(), updateCenterForm.getEmail()); + if (!checkResponse.getOk()) { + return checkResponse; + } + + EmployeeEntity employee = SmartBeanUtil.copy(updateCenterForm, EmployeeEntity.class); + // 不更新密码 + employee.setLoginPwd(null); + + // 更新数据 + employeeDao.updateById(employee); + + // 清除员工缓存 + loginService.clearLoginEmployeeCache(employeeId); + + return ResponseDTO.ok(); + } + + /** + * 检查唯一性 + */ + private ResponseDTO checkUniqueness(Long employeeId, String loginName, String phone, String email) { + EmployeeEntity existEntity = employeeDao.getByLoginName(loginName, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("登录名重复"); + } + + existEntity = employeeDao.getByPhone(phone, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("手机号已存在"); + } + + existEntity = employeeDao.getByEmail(email, null); + if (null != existEntity && !Objects.equals(existEntity.getEmployeeId(), employeeId)) { + return ResponseDTO.userErrorParam("邮箱账号已存在"); + } + + return ResponseDTO.ok(); + } /** * 更新登录人头像 @@ -337,11 +383,8 @@ public class EmployeeService { /** * 获取某个部门的员工信息 */ - public ResponseDTO> getAllEmployeeByDepartmentId(Long departmentId, Boolean disabledFlag) { - List employeeEntityList = employeeDao.selectByDepartmentId(departmentId, disabledFlag); - if (disabledFlag != null) { - employeeEntityList = employeeEntityList.stream().filter(e -> e.getDisabledFlag().equals(disabledFlag)).collect(Collectors.toList()); - } + public ResponseDTO> getAllEmployeeByDepartmentId(Long departmentId) { + List employeeEntityList = employeeDao.selectByDepartmentId(departmentId, Boolean.FALSE); if (CollectionUtils.isEmpty(employeeEntityList)) { return ResponseDTO.ok(Collections.emptyList()); @@ -382,7 +425,7 @@ public class EmployeeService { * 根据登录名获取员工 */ public EmployeeEntity getByLoginName(String loginName) { - return employeeDao.getByLoginName(loginName, null); + return employeeDao.getByLoginName(loginName, false); } } diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java index 5ba92785..0b61e3d2 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/RequestEmployee.java @@ -46,6 +46,12 @@ public class RequestEmployee implements RequestUser { @Schema(description = "部门名称") private String departmentName; + @Schema(description = "职务级别ID") + private Long positionId; + + @Schema(description = "邮箱") + private String email; + @Schema(description = "是否禁用") private Boolean disabledFlag; diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml b/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml index b1dc8ad5..9b141c80 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeMapper.xml @@ -2,6 +2,28 @@ + + + t_notice.notice_id, + t_notice.notice_type_id, + t_notice.title, + t_notice.all_visible_flag, + t_notice.scheduled_publish_flag, + t_notice.publish_time, + t_notice.content_text, + t_notice.content_html, + t_notice.attachment, + t_notice.page_view_count, + t_notice.user_view_count, + t_notice.source, + t_notice.author, + t_notice.document_number, + t_notice.deleted_flag, + t_notice.create_user_id, + t_notice.update_time, + t_notice.create_time + + @@ -35,32 +57,30 @@ - select - t_notice.*, + , t_notice_type.notice_type_name, (select count(*) from t_notice_view_record where t_notice_view_record.employee_id = #{requestEmployeeId} and t_notice_view_record.notice_id = t_notice.notice_id) as viewFlag @@ -142,12 +161,11 @@ order by t_notice.publish_time desc - select * from ( select - t_notice.*, + , t_notice_type.notice_type_name, (select count(*) from t_notice_view_record where t_notice_view_record.employee_id = #{requestEmployeeId} and t_notice_view_record.notice_id = t_notice.notice_id) as viewFlag @@ -198,8 +216,7 @@ ) t where viewFlag = 0 order by t.publish_time desc - select t_notice_view_record.*, t_employee.actual_name as employeeName, t_department.name as departmentName diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml b/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml index 506c6832..670d52ed 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml @@ -33,21 +33,19 @@ - UPDATE t_employee SET disabled_flag = #{disabledFlag} WHERE employee_id = #{employeeId} - @@ -57,24 +55,33 @@ FROM t_employee actual_name = #{actualName} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} - + - - SELECT * FROM t_employee department_id = #{departmentId} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} ORDER BY create_time DESC - SELECT * FROM t_employee actual_name = #{actualName} @@ -111,8 +115,8 @@ #{item} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} @@ -125,20 +129,19 @@ #{item} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} ORDER BY create_time DESC - @@ -148,8 +151,8 @@ FROM t_employee department_id = #{departmentId} - - AND disabled_flag = #{disabledFlag} + + AND deleted_flag = #{deletedFlag} ORDER BY create_time DESC @@ -164,7 +167,6 @@ ORDER BY create_time DESC - - SELECT t_employee.*, t_department.name AS departmentName @@ -196,5 +197,4 @@ WHERE employee_id = #{employeeId} - \ No newline at end of file diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java index 14f8ff5f..68b77e45 100644 --- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java @@ -40,7 +40,7 @@ public class MapperVariableService extends CodeGenerateBaseVariableService { List columnNameList = queryField.getColumnNameList(); if (columnNameList.size() == 1) { // AND INSTR(t_notice.title,#{query.keywords}) - stringBuilder.append(" AND INSTR(") + stringBuilder.append("AND INSTR(") .append(form.getTableName()).append(".").append(queryField.getColumnNameList().get(0)) .append(",#{queryForm.") .append(queryField.getFieldName()) @@ -48,21 +48,21 @@ public class MapperVariableService extends CodeGenerateBaseVariableService { } else { for (int i = 0; i < columnNameList.size(); i++) { if (i == 0) { - stringBuilder.append("AND ( INSTR(") + stringBuilder.append("AND (\n INSTR(") .append(form.getTableName()).append(".").append(queryField.getColumnNameList().get(i)) .append(",#{queryForm.") .append(queryField.getFieldName()) .append("})"); } else { // OR INSTR(t_notice.author,#{query.keywords}) - stringBuilder.append("\n OR INSTR(") + stringBuilder.append("\n OR INSTR(") .append(form.getTableName()).append(".").append(queryField.getColumnNameList().get(i)) .append(",#{queryForm.") .append(queryField.getFieldName()) .append("})"); } } - stringBuilder.append("\n )"); + stringBuilder.append("\n )"); } fieldMap.put("likeStr", stringBuilder.toString()); } else if (CodeQueryFieldQueryTypeEnum.DICT.equalsValue(queryField.getQueryTypeEnum())) { diff --git a/smart-admin-web-javascript/src/api/system/employee-api.js b/smart-admin-web-javascript/src/api/system/employee-api.js index 304256a4..cb4ec959 100644 --- a/smart-admin-web-javascript/src/api/system/employee-api.js +++ b/smart-admin-web-javascript/src/api/system/employee-api.js @@ -36,10 +36,10 @@ export const employeeApi = { return postRequest('/employee/update', params); }, /** - * 更新登录人信息 + * 更新员工个人中心信息 */ - updateByLogin: (params) => { - return postRequest('/employee/update/login', params); + updateCenter: (params) => { + return postRequest('/employee/update/center', params); }, /** * 更新登录人头像 @@ -77,25 +77,22 @@ export const employeeApi = { updateEmployeePassword: (param) => { return postEncryptRequest('/employee/update/password', param); }, - /** * 获取密码复杂度 */ getPasswordComplexityEnabled: () => { return getRequest('/employee/getPasswordComplexityEnabled'); }, - /** * 更新员工禁用状态 */ updateDisabled: (employeeId) => { return getRequest(`/employee/update/disabled/${employeeId}`); }, - /** * 查询员工-根据部门id */ queryEmployeeByDeptId: (departmentId) => { - return getRequest(`/employee/query/dept/${departmentId}`); + return getRequest(`/employee/getAllEmployeeByDepartmentId/${departmentId}`); }, }; diff --git a/smart-admin-web-javascript/src/components/framework/smart-enum-checkbox/index.vue b/smart-admin-web-javascript/src/components/framework/smart-enum-checkbox/index.vue index ddfe01c6..cc2d2e36 100644 --- a/smart-admin-web-javascript/src/components/framework/smart-enum-checkbox/index.vue +++ b/smart-admin-web-javascript/src/components/framework/smart-enum-checkbox/index.vue @@ -9,7 +9,11 @@ * --> diff --git a/smart-admin-web-javascript/src/components/support/table-operator/index.vue b/smart-admin-web-javascript/src/components/support/table-operator/index.vue index 150bc598..17bab8b4 100644 --- a/smart-admin-web-javascript/src/components/support/table-operator/index.vue +++ b/smart-admin-web-javascript/src/components/support/table-operator/index.vue @@ -68,7 +68,15 @@ // 原始表格列数据(复制一份最原始的columns集合,以供后续各个地方使用) let originalColumn = _.cloneDeep(props.modelValue); - onMounted(buildUserTableColumns); + onMounted(() => { + buildUserTableColumns(); + // 监听全屏事件 解决按下 ESC 退出全屏 fullScreenFlag 未改变导致下次第一下点击全屏无效的问题 + addEventListener('fullscreenchange', (event) => { + if (document.fullscreenElement === null) { + fullScreenFlag.value = false; + } + }); + }); //构建用户的数据列 async function buildUserTableColumns() { diff --git a/smart-admin-web-javascript/src/components/support/table-operator/smart-table-column-modal.vue b/smart-admin-web-javascript/src/components/support/table-operator/smart-table-column-modal.vue index 35f9f110..ce9c8ec2 100644 --- a/smart-admin-web-javascript/src/components/support/table-operator/smart-table-column-modal.vue +++ b/smart-admin-web-javascript/src/components/support/table-operator/smart-table-column-modal.vue @@ -9,46 +9,70 @@ * -->