调整微信websocket的数据推送接口调整
取消没用的mqtt
This commit is contained in:
parent
c87d090a71
commit
3a040fe510
@ -71,6 +71,12 @@
|
|||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
<artifactId>slf4j-api</artifactId>
|
<artifactId>slf4j-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>fastjson</artifactId>
|
||||||
|
<version>1.2.58</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
@ -1,19 +1,15 @@
|
|||||||
package com.evotech.hd.common.core.entity.cloud;
|
package com.evotech.hd.common.core.entity.cloud;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.evotech.hd.common.core.entity.BaseEntity;
|
import com.evotech.hd.common.core.entity.BaseEntity;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zrb
|
* @author zrb
|
||||||
* @since 2024-12-11
|
* @since 2024-12-11
|
||||||
@ -35,6 +31,7 @@ public class OrderSwapBatteryStep extends BaseEntity implements Serializable {
|
|||||||
private String stepName;
|
private String stepName;
|
||||||
|
|
||||||
@Schema(description = "步骤时间")
|
@Schema(description = "步骤时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
|
||||||
|
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date stepTime;
|
private Date stepTime;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,12 +26,8 @@ public class InsertAndUpdateMybatisHandler implements MetaObjectHandler {
|
|||||||
public void insertFill(MetaObject metaObject) {
|
public void insertFill(MetaObject metaObject) {
|
||||||
try {
|
try {
|
||||||
AuthUser user = RedisPermissionUtils.getUser();
|
AuthUser user = RedisPermissionUtils.getUser();
|
||||||
if(BeanUtil.isEmpty(user)){
|
|
||||||
log.info("当前操作位登录, 无需执行");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(BeanUtil.isNotEmpty(metaObject)){
|
if(BeanUtil.isNotEmpty(metaObject)){
|
||||||
mySetFieldValByName("creater",user.getUid(),metaObject);
|
mySetFieldValByName("creater",(BeanUtil.isEmpty(user) ? "system" : user.getUid()),metaObject);
|
||||||
mySetFieldValByName("ctime",new Date(),metaObject);
|
mySetFieldValByName("ctime",new Date(),metaObject);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -52,12 +48,8 @@ public class InsertAndUpdateMybatisHandler implements MetaObjectHandler {
|
|||||||
public void updateFill(MetaObject metaObject) {
|
public void updateFill(MetaObject metaObject) {
|
||||||
try {
|
try {
|
||||||
AuthUser user = RedisPermissionUtils.getUser();
|
AuthUser user = RedisPermissionUtils.getUser();
|
||||||
if(BeanUtil.isEmpty(user)){
|
|
||||||
log.info("当前操作未登录, 无需执行");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(BeanUtil.isNotEmpty(metaObject)){
|
if(BeanUtil.isNotEmpty(metaObject)){
|
||||||
mySetFieldValByName("updater",user.getUid(),metaObject);
|
mySetFieldValByName("updater",(BeanUtil.isEmpty(user) ? "system" : user.getUid()),metaObject);
|
||||||
mySetFieldValByName("uptime",new Date(),metaObject);
|
mySetFieldValByName("uptime",new Date(),metaObject);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@ -107,7 +107,7 @@ public class MqttEventSwapCompleteExchangeProcessorImpl implements MqttStrategyE
|
|||||||
orderService.updateById(order);
|
orderService.updateById(order);
|
||||||
//修改订单状态及金额
|
//修改订单状态及金额
|
||||||
alterOrderStatus(order, statusData);
|
alterOrderStatus(order, statusData);
|
||||||
//记录换电步骤
|
//记录电池信息 or 记录最后的换电步骤
|
||||||
alterSwapBatteryStep(orderStatus, statusData, order);
|
alterSwapBatteryStep(orderStatus, statusData, order);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,69 +1,69 @@
|
|||||||
package com.evotech.hd.cloud.mqtt.message.processor.strategy.impl.request;
|
//package com.evotech.hd.cloud.mqtt.message.processor.strategy.impl.request;
|
||||||
|
//
|
||||||
import cn.hutool.json.JSONObject;
|
//import cn.hutool.json.JSONObject;
|
||||||
import cn.hutool.json.JSONUtil;
|
//import cn.hutool.json.JSONUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.evotech.hd.cloud.mqtt.enums.RequestFunctionTypesEnum;
|
//import com.evotech.hd.cloud.mqtt.enums.RequestFunctionTypesEnum;
|
||||||
import com.evotech.hd.cloud.mqtt.message.MessageTopic;
|
//import com.evotech.hd.cloud.mqtt.message.MessageTopic;
|
||||||
import com.evotech.hd.cloud.mqtt.message.MqttMessageHeader;
|
//import com.evotech.hd.cloud.mqtt.message.MqttMessageHeader;
|
||||||
import com.evotech.hd.cloud.mqtt.message.dto.newer.req.MqttResponse;
|
//import com.evotech.hd.cloud.mqtt.message.dto.newer.req.MqttResponse;
|
||||||
import com.evotech.hd.cloud.mqtt.message.dto.newer.req.battery.BatteryData;
|
//import com.evotech.hd.cloud.mqtt.message.dto.newer.req.battery.BatteryData;
|
||||||
import com.evotech.hd.cloud.mqtt.message.dto.newer.req.battery.BatteryInfoReq;
|
//import com.evotech.hd.cloud.mqtt.message.dto.newer.req.battery.BatteryInfoReq;
|
||||||
import com.evotech.hd.cloud.service.BatteryStationDcService;
|
//import com.evotech.hd.cloud.service.BatteryStationDcService;
|
||||||
import com.evotech.hd.common.core.constant.HDConstant;
|
//import com.evotech.hd.common.core.constant.HDConstant;
|
||||||
import com.evotech.hd.common.core.entity.cloud.BatteryStationDc;
|
//import com.evotech.hd.common.core.entity.cloud.BatteryStationDc;
|
||||||
import jakarta.annotation.Resource;
|
//import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
//import org.springframework.stereotype.Service;
|
||||||
|
//
|
||||||
import java.util.Collections;
|
//import java.util.Collections;
|
||||||
import java.util.List;
|
//import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
//import java.util.stream.Collectors;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* 站端请求电池数据
|
// * 站端请求电池数据
|
||||||
*
|
// *
|
||||||
* @ClassName:MqttRequestBatteryInfoExchangeProcessorImpl
|
// * @ClassName:MqttRequestBatteryInfoExchangeProcessorImpl
|
||||||
* @date: 2025年05月19日 17:41
|
// * @date: 2025年05月19日 17:41
|
||||||
* @author: andy.shi
|
// * @author: andy.shi
|
||||||
* @contact: 17330188597
|
// * @contact: 17330188597
|
||||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
// * @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||||
*/
|
// */
|
||||||
@Service
|
//@Service
|
||||||
@Slf4j
|
//@Slf4j
|
||||||
public class MqttRequestBatteryInfoExchangeProcessorImpl implements MqttStrategyRequestExchangeProcessor {
|
//public class MqttRequestBatteryInfoExchangeProcessorImpl implements MqttStrategyRequestExchangeProcessor {
|
||||||
|
//
|
||||||
@Resource
|
// @Resource
|
||||||
BatteryStationDcService batteryStationDcService;
|
// BatteryStationDcService batteryStationDcService;
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public boolean accept(String functionName) {
|
// public boolean accept(String functionName) {
|
||||||
return RequestFunctionTypesEnum.FUN_BATTERYINFO.getFunction().equals(functionName);
|
// return RequestFunctionTypesEnum.FUN_BATTERYINFO.getFunction().equals(functionName);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public void exchange(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
|
// public void exchange(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
|
||||||
BatteryInfoReq batteryInfoReq = JSONUtil.toBean(dataBody, BatteryInfoReq.class);
|
// BatteryInfoReq batteryInfoReq = JSONUtil.toBean(dataBody, BatteryInfoReq.class);
|
||||||
String batCode = batteryInfoReq.getBatCode();
|
// String batCode = batteryInfoReq.getBatCode();
|
||||||
//直接默认为错误
|
// //直接默认为错误
|
||||||
MqttResponse<List<BatteryData>> response = new MqttResponse<List<BatteryData>>().createError(batteryInfoReq.getBatteryInfoRequestId());
|
// MqttResponse<List<BatteryData>> response = new MqttResponse<List<BatteryData>>().createError(batteryInfoReq.getBatteryInfoRequestId());
|
||||||
|
//
|
||||||
List<BatteryStationDc> list = Collections.emptyList();
|
// List<BatteryStationDc> list = Collections.emptyList();
|
||||||
if(org.apache.commons.lang3.StringUtils.isNotEmpty(batCode)){
|
// if(org.apache.commons.lang3.StringUtils.isNotEmpty(batCode)){
|
||||||
list.addAll(batteryStationDcService.list(new LambdaQueryWrapper<BatteryStationDc>().eq(BatteryStationDc::getBatCode, batCode).eq(BatteryStationDc::getDelFlag, HDConstant.DELETE_NO)));
|
// list.addAll(batteryStationDcService.list(new LambdaQueryWrapper<BatteryStationDc>().eq(BatteryStationDc::getBatCode, batCode).eq(BatteryStationDc::getDelFlag, HDConstant.DELETE_NO)));
|
||||||
}else{
|
// }else{
|
||||||
//如果没有电池编号, 则以当前站的电池数据为准
|
// //如果没有电池编号, 则以当前站的电池数据为准
|
||||||
list.addAll(batteryStationDcService.listByStationCode(topic.getStationCode()));
|
// list.addAll(batteryStationDcService.listByStationCode(topic.getStationCode()));
|
||||||
}
|
// }
|
||||||
if(com.evotech.hd.common.core.utils.Collections.isNotEmpty(list)){
|
// if(com.evotech.hd.common.core.utils.Collections.isNotEmpty(list)){
|
||||||
response.setCode(MqttResponse.PUBLIC_SUCCESS);
|
// response.setCode(MqttResponse.PUBLIC_SUCCESS);
|
||||||
response.setData(list.stream().map(x -> new BatteryData(x.getBatCode(), x.getProductionDate(), x.getRegistrationDate())).collect(Collectors.toList()));
|
// response.setData(list.stream().map(x -> new BatteryData(x.getBatCode(), x.getProductionDate(), x.getRegistrationDate())).collect(Collectors.toList()));
|
||||||
}else {
|
// }else {
|
||||||
response.setMsg("未查询到电池信息");
|
// response.setMsg("未查询到电池信息");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
logger.info("\r\n站端请求电池数据: MqttRequestBatteryInfoExchangeProcessorImpl =====>>>message:{}", response.getMsg());
|
// logger.info("\r\n站端请求电池数据: MqttRequestBatteryInfoExchangeProcessorImpl =====>>>message:{}", response.getMsg());
|
||||||
sendAESMessage(topic, header, RequestFunctionTypesEnum.FUN_BATTERYINFO, response);
|
// sendAESMessage(topic, header, RequestFunctionTypesEnum.FUN_BATTERYINFO, response);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
|||||||
@ -23,7 +23,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 站端回复开始换电通知信息类
|
* 换电信息--站端回复开始换电通知信息类
|
||||||
*
|
*
|
||||||
* @ClassName:MqttRequestBatterySwapExchangeProcessorImpl
|
* @ClassName:MqttRequestBatterySwapExchangeProcessorImpl
|
||||||
* @date: 2025年06月20日 11:29
|
* @date: 2025年06月20日 11:29
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取消订单请求类
|
* 取消订单--取消订单请求类
|
||||||
* @ClassName:MqttRequestCancelOrderExchangeProcessorImpl
|
* @ClassName:MqttRequestCancelOrderExchangeProcessorImpl
|
||||||
* @date: 2025年05月19日 14:51
|
* @date: 2025年05月19日 14:51
|
||||||
* @author: andy.shi
|
* @author: andy.shi
|
||||||
|
|||||||
@ -1,73 +1,73 @@
|
|||||||
package com.evotech.hd.cloud.mqtt.message.processor.strategy.impl.request;
|
//package com.evotech.hd.cloud.mqtt.message.processor.strategy.impl.request;
|
||||||
|
//
|
||||||
import cn.hutool.json.JSONObject;
|
//import cn.hutool.json.JSONObject;
|
||||||
import cn.hutool.json.JSONUtil;
|
//import cn.hutool.json.JSONUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.evotech.hd.cloud.dao.VehicleWechatUserRelationDao;
|
//import com.evotech.hd.cloud.dao.VehicleWechatUserRelationDao;
|
||||||
import com.evotech.hd.cloud.mqtt.enums.RequestFunctionTypesEnum;
|
//import com.evotech.hd.cloud.mqtt.enums.RequestFunctionTypesEnum;
|
||||||
import com.evotech.hd.cloud.mqtt.message.MessageTopic;
|
//import com.evotech.hd.cloud.mqtt.message.MessageTopic;
|
||||||
import com.evotech.hd.cloud.mqtt.message.MqttMessageHeader;
|
//import com.evotech.hd.cloud.mqtt.message.MqttMessageHeader;
|
||||||
import com.evotech.hd.cloud.mqtt.message.dto.newer.req.MqttResponse;
|
//import com.evotech.hd.cloud.mqtt.message.dto.newer.req.MqttResponse;
|
||||||
import com.evotech.hd.cloud.mqtt.message.dto.newer.req.carinfo.CarInfoReq;
|
//import com.evotech.hd.cloud.mqtt.message.dto.newer.req.carinfo.CarInfoReq;
|
||||||
import com.evotech.hd.cloud.mqtt.message.dto.newer.req.carinfo.VehicleData;
|
//import com.evotech.hd.cloud.mqtt.message.dto.newer.req.carinfo.VehicleData;
|
||||||
import com.evotech.hd.common.core.entity.cloud.VehicleWechatUserRelation;
|
//import com.evotech.hd.common.core.entity.cloud.VehicleWechatUserRelation;
|
||||||
import jakarta.annotation.Resource;
|
//import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
//import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
//import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
//import org.springframework.stereotype.Service;
|
||||||
|
//
|
||||||
import java.util.List;
|
//import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
//import java.util.stream.Collectors;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* 站端请求车辆信息
|
// * 站端请求车辆信息
|
||||||
* @ClassName:MqttRequestCarInfoExchangeProcessorImpl
|
// * @ClassName:MqttRequestCarInfoExchangeProcessorImpl
|
||||||
* @date: 2025年06月19日 11:21
|
// * @date: 2025年06月19日 11:21
|
||||||
* @author: andy.shi
|
// * @author: andy.shi
|
||||||
* @contact: 17330188597
|
// * @contact: 17330188597
|
||||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
// * @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||||
*/
|
// */
|
||||||
@Service
|
//@Service
|
||||||
@Slf4j
|
//@Slf4j
|
||||||
public class MqttRequestCarInfoExchangeProcessorImpl implements MqttStrategyRequestExchangeProcessor {
|
//public class MqttRequestCarInfoExchangeProcessorImpl implements MqttStrategyRequestExchangeProcessor {
|
||||||
|
//
|
||||||
@Resource
|
// @Resource
|
||||||
private VehicleWechatUserRelationDao vehicleWechatUserRelationDao;
|
// private VehicleWechatUserRelationDao vehicleWechatUserRelationDao;
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public boolean accept(String functionName) {
|
// public boolean accept(String functionName) {
|
||||||
return RequestFunctionTypesEnum.FUN_CARINFO.getFunction().equals(functionName);
|
// return RequestFunctionTypesEnum.FUN_CARINFO.getFunction().equals(functionName);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public void exchange(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
|
// public void exchange(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
|
||||||
CarInfoReq carInfoReq = JSONUtil.toBean(dataBody, CarInfoReq.class);
|
// CarInfoReq carInfoReq = JSONUtil.toBean(dataBody, CarInfoReq.class);
|
||||||
//直接默认为错误
|
// //直接默认为错误
|
||||||
MqttResponse<List<VehicleData>> response = new MqttResponse<List<VehicleData>>().createError(carInfoReq.getCarInfoRequestId());
|
// MqttResponse<List<VehicleData>> response = new MqttResponse<List<VehicleData>>().createError(carInfoReq.getCarInfoRequestId());
|
||||||
String plateNum = carInfoReq.getPlateNum();
|
// String plateNum = carInfoReq.getPlateNum();
|
||||||
if(StringUtils.isEmpty(plateNum)){
|
// if(StringUtils.isEmpty(plateNum)){
|
||||||
response.setMsg("没有车牌号参数");
|
// response.setMsg("没有车牌号参数");
|
||||||
}else{
|
// }else{
|
||||||
List<VehicleWechatUserRelation> list = vehicleWechatUserRelationDao.selectList(new LambdaQueryWrapper<VehicleWechatUserRelation>().eq( VehicleWechatUserRelation::getPlateNum, plateNum));
|
// List<VehicleWechatUserRelation> list = vehicleWechatUserRelationDao.selectList(new LambdaQueryWrapper<VehicleWechatUserRelation>().eq( VehicleWechatUserRelation::getPlateNum, plateNum));
|
||||||
if(com.evotech.hd.common.core.utils.Collections.isNotEmpty(list)){
|
// if(com.evotech.hd.common.core.utils.Collections.isNotEmpty(list)){
|
||||||
response.setCode(MqttResponse.PUBLIC_SUCCESS);
|
// response.setCode(MqttResponse.PUBLIC_SUCCESS);
|
||||||
response.setData(list.stream().map(x->convertVehicleData(x)).collect(Collectors.toList()));
|
// response.setData(list.stream().map(x->convertVehicleData(x)).collect(Collectors.toList()));
|
||||||
}else {
|
// }else {
|
||||||
response.setMsg("未查询到车辆信息");
|
// response.setMsg("未查询到车辆信息");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
logger.info("\r\n站端请求车辆信息: MqttRequestCarInfoExchangeProcessorImpl =====>>>message:{}", response.getMsg());
|
// logger.info("\r\n站端请求车辆信息: MqttRequestCarInfoExchangeProcessorImpl =====>>>message:{}", response.getMsg());
|
||||||
sendAESMessage(topic, header, RequestFunctionTypesEnum.FUN_CARINFO, response);
|
// sendAESMessage(topic, header, RequestFunctionTypesEnum.FUN_CARINFO, response);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
public static VehicleData convertVehicleData(VehicleWechatUserRelation data){
|
// public static VehicleData convertVehicleData(VehicleWechatUserRelation data){
|
||||||
VehicleData vd = new VehicleData();
|
// VehicleData vd = new VehicleData();
|
||||||
BeanUtils.copyProperties(data, vd);
|
// BeanUtils.copyProperties(data, vd);
|
||||||
return vd;
|
// return vd;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
|||||||
@ -19,7 +19,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 站端请求创建预约单类
|
* 预约订单--站端请求创建预约单类
|
||||||
*
|
*
|
||||||
* @ClassName:MqttRequestPreOrderExchangeProcessorImpl
|
* @ClassName:MqttRequestPreOrderExchangeProcessorImpl
|
||||||
* @date: 2025年05月19日 17:41
|
* @date: 2025年05月19日 17:41
|
||||||
@ -42,7 +42,7 @@ public class MqttRequestPreOrderExchangeProcessorImpl implements MqttStrategyReq
|
|||||||
@Override
|
@Override
|
||||||
public void exchange(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
|
public void exchange(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
|
||||||
OrderSwapBatteryPre orderSwapBatteryPre = JSONUtil.toBean(dataBody, OrderSwapBatteryPre.class);
|
OrderSwapBatteryPre orderSwapBatteryPre = JSONUtil.toBean(dataBody, OrderSwapBatteryPre.class);
|
||||||
MqttResponse response = new MqttResponse().createError(orderSwapBatteryPre.getSourceId());
|
MqttResponse response = new MqttResponse().error("");
|
||||||
// 1. 基础字段校验
|
// 1. 基础字段校验
|
||||||
if (validateRequiredFields(orderSwapBatteryPre)) {
|
if (validateRequiredFields(orderSwapBatteryPre)) {
|
||||||
response.setMsg("预约信息不完整");
|
response.setMsg("预约信息不完整");
|
||||||
@ -55,6 +55,7 @@ public class MqttRequestPreOrderExchangeProcessorImpl implements MqttStrategyReq
|
|||||||
// 创建预约单信息
|
// 创建预约单信息
|
||||||
orderSwapBatteryPre.setUcode(wechatUser.getWuid());
|
orderSwapBatteryPre.setUcode(wechatUser.getWuid());
|
||||||
orderSwapBatteryPre.setSource(3);
|
orderSwapBatteryPre.setSource(3);
|
||||||
|
orderSwapBatteryPre.setStationCode(topic.getStationCode());
|
||||||
Result<Boolean> integerResult = orderSwapBatteryPreService.addOrderSwapBatteryPre(orderSwapBatteryPre);
|
Result<Boolean> integerResult = orderSwapBatteryPreService.addOrderSwapBatteryPre(orderSwapBatteryPre);
|
||||||
//检查结果
|
//检查结果
|
||||||
if (integerResult.getData()){
|
if (integerResult.getData()){
|
||||||
@ -85,12 +86,12 @@ public class MqttRequestPreOrderExchangeProcessorImpl implements MqttStrategyReq
|
|||||||
return Stream.of(
|
return Stream.of(
|
||||||
order.getPlateNum(),
|
order.getPlateNum(),
|
||||||
order.getPhone(),
|
order.getPhone(),
|
||||||
order.getStationCode(),
|
// order.getStationCode(),
|
||||||
order.getStationName(),
|
// order.getStationName(),
|
||||||
order.getUname(),
|
order.getUname()
|
||||||
order.getSwapDay(),
|
// order.getSwapDay(),
|
||||||
order.getSwapDuration(),
|
// order.getSwapDuration(),
|
||||||
order.getReservationTime()
|
// order.getReservationTime()
|
||||||
).anyMatch(StrUtil::isBlankIfStr);
|
).anyMatch(StrUtil::isBlankIfStr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 接收站端推送的车牌照, 创建车辆信息和预约单
|
* 初始化车辆和预约单--接收站端推送的车牌照, 创建车辆信息和预约单
|
||||||
*
|
*
|
||||||
* @ClassName:MqttRequestPushCarCreateMakeAppointmentExchangeProcessorImpl
|
* @ClassName:MqttRequestPushCarCreateMakeAppointmentExchangeProcessorImpl
|
||||||
* @date: 2025年04月30日 15:34
|
* @date: 2025年04月30日 15:34
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import com.evotech.hd.common.core.entity.order.Order;
|
|||||||
import com.evotech.hd.common.core.enums.CodeMsg;
|
import com.evotech.hd.common.core.enums.CodeMsg;
|
||||||
import com.evotech.hd.common.core.enums.OrderStatusEnums;
|
import com.evotech.hd.common.core.enums.OrderStatusEnums;
|
||||||
import com.evotech.hd.common.core.enums.SwapBatteryStepEnum;
|
import com.evotech.hd.common.core.enums.SwapBatteryStepEnum;
|
||||||
|
import com.evotech.hd.common.core.utils.Collections;
|
||||||
import com.evotech.hd.common.redis.utils.RedisServiceUtils;
|
import com.evotech.hd.common.redis.utils.RedisServiceUtils;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -30,7 +31,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 站端根据车牌号查询订单
|
* 查询订单--站端根据车牌号查询订单
|
||||||
*
|
*
|
||||||
* @ClassName:MqttRequestQueryOrderExchangeProcessorImpl
|
* @ClassName:MqttRequestQueryOrderExchangeProcessorImpl
|
||||||
* @date: 2025年05月19日 17:41
|
* @date: 2025年05月19日 17:41
|
||||||
@ -72,7 +73,7 @@ public class MqttRequestQueryOrderExchangeProcessorImpl implements MqttStrategyR
|
|||||||
.eq(Order::getPlateNum, orderSwapBatteryPre.getPlateNum())
|
.eq(Order::getPlateNum, orderSwapBatteryPre.getPlateNum())
|
||||||
.eq(Order::getStationCode, orderSwapBatteryPre.getStationCode())
|
.eq(Order::getStationCode, orderSwapBatteryPre.getStationCode())
|
||||||
.eq(Order::getOrderPreId, orderSwapBatteryPre.getPkId())
|
.eq(Order::getOrderPreId, orderSwapBatteryPre.getPkId())
|
||||||
.eq(Order::getStatus, OrderStatusEnums.CREATE.getCode()));
|
.in(Order::getStatus, Collections.asList(OrderStatusEnums.CREATE.getCode(), OrderStatusEnums.SWAP.getCode())));
|
||||||
if (ObjectUtils.isNotEmpty(order)) {
|
if (ObjectUtils.isNotEmpty(order)) {
|
||||||
response.setCode(MqttResponse.PUBLIC_SUCCESS);
|
response.setCode(MqttResponse.PUBLIC_SUCCESS);
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import org.springframework.util.StringUtils;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mqtt查询充电策略
|
* 查询充电策略--Mqtt查询充电策略
|
||||||
* @ClassName:StrategyMqttMessageRequestExchangeProcessorImpl
|
* @ClassName:StrategyMqttMessageRequestExchangeProcessorImpl
|
||||||
* @date: 2025年04月08日 11:36
|
* @date: 2025年04月08日 11:36
|
||||||
* @author: andy.shi
|
* @author: andy.shi
|
||||||
|
|||||||
@ -1,42 +1,42 @@
|
|||||||
package com.evotech.hd.cloud.mqtt.message.processor.strategy.impl.state;
|
//package com.evotech.hd.cloud.mqtt.message.processor.strategy.impl.state;
|
||||||
|
//
|
||||||
import cn.hutool.json.JSONObject;
|
//import cn.hutool.json.JSONObject;
|
||||||
import com.evotech.hd.cloud.dao.OrderSwapBatteryStepDao;
|
//import com.evotech.hd.cloud.dao.OrderSwapBatteryStepDao;
|
||||||
import com.evotech.hd.cloud.mqtt.enums.StateFunctionTypesEnum;
|
//import com.evotech.hd.cloud.mqtt.enums.StateFunctionTypesEnum;
|
||||||
import com.evotech.hd.cloud.mqtt.message.MessageTopic;
|
//import com.evotech.hd.cloud.mqtt.message.MessageTopic;
|
||||||
import com.evotech.hd.cloud.mqtt.message.MqttMessageHeader;
|
//import com.evotech.hd.cloud.mqtt.message.MqttMessageHeader;
|
||||||
import com.evotech.hd.cloud.utils.components.HDStepDictComponent;
|
//import com.evotech.hd.cloud.utils.components.HDStepDictComponent;
|
||||||
import jakarta.annotation.Resource;
|
//import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
//import org.springframework.stereotype.Service;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* 站端反馈订单状态
|
// * 站端反馈订单状态
|
||||||
*
|
// *
|
||||||
* @ClassName:MqttStateSwapStepDataExchangeProcessor
|
// * @ClassName:MqttStateSwapStepDataExchangeProcessor
|
||||||
* @date: 2025年04月29日 13:26
|
// * @date: 2025年04月29日 13:26
|
||||||
* @author: andy.shi
|
// * @author: andy.shi
|
||||||
* @contact: 17330188597
|
// * @contact: 17330188597
|
||||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
// * @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||||
*/
|
// */
|
||||||
@Slf4j
|
//@Slf4j
|
||||||
@Service
|
//@Service
|
||||||
public class MqttStateOrderStatusDataExchangeProcessor implements MqttStrategyStateExchangeProcessor {
|
//public class MqttStateOrderStatusDataExchangeProcessor implements MqttStrategyStateExchangeProcessor {
|
||||||
|
//
|
||||||
@Resource
|
// @Resource
|
||||||
private HDStepDictComponent hdStepDictComponent;
|
// private HDStepDictComponent hdStepDictComponent;
|
||||||
@Resource
|
// @Resource
|
||||||
private OrderSwapBatteryStepDao orderSwapBatteryStepDao;
|
// private OrderSwapBatteryStepDao orderSwapBatteryStepDao;
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public boolean accept(String functionName) {
|
// public boolean accept(String functionName) {
|
||||||
return StateFunctionTypesEnum.FUN_ORDERSTATUS.getFunction().equals(functionName);
|
// return StateFunctionTypesEnum.FUN_ORDERSTATUS.getFunction().equals(functionName);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public void exchange(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
|
// public void exchange(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
|
||||||
// OrderStatus orderStatus = JSONUtil.toBean(dataBody, OrderStatus.class);
|
//// OrderStatus orderStatus = JSONUtil.toBean(dataBody, OrderStatus.class);
|
||||||
// OrderStatusData statusData = JSONUtil.toBean(dataBody.getJSONObject("statusData"), OrderStatusData.class);
|
//// OrderStatusData statusData = JSONUtil.toBean(dataBody.getJSONObject("statusData"), OrderStatusData.class);
|
||||||
log.info("\r\n=====>>>站端反馈订单状态--MQTT收到消息主题:{},换电步骤名称:{}",topic, dataBody.toString());
|
// log.info("\r\n=====>>>站端反馈订单状态--MQTT收到消息主题:{},换电步骤名称:{}",topic, dataBody.toString());
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|||||||
@ -50,16 +50,11 @@ public class MqttStateSwapStepDataExchangeProcessor implements MqttStrategyState
|
|||||||
public void exchange(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
|
public void exchange(MessageTopic topic, MqttMessageHeader header, JSONObject dataBody) {
|
||||||
SwapStep swapStep = JSONUtil.toBean(dataBody, SwapStep.class);
|
SwapStep swapStep = JSONUtil.toBean(dataBody, SwapStep.class);
|
||||||
// 记录换电步骤
|
// 记录换电步骤
|
||||||
// OrderSwapBatteryStep step = new OrderSwapBatteryStep();
|
|
||||||
// BeanUtils.copyProperties(swapStep, step);
|
|
||||||
// step.setCtime(new Date());
|
|
||||||
// step.setCreater("SYS");
|
|
||||||
// step.setStepName(hdStepDictComponent.hdStepDictName(step.getStep()));
|
|
||||||
log.info("\r\n=====>>>站端反馈换电步骤--MQTT收到消息主题:{},换电步骤名称:{}",topic, hdStepDictComponent.hdStepDictName(swapStep.getStep()));
|
log.info("\r\n=====>>>站端反馈换电步骤--MQTT收到消息主题:{},换电步骤名称:{}",topic, hdStepDictComponent.hdStepDictName(swapStep.getStep()));
|
||||||
if(orderSwapBatteryStepService.addOrderSwapBatteryStepBySwapComplete(swapStep.getOrderNo(), swapStep.getStep(), swapStep.getStepTime())){
|
if(orderSwapBatteryStepService.addOrderSwapBatteryStepBySwapComplete(swapStep.getOrderNo(), swapStep.getStep(), swapStep.getStepTime())){
|
||||||
Order order = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, swapStep.getOrderNo()).eq(Order::getDelFlag, HDConstant.DELETE_NO));
|
Order order = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, swapStep.getOrderNo()).eq(Order::getDelFlag, HDConstant.DELETE_NO));
|
||||||
//发送通知到指定客户端
|
//发送通知到指定客户端
|
||||||
wechatService.sendClientMessage(order.getPreWechatId(), JSON.toJSONString(orderSwapBatteryStepService.list(new LambdaQueryWrapper<OrderSwapBatteryStep>().eq(OrderSwapBatteryStep::getOrderNo, order.getOrderNo()).orderByAsc(OrderSwapBatteryStep::getStepTime))));
|
wechatService.sendClientMessage(order.getPreWechatId(), JSON.toJSONString(orderSwapBatteryStepService.list(new LambdaQueryWrapper<OrderSwapBatteryStep>().eq(OrderSwapBatteryStep::getOrderNo, order.getOrderNo()).orderByAsc(OrderSwapBatteryStep::getStep))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -201,7 +201,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
|||||||
order.setPlateNum(orderSwapBatteryPre.getPlateNum());
|
order.setPlateNum(orderSwapBatteryPre.getPlateNum());
|
||||||
order.setOrderTime(new Date());
|
order.setOrderTime(new Date());
|
||||||
order.setOrderType(HDConstant.OrderConstant.ORDER_TYPE_SWAP);
|
order.setOrderType(HDConstant.OrderConstant.ORDER_TYPE_SWAP);
|
||||||
order.setStatus(OrderStatusEnums.CREATE.getCode());
|
//站端不会推送换电中事件, 所以根据预约单创建订单, 即为换电中
|
||||||
|
order.setStatus(OrderStatusEnums.SWAP.getCode());
|
||||||
order.setStationCode(orderSwapBatteryPre.getStationCode());
|
order.setStationCode(orderSwapBatteryPre.getStationCode());
|
||||||
order.setStationName(orderSwapBatteryPre.getStationName());
|
order.setStationName(orderSwapBatteryPre.getStationName());
|
||||||
order.setDelFlag(HDConstant.DELETE_NO);
|
order.setDelFlag(HDConstant.DELETE_NO);
|
||||||
|
|||||||
@ -0,0 +1,16 @@
|
|||||||
|
package com.evotech.hd.wechat.Dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.evotech.hd.wechat.websocket.entity.LogWebSocket;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接口
|
||||||
|
*
|
||||||
|
* @ClassName:LogWebSocketDao
|
||||||
|
* @date: 2025年07月25日 8:45
|
||||||
|
* @author: andy.shi
|
||||||
|
* @contact: 17330188597
|
||||||
|
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||||
|
*/
|
||||||
|
public interface LogWebSocketDao extends BaseMapper<LogWebSocket> {
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package com.evotech.hd.wechat.Dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.evotech.hd.wechat.websocket.entity.OnlineWebSocketUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接口
|
||||||
|
*
|
||||||
|
* @ClassName:LogWebSocketDao
|
||||||
|
* @date: 2025年07月25日 8:45
|
||||||
|
* @author: andy.shi
|
||||||
|
* @contact: 17330188597
|
||||||
|
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||||
|
*/
|
||||||
|
public interface OnlineWebSocketUserDao extends BaseMapper<OnlineWebSocketUser> {
|
||||||
|
}
|
||||||
@ -1,5 +1,9 @@
|
|||||||
package com.evotech.hd.wechat.websocket.controller;
|
package com.evotech.hd.wechat.websocket.controller;
|
||||||
|
|
||||||
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.evotech.hd.wechat.Dao.OnlineWebSocketUserDao;
|
||||||
|
import com.evotech.hd.wechat.websocket.entity.OnlineWebSocketUser;
|
||||||
import jakarta.websocket.OnClose;
|
import jakarta.websocket.OnClose;
|
||||||
import jakarta.websocket.OnError;
|
import jakarta.websocket.OnError;
|
||||||
import jakarta.websocket.OnOpen;
|
import jakarta.websocket.OnOpen;
|
||||||
@ -9,6 +13,8 @@ import jakarta.websocket.server.ServerEndpoint;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* websocket服务类
|
* websocket服务类
|
||||||
@ -28,6 +34,7 @@ import org.springframework.stereotype.Component;
|
|||||||
public class WebSocketService {
|
public class WebSocketService {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 建立连接
|
* 建立连接
|
||||||
*
|
*
|
||||||
@ -38,6 +45,12 @@ public class WebSocketService {
|
|||||||
public void openConnection(Session session, @PathParam(value = "wechatId") String wechatId) {
|
public void openConnection(Session session, @PathParam(value = "wechatId") String wechatId) {
|
||||||
WebSocketUtils.SESSION_POOLS.put(wechatId, session);
|
WebSocketUtils.SESSION_POOLS.put(wechatId, session);
|
||||||
WebSocketUtils.onlineNum.incrementAndGet();
|
WebSocketUtils.onlineNum.incrementAndGet();
|
||||||
|
try {
|
||||||
|
SpringUtil.getBean(OnlineWebSocketUserDao.class).insert(new OnlineWebSocketUser(new Date(), wechatId));
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("记录连接用户出现错误"+e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
log.info(wechatId + "建立连接! 当前连接数为: {}", WebSocketUtils.onlineNum);
|
log.info(wechatId + "建立连接! 当前连接数为: {}", WebSocketUtils.onlineNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,6 +63,12 @@ public class WebSocketService {
|
|||||||
public void closeConnection(@PathParam(value = "wechatId") String wechatId) {
|
public void closeConnection(@PathParam(value = "wechatId") String wechatId) {
|
||||||
WebSocketUtils.SESSION_POOLS.remove(wechatId);
|
WebSocketUtils.SESSION_POOLS.remove(wechatId);
|
||||||
int cnt = WebSocketUtils.onlineNum.decrementAndGet();
|
int cnt = WebSocketUtils.onlineNum.decrementAndGet();
|
||||||
|
try {
|
||||||
|
SpringUtil.getBean(OnlineWebSocketUserDao.class).delete(new LambdaQueryWrapper<OnlineWebSocketUser>().eq(OnlineWebSocketUser::getWechatId, wechatId));
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("删除连接用户出现错误"+e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
log.info(wechatId + "断开连接, 当前连接数为:{}", cnt);
|
log.info(wechatId + "断开连接, 当前连接数为:{}", cnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,8 @@
|
|||||||
package com.evotech.hd.wechat.websocket.controller;
|
package com.evotech.hd.wechat.websocket.controller;
|
||||||
|
|
||||||
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
|
import com.evotech.hd.wechat.Dao.LogWebSocketDao;
|
||||||
|
import com.evotech.hd.wechat.websocket.entity.LogWebSocket;
|
||||||
import jakarta.websocket.Session;
|
import jakarta.websocket.Session;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@ -54,6 +57,12 @@ public class WebSocketUtils {
|
|||||||
*/
|
*/
|
||||||
public static void sendMessage(String wechatId , String message){
|
public static void sendMessage(String wechatId , String message){
|
||||||
try {
|
try {
|
||||||
|
//记录日志
|
||||||
|
try {
|
||||||
|
SpringUtil.getBean(LogWebSocketDao.class).insert(new LogWebSocket(wechatId, message));
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("日志记录错误"+e.getMessage());
|
||||||
|
}
|
||||||
sendMessage(WebSocketUtils.SESSION_POOLS.get(wechatId), message);
|
sendMessage(WebSocketUtils.SESSION_POOLS.get(wechatId), message);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("信息推送失败, 用户的微信ID: {}, 推送消息是: {}, 异常原因是:{}", wechatId, message, e.getMessage());
|
log.error("信息推送失败, 用户的微信ID: {}, 推送消息是: {}, 异常原因是:{}", wechatId, message, e.getMessage());
|
||||||
|
|||||||
@ -0,0 +1,33 @@
|
|||||||
|
package com.evotech.hd.wechat.websocket.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.evotech.hd.common.core.entity.IdEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类
|
||||||
|
*
|
||||||
|
* @ClassName:LogWebSocket
|
||||||
|
* @date: 2025年07月25日 8:37
|
||||||
|
* @author: andy.shi
|
||||||
|
* @contact: 17330188597
|
||||||
|
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "yt_t_log_web_socket", schema = "hd_wechat")
|
||||||
|
public class LogWebSocket extends IdEntity implements Serializable {
|
||||||
|
|
||||||
|
String clientWechatId;
|
||||||
|
|
||||||
|
String sendInfo;
|
||||||
|
|
||||||
|
public LogWebSocket() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogWebSocket(String clientWechatId, String sendInfo) {
|
||||||
|
this.clientWechatId = clientWechatId;
|
||||||
|
this.sendInfo = sendInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
package com.evotech.hd.wechat.websocket.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.evotech.hd.common.core.entity.IdEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类
|
||||||
|
*
|
||||||
|
* @ClassName:OnlineWebSocketUser
|
||||||
|
* @date: 2025年07月25日 8:42
|
||||||
|
* @author: andy.shi
|
||||||
|
* @contact: 17330188597
|
||||||
|
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "yt_t_online_web_socket_user", schema = "hd_wechat")
|
||||||
|
public class OnlineWebSocketUser extends IdEntity implements Serializable {
|
||||||
|
String wechatId;
|
||||||
|
//链接时间
|
||||||
|
Date linkDate;
|
||||||
|
|
||||||
|
public OnlineWebSocketUser() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public OnlineWebSocketUser(Date linkDate, String wechatId) {
|
||||||
|
this.linkDate = linkDate;
|
||||||
|
this.wechatId = wechatId;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user