| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package jnpf.base.controller;
- import cn.dev33.satoken.annotation.SaCheckPermission;
- import cn.dev33.satoken.annotation.SaMode;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.Parameter;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import jnpf.base.ActionResult;
- import jnpf.base.Pagination;
- import jnpf.base.model.online.BatchOnlineModel;
- import jnpf.base.service.UserOnlineService;
- import jnpf.base.vo.PageListVO;
- import jnpf.base.vo.PaginationVO;
- import jnpf.constant.MsgCode;
- import jnpf.message.model.UserOnlineModel;
- import jnpf.message.model.UserOnlineVO;
- import jnpf.util.JsonUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * 在线用户
- *
- * @author JNPF开发平台组
- * @version V3.1.0
- * @copyright 引迈信息技术有限公司
- * @date 2019年9月26日 上午9:18
- */
- @Tag(name = "在线用户", description = "Online")
- @RestController
- @RequestMapping("/api/system/OnlineUser")
- public class UserOnlineController {
- @Autowired
- private UserOnlineService userOnlineService;
- /**
- * 列表
- *
- * @param page 分页参数
- * @return ignore
- */
- @Operation(summary = "获取在线用户列表")
- @SaCheckPermission(value = {"permission.userOnline", "monitor.userOnline"}, mode = SaMode.OR)
- @GetMapping
- public ActionResult<PageListVO<UserOnlineVO>> list(Pagination page) {
- List<UserOnlineModel> data = userOnlineService.getList(page);
- List<UserOnlineVO> voList = data.stream().map(online -> {
- UserOnlineVO vo = JsonUtil.getJsonToBean(online, UserOnlineVO.class);
- vo.setUserId(online.getToken());
- //vo.setUserName(vo.getUserName() + "/" + online.getDevice());
- return vo;
- }).collect(Collectors.toList());
- PaginationVO paginationVO = JsonUtil.getJsonToBean(page, PaginationVO.class);
- return ActionResult.page(voList, paginationVO);
- }
- /**
- * 注销
- *
- * @param token 主键值
- * @return
- */
- @Operation(summary = "强制下线")
- @Parameter(name = "token", description = "token", required = true)
- @SaCheckPermission("permission.userOnline")
- @DeleteMapping("/{token}")
- public ActionResult delete(@PathVariable("token") String token) {
- userOnlineService.delete(token);
- return ActionResult.success(MsgCode.SU005.get());
- }
- /**
- * 批量下线用户
- *
- * @param model 主键值
- * @return ignore
- */
- @Operation(summary = "批量下线用户")
- @Parameter(name = "model", description = "在线用户id集合", required = true)
- @SaCheckPermission("permission.userOnline")
- @DeleteMapping
- public ActionResult clear(@RequestBody BatchOnlineModel model) {
- userOnlineService.delete(model.getIds());
- return ActionResult.success(MsgCode.SU005.get());
- }
- }
|