コード例 #1
0
 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
コード例 #2
0
    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
コード例 #3
0
ファイル: busline.py プロジェクト: waterbocai/gps-track
    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
コード例 #4
0
ファイル: busline.py プロジェクト: waterbocai/gps-track
    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
コード例 #5
0
    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
コード例 #6
0
 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