diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/UserController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/UserController.java index 198dcbd..b2ee47e 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/UserController.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/UserController.java @@ -13,6 +13,7 @@ import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.xq.domain.User; +import com.ruoyi.xq.dto.admin.user.FullUserVo; import com.ruoyi.xq.dto.admin.user.UserAdminVo; import com.ruoyi.xq.dto.admin.user.req.ResetPasswordAdminReq; import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq; @@ -55,6 +56,14 @@ public class UserController extends BaseController { return TableDataInfo.build(page); } + + @SaCheckPermission("xq:user:list") + @GetMapping("/fullUser") + public R fullUser(Long userId) { + FullUserVo vo = userService.fullUserAdmin(userId); + return R.ok(vo); + } + @GetMapping("/getByUsercode") public R getByUsercode(String usercode){ return R.ok(userService.getByUsercode(usercode)); @@ -122,6 +131,24 @@ public class UserController extends BaseController { return R.ok(); } + @PostMapping("/lock") + @SaCheckPermission("xq:user:lock") + @Log(title = "封禁用户", businessType = BusinessType.UPDATE) + public R lock(@RequestBody IdReq res){ + userService.lock(res.getId()); + return R.ok(); + } + + + @PostMapping("/unlock") + @SaCheckPermission("xq:user:unlock") + @Log(title = "解封用户", businessType = BusinessType.UPDATE) + public R unlock(@RequestBody IdReq res){ + userService.unlock(res.getId()); + return R.ok(); + } + + /** * 获取用户管理详细信息 diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/user/FullUserVo.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/user/FullUserVo.java new file mode 100644 index 0000000..77ed295 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/user/FullUserVo.java @@ -0,0 +1,15 @@ +package com.ruoyi.xq.dto.admin.user; + +import com.ruoyi.xq.domain.*; +import lombok.Data; + +import java.util.List; + +@Data +public class FullUserVo { + private User user; + private UserInfo userInfo; + private UserAuth userAuth; + private UserLogin userLogin; + private List userPicturesList; +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/user/UserAdminVo.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/user/UserAdminVo.java index 44d417a..e2ef847 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/user/UserAdminVo.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/admin/user/UserAdminVo.java @@ -3,9 +3,20 @@ package com.ruoyi.xq.dto.admin.user; import com.ruoyi.xq.domain.User; import lombok.Data; +import java.time.LocalDateTime; + @Data public class UserAdminVo extends User { private Long inviteId; private String inviteNickname; private String inviteUsercode; + /** + * 最后登录IP + */ + private String lastLoginIp; + /** + * 最后登陆时间 + */ + private LocalDateTime lastLoginTime; + private LocalDateTime regTime; } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserLoginService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserLoginService.java index d1f79cb..f348577 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserLoginService.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserLoginService.java @@ -11,4 +11,5 @@ import com.ruoyi.xq.domain.UserLogin; */ public interface UserLoginService extends IService { + UserLogin getByUserId(Long userId); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserService.java index 6e0ac4d..87fcff1 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserService.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.xq.domain.User; +import com.ruoyi.xq.dto.admin.user.FullUserVo; import com.ruoyi.xq.dto.admin.user.UserAdminVo; import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq; import com.ruoyi.xq.dto.app.user.HomePageReq; @@ -43,4 +44,9 @@ public interface UserService extends IService { List vipHomePage(); + boolean lock(Long id); + + boolean unlock(Long id); + + FullUserVo fullUserAdmin(Long userId); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserLoginServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserLoginServiceImpl.java index 5459cf8..d46b4e9 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserLoginServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserLoginServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.xq.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.xq.domain.UserLogin; import com.ruoyi.xq.mapper.UserLoginMapper; @@ -17,4 +18,8 @@ import org.springframework.stereotype.Service; @Service public class UserLoginServiceImpl extends ServiceImpl implements UserLoginService { + @Override + public UserLogin getByUserId(Long userId) { + return this.getOne(Wrappers.lambdaQuery(UserLogin.class).eq(UserLogin::getUserId, userId).last("limit 1")); + } } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java index f532065..8446427 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java @@ -12,9 +12,9 @@ import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.BeanConvertUtil; import com.ruoyi.xq.domain.*; +import com.ruoyi.xq.dto.admin.user.FullUserVo; import com.ruoyi.xq.dto.admin.user.UserAdminVo; import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq; -import com.ruoyi.xq.dto.app.auth.LoginUser; import com.ruoyi.xq.dto.app.user.HomePageReq; import com.ruoyi.xq.dto.app.user.vo.HomeUserListVo; import com.ruoyi.xq.dto.app.user.vo.HomeUserVo; @@ -54,6 +54,8 @@ import java.util.stream.Collectors; public class UserServiceImpl extends ServiceImpl implements UserService { @Autowired private UserInfoService userInfoService; + @Autowired + private UserLoginService userLoginService; @Resource private ImUserRefClient userRefClient; @Autowired @@ -264,4 +266,30 @@ public class UserServiceImpl extends ServiceImpl implements Use } return null; } + + @Override + public boolean lock(Long id) { + return this.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,id).set(User::getStatus, 1)); + } + + @Override + public boolean unlock(Long id) { + return this.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,id).set(User::getStatus, 0)); + } + + @Override + public FullUserVo fullUserAdmin(Long userId) { + FullUserVo vo = new FullUserVo(); + User user = this.getById(userId); + vo.setUser(user); + UserInfo userInfo = userInfoService.getByUserId(userId); + vo.setUserInfo(userInfo); + UserAuth userAuth = userAuthService.getByUserId(userId); + vo.setUserAuth(userAuth); + UserLogin userLogin = userLoginService.getByUserId(userId); + vo.setUserLogin(userLogin); + List userPicturesList = userPicturesService.listByUserIdSuccess(userId); + vo.setUserPicturesList(userPicturesList); + return vo; + } } diff --git a/ruoyi-xq/src/main/resources/mapper/xq/UserMapper.xml b/ruoyi-xq/src/main/resources/mapper/xq/UserMapper.xml index 532f888..a6d48b8 100644 --- a/ruoyi-xq/src/main/resources/mapper/xq/UserMapper.xml +++ b/ruoyi-xq/src/main/resources/mapper/xq/UserMapper.xml @@ -4,9 +4,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">