ThirdPartyChargingController.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package com.zsElectric.boot.business.controller;
  2. import cn.idev.excel.EasyExcel;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.zsElectric.boot.business.model.query.ThirdPartyStationInfoQuery;
  5. import com.zsElectric.boot.business.model.query.ThirdPartyEquipmentInfoQuery;
  6. import com.zsElectric.boot.business.model.dto.StationDetailDTO;
  7. import com.zsElectric.boot.business.model.dto.ThirdPartyEquipmentExportDTO;
  8. import com.zsElectric.boot.business.model.dto.ConnectorTipsUpdateDTO;
  9. import com.zsElectric.boot.business.model.vo.PartyStationInfoVO;
  10. import com.zsElectric.boot.business.model.vo.ThirdPartyStationInfoVO;
  11. import com.zsElectric.boot.business.model.vo.ThirdPartyEquipmentInfoVO;
  12. import com.zsElectric.boot.business.model.vo.StationDetailVO;
  13. import com.zsElectric.boot.business.service.ThirdPartyChargingService;
  14. import com.zsElectric.boot.common.annotation.Log;
  15. import com.zsElectric.boot.common.enums.LogModuleEnum;
  16. import com.zsElectric.boot.core.web.PageResult;
  17. import com.zsElectric.boot.core.web.Result;
  18. import io.swagger.v3.oas.annotations.Operation;
  19. import io.swagger.v3.oas.annotations.tags.Tag;
  20. import jakarta.servlet.http.HttpServletResponse;
  21. import jakarta.validation.Valid;
  22. import lombok.RequiredArgsConstructor;
  23. import org.springframework.web.bind.annotation.PostMapping;
  24. import org.springframework.web.bind.annotation.GetMapping;
  25. import org.springframework.web.bind.annotation.PathVariable;
  26. import org.springframework.web.bind.annotation.RequestBody;
  27. import org.springframework.web.bind.annotation.RequestMapping;
  28. import org.springframework.web.bind.annotation.RestController;
  29. import java.io.IOException;
  30. import java.net.URLEncoder;
  31. import java.nio.charset.StandardCharsets;
  32. import java.util.List;
  33. /**
  34. * 第三方充电站/充电桩信息查询控制器
  35. *
  36. * @author system
  37. * @since 2025-12-11
  38. */
  39. @Tag(name = "第三方充电站/充电桩信息查询接口")
  40. @RestController
  41. @RequestMapping("/api/v1/third-party-charging")
  42. @RequiredArgsConstructor
  43. public class ThirdPartyChargingController {
  44. private final ThirdPartyChargingService chargingService;
  45. @Operation(summary = "充电站信息分页列表")
  46. @PostMapping("/stations/page")
  47. @Log(value = "充电站信息分页列表", module = LogModuleEnum.OTHER)
  48. public PageResult<ThirdPartyStationInfoVO> getStationInfoPage(@RequestBody ThirdPartyStationInfoQuery queryParams) {
  49. IPage<ThirdPartyStationInfoVO> result = chargingService.getStationInfoPage(queryParams);
  50. return PageResult.success(result);
  51. }
  52. @Operation(summary = "充电桩信息分页列表")
  53. @PostMapping("/equipments/page")
  54. @Log(value = "充电桩信息分页列表", module = LogModuleEnum.OTHER)
  55. public PageResult<ThirdPartyEquipmentInfoVO> getEquipmentInfoPage(@RequestBody ThirdPartyEquipmentInfoQuery queryParams) {
  56. IPage<ThirdPartyEquipmentInfoVO> result = chargingService.getEquipmentInfoPage(queryParams);
  57. return PageResult.success(result);
  58. }
  59. @Operation(summary = "查询站点详情信息", description = "查询站点的banner信息、提示语、营业时间、客服电话")
  60. @GetMapping("/stations/detail/{stationId}")
  61. @Log(value = "查询站点详情信息", module = LogModuleEnum.OTHER)
  62. public Result<StationDetailVO> getStationDetail(@PathVariable Long stationId) {
  63. StationDetailVO result = chargingService.getStationDetail(stationId);
  64. return Result.success(result);
  65. }
  66. @Operation(summary = "修改站点详情信息", description = "修改站点的banner信息、提示语、营业时间、客服电话")
  67. @PostMapping("/stations/detail/update")
  68. @Log(value = "修改站点详情信息", module = LogModuleEnum.OTHER)
  69. public Result<Boolean> updateStationDetail(@Valid @RequestBody StationDetailDTO dto) {
  70. boolean result = chargingService.updateStationDetail(dto);
  71. return Result.success(result);
  72. }
  73. @Operation(summary = "导出充电桩信息")
  74. @GetMapping("/equipments/export")
  75. @Log(value = "导出充电桩信息", module = LogModuleEnum.OTHER)
  76. public void exportEquipments(ThirdPartyEquipmentInfoQuery queryParams, HttpServletResponse response) throws IOException {
  77. String fileName = "充电桩信息.xlsx";
  78. response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
  79. response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8));
  80. List<ThirdPartyEquipmentExportDTO> exportList = chargingService.listExportEquipments(queryParams);
  81. EasyExcel.write(response.getOutputStream(), ThirdPartyEquipmentExportDTO.class).sheet("充电桩信息")
  82. .doWrite(exportList);
  83. }
  84. @Operation(summary = "修改充电桩提示语", description = "支持单个修改、批量修改、按站点一键修改")
  85. @PostMapping("/equipments/tips/update")
  86. @Log(value = "修改充电桩提示语", module = LogModuleEnum.OTHER)
  87. public Result<Integer> updateConnectorTips(@Valid @RequestBody ConnectorTipsUpdateDTO dto) {
  88. int count = chargingService.updateConnectorTips(dto);
  89. return Result.success(count);
  90. }
  91. }