123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- const { models } = require('../db')
- const { validateField, handleAdd, handleUpdate, handleFindByField, handleDelete } = require('../common')
- /**
- *
- * 异常行为告警 表格 调 abnormal_behavior_alarm(异常行为报警)
- *
- * 字段展示 用户名 根据 异常行为报警表 user_id 去 老师表(wx_teacher_user)里查_id是否相同 相同取园所名称(name)
- * 学校名 —— school_id 根据 监异常行为报警表 school_id 去 老师表(wx_school)里查_id是否相同 相同取园所名称(name)
- * 课件名称 —— file_name
- * 异常行为 —— reason
- * 报警时间 —— createdAt
- *
- */
- /**
- * 新增异常行为告警
- * @param {*} file_name 课件名称
- * @param {*} reason 异常行为
- * @param {*} user_id 用户Id
- * @param {*} type 报警端: 0-教师 1-家长
- * @returns
- */
- async function addBehaviorAlarm(parameter) {
- const { file_name, reason, user_id, type } = parameter
- const v1 = validateField(file_name, 'file_name')
- if (!v1.flag) {
- return {
- success: false,
- msg: v1.msg
- }
- }
- const v2 = validateField(reason, 'reason')
- if (!v2.flag) {
- return {
- success: false,
- msg: v2.msg
- }
- }
- const v3 = validateField(user_id, 'user_id')
- if (!v3.flag) {
- return {
- success: false,
- msg: v3.msg
- }
- }
- const v4 = validateField(type, 'type')
- if (!v4.flag) {
- return {
- flag: false,
- msg: v4.msg
- }
- }
- const user = await models[type === 1 ? 'wx_user' : 'wx_teacher_user'].get({
- select: {
- school_id: true
- },
- filter: {
- where: {
- _id: {
- $eq: user_id
- }
- }
- }
- })
- const data = {
- file_name,
- reason,
- user_id,
- type,
- school_id: user.data.school_id,
- createdAt: new Date().getTime(),
- }
- return await handleAdd(parameter, data, 'abnormal_behavior_alarm')
- }
- /**
- * 根据Id删除商品规格
- * @param {*} _id 规格Id
- */
- async function deleteBehaviorAlarm(parameter) {
- const { _id } = parameter
- return handleDelete(parameter, _id, 'abnormal_behavior_alarm')
- }
- /**
- * 编辑异常行为告警
- * @param {*} _id 主键Id
- * @param {*} file_name 课件名称
- * @param {*} reason 异常行为
- * @param {*} user_id 用户Id
- * @param {*} type 报警端: 0-教师 1-家长
- * @param {*} id 团购Id
- * @returns
- */
- async function updateBehaviorAlarm(parameter) {
- const { _id, file_name, reason, user_id, type } = parameter
- const obj = {}
- const v0 = validateField(_id, '_id')
- if (!v0.flag) {
- return {
- success: false,
- msg: v0.msg
- }
- }
- const v1 = validateField(file_name, 'file_name')
- if (v1.flag) {
- obj.file_name = file_name
- }
- const v2 = validateField(reason, 'reason')
- if (v2.flag) {
- obj.reason = reason
- }
- const v3 = validateField(user_id, 'user_id')
- if (v3.flag) {
- obj.user_id = user_id
- }
- const v4 = validateField(type, 'type')
- if (v4.flag) {
- obj.type = type
- }
- return await handleUpdate(parameter, _id, obj, 'abnormal_behavior_alarm')
- }
- /**
- * 分页查询异常行为告警
- * @param {*} startTime 开始时间
- * @param {*} endTime 结束时间
- * @param {*} pageNum 当前页面
- * @param {*} pageSize 每页展示数量
- * @returns 分页数据
- */
- async function findBehaviorAlarmPage(parameter) {
- const { startTime, endTime, pageNum, pageSize } = parameter
- const v1 = validateField(pageNum)
- if (!v1.flag) {
- return {
- success: false,
- records: [],
- msg: v1.msg
- }
- }
- const v2 = validateField(pageSize)
- if (!v2.flag) {
- return {
- success: false,
- records: [],
- msg: v2.msg
- }
- }
- // 查询参数
- const params = {
- pageNum,
- pageSize
- }
- // 拼接查询条件
- let condition = " where aba.type = 0 "
- if (startTime != null && endTime != null) {
- condition += " and aba.createdAt >= {{startTime}} and aba.createdAt <= {{endTime}} "
- params.startTime = startTime
- params.endTime = endTime
- }
- const skip = (pageNum - 1) * pageSize
- // 查询sql
- const sql = "select " +
- "aba._id as id, " +
- "tu.name as yonghuming, " +
- "s.name as xuexiaomingcheng, " +
- "aba.file_name as kejianmingcheng, " +
- "aba.reason as yichangxingwei, " +
- "aba.type, " +
- "aba.createdAt " +
- "from abnormal_behavior_alarm aba " +
- "left join wx_teacher_user tu on aba.user_id = tu._id " +
- "left join wx_school s on tu.school_id = s._id " +
- condition +
- " order by createdAt desc " + "limit " + skip + ", " + pageSize
- const countSql = "select count(*) as total from abnormal_behavior_alarm aba " +
- "left join wx_teacher_user tu on aba.user_id = tu._id " +
- "left join wx_school s on tu.school_id = s._id " +
- condition
- try {
- // 查询数据sql
- const records = await models.$runSQL(sql, params)
- const count = await models.$runSQL(countSql, params)
- return {
- sql,
- countSql,
- params,
- success: true,
- msg: '查询成功',
- records: records.data.executeResultList,
- total: count.data.executeResultList[0].total
- }
- } catch (error) {
- return {
- success: false,
- msg: '查询失败',
- params,
- sql,
- countSql,
- error: error
- }
- }
- }
- /**
- * 根据Id查询
- * @param {*} _id Id
- */
- async function findBehaviorAlarmById(parameter) {
- const { _id } = parameter
- return handleFindByField(parameter, _id, 'abnormal_behavior_alarm')
- }
- module.exports = {
- addBehaviorAlarm,
- deleteBehaviorAlarm,
- updateBehaviorAlarm,
- findBehaviorAlarmPage,
- findBehaviorAlarmById,
- };
|