Ver código fonte

新增删除用户功能

xusl 2 anos atrás
pai
commit
a34f814d88

+ 29 - 27
backend/src/main/java/com/jiayue/ssi/controller/SysUserController.java

@@ -65,21 +65,21 @@ public class SysUserController {
             return ResponseVO.fail("用户账号不能为空!");
         }
         else if (sysUserService.queryUserName(user.getUsername())!=null){
-            return ResponseVO.fail(user.getUsername() + "账号已存在!");
+            return ResponseVO.fail(null,user.getUsername() + "账号已存在!");
         }
 
         if (StringUtils.isEmpty(user.getPhonenumber())) {
-            return ResponseVO.fail("手机号码不能为空!");
+            return ResponseVO.fail(null,"手机号码不能为空!");
         }
         if (StringUtils.isEmpty(user.getNickname())) {
-            return ResponseVO.fail("姓名不能为空!");
+            return ResponseVO.fail(null,"姓名不能为空!");
         }
 
         if (StringUtils.isEmpty(user.getMailbox())){
-            return ResponseVO.fail("邮箱不能为空!");
+            return ResponseVO.fail(null,"邮箱不能为空!");
         }
         else if (sysUserService.queryMailBox(user.getMailbox())!=null){
-            return ResponseVO.fail(user.getMailbox() + "邮箱已存在!");
+            return ResponseVO.fail(null,user.getMailbox() + "邮箱已存在!");
         }
 
         // 生成8位初始密码
@@ -89,7 +89,7 @@ public class SysUserController {
     }
 
     /**
-     * 新增用户
+     * 初始密码发送邮箱
      */
     @PostMapping(value = "/resetPassword")
     @InterfaceLimit
@@ -110,50 +110,52 @@ public class SysUserController {
     }
 
     /**
-     * 更新用户信息
-     *
-     * @param sysUser 参数
-     * @return 执行结果
+     * 删除用户信息
      */
