package com.zsElectric.boot.app.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zsElectric.boot.app.model.form.ChargeStationForm; import com.zsElectric.boot.app.model.query.ChargeStationPageQuery; import com.zsElectric.boot.app.model.vo.ChargeStationPageVO; import com.zsElectric.boot.app.service.ChargeStationService; 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.*; /** * 充电站信息前端控制器 * * @author boxun * @since 2024-07-29 */ @Tag(name = "充电站信息接口") @RestController @RequestMapping("/api/v1/app/charge-station") @RequiredArgsConstructor public class ChargeStationController { private final ChargeStationService chargeStationService; @Operation(summary = "充电站信息分页列表") @GetMapping("/page") @Log(value = "充电站信息分页列表", module = LogModuleEnum.STATION) public PageResult listPagedChargeStations(ChargeStationPageQuery queryParams) { IPage result = chargeStationService.listPagedChargeStations(queryParams); return PageResult.success(result); } @Operation(summary = "新增充电站信息") @PostMapping @PreAuthorize("hasAuthority('app:chargeStation:add')") @Log(value = "新增充电站信息", module = LogModuleEnum.STATION) public Result saveChargeStation(@RequestBody @Valid ChargeStationForm formData) { boolean result = chargeStationService.saveChargeStation(formData); return Result.judge(result); } @Operation(summary = "充电站信息表单数据") @GetMapping("/{id}/form") public Result getChargeStationForm( @Parameter(description = "充电站ID") @PathVariable Long id ) { ChargeStationForm formData = chargeStationService.getChargeStationFormData(id); return Result.success(formData); } @Operation(summary = "修改充电站信息") @PutMapping("/{id}") @PreAuthorize("hasAuthority('app:chargeStation:edit')") @Log(value = "修改充电站信息", module = LogModuleEnum.STATION) public Result updateChargeStation( @Parameter(description = "充电站ID") @PathVariable Long id, @RequestBody @Valid ChargeStationForm formData ) { boolean result = chargeStationService.updateChargeStation(id, formData); return Result.judge(result); } @Operation(summary = "删除充电站信息") @DeleteMapping("/{ids}") @PreAuthorize("hasAuthority('app:chargeStation:delete')") @Log(value = "删除充电站信息", module = LogModuleEnum.STATION) public Result deleteChargeStations( @Parameter(description = "充电站ID,多个以英文逗号(,)分割") @PathVariable String ids ) { boolean result = chargeStationService.deleteChargeStations(ids); return Result.judge(result); } @Operation(summary = "更新充电站状态") @PutMapping("/{id}/status/{status}") @PreAuthorize("hasAuthority('app:chargeStation:edit')") @Log(value = "更新充电站状态", module = LogModuleEnum.STATION) public Result updateStationStatus( @Parameter(description = "充电站ID") @PathVariable Long id, @Parameter(description = "状态") @PathVariable Long status ) { boolean result = chargeStationService.updateStationStatus(id, status); return Result.judge(result); } }