Ver código fonte

增加用户解锁和定时锁定

xusl 2 anos atrás
pai
commit
9900689e22

+ 39 - 0
backend/src/main/java/com/jiayue/ssi/controller/SysUserController.java

@@ -271,6 +271,11 @@ public class SysUserController {
         if (StringUtils.isEmpty(id)) {
             return ResponseVO.fail("id不能为空!");
         }
+        // id获取用户
+        SysUser sysUser = sysUserService.getById(id);
+        if (sysUser == null) {
+            return ResponseVO.fail("不能删除用户!");
+        }
         try {
             boolean bo = sysUserService.removeUserById(Integer.parseInt(id));
             if (bo) {
@@ -340,4 +345,38 @@ public class SysUserController {
         }
         return ResponseVO.success();
     }
+
+    /**
+     * 解锁用户信息
+     */
+    @PostMapping(value = "/relockUser")
+    @InterfaceLimit
+    @OperateLog(title = "用户管理", businessType = BusinessType.OTHER)
+    @PreAuthorize("@ss.hasPermi('system:user:relock')")
+    public ResponseVO relockUser(String id) {
+        if (StringUtils.isEmpty(id)) {
+            return ResponseVO.fail("id不能为空!");
+        }
+        // id获取用户
+        SysUser sysUser = sysUserService.getById(id);
+        if (sysUser == null) {
+            return ResponseVO.fail("不能解锁用户!");
+        }
+        if (!"1".equals(sysUser.getStatus())) {
+            return ResponseVO.fail("只能对【锁定】状态的进行解锁!");
+        }
+        try {
+            boolean bo = sysUserService.relockUserById(Integer.parseInt(id));
+            if (bo) {
+                return ResponseVO.success("解锁成功");
+            } else {
+                log.error("解锁失败");
+                return ResponseVO.fail("解锁失败");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("解锁异常");
+            return ResponseVO.error(e);
+        }
+    }
 }

+ 2 - 2
backend/src/main/java/com/jiayue/ssi/job/AutoScanAccount.java

@@ -41,10 +41,10 @@ public class AutoScanAccount {
             for (SysUser sysUser:sysUsers){
                 Calendar calendar = Calendar.getInstance();
                 if (sysUser.getLoginDate()==null){
-                    calendar.setTime(sysUser.getLoginDate());
+                    calendar.setTime(sysUser.getCreateTime());
                 }
                 else{
-                    calendar.setTime(sysUser.getCreateTime());
+                    calendar.setTime(sysUser.getLoginDate());
                 }
                 calendar.add(Calendar.MONTH, autoScanAccount);
                 if (calendar.getTimeInMillis()<System.currentTimeMillis()){

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

@@ -58,4 +58,10 @@ public interface SysUserService extends IService<SysUser> {
      * @return
      */
     boolean resetPassword(Integer id,String initPassword);
+    /**
+     * 解锁用户
+     * @param id
+     * @return
+     */
+    boolean relockUserById(Integer id);
 }

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

@@ -112,4 +112,19 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
         return false;
     }
+    /**
+     * 解锁用户
+     * @param id
+     * @return
+     */
+    @Override
+    public boolean relockUserById(Integer id) {
+        LambdaUpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<SysUser>().lambda();
+        updateWrapper.eq(SysUser::getId, id).set(SysUser::getStatus, 0);
+        int count = sysUserMapper.update(new SysUser(), updateWrapper);
+        if (count > 0) {
+            return true;
+        }
+        return false;
+    }
 }

+ 67 - 0
ui/src/views/sysManager/userManager/index.vue

@@ -78,6 +78,17 @@
             >删除
             </el-button>
           </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="success"
+              plain
+              icon="el-icon-unlock"
+              size="mini"
+              @click="handleRelock"
+              v-hasPermi="['system:user:relock']"
+            >解锁
+            </el-button>
+          </el-col>
         </el-row>
         <div style="padding-top: 10px">
           <vxe-table
@@ -503,6 +514,62 @@ export default {
       this.title = "修改用户";
       this.edit=true;
     },
+    /** 解锁按钮操作 */
+    handleRelock(){
+      const _selectData = this.$refs.userTable.getRadioRecord(true)
+      if (_selectData == null) {
+        this.$message({
+          type: 'warning',
+          message: '请选择记录!'
+        });
+        return
+      }
+      if (_selectData.status!=='1') {
+        this.$message({
+          type: 'warning',
+          message: '只能对【锁定】状态的进行解锁!'
+        });
+        return
+      }
+      this.$confirm('是否解锁用户?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.doRelock(_selectData)
+      }).catch(() => {
+      });
+    },
+    /**
+     * 删除提交
+     */
+    doRelock:debounce(function(_selectData){
+      const param = {
+        id: _selectData.id
+      }
+      this.$axios.post('/sysUserController/relockUser', param).then((res) => {
+        if (res.code == 0) {
+          this.$message({
+            type: 'success',
+            message: '解锁成功!'
+          });
+          this.getList();
+        } else {
+          this.$message({
+            type: 'error',
+            message: res.data
+          });
+        }
+      }).catch((error) => {
+        this.$message({
+          type: 'error',
+          message: '解锁失败!'
+        });
+        console.log(error)
+        this.loading = false
+      })
+    },1000),
+
     /** 分配角色操作 */
     handleAuthRole: function (row) {
       const userId = row.userId;