From adc587689dcd7b0fc1cce1474f19e8180223b261 Mon Sep 17 00:00:00 2001 From: cp3hnu Date: Wed, 26 Mar 2025 11:05:24 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E5=88=86=E9=A1=B5=E5=88=A0=E9=99=A4?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- react-ui/src/app.tsx | 10 ++-- .../CopyingText}/clipboard.js | 0 .../components/CopyingText/index.less | 0 react-ui/src/components/CopyingText/index.tsx | 26 ++++++++++ .../AutoML/components/CopyingText/index.tsx | 26 ---------- .../components/ExperimentList/index.tsx | 15 +++--- react-ui/src/pages/CodeConfig/List/index.tsx | 9 +++- .../Dataset/components/ResourceList/index.tsx | 9 +++- .../DevelopmentEnvironment/List/index.tsx | 15 +++--- react-ui/src/pages/Experiment/index.jsx | 43 ++++++++++------ react-ui/src/pages/Mirror/Info/index.tsx | 15 +++--- react-ui/src/pages/Mirror/List/index.tsx | 15 +++--- .../src/pages/ModelDeployment/List/index.tsx | 15 +++--- .../ModelDeployment/ServiceInfo/index.tsx | 18 +++---- react-ui/src/pages/Pipeline/index.jsx | 49 ++++++++++--------- .../components/TotalStatistics/index.less | 5 +- react-ui/src/pages/Workspace/index.less | 3 +- 17 files changed, 141 insertions(+), 132 deletions(-) rename react-ui/src/{utils => components/CopyingText}/clipboard.js (100%) rename react-ui/src/{pages/AutoML => }/components/CopyingText/index.less (100%) create mode 100644 react-ui/src/components/CopyingText/index.tsx delete mode 100644 react-ui/src/pages/AutoML/components/CopyingText/index.tsx diff --git a/react-ui/src/app.tsx b/react-ui/src/app.tsx index 7c026d3d..3666ff81 100644 --- a/react-ui/src/app.tsx +++ b/react-ui/src/app.tsx @@ -1,11 +1,14 @@ import RightContent from '@/components/RightContent'; import themes from '@/styles/theme.less'; +import { type GlobalInitialState } from '@/types'; +import { menuItemRender } from '@/utils/menuRender'; import type { Settings as LayoutSettings } from '@ant-design/pro-components'; import { RuntimeConfig, history } from '@umijs/max'; import { RuntimeAntdConfig } from 'umi'; import defaultSettings from '../config/defaultSettings'; import '../public/fonts/font.css'; import { getAccessToken } from './access'; +import ErrorBoundary from './components/ErrorBoundary'; import './dayjsConfig'; import { removeAllPageCacheState } from './hooks/pageCacheState'; import { @@ -16,14 +19,9 @@ import { setRemoteMenu, } from './services/session'; import './styles/menu.less'; -export { requestConfig as request } from './requestConfig'; -// const isDev = process.env.NODE_ENV === 'development'; -import { type GlobalInitialState } from '@/types'; -// import '@/utils/clipboard'; -import { menuItemRender } from '@/utils/menuRender'; -import ErrorBoundary from './components/ErrorBoundary'; import { needAuth } from './utils'; import { gotoLoginPage } from './utils/ui'; +export { requestConfig as request } from './requestConfig'; /** * @see https://umijs.org/zh-CN/plugins/plugin-initial-state diff --git a/react-ui/src/utils/clipboard.js b/react-ui/src/components/CopyingText/clipboard.js similarity index 100% rename from react-ui/src/utils/clipboard.js rename to react-ui/src/components/CopyingText/clipboard.js diff --git a/react-ui/src/pages/AutoML/components/CopyingText/index.less b/react-ui/src/components/CopyingText/index.less similarity index 100% rename from react-ui/src/pages/AutoML/components/CopyingText/index.less rename to react-ui/src/components/CopyingText/index.less diff --git a/react-ui/src/components/CopyingText/index.tsx b/react-ui/src/components/CopyingText/index.tsx new file mode 100644 index 00000000..5a87ebe3 --- /dev/null +++ b/react-ui/src/components/CopyingText/index.tsx @@ -0,0 +1,26 @@ +import KFIcon from '@/components/KFIcon'; +import { Tooltip } from 'antd'; +import styles from './index.less'; + +export type CopyingTextProps = { + text: string; +}; + +function CopyingText({ text }: CopyingTextProps) { + return ( +
+ {text} + + + +
+ ); +} + +export default CopyingText; diff --git a/react-ui/src/pages/AutoML/components/CopyingText/index.tsx b/react-ui/src/pages/AutoML/components/CopyingText/index.tsx deleted file mode 100644 index 586de40b..00000000 --- a/react-ui/src/pages/AutoML/components/CopyingText/index.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import KFIcon from '@/components/KFIcon'; -import { Typography } from 'antd'; -import styles from './index.less'; - -export type CopyingTextProps = { - text: string; -}; - -function CopyingText({ text }: CopyingTextProps) { - return ( -
- - {text} - - -
- ); -} - -export default CopyingText; diff --git a/react-ui/src/pages/AutoML/components/ExperimentList/index.tsx b/react-ui/src/pages/AutoML/components/ExperimentList/index.tsx index e2f9d31c..e187167f 100644 --- a/react-ui/src/pages/AutoML/components/ExperimentList/index.tsx +++ b/react-ui/src/pages/AutoML/components/ExperimentList/index.tsx @@ -93,17 +93,14 @@ function ExperimentList({ type }: ExperimentListProps) { const [res] = await to(request(record.id)); if (res) { message.success('删除成功'); - // 如果是一页的唯一数据,删除时,请求第一页的数据 + // 如果是一页的唯一数据,删除后,请求第一页的数据 // 否则直接刷新这一页的数据 - // 避免回到第一页 - if (tableData.length > 1) { - setPagination((prev) => ({ + setPagination((prev) => { + return { ...prev, - current: 1, - })); - } else { - getAutoMLList(); - } + current: tableData.length === 1 ? Math.max(1, prev.current! - 1) : prev.current, + }; + }); } }; diff --git a/react-ui/src/pages/CodeConfig/List/index.tsx b/react-ui/src/pages/CodeConfig/List/index.tsx index 3f567465..a1ccd09c 100644 --- a/react-ui/src/pages/CodeConfig/List/index.tsx +++ b/react-ui/src/pages/CodeConfig/List/index.tsx @@ -75,8 +75,15 @@ function CodeConfigList() { const deleteRecord = async (id: number) => { const [res] = await to(deleteCodeConfigReq(id)); if (res) { - getDataList(); message.success('删除成功'); + // 如果是一页的唯一数据,删除后,请求第一页的数据 + // 否则直接刷新这一页的数据 + setPagination((prev) => { + return { + ...prev, + current: dataList!.length === 1 ? Math.max(1, prev.current! - 1) : prev.current, + }; + }); } }; diff --git a/react-ui/src/pages/Dataset/components/ResourceList/index.tsx b/react-ui/src/pages/Dataset/components/ResourceList/index.tsx index 6549b9c1..2f1e8d4e 100644 --- a/react-ui/src/pages/Dataset/components/ResourceList/index.tsx +++ b/react-ui/src/pages/Dataset/components/ResourceList/index.tsx @@ -107,8 +107,15 @@ function ResourceList( const request = config.deleteRecord; const [res] = await to(request(params)); if (res) { - getDataList(); message.success('删除成功'); + // 如果是一页的唯一数据,删除后,请求第一页的数据 + // 否则直接刷新这一页的数据 + setPagination((prev) => { + return { + ...prev, + current: dataList!.length === 1 ? Math.max(1, prev.current! - 1) : prev.current, + }; + }); } }; diff --git a/react-ui/src/pages/DevelopmentEnvironment/List/index.tsx b/react-ui/src/pages/DevelopmentEnvironment/List/index.tsx index 4af043ba..cc90524d 100644 --- a/react-ui/src/pages/DevelopmentEnvironment/List/index.tsx +++ b/react-ui/src/pages/DevelopmentEnvironment/List/index.tsx @@ -80,17 +80,14 @@ function EditorList() { const [res] = await to(deleteEditorReq(id)); if (res) { message.success('删除成功'); - // 如果是一页的唯一数据,删除时,请求第一页的数据 + // 如果是一页的唯一数据,删除后,请求第一页的数据 // 否则直接刷新这一页的数据 - // 避免回到第一页 - if (tableData.length > 1) { - setPagination((prev) => ({ + setPagination((prev) => { + return { ...prev, - current: 1, - })); - } else { - getEditorList(); - } + current: tableData.length === 1 ? Math.max(1, prev.current! - 1) : prev.current, + }; + }); } }; diff --git a/react-ui/src/pages/Experiment/index.jsx b/react-ui/src/pages/Experiment/index.jsx index b3a288b1..91737c32 100644 --- a/react-ui/src/pages/Experiment/index.jsx +++ b/react-ui/src/pages/Experiment/index.jsx @@ -378,6 +378,31 @@ function Experiment() { getQueryByExperiment(expandedRowKeys, page); }; + // 处理删除 + const handleExperimentDelete = (record) => { + modalConfirm({ + title: '删除后,该实验将不可恢复', + content: '是否确认删除?', + onOk: () => { + deleteExperimentById(record.id).then((ret) => { + if (ret.code === 200) { + message.success('删除成功'); + // 如果是一页的唯一数据,删除后,请求第一页的数据 + // 否则直接刷新这一页的数据 + setPagination((prev) => { + return { + ...prev, + current: experimentList.length === 1 ? Math.max(1, prev.current - 1) : prev.current, + }; + }); + } else { + message.error(ret.msg); + } + }); + }, + }); + }; + const columns = [ { title: '实验名称', @@ -476,22 +501,7 @@ function Experiment() { size="small" key="batchRemove" icon={} - onClick={() => { - modalConfirm({ - title: '删除后,该实验将不可恢复', - content: '是否确认删除?', - onOk: () => { - deleteExperimentById(record.id).then((ret) => { - if (ret.code === 200) { - message.success('删除成功'); - getExperimentList(); - } else { - message.error(ret.msg); - } - }); - }, - }); - }} + onClick={() => handleExperimentDelete(record)} > 删除 @@ -500,6 +510,7 @@ function Experiment() { ), }, ]; + return (
diff --git a/react-ui/src/pages/Mirror/Info/index.tsx b/react-ui/src/pages/Mirror/Info/index.tsx index 4b8efafd..b08fcc06 100644 --- a/react-ui/src/pages/Mirror/Info/index.tsx +++ b/react-ui/src/pages/Mirror/Info/index.tsx @@ -117,17 +117,14 @@ function MirrorInfo() { const [res] = await to(deleteMirrorVersionReq(id)); if (res) { message.success('删除成功'); - // 如果是一页的唯一数据,删除时,请求第一页的数据 + // 如果是一页的唯一数据,删除后,请求第一页的数据 // 否则直接刷新这一页的数据 - // 避免回到第一页 - if (tableData.length === 1) { - setPagination((prev) => ({ + setPagination((prev) => { + return { ...prev, - current: 1, - })); - } else { - getMirrorVersionList(); - } + current: tableData.length === 1 ? Math.max(1, prev.current! - 1) : prev.current, + }; + }); } }; diff --git a/react-ui/src/pages/Mirror/List/index.tsx b/react-ui/src/pages/Mirror/List/index.tsx index 3c8481e2..1c74ddea 100644 --- a/react-ui/src/pages/Mirror/List/index.tsx +++ b/react-ui/src/pages/Mirror/List/index.tsx @@ -103,17 +103,14 @@ function MirrorList() { const [res] = await to(deleteMirrorReq(id)); if (res) { message.success('删除成功'); - // 如果是一页的唯一数据,删除时,请求第一页的数据 + // 如果是一页的唯一数据,删除后,请求第一页的数据 // 否则直接刷新这一页的数据 - // 避免回到第一页 - if (tableData.length > 1) { - setPagination((prev) => ({ + setPagination((prev) => { + return { ...prev, - current: 1, - })); - } else { - getMirrorList(); - } + current: tableData.length === 1 ? Math.max(1, prev.current! - 1) : prev.current, + }; + }); } }; diff --git a/react-ui/src/pages/ModelDeployment/List/index.tsx b/react-ui/src/pages/ModelDeployment/List/index.tsx index 50fe9b84..389931f2 100644 --- a/react-ui/src/pages/ModelDeployment/List/index.tsx +++ b/react-ui/src/pages/ModelDeployment/List/index.tsx @@ -119,17 +119,14 @@ function ModelDeployment() { const [res] = await to(deleteServiceReq(record.id)); if (res) { message.success('删除成功'); - // 如果是一页的唯一数据,删除时,请求第一页的数据 + // 如果是一页的唯一数据,删除后,请求第一页的数据 // 否则直接刷新这一页的数据 - // 避免回到第一页 - if (tableData.length > 1) { - setPagination((prev) => ({ + setPagination((prev) => { + return { ...prev, - current: 1, - })); - } else { - getServiceList(); - } + current: tableData.length === 1 ? Math.max(1, prev.current! - 1) : prev.current, + }; + }); } }; diff --git a/react-ui/src/pages/ModelDeployment/ServiceInfo/index.tsx b/react-ui/src/pages/ModelDeployment/ServiceInfo/index.tsx index 3c1ee8d3..a0cecfe0 100644 --- a/react-ui/src/pages/ModelDeployment/ServiceInfo/index.tsx +++ b/react-ui/src/pages/ModelDeployment/ServiceInfo/index.tsx @@ -132,18 +132,14 @@ function ServiceInfo() { const [res] = await to(deleteServiceVersionReq(record.id)); if (res) { message.success('删除成功'); - // 如果是一页的唯一数据,删除时,请求第一页的数据 - // 否则直接刷新这一页的数据,避免回到第一页 - if (tableData.length === 1) { - setPagination((prev) => ({ + // 如果是一页的唯一数据,删除后,请求第一页的数据 + // 否则直接刷新这一页的数据 + setPagination((prev) => { + return { ...prev, - current: 1, - })); - } else { - setPagination((prev) => ({ - ...prev, - })); - } + current: tableData.length === 1 ? Math.max(1, prev.current! - 1) : prev.current, + }; + }); getServiceInfo(); } }; diff --git a/react-ui/src/pages/Pipeline/index.jsx b/react-ui/src/pages/Pipeline/index.jsx index eb2db981..205daca6 100644 --- a/react-ui/src/pages/Pipeline/index.jsx +++ b/react-ui/src/pages/Pipeline/index.jsx @@ -127,6 +127,32 @@ const Pipeline = () => { } }; + // 处理删除 + const handlePipelineDelete = (record) => { + modalConfirm({ + title: '删除后,该流水线将不可恢复', + content: '是否确认删除?', + onOk: () => { + removeWorkflow(record.id).then((ret) => { + if (ret.code === 200) { + message.success('删除成功'); + // 如果是一页的唯一数据,删除后,请求第一页的数据 + // 否则直接刷新这一页的数据 + setPagination((prev) => { + return { + ...prev, + current: pipeList.length === 1 ? Math.max(1, prev.current - 1) : prev.current, + }; + }); + getList(); + } else { + message.error(ret.msg); + } + }); + }, + }); + }; + // 当前页面切换 const paginationChange = async (current, pageSize) => { setPagination({ @@ -238,28 +264,7 @@ const Pipeline = () => { size="small" key="batchRemove" icon={} - onClick={() => { - modalConfirm({ - title: '删除后,该流水线将不可恢复', - content: '是否确认删除?', - onOk: () => { - removeWorkflow(record.id).then((ret) => { - if (ret.code === 200) { - message.success('删除成功'); - getList(); - } else { - message.error(ret.msg); - } - }); - - // if (success) { - // if (actionRef.current) { - // actionRef.current.reload(); - // } - // } - }, - }); - }} + onClick={() => handlePipelineDelete(record)} > 删除 diff --git a/react-ui/src/pages/Workspace/components/TotalStatistics/index.less b/react-ui/src/pages/Workspace/components/TotalStatistics/index.less index 34aa2a67..8a409b82 100644 --- a/react-ui/src/pages/Workspace/components/TotalStatistics/index.less +++ b/react-ui/src/pages/Workspace/components/TotalStatistics/index.less @@ -7,7 +7,7 @@ // 媒体查询 @media screen and (max-width: 1600px) { - flex: 1 1 content; + flex: auto; } &__icon { @@ -24,8 +24,7 @@ &__count { color: @text-color; - font-weight: 700; - font-size: 25px; + font-size: 26px; font-family: DingTalk-JinBuTi; } } diff --git a/react-ui/src/pages/Workspace/index.less b/react-ui/src/pages/Workspace/index.less index 59ea0a44..addf2fcd 100644 --- a/react-ui/src/pages/Workspace/index.less +++ b/react-ui/src/pages/Workspace/index.less @@ -27,6 +27,7 @@ &__statistics { flex: none; + min-width: 431px; background: linear-gradient( 123.08deg, rgba(138, 138, 138, 0.06) 1.32%, @@ -36,7 +37,7 @@ // 媒体查询 @media screen and (max-width: 1600px) { - flex: 1 1 content; + flex: 1; } } } From bf71136f47496b0f408186bb1fdc39b4743eb34f Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 26 Mar 2025 11:15:15 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ImageVersionServiceImpl.java | 2 +- .../service/impl/SysUserServiceImpl.java | 246 +++++++----------- 2 files changed, 95 insertions(+), 153 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageVersionServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageVersionServiceImpl.java index 4b913351..b1b55878 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageVersionServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageVersionServiceImpl.java @@ -96,7 +96,7 @@ public class ImageVersionServiceImpl implements ImageVersionService { return "无权限删除该版本下模型信息"; } - imageVersion.setState(0); + imageVersion.setState(Constant.State_invalid); return this.imageVersionDao.update(imageVersion) > 0 ? "删除成功" : "删除失败"; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 8ea6cb4a..055f208e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -1,15 +1,5 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; -import javax.validation.Validator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.SpringUtils; @@ -22,22 +12,28 @@ import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.domain.SysPost; import com.ruoyi.system.domain.SysUserPost; import com.ruoyi.system.domain.SysUserRole; -import com.ruoyi.system.mapper.SysPostMapper; -import com.ruoyi.system.mapper.SysRoleMapper; -import com.ruoyi.system.mapper.SysUserMapper; -import com.ruoyi.system.mapper.SysUserPostMapper; -import com.ruoyi.system.mapper.SysUserRoleMapper; +import com.ruoyi.system.mapper.*; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import javax.validation.Validator; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; /** * 用户 业务层处理 - * + * * @author ruoyi */ @Service -public class SysUserServiceImpl implements ISysUserService -{ +public class SysUserServiceImpl implements ISysUserService { private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); @Autowired @@ -63,79 +59,72 @@ public class SysUserServiceImpl implements ISysUserService /** * 根据条件分页查询用户列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List selectUserList(SysUser user) - { + public List selectUserList(SysUser user) { return userMapper.selectUserList(user); } /** * 根据条件分页查询已分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List selectAllocatedList(SysUser user) - { + public List selectAllocatedList(SysUser user) { return userMapper.selectAllocatedList(user); } /** * 根据条件分页查询未分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List selectUnallocatedList(SysUser user) - { + public List selectUnallocatedList(SysUser user) { return userMapper.selectUnallocatedList(user); } /** * 通过用户名查询用户 - * + * * @param userName 用户名 * @return 用户对象信息 */ @Override - public SysUser selectUserByUserName(String userName) - { + public SysUser selectUserByUserName(String userName) { return userMapper.selectUserByUserName(userName); } /** * 通过用户ID查询用户 - * + * * @param userId 用户ID * @return 用户对象信息 */ @Override - public SysUser selectUserById(Long userId) - { + public SysUser selectUserById(Long userId) { return userMapper.selectUserById(userId); } /** * 查询用户所属角色组 - * + * * @param userName 用户名 * @return 结果 */ @Override - public String selectUserRoleGroup(String userName) - { + public String selectUserRoleGroup(String userName) { List list = roleMapper.selectRolesByUserName(userName); - if (CollectionUtils.isEmpty(list)) - { + if (CollectionUtils.isEmpty(list)) { return StringUtils.EMPTY; } return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); @@ -143,16 +132,14 @@ public class SysUserServiceImpl implements ISysUserService /** * 查询用户所属岗位组 - * + * * @param userName 用户名 * @return 结果 */ @Override - public String selectUserPostGroup(String userName) - { + public String selectUserPostGroup(String userName) { List list = postMapper.selectPostsByUserName(userName); - if (CollectionUtils.isEmpty(list)) - { + if (CollectionUtils.isEmpty(list)) { return StringUtils.EMPTY; } return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); @@ -160,17 +147,15 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户名称是否唯一 - * + * * @param user 用户信息 * @return 结果 */ @Override - public boolean checkUserNameUnique(SysUser user) - { + public boolean checkUserNameUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkUserNameUnique(user.getUserName()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -183,12 +168,10 @@ public class SysUserServiceImpl implements ISysUserService * @return */ @Override - public boolean checkPhoneUnique(SysUser user) - { + public boolean checkPhoneUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -201,12 +184,10 @@ public class SysUserServiceImpl implements ISysUserService * @return */ @Override - public boolean checkEmailUnique(SysUser user) - { + public boolean checkEmailUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkEmailUnique(user.getEmail()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -216,8 +197,7 @@ public class SysUserServiceImpl implements ISysUserService public boolean checktGitLinkUsernameUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checktGitLinkUsernameUnique(user.getGitLinkUsername()); - if(StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -225,33 +205,28 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户是否允许操作 - * + * * @param user 用户信息 */ @Override - public void checkUserAllowed(SysUser user) - { - if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) - { + public void checkUserAllowed(SysUser user) { + if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin() && !SecurityUtils.getUserId().equals(user.getUserId())) { throw new ServiceException("不允许操作超级管理员用户"); } } /** * 校验用户是否有数据权限 - * + * * @param userId 用户id */ @Override - public void checkUserDataScope(Long userId) - { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) - { + public void checkUserDataScope(Long userId) { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) { SysUser user = new SysUser(); user.setUserId(userId); List users = SpringUtils.getAopProxy(this).selectUserList(user); - if (StringUtils.isEmpty(users)) - { + if (StringUtils.isEmpty(users)) { throw new ServiceException("没有权限访问用户数据!"); } } @@ -259,14 +234,13 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int insertUser(SysUser user) - { + public int insertUser(SysUser user) { // 新增用户信息 int rows = userMapper.insertUser(user); // 新增用户岗位关联 @@ -278,26 +252,24 @@ public class SysUserServiceImpl implements ISysUserService /** * 注册用户信息 - * + * * @param user 用户信息 * @return 结果 */ @Override - public boolean registerUser(SysUser user) - { + public boolean registerUser(SysUser user) { return userMapper.insertUser(user) > 0; } /** * 修改保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int updateUser(SysUser user) - { + public int updateUser(SysUser user) { Long userId = user.getUserId(); // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); @@ -312,104 +284,94 @@ public class SysUserServiceImpl implements ISysUserService /** * 用户授权角色 - * - * @param userId 用户ID + * + * @param userId 用户ID * @param roleIds 角色组 */ @Override @Transactional(rollbackFor = Exception.class) - public void insertUserAuth(Long userId, Long[] roleIds) - { + public void insertUserAuth(Long userId, Long[] roleIds) { userRoleMapper.deleteUserRoleByUserId(userId); insertUserRole(userId, roleIds); } /** * 修改用户状态 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int updateUserStatus(SysUser user) - { + public int updateUserStatus(SysUser user) { return userMapper.updateUser(user); } /** * 修改用户基本信息 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int updateUserProfile(SysUser user) - { + public int updateUserProfile(SysUser user) { return userMapper.updateUser(user); } /** * 修改用户头像 - * + * * @param userName 用户名 - * @param avatar 头像地址 + * @param avatar 头像地址 * @return 结果 */ @Override - public boolean updateUserAvatar(String userName, String avatar) - { + public boolean updateUserAvatar(String userName, String avatar) { return userMapper.updateUserAvatar(userName, avatar) > 0; } /** * 重置用户密码 - * + * * @param user 用户信息 * @return 结果 */ @Override - public int resetPwd(SysUser user) - { + public int resetPwd(SysUser user) { return userMapper.updateUser(user); } /** * 重置用户密码 - * + * * @param userName 用户名 * @param password 密码 * @return 结果 */ @Override - public int resetUserPwd(String userName, String password) - { + public int resetUserPwd(String userName, String password) { return userMapper.resetUserPwd(userName, password); } /** * 新增用户角色信息 - * + * * @param user 用户对象 */ - public void insertUserRole(SysUser user) - { + public void insertUserRole(SysUser user) { this.insertUserRole(user.getUserId(), user.getRoleIds()); } /** * 新增用户岗位信息 - * + * * @param user 用户对象 */ - public void insertUserPost(SysUser user) - { + public void insertUserPost(SysUser user) { Long[] posts = user.getPostIds(); - if (StringUtils.isNotEmpty(posts)) - { + if (StringUtils.isNotEmpty(posts)) { // 新增用户与岗位管理 List list = new ArrayList(); - for (Long postId : posts) - { + for (Long postId : posts) { SysUserPost up = new SysUserPost(); up.setUserId(user.getUserId()); up.setPostId(postId); @@ -421,18 +383,15 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户角色信息 - * - * @param userId 用户ID + * + * @param userId 用户ID * @param roleIds 角色组 */ - public void insertUserRole(Long userId, Long[] roleIds) - { - if (StringUtils.isNotEmpty(roleIds)) - { + public void insertUserRole(Long userId, Long[] roleIds) { + if (StringUtils.isNotEmpty(roleIds)) { // 新增用户与角色管理 List list = new ArrayList(); - for (Long roleId : roleIds) - { + for (Long roleId : roleIds) { SysUserRole ur = new SysUserRole(); ur.setUserId(userId); ur.setRoleId(roleId); @@ -444,14 +403,13 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户ID删除用户 - * + * * @param userId 用户ID * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int deleteUserById(Long userId) - { + public int deleteUserById(Long userId) { // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); // 删除用户与岗位表 @@ -461,16 +419,14 @@ public class SysUserServiceImpl implements ISysUserService /** * 批量删除用户信息 - * + * * @param userIds 需要删除的用户ID * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int deleteUserByIds(Long[] userIds) - { - for (Long userId : userIds) - { + public int deleteUserByIds(Long[] userIds) { + for (Long userId : userIds) { checkUserAllowed(new SysUser(userId)); checkUserDataScope(userId); } @@ -483,17 +439,15 @@ public class SysUserServiceImpl implements ISysUserService /** * 导入用户数据 - * - * @param userList 用户数据列表 + * + * @param userList 用户数据列表 * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 - * @param operName 操作用户 + * @param operName 操作用户 * @return 结果 */ @Override - public String importUser(List userList, Boolean isUpdateSupport, String operName) - { - if (StringUtils.isNull(userList) || userList.size() == 0) - { + public String importUser(List userList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(userList) || userList.size() == 0) { throw new ServiceException("导入用户数据不能为空!"); } int successNum = 0; @@ -501,23 +455,18 @@ public class SysUserServiceImpl implements ISysUserService StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); String password = configService.selectConfigByKey("sys.user.initPassword"); - for (SysUser user : userList) - { - try - { + for (SysUser user : userList) { + try { // 验证是否存在这个用户 SysUser u = userMapper.selectUserByUserName(user.getUserName()); - if (StringUtils.isNull(u)) - { + if (StringUtils.isNull(u)) { BeanValidators.validateWithException(validator, user); user.setPassword(SecurityUtils.encryptPassword(password)); user.setCreateBy(operName); userMapper.insertUser(user); successNum++; successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 导入成功"); - } - else if (isUpdateSupport) - { + } else if (isUpdateSupport) { BeanValidators.validateWithException(validator, user); checkUserAllowed(u); checkUserDataScope(u.getUserId()); @@ -526,28 +475,21 @@ public class SysUserServiceImpl implements ISysUserService userMapper.updateUser(user); successNum++; successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 更新成功"); - } - else - { + } else { failureNum++; failureMsg.append("
" + failureNum + "、账号 " + user.getUserName() + " 已存在"); } - } - catch (Exception e) - { + } catch (Exception e) { failureNum++; String msg = "
" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; failureMsg.append(msg + e.getMessage()); log.error(msg, e); } } - if (failureNum > 0) - { + if (failureNum > 0) { failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); throw new ServiceException(failureMsg.toString()); - } - else - { + } else { successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); } return successMsg.toString(); From 9f6a4439535eacde749e9407790a01c12246beda Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 26 Mar 2025 11:33:06 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k8s/deploy.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/k8s/deploy.sh b/k8s/deploy.sh index 2dffc04f..c5c9b331 100755 --- a/k8s/deploy.sh +++ b/k8s/deploy.sh @@ -46,6 +46,8 @@ if [ "$env" == "dev" ]; then remote_ip="172.20.32.197" elif [ "$env" == "test" ]; then remote_ip="172.20.32.185" +elif [ "$env" == "test1" ]; then + remote_ip="172.20.32.235" else echo "Invalid environment - $env" exit 1 From eed3bebaf070dc759e52d23411901da78812bf94 Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 26 Mar 2025 11:34:16 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k8s/deploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/deploy.sh b/k8s/deploy.sh index c5c9b331..6e9d2974 100755 --- a/k8s/deploy.sh +++ b/k8s/deploy.sh @@ -34,7 +34,7 @@ if [[ ! " ${valid_services[@]} " =~ " $service " ]]; then exit 1 fi -valid_envs=("dev" "test") +valid_envs=("dev" "test" "test1") if [[ ! " ${valid_envs[@]} " =~ " $env " ]]; then echo "Invalid environment: $env" >&2 echo "Valid environments are: ${valid_envs[*]}"