1078-调整业务信息

This commit is contained in:
648540858 2024-06-06 07:26:20 +08:00
parent 5c826ef449
commit f7d811a299
36 changed files with 184 additions and 186 deletions

View File

@ -22,6 +22,12 @@ public class JTChannel {
@Schema(description = "设备的数据库ID") @Schema(description = "设备的数据库ID")
private int deviceId; private int deviceId;
/**
* 通道ID
*/
@Schema(description = "通道ID")
private Integer channelId;
@Schema(description = "创建时间") @Schema(description = "创建时间")
private String createTime; private String createTime;
@ -69,12 +75,21 @@ public class JTChannel {
this.updateTime = updateTime; this.updateTime = updateTime;
} }
public Integer getChannelId() {
return channelId;
}
public void setChannelId(Integer channelId) {
this.channelId = channelId;
}
@Override @Override
public String toString() { public String toString() {
return "JTChannel{" + return "JTChannel{" +
"id=" + id + "id=" + id +
", name='" + name + '\'' + ", name='" + name + '\'' +
", deviceId=" + deviceId + ", deviceId=" + deviceId +
", channelId=" + channelId +
", createTime='" + createTime + '\'' + ", createTime='" + createTime + '\'' +
", updateTime='" + updateTime + '\'' + ", updateTime='" + updateTime + '\'' +
'}'; '}';

View File

@ -50,13 +50,13 @@ public class JTDevice {
* 终端手机号 * 终端手机号
*/ */
@Schema(description = "终端手机号") @Schema(description = "终端手机号")
private Integer phoneNumber; private String phoneNumber;
/** /**
* 设备ID * 终端ID
*/ */
@Schema(description = "设备ID") @Schema(description = "终端ID")
private String deviceId; private String terminalId;
/** /**
* 车牌颜色 * 车牌颜色
@ -154,20 +154,20 @@ public class JTDevice {
this.deviceModel = deviceModel; this.deviceModel = deviceModel;
} }
public Integer getPhoneNumber() { public String getPhoneNumber() {
return phoneNumber; return phoneNumber;
} }
public void setPhoneNumber(Integer phoneNumber) { public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber; this.phoneNumber = phoneNumber;
} }
public String getDeviceId() { public String getTerminalId() {
return deviceId; return terminalId;
} }
public void setDeviceId(String deviceId) { public void setTerminalId(String deviceId) {
this.deviceId = deviceId; this.terminalId = deviceId;
} }
public int getPlateColor() { public int getPlateColor() {
@ -244,7 +244,7 @@ public class JTDevice {
", 制造商ID='" + makerId + '\'' + ", 制造商ID='" + makerId + '\'' +
", 终端型号='" + deviceModel + '\'' + ", 终端型号='" + deviceModel + '\'' +
", 终端手机号='" + phoneNumber + '\'' + ", 终端手机号='" + phoneNumber + '\'' +
", 设备ID='" + deviceId + '\'' + ", 设备ID='" + terminalId + '\'' +
", 车牌颜色=" + plateColor + ", 车牌颜色=" + plateColor +
", 车牌='" + plateNo + '\'' + ", 车牌='" + plateNo + '\'' +
", 鉴权码='" + authenticationCode + '\'' + ", 鉴权码='" + authenticationCode + '\'' +

View File

@ -53,10 +53,10 @@ public class Jt808Decoder extends ByteToMessageDecoder {
header.setVersion(buf.readUnsignedByte()); header.setVersion(buf.readUnsignedByte());
String devId = ByteBufUtil.hexDump(buf.readSlice(10)); String devId = ByteBufUtil.hexDump(buf.readSlice(10));
header.setTerminalPhoneNumber(devId.replaceFirst("^0*", "")); header.setPhoneNumber(devId.replaceFirst("^0*", ""));
} else { } else {
header.setTerminalPhoneNumber(ByteBufUtil.hexDump(buf.readSlice(6)).replaceFirst("^0*", "")); header.setPhoneNumber(ByteBufUtil.hexDump(buf.readSlice(6)).replaceFirst("^0*", ""));
} }
header.setSn(buf.readUnsignedShort()); header.setSn(buf.readUnsignedShort());
if (isSubpackage) { if (isSubpackage) {

View File

@ -24,7 +24,7 @@ public enum MultiPacketManager {
* 增加待合并的分包如果分包接受完毕会返回完整的数据包 * 增加待合并的分包如果分包接受完毕会返回完整的数据包
*/ */
public ByteBuf add(MultiPacket packet) { public ByteBuf add(MultiPacket packet) {
String key = packet.getHeader().getMsgId() + "/" + packet.getHeader().getTerminalPhoneNumber(); String key = packet.getHeader().getMsgId() + "/" + packet.getHeader().getPhoneNumber();
logger.debug("分包消息: \n{}", packet); logger.debug("分包消息: \n{}", packet);
List<MultiPacket> multiPackets = packetMap.computeIfAbsent(key, k -> new ArrayList<>(packet.getCount())); List<MultiPacket> multiPackets = packetMap.computeIfAbsent(key, k -> new ArrayList<>(packet.getCount()));
multiPackets.add(packet); multiPackets.add(packet);

View File

@ -94,12 +94,12 @@ public class Jt808EncoderCmd extends MessageToByteEncoder<Cmd> {
byteBuf.writeByte(header.getVersion()); byteBuf.writeByte(header.getVersion());
// 终端手机号 // 终端手机号
byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getTerminalPhoneNumber(), 20))); byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getPhoneNumber(), 20)));
} else { } else {
// 消息体属性 // 消息体属性
byteBuf.writeShort(encode.readableBytes()); byteBuf.writeShort(encode.readableBytes());
byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getTerminalPhoneNumber(), 12))); byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getPhoneNumber(), 12)));
} }
// 消息体流水号 // 消息体流水号

View File

