Skip to content

Commit a49e243

Browse files
committed
2.0.1
1 parent 972efe2 commit a49e243

18 files changed

+173
-82
lines changed

conf/nbs.db

0 Bytes
Binary file not shown.

src/main/java/com/nbs/biz/PeersOperatorService.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88

99
/**
1010
* @Package : com.nbs.biz
11-
* @Description : <p></p>
11+
* @Description :
12+
* <p>
13+
*
14+
* </p>
1215
* @Author : lambor.c
1316
* @Date : 2018/6/30-14:18
1417
* Copyright (c) 2018, NBS , lambor.c<[email protected]>.
@@ -58,7 +61,7 @@ public PeerContactsEntity convertContacts(PeerContactsEntity entity,PeerInfo inf
5861
entity.setIp(info.getIp());
5962
entity.setLocations(info.getLocations());
6063
entity.setOnline(online==1 ? 1 : 0);
61-
entity.setLmtime(DateHelper.currentSecond());
64+
entity.setLmtime(DateHelper.timestamp());
6265
return entity;
6366
}
6467
}

src/main/java/com/nbs/biz/data/entity/PeerContactsEntity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class PeerContactsEntity extends BasicEntity {
1919
private String remark;
2020
private Integer online;
2121
private Integer ctime;
22-
private Integer lmtime;
22+
private Long lmtime;
2323

2424
public String getId() {
2525
return id;
@@ -101,11 +101,11 @@ public void setCtime(Integer ctime) {
101101
this.ctime = ctime;
102102
}
103103

104-
public Integer getLmtime() {
104+
public Long getLmtime() {
105105
return lmtime;
106106
}
107107

108-
public void setLmtime(Integer lmtime) {
108+
public void setLmtime(Long lmtime) {
109109
this.lmtime = lmtime;
110110
}
111111
}

src/main/java/com/nbs/biz/data/entity/PeerLoginEntity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class PeerLoginEntity extends BasicEntity {
2222
private String seckey;
2323
private String sysuser;
2424
private Integer ctime;
25-
private Integer lmtime;
25+
private Long lmtime;
2626

2727
public String getId() {
2828
return id;
@@ -120,11 +120,11 @@ public void setCtime(Integer ctime) {
120120
this.ctime = ctime;
121121
}
122122

123-
public Integer getLmtime() {
123+
public Long getLmtime() {
124124
return lmtime;
125125
}
126126

127-
public void setLmtime(Integer lmtime) {
127+
public void setLmtime(Long lmtime) {
128128
this.lmtime = lmtime;
129129
}
130130
}

src/main/java/com/nbs/biz/data/entity/PeerMessageEntity.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,27 @@
99
* All rights reserved.
1010
*/
1111
public class PeerMessageEntity extends BasicEntity {
12-
private Integer id;
12+
/**
13+
* uuid
14+
*/
15+
private String id;
1316
private String seqno;
1417
private String fromid;
1518
private String fromhash;
1619
private Integer self;
1720
private String topic;
1821
private String roomid;
1922
private String msg;
20-
private String mtype;
23+
private Integer mtype;
2124
private String ip;
22-
private Integer recvtime;
25+
private Long recvtime;
2326
private Integer ctime;
2427

25-
public Integer getId() {
28+
public String getId() {
2629
return id;
2730
}
2831

29-
public void setId(Integer id) {
32+
public void setId(String id) {
3033
this.id = id;
3134
}
3235

@@ -86,11 +89,11 @@ public void setMsg(String msg) {
8689
this.msg = msg;
8790
}
8891

89-
public String getMtype() {
92+
public Integer getMtype() {
9093
return mtype;
9194
}
9295

93-
public void setMtype(String mtype) {
96+
public void setMtype(Integer mtype) {
9497
this.mtype = mtype;
9598
}
9699

@@ -102,11 +105,11 @@ public void setIp(String ip) {
102105
this.ip = ip;
103106
}
104107

105-
public Integer getRecvtime() {
108+
public Long getRecvtime() {
106109
return recvtime;
107110
}
108111

109-
public void setRecvtime(Integer recvtime) {
112+
public void setRecvtime(Long recvtime) {
110113
this.recvtime = recvtime;
111114
}
112115

src/main/java/com/nbs/biz/service/PeerLoginService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public static PeerLoginEntity convertFromPeerInfo(PeerInfo info){
5353
entity.setIp(info.getIp());
5454
entity.setFromid(info.getFrom());
5555
entity.setSysuser(System.getProperty("user.name",""));
56-
entity.setLmtime(DateHelper.currentSecond());
56+
entity.setLmtime(DateHelper.timestamp());
5757
return entity;
5858
}
5959
}

src/main/java/com/nbs/biz/service/PeerMessageService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public PeerMessageService(SqlSession sqlSession) {
2727
*/
2828
public int insert(PeerMessageEntity entity) {
2929
if(entity.getCtime()==null)entity.setCtime(DateHelper.currentSecond());
30-
if(entity.getRecvtime()==null)entity.setRecvtime(DateHelper.currentSecond());
30+
if(entity.getRecvtime()==null)entity.setRecvtime(DateHelper.timestamp());
3131
return super.insert(entity);
3232
}
3333
}

src/main/java/io/nbs/client/adapter/ContactOnlineAdapter.java

Lines changed: 51 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.nbs.client.adapter;
22

33
import com.alibaba.fastjson.JSON;
4+
import com.nbs.biz.data.entity.PeerContactsEntity;
5+
import com.nbs.biz.service.PeerContactsService;
46
import io.nbs.client.listener.OnlineNotifier;
57
import io.nbs.client.ui.components.NbsListView;
68
import io.nbs.client.ui.frames.MainFrame;
@@ -35,10 +37,13 @@ public class ContactOnlineAdapter implements OnlineNotifier {
3537
private static Map<String,ContactsItem> contactsCacheMap ;
3638
private PeerInfo info;
3739

40+
private PeerContactsService peerContactsService;
41+
3842
public ContactOnlineAdapter(SqlSession sqlSession) {
3943
this.sqlSession = sqlSession;
4044
info = MainFrame.getContext().getCurrentPeer();
4145
contactsCacheMap = new HashMap<>();
46+
peerContactsService = new PeerContactsService(sqlSession);
4247
}
4348

4449
@Override
@@ -51,6 +56,15 @@ public void notifyRecvSystemMessage(SystemCtrlMessageBean messageBean) {
5156
logger.info("收到自己的上线消息:{}",JSON.toJSONString(messageBean));
5257
return;
5358
}
59+
/**
60+
* 存库TODO
61+
* 刷新contacts
62+
* 异步刷新数据库
63+
*/
64+
new Thread(()->{
65+
inssetOrUpdateOnlineDB(messageBean);
66+
}).start();
67+
5468
ContactsItem item = new ContactsItem();
5569
item.setFormid(messageBean.getFrom());
5670
item.setName(onlineMessage.getNick());
@@ -80,12 +94,6 @@ public void notifyRecvSystemMessage(SystemCtrlMessageBean messageBean) {
8094
* @return
8195
*/
8296
private int findOrAddContacts(ContactsItem item,List<ContactsItem> peerList,boolean exists){
83-
/**
84-
* 存库TODO
85-
* 刷新contacts
86-
* 异步刷新数据库
87-
*/
88-
inssetOrUpdateDB(item);
8997

9098
if(peerList==null){
9199
peerList = new ArrayList<>();
@@ -94,7 +102,7 @@ private int findOrAddContacts(ContactsItem item,List<ContactsItem> peerList,bool
94102
}
95103
int i=0;
96104
for(ContactsItem peer : peerList){
97-
if(peer.getFormid()!=null&&peer.getFormid().equals(item.getFormid())){
105+
if(peer.getId()!=null&&peer.getId().equals(item.getId())){
98106
exists = true;
99107
peer = item;
100108
return i;
@@ -107,10 +115,43 @@ private int findOrAddContacts(ContactsItem item,List<ContactsItem> peerList,bool
107115

108116
/**
109117
* 独立线程处理
110-
* @param item
118+
* 上线信息
119+
* @param bean
111120
*/
112-
private void inssetOrUpdateDB(ContactsItem item){
113-
//TODO
121+
private void inssetOrUpdateOnlineDB(SystemCtrlMessageBean bean){
122+
if(bean==null||bean.getContent()==null)return;
123+
if(bean.getContent() instanceof OnlineMessage){
124+
OnlineMessage onlineMessage = (OnlineMessage)bean.getContent();
125+
String id = onlineMessage.getId();
126+
127+
PeerContactsEntity entity = peerContactsService.findById(id);
128+
if(entity==null){
129+
entity = new PeerContactsEntity();
130+
entity.setId(onlineMessage.getId());
131+
entity.setFromid(onlineMessage.getFrom());
132+
entity.setNick(onlineMessage.getNick());
133+
entity.setAvatar(onlineMessage.getAvatar());
134+
entity.setAvatarSuffix(onlineMessage.getAvatarSuffix());
135+
entity.setIp(onlineMessage.getIp());
136+
entity.setLocations(onlineMessage.getLocations());
137+
entity.setLmtime(System.currentTimeMillis());
138+
139+
peerContactsService.insert(entity);
140+
}else {
141+
if(StringUtils.isNotBlank(onlineMessage.getAvatar()))
142+
entity.setAvatar(onlineMessage.getAvatar());
143+
if(StringUtils.isNotBlank(onlineMessage.getAvatarSuffix()))
144+
entity.setAvatarSuffix(onlineMessage.getAvatarSuffix());
145+
if(StringUtils.isNotBlank(onlineMessage.getNick()))
146+
entity.setNick(onlineMessage.getNick());
147+
entity.setIp(onlineMessage.getIp());
148+
entity.setLocations(onlineMessage.getLocations());
149+
entity.setLmtime(System.currentTimeMillis());
150+
peerContactsService.update(entity);
151+
}
152+
}else {
153+
154+
}
114155
}
115156

116157
/**

src/main/java/io/nbs/client/adapter/ReceiverMessageAdapter.java

Lines changed: 61 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
package io.nbs.client.adapter;
22

3-
import io.ipfs.api.IPFS;
3+
4+
import com.nbs.biz.data.entity.PeerMessageEntity;
5+
import com.nbs.biz.service.PeerMessageService;
6+
import io.nbs.client.cnsts.AppGlobalCnst;
47
import io.nbs.client.listener.IPFSSubscribeListener;
58
import io.nbs.client.services.IpfsMessageSender;
69
import io.nbs.client.ui.components.NbsListView;
710
import io.nbs.client.ui.frames.MainFrame;
811
import io.nbs.client.ui.panels.im.IMPeersPanel;
912
import io.nbs.client.vo.ContactsItem;
1013
import io.nbs.commons.helper.ConfigurationHelper;
14+
import io.nbs.commons.utils.DbUtil;
15+
import io.nbs.commons.utils.UUIDGenerator;
1116
import io.nbs.sdk.beans.MessageItem;
17+
import io.nbs.sdk.beans.OnlineMessage;
1218
import io.nbs.sdk.beans.PeerInfo;
19+
import org.apache.commons.lang3.StringUtils;
20+
import org.apache.ibatis.session.SqlSession;
1321

1422
import java.util.List;
1523

@@ -26,39 +34,74 @@ public class ReceiverMessageAdapter implements IPFSSubscribeListener {
2634
private List<MessageItem> items;
2735
private NbsListView listView;
2836

37+
private PeerMessageService peerMessageService;
2938

3039
public ReceiverMessageAdapter(List<MessageItem> items, NbsListView listView) {
3140
this.items = items;
3241
this.listView = listView;
42+
SqlSession sqlSession = DbUtil.getSqlSession();
43+
peerMessageService = new PeerMessageService(sqlSession);
3344
}
3445

3546
@Override
3647
public void notifyRecvMessage(MessageItem item) {
3748
PeerInfo peerInfo = MainFrame.getContext().getCurrentPeer();
3849

39-
4050
if(item.getFrom().equals(peerInfo.getFrom())){
41-
//TODO 未来忽略自己发的
42-
/* item.setMessageType(MessageItem.RIGHT_TEXT);
43-
item.setId(peerInfo.getId());
44-
item.setSenderUsername(peerInfo.getNick());
45-
46-
items.add(item);
47-
listView.notifyItemInserted(items.size()-1,true);
48-
listView.setAutoScrollToBottom();*/
51+
// 未来忽略自己发的
4952
}else {
5053
item.setMessageType(MessageItem.LEFT_TEXT);
5154
item = findInPeerList(item);
5255
items.add(item);
5356
int postion = items.size()<=0 ? 0:items.size()-1;
5457
listView.notifyItemInserted(postion,true);
5558
listView.setAutoScrollToBottom();
56-
//TODO 存库
57-
59+
//
60+
saveWorldMessage(item);
5861
//autoRepaly(item.getSenderUsername());
5962
}
6063
}
6164

65+
/**
66+
*
67+
* @param message
68+
*/
69+
@Override
70+
public void notifyOnlineMessage(OnlineMessage message) {
71+
MessageItem item = new MessageItem();
72+
item.setId(UUIDGenerator.getUUID());
73+
item.setMessageType(MessageItem.SYSTEM_MESSAGE);
74+
item.setSenderUsername(message.getNick());
75+
item.setSenderId(message.getId());
76+
String locations = StringUtils.isNotBlank(message.getLocations()) ? message.getLocations() : "";
77+
String content = StringUtils.join("用户",message.getNick(),locations);
78+
item.setMessageContent(content);
79+
item.setTimestamp(message.getTs());
80+
items.add(item);
81+
int postion = items.size()>0 ? items.size()-1 : 0;
82+
listView.notifyItemInserted(postion,true);
83+
listView.setAutoScrollToBottom();
84+
}
85+
86+
private void saveWorldMessage(MessageItem item){
87+
if(item==null)return;
88+
PeerMessageEntity entity = new PeerMessageEntity();
89+
entity.setId(item.getId());
90+
entity.setRecvtime(item.getTimestamp());
91+
entity.setSeqno(item.getSeqno());
92+
entity.setFromid(item.getFrom());
93+
entity.setFromhash(item.getSenderId());
94+
entity.setRoomid(item.getRoomId());
95+
entity.setMsg(item.getMessageContent());
96+
entity.setMtype(item.getMessageType());
97+
if(item.getMessageType()<0){
98+
entity.setSelf(1);
99+
}else {
100+
entity.setSelf(0);
101+
}
102+
peerMessageService.insert(entity);
103+
}
104+
62105
private void autoRepaly(final String name){
63106
new Thread(()->{
64107
IpfsMessageSender sender = MainFrame.getContext().getMessageSender();
@@ -71,6 +114,12 @@ private void autoRepaly(final String name){
71114
}).start();
72115

73116
}
117+
118+
/**
119+
*
120+
* @param item
121+
* @return
122+
*/
74123
private MessageItem findInPeerList(MessageItem item){
75124
List<ContactsItem> contactsItems = IMPeersPanel.getContext().getContactItems();
76125

src/main/java/io/nbs/client/listener/IPFSSubscribeListener.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.nbs.client.listener;
22

33
import io.nbs.sdk.beans.MessageItem;
4+
import io.nbs.sdk.beans.OnlineMessage;
45
import io.nbs.sdk.beans.SystemCtrlMessageBean;
56

67
/**
@@ -19,5 +20,9 @@ public interface IPFSSubscribeListener {
1920
*/
2021
void notifyRecvMessage(MessageItem item);
2122

22-
23+
/**
24+
*
25+
* @param message
26+
*/
27+
void notifyOnlineMessage(OnlineMessage message);
2328
}

0 commit comments

Comments
 (0)