123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- const { models } = require('../db')
- const { validateField, handleAdd, handleUpdate, handleDelete, handleFindByField } = require('../common')
- /**
- *
- * 记录用户行为 表格 调 monitor_behavior(监听用户行为)
- *
- * 字段展示 用户名 根据 监听用户行为表 user_id 去 老师表(wx_teacher_user)里查_id是否相同 相同取园所名称(name)
- * 进入时间 —— start_time
- * 退出时间 —— end_time
- * 流量时长 —— duration
- * 修改后手机号 —— update_phone
- * 修改后收货人 —— update_name
- * 下单时间 —— createdAt
- *
- * 查询 调 monitor_behavior(监听用户行为)
- * createdAt —— 创建时间
- *
- *
- */
- /**
- * 新增
- * @param {*} user_id 用户Id
- * @param {*} type 用户端(0-教师 1-家长)
- * @param {*} duration 时长
- * @param {*} start_time 进入时间
- * @param {*} end_time 退出时间
- * @param {*} file_id 课件Id
- * @returns
- */
- async function addMmonitorBehavior(parameter) {
- const { user_id, type, duration, start_time, end_time, file_id } = parameter
- const v1 = validateField(user_id, 'user_id')
- if (!v1.flag) {
- return {
- success: false,
- msg: v1.msg
- }
- }
- const v2 = validateField(type, 'type')
- if (!v2.flag) {
- return {
- success: false,
- msg: v2.msg
- }
- }
- const v3 = validateField(file_id, 'file_id')
- if (!v3.flag) {
- return {
- success: false,
- msg: v3.msg
- }
- }
- const v4 = validateField(start_time, 'start_time')
- if (!v4.flag) {
- return {
- success: false,
- msg: v4.msg
- }
- }
- const data = {
- user_id, type, duration, start_time, end_time
- }
- return await handleAdd(parameter, data, 'monitor_behavior')
- }
- /**
- * 根据Id删除
- * @param {*} _id Id
- */
- async function deleteMmonitorBehavior(parameter) {
- const { _id } = parameter
- return handleDelete(parameter, _id, 'monitor_behavior')
- }
- /**
- * 编辑
- * @param {*} _id 主键Id
- * @param {*} user_id 用户Id
- * @param {*} type 用户端(0-教师 1-家长)
- * @param {*} duration 时长
- * @param {*} start_time 进入时间
- * @param {*} end_time 退出时间
- * @param {*} file_id 课件Id
- * @returns
- */
- async function updateMmonitorBehavior(parameter) {
- const { _id, user_id, type, duration, start_time, end_time, file_id } = parameter
- const obj = {}
- const v0 = validateField(_id, '_id')
- if (!v0.flag) {
- return {
- success: false,
- msg: v0.msg
- }
- }
- const v1 = validateField(user_id, 'user_id')
- if (v1.flag) {
- obj.user_id = user_id
- }
- const v2 = validateField(type, 'type')
- if (v2.flag) {
- obj.type = type
- }
- const v3 = validateField(duration, 'duration')
- if (v3.flag) {
- obj.duration = duration
- }
- const v4 = validateField(start_time, 'start_time')
- if (v4.flag) {
- obj.start_time = start_time
- }
- const v5 = validateField(end_time, 'end_time')
- if (v5.flag) {
- obj.end_time = end_time
- }
- const v6 = validateField(file_id, 'file_id')
- if (v6.flag) {
- obj.file_id = file_id
- }
- return await handleUpdate(parameter, _id, obj, 'monitor_behavior')
- }
- /**
- * 分页查询
- * @param {*} startTime 开始时间
- * @param {*} endTime 结束时间
- * @param {*} pageNum 当前页面
- * @param {*} pageSize 每页展示数量
- * @returns 分页数据
- */
- async function findMmonitorBehaviorPage(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 = ""
- if (startTime != null && endTime != null) {
- condition += " where mb.createdAt >= {{startTime}} and mb.createdAt <= {{endTime}} "
- params.startTime = startTime
- params.endTime = endTime
- }
- const skip = (pageNum - 1) * pageSize
- // 查询sql
- const sql = "select " +
- "mb._id, " +
- "tu.user_name, " +
- "mb.start_time, " +
- "mb.end_time, " +
- "mb.duration, " +
- "mb.createdAt, " +
- "(select count(*) from download_history dh where dh.user_id = mb.user_id and mb.file_id = dh.file_manage_id) as total " +
- "from monitor_behavior mb " +
- "left join wx_teacher_user tu on mb.user_id = tu._id " +
- condition +
- " order by mb.createdAt desc " + "limit " + skip + ", " + pageSize
- const countSql = "select count(*) as total from monitor_behavior mb " +
- "left join wx_teacher_user tu on mb.user_id = tu._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 findMmonitorBehaviorById(parameter) {
- const { _id } = parameter
- return handleFindByField(parameter, _id, 'monitor_behavior')
- }
- module.exports = {
- addMmonitorBehavior,
- deleteMmonitorBehavior,
- updateMmonitorBehavior,
- findMmonitorBehaviorPage,
- findMmonitorBehaviorById,
- }
|