feat:新增数据下拉管理(key,value),返回必要值即可;

This commit is contained in:
chenxiky 2025-07-27 17:39:48 +08:00
parent 9c278649e1
commit 2038c219f1
4 changed files with 258 additions and 0 deletions

View File

@ -0,0 +1,62 @@
package com.aircraft.modules.system.controller;
import com.aircraft.annotation.rest.AnonymousPostMapping;
import com.aircraft.modules.system.domain.vo.KeyValueEntity;
import com.aircraft.modules.system.service.KeyValueEntityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* 数据下拉管理控制层
*
* @author chenxiky
* @version 1.0.0
* @since 2025/7/27
*/
@RestController
@RequestMapping("/api/dataDropdown")
@Api(tags = "数据下拉管理")
public class KeyValueEntityController {
@Resource
private KeyValueEntityService keyValueEntityService;
@ApiOperation(value = "获取用户名称下拉-根据不同类型获取")
@AnonymousPostMapping("/obtainUserListByType/{userType}")
public ResponseEntity<List<KeyValueEntity>> obtainUserListByType(
@ApiParam(value = "用户类型(后台用户=0飞行端用户=1客户端用户=2)", required = true, example = "0")
@PathVariable Integer userType) {
List<KeyValueEntity> keyValueEntityList = keyValueEntityService.obtainUserListByType(userType);
return ResponseEntity.ok(keyValueEntityList);
}
/**
* 获取景区下拉值
*/
@ApiOperation(value = "获取景区下拉值")
@AnonymousPostMapping("/obtainScenicList")
public ResponseEntity<List<KeyValueEntity>> obtainScenicList() {
List<KeyValueEntity> keyValueEntityList = keyValueEntityService.obtainScenicList();
return ResponseEntity.ok(keyValueEntityList);
}
/**
* 获取设备下拉列表
*/
@ApiOperation(value = "获取设备下拉列表")
@AnonymousPostMapping("/obtainDeviceList")
public ResponseEntity<List<KeyValueEntity>> obtainDeviceList() {
List<KeyValueEntity> keyValueEntityList = keyValueEntityService.obtainDeviceList();
return ResponseEntity.ok(keyValueEntityList);
}
}

View File

@ -0,0 +1,31 @@
package com.aircraft.modules.system.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
/**
*
* 返回枚举下拉值
*
* @author chenxiky
* @version 1.0.0
* @since 2025/7/27
*/
@Data
@Builder
public class KeyValueEntity implements Serializable {
/**
* 主键ID
*/
@ApiModelProperty(value = "主键ID")
public Long key;
/**
* 中文值名称
*/
@ApiModelProperty(value = "中文值")
public String value;
}

View File

@ -0,0 +1,35 @@
package com.aircraft.modules.system.service;
import com.aircraft.modules.system.domain.vo.KeyValueEntity;
import java.util.List;
/**
* @author chenxiky
* @version 1.0.0
* @since 2025/7/27
*/
public interface KeyValueEntityService {
/**
* 根据不同的业务类型获取不同的用户下拉
*
* @param userType 用户类型
* @return List<KeyValueEntity>
*/
List<KeyValueEntity> obtainUserListByType(Integer userType);
/**
* 获取景区下列值
*
* @return List<KeyValueEntity>
*/
List<KeyValueEntity> obtainScenicList();
/**
* 获取设备下拉列表
*
* @return List<KeyValueEntity>
*/
List<KeyValueEntity> obtainDeviceList();
}

View File

