2022-05-06 22:49:45 +00:00
|
|
|
|
|
|
|
import UserOnlineTime from "../../models/UserOnlineTime";
|
|
|
|
import { Op, Sequelize } from "sequelize";
|
|
|
|
|
|
|
|
interface Request {
|
|
|
|
userId?: string | number;
|
|
|
|
status?: string;
|
|
|
|
date: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const ListUserOnlineOffline = async ({date, userId, status}: Request): Promise<UserOnlineTime[]> => {
|
|
|
|
|
|
|
|
let where_clause = {}
|
|
|
|
|
2022-05-16 02:48:06 +00:00
|
|
|
|
2022-05-06 22:49:45 +00:00
|
|
|
if(userId && status){
|
|
|
|
where_clause = {
|
|
|
|
[Op.and]: [
|
|
|
|
{userId: userId},
|
|
|
|
{status: status},
|
|
|
|
{
|
|
|
|
"$createdAt$": Sequelize.where(Sequelize.fn("date", Sequelize.col("createdAt")), `${date}`)
|
|
|
|
},
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if(userId){
|
|
|
|
where_clause = {
|
|
|
|
[Op.and]: [
|
|
|
|
{userId: userId},
|
|
|
|
{
|
|
|
|
"$createdAt$": Sequelize.where(Sequelize.fn("date", Sequelize.col("createdAt")), `${date}`)
|
|
|
|
},
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if(status){
|
|
|
|
where_clause = {
|
|
|
|
[Op.and]: [
|
|
|
|
{status: status},
|
|
|
|
{
|
|
|
|
"$createdAt$": Sequelize.where(Sequelize.fn("date", Sequelize.col("createdAt")), `${date}`)
|
|
|
|
},
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
where_clause = {
|
|
|
|
[Op.and]: [
|
|
|
|
{
|
|
|
|
"$createdAt$": Sequelize.where(Sequelize.fn("date", Sequelize.col("createdAt")), `${date}`)
|
|
|
|
},
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const users = await UserOnlineTime.findAll({
|
|
|
|
where: where_clause,
|
|
|
|
raw:true,
|
2022-05-16 02:48:06 +00:00
|
|
|
|
|
|
|
attributes: ['id', 'userId', 'status',
|
|
|
|
[Sequelize.fn("DATE_FORMAT",Sequelize.col("UserOnlineTime.onlineTime"),"%Y-%m-%d %H:%i:%s"),"onlineTime"],
|
|
|
|
[Sequelize.fn("DATE_FORMAT",Sequelize.col("UserOnlineTime.createdAt"),"%Y-%m-%d %H:%i:%s"),"createdAt"],
|
|
|
|
[Sequelize.fn("DATE_FORMAT",Sequelize.col("UserOnlineTime.updatedAt"),"%Y-%m-%d %H:%i:%s"),"updatedAt"]],
|
|
|
|
|
2022-05-06 22:49:45 +00:00
|
|
|
order: [["id", "ASC"]],
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
return users;
|
|
|
|
};
|
|
|
|
|
|
|
|
export default ListUserOnlineOffline;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|