-    @PutMapping(value = "sysUser/")
-    public ResponseVO update(@RequestBody SysUser sysUser) {
+    @PostMapping(value = "/delUser")
+    public ResponseVO delete(String id) {
+        if (StringUtils.isEmpty(id)){
+            return ResponseVO.fail("id不能为空!");
+        }
         try {
-            boolean bo = sysUserService.updateUser(sysUser);
+            boolean bo = sysUserService.removeUserById(Integer.parseInt(id));
             if (bo){
-                return ResponseVO.success("修改用户信息成功");
+                return ResponseVO.success("删除用户信息成功");
             }
             else{
-                log.error("更新用户信息失败");
-                return ResponseVO.fail();
+                log.error("删除用户信息失败");
+                return ResponseVO.fail("删除用户信息失败");
             }
         } catch (Exception e) {
             e.printStackTrace();
-            log.error("更新用户信息异常");
-            return ResponseVO.fail();
+            log.error("删除用户信息异常");
+            return ResponseVO.error(e);
         }
     }
 
     /**
-     * 删除用户信息
+     * 更新用户信息
      *
-     * @param ids 删除id
+     * @param sysUser 参数
      * @return 执行结果
      */
-    @DeleteMapping(value = "sysUser/{ids}")
-    public ResponseVO delete(@PathVariable("ids") String ids) {
+    @PutMapping(value = "sysUser/")
+    public ResponseVO update(@RequestBody SysUser sysUser) {
         try {
-            boolean bo = sysUserService.deleteUser(ids);
+            boolean bo = sysUserService.updateUser(sysUser);
             if (bo){
-                return ResponseVO.success("删除用户信息成功");
+                return ResponseVO.success("修改用户信息成功");
             }
             else{
-                log.error("删除用户信息失败");
+                log.error("更新用户信息失败");
                 return ResponseVO.fail();
             }
         } catch (Exception e) {
             e.printStackTrace();
-            log.error("删除用户信息异常");
-            return ResponseVO.fail("删除用户信息异常");
+            log.error("更新用户信息异常");
+            return ResponseVO.fail();
         }
     }
+
+
 }

+ 4 - 2
backend/src/main/java/com/jiayue/ssi/handler/MyMetaObjectHandler.java

@@ -2,6 +2,7 @@ package com.jiayue.ssi.handler;
 
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.jiayue.ssi.entity.SysUser;
+import com.jiayue.ssi.util.SecurityContextUtil;
 import org.apache.ibatis.reflection.MetaObject;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Component;
@@ -26,7 +27,7 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
      */
     @Override
     public void insertFill(MetaObject metaObject) {
-        String username = ((SysUser)SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername();
+        String username = SecurityContextUtil.getSysUser().getUsername();
         this.strictInsertFill(metaObject, "createTime", Date.class, new Date());
         this.strictInsertFill(metaObject, "createBy", String.class, username);
         this.strictInsertFill(metaObject, "updateTime", Date.class, new Date());
@@ -40,10 +41,11 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
      */
     @Override
     public void updateFill(MetaObject metaObject) {
+        String username = SecurityContextUtil.getSysUser().getUsername();
         // 解决不会覆盖原值的情况
         metaObject.setValue("updateTime", null);
         metaObject.setValue("updateBy", null);
         this.strictInsertFill(metaObject, "updateTime", Date.class, new Date());
-        this.strictInsertFill(metaObject, "updateBy", String.class, "username");
+        this.strictInsertFill(metaObject, "updateBy", String.class, username);
     }
 }

+ 6 - 0
backend/src/main/java/com/jiayue/ssi/service/SysUserService.java

@@ -45,4 +45,10 @@ public interface SysUserService extends IService<SysUser> {
      * @return SysUser
      */
     SysUser queryMailBox(String mailbox);
+    /**
+     * 删除用户
+     * @param id
+     * @return
+     */
+    boolean removeUserById(Integer id);
 }

+ 18 - 0
backend/src/main/java/com/jiayue/ssi/service/impl/SysUserServiceImpl.java

@@ -1,6 +1,8 @@
 package com.jiayue.ssi.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jiayue.ssi.entity.SysUser;
 import com.jiayue.ssi.mapper.SysUserMapper;
@@ -79,4 +81,20 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         SysUser sysUser = sysUserMapper.selectOne(queryWrapper);
         return sysUser;
     }
+    /**
+     * 删除用户
+     * @param id
+     * @return
+     */
+    @Override
+    public boolean removeUserById(Integer id) {
+        LambdaUpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<SysUser>().lambda();
+        updateWrapper.eq(SysUser::getId, id).set(SysUser::getDelFlag, 1);
+        int count = sysUserMapper.update(new SysUser(), updateWrapper);
+        if (count > 0) {
+            return true;
+        }
+        return false;
+    }
+
 }

+ 21 - 0
backend/src/main/java/com/jiayue/ssi/util/SecurityContextUtil.java

