mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-06 19:10:20 +08:00
Merge branch 'dev' of http://192.168.2.2:8099/jsowell/jsowell-charger-web into dev
This commit is contained in:
@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.jsowell.common.annotation.Anonymous;
|
||||
import com.jsowell.common.core.controller.BaseController;
|
||||
import com.jsowell.common.response.RestApiResponse;
|
||||
import com.jsowell.common.util.JWTUtils;
|
||||
import com.jsowell.pile.dto.huawei.*;
|
||||
import com.jsowell.pile.vo.huawei.QueryChargeStatusVO;
|
||||
@@ -26,7 +27,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* 华为 Controller V2
|
||||
*
|
||||
* @author Lemon
|
||||
* @Date 2024/2/2 14:34:56
|
||||
@@ -223,16 +224,18 @@ public class HuaWeiControllerV2 extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/v2/notification_operation_system_info/{stationId}")
|
||||
public String notificationOperationSystemInfo(@PathVariable("stationId") String stationId) {
|
||||
logger.info("华为平台充电设备编码同步 stationId:{}", stationId);
|
||||
public RestApiResponse<?> notificationOperationSystemInfo(@PathVariable("stationId") String stationId) {
|
||||
// logger.info("华为平台充电设备编码同步 stationId:{}", stationId);
|
||||
RestApiResponse<?> response = null;
|
||||
String result = null;
|
||||
try {
|
||||
result = huaweiServiceV2.notificationOperationSystemInfo(stationId);
|
||||
response = new RestApiResponse<>(result);
|
||||
} catch (Exception e) {
|
||||
logger.error("华为平台充电设备编码同步 error", e);
|
||||
}
|
||||
logger.info("华为平台充电设备编码同步 result:{}", result);
|
||||
return result;
|
||||
logger.info("华为平台充电设备编码同步 stationId:{}, result:{}", stationId, result);
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -241,16 +244,18 @@ public class HuaWeiControllerV2 extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/v2/query_station_status")
|
||||
public Map<String, String> queryStationStatus(@RequestBody List<String> stationIds) {
|
||||
logger.info("查询华为设备接口状态 stationIds:{}", stationIds);
|
||||
public RestApiResponse<?> queryStationStatus(@RequestBody List<String> stationIds) {
|
||||
// logger.info("查询华为设备接口状态 stationIds:{}", stationIds);
|
||||
RestApiResponse<?> response = null;
|
||||
Map<String, String> map = new LinkedHashMap<>();
|
||||
try {
|
||||
map = huaweiServiceV2.queryStationStatus(stationIds);
|
||||
response = new RestApiResponse<>(map);
|
||||
} catch (Exception e) {
|
||||
logger.error("查询华为设备接口状态 error", e);
|
||||
}
|
||||
logger.info("查询华为设备接口状态 result:{}", map);
|
||||
return map;
|
||||
logger.info("查询华为设备接口状态 stationIds:{}, result:{}", stationIds, map);
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -259,16 +264,18 @@ public class HuaWeiControllerV2 extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/v2/query_equip_auth")
|
||||
public QueryEquipAuthVO queryEquipAuth(@RequestBody String connectorId) {
|
||||
logger.info("请求华为设备认证 connectorId:{}", connectorId);
|
||||
public RestApiResponse<?> queryEquipAuth(@RequestBody String connectorId) {
|
||||
// logger.info("请求华为设备认证 connectorId:{}", connectorId);
|
||||
RestApiResponse<?> response = null;
|
||||
QueryEquipAuthVO vo = null;
|
||||
try {
|
||||
vo = huaweiServiceV2.queryEquipAuth(connectorId);
|
||||
response = new RestApiResponse<>(vo);
|
||||
} catch (Exception e) {
|
||||
logger.error("请求华为设备认证 error", e);
|
||||
}
|
||||
logger.info("请求华为设备认证 result:{}", JSON.toJSONString(vo));
|
||||
return vo;
|
||||
logger.info("请求华为设备认证 connectorId:{}, result:{}", connectorId, JSON.toJSONString(vo));
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -277,16 +284,18 @@ public class HuaWeiControllerV2 extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/v2/query_start_charge")
|
||||
public QueryStartChargeVO queryStartCharge(@RequestBody HWQueryStartChargeDTO dto) {
|
||||
logger.info("请求华为启动充电 param:{}", JSON.toJSONString(dto));
|
||||
public RestApiResponse<?> queryStartCharge(@RequestBody HWQueryStartChargeDTO dto) {
|
||||
// logger.info("请求华为启动充电 param:{}", JSON.toJSONString(dto));
|
||||
RestApiResponse<?> response = null;
|
||||
QueryStartChargeVO vo = null;
|
||||
try {
|
||||
vo = huaweiServiceV2.queryStartCharge(dto);
|
||||
response = new RestApiResponse<>(vo);
|
||||
} catch (Exception e) {
|
||||
logger.error("请求华为启动充电 error", e);
|
||||
}
|
||||
logger.info("请求华为启动充电 result:{}", JSON.toJSONString(vo));
|
||||
return vo;
|
||||
logger.info("请求华为启动充电 param:{}, result:{}", JSON.toJSONString(dto), JSON.toJSONString(vo));
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
@@ -296,16 +305,18 @@ public class HuaWeiControllerV2 extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/v2/query_equip_charge_status")
|
||||
public QueryChargeStatusVO queryChargeStatus(@RequestBody String startChargeSeq) {
|
||||
logger.info("查询华为充电状态 startChargeSeq:{}", startChargeSeq);
|
||||
public RestApiResponse<?> queryChargeStatus(@RequestBody String startChargeSeq) {
|
||||
// logger.info("查询华为充电状态 startChargeSeq:{}", startChargeSeq);
|
||||
RestApiResponse<?> response = null;
|
||||
QueryChargeStatusVO vo = null;
|
||||
try {
|
||||
vo = huaweiServiceV2.queryChargeStatus(startChargeSeq);
|
||||
response = new RestApiResponse<>(vo);
|
||||
} catch (Exception e) {
|
||||
logger.error("查询华为充电状态 error", e);
|
||||
}
|
||||
logger.info("查询华为充电状态 result:{}", JSON.toJSONString(vo));
|
||||
return vo;
|
||||
logger.info("查询华为充电状态 startChargeSeq:{}, result:{}", startChargeSeq, JSON.toJSONString(vo));
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
@@ -315,16 +326,18 @@ public class HuaWeiControllerV2 extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/v2/query_stop_charge")
|
||||
public QueryStartChargeVO queryStopCharge(@RequestBody String startChargeSeq) {
|
||||
logger.info("请求华为停止充电 startChargeSeq:{}", startChargeSeq);
|
||||
public RestApiResponse<?> queryStopCharge(@RequestBody String startChargeSeq) {
|
||||
// logger.info("请求华为停止充电 startChargeSeq:{}", startChargeSeq);
|
||||
RestApiResponse<?> response = null;
|
||||
QueryStartChargeVO vo = null;
|
||||
try {
|
||||
vo = huaweiServiceV2.queryStopCharge(startChargeSeq);
|
||||
response = new RestApiResponse<>(vo);
|
||||
}catch (Exception e) {
|
||||
logger.error("请求华为停止充电 error", e);
|
||||
}
|
||||
logger.info("请求华为停止充电 result:{}", JSON.toJSONString(vo));
|
||||
return vo;
|
||||
logger.info("请求华为停止充电 startChargeSeq:{}, result:{}", startChargeSeq, JSON.toJSONString(vo));
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -232,6 +232,21 @@ public class CacheConstants {
|
||||
*/
|
||||
public static final String JIANGSU_PUSH_PILE_STATUS = "JIANGSU_PUSH_PILE_STATUS:";
|
||||
|
||||
/**
|
||||
* 华为获取令牌
|
||||
*/
|
||||
public static final String HUAWEI_GET_TOKEN = "HUAWEI_GET_TOKEN:";
|
||||
|
||||
/**
|
||||
* 华为保存实时设备充电状态信息
|
||||
*/
|
||||
public static final String HUA_WEI_REAL_TIME_INFO_BY_ORDER_CODE = "HUA_WEI_REAL_TIME_INFO_BY_ORDER_CODE:";
|
||||
|
||||
/**
|
||||
* 华为订单信息
|
||||
*/
|
||||
public static final String HUA_WEI_ORDER_INFO_BY_ORDER_CODE = "HUA_WEI_ORDER_INFO_BY_ORDER_CODE:";
|
||||
|
||||
/**
|
||||
* 桩硬件故障
|
||||
*/
|
||||
|
||||
@@ -436,6 +436,11 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
|
||||
// 订单退款
|
||||
refundOrder(orderBasicInfo);
|
||||
|
||||
// 如果是vin启动,将启动锁定状态改为正常
|
||||
if (StringUtils.equals(data.getTransactionIdentifier(), "05")) {
|
||||
vinStatusUnlocked(data.getVinCode());
|
||||
}
|
||||
|
||||
// 发送停止充电订阅消息
|
||||
sendMsg(orderBasicInfo);
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.jsowell.common.constant.CacheConstants;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
|
||||
@@ -102,9 +103,6 @@ public class HuaweiServiceV2 {
|
||||
@Autowired
|
||||
private IThirdpartySnRelationService thirdpartySnRelationService;
|
||||
|
||||
@Resource
|
||||
private TransactionService transactionService;
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
@@ -114,7 +112,7 @@ public class HuaweiServiceV2 {
|
||||
*/
|
||||
public String getHuaWeiToken() {
|
||||
String operatorId = Constants.OPERATORID_JIANG_SU;
|
||||
String redisKey = "huawei_get_token:" + operatorId;
|
||||
String redisKey = CacheConstants.HUAWEI_GET_TOKEN + operatorId;
|
||||
// 先查缓存
|
||||
String cacheToken = redisCache.getCacheObject(redisKey);
|
||||
if (StringUtils.isNotBlank(cacheToken)) {
|
||||
@@ -624,7 +622,7 @@ public class HuaweiServiceV2 {
|
||||
return null;
|
||||
}
|
||||
// 将源数据存储至缓存
|
||||
String redisKey = "HUA_WEI_REAL_TIME_INFO_BY_ORDER_CODE:" + startChargeSeq;
|
||||
String redisKey = CacheConstants.HUA_WEI_REAL_TIME_INFO_BY_ORDER_CODE + startChargeSeq;
|
||||
String jsonMsg = JSON.toJSONString(dto);
|
||||
// 在同一分钟内,只保留最后一条实时数据
|
||||
redisCache.hset(redisKey, DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:00", new Date()), jsonMsg);
|
||||
@@ -732,7 +730,7 @@ public class HuaweiServiceV2 {
|
||||
String pileConnectorCode = dto.getConnectorID();
|
||||
|
||||
// 将源数据存缓存
|
||||
String redisKey = "HUA_WEI_ORDER_INFO_BY_ORDER_CODE:" + startChargeSeq;
|
||||
String redisKey = CacheConstants.HUA_WEI_ORDER_INFO_BY_ORDER_CODE + startChargeSeq;
|
||||
redisCache.setCacheObject(redisKey, dto);
|
||||
|
||||
// // 截取桩号
|
||||
@@ -751,7 +749,7 @@ public class HuaweiServiceV2 {
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(startChargeSeq);
|
||||
// OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(startChargeSeq);
|
||||
|
||||
// TODO 结算订单
|
||||
// 结算订单
|
||||
TransactionRecordsData data = TransactionRecordsData.builder()
|
||||
.consumptionAmount(String.valueOf(dto.getTotalMoney())) // 订单总金额
|
||||
.stopReasonMsg(String.valueOf(dto.getStopReason())) // 停止原因
|
||||
@@ -759,6 +757,11 @@ public class HuaweiServiceV2 {
|
||||
.totalElectricityAmount(String.valueOf(dto.getTotalElecMoney())) // 总电费
|
||||
.totalServiceAmount(String.valueOf(dto.getTotalSeviceMoney())) // 总服务费
|
||||
.build();
|
||||
if (StringUtils.equals(StartModeEnum.VIN_CODE.getValue(), orderBasicInfo.getStartMode())) {
|
||||
// 将交易记录中的交易标识 05 传入实时数据对象,用于结算订单后解锁 vin 状态
|
||||
data.setTransactionIdentifier("05");
|
||||
}
|
||||
|
||||
String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId());
|
||||
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
|
||||
orderLogic.settleOrderForThirdParty(data, orderBasicInfo);
|
||||
|
||||
Reference in New Issue
Block a user