@ -0,0 +1,130 @@
package com.aircraft.modules.system.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.aircraft.exception.BadRequestException;
import com.aircraft.modules.aircraft.domain.AircraftDevice;
import com.aircraft.modules.aircraft.service.AircraftDeviceService;
import com.aircraft.modules.system.domain.CnCustomer;
import com.aircraft.modules.system.domain.EmEmployees;
import com.aircraft.modules.system.domain.EmScenic;
import com.aircraft.modules.system.domain.User;
import com.aircraft.modules.system.domain.vo.KeyValueEntity;
import com.aircraft.modules.system.service.*;
import com.aircraft.utils.enums.UserTypeEnum;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author chenxiky
* @version 1.0.0
* @since 2025/7/27
*/
@Service
public class KeyValueEntityServiceImpl implements KeyValueEntityService {
@Resource
private UserService userService;
@Resource
private CnCustomerService customerService;
@Resource
private EmEmployeesService employeesService;
@Resource
private EmScenicService scenicService;
@Resource
private AircraftDeviceService deviceService;
@Override
public List<KeyValueEntity> obtainUserListByType(Integer userType) {
// 获取用户列表校验
UserTypeEnum userTypeEnum = UserTypeEnum.getByValue(userType);
if (userTypeEnum == null) {
throw new BadRequestException("用户类型错误");
}
List<KeyValueEntity> keyValueEntityList = new ArrayList<>();
switch (userTypeEnum) {
case ADMIN:
keyValueEntityList = obtainAdminUserList();
break;
case EMPLOYEES:
keyValueEntityList = obtainEmployeesUserList();
break;
case CUSTOMER:
keyValueEntityList = obtainCustomerUserList();
break;
default:
break;
}
return keyValueEntityList;
}
@Override
public List<KeyValueEntity> obtainScenicList() {
List<EmScenic> list = scenicService.list(Wrappers.lambdaQuery(EmScenic.class).select(EmScenic::getId, EmScenic::getName).orderByAsc(EmScenic::getId));
if (CollectionUtil.isEmpty( list)) {
return new ArrayList<>();
}
return list.stream().map(employees -> KeyValueEntity.builder().key(employees.getId()).value(employees.getName())
.build()).collect(Collectors.toList());
}
@Override
public List<KeyValueEntity> obtainDeviceList() {
List<AircraftDevice> list = deviceService.list(Wrappers.lambdaQuery(AircraftDevice.class)
.select(AircraftDevice::getId, AircraftDevice::getName).orderByAsc(AircraftDevice::getId));
if (CollectionUtil.isEmpty( list)) {
return new ArrayList<>();
}
return list.stream().map(device -> KeyValueEntity.builder().key(device.getId()).value(device.getName()).build()).collect(Collectors.toList());
}
/**
* 获取用户列表
*
* @return List<KeyValueEntity>
*/
private List<KeyValueEntity> obtainCustomerUserList() {
List<CnCustomer> list = customerService.list(Wrappers.lambdaQuery(CnCustomer.class)
.select(CnCustomer::getId, CnCustomer::getName).orderByAsc(CnCustomer::getId));
if (CollectionUtil.isEmpty( list)){
return new ArrayList<>();
}
return list.stream().map(customer -> KeyValueEntity.builder().key(customer.getId()).value(customer.getName()).build())
.collect(Collectors.toList());
}
/**
* 获取飞行员端用户列表
*
* @return List<KeyValueEntity>
*/
private List<KeyValueEntity> obtainEmployeesUserList() {
List<EmEmployees> list = employeesService.list(Wrappers.lambdaQuery(EmEmployees.class)
.select(EmEmployees::getId, EmEmployees::getName).orderByAsc(EmEmployees::getId));
if (CollectionUtil.isEmpty( list)){
return new ArrayList<>();
}
return list.stream().map(employees -> KeyValueEntity.builder().key(employees.getId()).value(employees.getName()).build())
.collect(Collectors.toList());
}
/**
* 后台端用户下拉值
*
* @return List<KeyValueEntity>
*/
private List<KeyValueEntity> obtainAdminUserList() {
List<User> list = userService.list(Wrappers.lambdaQuery(User.class).select(User::getId, User::getNickName).orderByAsc(User::getId));
if (CollectionUtil.isEmpty( list)) {
return new ArrayList<>();
}
return list.stream().map(user -> KeyValueEntity.builder().key(user.getId()).value(user.getNickName()).build())
.collect(Collectors.toList());
}
}