package com.zsElectric.boot.app.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zsElectric.boot.app.model.entity.ChargeDevice; import com.zsElectric.boot.app.model.form.ChargeDeviceForm; import com.zsElectric.boot.app.model.query.ChargeDevicePageQuery; import com.zsElectric.boot.app.model.vo.ChargeDevicePageVO; import com.zsElectric.boot.app.service.ChargeDeviceService; import com.zsElectric.boot.common.enums.LogModuleEnum; import com.zsElectric.boot.common.annotation.Log; import com.zsElectric.boot.core.web.PageResult; import com.zsElectric.boot.core.web.Result; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 充电桩信息前端控制器 * * @author boxun * @since 2024-07-29 */ @Tag(name = "充电桩信息接口") @RestController @RequestMapping("/api/v1/app/charge-device") @RequiredArgsConstructor public class ChargeDeviceController { private final ChargeDeviceService chargeDeviceService; @Operation(summary = "充电桩信息分页列表") @GetMapping("/page") @Log(value = "充电桩信息分页列表", module = LogModuleEnum.DEVICE) public PageResult listPagedChargeDevices(ChargeDevicePageQuery queryParams) { IPage result = chargeDeviceService.listPagedChargeDevices(queryParams); return PageResult.success(result); } @Operation(summary = "新增充电桩信息") @PostMapping @PreAuthorize("hasAuthority('app:chargeDevice:add')") @Log(value = "新增充电桩信息", module = LogModuleEnum.DEVICE) public Result saveChargeDevice(@RequestBody @Valid ChargeDeviceForm formData) { boolean result = chargeDeviceService.saveChargeDevice(formData); return Result.judge(result); } @Operation(summary = "充电桩信息表单数据") @GetMapping("/{id}/form") public Result getChargeDeviceForm( @Parameter(description = "充电桩ID") @PathVariable Long id ) { ChargeDeviceForm formData = chargeDeviceService.getChargeDeviceFormData(id); return Result.success(formData); } @Operation(summary = "修改充电桩信息") @PutMapping("/{id}") @PreAuthorize("hasAuthority('app:chargeDevice:edit')") @Log(value = "修改充电桩信息", module = LogModuleEnum.DEVICE) public Result updateChargeDevice( @Parameter(description = "充电桩ID") @PathVariable Long id, @RequestBody @Valid ChargeDeviceForm formData ) { boolean result = chargeDeviceService.updateChargeDevice(id, formData); return Result.judge(result); } @Operation(summary = "删除充电桩信息") @DeleteMapping("/{ids}") @PreAuthorize("hasAuthority('app:chargeDevice:delete')") @Log(value = "删除充电桩信息", module = LogModuleEnum.DEVICE) public Result deleteChargeDevices( @Parameter(description = "充电桩ID,多个以英文逗号(,)分割") @PathVariable String ids ) { boolean result = chargeDeviceService.deleteChargeDevices(ids); return Result.judge(result); } @Operation(summary = "根据充电站ID查询充电桩列表") @GetMapping("/station/{stationId}") public Result> listByStationId( @Parameter(description = "充电站ID") @PathVariable Long stationId ) { List list = chargeDeviceService.listByStationId(stationId); return Result.success(list); } @Operation(summary = "更新充电桩状态") @PutMapping("/{id}/status/{status}") @PreAuthorize("hasAuthority('app:chargeDevice:edit')") @Log(value = "更新充电桩状态", module = LogModuleEnum.DEVICE) public Result updateDeviceStatus( @Parameter(description = "充电桩ID") @PathVariable Long id, @Parameter(description = "状态") @PathVariable Long status ) { boolean result = chargeDeviceService.updateDeviceStatus(id, status); return Result.judge(result); } }