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.XpOperationsUserWithRoleVO;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.page.PageInfo;
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;
@Autowired
public XpOperationsUserController(IXpOperationsUserService xpOperationsUserService, XpOperationsRoleMapper xpOperationsRoleMapper) {
this.xpOperationsUserService = xpOperationsUserService;
this.xpOperationsRoleMapper = xpOperationsRoleMapper;
}
/**
* 根据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(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));
}
}