Commit 6a1106b4 by 蒋勇

d

parent 644f065e
...@@ -6,6 +6,11 @@ class MsgnoticeCtl extends CtlBase { ...@@ -6,6 +6,11 @@ class MsgnoticeCtl extends CtlBase {
super("msg", CtlBase.getServiceName(MsgnoticeCtl)); super("msg", CtlBase.getServiceName(MsgnoticeCtl));
} }
async addContactReq (msg) {
let rtn = await this.service.addContactReq(msg)
return system.getResult(rtn)
}
/** /**
* 从socket.io访问 * 从socket.io访问
* @param {*} p * @param {*} p
......
const system=require("../../../system"); const system = require("../../../system");
const Dao=require("../../dao.base"); const Dao = require("../../dao.base");
class MsgNoticeDao extends Dao{ class MsgNoticeDao extends Dao {
constructor(){ constructor() {
super(Dao.getModelName(MsgNoticeDao)); super(Dao.getModelName(MsgNoticeDao));
} }
//检查发送者是消息发送或目标的记录
async saveNotice(msg, t) { async saveNotice (msg, t) {
var noticeFrom = await super.findOne({fromId : msg.senderId, toId : msg.targetId}); var fromLaunch = await super.findOne({ senderId: msg.senderId, targetId: msg.targetId });
if(noticeFrom) { if (fromLaunch) {
var set = {lastMsgId:msg.id}; let smsgid1 = { lastMsgId: msg.id };
if(msg.businessLicense_id) { return await super.updateByWhere(smsgid1, { where: { id: fromLaunch.id } }, t);
set.businessLicense_id = msg.businessLicense_id;
}
await super.updateByWhere(set, {where:{id:noticeFrom.id}}, t);
} else { } else {
noticeFrom = { let targetLaunch = await super.findOne({ senderId: msg.targetId, targetId: msg.senderId });
fromuser: msg.sender, if (targetLaunch) {
fromId:msg.senderId, let smsgid2 = { lastMsgId: msg.id };
touser: msg.target, return await super.updateByWhere(smsgid1, { where: { id: targetLaunch.id } }, t);
toId:msg.targetId, } else {
isAccepted:true, notice = {
lastMsgId:msg.id, sender: msg.sender,
businessLicense_id : msg.businessLicense_id || 0 senderId: msg.senderId,
}; target: msg.target,
await super.create(noticeFrom, t); targetId: msg.targetId,
} isAcceptedFrom: msg.isAcceptedFrom,
isAcceptedTo: msg.isAcceptedTo,
var noticeTo = await super.findOne({fromId : msg.targetId, toId : msg.senderId}); lastMsgId: msg.id,
if(noticeTo) { };
var set = {lastMsgId:msg.id}; return await super.create(notice, t);
if(msg.businessLicense_id) {
set.businessLicense_id = msg.businessLicense_id;
} }
await super.updateByWhere(set, {where:{id:noticeTo.id}}, t);
} else {
noticeTo = {
fromuser: msg.target,
fromId:msg.targetId,
touser: msg.sender,
toId:msg.senderId,
isAccepted:true,
lastMsgId:msg.id,
businessLicense_id : msg.businessLicense_id || 0
};
await super.create(noticeTo, t);
} }
} }
}
orderBy(){ orderBy() {
//return {"key":"include","value":{model:this.db.models.app}}; //return {"key":"include","value":{model:this.db.models.app}};
return [["id","DESC"]]; return [["id", "DESC"]];
} }
} }
module.exports=MsgNoticeDao; module.exports = MsgNoticeDao;
...@@ -3,6 +3,7 @@ const settings = require("../../../../config/settings"); ...@@ -3,6 +3,7 @@ const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig(); const appconfig = system.getSysConfig();
module.exports = (db, DataTypes) => { module.exports = (db, DataTypes) => {
return db.define("msghistory", { return db.define("msghistory", {
msgKey: DataTypes.STRING,
toType: { toType: {
type: DataTypes.ENUM, type: DataTypes.ENUM,
allowNull: false, allowNull: false,
......
...@@ -2,11 +2,11 @@ const system = require("../../../system"); ...@@ -2,11 +2,11 @@ const system = require("../../../system");
const settings = require("../../../../config/settings"); const settings = require("../../../../config/settings");
module.exports = (db, DataTypes) => { module.exports = (db, DataTypes) => {
return db.define("msgnotice", { return db.define("msgnotice", {
fromuser: DataTypes.STRING,//需要在后台补充 sender: DataTypes.STRING,//需要在后台补充
fromId: DataTypes.INTEGER, senderId: DataTypes.INTEGER,
fromHeadUrl: DataTypes.STRING, fromHeadUrl: DataTypes.STRING,
touser: DataTypes.STRING,//需要在后台补充 target: DataTypes.STRING,//需要在后台补充
toId: DataTypes.INTEGER, targetId: DataTypes.INTEGER,
toHeadUrl: DataTypes.STRING, toHeadUrl: DataTypes.STRING,
isAcceptedFrom: DataTypes.BOOLEAN, isAcceptedFrom: DataTypes.BOOLEAN,
isAcceptedTo: DataTypes.BOOLEAN, isAcceptedTo: DataTypes.BOOLEAN,
......
...@@ -6,6 +6,9 @@ class MsgNoticeService extends ServiceBase { ...@@ -6,6 +6,9 @@ class MsgNoticeService extends ServiceBase {
this.msghistoryDao = system.getObject("db.msg.msghistoryDao"); this.msghistoryDao = system.getObject("db.msg.msghistoryDao");
this.redisClient = system.getObject("util.redisClient"); this.redisClient = system.getObject("util.redisClient");
} }
async addContact (msg) {
}
/** /**
* 模糊查找在线人员,为了客户端添加联系人 * 模糊查找在线人员,为了客户端添加联系人
* @param {*} str * @param {*} str
......
...@@ -135,10 +135,8 @@ class MsgHandler { ...@@ -135,10 +135,8 @@ class MsgHandler {
init () { init () {
var self = this; var self = this;
//转发通信消息 //转发通信消息
this.client.on("chatmsg", msg => { this.client.on("chatmsg", (msg, fn) => {
const from = msg.from; const to = msg.toContactId;
const to = msg.to;
const msgContent = msg.content;
//发布消息 //发布消息
//持久化消息 //持久化消息
//取出当前人的头像,昵称 //取出当前人的头像,昵称
...@@ -146,17 +144,21 @@ class MsgHandler { ...@@ -146,17 +144,21 @@ class MsgHandler {
//加入房间的时候,前端需要给出房间名称,需要指定房间默认的logo //加入房间的时候,前端需要给出房间名称,需要指定房间默认的logo
// let nickNameFrom = self.server.uinfos[from].nickName // let nickNameFrom = self.server.uinfos[from].nickName
// let headUrlFrom = self.server.uinfos[from].headUrl // let headUrlFrom = self.server.uinfos[from].headUrl
// let nickNameTo = self.server.uinfos[to].nickName let nickNameTo = self.server.uinfos[to].nickName
// let headUrlTo = self.server.uinfos[to].headUrl let headUrlTo = self.server.uinfos[to].headUrl
let companyid = self.server.uinfos[msg.fromUser.id].companyid
var msgH = { var msgH = {
msgType: msg.type ? msg.type : "single", msgType: msg.type ? msg.type : "single",
senderId: msg.from, senderId: msg.fromUser.id,
sender: msg.nickNameForm, sender: msg.fromUser.nickName,
fromHeadUrl: msg.headUrlFrom, fromHeadUrl: msg.fromUser.headUrlFrom,
targetId: msg.to, targetId: to,
target: msg.nickNameTo, target: nickNameTo,
toHeadUrl: msg.headUrlTo, toHeadUrl: headUrlTo,
content: msg.content content: msg.content,
isAcceptedFrom: msg.isAcceptedFrom ? msg.isAcceptedFrom : false,
isAcceptedTo: msg.isAcceptedTo ? msg.isAcceptedTo : false,
company_id: companyid
}; };
msgHistoryService.saveMsg(msgH).then((m) => { msgHistoryService.saveMsg(msgH).then((m) => {
redisClient.publish(to, JSON.stringify(msg)); redisClient.publish(to, JSON.stringify(msg));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment