package com.xiaopeng.account.controller;
|
|
|
import com.xiaopeng.account.mapper.XpOperationsRoleMapper;
|
import com.xiaopeng.account.model.query.XpOperationsUserPageQuery;
|
import com.xiaopeng.account.service.IXpOperationsUserService;
|
import com.xiaopeng.api.dto.account.XpOperationsUserQueryDTO;
|
import com.xiaopeng.api.model.account.XpOperationsUser;
|
import com.xiaopeng.api.vo.account.XpOperationsUserProfileVO;
|
import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.common.security.service.TokenService;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 运维人员 前端控制器
|
* </p>
|
*
|
* @author mitao
|
* @since 2026-02-03
|
*/
|
@RestController
|
@RequestMapping("")
|
public class XpOperationsUserController {
|
|
private final IXpOperationsUserService xpOperationsUserService;
|
|
private final XpOperationsRoleMapper xpOperationsRoleMapper;
|
|
private final TokenService tokenService;
|
|
@Autowired
|
public XpOperationsUserController(IXpOperationsUserService xpOperationsUserService, XpOperationsRoleMapper xpOperationsRoleMapper, TokenService tokenService) {
|
this.xpOperationsUserService = xpOperationsUserService;
|
this.xpOperationsRoleMapper = xpOperationsRoleMapper;
|
this.tokenService = tokenService;
|
}
|
|
/**
|
* 根据ID列表批量查询运维用户信息
|
* @param ids 用户ID列表
|
* @return 用户列表
|
*/
|
@PostMapping("/inner/xpOperationsUser/listByIds")
|
public R<List<XpOperationsUser>> listByIds(@RequestBody List<Long> ids){
|
return R.ok(xpOperationsUserService.listByIds(ids));
|
}
|
/**
|
* 根据ID查询运维用户信息
|
* @return 用户列表
|
*/
|
@GetMapping("/inner/xpOperationsUser/queryById")
|
R<XpOperationsUser> queryById(@RequestParam Long id){
|
return R.ok(xpOperationsUserService.getById(id));
|
}
|
|
/**
|
* 根据昵称查询运维用户信息
|
* @param nickName 昵称
|
* @return 运维用户列表
|
*/
|
@PostMapping("/inner/xpOperationsUser/listByName")
|
public R<List<XpOperationsUser>> listByName(@RequestBody String nickName) {
|
return R.ok(xpOperationsUserService.listByName(nickName));
|
}
|
|
/**
|
* 根据用户ID列表批量查询用户及角色信息(内部接口)
|
* @param ids 用户ID列表
|
* @return 用户及角色信息列表
|
*/
|
@ApiOperation(value = "批量查询用户及角色信息", tags = {"内部接口"})
|
@PostMapping("/inner/xpOperationsUser/listByIdsWithRole")
|
public R<List<XpOperationsUserWithRoleVO>> listByIdsWithRole(@RequestBody List<Long> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return R.ok(new ArrayList<>());
|
}
|
List<XpOperationsUserWithRoleVO> result = xpOperationsRoleMapper.selectUsersWithRoleByIds(ids);
|
return R.ok(result);
|
}
|
|
/**
|
* 根据条件查询用户及角色信息(内部接口)
|
* @param dto 查询条件
|
* @return 用户及角色信息列表
|
*/
|
@ApiOperation(value = "根据条件查询用户及角色信息", tags = {"内部接口"})
|
@PostMapping("/inner/xpOperationsUser/queryByConditions")
|
public R<List<XpOperationsUserWithRoleVO>> queryByConditions(@RequestBody XpOperationsUserQueryDTO dto) {
|
List<XpOperationsUserWithRoleVO> result = xpOperationsRoleMapper.selectUsersByConditions(
|
dto.getNickName(),
|
dto.getPhoneNumber(),
|
dto.getRoleId()
|
);
|
return R.ok(result);
|
}
|
|
/**
|
* 根据条件查询用户及角色信息
|
* @param query 查询条件
|
* @return 用户及角色信息列表
|
*/
|
@ApiOperation(value = "根据条件查询用户分页列表", tags = {"管理后台-车队管理"})
|
@PostMapping("/api/v1/xpOperationsUser/queryByConditions")
|
public R<PageInfo<XpOperationsUserWithRoleVO>> getList(@RequestBody XpOperationsUserPageQuery query) {
|
return R.ok(xpOperationsUserService.selectUserPageByConditions(query));
|
}
|
|
/**
|
* 获取运维人员个人中心首页信息
|
*
|
* @return 个人中心首页信息
|
*/
|
@ApiOperation(value = "获取个人中心首页信息", tags = {"运维APP-个人中心"})
|
@GetMapping("/api/v1/userInfo")
|
public R<XpOperationsUserProfileVO> getProfile() {
|
// 通过TokenService获取当前登录用户ID
|
Long currentUserId = tokenService.getLoginOperationUser().getId();
|
|
// 查询个人中心信息
|
XpOperationsUserProfileVO profile = xpOperationsUserService.getUserProfile(currentUserId);
|
|
return R.ok(profile);
|
}
|
}
|