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; /** *

* 运维人员 前端控制器 *

* * @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> listByIds(@RequestBody List ids){ return R.ok(xpOperationsUserService.listByIds(ids)); } /** * 根据ID查询运维用户信息 * @return 用户列表 */ @GetMapping("/inner/xpOperationsUser/queryById") R queryById(@RequestParam Long id){ return R.ok(xpOperationsUserService.getById(id)); } /** * 根据昵称查询运维用户信息 * @param nickName 昵称 * @return 运维用户列表 */ @PostMapping("/inner/xpOperationsUser/listByName") public R> listByName(@RequestBody String nickName) { return R.ok(xpOperationsUserService.listByName(nickName)); } /** * 根据用户ID列表批量查询用户及角色信息(内部接口) * @param ids 用户ID列表 * @return 用户及角色信息列表 */ @ApiOperation(value = "批量查询用户及角色信息", tags = {"内部接口"}) @PostMapping("/inner/xpOperationsUser/listByIdsWithRole") public R> listByIdsWithRole(@RequestBody List ids) { if (CollectionUtils.isEmpty(ids)) { return R.ok(new ArrayList<>()); } List result = xpOperationsRoleMapper.selectUsersWithRoleByIds(ids); return R.ok(result); } /** * 根据条件查询用户及角色信息(内部接口) * @param dto 查询条件 * @return 用户及角色信息列表 */ @ApiOperation(value = "根据条件查询用户及角色信息", tags = {"内部接口"}) @PostMapping("/inner/xpOperationsUser/queryByConditions") public R> queryByConditions(@RequestBody XpOperationsUserQueryDTO dto) { List 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> getList(@RequestBody XpOperationsUserPageQuery query) { return R.ok(xpOperationsUserService.selectUserPageByConditions(query)); } /** * 获取运维人员个人中心首页信息 * * @return 个人中心首页信息 */ @ApiOperation(value = "获取个人中心首页信息", tags = {"运维APP-个人中心"}) @GetMapping("/api/v1/userInfo") public R getProfile() { // 通过TokenService获取当前登录用户ID Long currentUserId = tokenService.getLoginOperationUser().getId(); // 查询个人中心信息 XpOperationsUserProfileVO profile = xpOperationsUserService.getUserProfile(currentUserId); return R.ok(profile); } }