diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java
index 79456e00..3e0bcb1e 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java
@@ -33,6 +33,7 @@ import org.springframework.web.multipart.MultipartFile;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.file.FileNameUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 
 import top.charles7c.cnadmin.common.base.BaseServiceImpl;
@@ -46,6 +47,7 @@ import top.charles7c.cnadmin.common.service.CommonUserService;
 import top.charles7c.cnadmin.common.util.ExceptionUtils;
 import top.charles7c.cnadmin.common.util.FileUtils;
 import top.charles7c.cnadmin.common.util.SecureUtils;
+import top.charles7c.cnadmin.common.util.helper.LoginHelper;
 import top.charles7c.cnadmin.common.util.validate.CheckUtils;
 import top.charles7c.cnadmin.system.mapper.UserMapper;
 import top.charles7c.cnadmin.system.model.entity.UserDO;
@@ -77,8 +79,11 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
     @Transactional(rollbackFor = Exception.class)
     public Long add(UserRequest request) {
         String username = request.getUsername();
-        boolean isExists = this.checkNameExists(username, null);
-        CheckUtils.throwIf(isExists, "新增失败,[{}] 已存在", username);
+        CheckUtils.throwIf(this.checkNameExists(username, null), "新增失败,[{}] 已存在", username);
+        String email = request.getEmail();
+        CheckUtils.throwIf(StrUtil.isNotBlank(email) && this.checkEmailExists(email, null), "新增失败,[{}] 已存在", email);
+        String phone = request.getPhone();
+        CheckUtils.throwIf(StrUtil.isNotBlank(phone) && this.checkPhoneExists(phone, null), "新增失败,[{}] 已存在", phone);
 
         // 新增信息
         request.setStatus(DisEnableStatusEnum.ENABLE);
@@ -95,11 +100,18 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
     @Transactional(rollbackFor = Exception.class)
     public void update(UserRequest request, Long id) {
         String username = request.getUsername();
-        boolean isExists = this.checkNameExists(username, id);
-        CheckUtils.throwIf(isExists, "修改失败,[{}] 已存在", username);
+        CheckUtils.throwIf(this.checkNameExists(username, id), "修改失败,[{}] 已存在", username);
+        String email = request.getEmail();
+        CheckUtils.throwIf(StrUtil.isNotBlank(email) && this.checkEmailExists(email, id), "修改失败,[{}] 已存在", email);
+        String phone = request.getPhone();
+        CheckUtils.throwIf(StrUtil.isNotBlank(phone) && this.checkPhoneExists(phone, id), "修改失败,[{}] 已存在", phone);
+        DisEnableStatusEnum newStatus = request.getStatus();
+        CheckUtils.throwIf(
+            DisEnableStatusEnum.DISABLE.equals(newStatus) && ObjectUtil.equal(id, LoginHelper.getUserId()),
+            "不允许禁用当前用户");
         UserDO oldUser = super.getById(id);
         if (DataTypeEnum.SYSTEM.equals(oldUser.getType())) {
-            CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, request.getStatus(), "[{}] 是系统内置用户,不允许禁用",
+            CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, newStatus, "[{}] 是系统内置用户,不允许禁用",
                 oldUser.getNickname());
             Collection<Long> disjunctionRoleIds =
                 CollUtil.disjunction(request.getRoleIds(), userRoleService.listRoleIdByUserId(id));
@@ -115,6 +127,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void delete(List<Long> ids) {
+        CheckUtils.throwIf(CollUtil.contains(ids, LoginHelper.getUserId()), "不允许删除当前用户");
         List<UserDO> list =
             baseMapper.lambdaQuery().select(UserDO::getNickname, UserDO::getType).in(UserDO::getId, ids).list();
         Optional<UserDO> isSystemData = list.stream().filter(u -> DataTypeEnum.SYSTEM.equals(u.getType())).findFirst();
@@ -236,4 +249,30 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
     private boolean checkNameExists(String name, Long id) {
         return baseMapper.lambdaQuery().eq(UserDO::getUsername, name).ne(id != null, UserDO::getId, id).exists();
     }
+
+    /**
+     * 检查邮箱是否存在
+     *
+     * @param email
+     *            邮箱
+     * @param id
+     *            ID
+     * @return 是否存在
+     */
+    private boolean checkEmailExists(String email, Long id) {
+        return baseMapper.lambdaQuery().eq(UserDO::getEmail, email).ne(id != null, UserDO::getId, id).exists();
+    }
+
+    /**
+     * 检查手机号码是否存在
+     *
+     * @param phone
+     *            手机号码
+     * @param id
+     *            ID
+     * @return 是否存在
+     */
+    private boolean checkPhoneExists(String phone, Long id) {
+        return baseMapper.lambdaQuery().eq(UserDO::getPhone, phone).ne(id != null, UserDO::getId, id).exists();
+    }
 }