cellsysBase/cellsysMember.js

258 lines
8.6 KiB
JavaScript
Raw Permalink Normal View History

2024-08-14 16:20:56 +08:00
import { Query, QueryTask, QueryType, Operator, CellsysType } from './cellsysUtil.js';
import CellsysEquipment from './cellsysEquipment.js';
2024-12-26 11:21:07 +08:00
import { formatterDate } from './utils/date';
2024-08-14 16:20:56 +08:00
class CellsysMember {
constructor(params) {
this.cellsysType = CellsysType.Member;
if (!params) {
params = {};
}
this.memberId = params.member_id;
this.userId = params.user_id;
this.realName = params.realname || '';
this.groupId = params.group_id; //成员加入的群组应该是个数组,所以该字段可能有问题请不要使用,待排查完毕后去除
this.groupIds = params.group_ids;
this.groupName = params.group_name;
this.mobile = params.mobile;
this.email = params.email;
this.gender = params.gender;
this.memberType = params.member_type; //成员类型id
this.typeName = params.type_name || ''; //成员名称
this.orgId = params.org_id;
this.orgName = params.org_name;
this.isLeader = params.is_leader;
this.style = params.style;
this.description = params.description;
this.macId = params.macid;
this.createTime = params.create_time;
this.updateTime = params.update_time;
this.dateTime = params.datetime; //位置上传时间
this.onlineStatus = {
status: 0, //在线状态,默认离线
timeStamp: params.datetime, //最后更新状态时间
outlineColor: '#bfbfbf', //离线状态颜色值
onlineColor: params.style ? params.style.fillColor : '#bfbfbf', //在线状态颜色值
};
/**
* 加入组织审核状态
*/
// this.status = params.status ? params.status : 1
this.userOrgStatus = params.user_org_status;
this.userOrgType = params.user_org_type;
this.feedback = params.feedback;
this.geometry = params.geometry ? params.geometry : null;
this.avatar = params.avatar; // 头像
}
2024-12-26 11:21:07 +08:00
get dateTimeStr() {
if (this.dateTime) {
return formatterDate(this.dateTime, 'YYYY-MM-DD HH:mm');
}
2024-08-14 16:20:56 +08:00
}
get createTimeFormat() {
return formatterDate(this.createTime);
}
get updateTimeFormat() {
return formatterDate(this.updateTime);
}
2024-08-14 16:20:56 +08:00
setLeader(value) {
if (value && value === 1) {
this.isLeader = 1;
} else {
this.isLeader = 0;
}
}
setGeometry(value) {
this.geometry = value;
}
//查询用户绑定的设备详情,带组织联合逻辑,无分页
2024-12-26 11:21:07 +08:00
queryBindDeviceDeatil(params = {}) {
let { isUnion } = params;
2024-08-14 16:20:56 +08:00
if (this.macId) {
let query = new Query();
2024-12-26 11:21:07 +08:00
let queryType = QueryType.Equipment;
if (isUnion) {
queryType = QueryType.UnionEquipment;
}
2024-08-14 16:20:56 +08:00
let queryTask = new QueryTask(queryType);
query.addFilter('macid', Operator.Equals, this.macId);
return new Promise((resolve, reject) => {
queryTask
.execute(query)
.then((res) => {
let resArr = res.map((item) => {
return new CellsysEquipment(item);
});
resolve(resArr);
})
.catch((err) => {
reject(err);
});
});
} else {
return Promise.reject('该成员没有绑定可以通讯的设备');
}
}
/**
* 获取人员轨迹-5分钟
*/
getTrajectory5Minute() {
let query = new Query();
query.addFilter('user_id', Operator.Equals, this.userId);
query.setOrder({ datetime: 'asc' });
let queryType = QueryType.Trajectory5Minute;
if (window.CELLSYSORG.unionStatus === 1) {
queryType = QueryType.UnionTrajectory5Minute;
}
let queryTask = new QueryTask(queryType);
return queryTask.execute(query);
}
/**
* 获取人员轨迹-15分钟
*/
getTrajectory15Minute() {
let query = new Query();
query.addFilter('user_id', Operator.Equals, this.userId);
query.setOrder({ datetime: 'asc' });
let queryType = QueryType.Trajectory15Minute;
if (window.CELLSYSORG.unionStatus === 1) {
queryType = QueryType.UnionTrajectory15Minute;
}
let queryTask = new QueryTask(queryType);
return queryTask.execute(query);
}
/**
* 获取人员轨迹-30分钟
*/
getTrajectory30Minute() {
let query = new Query();
query.addFilter('user_id', Operator.Equals, this.userId);
query.setOrder({ datetime: 'asc' });
let queryType = QueryType.Trajectory30Minute;
if (window.CELLSYSORG.unionStatus === 1) {
queryType = QueryType.UnionTrajectory30Minute;
}
let queryTask = new QueryTask(queryType);
return queryTask.execute(query);
}
/**
* 获取人员轨迹-1小时
*/
getTrajectory1Hour() {
let query = new Query();
query.addFilter('user_id', Operator.Equals, this.userId);
query.setOrder({ datetime: 'asc' });
let queryType = QueryType.Trajectory1Hour;
if (window.CELLSYSORG.unionStatus === 1) {
queryType = QueryType.UnionTrajectory1Hour;
}
let queryTask = new QueryTask(queryType);
return queryTask.execute(query);
}
/**
* 获取人员轨迹-2小时
*/
getTrajectory2Hour() {
let query = new Query();
query.addFilter('user_id', Operator.Equals, this.userId);
query.setOrder({ datetime: 'asc' });
let queryType = QueryType.Trajectory2Hour;
if (window.CELLSYSORG.unionStatus === 1) {
queryType = QueryType.UnionTrajectory2Hour;
}
let queryTask = new QueryTask(queryType);
return queryTask.execute(query);
}
/**
* 获取人员轨迹-4小时
*/
getTrajectory4Hour() {
let query = new Query();
query.addFilter('user_id', Operator.Equals, this.userId);
query.setOrder({ datetime: 'asc' });
let queryType = QueryType.Trajectory4Hour;
if (window.CELLSYSORG.unionStatus === 1) {
queryType = QueryType.UnionTrajectory4Hour;
}
let queryTask = new QueryTask(queryType);
return queryTask.execute(query);
}
/**
* 获取人员轨迹-今天
*/
getTrajectoryToday() {
let query = new Query();
query.addFilter('user_id', Operator.Equals, this.userId);
query.setOrder({ datetime: 'asc' });
let queryType = QueryType.TrajectoryToday;
if (window.CELLSYSORG.unionStatus === 1) {
queryType = QueryType.UnionTrajectoryToday;
}
let queryTask = new QueryTask(queryType);
return queryTask.execute(query);
}
/**
* 获取人员轨迹-昨天
*/
getTrajectoryYesterday() {
let query = new Query();
query.addFilter('user_id', Operator.Equals, this.userId);
query.setOrder({ datetime: 'asc' });
let queryType = QueryType.TrajectoryYesterday;
if (window.CELLSYSORG.unionStatus === 1) {
queryType = QueryType.UnionTrajectoryYesterday;
}
let queryTask = new QueryTask(queryType);
return queryTask.execute(query);
}
/**
* 获取人员轨迹-前天
*/
getTrajectoryAnteayer() {
let query = new Query();
query.addFilter('user_id', Operator.Equals, this.userId);
query.setOrder({ datetime: 'asc' });
let queryType = QueryType.TrajectoryAnteayer;
if (window.CELLSYSORG.unionStatus === 1) {
queryType = QueryType.UnionTrajectoryAnteayer;
}
let queryTask = new QueryTask(queryType);
return queryTask.execute(query);
}
/**
* 时间段查询轨迹
* @param start 开始时间
* @param end 结束时间
* @returns {Promise<unknown>}
*/
getTrajectoryByTimePart(start, end) {
let query = new Query();
query.addFilter('user_id', Operator.Equals, this.userId);
query.addFilter('datetime', Operator.GTE, start);
query.addFilter('datetime', Operator.LTE, end);
query.setOrder({ datetime: 'asc' });
let queryType = QueryType.TrajectoryDatePath;
if (window.CELLSYSORG.unionStatus === 1) {
queryType = QueryType.UnionTrajectoryDatePath;
}
let queryTask = new QueryTask(queryType);
return queryTask.execute(query);
}
}
export default CellsysMember;