100 lines
3.4 KiB
JavaScript
100 lines
3.4 KiB
JavaScript
|
|
'use strict';
|
||
|
|
|
||
|
|
const BaseService = require('../core/base_service.js');
|
||
|
|
|
||
|
|
const fileName = "teaching";
|
||
|
|
|
||
|
|
class TeachingService extends BaseService {
|
||
|
|
// 获取最近发送的一条信息
|
||
|
|
async getMsg(redis, token) {
|
||
|
|
const { ctx } = this;
|
||
|
|
try {
|
||
|
|
const verifyResult = await this.Verify(redis, token);
|
||
|
|
let result = { code: verifyResult };
|
||
|
|
if (verifyResult == 401) {
|
||
|
|
const where = { token };
|
||
|
|
const attributes = ['token'];
|
||
|
|
const dbResult = await ctx.model.BuserToken.findOne({ attributes, where });
|
||
|
|
result.code = dbResult ? dbResult.dataValus.user_uid : 401;
|
||
|
|
}
|
||
|
|
if (result.code !== 401 && result.code !== 403) {
|
||
|
|
const uidLastCode = this.shunt(result.code);
|
||
|
|
const model = {
|
||
|
|
"B": ctx.model.BShortMsg,
|
||
|
|
"C": ctx.model2.CShortMsg
|
||
|
|
};
|
||
|
|
const attributes = ['card_id', 'encode_type', 'msg_data', 'created_at'];
|
||
|
|
const where = { user_uid: result.code };
|
||
|
|
const limit = 1;
|
||
|
|
const order = [['created_at', 'DESC']];
|
||
|
|
const dbOptions = { attributes, limit, order, where };
|
||
|
|
const dbResult = await model[uidLastCode].findOne(dbOptions);
|
||
|
|
if (dbResult) {
|
||
|
|
result.userData = dbResult.dataValues;
|
||
|
|
result.code = 200;
|
||
|
|
} else {
|
||
|
|
result.code = false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return result.code ? result : false;
|
||
|
|
} catch (error) {
|
||
|
|
const blockName = fileName + "--" + "getMsg";
|
||
|
|
ctx.app.middleware.log('../../serviceLog', blockName + ">>>>" + error);
|
||
|
|
return 'error';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 获取若干条历史消息
|
||
|
|
async getHistory(redis, token, limit, offset) {
|
||
|
|
const { ctx } = this;
|
||
|
|
try {
|
||
|
|
const verifyResult = await this.Verify(redis, token);
|
||
|
|
let result = { code: verifyResult };
|
||
|
|
if (verifyResult == 401) {
|
||
|
|
const where = { token };
|
||
|
|
const attributes = ['token'];
|
||
|
|
const dbResult = await ctx.model.BuserToken.findOne({ attributes, where });
|
||
|
|
result.code = dbResult ? dbResult.dataValus.user_uid : 401;
|
||
|
|
}
|
||
|
|
if (result.code !== 401 && result.code !== 403) {
|
||
|
|
const uidLastCode = this.shunt(result.code);
|
||
|
|
const model = {
|
||
|
|
"B": ctx.model.BShortMsg,
|
||
|
|
"C": ctx.model2.CShortMsg
|
||
|
|
};
|
||
|
|
const attributes = ['card_id', 'encode_type', 'msg_data', 'created_at'];
|
||
|
|
const where = { user_uid: result.code };
|
||
|
|
const order = [['created_at', 'DESC']];
|
||
|
|
if (limit == undefined || !this.isAllDigits(limit)) {
|
||
|
|
limit = 10
|
||
|
|
} else {
|
||
|
|
limit = parseInt(limit);
|
||
|
|
}
|
||
|
|
if (offset == undefined || !this.isAllDigits(offset)) {
|
||
|
|
offset = 1
|
||
|
|
} else {
|
||
|
|
offset = parseInt(offset);
|
||
|
|
}
|
||
|
|
offset = (offset - 1) * limit;
|
||
|
|
const dbOptions = { attributes, limit, offset, order, where };
|
||
|
|
const dbResult = await model[uidLastCode].findAndCountAll(dbOptions);
|
||
|
|
if (dbResult.rows.length !== 0) {
|
||
|
|
result.userData = {
|
||
|
|
rows: dbResult.rows,
|
||
|
|
count: dbResult.count
|
||
|
|
};
|
||
|
|
result.code = 200;
|
||
|
|
} else {
|
||
|
|
result.code = false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return result.code ? result : false;
|
||
|
|
} catch (error) {
|
||
|
|
const blockName = fileName + "--" + "getHistory";
|
||
|
|
ctx.app.middleware.log('../../serviceLog', blockName + ">>>>" + error);
|
||
|
|
return 'error';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
module.exports = TeachingService;
|