桩回调接口
This commit is contained in:
parent
bcad0b0230
commit
2dfb722430
@ -28,4 +28,9 @@ public class ServiceNameConstants
|
|||||||
*/
|
*/
|
||||||
public static final String PILE_SERVICE = "xhpc-power-pile";
|
public static final String PILE_SERVICE = "xhpc-power-pile";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单服务
|
||||||
|
*/
|
||||||
|
public static final String XHPC_ORDER ="xhpc-order";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,6 +30,7 @@ public class XhpcChargingStationController extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IXhpcChargingStationService xhpcChargingStationService;
|
private IXhpcChargingStationService xhpcChargingStationService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询电站列表
|
* 查询电站列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -0,0 +1,38 @@
|
|||||||
|
package com.xhpc.common.api;
|
||||||
|
|
||||||
|
import com.xhpc.common.api.factory.PileOrderFallbackFactory;
|
||||||
|
import com.xhpc.common.core.constant.ServiceNameConstants;
|
||||||
|
import com.xhpc.common.core.domain.R;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 桩订单回调
|
||||||
|
* @author yuyang
|
||||||
|
* @date 2021/8/15 16:54
|
||||||
|
*/
|
||||||
|
@FeignClient(contextId ="pileOrderService",value = ServiceNameConstants.XHPC_ORDER, fallbackFactory = PileOrderFallbackFactory.class)
|
||||||
|
public interface PileOrderService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 桩启动回调接口
|
||||||
|
* @param orderNo 订单号
|
||||||
|
* @param status 1 成功 2失败
|
||||||
|
* @param remark 备注
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/chargeOrder/stopUp")
|
||||||
|
R pileStartUp(@RequestParam("orderNo") String orderNo, @RequestParam("status") Integer status, @RequestParam("remark") String remark);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 桩停止回调接口
|
||||||
|
* @param orderNo 订单号
|
||||||
|
* @param status 1 成功 2失败
|
||||||
|
* @param remark 备注
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/chargeOrder/pileStopUp")
|
||||||
|
R pileStopUp(@RequestParam("orderNo") String orderNo,@RequestParam("status") Integer status,@RequestParam("remark") String remark);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
package com.xhpc.common.api.factory;
|
||||||
|
|
||||||
|
import com.xhpc.common.api.PileOrderService;
|
||||||
|
import com.xhpc.common.core.domain.R;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author yuyang
|
||||||
|
* @date 2021/8/15 16:55
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class PileOrderFallbackFactory implements FallbackFactory<PileOrderService> {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(PileOrderFallbackFactory.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PileOrderService create(Throwable cause) {
|
||||||
|
|
||||||
|
logger.error("订单服务调用失败:{}//fallback",cause.getMessage());
|
||||||
|
return new PileOrderService() {
|
||||||
|
@Override
|
||||||
|
public R pileStartUp(String orderNo, Integer status, String remark) {
|
||||||
|
|
||||||
|
return R.fail("桩启动回调接口失败:" + cause.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R pileStopUp(String orderNo, Integer status, String remark) {
|
||||||
|
|
||||||
|
return R.fail("桩停止回调接口失败:" + cause.getMessage());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -61,10 +61,10 @@
|
|||||||
<artifactId>ruoyi-common-datasource</artifactId>
|
<artifactId>ruoyi-common-datasource</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- RuoYi Common DataScope -->
|
<!-- RuoYi Common Core -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.ruoyi</groupId>
|
<groupId>com.ruoyi</groupId>
|
||||||
<artifactId>ruoyi-common-datascope</artifactId>
|
<artifactId>ruoyi-common-core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import org.springframework.boot.SpringApplication;
|
|||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||||
|
|
||||||
|
|
||||||
@EnableCustomConfig
|
@EnableCustomConfig
|
||||||
@EnableRyFeignClients
|
@EnableRyFeignClients
|
||||||
@EnableFeignClients
|
@EnableFeignClients
|
||||||
|
|||||||
@ -1,12 +1,8 @@
|
|||||||
package com.xhpc.order.controller;
|
package com.xhpc.order.controller;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.xhpc.common.core.web.controller.BaseController;
|
import com.xhpc.common.core.web.controller.BaseController;
|
||||||
import com.xhpc.common.core.web.domain.AjaxResult;
|
import com.xhpc.common.core.web.domain.AjaxResult;
|
||||||
import com.xhpc.common.core.web.page.TableDataInfo;
|
import com.xhpc.common.core.web.page.TableDataInfo;
|
||||||
import com.xhpc.common.data.redis.CacheRealtimeData;
|
|
||||||
import com.xhpc.common.redis.service.RedisService;
|
|
||||||
import com.xhpc.order.service.IHxpcChargeOrderService;
|
import com.xhpc.order.service.IHxpcChargeOrderService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -29,8 +25,7 @@ public class HxpcChargeOrderController extends BaseController {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IHxpcChargeOrderService iHxpcChargeOrderService;
|
private IHxpcChargeOrderService iHxpcChargeOrderService;
|
||||||
@Autowired
|
|
||||||
private RedisService redisService;
|
|
||||||
/**
|
/**
|
||||||
* 实时订单
|
* 实时订单
|
||||||
*/
|
*/
|
||||||
@ -79,41 +74,6 @@ public class HxpcChargeOrderController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 桩启动回调接口
|
|
||||||
* @param orderNo 订单号
|
|
||||||
* @param status 1 成功 2失败
|
|
||||||
* @param remark 备注
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@GetMapping("/pileStartUp")
|
|
||||||
public void pileStartUp(String orderNo,Integer status,String remark){
|
|
||||||
iHxpcChargeOrderService.pileStartUp(orderNo,status,remark);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 桩停止回调接口
|
|
||||||
* @param orderNo 订单号
|
|
||||||
* @param status 1 成功 2失败
|
|
||||||
* @param remark 备注
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@GetMapping("/pileStopUp")
|
|
||||||
public void pileStopUp(String orderNo,Integer status,String remark){
|
|
||||||
iHxpcChargeOrderService.pileStopUp(orderNo,status,remark);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 桩实时数据回调接口
|
|
||||||
* @param orderNo 订单号
|
|
||||||
* @param status 离线、故障、充电、空闲、计费错误(重新计算费用,电量默认为正确)
|
|
||||||
* @param remark 备注
|
|
||||||
* @param rateModel 费率模型id
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@GetMapping("/pileRealtime")
|
|
||||||
public AjaxResult pileRealtime(String orderNo,Integer status,String remark,String rateModel){
|
|
||||||
return AjaxResult.success();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,209 @@
|
|||||||
|
package com.xhpc.order.controller;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.rabbitmq.client.Channel;
|
||||||
|
import com.rabbitmq.client.Connection;
|
||||||
|
import com.xhpc.common.api.PileOrderService;
|
||||||
|
import com.xhpc.common.core.domain.R;
|
||||||
|
import com.xhpc.common.core.web.controller.BaseController;
|
||||||
|
import com.xhpc.common.core.web.domain.AjaxResult;
|
||||||
|
import com.xhpc.common.data.redis.CacheRealtimeData;
|
||||||
|
import com.xhpc.common.redis.service.RedisService;
|
||||||
|
import com.xhpc.common.util.ConnectionRabbitMQUtil;
|
||||||
|
import com.xhpc.order.domain.HxpcChargeOrder;
|
||||||
|
import com.xhpc.order.domain.XhpcHistoryOrder;
|
||||||
|
import com.xhpc.order.service.IHxpcChargeOrderService;
|
||||||
|
import com.xhpc.order.service.IXhpcHistoryOrderService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
public class HxpcPileOrderController extends BaseController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisService redisService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IHxpcChargeOrderService iHxpcChargeOrderService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IXhpcHistoryOrderService xhpcHistoryOrderService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PileOrderService pileOrderService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试
|
||||||
|
*/
|
||||||
|
@GetMapping("/test/chargeOrder/pileStartUp")
|
||||||
|
private R test(@RequestParam String orderNo, @RequestParam Integer status, @RequestParam String remark){
|
||||||
|
R r = pileOrderService.pileStopUp(orderNo, status, remark);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 桩启动回调接口
|
||||||
|
* @param orderNo 订单号
|
||||||
|
* @param status 1 成功 2失败
|
||||||
|
* @param remark 备注
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/chargeOrder/pileStartUp")
|
||||||
|
public R pileStartUp(String orderNo, Integer status, String remark){
|
||||||
|
//解析订单编号
|
||||||
|
String s = orderNo.split("\\.")[0];
|
||||||
|
String s1 = s.split(":")[1];
|
||||||
|
Long userId;
|
||||||
|
Integer code ;
|
||||||
|
if(status ==1){
|
||||||
|
code=200;
|
||||||
|
userId=update(0, 0,remark, s1,0);
|
||||||
|
}else{
|
||||||
|
code=500;
|
||||||
|
userId=update(-1, 1,remark, s1,0);
|
||||||
|
}
|
||||||
|
Map<String,Object> map =new HashMap<>();
|
||||||
|
map.put("code",code);
|
||||||
|
map.put("userId",userId);
|
||||||
|
map.put("message",remark);
|
||||||
|
JSONObject json = new JSONObject(map);
|
||||||
|
//消息对了内容
|
||||||
|
rabbimt(userId+"##"+json);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 桩停止回调接口
|
||||||
|
* @param orderNo 订单号
|
||||||
|
* @param status 1 成功 2失败
|
||||||
|
* @param remark 备注
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/chargeOrder/pileStopUp")
|
||||||
|
public R pileStopUp(String orderNo,Integer status,String remark){
|
||||||
|
//解析订单编号
|
||||||
|
String s = orderNo.split("\\.")[0];
|
||||||
|
String s1 = s.split(":")[1];
|
||||||
|
Integer code=300 ;
|
||||||
|
Long userId=update(status, 0,remark, s1,1);
|
||||||
|
Map<String,Object> map =new HashMap<>();
|
||||||
|
map.put("code",code);
|
||||||
|
map.put("userId",userId);
|
||||||
|
if(status==1){
|
||||||
|
map.put("message","停止充电成功");
|
||||||
|
}else{
|
||||||
|
map.put("message",remark);
|
||||||
|
}
|
||||||
|
JSONObject json = new JSONObject(map);
|
||||||
|
//消息对了内容
|
||||||
|
rabbimt(userId+"##"+json);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 桩实时数据回调接口
|
||||||
|
* @param orderNo 订单号
|
||||||
|
* @param status 离线、故障、充电、空闲、计费错误(重新计算费用,电量默认为正确)
|
||||||
|
* @param remark 备注
|
||||||
|
* @param rateModel 费率模型id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/pileRealtime")
|
||||||
|
public AjaxResult pileRealtime(String orderNo, Integer status, String remark, String rateModel){
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param status 状态
|
||||||
|
* @param delFlag 是否删除
|
||||||
|
* @param remark 备注
|
||||||
|
* @param serialNumber 订单号
|
||||||
|
* @param type 结束订单状态
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Long update(Integer status,Integer delFlag, String remark, String serialNumber,Integer type) {
|
||||||
|
HxpcChargeOrder hxpcChargeOrder = iHxpcChargeOrderService.getSerialNumberMessage(serialNumber);
|
||||||
|
hxpcChargeOrder.setStatus(status);
|
||||||
|
hxpcChargeOrder.setDelFlag(delFlag);
|
||||||
|
hxpcChargeOrder.setRemark(remark);
|
||||||
|
|
||||||
|
Long userId = hxpcChargeOrder.getUserId();
|
||||||
|
if(type==1){
|
||||||
|
Date date = new Date();
|
||||||
|
//获取实时订单
|
||||||
|
Map<String, Object> cacheMap = redisService.getCacheMap("order:"+serialNumber);
|
||||||
|
JSONArray st = (JSONArray)cacheMap.get("realtimeDataList");
|
||||||
|
System.out.println(st.toString());
|
||||||
|
CacheRealtimeData cacheRealtimeData = JSON.toJavaObject(st.getJSONObject(0), CacheRealtimeData.class);
|
||||||
|
|
||||||
|
//用户第几次充电
|
||||||
|
int count = iHxpcChargeOrderService.getCount(userId);
|
||||||
|
String state ="";
|
||||||
|
String discount ="";
|
||||||
|
if(count==0){
|
||||||
|
//活动折扣
|
||||||
|
Map<String, Object> promotion = iHxpcChargeOrderService.getPromotion();
|
||||||
|
if(promotion !=null){
|
||||||
|
//state 1.总金额 2.金额 3.服务费 discount 折扣率
|
||||||
|
state = promotion.get("state").toString();
|
||||||
|
discount = promotion.get("discount").toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//生成一条历史订单
|
||||||
|
XhpcHistoryOrder xhpcHistoryOrder =new XhpcHistoryOrder();
|
||||||
|
xhpcHistoryOrder.setChargeOrderId(hxpcChargeOrder.getChargeOrderId());
|
||||||
|
xhpcHistoryOrder.setChargingStationId(hxpcChargeOrder.getChargingStationId());
|
||||||
|
xhpcHistoryOrder.setUserId(userId);
|
||||||
|
xhpcHistoryOrder.setTerminalId(hxpcChargeOrder.getTerminalId());
|
||||||
|
xhpcHistoryOrder.setSerialNumber(hxpcChargeOrder.getSerialNumber());
|
||||||
|
xhpcHistoryOrder.setStartSoc(hxpcChargeOrder.getStartSoc());
|
||||||
|
xhpcHistoryOrder.setReconciliationStatus(0);
|
||||||
|
xhpcHistoryOrder.setSortingStatus(0);
|
||||||
|
xhpcHistoryOrder.setType(1);
|
||||||
|
xhpcHistoryOrder.setStatus(0);
|
||||||
|
xhpcHistoryOrder.setDelFlag(0);
|
||||||
|
xhpcHistoryOrder.setCreateTime(date);
|
||||||
|
//订单总价---运维服务费抽成
|
||||||
|
//结束时soc
|
||||||
|
xhpcHistoryOrderService.insert(xhpcHistoryOrder);
|
||||||
|
|
||||||
|
//充电订单 --结束soc、充电时长、充电度数
|
||||||
|
hxpcChargeOrder.setEndTime(date);
|
||||||
|
|
||||||
|
//实时数据存入MYsql、soc、电流、电压
|
||||||
|
}
|
||||||
|
iHxpcChargeOrderService.updateXhpcChargeOrder(hxpcChargeOrder);
|
||||||
|
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void rabbimt(String message) {
|
||||||
|
//发送消息队列
|
||||||
|
try{
|
||||||
|
// 1、获取到连接
|
||||||
|
Connection connection = ConnectionRabbitMQUtil.getConnection();
|
||||||
|
// 2、从连接中创建通道,使用通道才能完成消息相关的操作
|
||||||
|
Channel channel = connection.createChannel();
|
||||||
|
// 3、声明(创建)队列
|
||||||
|
channel.queueDeclare("webSocket", false, false, false, null);
|
||||||
|
// 4、消息内容
|
||||||
|
channel.basicPublish("", "webSocket", null, message.getBytes());
|
||||||
|
channel.close();
|
||||||
|
connection.close();
|
||||||
|
}catch (Exception e){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,6 +1,9 @@
|
|||||||
package com.xhpc.order.service;
|
package com.xhpc.order.service;
|
||||||
|
|
||||||
|
import com.xhpc.common.core.domain.R;
|
||||||
import com.xhpc.common.core.web.domain.AjaxResult;
|
import com.xhpc.common.core.web.domain.AjaxResult;
|
||||||
|
import com.xhpc.order.domain.HxpcChargeOrder;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -43,21 +46,30 @@ public interface IHxpcChargeOrderService {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 桩启动回调接口
|
* 获取充电订单数据
|
||||||
* @param orderNo 订单号
|
* @param serialNumber 订单编号
|
||||||
* @param status 1 成功 2失败
|
|
||||||
* @param remark 备注
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void pileStartUp(String orderNo,Integer status,String remark);
|
HxpcChargeOrder getSerialNumberMessage(String serialNumber);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 桩停止回调接口
|
* 判断用户是第几次充电
|
||||||
* @param orderNo 订单号
|
* @param userId
|
||||||
* @param status 1 成功 2失败
|
|
||||||
* @param remark 备注
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void pileStopUp(String orderNo,Integer status,String remark);
|
int getCount(Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String,Object> getPromotion();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改充电订单
|
||||||
|
* @param hxpcChargeOrder
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int updateXhpcChargeOrder(HxpcChargeOrder hxpcChargeOrder);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -177,9 +177,9 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
|
|||||||
if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) {
|
if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) {
|
||||||
return AjaxResult.error(1104, "无效的终端编号");
|
return AjaxResult.error(1104, "无效的终端编号");
|
||||||
}
|
}
|
||||||
HxpcChargeOrder serialNumberMessage = hxpcChargeOrderMapper.getSerialNumberMessage(serialNumber);
|
//HxpcChargeOrder serialNumberMessage = hxpcChargeOrderMapper.getSerialNumberMessage(serialNumber);
|
||||||
serialNumberMessage.setType(1);
|
//serialNumberMessage.setType(1);
|
||||||
hxpcChargeOrderMapper.updateXhpcChargeOrder(serialNumberMessage);
|
//hxpcChargeOrderMapper.updateXhpcChargeOrder(serialNumberMessage);
|
||||||
R oa = powerPileService.stopCharging(xhpcTerminal.getPileSerialNumber(), xhpcTerminal.getSerialNumber(), "OA");
|
R oa = powerPileService.stopCharging(xhpcTerminal.getPileSerialNumber(), xhpcTerminal.getSerialNumber(), "OA");
|
||||||
if(oa.getCode() !=200){
|
if(oa.getCode() !=200){
|
||||||
return AjaxResult.error(oa.getMsg());
|
return AjaxResult.error(oa.getMsg());
|
||||||
@ -187,143 +187,24 @@ public class HxpcChargeOrderServiceImpl implements IHxpcChargeOrderService {
|
|||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 桩启动回调接口
|
|
||||||
* @param orderNo 订单号
|
|
||||||
* @param status 1 成功 2失败
|
|
||||||
* @param remark 备注
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void pileStartUp(String orderNo, Integer status, String remark) {
|
public HxpcChargeOrder getSerialNumberMessage(String serialNumber) {
|
||||||
//解析订单编号
|
return hxpcChargeOrderMapper.getSerialNumberMessage(serialNumber);
|
||||||
String s = orderNo.split("\\.")[0];
|
|
||||||
String s1 = s.split(":")[1];
|
|
||||||
Long userId;
|
|
||||||
Integer code ;
|
|
||||||
if(status ==1){
|
|
||||||
code=200;
|
|
||||||
userId=update(0, 0,remark, s1,0);
|
|
||||||
}else{
|
|
||||||
code=500;
|
|
||||||
userId=update(-1, 1,remark, s1,0);
|
|
||||||
}
|
}
|
||||||
Map<String,Object> map =new HashMap<>();
|
|
||||||
map.put("code",code);
|
|
||||||
map.put("userId",userId);
|
|
||||||
map.put("message",remark);
|
|
||||||
JSONObject json = new JSONObject(map);
|
|
||||||
//消息对了内容
|
|
||||||
rabbimt(userId+"##"+json);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 桩停止回调接口
|
|
||||||
* @param orderNo 订单号
|
|
||||||
* @param status 1 成功 2失败
|
|
||||||
* @param remark 备注
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void pileStopUp(String orderNo, Integer status, String remark) {
|
public int getCount(Long userId) {
|
||||||
//解析订单编号
|
return hxpcChargeOrderMapper.getCount(userId);
|
||||||
String s = orderNo.split("\\.")[0];
|
|
||||||
String s1 = s.split(":")[1];
|
|
||||||
Integer code=300 ;
|
|
||||||
Long userId=update(status, 0,remark, s1,1);
|
|
||||||
Map<String,Object> map =new HashMap<>();
|
|
||||||
map.put("code",code);
|
|
||||||
map.put("userId",userId);
|
|
||||||
if(status==1){
|
|
||||||
map.put("message","停止充电成功");
|
|
||||||
}else{
|
|
||||||
map.put("message",remark);
|
|
||||||
}
|
|
||||||
JSONObject json = new JSONObject(map);
|
|
||||||
//消息对了内容
|
|
||||||
rabbimt(userId+"##"+json);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
@Override
|
||||||
* @param status 状态
|
public Map<String, Object> getPromotion() {
|
||||||
* @param delFlag 是否删除
|
return hxpcChargeOrderMapper.getPromotion();
|
||||||
* @param remark 备注
|
|
||||||
* @param serialNumber 订单号
|
|
||||||
* @param type 结束订单状态
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private Long update(Integer status,Integer delFlag, String remark, String serialNumber,Integer type) {
|
|
||||||
HxpcChargeOrder hxpcChargeOrder = hxpcChargeOrderMapper.getSerialNumberMessage(serialNumber);
|
|
||||||
hxpcChargeOrder.setStatus(status);
|
|
||||||
hxpcChargeOrder.setDelFlag(delFlag);
|
|
||||||
hxpcChargeOrder.setRemark(remark);
|
|
||||||
|
|
||||||
Long userId = hxpcChargeOrder.getUserId();
|
|
||||||
if(type==1){
|
|
||||||
Date date = new Date();
|
|
||||||
//获取实时订单
|
|
||||||
Map<String, Object> cacheMap = redisService.getCacheMap("order:"+serialNumber);
|
|
||||||
JSONArray st = (JSONArray)cacheMap.get("realtimeDataList");
|
|
||||||
System.out.println(st.toString());
|
|
||||||
CacheRealtimeData cacheRealtimeData = JSON.toJavaObject(st.getJSONObject(0), CacheRealtimeData.class);
|
|
||||||
|
|
||||||
//用户第几次充电
|
|
||||||
int count = hxpcChargeOrderMapper.getCount(userId);
|
|
||||||
String state ="";
|
|
||||||
String discount ="";
|
|
||||||
if(count==0){
|
|
||||||
//活动折扣
|
|
||||||
Map<String, Object> promotion = hxpcChargeOrderMapper.getPromotion();
|
|
||||||
if(promotion !=null){
|
|
||||||
//state 1.总金额 2.金额 3.服务费 discount 折扣率
|
|
||||||
state = promotion.get("state").toString();
|
|
||||||
discount = promotion.get("discount").toString();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//生成一条历史订单
|
@Override
|
||||||
XhpcHistoryOrder xhpcHistoryOrder =new XhpcHistoryOrder();
|
public int updateXhpcChargeOrder(HxpcChargeOrder hxpcChargeOrder) {
|
||||||
xhpcHistoryOrder.setChargeOrderId(hxpcChargeOrder.getChargeOrderId());
|
return hxpcChargeOrderMapper.updateXhpcChargeOrder(hxpcChargeOrder);
|
||||||
xhpcHistoryOrder.setChargingStationId(hxpcChargeOrder.getChargingStationId());
|
|
||||||
xhpcHistoryOrder.setUserId(userId);
|
|
||||||
xhpcHistoryOrder.setTerminalId(hxpcChargeOrder.getTerminalId());
|
|
||||||
xhpcHistoryOrder.setSerialNumber(hxpcChargeOrder.getSerialNumber());
|
|
||||||
xhpcHistoryOrder.setStartSoc(hxpcChargeOrder.getStartSoc());
|
|
||||||
xhpcHistoryOrder.setReconciliationStatus(0);
|
|
||||||
xhpcHistoryOrder.setSortingStatus(0);
|
|
||||||
xhpcHistoryOrder.setType(1);
|
|
||||||
xhpcHistoryOrder.setStatus(0);
|
|
||||||
xhpcHistoryOrder.setDelFlag(0);
|
|
||||||
xhpcHistoryOrder.setCreateTime(date);
|
|
||||||
//订单总价---运维服务费抽成
|
|
||||||
//结束时soc
|
|
||||||
xhpcHistoryOrderService.insert(xhpcHistoryOrder);
|
|
||||||
|
|
||||||
//充电订单 --结束soc、充电时长、充电度数
|
|
||||||
hxpcChargeOrder.setEndTime(date);
|
|
||||||
|
|
||||||
//实时数据存入MYsql、soc、电流、电压
|
|
||||||
}
|
|
||||||
hxpcChargeOrderMapper.updateXhpcChargeOrder(hxpcChargeOrder);
|
|
||||||
|
|
||||||
return userId;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void rabbimt(String message) {
|
|
||||||
//发送消息队列
|
|
||||||
try{
|
|
||||||
// 1、获取到连接
|
|
||||||
Connection connection = ConnectionRabbitMQUtil.getConnection();
|
|
||||||
// 2、从连接中创建通道,使用通道才能完成消息相关的操作
|
|
||||||
Channel channel = connection.createChannel();
|
|
||||||
// 3、声明(创建)队列
|
|
||||||
channel.queueDeclare(NAME, false, false, false, null);
|
|
||||||
// 4、消息内容
|
|
||||||
channel.basicPublish("", NAME, null, message.getBytes());
|
|
||||||
channel.close();
|
|
||||||
connection.close();
|
|
||||||
}catch (Exception e){
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user