Commit 6a1106b4 by 蒋勇

d

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