def getAboutMsg(self,data): openid = objWeixin.getOpenid(data) imei = data.imei _ret = db.query('SELECT * FROM Device WHERE imei="{0}"'.format(imei)) cfgPara = { "result":"failed" } if len(_ret)>0: dev = _ret[0] #查询该imei所属的管理分组 _group = db.query("""SELECT *,DeviceGroup.id AS grpId FROM DeviceGroup,GroupHasDevice WHERE GroupHasDevice.imei ='{0}' AND GroupHasDevice.devicegroup_id =DeviceGroup.id AND DeviceGroup.type = "管理分组" """.format(imei)) if len(_group)>0: grp = _group[0] grpName = grp.name grpId = grp.grpId _ret = db.query("SELECT * FROM BusLine WHERE busgroupid={0}".format(grpId)) busline = _ret[0] busline_id = busline.id company_id = busline.company_id else: grpName = "未知" grpId = -1 company_id = 0 busline_id = -1 cfgPara = { "result" :"success", "name" :dev.name, "openid" :openid, "busline_id" :busline_id, "grpName" :grpName, "grpId" :grpId, "devType" :("天网1代" if dev.devType=="" else dev.devType), "manufacturer" :dev.manufacturer, "imei" :dev.imei, "phone" :dev.phone, "arm_type" :dev.arm_type, "seat_type" :dev.seat_type, "create_at" :dev.regedit_at.strftime("%Y-%m-%d"), "warehouse_id" :dev.warehouse_id, "company_id" :company_id, } if web.ctx.method=='GET': sharePara=tradeObj.genPreSharePara("transfer",openid,imei) #设定缺省车型 sharePara["sel"]={"midbus":"","bed":"","test":""} sharePara["sel"][dev.seat_type]='selected = "selected"' sharePara["company_id"]= company_id jdkSign = objWeixin.get_jdk_sign(self.env['url']) _cfgPara=json.dumps(cfgPara,ensure_ascii=False) ret = self.render.single_device_mgr(_cfgPara,jdkSign,sharePara) else: ret = uTools.formatPostMsg(cfgPara) return ret
def getMineTrackMsg(self, openid, data): #jdkSign = objWeixin.get_jdk_sign(self.url) company_id = data.company_id jdkSign = {} dev = devdb.getDevice(data.imei) if dev != "": #查询设备位置信息 arm = historyTrackMgr.getMineTrack(dev['imei']) _ret = db.query( "SELECT * FROM BusLine WHERE busgroupid={0}".format( dev["groupid"])) busline = _ret[0] sites = linedb.getSitesByLineid(busline.id, "manual") cfgPara = { "pt": arm, 'openid': openid, 'dev': dev, 'busline_id': busline.id, 'sites': sites["manual"], 'url': "gxsaiwei/m/bustrack?act=MINE_TRACK&openid={0}&imei=".format( openid), 'imei': dev['imei'], "company_id": company_id, } else: cfgPara = { "pt": "", 'openid': openid, 'dev': "", 'url': "#", 'imei': "", 'sites': [], 'busline_id': -1, "company_id": company_id, } if web.ctx.method == 'GET': jdkSign = objWeixin.get_jdk_sign(self.url) sharePara = tradeObj.genPreSharePara("share_view", openid, cfgPara['imei']) _cfgPara = json.dumps(cfgPara, ensure_ascii=False) ret = self.render.mytrackqq_v2(_cfgPara, jdkSign, sharePara) #ret = self.render.mytrackqq_v1(cfgPara,_cfgPara) else: ret = uTools.formatPostMsg(cfgPara) return ret
def get_bustravel_detail(self, openid, data): span_id = data.span_id cfgPara = busdb.getDetailBusTravelStat(span_id) imei = cfgPara["imei"] company = linedb.getCompanyByImei(imei) dev = devdb.getDeviceByImei(imei, format="string") cfgPara["name"] = dev["name"] cfgPara["company_id"] = company["id"] cfgPara["openid"] = openid jdksign = objWeixin.get_jdk_sign(self.env["url"]) sharePara = tradeObj.genPreSharePara("share-view", openid, imei) sharePara["blank_color"] = "#C0C0C0" sharePara["manager"] = objWeixin.getManager(openid) sharePara["company_id"] = company["id"] sharePara["openid"] = openid cfgPara = json.dumps(cfgPara, ensure_ascii=False) ret = self.render.bustravel_detail(cfgPara, jdksign, sharePara) return ret
def get_bustravel_current(self, openid, data): imei = data.imei company = linedb.getCompanyByImei(imei) dev = devdb.getDeviceByImei(imei, format="string") cfgPara = busdb.getCurrentBusTravelStat(imei) if cfgPara == None: #暂时没有数据 ret = web.seeother( "/device?act=seat-status-auto&openid={0}&imei={1}&company_id={2}" .format(openid, imei, company["id"])) else: cfgPara["name"] = dev["name"] cfgPara["imei"] = imei cfgPara["company_id"] = company["id"] jdksign = objWeixin.get_jdk_sign(self.env["url"]) sharePara = tradeObj.genPreSharePara("share-view", openid, imei) sharePara["manager"] = objWeixin.getManager(openid) sharePara["company_id"] = company["id"] cfgPara = json.dumps(cfgPara, ensure_ascii=False) ret = self.render.bustravel_current(cfgPara, jdksign, sharePara) return ret
def friendManager(self,openid,imei): items =[] #权限验证 company = linedb.getCompanyByImei(imei) employee = linedb.getCompanyEmployeeByOpenid(openid,company["id"]) if employee["privilege"]=="manager":#是设备主人 _grps = db.query("""SELECT *,GroupHasDevice.created_at AS received_at,GroupHasDevice.id AS ghdId FROM GroupHasDevice,DeviceGroup WHERE GroupHasDevice.imei='{0}' AND GroupHasDevice.devicegroup_id = DeviceGroup.id AND DeviceGroup.type ='视图分组'""".format(imei)) for grp in _grps: _user = db.query("SELECT * FROM Customer WHERE openid='{0}'".format(grp.Customer_openid)) for user in _user: items.append({ "nickname" :user.nickname, "received_at":grp.received_at.strftime("%Y-%m-%d %H:%M:%S"), "ghdId" :grp.ghdId, "openid" :grp.Customer_openid, "privilege" :grp.privilege }) _dev = db.query("SELECT * FROM Device WHERE imei='{0}'".format(imei)) cfgPara={"openid" :openid, "items" :items, "imei" :imei, "devName":_dev[0].name } if web.ctx.method=='GET': jdkSign = objWeixin.get_jdk_sign(self.env["url"]) sharePara=tradeObj.genPreSharePara("share-view",openid,imei) _cfgPara =json.dumps(cfgPara,ensure_ascii=False) ret = self.render.friend_manager(_cfgPara,jdkSign,sharePara) else: ret =uTools.formatPostMsg(cfgPara) return ret
def getSeatsByImeiAuto(self, roleType,openid,data): if data.has_key("imei"): imei = data.imei else: imei = devdb.getDemoDeviceImei() #演示大巴 #判定该用户对imei的可视权限--暂缺 if data.has_key("his_datetime") or roleType=="operator-history": if data.has_key("his_datetime"): his_datetime = data.his_datetime else: his_datetime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") seatStatus= busdb.getSeatStatus(imei,his_datetime) else: seatStatus = busdb.getSeatStatus(imei) cfgPara=seatStatus["param"] _typeMap = {"region":"区间检测","timer":"定时分析","timely":"及时数据"} if seatStatus["region"]!=None: _type="region" elif seatStatus["timer"]!=None: _type="timer" else: _type="timely" cfgPara["srcType"] =_typeMap[_type] for key in seatStatus[_type]: cfgPara[key] = seatStatus[_type][key] dev = devdb.getDeviceByImei(imei,format="string") company = linedb.getCompanyByImei(imei) cfgPara["name"] =dev["name"] cfgPara["dev"] =dev cfgPara["company_id"] =company["id"] cfgPara["heartbeat_at"]=dev["heardbeat_at"] cfgPara["openid"] =openid #修正统计座位数 seat_num = 0 for seat in dev["seat_template"].split(";"): if seat.split(",")[0]!="": seat_num+=1 cfgPara["seat_num"] = seat_num cfgPara["sum"]["空座"] = seat_num -cfgPara["sum"]["有人"] cfgPara["openid"] =openid if web.ctx.method=='POST': ret =uTools.formatPostMsg(cfgPara) else: if dev["seat_template"]==None or dev["seat_template"]=="": ret = web.seeother('/device?act=bus-config&imei={0}&openid={1}'.format(imei,openid)) else: jdksign = objWeixin.get_jdk_sign(self.env["url"]) sharePara=tradeObj.genPreSharePara("share-view",openid,cfgPara["dev"]['imei']) sharePara["seat_template"] = self.seat_template(dev["seat_template"]) sharePara["blank_color"]="#C0C0C0" sharePara["manager"] = linedb.getManageEmployee(openid) sharePara["company_id"] =company["id"] cfgPara = json.dumps(cfgPara,ensure_ascii=False) if roleType=="operator": ret = self.render.seat_status_auto(cfgPara,jdksign,sharePara) elif roleType=="operator-history": ret = self.render.seat_status_his(cfgPara,jdksign,sharePara) else: if dev["seat_type"]=="bed": ret = self.render.bed_status_auto(cfgPara,jdksign,sharePara) elif dev["seat_type"]=="midbus": ret = self.render.seat_midbus_status_auto(cfgPara,jdksign,sharePara) elif dev["seat_type"]=="seat53": if imei=='681501000179443': print("sharePara----sharePara") print(sharePara) ret = self.render.seat53_status_auto(cfgPara,jdksign,sharePara) elif dev["seat_type"]=="seat39": ret = self.render.seat39_status_auto(cfgPara,jdksign,sharePara) else: ret = web.seeother('/device?act=bus-config&imei={0}&openid={1}'.format(imei,openid)) return ret