@ -49,7 +49,7 @@ public class Jt808Handler extends ChannelInboundHandlerAdapter {
} }
ConnectChangeEvent event = new ConnectChangeEvent(this); ConnectChangeEvent event = new ConnectChangeEvent(this);
event.setConnected(true); event.setConnected(true);
event.setTerminalId(session.getDevId()); event.setPhoneNumber(session.getDevId());
applicationEventPublisher.publishEvent(event); applicationEventPublisher.publishEvent(event);
} }
@ -63,7 +63,7 @@ public class Jt808Handler extends ChannelInboundHandlerAdapter {
} }
ConnectChangeEvent event = new ConnectChangeEvent(this); ConnectChangeEvent event = new ConnectChangeEvent(this);
event.setConnected(false); event.setConnected(false);
event.setTerminalId(session.getDevId()); event.setPhoneNumber(session.getDevId());
applicationEventPublisher.publishEvent(event); applicationEventPublisher.publishEvent(event);
} }

View File

@ -64,20 +64,43 @@ public class JT1078DeviceController {
@Operation(summary = "删除设备", security = @SecurityRequirement(name = JwtUtils.HEADER)) @Operation(summary = "删除设备", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "phoneNumber", description = "设备手机号", required = true)
@DeleteMapping("/delete") @DeleteMapping("/delete")
public void addDevice(Integer phoneNumber){ public void addDevice(String phoneNumber){
assert phoneNumber != null; assert phoneNumber != null;
service.deleteDeviceByPhoneNumber(phoneNumber); service.deleteDeviceByPhoneNumber(phoneNumber);
} }
@Operation(summary = "1078-查询部标通道", security = @SecurityRequirement(name = JwtUtils.HEADER)) @Operation(summary = "1078-查询部标通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "phoneNumber", description = "设备手机号", required = true) @Parameter(name = "deviceId", description = "设备ID", required = true)
@Parameter(name = "query", description = "查询内容") @Parameter(name = "query", description = "查询内容")
@GetMapping("/channel/list") @GetMapping("/channel/list")
public List<JTChannel> getChannels(@RequestParam(required = true) Integer phoneNumber, public List<JTChannel> getChannels(@RequestParam(required = true) Integer deviceId,
@RequestParam(required = false) String query) { @RequestParam(required = false) String query) {
assert phoneNumber != null; assert deviceId != null;
return service.getChannelList(phoneNumber, query); return service.getChannelList(deviceId, query);
}
@Operation(summary = "1078-更新通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "channel", description = "通道", required = true)
@PostMapping("/update")
public void updateChannel(JTChannel channel){
assert channel.getId() > 0;
assert channel.getChannelId() != null;
service.updateChannel(channel);
}
@Operation(summary = "1078-新增通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "channel", description = "通道", required = true)
@PostMapping("/add")
public void addChannel(JTChannel channel){
assert channel.getChannelId() != null;
service.addChannel(channel);
}
@Operation(summary = "1078-删除通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "id", description = "通道的数据库ID", required = true)
@DeleteMapping("/delete")
public void deleteChannel(Integer id){
service.deleteChannelById(id);
} }
} }

View File

@ -23,87 +23,31 @@ public interface JTChannelMapper {
List<JTChannel> getAll(@Param("deviceId") int deviceId, @Param("query") String query); List<JTChannel> getAll(@Param("deviceId") int deviceId, @Param("query") String query);
@Update(value = {" <script>" + @Update(value = {" <script>" +
"UPDATE wvp_jt_device " + "UPDATE wvp_jt_channel " +
"SET update_time=#{updateTime}" + "SET update_time=#{updateTime}" +
"<if test=\"deviceId != null\">, device_id=#{deviceId}</if>" + "<if test=\"deviceId != null\">, device_id=#{deviceId}</if>" +
"<if test=\"provinceId != null\">, province_id=#{provinceId}</if>" + "<if test=\"name != null\">, name=#{name}</if>" +
"<if test=\"provinceText != null\">, province_text=#{provinceText}</if>" + "<if test=\"channelId != null\">, channelId=#{channelId}</if>" +
"<if test=\"cityId != null\">, city_id=#{cityId}</if>" + "WHERE id=#{id}"+
"<if test=\"cityText != null\">, city_text=#{cityText}</if>" +
"<if test=\"makerId != null\">, maker_id=#{makerId}</if>" +
"<if test=\"deviceModel != null\">, device_model=#{deviceModel}</if>" +
"<if test=\"plateColor != null\">, plate_color=#{plateColor}</if>" +
"<if test=\"plateNo != null\">, plate_no=#{plateNo}</if>" +
"<if test=\"authenticationCode != null\">, authentication_code=#{authenticationCode}</if>" +
"<if test=\"longitude != null\">, longitude=#{longitude}</if>" +
"<if test=\"latitude != null\">, latitude=#{latitude}</if>" +
"<if test=\"status != null\">, status=#{status}</if>" +
"WHERE terminal_id=#{terminalId}"+
" </script>"}) " </script>"})
void updateDevice(JTDevice device); void update(JTChannel channel);
@Select(value = {" <script>" +
"SELECT * " +
"from " +
"wvp_jt_device jd " +
"WHERE " +
"1=1" +
" <if test='query != null'> AND (" +
"jd.terminal_id LIKE concat('%',#{query},'%') " +
"jd.province_id LIKE concat('%',#{query},'%') " +
"OR jd.city_id LIKE concat('%',#{query},'%') " +
"OR jd.maker_id LIKE concat('%',#{query},'%') " +
"OR jd.device_model LIKE concat('%',#{query},'%') " +
"OR jd.device_id LIKE concat('%',#{query},'%') " +
"OR jd.plate_no LIKE concat('%',#{query},'%')" +
")</if> " +
" <if test='online == true' > AND jd.status= true</if>" +
" <if test='online == false' > AND jd.status= false</if>" +
"ORDER BY jd.update_time " +
" </script>"})
List<JTDevice> getDeviceList(@Param("query") String query, @Param("online") Boolean online);
@Insert("INSERT INTO wvp_jt_device (" + @Insert("INSERT INTO wvp_jt_channel (" +
"terminal_id,"+
"province_id,"+
"province_text,"+
"city_id,"+
"city_text,"+
"maker_id,"+
"device_id,"+ "device_id,"+
"device_model,"+ "channel_id,"+
"plate_color,"+ "name,"+
"plate_no,"+
"authentication_code,"+
"longitude,"+
"latitude,"+
"create_time,"+ "create_time,"+
"update_time"+ "update_time"+
") VALUES (" + ") VALUES (" +
"#{terminalId}," +
"#{provinceId}," +
"#{provinceText}," +
"#{cityId}," +
"#{cityText}," +
"#{makerId}," +
"#{deviceId}," + "#{deviceId}," +
"#{deviceModel}," + "#{channelId}," +
"#{plateColor}," + "#{name}," +
"#{plateNo}," +
"#{authenticationCode}," +
"#{longitude}," +
"#{latitude}," +
"#{createTime}," + "#{createTime}," +
"#{updateTime}" + "#{updateTime}" +
")") ")")
void addDevice(JTDevice device); void add(JTChannel channel);
@Delete("delete from wvp_jt_device where terminal_id = #{terminalId}") @Delete("delete from wvp_jt_channel where id = #{id}")
void deleteDeviceByTerminalId(@Param("terminalId") String terminalId); void delete(@Param("id") int id);
@Update(value = {" <script>" +
"UPDATE wvp_jt_device " +
"SET status=#{connected} " +
"WHERE terminal_id=#{terminalId}"+
" </script>"})
void updateDeviceStatus(@Param("connected") boolean connected, @Param("terminalId") String terminalId);
} }

View File

@ -6,15 +6,15 @@ import org.apache.ibatis.annotations.*;
import java.util.List; import java.util.List;
@Mapper @Mapper
public interface JTDeviceMapper { public interface JTTerminalMapper {
@Select("SELECT * FROM wvp_jt_device where terminal_id=#{terminalId}") @Select("SELECT * FROM wvp_jt_terminal where phone_number=#{phoneNumber}")
JTDevice getDevice(@Param("terminalId") Integer terminalId); JTDevice getDevice(@Param("phoneNumber") String phoneNumber);
@Update(value = {" <script>" + @Update(value = {" <script>" +
"UPDATE wvp_jt_device " + "UPDATE wvp_jt_terminal " +
"SET update_time=#{updateTime}" + "SET update_time=#{updateTime}" +
"<if test=\"deviceId != null\">, device_id=#{deviceId}</if>" + "<if test=\"terminalId != null\">, terminal_id=#{terminalId}</if>" +
"<if test=\"provinceId != null\">, province_id=#{provinceId}</if>" + "<if test=\"provinceId != null\">, province_id=#{provinceId}</if>" +
"<if test=\"provinceText != null\">, province_text=#{provinceText}</if>" + "<if test=\"provinceText != null\">, province_text=#{provinceText}</if>" +
"<if test=\"cityId != null\">, city_id=#{cityId}</if>" + "<if test=\"cityId != null\">, city_id=#{cityId}</if>" +
@ -27,22 +27,22 @@ public interface JTDeviceMapper {
"<if test=\"longitude != null\">, longitude=#{longitude}</if>" + "<if test=\"longitude != null\">, longitude=#{longitude}</if>" +
"<if test=\"latitude != null\">, latitude=#{latitude}</if>" + "<if test=\"latitude != null\">, latitude=#{latitude}</if>" +
"<if test=\"status != null\">, status=#{status}</if>" + "<if test=\"status != null\">, status=#{status}</if>" +
"WHERE terminal_id=#{terminalId}"+ "WHERE phone_number=#{phoneNumber}"+
" </script>"}) " </script>"})
void updateDevice(JTDevice device); void updateDevice(JTDevice device);
@Select(value = {" <script>" + @Select(value = {" <script>" +
"SELECT * " + "SELECT * " +
"from " + "from " +
"wvp_jt_device jd " + "wvp_jt_terminal jd " +
"WHERE " + "WHERE " +
"1=1" + "1=1" +
" <if test='query != null'> AND (" + " <if test='query != null'> AND (" +
"jd.terminal_id LIKE concat('%',#{query},'%') " + "jd.phone_number LIKE concat('%',#{query},'%') " +
"jd.province_id LIKE concat('%',#{query},'%') " + "jd.province_id LIKE concat('%',#{query},'%') " +
"OR jd.city_id LIKE concat('%',#{query},'%') " + "OR jd.city_id LIKE concat('%',#{query},'%') " +
"OR jd.maker_id LIKE concat('%',#{query},'%') " + "OR jd.maker_id LIKE concat('%',#{query},'%') " +
"OR jd.device_model LIKE concat('%',#{query},'%') " + "OR jd.device_model LIKE concat('%',#{query},'%') " +
"OR jd.device_id LIKE concat('%',#{query},'%') " + "OR jd.terminal_id LIKE concat('%',#{query},'%') " +
"OR jd.plate_no LIKE concat('%',#{query},'%')" + "OR jd.plate_no LIKE concat('%',#{query},'%')" +
")</if> " + ")</if> " +
" <if test='online == true' > AND jd.status= true</if>" + " <if test='online == true' > AND jd.status= true</if>" +
@ -51,14 +51,14 @@ public interface JTDeviceMapper {
" </script>"}) " </script>"})
List<JTDevice> getDeviceList(@Param("query") String query, @Param("online") Boolean online); List<JTDevice> getDeviceList(@Param("query") String query, @Param("online") Boolean online);
@Insert("INSERT INTO wvp_jt_device (" + @Insert("INSERT INTO wvp_jt_terminal (" +
"terminal_id,"+ "phone_number,"+
"province_id,"+ "province_id,"+
"province_text,"+ "province_text,"+
"city_id,"+ "city_id,"+
"city_text,"+ "city_text,"+
"maker_id,"+ "maker_id,"+
"device_id,"+ "terminal_id,"+
"device_model,"+ "device_model,"+
"plate_color,"+ "plate_color,"+
"plate_no,"+ "plate_no,"+
@ -68,13 +68,13 @@ public interface JTDeviceMapper {
"create_time,"+ "create_time,"+
"update_time"+ "update_time"+
") VALUES (" + ") VALUES (" +
"#{terminalId}," + "#{phoneNumber}," +
"#{provinceId}," + "#{provinceId}," +
"#{provinceText}," + "#{provinceText}," +
"#{cityId}," + "#{cityId}," +
"#{cityText}," + "#{cityText}," +
"#{makerId}," + "#{makerId}," +
"#{deviceId}," + "#{terminalId}," +
"#{deviceModel}," + "#{deviceModel}," +
"#{plateColor}," + "#{plateColor}," +
"#{plateNo}," + "#{plateNo}," +
@ -86,13 +86,13 @@ public interface JTDeviceMapper {
")") ")")
void addDevice(JTDevice device); void addDevice(JTDevice device);
@Delete("delete from wvp_jt_device where terminal_id = #{terminalId}") @Delete("delete from wvp_jt_terminal where phone_number = #{phoneNumber}")
void deleteDeviceByTerminalId(@Param("terminalId") Integer terminalId); void deleteDeviceByPhoneNumber(@Param("phoneNumber") String phoneNumber);
@Update(value = {" <script>" + @Update(value = {" <script>" +
"UPDATE wvp_jt_device " + "UPDATE wvp_jt_terminal " +
"SET status=#{connected} " + "SET status=#{connected} " +
"WHERE terminal_id=#{terminalId}"+ "WHERE phone_number=#{phoneNumber}"+
" </script>"}) " </script>"})
void updateDeviceStatus(@Param("connected") boolean connected, @Param("terminalId") Integer terminalId); void updateDeviceStatus(@Param("connected") boolean connected, @Param("phoneNumber") String phoneNumber);
} }

View File

@ -22,7 +22,7 @@ public class ConnectChangeEvent extends ApplicationEvent {
private boolean connected; private boolean connected;
private String terminalId; private String phoneNumber;
public boolean isConnected() { public boolean isConnected() {
return connected; return connected;
@ -32,11 +32,11 @@ public class ConnectChangeEvent extends ApplicationEvent {
this.connected = connected; this.connected = connected;
} }
public String getTerminalId() { public String getPhoneNumber() {
return terminalId; return phoneNumber;
} }
public void setTerminalId(String terminalId) { public void setPhoneNumber(String phoneNumber) {
this.terminalId = terminalId; this.phoneNumber = phoneNumber;
} }
} }

View File

@ -22,13 +22,13 @@ public class ConnectChangeEventListener implements ApplicationListener<ConnectCh
@Override @Override
public void onApplicationEvent(ConnectChangeEvent event) { public void onApplicationEvent(ConnectChangeEvent event) {
if (event.isConnected()) { if (event.isConnected()) {
log.info("[JT-设备已连接] 终端ID {}", event.getTerminalId()); log.info("[JT-设备已连接] 终端ID {}", event.getPhoneNumber());
}else{ }else{
log.info("[JT-设备连接已断开] 终端ID {}", event.getTerminalId()); log.info("[JT-设备连接已断开] 终端ID {}", event.getPhoneNumber());
} }
JTDevice device = service.getDevice(event.getTerminalId()); JTDevice device = service.getDevice(event.getPhoneNumber());
if (device != null) { if (device != null) {
service.updateDeviceStatus(event.isConnected(), event.getTerminalId()); service.updateDeviceStatus(event.isConnected(), event.getPhoneNumber());
} }
} }
} }

View File

@ -1,6 +1,5 @@
package com.genersoft.iot.vmp.jt1078.event.eventListener; package com.genersoft.iot.vmp.jt1078.event.eventListener;
import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;
import com.genersoft.iot.vmp.jt1078.event.RegisterEvent; import com.genersoft.iot.vmp.jt1078.event.RegisterEvent;
import org.springframework.context.ApplicationListener; import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -10,6 +9,6 @@ public class RegisterEventListener implements ApplicationListener<RegisterEvent>
@Override @Override
public void onApplicationEvent(RegisterEvent event) { public void onApplicationEvent(RegisterEvent event) {
System.out.println("收到设备注册: "+ event.getDevice().getDeviceId()); System.out.println("收到设备注册: "+ event.getDevice().getTerminalId());
} }
} }

View File

@ -15,7 +15,7 @@ public class Header {
Integer msgPro; Integer msgPro;
// 终端手机号 // 终端手机号
String terminalPhoneNumber; String phoneNumber;
// 消息体流水号 // 消息体流水号
Integer sn; Integer sn;
@ -41,12 +41,12 @@ public class Header {
this.msgPro = msgPro; this.msgPro = msgPro;
} }
public String getTerminalPhoneNumber() { public String getPhoneNumber() {
return terminalPhoneNumber; return phoneNumber;
} }
public void setTerminalPhoneNumber(String terminalPhoneNumber) { public void setPhoneNumber(String phoneNumber) {
this.terminalPhoneNumber = terminalPhoneNumber; this.phoneNumber = phoneNumber;
} }
public Integer getSn() { public Integer getSn() {
@ -79,7 +79,7 @@ public class Header {
return "Header{" + return "Header{" +
"消息ID='" + msgId + '\'' + "消息ID='" + msgId + '\'' +
", 消息体属性=" + msgPro + ", 消息体属性=" + msgPro +
", 终端手机号='" + terminalPhoneNumber + '\'' + ", 终端手机号='" + phoneNumber + '\'' +
", 消息体流水号=" + sn + ", 消息体流水号=" + sn +
", 协议版本号=" + version + ", 协议版本号=" + version +
'}'; '}';

View File

@ -36,7 +36,7 @@ public class J0001 extends Re {
@Override @Override
protected Rs handler(Header header, Session session, Ijt1078Service service) { protected Rs handler(Header header, Session session, Ijt1078Service service) {
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0001", (long) respNo, result);
return null; return null;
} }

View File

@ -28,13 +28,13 @@ public class J0003 extends Re {
respNo = buf.readUnsignedShort(); respNo = buf.readUnsignedShort();
respId = ByteBufUtil.hexDump(buf.readSlice(2)); respId = ByteBufUtil.hexDump(buf.readSlice(2));
result = buf.readUnsignedByte(); result = buf.readUnsignedByte();
log.info("[JT-注销] 设备: {}", header.getTerminalPhoneNumber()); log.info("[JT-注销] 设备: {}", header.getPhoneNumber());
return null; return null;
} }
@Override @Override
protected Rs handler(Header header, Session session, Ijt1078Service service) { protected Rs handler(Header header, Session session, Ijt1078Service service) {
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0001", (long) respNo, result);
return null; return null;
} }

View File

@ -46,7 +46,7 @@ public class J0100 extends Re {
device.setDeviceModel(buf.readCharSequence(30, Charset.forName("GBK")) device.setDeviceModel(buf.readCharSequence(30, Charset.forName("GBK"))
.toString().trim()); .toString().trim());
device.setDeviceId(buf.readCharSequence(30, Charset.forName("GBK")) device.setTerminalId(buf.readCharSequence(30, Charset.forName("GBK"))
.toString().trim()); .toString().trim());
device.setPlateColor(buf.readByte()); device.setPlateColor(buf.readByte());
@ -66,7 +66,7 @@ public class J0100 extends Re {
byte[] bytes7 = new byte[7]; byte[] bytes7 = new byte[7];
buf.readBytes(bytes7); buf.readBytes(bytes7);
device.setDeviceId(new String(bytes7).trim()); device.setTerminalId(new String(bytes7).trim());
device.setPlateColor(buf.readByte()); device.setPlateColor(buf.readByte());
byte[] plateColorBytes = new byte[buf.readableBytes()]; byte[] plateColorBytes = new byte[buf.readableBytes()];
@ -85,7 +85,7 @@ public class J0100 extends Re {
J8100 j8100 = new J8100(); J8100 j8100 = new J8100();
j8100.setRespNo(header.getSn()); j8100.setRespNo(header.getSn());
// 从数据库判断这个设备是否合法 // 从数据库判断这个设备是否合法
JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); JTDevice deviceInDb = service.getDevice(header.getPhoneNumber());
if (deviceInDb != null) { if (deviceInDb != null) {
j8100.setResult(J8100.SUCCESS); j8100.setResult(J8100.SUCCESS);
String authenticationCode = UUID.randomUUID().toString(); String authenticationCode = UUID.randomUUID().toString();
@ -105,14 +105,14 @@ public class J0100 extends Re {
} }
deviceInDb.setDeviceModel(device.getDeviceModel()); deviceInDb.setDeviceModel(device.getDeviceModel());
deviceInDb.setMakerId(device.getMakerId()); deviceInDb.setMakerId(device.getMakerId());
deviceInDb.setDeviceId(device.getDeviceId()); deviceInDb.setTerminalId(device.getTerminalId());
// TODO 支持直接展示车牌颜色的描述 // TODO 支持直接展示车牌颜色的描述
deviceInDb.setPlateColor(device.getPlateColor()); deviceInDb.setPlateColor(device.getPlateColor());
deviceInDb.setPlateNo(device.getPlateNo()); deviceInDb.setPlateNo(device.getPlateNo());
service.updateDevice(deviceInDb); service.updateDevice(deviceInDb);
log.info("[JT-注册成功] 设备: {}", deviceInDb); log.info("[JT-注册成功] 设备: {}", deviceInDb);
}else { }else {
log.info("[JT-注册失败] 未授权设备: {}", header.getTerminalPhoneNumber()); log.info("[JT-注册失败] 未授权设备: {}", header.getPhoneNumber());
j8100.setResult(J8100.FAIL); j8100.setResult(J8100.FAIL);
// 断开连接清理资源 // 断开连接清理资源
if (session.isRegistered()) { if (session.isRegistered()) {

View File

@ -37,7 +37,7 @@ public class J0102 extends Re {
@Override @Override
protected Rs handler(Header header, Session session, Ijt1078Service service) { protected Rs handler(Header header, Session session, Ijt1078Service service) {
JTDevice device = service.getDevice(header.getTerminalPhoneNumber()); JTDevice device = service.getDevice(header.getPhoneNumber());
J8001 j8001 = new J8001(); J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn()); j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId()); j8001.setRespId(header.getMsgId());

View File

@ -164,7 +164,7 @@ public class J0104 extends Re {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0104", (long) respNo, deviceConfig); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0104", (long) respNo, deviceConfig);
return null; return null;
} }

View File

@ -60,7 +60,7 @@ public class J0107 extends Re {
deviceAttribute.setGnssAttribute(JTGnssAttribute.getInstance(buf.readUnsignedByte())); deviceAttribute.setGnssAttribute(JTGnssAttribute.getInstance(buf.readUnsignedByte()));
deviceAttribute.setCommunicationModuleAttribute(JTCommunicationModuleAttribute.getInstance(buf.readUnsignedByte())); deviceAttribute.setCommunicationModuleAttribute(JTCommunicationModuleAttribute.getInstance(buf.readUnsignedByte()));
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0107", null, deviceAttribute); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0107", null, deviceAttribute);
return null; return null;
} }

View File

@ -89,7 +89,7 @@ public class J0200 extends Re {
@Override @Override
protected Rs handler(Header header, Session session, Ijt1078Service service) { protected Rs handler(Header header, Session session, Ijt1078Service service) {
JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); JTDevice deviceInDb = service.getDevice(header.getPhoneNumber());
J8001 j8001 = new J8001(); J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn()); j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId()); j8001.setRespId(header.getMsgId());

View File

@ -33,13 +33,13 @@ public class J0201 extends Re {
positionInfo = JTPositionBaseInfo.decode(buf); positionInfo = JTPositionBaseInfo.decode(buf);
log.info("[JT-位置信息查询应答]: {}", positionInfo.toString()); log.info("[JT-位置信息查询应答]: {}", positionInfo.toString());
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0201", (long) respNo, positionInfo); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0201", (long) respNo, positionInfo);
return null; return null;
} }
@Override @Override
protected Rs handler(Header header, Session session, Ijt1078Service service) { protected Rs handler(Header header, Session session, Ijt1078Service service) {
JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); JTDevice deviceInDb = service.getDevice(header.getPhoneNumber());
J8001 j8001 = new J8001(); J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn()); j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId()); j8001.setRespId(header.getMsgId());

View File

@ -28,13 +28,13 @@ public class J0500 extends Re {
int respNo = buf.readUnsignedShort(); int respNo = buf.readUnsignedShort();
positionInfo = JTPositionBaseInfo.decode(buf); positionInfo = JTPositionBaseInfo.decode(buf);
log.info("[JT-车辆控制应答]: {}", positionInfo.toString()); log.info("[JT-车辆控制应答]: {}", positionInfo.toString());
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0500", (long) respNo, positionInfo); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0500", (long) respNo, positionInfo);
return null; return null;
} }
@Override @Override
protected Rs handler(Header header, Session session, Ijt1078Service service) { protected Rs handler(Header header, Session session, Ijt1078Service service) {
JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber()); JTDevice deviceInDb = service.getDevice(header.getPhoneNumber());
J8001 j8001 = new J8001(); J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn()); j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId()); j8001.setRespId(header.getMsgId());

View File

@ -33,7 +33,7 @@ public class J0608 extends Re {
log.info("[JT-查询区域或线路数据应答]: 类型: {} 数量: {}", type, dataLength); log.info("[JT-查询区域或线路数据应答]: 类型: {} 数量: {}", type, dataLength);
List<JTAreaOrRoute> areaOrRoutes = new ArrayList<>(); List<JTAreaOrRoute> areaOrRoutes = new ArrayList<>();
if (dataLength == 0) { if (dataLength == 0) {
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, areaOrRoutes); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0608", null, areaOrRoutes);
return null; return null;
} }
switch (type) { switch (type) {
@ -46,7 +46,7 @@ public class J0608 extends Re {
JTCircleArea jtCircleArea = JTCircleArea.decode(buf); JTCircleArea jtCircleArea = JTCircleArea.decode(buf);
jtCircleAreas.add(jtCircleArea); jtCircleAreas.add(jtCircleArea);
} }
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtCircleAreas); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0608", null, jtCircleAreas);
break; break;
case 2: case 2:
buf.readUnsignedByte(); buf.readUnsignedByte();
@ -58,7 +58,7 @@ public class J0608 extends Re {
JTRectangleArea jtRectangleArea = JTRectangleArea.decode(buf); JTRectangleArea jtRectangleArea = JTRectangleArea.decode(buf);
jtRectangleAreas.add(jtRectangleArea); jtRectangleAreas.add(jtRectangleArea);
} }
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtRectangleAreas); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0608", null, jtRectangleAreas);
break; break;
case 3: case 3:
// 查询多 边形区域数据 // 查询多 边形区域数据
@ -68,7 +68,7 @@ public class J0608 extends Re {
JTPolygonArea jtRectangleArea = JTPolygonArea.decode(buf); JTPolygonArea jtRectangleArea = JTPolygonArea.decode(buf);
jtPolygonAreas.add(jtRectangleArea); jtPolygonAreas.add(jtRectangleArea);
} }
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtPolygonAreas); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0608", null, jtPolygonAreas);
break; break;
case 4: case 4:
// 查询线路数据 // 查询线路数据
@ -78,7 +78,7 @@ public class J0608 extends Re {
JTRoute jtRoute = JTRoute.decode(buf); JTRoute jtRoute = JTRoute.decode(buf);
jtRoutes.add(jtRoute); jtRoutes.add(jtRoute);
} }
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtRoutes); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0608", null, jtRoutes);
break; break;
default: default:
break; break;