@@ -0,0 +1,21 @@
+package com.jiayue.ssi.util;
+
+import com.jiayue.ssi.entity.SysUser;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.User;
+
+/**
+* SecurityContext获取
+*
+* @author xsl
+* @since 2023/03/14
+*/
+public class SecurityContextUtil {
+    /**
+     * 获取当前系统用户
+     * @return
+     */
+    public static SysUser getSysUser(){
+        return  ((SysUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal());
+    }
+}

+ 1 - 1
ui/src/main.js

@@ -134,7 +134,7 @@ Vue.prototype.$axios.interceptors.response.use(
       let data = JSON.parse(decData)
       // if the custom code is not 20000, it is judged as an error.
       //console.log(res.code)
-      if (data.code !== 0) {
+      if (data.code > 1) {
         // alert('准备error输出')
         // Message({
         //   message: data.message || 'Error',

+ 57 - 23
ui/src/views/sysManager/userManager/index.vue

@@ -59,7 +59,6 @@
               plain
               icon="el-icon-edit"
               size="mini"
-              :disabled="single"
               @click="handleUpdate"
             >修改</el-button>
           </el-col>
@@ -69,14 +68,13 @@
               plain
               icon="el-icon-delete"
               size="mini"
-              :disabled="multiple"
               @click="handleDelete"
             >删除</el-button>
           </el-col>
         </el-row>
         <div style="padding-top: 10px">
         <vxe-table
-          ref="userList"
+          ref="userTable"
           align="center"
           :loading="loading"
           class="mytable-style"
@@ -88,7 +86,9 @@
           show-overflow
           max-height="700"
           :data="userList"
+          :radio-config="{trigger: 'row'}"
         >
+          <vxe-column type="radio" width="60"/>
           <vxe-table-column field="username" title="用户账号" />
           <vxe-table-column field="nickname" title="用户姓名" />
           <vxe-table-column field="mailbox" title="邮箱" />
@@ -101,7 +101,7 @@
                               type="text"
                               icon="el-icon-edit"
                               @click="handleResetPwd(scope.row)"
-                            >重置密码并且发送邮箱</el-button>
+                            >初始/重置密码</el-button>
                             <el-button
                               size="mini"
                               type="text"
@@ -240,7 +240,7 @@ export default {
         ],
         nickname: [
           { required: true, message: "用户姓名不能为空", trigger: "blur" },
-          { min: 5, max: 20, message: '用户姓名长度必须介于 5 和 20 之间', trigger: 'blur' }
+          { min: 2, max: 20, message: '用户姓名长度必须介于 2 和 20 之间', trigger: 'blur' }
         ],
         mailbox: [
           { required: true, message: "邮箱不能为空", trigger: "blur" },
@@ -377,13 +377,18 @@ export default {
             //   mailbox: this.form.mailbox
             // }
             this.$axios.post('/sysUserController', this.form).then((res) => {
-              this.$message.success('新增成功')
-              this.open = false;
-              this.reset();
-              this.getList();
+              if (res.code==0){
+                this.$message.success('新增成功')
+                this.open = false;
+                this.reset();
+                this.getList();
+              }
+              if (res.code==1){
+                this.$message.error(res.message)
+              }
               this.loading = false
             }).catch((error) => {
-              console.log(error)
+              this.$message.error(error)
               this.loading = false
             })
           }
@@ -392,7 +397,7 @@ export default {
     },
     /** 重置密码按钮操作 */
     handleResetPwd(row) {
-      this.$confirm('重置密码并发送到邮箱'+row.mailbox, '提示', {
+      this.$confirm('创建密码并发送到邮箱?'+row.mailbox, '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
@@ -404,13 +409,52 @@ export default {
           if (res.code==0){
             this.$message({
               type: 'success',
-              message: '重置并发送成功!'
+              message: '创建并发送成功!'
+            });
+          }
+          else{
+            this.$message({
+              type: 'error',
+              message: '创建密码失败!'
+            });
+          }
+        }).catch((error) => {
+          console.log(error)
+          this.loading = false
+        })
+      }).catch(() => {
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete() {
+      const _selectData = this.$refs.userTable.getRadioRecord(true)
+      if (_selectData == null){
+        this.$message({
+          type: 'warning',
+          message: '请选择记录!'
+        });
+        return
+      }
+      this.$confirm('是否确认删除用户?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        const param = {
+          id: _selectData.id
+        }
+        this.$axios.post('/sysUserController/delUser', param).then((res) => {
+          if (res.code==0){
+            this.$message({
+              type: 'success',
+              message: '删除成功!'
             });
+            this.getList();
           }
           else{
             this.$message({
               type: 'error',
-              message: '重置失败!'
+              message: '删除失败!'
             });
           }
         }).catch((error) => {
@@ -439,16 +483,6 @@ export default {
     handleAuthRole: function(row) {
       const userId = row.userId;
       this.$router.push("/system/user-auth/role/" + userId);
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const userIds = row.userId || this.ids;
-      this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() {
-        return delUser(userIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
     }
   }
 };