From 2038c219f1992793eec633da8fff936d17ab1112 Mon Sep 17 00:00:00 2001 From: chenxiky <2868613334@qq.com> Date: Sun, 27 Jul 2025 17:39:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E7=AE=A1=E7=90=86=EF=BC=88key,value=EF=BC=89?= =?UTF-8?q?,=E8=BF=94=E5=9B=9E=E5=BF=85=E8=A6=81=E5=80=BC=E5=8D=B3?= =?UTF-8?q?=E5=8F=AF=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/KeyValueEntityController.java | 62 +++++++++ .../system/domain/vo/KeyValueEntity.java | 31 +++++ .../system/service/KeyValueEntityService.java | 35 +++++ .../impl/KeyValueEntityServiceImpl.java | 130 ++++++++++++++++++ 4 files changed, 258 insertions(+) create mode 100644 aircraft-system/src/main/java/com/aircraft/modules/system/controller/KeyValueEntityController.java create mode 100644 aircraft-system/src/main/java/com/aircraft/modules/system/domain/vo/KeyValueEntity.java create mode 100644 aircraft-system/src/main/java/com/aircraft/modules/system/service/KeyValueEntityService.java create mode 100644 aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/KeyValueEntityServiceImpl.java diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/controller/KeyValueEntityController.java b/aircraft-system/src/main/java/com/aircraft/modules/system/controller/KeyValueEntityController.java new file mode 100644 index 0000000..efa638d --- /dev/null +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/controller/KeyValueEntityController.java @@ -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> obtainUserListByType( + @ApiParam(value = "用户类型(后台用户=0,飞行端用户=1,客户端用户=2)", required = true, example = "0") + @PathVariable Integer userType) { + List keyValueEntityList = keyValueEntityService.obtainUserListByType(userType); + return ResponseEntity.ok(keyValueEntityList); + } + + /** + * 获取景区下拉值 + */ + @ApiOperation(value = "获取景区下拉值") + @AnonymousPostMapping("/obtainScenicList") + public ResponseEntity> obtainScenicList() { + List keyValueEntityList = keyValueEntityService.obtainScenicList(); + return ResponseEntity.ok(keyValueEntityList); + } + + /** + * 获取设备下拉列表 + */ + @ApiOperation(value = "获取设备下拉列表") + @AnonymousPostMapping("/obtainDeviceList") + public ResponseEntity> obtainDeviceList() { + List keyValueEntityList = keyValueEntityService.obtainDeviceList(); + return ResponseEntity.ok(keyValueEntityList); + } + +} diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/domain/vo/KeyValueEntity.java b/aircraft-system/src/main/java/com/aircraft/modules/system/domain/vo/KeyValueEntity.java new file mode 100644 index 0000000..e270e13 --- /dev/null +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/domain/vo/KeyValueEntity.java @@ -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; +} \ No newline at end of file diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/service/KeyValueEntityService.java b/aircraft-system/src/main/java/com/aircraft/modules/system/service/KeyValueEntityService.java new file mode 100644 index 0000000..79fa443 --- /dev/null +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/service/KeyValueEntityService.java @@ -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 + */ + List obtainUserListByType(Integer userType); + + /** + * 获取景区下列值 + * + * @return List + */ + List obtainScenicList(); + + /** + * 获取设备下拉列表 + * + * @return List + */ + List obtainDeviceList(); +} diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/KeyValueEntityServiceImpl.java b/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/KeyValueEntityServiceImpl.java new file mode 100644 index 0000000..089b3c1 --- /dev/null +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/KeyValueEntityServiceImpl.java @@ -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 obtainUserListByType(Integer userType) { + // 获取用户列表校验 + UserTypeEnum userTypeEnum = UserTypeEnum.getByValue(userType); + if (userTypeEnum == null) { + throw new BadRequestException("用户类型错误"); + } + List 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 obtainScenicList() { + List 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 obtainDeviceList() { + List 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 + */ + private List obtainCustomerUserList() { + List 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 + */ + private List obtainEmployeesUserList() { + List 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 + */ + private List obtainAdminUserList() { + List 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()); + } + +}