View File

@ -27,7 +27,7 @@ public class J0702 extends Re {
protected Rs decode0(ByteBuf buf, Header header, Session session) { protected Rs decode0(ByteBuf buf, Header header, Session session) {
driverInformation = JTDriverInformation.decode(buf); driverInformation = JTDriverInformation.decode(buf);
log.info("[JT-驾驶员身份信息采集上报]: {}", driverInformation.toString()); log.info("[JT-驾驶员身份信息采集上报]: {}", driverInformation.toString());
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0702", null, driverInformation); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0702", null, driverInformation);
return null; return null;
} }

View File

@ -70,7 +70,7 @@ public class J0801 extends Re {
log.info("[JT-多媒体数据上传] 写入文件失败", e); log.info("[JT-多媒体数据上传] 写入文件失败", e);
} }
log.info("[JT-多媒体数据上传]: {}", mediaEventInfo); log.info("[JT-多媒体数据上传]: {}", mediaEventInfo);
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0801", null, mediaEventInfo); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0801", null, mediaEventInfo);
return null; return null;
} }

View File

@ -34,7 +34,7 @@ public class J0802 extends Re {
int length = buf.readUnsignedShort(); int length = buf.readUnsignedShort();
if (length == 0) { if (length == 0) {
log.info("[JT-存储多媒体数据检索应答]: {}", length); log.info("[JT-存储多媒体数据检索应答]: {}", length);
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0802", (long) respNo, new ArrayList<>()); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0802", (long) respNo, new ArrayList<>());
return null; return null;
} }
mediaDataInfoList = new ArrayList<>(length); mediaDataInfoList = new ArrayList<>(length);
@ -42,7 +42,7 @@ public class J0802 extends Re {
mediaDataInfoList.add(JTMediaDataInfo.decode(buf)); mediaDataInfoList.add(JTMediaDataInfo.decode(buf));
} }
log.info("[JT-存储多媒体数据检索应答]: {}", mediaDataInfoList.size()); log.info("[JT-存储多媒体数据检索应答]: {}", mediaDataInfoList.size());
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0802", (long) respNo, mediaDataInfoList); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0802", (long) respNo, mediaDataInfoList);
return null; return null;
} }

