| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538 |
- # -*- coding: utf-8 -*-
- from django.shortcuts import render, redirect
- from django.conf.urls import url
- from django.http import HttpResponse
- from django.views.generic.base import View
- from django.views.generic import ListView
- from django.contrib import auth
- from django.contrib.auth.hashers import make_password, check_password
- from django.contrib.auth import authenticate, login as auth_login, logout
- from yfwlw_pro.settings import get_client_ip
- # from apps.AppInfoManage.models import Help, MyUser, User_Group,User_Log
- from apps.AppInfoManage.models import *
- from django.contrib.auth.decorators import login_required
- from django.db.models import Q
- import json
- from apps.EquipManage.views import CJSONEncoder
- from apps.SimInfo.views import get_simsinfo, get_siminfo
- import re
- import time
- import datetime,os
- from PIL import Image
- from apps.ReportManage.all_dict import qxz_dict
- # app登录:
- class app_login(View):
- def get(self, request):
- pass
- def post(self, request):
- user_name = request.POST.get('username')
- pass_word = request.POST.get('password')
- print('输入的用户名:', user_name)
- print('输入的密码:', pass_word)
- user = MyUser.objects.extra(
- where=['binary username=%s'], params=[user_name])
- print("user.exists():", user.exists())
- data = {"role":"","code":"0"}
- if user.exists() == False:
- data = {"role":"","code":"1"}
- data = json.dumps(data)
- return HttpResponse(data)
- else:
- user = MyUser.objects.get(username=user_name)
- if user.is_active != True:
- data = {"role":"","code":"2"}
- data = json.dumps(data)
- return HttpResponse(data)
- else:
- if check_password(pass_word, user.password) != True:
- data = {"role":"","code":"3"}
- print('密码错误')
- data = json.dumps(data)
- return HttpResponse(data)
- else:
- print('登陆成功')
- auth_user = authenticate(
- username=user_name, password=pass_word)
- auth_login(request, auth_user)
- # 将当前登录的用户名写入session
- request.session['username'] = user_name
- if user.is_superuser:
- role = "superuser"
- elif user.is_staff:
- role = "staff"
- elif user.is_agency:
- role = "agency"
- else:
- role = "user"
- # 记录用户操作记录:
- User_Log.objects.create(
- log_user=request.user.username, log_ip=get_client_ip(request), log_desc='app登录')
- data = {"role":role,"code":"0"}
- data = json.dumps(data)
- print("data:",data)
- return HttpResponse(data)
- # 退出APP登录:
- @login_required
- def app_logout(request):
- username = request.POST.get('username')
- print("用户退出")
- # 删除session
- del request.session['username']
- auth.logout(request)
- data = "0"
- return HttpResponse(data)
- # 个人信息:
- class app_user_info(View):
- def get(self, request):
- pass
- def post(self, request):
- req = request.POST.get('req')
- user_name = request.user.username
- if req == "info":
- user = MyUser.objects.filter(username=user_name)
- for x in user:
- data = {"username": x.username,
- "email": x.email,
- "user_phone": x.user_phone,
- "user_pro": x.user_pro,
- "user_city": x.user_city,
- "user_area": x.user_area,
- "user_picture":str(x.user_picture)
- }
- data = json.dumps(data)
- print("data:",data)
- return HttpResponse(data)
- elif req == "change_info":
- user = MyUser.objects.get(username=user_name)
- user.user_phone = request.POST.get('phone')
- user.user_pro = request.POST.get('province')
- user.user_city = request.POST.get('city')
- user.user_area = request.POST.get('area')
- print("phone:", request.POST.get('phone'))
- print("province:", request.POST.get('province'))
- print("city:", request.POST.get('city'))
- print("area:", request.POST.get('area'))
- try:
- user.save()
- User_Log.objects.create(log_user=request.user.username,
- log_ip=request.META['REMOTE_ADDR'], log_desc='修改个人信息')
- data = "0"
- return HttpResponse(data)
- except:
- data = "1"
- return HttpResponse(data)
-
- # 修改头像:
- elif req == "change_photo":
- user = MyUser.objects.get(username=user_name)
- user_photo = request.FILES.get('file')
- print("APP修改用户头像:", user_photo)
- user_photo_dir = 'user_photo/'
- # 判断如果路径不存在,即创建路径
- if os.path.exists(user_photo_dir) == False:
- os.makedirs(user_photo_dir)
- img = Image.open(user_photo)
- img.save(user_photo_dir + user_name+".png")
- new_photo = user_photo_dir + user_name+".png"
- # 数据库关联设备,并在照片的表中存入路径:
- user.user_picture = new_photo
- user.save()
- data = "0"
- return HttpResponse(data)
- # 设备列表:
- class app_equip_list(View):
- def get(self, request):
- pass
- def post(self, request):
- filt = request.POST.get('filter')
- print("filt:", filt)
- page = int(request.POST.get('page'))
- print("page:", page)
- current_user = request.session.get('username')
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- if filt == "":
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- equip_list = Equip.objects.filter(equip_user=current_user)
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---经销商")
- equip_list = Equip.objects.filter(equip_agency=current_user.user_agency)
- else:
- print("---管理员")
- equip_list = Equip.objects.all()
- else:
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- equip_list = Equip.objects.filter(Q(equip_user=current_user, equip_id__contains=filt) | Q(
- equip_user=current_user, equip_name__contains=filt))
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---经销商")
- equip_list = Equip.objects.filter(Q(equip_agency=current_user.user_agency, equip_id__contains=filt) | Q(
- equip_agency=current_user.user_agency, equip_name__contains=filt))
- else:
- print("---管理员")
- equip_list = Equip.objects.filter(
- Q(equip_id__contains=filt) | Q(equip_name__contains=filt))
- nums = equip_list.count()
- equip_list = equip_list[(10*(page-1)):(page*10)]
- data = {'nums': nums, 'dat': ""}
- dat = []
- for i in equip_list:
- sta1 = Equip.objects.filter(equip_id=i.equip_id).select_related()
- for x in sta1:
- try:
- sta2 = {"equip_id": x.equip_id,
- "equip_user": x.equip_user.username,
- "equip_name": x.equip_name,
- "equip_type": x.equip_type.type_id}
- except AttributeError:
- sta2 = {"equip_id": x.equip_id,
- "equip_user": "",
- "equip_name": x.equip_name,
- "equip_type": x.equip_type.type_id}
- dat.append(sta2)
- User_Log.objects.create(log_user=request.user.username,
- log_ip=request.META['REMOTE_ADDR'], log_desc='设备列表')
- data['dat'] = dat
- data = json.dumps(data, cls=CJSONEncoder)
- print("data:", data)
- return HttpResponse(data)
- # 设备列表详情:
- class app_equip_list_detail(View):
- def post(self, request):
- equip_id = request.POST.get('equip_id')
- x = Equip.objects.get(equip_id=equip_id)
- try:
- dat = {"equip_id": x.equip_id,
- "equip_user": x.equip_user.username,
- "equip_name": x.equip_name,
- "equip_add_time": x.equip_add_time,
- "equip_type": x.equip_type.type_id,
- "equip_location": x.equip_location}
- except AttributeError:
- dat = {"equip_id": x.equip_id,
- "equip_user": "",
- "equip_name": x.equip_name,
- "equip_add_time": x.equip_add_time,
- "equip_type": x.equip_type.type_id,
- "equip_location": x.equip_location}
- # User_Log.objects.create(
- # log_user=request.user.username, log_ip=request.META['REMOTE_ADDR'], log_desc='设备列表')
- data = json.dumps(dat, cls=CJSONEncoder)
- print("data:", data)
- return HttpResponse(data)
- # 设备管理:
- class app_equipmanage(View):
- def post(self, request):
- etype = request.POST.get('etype')
- print("etype:", etype)
- if etype == "scd":
- etype = SCDstatus
- elif etype == "cbd":
- etype = CBDstatus
- elif etype == "qxz":
- etype = QXZstatus
- elif etype == "bzy":
- etype = BZYstatus
- elif etype == "xycb":
- etype = YBQstatus
- filt = request.POST.get('filter')
- print("filt:", filt)
- page = int(request.POST.get('page'))
- print("page:", page)
- # 读取当前用户:
- current_user = request.session.get('username')
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- data = {'nums': "", 'dat': ""}
- if filt == "":
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- sta1 = etype.objects.filter(
- equip_id__equip_user=current_user)
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---经销商")
- sta1 = etype.objects.filter(
- equip_id__equip_agency=current_user.user_agency)
- else:
- print("---管理员")
- sta1 = etype.objects.all()
- else:
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- sta1 = etype.objects.filter(Q(equip_id__equip_user=current_user, equip_id__equip_id__contains=filt) | Q(
- equip_id__equip_user=current_user, equip_id__equip_name__contains=filt))
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---经销商")
- sta1 = etype.objects.filter(Q(equip_id__equip_agency=current_user.user_agency, equip_id__equip_id__contains=filt) | Q(
- equip_id__equip_agency=current_user.user_agency, equip_id__equip_name__contains=filt))
- else:
- print("---管理员")
- sta1 = etype.objects.filter(
- Q(equip_id__equip_id__contains=filt) | Q(equip_id__equip_name__contains=filt))
- nums = sta1.count()
- sta1 = sta1[(10*(page-1)):(page*10)]
- # if etype == "qxz":
- # sta2 = [{"equip_id": x.equip_id.equip_id, "upl_time": x.upl_time,
- # "equip_name": x.equip_id.equip_name} for x in sta1]
- # data['nums'] = nums
- # data['dat'] = sta2
- # data = json.dumps(data, cls=CJSONEncoder, indent=4)
- # # print("data:",data)
- # return HttpResponse(data)
- if request.POST.get('etype') == "xycb":
- try:
- sta2 = [{"equip_id": x.equip_id.equip_id, "upl_time": x.upl_time,
- "equip_name": x.equip_id.equip_name,"equip_code":x.equip_code,"type":x.sex_type,
- "is_online": x.is_online, "off_time": x.off_time} for x in sta1]
- except:
- sta2 = [{"equip_id": x.equip_id.equip_id, "upl_time": x.upl_time,
- "equip_name": x.equip_id.equip_name,"equip_code":x.equip_code,"type":x.sex_type} for x in sta1]
- data['nums'] = nums
- data['dat'] = sta2
- data = json.dumps(data, cls=CJSONEncoder, indent=4)
- # print("data:",data)
- return HttpResponse(data)
- try:
- sta2 = [{"equip_id": x.equip_id.equip_id, "upl_time": x.upl_time,
- "equip_name": x.equip_id.equip_name,
- "is_online": x.is_online, "off_time": x.off_time} for x in sta1]
- except:
- sta2 = [{"equip_id": x.equip_id.equip_id, "upl_time": x.upl_time,
- "equip_name": x.equip_id.equip_name} for x in sta1]
- data['nums'] = nums
- data['dat'] = sta2
- data = json.dumps(data, cls=CJSONEncoder, indent=4)
- # print("data:",data)
- return HttpResponse(data)
- # 设备管理详情:
- class app_equipmanage_detail(View):
- def post(self, request):
- etype = request.POST.get('etype')
- print("etype:", etype)
- equip_id = request.POST.get('equip_id')
- print("equip_id:", equip_id)
- if etype == "scd":
- x = SCDstatus.objects.get(equip_id__equip_id=equip_id)
- sta2 = {"scd_status": x.scd_status, "ds": x.ds, "upl_time": x.upl_time,
- "equip_name": x.equip_id.equip_name,
- "is_online": x.is_online, "off_time": x.off_time}
- elif etype == "cbd":
- x = CBDstatus.objects.get(equip_id__equip_id=equip_id)
- sta2 = {"cbd_status": x.cbd_status, "upl_time": x.upl_time,
- "paramconf": x.paramconf, "equip_name": x.equip_id.equip_name,
- "is_online": x.is_online, "off_time": x.off_time}
- elif etype == "qxz":
- sta2 = []
- try:
- sta = QXZstatus.objects.get(equip_id=equip_id)
- for i in range(len((eval(sta.qxz_status)["data"]))):
- sta2.append({"unit": qxz_dict[eval(sta.qxz_status)['data'][i]["eNum"]],"equip_name": sta.equip_id.equip_name,
- "upl_time": sta.upl_time, "equip_id": sta.equip_id_id, "eValue": eval(sta.qxz_status)["data"][i]["eValue"],
- "eKey": eval(sta.qxz_status)["data"][i]["eKey"]})
- except Exception as exc:
- print(exc)
- elif etype == "bzy":
- x = BZYstatus.objects.get(equip_id__equip_id=equip_id)
- # sta2 = {"bzy_status": x.bzy_status, "upl_time": x.upl_time,
- # "equip_name": x.equip_id.equip_name,"is_online": x.is_online, "off_time": x.off_time}
- sta2 = {"bzy_status": x.bzy_status, "upl_time": x.upl_time,
- "equip_name": x.equip_id.equip_name,
- "glass": x.glass, "liquid":x.liquid, "is_online": x.is_online,
- "off_time": x.off_time}
- elif etype == "xycb":
- x = YBQstatus.objects.get(equip_id__equip_id=equip_id)
- sta2 = {"ybq_status": x.ybq_status, "upl_time": x.upl_time,
- "equip_name": x.equip_id.equip_name,"type":x.sex_type,
- "is_online": x.is_online,"off_time": x.off_time}
- data = json.dumps(sta2, cls=CJSONEncoder, indent=4)
- # print("data:",data)
- return HttpResponse(data)
- # 报表管理:
- class app_reportmanage(View):
- def post(self, request):
- etype = request.POST.get('etype')
- print("etype:", etype)
- filt = request.POST.get('filter')
- print("filt:", filt)
- page = int(request.POST.get('page'))
- print("page:", page)
- # 读取当前用户:
- current_user = request.session.get('username')
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- data = {'nums': "", 'dat': ""}
- if filt == "":
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- if etype == "scd":
- equip_list = Equip.objects.filter(
- equip_type=2, equip_user=current_user).values()
- elif etype == "cbd":
- equip_list = Equip.objects.filter(
- equip_type=3, equip_user=current_user).values()
- elif etype == "qxz":
- equip_list = Equip.objects.filter(
- equip_type=5, equip_user=current_user).values()
- elif etype == "bzy":
- equip_list = Equip.objects.filter(
- equip_type=7, equip_user=current_user).values()
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---经销商")
- if etype == "scd":
- equip_list = Equip.objects.filter(
- equip_type=2, equip_agency=current_user.user_agency).values()
- elif etype == "cbd":
- equip_list = Equip.objects.filter(
- equip_type=3, equip_agency=current_user.user_agency).values()
- elif etype == "qxz":
- equip_list = Equip.objects.filter(
- equip_type=5, equip_agency=current_user.user_agency).values()
- elif etype == "bzy":
- equip_list = Equip.objects.filter(
- equip_type=7, equip_agency=current_user.user_agency).values()
- else:
- print("---管理员")
- if etype == "scd":
- equip_list = Equip.objects.filter(equip_type=2).values()
- elif etype == "cbd":
- equip_list = Equip.objects.filter(equip_type=3).values()
- elif etype == "qxz":
- equip_list = Equip.objects.filter(equip_type=5).values()
- elif etype == "bzy":
- equip_list = Equip.objects.filter(equip_type=7).values()
- else:
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- if etype == "scd":
- equip_list = Equip.objects.filter(Q(equip_type=2, equip_user=current_user, equip_id__contains=filt) | Q(
- equip_type=2, equip_user=current_user, equip_name__contains=filt)).values()
- elif etype == "cbd":
- equip_list = Equip.objects.filter(Q(equip_type=3, equip_user=current_user, equip_id__contains=filt) | Q(
- equip_type=3, equip_user=current_user, equip_name__contains=filt)).values()
- elif etype == "qxz":
- equip_list = Equip.objects.filter(Q(equip_type=5, equip_user=current_user, equip_id__contains=filt) | Q(
- equip_type=5, equip_user=current_user, equip_name__contains=filt)).values()
- elif etype == "bzy":
- equip_list = Equip.objects.filter(Q(equip_type=7, equip_user=current_user, equip_id__contains=filt) | Q(
- equip_type=7, equip_user=current_user, equip_name__contains=filt)).values()
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---经销商")
- if etype == "scd":
- equip_list = Equip.objects.filter(Q(equip_type=2, equip_agency=current_user.user_agency, equip_id__contains=filt) | Q(
- equip_type=2, equip_agency=current_user.user_agency, equip_name__contains=filt)).values()
- elif etype == "cbd":
- equip_list = Equip.objects.filter(Q(equip_type=3, equip_agency=current_user.user_agency, equip_id__contains=filt) | Q(
- equip_type=3, equip_agency=current_user.user_agency, equip_name__contains=filt)).values()
- elif etype == "qxz":
- equip_list = Equip.objects.filter(Q(equip_type=5, equip_agency=current_user.user_agency, equip_id__contains=filt) | Q(
- equip_type=5, equip_agency=current_user.user_agency, equip_name__contains=filt)).values()
- elif etype == "bzy":
- equip_list = Equip.objects.filter(Q(equip_type=7, equip_agency=current_user.user_agency, equip_id__contains=filt) | Q(
- equip_type=7, equip_agency=current_user.user_agency, equip_name__contains=filt)).values()
- else:
- print("---管理员")
- if etype == "scd":
- equip_list = Equip.objects.filter(Q(equip_type=2, equip_id__contains=filt) | Q(
- equip_type=2, equip_name__contains=filt)).values()
- elif etype == "cbd":
- equip_list = Equip.objects.filter(Q(equip_type=3, equip_id__contains=filt) | Q(
- equip_type=3, equip_name__contains=filt)).values()
- elif etype == "qxz":
- equip_list = Equip.objects.filter(Q(equip_type=5, equip_id__contains=filt) | Q(
- equip_type=5, equip_name__contains=filt)).values()
- elif etype == "bzy":
- equip_list = Equip.objects.filter(Q(equip_type=7, equip_id__contains=filt) | Q(
- equip_type=7, equip_name__contains=filt)).values()
- dat = []
- for i in equip_list:
- # if etype == "scd":
- # sta1 = RecentSCDdata.objects.filter(
- # equip_id=i.equip_id)
- # # 关键步骤:从测报灯数据列表模型中,筛选出当前用户所拥有的设备的设备id的数据记录,然后进行倒叙排列,最后切片操作,只取第一条数据,即为最新
- # elif etype == "cbd":
- # sta1 = CBDdata.objects.filter(
- # equip_id=i.equip_id).order_by('-upl_time')[:1]
- # elif etype == "qxz":
- # sta1 = QXZstatus.objects.filter(
- # equip_id=i.equip_id)
- # elif etype == "bzy":
- # sta1 = BZYstatus.objects.filter(
- # equip_id=i.equip_id)
- # for x in sta1:
- # sta2 = {"equip_id": x.equip_id.equip_id, "upl_time": x.upl_time,
- # "equip_name": x.equip_id.equip_name}
- sta2 = {"equip_id": i["equip_id"],"equip_name": i["equip_name"]}
- dat.append(sta2)
- nums = len(dat)
- data['nums'] = nums
- data['dat'] = dat[(10*(page-1)):(page*10)]
- data = json.dumps(data, cls=CJSONEncoder, indent=4)
- # print("data:",data)
- return HttpResponse(data)
- # 单个设备的报表展开:
- class app_reportmanage_unflod(View):
- def post(self, request):
- etype = request.POST.get('etype')
- print("etype:", etype)
- equip_id = request.POST.get('equip_id')
- print("equip_id:", equip_id)
- if etype == "scd":
- sta1 = SCDdata.objects.filter(
- equip_id__equip_id=equip_id).order_by("-upl_time")[:1]
- for x in sta1:
- sta2 = {"equip_name": x.equip_id.equip_name,
- "scd_data": x.scd_data, "ds": x.ds, "upl_time": x.upl_time}
- elif etype == "cbd":
- sta1 = RecentCBDdata.objects.filter(
- equip_id__equip_id=equip_id)
- for x in sta1:
- sta2 = {"equip_name": x.equip_id.equip_name,"discern":x.disc,
- "cbd_data": x.cbd_data, "upl_time": x.upl_time}
- elif etype == "qxz":
- sta1 = QXZstatus.objects.filter(
- equip_id__equip_id=equip_id)
- for x in sta1:
- sta2 = {"equip_name": x.equip_id.equip_name,
- "qxz_data": x.qxz_status, "upl_time": x.upl_time}
- elif etype == "bzy":
- sta1 = BZYstatus.objects.filter(
- equip_id__equip_id=equip_id)
- for x in sta1:
- sta2 = {"equip_name": x.equip_id.equip_name,
- "bzy_data": x.bzy_status, "upl_time": x.upl_time}
- data = json.dumps(sta2, cls=CJSONEncoder, indent=4)
- # print("data:",data)
- return HttpResponse(data)
- # 单个设备的详情报表:
- class app_reportmanage_detail(View):
- def post(self, request):
- filter_begin = request.POST.get('filter_begin')
- print("filter_begin:", filter_begin)
- filter_end = request.POST.get('filter_end')
- print("filter_end:", filter_end)
- equip_id = request.POST.get('equip_id')
- print("equip_id:", equip_id)
- page = int(request.POST.get('page'))
- print("page:", page)
- etype = request.POST.get('etype')
- print("etype:", etype)
- if filter_begin == "":
- if etype == "scd":
- sta1 = SCDdata.objects.filter(equip_id=equip_id).values()
- elif etype == "cbd":
- sta1 = CBDdata.objects.filter(equip_id=equip_id)
- elif etype == "qxz":
- sta1 = QXZdata.objects.filter(equip_id=equip_id)
- elif etype == "bzy":
- sta1 = BZYdata.objects.filter(equip_id=equip_id)
- elif etype == "xycb":
- sta1 = YBQdata.objects.filter(equip_id=equip_id)
- else:
- begindate = re.findall(r"\d+\.?\d*", filter_begin)
- enddate = re.findall(r"\d+\.?\d*", filter_end)
- start_date = datetime.date(
- int(begindate[0]), int(begindate[1]), int(begindate[2]))
- end_date = datetime.date(
- int(enddate[0]), int(enddate[1]), int(enddate[2]))
- if etype == "scd":
- sta1 = SCDdata.objects.filter(
- equip_id=equip_id, upl_time__range=(start_date, end_date)).values()
- elif etype == "cbd":
- sta1 = CBDdata.objects.filter(
- equip_id=equip_id, upl_time__range=(start_date, end_date))
- elif etype == "qxz":
- sta1 = QXZdata.objects.filter(
- equip_id=equip_id, upl_time__range=(start_date, end_date))
- elif etype == "bzy":
- sta1 = BZYdata.objects.filter(
- equip_id=equip_id, upl_time__range=(start_date, end_date))
- elif etype == "xycb":
- sta1 = YBQdata.objects.filter(
- equip_id=equip_id, upl_time__range=(start_date, end_date))
- if etype == "scd":
- sta2 = [{# "equip_name": x.equip_id.equip_name,
- "scd_data": x["scd_data"],
- "ds": x["ds"], "upl_time": x["upl_time"]}for x in sta1]
- elif etype == "cbd":
- sta2 = [{"equip_name": x.equip_id.equip_name,
- "cbd_data": x.cbd_data,
- "upl_time": x.upl_time}for x in sta1]
- elif etype == "qxz":
- sta2 = [{"equip_name": x.equip_id.equip_name,
- "qxz_data": x.qxz_data,
- "upl_time": x.upl_time}for x in sta1]
- elif etype == "bzy":
- sta2 = [{"equip_name": x.equip_id.equip_name,
- "bzy_data": x.bzy_data,
- "upl_time": x.upl_time}for x in sta1]
- elif etype == "xycb":
- sta2 = [{"equip_name": x.equip_id.equip_name,
- "ybq_data": x.ybq_data,
- "upl_time": x.upl_time}for x in sta1]
- data = {'nums': "", 'dat': ""}
- nums = len(sta2)
- data['nums'] = nums
- data['dat'] = sta2[(10*(page-1)):(page*10)]
- data = json.dumps(data, cls=CJSONEncoder, indent=4)
- # print("data:",data)
- return HttpResponse(data)
- # :
- class app_cbd_img(View):
- def post(self, request):
- imei = request.POST.get('equip_id')
- print("imei:", imei)
- # 获得当前页:
- page = int(request.POST.get('page'))
- print("page:", page)
- # 从数据库中取出照片在服务器存放路径:
- img = CBDphoto.objects.filter(equip_id=imei)
- nums = img.count()
- img = img[(10*(page-1)):(page*10)]
- equip_name = Equip.objects.get(equip_id=imei).equip_name
- disc = RecentCBDdata.objects.get(equip_id=imei)
- # 当前用户:返回用户,前端判断是否显示删除图片按钮
- current_user = request.session.get('username')
- print("current_user:", current_user)
- img_dat = [{"upl_time": x.upl_time,
- "addr": x.addr}for x in img]
- dat = {'img':img_dat,
- 'nums':nums,
- 'equip_name':equip_name,
- 'disc':disc.disc,
- 'equip_id':imei
- }
- data = json.dumps(dat, cls=CJSONEncoder, indent=4)
- print("data:",data)
- return HttpResponse(data)
- # :
- class app_ybq_img(View):
- def post(self, request):
- imei = request.POST.get('equip_id')
- print("imei:", imei)
- # 获得当前页:
- page = int(request.POST.get('page'))
- print("page:", page)
- # 从数据库中取出照片在服务器存放路径:
- img = YBQphoto.objects.filter(equip_id=imei)
- nums = img.count()
- img = img[(10*(page-1)):(page*10)]
- equip_name = Equip.objects.get(equip_id=imei).equip_name
- # 当前用户:返回用户,前端判断是否显示删除图片按钮
- current_user = request.session.get('username')
- print("current_user:", current_user)
- img_dat = [{"upl_time": x.upl_time,
- "addr": x.addr}for x in img]
- dat = {'img':img_dat,
- 'nums':nums,
- 'equip_name':equip_name,
- 'equip_id':imei
- }
- data = json.dumps(dat, cls=CJSONEncoder, indent=4)
- print("data:",data)
- return HttpResponse(data)
- # 孢子仪图片接口
- class app_bzy_img(View):
- def post(self, request):
- imei = request.POST.get('equip_id')
- print("imei:", imei)
- # 获得当前页:
- page = int(request.POST.get('page'))
- print("page:", page)
- # 从数据库中取出照片在服务器存放路径:
- img = BZYphoto.objects.filter(equip_id=imei)
- nums = img.count()
- img = img[(5*(page-1)):(page*5)]
- equip_name = Equip.objects.get(equip_id=imei).equip_name
- # 当前用户:返回用户,前端判断是否显示删除图片按钮
- current_user = request.session.get('username')
- print("current_user:", current_user)
- img_dat = [{"upl_time": x.upl_time,
- "addr": x.addr}for x in img]
- dat = {'img':img_dat,
- 'nums':nums,
- 'equip_name':equip_name,
- 'equip_id':imei
- }
- data = json.dumps(dat, cls=CJSONEncoder, indent=4)
- print("data:",data)
- return HttpResponse(data)
- # 用户页面
- class app_usermanage_list(View):
- def post(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- nums = MyUser.objects.all().count()
- print("筛选")
- user_name = request.POST.get("username")
- page = int(request.POST.get('page'))
- print("user_name:",user_name)
- print("page:", page)
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- pass
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("----代理商")
- # 搜索条件为空,获取所有用户
- if user_name == '':
- user_list = MyUser.objects.filter(user_agency=current_user.user_agency)
- # 搜索条件存在,根据用户名搜索用户
- elif user_name != '':
- user_list = MyUser.objects.filter(user_agency=current_user.user_agency,username__contains=user_name)
- else:
- print("----管理员")
- # 搜索条件为空,获取所有用户
- if user_name == '':
- user_list = MyUser.objects.all()
- # 搜索条件存在,根据用户名搜索用户
- elif user_name != '':
- user_list = MyUser.objects.filter(username__contains=user_name)
- dat = []
- for i in user_list[(10*(page-1)):(page*10)]:
- sta1 = MyUser.objects.filter(username=i.username)
- try:
- for x in sta1:
- if x.is_superuser == 1 and x.is_staff == 1:
- role = "超级管理员"
- elif x.is_superuser == 0 and x.is_staff == 1:
- role = "管理员"
- elif x.is_superuser == 0 and x.is_staff == 0:
- role = "用户"
- sta2 = {"userId": x.id, "user_name": x.username, "user_email": x.email,
- "user_type": role}
- except AttributeError:
- for x in sta1:
- if x.is_superuser == 1 and x.is_staff == 1:
- role = "超级管理员"
- elif x.is_superuser == 0 and x.is_staff == 1:
- role = "管理员"
- elif x.is_superuser == 0 and x.is_staff == 0:
- role = "用户"
- sta2 = {"userId": x.id, "user_name": x.username, "user_email": x.email,
- "user_type": role}
- dat.append(sta2)
- data = {"nums":nums,"dat":dat}
- data = json.dumps(data, cls=CJSONEncoder)
- # print("++++++++++++++++++",data)
-
- return HttpResponse(data)
- # 用户详情页面
- class app_usermanage_detail(View):
- def post(self,request):
- current_user = request.user.username
- userId = request.POST.get("userId")
- x = MyUser.objects.get(id=userId)
- groups = User_Group.objects.all()
- group_list = []
- for i in groups:
- group_list.append(i.name)
- group = Group.objects.filter(user=x)
- print("dskfsadfjkd",type(group))
- if group.count() == 0:
- group_name = ""
- else:
- group_name = group[0].name
- try:
- if x.is_superuser == 1 and x.is_staff == 1:
- # 超级管理员
- role = 0
- elif x.is_superuser == 0 and x.is_staff == 1:
- # 管理员
- role = 1
- elif x.is_superuser == 0 and x.is_staff == 0:
- # 普通用户
- role = 2
- dat = {"userId":x.id,
- "username":x.username,
- "email":x.email,
- "tel":x.user_phone,
- "province":x.user_pro, # 省
- "city":x.user_city, # 市
- "area":x.user_area, # 县/区
- "usertype":role,
- "latestTime":x.last_login,
- "creatTime":x.date_joined,
- "user_groups":group_list,
- "user_group":group_name,
- "user_remark":x.user_remark,
- "active":x.is_active}
- except AttributeError:
- if x.is_superuser == 1 and x.is_staff == 1:
- role = 0
- elif x.is_superuser == 0 and x.is_staff == 1:
- role = 1
- elif x.is_superuser == 0 and x.is_staff == 0:
- role = 2
- dat = {"userId":x.id,
- "username":x.username,
- "email":x.email,
- "tel":x.user_phone,
- "province":x.user_pro,
- "city":x.user_city,
- "area":x.user_area,
- "usertype":role,
- "latestTime":x.last_login,
- "creatTime":x.date_joined,
- "user_groups":group_list,
- "user_group":group_name,
- "user_remark":x.user_remark,
- "active":x.is_active}
- data = json.dumps(dat,cls=CJSONEncoder)
- print("data:",data)
- return HttpResponse(data)
- # 用户编辑页面
- class app_usermanage_edit(View):
- def post(self,request):
- # current_user = request.user.username
- postname = request.POST.get('username')
- uname = MyUser.objects.get(username=postname)
- uname.user_phone = request.POST.get('userphone')
- post_type = request.POST.get('user_type')
- # 角色:即用户组;
-
- post_groups = request.POST.get('user_groups')
- print("post_groups:", post_groups)
- if post_groups != '0':
- # 获取当前用户的组:
- post_groups = User_Group.objects.get(id=post_groups)
- print("post_groups:", post_groups)
-
- groups = Group.objects.filter(user=uname)
- uname.groups.clear()
- uname.groups.add(post_groups)
- # 省市区:
- uname.user_pro = request.POST.get('province')
- print(request.POST.get('province'))
- uname.user_city = request.POST.get('city')
- print(request.POST.get('city'))
- uname.user_area = request.POST.get('area')
- print(request.POST.get('area'))
- uname.user_remark = request.POST.get('user_remarks')
- print("post_type", post_type)
- if post_type == '0':
- uname.is_superuser = True
- uname.is_staff = True
- print("post_type")
- elif post_type == '1':
- uname.is_superuser = False
- uname.is_staff = True
- print("post_type")
- elif post_type == '2':
- uname.is_superuser = False
- uname.is_staff = False
- print("post_type")
- try:
- uname.save()
- except Exception as e:
- print("数据保存失败:",e)
- data = "1"
- return HttpResponse(data)
- # User_Log.objects.create(log_user=request.user.username,
- # log_ip=request.META['REMOTE_ADDR'], log_desc='系统管理-用户管理--编辑用户:修改用户'+username+"的信息")
- data = "0"
- return HttpResponse(data)
- # 用户组列表管理
- class app_user_group(View):
- def post(self,request):
- f_name = request.POST.get('fName')
- page = int(request.POST.get('page'))
- # 如果搜索名存在
- if f_name:
- sta = User_Group.objects.filter(name__contains=f_name)[(10*(page-1)):(page*10)]
- nums = len(User_Group.objects.filter(name__contains=f_name))
- else:
- sta = User_Group.objects.all()[(10*(page-1)):(page*10)]
- nums = len(User_Group.objects.all())
- dat = []
- try:
- for x in sta:
- sta1 = {"group_name":x.name}
- dat.append(sta1)
- except AttributeError:
- for x in sta:
- sta1 = {"group_name":x.name}
- dat.append(sta1)
- data = {"nums":nums,"dat":dat}
- print("data:",data)
- data = json.dumps(data,cls=CJSONEncoder)
- return HttpResponse(data)
- # 用户组列表详情
- class app_user_group_details(View):
- def post(self,request):
- group_name = request.POST.get('name')
- x = User_Group.objects.get(name=group_name)
- data = {"logo":"%s"%x.role_logo,
- "username":x.name,
- "userremark":x.role_describe,
- "creatTime":x.role_cre_time,
- "copyright":x.role_footer}
- # print("data:",data)
- data = json.dumps(data,cls=CJSONEncoder)
- return HttpResponse(data)
- # 用户组列表编辑
- class app_user_group_edit(View):
- def post(self,request):
- current_group = request.POST.get('group')
- print("current_group:", current_group)
- group = User_Group.objects.get(name=current_group)
- footer = request.POST.get('footer')
- group_logo = request.FILES.get('upicture')
- if group_logo:
- group_logo_dir = 'home_logo/'
- # group_logo_dir = 'F:\\YFWLW\\yfwlw\\home_logo/'
- # 判断如果路径不存在,即创建路径
- if os.path.exists(group_logo_dir) == False:
- os.makedirs(group_logo_dir)
- img = Image.open(group_logo)
- img.save(group_logo_dir + current_group+".png")
- new_logo = group_logo_dir + current_group+".png"
- # new_logo = 'home_logo/' + current_group+".png"
- print("组页logo路径:", new_logo)
- # 数据库关联设备,并在照片的表中存入路径:
- group.role_logo = new_logo
- group.role_footer = footer
- try:
- group.save()
- except Exception as e:
- print("保存失败:",e)
- data = "1"
- return HttpResponse(data)
- data = "0"
- return HttpResponse(data)
- # 设备分配页面
- class app_equip_allot(View):
- def post(self,request):
- uname = request.POST.get('uname')
- page = int(request.POST.get('page'))
- print("page=",page)
- if uname:
- user_list = MyUser.objects.filter(username__contains=uname)
- else:
- # 接收当前用户
- current_user = request.session.get('username')
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- # 判断是经销商还是超级管理员
- if current_user.is_superuser == True or current_user.is_staff == True:
- user_list = MyUser.objects.all().order_by(
- "-date_joined")[(10*(page-1)):(page*10)]
- elif current_user.is_agency:
- user_list = MyUser.objects.filter(user_agency=current_user.user_agency).order_by(
- "-date_joined")[(10*(page-1)):(page*10)]
- # user_list = MyUser.objects.all()
- nums = user_list.count()
- user_list = user_list[(10*(page-1)):(page*10)]
- dat = []
- for x in user_list:
- try:
- sta = {"userid":x.id,"username":x.username,"email":x.email}
- except AttributeError:
- sta = {"userid":x.id,"username":x.username,"email":x.email}
- dat.append(sta)
- data = {'nums':nums,'dat':dat}
- data = json.dumps(data, cls=CJSONEncoder)
- User_Log.objects.create(log_user=request.user.username,
- log_ip=request.META['REMOTE_ADDR'], log_desc='设备分配')
- return HttpResponse(data)
- # 未分配设备列表
- class app_equip_allot_list(View):
- def post(self,request):
- userid = request.POST.get('userid')
- user_obj = MyUser.objects.get(id=userid)
- f_id = request.POST.get('f_id')
- page = int(request.POST.get('page'))
- print("page=",page)
- if f_id:
- equip_list = Equip.objects.filter(
- Q(equip_user=None, equip_id__contains=f_id) | Q(equip_user=user_obj, equip_id__contains=f_id))
- else:
- # 接收当前用户
- current_user = request.session.get('username')
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- # 判断是经销商还是超级管理员
- if current_user.is_superuser == True or current_user.is_staff == True:
- equip_list = Equip.objects.filter(
- Q(equip_user=None) | Q(equip_user=user_obj))
- elif current_user.is_agency:
- equip_list = Equip.objects.filter(
- Q(equip_agency=current_user.user_agency, equip_user=None) | Q(equip_agency=current_user.user_agency,
- equip_user=user_obj))
- # equip_list = Equip.objects.filter(
- # Q(equip_user=None) | Q(equip_user=user_obj))
- nums = equip_list.count()
- equip_list = equip_list[(10*(page-1)):(page*10)]
- dat = []
- for x in equip_list:
- if x.equip_user == user_obj:
- checked = "1"
- else:
- checked = "0"
- try:
- sta = {"checked":checked,
- "equipid":x.equip_id,
- "equipname":x.equip_name,
- "equiptype":'%s'%x.equip_type,
- "equip_add_time":x.equip_add_time,
- "equip_user":'%s'%x.equip_user}
- except AttributeError:
- sta = {"checked":checked,
- "equipid":x.equip_id,
- "equipname":x.equip_name,
- "equiptype":'%s'%x.equip_type,
- "equip_add_time":x.equip_add_time,
- "equip_user":'%s'%x.equip_user}
- dat.append(sta)
- data = {'nums':nums,'dat':dat}
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- class app_equip_allot_confirm(View):
- def post(self,request):
- userid = request.POST.get('userid')
- user_obj = MyUser.objects.get(id=userid)
- equip_ids = request.POST.get('equip_ids')
- print("equip_ids=", equip_ids)
- equip_ids = json.loads(equip_ids)
- # equip_ids = equip_ids.split(',')
- # print("当前页的所有设备id:equip_ids=", equip_ids)
- # 获得选中的复选框:
- check_box_list = request.POST.get('check_box_list')
- print('check_box_list:', check_box_list)
- check_box_list = json.loads(check_box_list)
- no_check_box_list = []
- for i in equip_ids:
- if i in check_box_list:
- pass
- else:
- no_check_box_list.append(i)
- print('no_check_box_list=', no_check_box_list)
- try:
- for checked_id in check_box_list:
- choose_equip = Equip.objects.get(equip_id=checked_id)
- # 如果选中的设备没有用户:即选中的设备 设备用户为None:
- if choose_equip.equip_user == None: # 只有当选中的设备id对应的设备 没有用户时才分配
- choose_equip.equip_user = user_obj
- choose_equip.save() # 保存到数据库
- # 取消分配:给当前用户取消已分配的设备;
- for a in no_check_box_list:
- choose_equip = Equip.objects.get(equip_id=a)
- choose_equip.equip_user = None # 把设备的设备用户改为None,表示取消分配
- choose_equip.save()
- except Exception as e:
- print(e)
- data = "1"
- data = "0"
- User_Log.objects.create(log_user=request.user.username,
- log_ip=request.META['REMOTE_ADDR'], log_desc='设备分配--分配设备')
- return HttpResponse(data)
- # 害虫识别接口
- import requests
- class app_insect_discern(View):
- def post(self,request):
- imageFile = request.FILES.get('imagefile')
- imageFile = {"imageFile":imageFile}
- username = 'yunfei'
- uniqueKey = '84e6eb40f3a616dd14b1fefc75425006'
- url = 'http://47.99.110.100:8080/recognizationSys/api/recognization'
-
- data = {'imageType':'1','gis':'118.279643#31.221456','username':username,'uniqueKey':uniqueKey}
- res = requests.post(url,data=data,files=imageFile)
- return HttpResponse(res.text)
- # 监控设备分页接口
- class app_moni_page(View):
- def post(self,request):
- current_user = request.user.username
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- page = request.POST.get('page')
- page = int(page)
- f_id = request.POST.get('f_id')
- print("f_id:", f_id)
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- # 用户
- if f_id != "":
- # equip_list = Equip.objects.filter(equip_type=6, equip_user=current_user, equip_id__contains=f_id)
- equip_list = JKdata.objects.filter(equip_id__equip_user=current_user, equip_id__equip_id__contains=f_id)
- else:
- # equip_list = Equip.objects.filter(equip_type=6, equip_user=current_user)
- equip_list = JKdata.objects.filter(equip_id__equip_user=current_user)
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- # 代理商
- if f_id != "":
- # equip_list = Equip.objects.filter(equip_type=6, equip_agency=current_user.user_agency, equip_id__contains=f_id)
- equip_list = JKdata.objects.filter(equip_id__equip_agency=current_user.user_agency, equip_id__equip_id__contains=f_id)
- else:
- # equip_list = Equip.objects.filter(equip_type=6, equip_agency=current_user.user_agency)
- equip_list = JKdata.objects.filter(equip_id__equip_agency=current_user.user_agency)
- else:
- # 管理员
- if f_id != "":
- # equip_list = Equip.objects.filter(equip_type=6, equip_id__contains=f_id)
- equip_list = JKdata.objects.filter(equip_id__equip_id__contains=f_id)
- else:
- # equip_list = Equip.objects.filter(equip_type=6)
- equip_list = JKdata.objects.all()
- e_ids = []
- for x in equip_list:
- n_d = {"equip_name":x.equip_id.equip_name, "equip_id":x.equip_id_id,"is_online":x.is_online}
- e_ids.append(n_d)
- nums = len(e_ids)
- # print(nums)
- ids = e_ids[(10*(page-1)):(page*10)]
- data = {'ids': ids, 'nums': nums}
- data = json.dumps(data)
- return HttpResponse(data)
- # 监控设备接口
- class app_moni(View):
- def post(self,request):
- e_id = request.POST.get('id')
- x = JKdata.objects.get(equip_id=e_id)
- live_list = []
- live_url = 'https://open.ys7.com/api/lapp/live/address/get'
- live_data = {"accessToken":x.jk_token,
- "source":"%s:1"%x.equip_id}
- print("=================live_data:",live_data)
- live_res = requests.post(live_url,data=live_data)
- # print("-------------------------------:",type(live_res.text))
- live_res = eval(live_res.text)
- print("live_res:",live_res)
- # 如果返回200 则返回直播地址
- if live_res['code'] == "200":
- print("token获取成功___APP")
- live_list.append(live_res)
-
- # 如果返回其他 则调用获取token之后重新获取直播地址并返回
- else:
- print("token过期重新获取___APP")
- token_url = 'https://open.ys7.com/api/lapp/token/get'
- token_data = {"appKey":"e8ec0d52b4b14628a3daf4b88cbcca2a",
- "appSecret":"d4565abea1cd0b90b59917111dcb37bd"}
- token_res = requests.post(token_url,data=token_data)
- print("token_res1:",token_res.text)
- token_res = eval(token_res.text)
- if token_res["code"] == "200":
- token_res["data"]["accessToken"]
- x.jk_token = token_res["data"]["accessToken"]
- x.upl_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
- x.save()
- token = x.jk_token
- print("-----------------token保存成功___APP")
- live_url = 'https://open.ys7.com/api/lapp/live/address/get'
- live_data = {"accessToken":x.jk_token,
- "source":"%s:1"%x.equip_id}
- live_res = requests.post(live_url,data=live_data)
- live_res = eval(live_res.text)
- print("live_res2:",live_res)
- live_list.append(live_res)
- print("APP直播地址列表:",live_list)
- data = live_list
- print("-----------============data:",data)
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- class app_download(View):
- def get(self,request):
- return render(request, 'home/download.html')
- # return redirect('app_download/yfApp.apk')
- class app_download2(View):
- def get(self,request):
- return render(request, 'home/commonDownload.html')
- # return redirect('app_download/yfApp.apk')
- class user_etype(View):
- def get(self,request):
- pass
- def post(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- equip_type_list = []
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("普通用户")
- user_equip_list = Equip.objects.filter(equip_user=current_user)
- for i in user_equip_list:
- equip_type_list.append(i.equip_type.type_id)
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("代理商")
- user_equip_list = Equip.objects.filter(equip_agency=current_user.user_agency)
- for i in user_equip_list:
- equip_type_list.append(i.equip_type.type_id)
- else:
- print("管理员")
- user_equip_list = Equip.objects.all()
- for i in user_equip_list:
- equip_type_list.append(i.equip_type.type_id)
- # 去除列表中重复的元素
- # equip_type_list = {}.fromkeys(equip_type_list).keys()
- equip_type_list = list(set(equip_type_list))
- print(equip_type_list)
- print(type(equip_type_list))
- data = {'dat':equip_type_list}
- data = json.dumps(data)
- return HttpResponse(data)
- # 版本号判断
- class edition(View):
- def get(self,request):
- pass
- def post(self,request):
- edition_obj = App_Edition.objects.all()
- edition = edition_obj.first()
- print(edition.edition_num)
- print(edition.edition_desc)
- data = {"edition_num":edition.edition_num,"edition_desc":edition.edition_desc,"upl_time":edition.upl_time}
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- # 版本更新历史
- class edition_all(View):
- def get(self,request):
- pass
- def post(self,request):
- edition_list = App_Edition.objects.all()
- data = []
- for i in edition_list:
- data.append({"edition_num":i.edition_num,"edition_desc":i.edition_desc,"upl_time":i.upl_time})
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- # APP轮播图
- class Display_Photo(ListView):
- def get(self,request):
- pass
- def post(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- img_list = APP_Img.objects.filter(user=current_user)
- if img_list.count() == 0:
- data = [{"imgUrl":"app_file/app_img/banner1.jpg",
- "path":""},
- {"imgUrl":"app_file/app_img/banner2.jpg",
- "path":""},
- {"imgUrl":"app_file/app_img/banner4.jpg",
- "path":""},
- {"imgUrl":"app_file/app_img/autoDiscern.jpg",
- "path":"autoDiscern.html"}]
- else:
- data = []
- for i in img_list:
- data.append({"imgUrl":i.img,
- "path":""})
- data = json.dumps(data)
- return HttpResponse(data)
- # 中性APP轮播图
- class Display_Photo_Common(ListView):
- def get(self,request):
- pass
- def post(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- img_list = APP_Img.objects.filter(user=current_user)
- if img_list.count() == 0:
- data = [{"imgUrl":"app_file/app_img/banner1.jpg",
- "path":""},
- {"imgUrl":"app_file/app_img/banner2.jpg",
- "path":""},
- {"imgUrl":"app_file/app_img/banner4.jpg",
- "path":""},
- {"imgUrl":"app_file/app_img/autoDiscern.jpg",
- "path":"autoDiscern.html"}]
- else:
- data = []
- for i in img_list:
- data.append({"imgUrl":i.img,
- "path":""})
- data = json.dumps(data)
- return HttpResponse(data)
- # SIM卡列表:
- class APP_SimInfo(ListView):
- def get(self, request):
- pass
- def post(self, request):
- req = request.POST.get('req')
- print("req:", req)
- simid = request.POST.get('simid')
- if simid:
- res = get_siminfo(simid)
- return HttpResponse(res.text)
-
- if req == "reqdat":
- page = int(request.POST.get('page'))
- print("page:", page)
- current_user = request.session.get('username')
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- sta1 = SCDstatus.objects.filter(equip_id__equip_user=current_user)
- sta2 = CBDstatus.objects.filter(equip_id__equip_user=current_user)
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- sta1 = SCDstatus.objects.filter(equip_id__equip_agency=current_user.user_agency)
- sta2 = CBDstatus.objects.filter(equip_id__equip_agency=current_user.user_agency)
- else:
- sta1 = SCDstatus.objects.all()
- sta2 = CBDstatus.objects.all()
- # 获取设备列表中的SIM卡的iccid号码:
- iccids = []
- # 获取设备的id:
- equip_ids = []
- # 获取设备的名称:
- equip_names = []
- # 遍历查询流量信息:
- siminfos = []
-
- for i in sta1:
- try:
- iccid = eval(i.scd_status)['iccid']
- except:
- iccid = ""
- iccids.append(iccid)
- equip_ids.append(str(i.equip_id))
- equip_names.append(str(i.equip_id.equip_name))
- for i in sta2:
- try:
- iccid = eval(i.cbd_status)['iccid']
- except:
- iccid = ""
- iccids.append(iccid)
- equip_ids.append(str(i.equip_id))
- equip_names.append(str(i.equip_id.equip_name))
- nums = len(equip_ids)
- iccids=iccids[(10*(page-1)):(page*10)]
- equip_ids=equip_ids[(10*(page-1)):(page*10)]
- equip_names=equip_names[(10*(page-1)):(page*10)]
- # 调用api查到的iccid号:
- equip_iccids = []
- iccids_str = ",".join(iccids)
- print("iccids_str:",iccids_str)
- res = get_simsinfo(iccids_str).content
- print('res',res)
- siminfo_str=str(res, encoding = "utf-8")
- siminfo_dict=eval(siminfo_str)
- # 保存调用查询流量的api返回的数据;
- dat = []
- for j in list(range(0,siminfo_dict['data']['count'])):
- equip_iccids.append(siminfo_dict['data']['card_list'][j]['iccid'])
- # print('equip_iccids:',equip_iccids)
- for j in list(range(0,len(iccids))):
- siminfo_dict=eval(siminfo_str)
- if (iccids[j] in equip_iccids) == True:
- dat.append(siminfo_dict['data']['card_list'][equip_iccids.index(iccids[j])])
- else:
- dat.append({})
- dat[j]['equip_id']=equip_ids[j]
- dat[j]['equip_name']=equip_names[j]
- # print("dat[%d]=%s" %(j,dat[j]))
- iccids[j] = ""# 每次判断完将该值清空,防止多个设备用一个SIM卡测试时显示异常;
- # print('----- iccids :',iccids)
- print("------------------------",dat)
- data = {"dat":dat,"nums":nums}
- data = json.dumps(data)
- print("data:",data)
- return HttpResponse(data)
- # 性诱设备查看图片
- class trap_photo(ListView):
- def get(self,request):
- pass
- def post(self,request):
- imei = request.POST.get('imei')
- page = int(request.POST.get('page'))
- print("imei:", imei)
- trap_photo = Trapphoto.objects.filter(equip_id=imei)
- nums = Trapphoto.objects.filter(equip_id=imei).count()
- print("nums:", nums)
- dat = []
- for i in trap_photo:
- dat.append({"addr":i.addr,"upl_time":i.upl_time})
- dat = dat[(5*(page-1)):(page*5)]
- data = {"dat":dat,"nums":nums}
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- # 性诱设备温湿度和虫子
- class trap_pest(ListView):
- def get(self,request):
- pass
- def post(self,request):
- imei = request.POST.get('imei')
- page = int(request.POST.get('page'))
- print("imei:", imei)
- trap_data = Trapdata.objects.filter(equip_id=imei)
- nums = Trapdata.objects.filter(equip_id=imei).count()
- print("nums:", nums)
- dat = []
- for i in trap_data:
- dat.append({"pestnum":i.pestnum,"at":i.tem,"ah":i.hum,"upl_time":i.upl_time})
- dat = dat[(10*(page-1)):(page*10)]
- data = {"dat":dat,"nums":nums}
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- # 产品介绍
- class product_view(ListView):
- def get(self,request):
- pass
- def post(self,request):
- current_user = request.session.get('username')
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- equip_list = Equip.objects.filter(equip_user=current_user)
- data = []
- for i in equip_list:
- if i.equip_type_id in data:
- continue
- data.append(i.equip_type_id)
- if current_user.is_superuser:
- data = []
- type_list = Equip_type.objects.all()
- for x in type_list:
- data.append(x.type_id)
- elif current_user.is_agency:
- data = []
- equip_list = Equip.objects.filter(equip_agency=current_user.user_agency)
- for i in equip_list:
- if i.equip_type_id in data:
- continue
- data.append(i.equip_type_id)
- data = json.dumps(data)
- return HttpResponse(data)
- # 监控设备查看图片
- class app_jk_img(View):
- def post(self, request):
- imei = request.POST.get('equip_id')
- print("imei:", imei)
- # 获得当前页:
- page = int(request.POST.get('page'))
- print("page:", page)
- # 从数据库中取出照片在服务器存放路径:
- img = JKphoto.objects.filter(equip_id=imei)
- nums = img.count()
- img = img[(10*(page-1)):(page*10)]
- equip_name = Equip.objects.get(equip_id=imei).equip_name
- # 当前用户:返回用户,前端判断是否显示删除图片按钮
- current_user = request.session.get('username')
- print("current_user:", current_user)
- img_dat = [{"upl_time": x.upl_time,
- "addr": x.addr}for x in img]
- dat = {'img':img_dat,
- 'nums':nums,
- 'equip_name':equip_name,
- 'equip_id':imei
- }
- data = json.dumps(dat, cls=CJSONEncoder, indent=4)
- print("data:",data)
- return HttpResponse(data)
|