作者 RuoYi

登录日志新增解锁账户功能

@@ -16,6 +16,7 @@ import com.ruoyi.common.core.domain.AjaxResult; @@ -16,6 +16,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
16 import com.ruoyi.common.core.page.TableDataInfo; 16 import com.ruoyi.common.core.page.TableDataInfo;
17 import com.ruoyi.common.enums.BusinessType; 17 import com.ruoyi.common.enums.BusinessType;
18 import com.ruoyi.common.utils.poi.ExcelUtil; 18 import com.ruoyi.common.utils.poi.ExcelUtil;
  19 +import com.ruoyi.framework.web.service.SysPasswordService;
19 import com.ruoyi.system.domain.SysLogininfor; 20 import com.ruoyi.system.domain.SysLogininfor;
20 import com.ruoyi.system.service.ISysLogininforService; 21 import com.ruoyi.system.service.ISysLogininforService;
21 22
@@ -31,6 +32,9 @@ public class SysLogininforController extends BaseController @@ -31,6 +32,9 @@ public class SysLogininforController extends BaseController
31 @Autowired 32 @Autowired
32 private ISysLogininforService logininforService; 33 private ISysLogininforService logininforService;
33 34
  35 + @Autowired
  36 + private SysPasswordService passwordService;
  37 +
34 @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')") 38 @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')")
35 @GetMapping("/list") 39 @GetMapping("/list")
36 public TableDataInfo list(SysLogininfor logininfor) 40 public TableDataInfo list(SysLogininfor logininfor)
@@ -64,6 +68,15 @@ public class SysLogininforController extends BaseController @@ -64,6 +68,15 @@ public class SysLogininforController extends BaseController
64 public AjaxResult clean() 68 public AjaxResult clean()
65 { 69 {
66 logininforService.cleanLogininfor(); 70 logininforService.cleanLogininfor();
67 - return AjaxResult.success(); 71 + return success();
  72 + }
  73 +
  74 + @PreAuthorize("@ss.hasPermi('monitor:logininfor:unlock')")
  75 + @Log(title = "账户解锁", businessType = BusinessType.OTHER)
  76 + @GetMapping("/unlock//{userName}")
  77 + public AjaxResult unlock(@PathVariable("userName") String userName)
  78 + {
  79 + passwordService.clearLoginRecordCache(userName);
  80 + return success();
68 } 81 }
69 } 82 }
@@ -17,6 +17,14 @@ export function delLogininfor(infoId) { @@ -17,6 +17,14 @@ export function delLogininfor(infoId) {
17 }) 17 })
18 } 18 }
19 19
  20 +// 解锁用户登录状态
  21 +export function unlockLogininfor(userName) {
  22 + return request({
  23 + url: '/monitor/logininfor/unlock/' + userName,
  24 + method: 'get'
  25 + })
  26 +}
  27 +