View File

@ -39,13 +39,13 @@ public class J0805 extends Re {
ids.add(buf.readUnsignedInt()); ids.add(buf.readUnsignedInt());
} }
} }
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0805", null, ids); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0805", null, ids);
return null; return null;
} }
@Override @Override
protected Rs handler(Header header, Session session, Ijt1078Service service) { protected Rs handler(Header header, Session session, Ijt1078Service service) {
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result); SessionManager.INSTANCE.response(header.getPhoneNumber(), "0001", (long) respNo, result);
return null; return null;
} }

View File

@ -23,7 +23,7 @@ public class J1003 extends Re {
@Override @Override
protected Rs decode0(ByteBuf buf, Header header, Session session) { protected Rs decode0(ByteBuf buf, Header header, Session session) {
mediaAttribute = JTMediaAttribute.decode(buf); mediaAttribute = JTMediaAttribute.decode(buf);
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "1003", null, mediaAttribute); SessionManager.INSTANCE.response(header.getPhoneNumber(), "1003", null, mediaAttribute);
return null; return null;
} }

View File

@ -49,7 +49,7 @@ public class J1205 extends Re {
@Override @Override
protected Rs handler(Header header, Session session, Ijt1078Service service) { protected Rs handler(Header header, Session session, Ijt1078Service service) {
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "1205", (long) respNo, recordList); SessionManager.INSTANCE.response(header.getPhoneNumber(), "1205", (long) respNo, recordList);
J8001 j8001 = new J8001(); J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn()); j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId()); j8001.setRespId(header.getMsgId());

