import { Query, QueryTask, QueryType, EditTask, EditType, Operator, CellsysType, } from './cellsysUtil.js'; import CellsysOfflinePolygonType from './cellsysOfflinePolygonType'; import CellsysEquipment from './cellsysEquipment'; import CellsysMessage from './cellsysMessage'; import CellsysPolygon from './cellsysPolygon'; class CellsysUser { constructor(params) { this.cellsysType = CellsysType.User; if (!params) { params = {}; } this.userId = params.user_id; this.userStatus = params.user_status; this.userName = params.username; this.realName = params.realname; this.role = params.role; this.mobile = params.mobile; this.email = params.email; this.openId = params.openid; this.isUserName = params.is_username; this.isMobile = params.is_mobile; this.oauth = params.oauth; this.avatar = params.avatar; this.gender = params.gender; this.birthday = params.birthday; this.orgId = params.org_id; this.orgStatus = params.org_status; //组织本身状态 this.userOrgStatus = params.user_org_status; this.userOrgType = params.user_org_type; this.memberTypeId = params.member_type_id; this.memberTypeName = params.member_type_name; this.orgFeedBack = params.feedback; this.groups = params.groups; this.macId = params.macid; //用户绑定的设备 // this.status = params.status // this.orgType = params.orgType // 0:两种申请都被拒绝 1:创建组织被拒绝 2:加入组织被拒绝 window.CELLSYSUSER = this || {}; //cellsysSDK不应该依赖于vue才能访问到cellsysUser对象,因此引入window全局属性来缓存cellsysUser对象 } get isAdmin() { return /_admin$/.test(this.role); } setId(value) { this.userId = value; } queryMessageRecord(params = {}) { let query = new Query(); let { pageInfo, filters, order, httpConfig } = params; if (pageInfo) { query.setCurrPage(pageInfo.currPage); query.setPageSize(pageInfo.pageSize); } if (filters && filters.length > 0) { filters.forEach((item) => { query.addFilter(item['name'], item['operator'], item['value'], item['type']); }); } if (order) { query.setOrder(order); } else { query.setOrder({ id: 'desc' }); } if (httpConfig) { query.setHttpConfig(httpConfig); } let queryTask = new QueryTask(QueryType.MessageRecord, pageInfo ? true : false); return new Promise((resolve, reject) => { queryTask .execute(query) .then((res) => { if (res && res.data) { res.data = res.data.map((item) => { return new CellsysMessage(item); }); } resolve(res); }) .catch((err) => { reject(err); }); }); } queryBindingDevice() { let query = new Query(); query.setPageSize(0); query.addFilter('macid', Operator.Equals, this.macId); let queryTask = new QueryTask(QueryType.Equipment); return new Promise((resolve, reject) => { queryTask .execute(query) .then((res) => { let equipments = res.map((item) => { return new CellsysEquipment(item); }); resolve(equipments); }) .catch((err) => { reject(err); }); }); } //将指定的聊天消息设置成已读 setMessageRead(ids = []) { let editTask = new EditTask(EditType.ChatPrivateRead); editTask.addParam('_ids', ids); return editTask.execute(); } } export default CellsysUser;