package com.lxyer.redim.impl; import com.jfinal.kit.Kv; import com.lxyer.base.JBean; import com.lxyer.bbs.base.BaseService; import com.lxyer.bbs.base.user.UserInfo; import com.lxyer.bbs.base.user.UserRecord; import com.lxyer.bbs.base.user.UserService; import com.lxyer.redim.service.ImFriendService; import org.redkale.boot.Application; import org.redkale.net.TransportFactory; import org.redkale.net.TransportGroupInfo; import org.redkale.net.http.RestService; import org.redkale.source.FilterExpress; import org.redkale.source.FilterNode; import org.redkale.util.ResourceType; import javax.annotation.Resource; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.List; @ResourceType(ImFriendService.class) @RestService(name = "imfriend",automapping = true, comment = "好友管理") public class ImFriendServiceImpl extends BaseService implements ImFriendService { @Resource UserService userService; @Resource public static Application application; @Override public JBean friends(String sessionid) { List records = source.queryList(UserRecord.class, FilterNode.create("status", FilterExpress.NOTEQUAL, -10)); Kv data = Kv.create(); //mine Kv mine = Kv.by("username", "游客").set("id", "0").set("sign","").set("status", "online").set("avatar", "/res/images/avatar/13.jpg"); UserInfo userInfo = userService.current(sessionid); if (userInfo != null){ mine.set("username", userInfo.getNickname()); mine.set("id", userInfo.getUserid()); mine.set("sign", userInfo.getSign()); mine.set("avatar", userInfo.getAvatar()); mine.set("status", "online"); } //friend List friend = new ArrayList<>(); List group = new ArrayList<>(); List list = new ArrayList(); records.forEach(x->{ Kv _friend = Kv.by("id", x.getUserid()); _friend.set("username", x.getNickname()); _friend.set("sign", x.getSign()); _friend.set("avatar", x.getAvatar()); _friend.set("status", "online"); list.add(_friend); }); friend.add(Kv.by("groupname", "默认分组").set("id", 1).set("online", list.size()).set("list", list)); group.add(Kv.by("groupname", "默认分组").set("id", 1).set("avatar", "/res/images/avatar/13.jpg")); data.set("mine", mine).set("friend", friend).set("group", group); return JBean.by(Kv.by("code", 0).set("msg", "").set("data", data)); } @Override public JBean friendList(String sessionid) { /*SncpClient sncpClient = new SncpClient("", ImFriendService.class, this, transportFactory, true, this.getClass(), new InetSocketAddress("192.168.227.1", 7070));*/ TransportFactory sncpTransportFactory = application.getSncpTransportFactory(); TransportGroupInfo groupInfo = sncpTransportFactory.findGroupInfo("ALL"); System.out.println(groupInfo.toString()); groupInfo.putAddress(new InetSocketAddress("120.24.230.60", 7070)); //sncpTransportFactory.addGroupInfo(groupInfo); return friends(sessionid); } @Override public JBean groups(String sessionid) { return null; } @Override public JBean itemSave(String sessionid) { return null; } @Override public JBean addFriend(String sessionid) { return null; } @Override public JBean groupSave(String sessionid) { return null; } @Override public JBean addGroup(String sessionid) { return null; } }