20 // 清空登录日志 28 // 清空登录日志
21 export function cleanLogininfor() { 29 export function cleanLogininfor() {
22 return request({ 30 return request({
@@ -75,6 +75,17 @@ @@ -75,6 +75,17 @@
75 </el-col> 75 </el-col>
76 <el-col :span="1.5"> 76 <el-col :span="1.5">
77 <el-button 77 <el-button
  78 + type="primary"
  79 + plain
  80 + icon="el-icon-unlock"
  81 + size="mini"
  82 + :disabled="single"
  83 + @click="handleUnlock"
  84 + v-hasPermi="['monitor:logininfor:unlock']"
  85 + >解锁</el-button>
  86 + </el-col>
  87 + <el-col :span="1.5">
  88 + <el-button
78 type="warning" 89 type="warning"
79 plain 90 plain
80 icon="el-icon-download" 91 icon="el-icon-download"
@@ -118,7 +129,7 @@ @@ -118,7 +129,7 @@
118 </template> 129 </template>
119 130
120 <script> 131 <script>
121 -import { list, delLogininfor, cleanLogininfor } from "@/api/monitor/logininfor"; 132 +import { list, delLogininfor, cleanLogininfor, unlockLogininfor } from "@/api/monitor/logininfor";
122 133
123 export default { 134 export default {
124 name: "Logininfor", 135 name: "Logininfor",
@@ -129,8 +140,12 @@ export default { @@ -129,8 +140,12 @@ export default {
129 loading: true, 140 loading: true,
130 // 选中数组 141 // 选中数组
131 ids: [], 142 ids: [],
  143 + // 非单个禁用
  144 + single: true,
132 // 非多个禁用 145 // 非多个禁用
133 multiple: true, 146 multiple: true,
  147 + // 选择用户名
  148 + selectName: "",
134 // 显示搜索条件 149 // 显示搜索条件
135 showSearch: true, 150 showSearch: true,
136 // 总条数 151 // 总条数
@@ -180,7 +195,9 @@ export default { @@ -180,7 +195,9 @@ export default {
180 /** 多选框选中数据 */ 195 /** 多选框选中数据 */
181 handleSelectionChange(selection) { 196 handleSelectionChange(selection) {
182 this.ids = selection.map(item => item.infoId) 197 this.ids = selection.map(item => item.infoId)
  198 + this.single = selection.length!=1
183 this.multiple = !selection.length 199 this.multiple = !selection.length
  200 + this.selectName = selection.map(item => item.userName);
184 }, 201 },
185 /** 排序触发事件 */ 202 /** 排序触发事件 */
186 handleSortChange(column, prop, order) { 203 handleSortChange(column, prop, order) {
@@ -207,6 +224,15 @@ export default { @@ -207,6 +224,15 @@ export default {
207 this.$modal.msgSuccess("清空成功"); 224 this.$modal.msgSuccess("清空成功");
208 }).catch(() => {}); 225 }).catch(() => {});
209 }, 226 },
  227 + /** 解锁按钮操作 */
  228 + handleUnlock() {
  229 + const username = this.selectName;
  230 + this.$modal.confirm('是否确认解锁用户"' + username + '"数据项?').then(function() {
  231 + return unlockLogininfor(username);
  232 + }).then(() => {
  233 + this.$modal.msgSuccess("用户" + username + "解锁成功");
  234 + }).catch(() => {});
  235 + },
210 /** 导出按钮操作 */ 236 /** 导出按钮操作 */
211 handleExport() { 237 handleExport() {
212 this.download('monitor/logininfor/export', { 238 this.download('monitor/logininfor/export', {
@@ -233,29 +233,30 @@ insert into sys_menu values('1038', '公告删除', '107', '4', '#', '', '', 1, @@ -233,29 +233,30 @@ insert into sys_menu values('1038', '公告删除', '107', '4', '#', '', '', 1,
233 -- 操作日志按钮 233 -- 操作日志按钮
234 insert into sys_menu values('1039', '操作查询', '500', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', sysdate(), '', null, ''); 234 insert into sys_menu values('1039', '操作查询', '500', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', sysdate(), '', null, '');
235 insert into sys_menu values('1040', '操作删除', '500', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', sysdate(), '', null, ''); 235 insert into sys_menu values('1040', '操作删除', '500', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', sysdate(), '', null, '');
236 -insert into sys_menu values('1041', '日志导出', '500', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', sysdate(), '', null, ''); 236 +insert into sys_menu values('1041', '日志导出', '500', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', sysdate(), '', null, '');
237 -- 登录日志按钮 237 -- 登录日志按钮
238 insert into sys_menu values('1042', '登录查询', '501', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', sysdate(), '', null, ''); 238 insert into sys_menu values('1042', '登录查询', '501', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', sysdate(), '', null, '');
239 insert into sys_menu values('1043', '登录删除', '501', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', sysdate(), '', null, ''); 239 insert into sys_menu values('1043', '登录删除', '501', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', sysdate(), '', null, '');
240 insert into sys_menu values('1044', '日志导出', '501', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', sysdate(), '', null, ''); 240 insert into sys_menu values('1044', '日志导出', '501', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', sysdate(), '', null, '');
  241 +insert into sys_menu values('1045', '账户解锁', '501', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:unlock', '#', 'admin', sysdate(), '', null, '');
241 -- 在线用户按钮 242 -- 在线用户按钮
242 -insert into sys_menu values('1045', '在线查询', '109', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', sysdate(), '', null, '');  
243 -insert into sys_menu values('1046', '批量强退', '109', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', sysdate(), '', null, '');  
244 -insert into sys_menu values('1047', '单条强退', '109', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', sysdate(), '', null, ''); 243 +insert into sys_menu values('1046', '在线查询', '109', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', sysdate(), '', null, '');
  244 +insert into sys_menu values('1047', '批量强退', '109', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', sysdate(), '', null, '');
  245 +insert into sys_menu values('1048', '单条强退', '109', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', sysdate(), '', null, '');
245 -- 定时任务按钮 246 -- 定时任务按钮
246 -insert into sys_menu values('1048', '任务查询', '110', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', sysdate(), '', null, '');  
247 -insert into sys_menu values('1049', '任务新增', '110', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', sysdate(), '', null, '');  
248 -insert into sys_menu values('1050', '任务修改', '110', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', sysdate(), '', null, '');  
249 -insert into sys_menu values('1051', '任务删除', '110', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', sysdate(), '', null, '');  
250 -insert into sys_menu values('1052', '状态修改', '110', '5', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', sysdate(), '', null, '');  
251 -insert into sys_menu values('1053', '任务导出', '110', '7', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', sysdate(), '', null, ''); 247 +insert into sys_menu values('1049', '任务查询', '110', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', sysdate(), '', null, '');
  248 +insert into sys_menu values('1050', '任务新增', '110', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', sysdate(), '', null, '');
  249 +insert into sys_menu values('1051', '任务修改', '110', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', sysdate(), '', null, '');
  250 +insert into sys_menu values('1052', '任务删除', '110', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', sysdate(), '', null, '');
  251 +insert into sys_menu values('1053', '状态修改', '110', '5', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', sysdate(), '', null, '');
  252 +insert into sys_menu values('1054', '任务导出', '110', '6', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', sysdate(), '', null, '');
252 -- 代码生成按钮 253 -- 代码生成按钮
253 -insert into sys_menu values('1054', '生成查询', '115', '1', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', sysdate(), '', null, '');  
254 -insert into sys_menu values('1055', '生成修改', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', sysdate(), '', null, '');  
255 -insert into sys_menu values('1056', '生成删除', '115', '3', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', sysdate(), '', null, '');  
256 -insert into sys_menu values('1057', '导入代码', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', sysdate(), '', null, '');  
257 -insert into sys_menu values('1058', '预览代码', '115', '4', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', sysdate(), '', null, '');  
258 -insert into sys_menu values('1059', '生成代码', '115', '5', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', sysdate(), '', null, ''); 254 +insert into sys_menu values('1055', '生成查询', '115', '1', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', sysdate(), '', null, '');
  255 +insert into sys_menu values('1056', '生成修改', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', sysdate(), '', null, '');
  256 +insert into sys_menu values('1057', '生成删除', '115', '3', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', sysdate(), '', null, '');
  257 +insert into sys_menu values('1058', '导入代码', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', sysdate(), '', null, '');
  258 +insert into sys_menu values('1059', '预览代码', '115', '4', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', sysdate(), '', null, '');
  259 +insert into sys_menu values('1060', '生成代码', '115', '5', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', sysdate(), '', null, '');
259 260
260 261
261 -- ---------------------------- 262 -- ----------------------------
@@ -372,6 +373,7 @@ insert into sys_role_menu values ('2', '1056'); @@ -372,6 +373,7 @@ insert into sys_role_menu values ('2', '1056');
372 insert into sys_role_menu values ('2', '1057'); 373 insert into sys_role_menu values ('2', '1057');
373 insert into sys_role_menu values ('2', '1058'); 374 insert into sys_role_menu values ('2', '1058');
374 insert into sys_role_menu values ('2', '1059'); 375 insert into sys_role_menu values ('2', '1059');
  376 +insert into sys_role_menu values ('2', '1060');
375 377
376 -- ---------------------------- 378 -- ----------------------------
377 -- 8、角色和部门关联表 角色1-N部门 379 -- 8、角色和部门关联表 角色1-N部门