package com.sunyard.chsm.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.sunyard.chsm.constant.AuditLogConst; import com.sunyard.chsm.dto.DeviceDTO; import com.sunyard.chsm.dto.ManufacturersDeviceDTO; import com.sunyard.chsm.enums.ManufacturerModelEnum; import com.sunyard.chsm.model.R; import com.sunyard.chsm.service.DeviceService; import com.sunyard.ssp.common.annotation.AuditControllerLog; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * 密码机管理接口 * * @author liulu * @since 2024/10/15 */ @Slf4j @RestController("sp_DeviceController") @RequestMapping("/device") public class DeviceController { @Resource private DeviceService deviceService; @InitBinder public void initBinder(WebDataBinder binder) { binder.setDisallowedFields("qwer"); } /** * 分页查询密码设备列表 * * @param query 查询条件 * @return 分页列表 */ @GetMapping("/pageList") public R> servicePageList(DeviceDTO.Query query) { Page page = deviceService.selectPageList(query); return R.data(page); } /** * 查询未分组设备列表 * * @return 列表 */ @GetMapping("/ungrouped/list") public R> getUngroupedList() { List res = deviceService.getUngroupedList(); return R.data(res); } /** * 查询设备详情 * * @param id id * @return 详情 */ @GetMapping("/detail") public R getById(Long id) { DeviceDTO.Detail res = deviceService.getDetailById(id); return R.data(res); } /** * 查询已适配的厂商设备列表 * * @return 列表 */ @GetMapping("/adapted/list") public R> getAdaptedList() { List manufacturers = Arrays.stream(ManufacturerModelEnum.values()) .collect(Collectors.groupingBy(ManufacturerModelEnum::getManufacturer)) .entrySet().stream() .map(it -> { ManufacturersDeviceDTO adaptedDevices = new ManufacturersDeviceDTO(); adaptedDevices.setCode(it.getKey().getCode()); adaptedDevices.setName(it.getKey().getName()); List modelList = it.getValue().stream().map(it2 -> { ManufacturersDeviceDTO.Model model = new ManufacturersDeviceDTO.Model(); model.setModel(it2.getModel()); model.setName(it2.getName()); return model; }) .collect(Collectors.toList()); adaptedDevices.setModels(modelList); return adaptedDevices; }) .collect(Collectors.toList()); return R.data(manufacturers); } /** * 添加密码设备 * * @param save 参数 * @return id */ @PostMapping @AuditControllerLog(description = "添加密码设备", operateType = AuditLogConst.ADD) public R save(@Valid @RequestBody DeviceDTO.DeviceSave save) { Long id = deviceService.save(save); return R.data(String.valueOf(id)); } /** * 修改密码设备 * * @param update 参数 * @return void */ @PutMapping @AuditControllerLog(description = "修改密码设备", operateType = AuditLogConst.UPDATE) public R update(@Valid @RequestBody DeviceDTO.DeviceSave update) { deviceService.update(update); return R.ok(); } /** * 删除密码设备 * * @param id id * @return void */ @DeleteMapping @AuditControllerLog(description = "删除密码设备", operateType = AuditLogConst.DELETE) public R delete(Long id) { deviceService.delete(id); return R.ok(); } }