View File

@ -24,7 +24,7 @@ public abstract class Re {
public Rs decode(ByteBuf buf, Header header, Session session, Ijt1078Service service) { public Rs decode(ByteBuf buf, Header header, Session session, Ijt1078Service service) {
if (session != null && !StringUtils.hasLength(session.getDevId())) { if (session != null && !StringUtils.hasLength(session.getDevId())) {
session.register(header.getTerminalPhoneNumber(), (int) header.getVersion(), header); session.register(header.getPhoneNumber(), (int) header.getVersion(), header);
} }
Rs rs = decode0(buf, header, session); Rs rs = decode0(buf, header, session);
Rs rsHand = handler(header, session, service); Rs rsHand = handler(header, session, service);

View File

@ -9,7 +9,7 @@ import com.github.pagehelper.PageInfo;
import java.util.List; import java.util.List;
public interface Ijt1078Service { public interface Ijt1078Service {
JTDevice getDevice(Integer terminalId); JTDevice getDevice(String phoneNumber);
void updateDevice(JTDevice deviceInDb); void updateDevice(JTDevice deviceInDb);
@ -17,9 +17,9 @@ public interface Ijt1078Service {
void addDevice(JTDevice device); void addDevice(JTDevice device);
void deleteDeviceByPhoneNumber(Integer phoneNumber); void deleteDeviceByPhoneNumber(String phoneNumber);
void updateDeviceStatus(boolean connected, Integer terminalId); void updateDeviceStatus(boolean connected, String phoneNumber);
void play(String phoneNumber, String channelId, int type, GeneralCallback<StreamInfo> callback); void play(String phoneNumber, String channelId, int type, GeneralCallback<StreamInfo> callback);
@ -118,5 +118,11 @@ public interface Ijt1078Service {
void recordDownload(String phoneNumber, String channelId, String startTime, String endTime, Integer type, Integer rate, GeneralCallback<String> fileCallback); void recordDownload(String phoneNumber, String channelId, String startTime, String endTime, Integer type, Integer rate, GeneralCallback<String> fileCallback);
List<JTChannel> getChannelList(int phoneNumber, String query); List<JTChannel> getChannelList(int deviceId, String query);
void updateChannel(JTChannel channel);
void addChannel(JTChannel channel);
void deleteChannelById(Integer id);
} }

View File

@ -13,7 +13,7 @@ import com.genersoft.iot.vmp.jt1078.bean.*;
import com.genersoft.iot.vmp.jt1078.bean.common.ConfigAttribute; import com.genersoft.iot.vmp.jt1078.bean.common.ConfigAttribute;
import com.genersoft.iot.vmp.jt1078.cmd.JT1078Template; import com.genersoft.iot.vmp.jt1078.cmd.JT1078Template;
import com.genersoft.iot.vmp.jt1078.dao.JTChannelMapper; import com.genersoft.iot.vmp.jt1078.dao.JTChannelMapper;
import com.genersoft.iot.vmp.jt1078.dao.JTDeviceMapper; import com.genersoft.iot.vmp.jt1078.dao.JTTerminalMapper;
import com.genersoft.iot.vmp.jt1078.event.CallbackManager; import com.genersoft.iot.vmp.jt1078.event.CallbackManager;
import com.genersoft.iot.vmp.jt1078.event.FtpUploadEvent; import com.genersoft.iot.vmp.jt1078.event.FtpUploadEvent;
import com.genersoft.iot.vmp.jt1078.proc.request.J1205; import com.genersoft.iot.vmp.jt1078.proc.request.J1205;
@ -36,7 +36,6 @@ import com.genersoft.iot.vmp.utils.DateUtil;
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -45,10 +44,7 @@ import org.springframework.context.event.EventListener;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import java.io.*;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.nio.file.Files;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@ -58,7 +54,7 @@ public class jt1078ServiceImpl implements Ijt1078Service {
private final static Logger logger = LoggerFactory.getLogger(jt1078ServiceImpl.class); private final static Logger logger = LoggerFactory.getLogger(jt1078ServiceImpl.class);
@Autowired @Autowired
private JTDeviceMapper jtDeviceMapper; private JTTerminalMapper jtDeviceMapper;
@Autowired @Autowired
private JTChannelMapper jtChannelMapper; private JTChannelMapper jtChannelMapper;
@ -98,8 +94,8 @@ public class jt1078ServiceImpl implements Ijt1078Service {
@Override @Override
public JTDevice getDevice(Integer terminalId) { public JTDevice getDevice(String phoneNumber) {
return jtDeviceMapper.getDevice(terminalId); return jtDeviceMapper.getDevice(phoneNumber);
} }
@Override @Override
@ -123,13 +119,13 @@ public class jt1078ServiceImpl implements Ijt1078Service {
} }
@Override @Override
public void deleteDeviceByPhoneNumber(Integer phoneNumber) { public void deleteDeviceByPhoneNumber(String phoneNumber) {
jtDeviceMapper.deleteDeviceByTerminalId(phoneNumber); jtDeviceMapper.deleteDeviceByPhoneNumber(phoneNumber);
} }
@Override @Override
public void updateDeviceStatus(boolean connected, Integer terminalId) { public void updateDeviceStatus(boolean connected, String phoneNumber) {
jtDeviceMapper.updateDeviceStatus(connected, terminalId); jtDeviceMapper.updateDeviceStatus(connected, phoneNumber);
} }
private final Map<String, List<GeneralCallback<StreamInfo>>> inviteErrorCallbackMap = new ConcurrentHashMap<>(); private final Map<String, List<GeneralCallback<StreamInfo>>> inviteErrorCallbackMap = new ConcurrentHashMap<>();
@ -1013,4 +1009,19 @@ public class jt1078ServiceImpl implements Ijt1078Service {
public List<JTChannel> getChannelList(int deviceId, String query) { public List<JTChannel> getChannelList(int deviceId, String query) {
return jtChannelMapper.getAll(deviceId, query); return jtChannelMapper.getAll(deviceId, query);
} }
@Override
public void updateChannel(JTChannel channel) {
jtChannelMapper.update(channel);
}
@Override
public void addChannel(JTChannel channel) {
jtChannelMapper.add(channel);
}
@Override
public void deleteChannelById(Integer id) {
jtChannelMapper.delete(id);
}
} }

View File

@ -315,10 +315,10 @@ create table wvp_resources_tree (
path character varying(255) path character varying(255)
); );
create table wvp_jt_device ( create table wvp_jt_terminal (
id serial primary key, id serial primary key,
device_id character varying(50), device_id character varying(50),
phone_number character varying(50) not null, phone_number character varying(50),
province_id character varying(50), province_id character varying(50),
province_text character varying(100), province_text character varying(100),
city_id character varying(50), city_id character varying(50),
@ -334,7 +334,7 @@ create table wvp_jt_device (
register_time character varying(50) not null, register_time character varying(50) not null,
update_time character varying(50) not null, update_time character varying(50) not null,
create_time character varying(50) not null, create_time character varying(50) not null,
constraint uk_jt_device_id_device_id unique (id, terminal_id) constraint uk_jt_device_id_device_id unique (id, phone_number)
); );
create table wvp_jt_channel ( create table wvp_jt_channel (
id serial primary key, id serial primary key,

View File

@ -315,10 +315,10 @@ create table wvp_resources_tree (
path character varying(255) path character varying(255)
); );
create table wvp_jt_device ( create table wvp_jt_terminal (
id serial primary key, id serial primary key,
device_id character varying(50), device_id character varying(50),
phone_number character varying(50) not null, phone_number character varying(50),
province_id character varying(50), province_id character varying(50),
province_text character varying(100), province_text character varying(100),
city_id character varying(50), city_id character varying(50),
@ -334,7 +334,7 @@ create table wvp_jt_device (
register_time character varying(50) not null, register_time character varying(50) not null,
update_time character varying(50) not null, update_time character varying(50) not null,
create_time character varying(50) not null, create_time character varying(50) not null,
constraint uk_jt_device_id_device_id unique (id, terminal_id) constraint uk_jt_device_id_device_id unique (id, phone_number)
); );
create table wvp_jt_channel ( create table wvp_jt_channel (
id serial primary key, id serial primary key,

View File

@ -1,7 +1,7 @@
create table wvp_jt_device ( create table wvp_jt_terminal (
id serial primary key, id serial primary key,
device_id character varying(50), device_id character varying(50),
phone_number integer, phone_number character varying(50),
province_id character varying(50), province_id character varying(50),
province_text character varying(100), province_text character varying(100),
city_id character varying(50), city_id character varying(50),
@ -17,7 +17,7 @@ create table wvp_jt_device (
register_time character varying(50) not null, register_time character varying(50) not null,
update_time character varying(50) not null, update_time character varying(50) not null,
create_time character varying(50) not null, create_time character varying(50) not null,
constraint uk_jt_device_id_device_id unique (id, terminal_id) constraint uk_jt_device_id_device_id unique (id, phone_number)
); );
create table wvp_jt_channel ( create table wvp_jt_channel (

View File

@ -1,7 +1,7 @@
create table wvp_jt_device ( create table wvp_jt_terminal (
id serial primary key, id serial primary key,
device_id character varying(50), device_id character varying(50),
phone_number character varying(50) not null, phone_number character varying(50),
province_id character varying(50), province_id character varying(50),
province_text character varying(100), province_text character varying(100),
city_id character varying(50), city_id character varying(50),
@ -17,7 +17,7 @@ create table wvp_jt_device (
register_time character varying(50) not null, register_time character varying(50) not null,
update_time character varying(50) not null, update_time character varying(50) not null,
create_time character varying(50) not null, create_time character varying(50) not null,
constraint uk_jt_device_id_device_id unique (id, terminal_id) constraint uk_jt_device_id_device_id unique (id, phone_number)
); );
create table wvp_jt_channel ( create table wvp_jt_channel (
id serial primary key, id serial primary key,