package com.jsowell.api.uniapp; import com.alibaba.fastjson2.JSONObject; import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.response.RestApiResponse; import com.jsowell.common.util.StringUtils; import com.jsowell.pile.domain.ykcCommond.RemoteControlGroundLockCommand; import com.jsowell.pile.dto.QueryConnectorListDTO; import com.jsowell.pile.dto.QueryStationDTO; import com.jsowell.pile.service.*; import com.jsowell.pile.vo.uniapp.BillingPriceVO; import com.jsowell.pile.vo.uniapp.GroundLockInfoVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * 充电桩相关接口 * 提供给小程序调用 */ // 不登录直接访问 @Anonymous @RestController @RequestMapping("/uniapp/pile") public class PileController extends BaseController { @Autowired private YKCPushCommandService ykcPushCommandService; @Autowired private IPileStationInfoService pileStationInfoService; @Autowired private IPileConnectorInfoService pileConnectorInfoService; @Autowired private IPileBillingTemplateService pileBillingTemplateService; @Autowired private IPileMerchantInfoService pileMerchantInfoService; /** * 查询充电站信息列表(主页) * * http://localhost:8080/uniapp/pile/queryStationInfos */ @PostMapping("/queryStationInfos") public RestApiResponse queryStationInfos(HttpServletRequest request, @RequestBody QueryStationDTO queryStationDTO) { logger.info("查询充电站信息列表 param:{}", JSONObject.toJSONString(queryStationDTO)); RestApiResponse response = null; try { // 获取appid(第三方平台用) String appId = request.getHeader("appId"); if (StringUtils.isNotBlank(appId)) { // 获取merchantId String merchantId = pileMerchantInfoService.getFirstLevelMerchantIdByAppId(appId); queryStationDTO.setMerchantId(merchantId); } PageResponse pageResponse = pileStationInfoService.uniAppQueryStationInfoList(queryStationDTO); response = new RestApiResponse<>(pageResponse); } catch (BusinessException e) { logger.warn("查询充电站信息列表warn", e); response = new RestApiResponse<>(e.getCode(), e.getMessage()); } catch (Exception e) { logger.error("查询充电站信息列表异常 error", e); response = new RestApiResponse<>(ReturnCodeEnum.CODE_GET_PILE_STATION_INFO_ERROR); } logger.info("查询充电站信息列表 result:{}", JSONObject.toJSONString(response)); return response; } /** * 通过站点id查询计费模板列表 * http://localhost:8080/uniapp/pile/queryBillingPrice/{stationId} * @param stationId * @return */ @GetMapping("/queryBillingPrice/{stationId}") public RestApiResponse queryBillingPrice(@PathVariable("stationId") String stationId) { logger.info("通过站点id查询计费模板列表 params:{}", stationId); RestApiResponse response = null; try { List billingPriceVOList = pileBillingTemplateService.queryBillingPrice(stationId); response = new RestApiResponse<>(billingPriceVOList); } catch (Exception e) { logger.error("通过站点id查询计费模板列表 error, ", e); response = new RestApiResponse<>(e); } logger.info("通过站点id查询计费模板列表 result:{}", response); return response; } /** * 通过前端参数查询充电枪口列表 * * http://localhost:8080/uniapp/pile/selectConnectorListByParams * * @param dto * @return */ @PostMapping("/selectConnectorListByParams") public RestApiResponse selectConnectorListByParams(HttpServletRequest request, @RequestBody QueryConnectorListDTO dto) { logger.info("查询充电枪口列表 params:{}", JSONObject.toJSONString(dto)); RestApiResponse response = null; try { PageResponse pageResponse = pileConnectorInfoService.getUniAppConnectorInfoListByParams(dto); response = new RestApiResponse<>(pageResponse); } catch (Exception e) { logger.error("查询充电枪口列表异常", e); response = new RestApiResponse<>(ReturnCodeEnum.CODE_GET_CONNECTOR_INFO_BY_STATION_ID_ERROR); } logger.info("查询充电枪口列表 result:{}", response); return response; } /** * 根据充电站id查询枪口列表 * @param request * @param dto * @return */ @PostMapping("/selectStationConnectorList") public RestApiResponse selectStationConnectorList(HttpServletRequest request, @RequestBody QueryConnectorListDTO dto) { logger.info("查询充电枪口列表 params:{}", JSONObject.toJSONString(dto)); RestApiResponse response = null; try { PageResponse pageResponse = pileConnectorInfoService.selectStationConnectorList(dto); response = new RestApiResponse<>(pageResponse); } catch (Exception e) { logger.error("查询充电枪口列表异常", e); response = new RestApiResponse<>(ReturnCodeEnum.CODE_GET_CONNECTOR_INFO_BY_STATION_ID_ERROR); } logger.info("查询充电枪口列表 result:{}", response); return response; } /** * 远程遥控地锁指令 * @param command * @return */ @PostMapping("/remoteGroundLock") public RestApiResponse remoteGroundLock(@RequestBody RemoteControlGroundLockCommand command) { logger.info("遥控地锁指令 params:{}", JSONObject.toJSONString(command)); RestApiResponse response = null; try { ykcPushCommandService.pushRemoteControlGroundLock(command); } catch (Exception e) { logger.error("遥控地锁指令 error, ", e); response = new RestApiResponse<>(e); } logger.info("遥控地锁指令 result:{}", response); return response; } }