# -*- coding: utf-8 -*- import array from django.shortcuts import render from django.views.generic.base import View from itertools import chain import requests from requests.auth import HTTPBasicAuth from django.core.exceptions import ObjectDoesNotExist from django.http import JsonResponse, HttpResponse from django.views.generic import ListView from django.core import serializers from datetime import datetime, date from PIL import Image import time import json from io import BytesIO from apps.AppInfoManage.models import MyUser, User_Log, Equip, SCDdata, SCDstatus, CBDdata, CBDstatus, YBQdata, YBQstatus, JKdata, BZYstatus, BZYdata, SCDstatus_all, CBDstatus_all,\ QXZswitchstatus, QXZswitchdata, QXZAutoswitch, QXZstatus, QXZTimingswitch, Msg_Conf, CBDphoto, Equip_SimInfo # 引用查询流量接口 from apps.SimInfo.views import get_siminfo # 引用全局变量 from django.conf import settings from django.views.decorators.csrf import csrf_exempt # 测报灯管理视图: class CBDMsg_View(ListView): def get(self, request): # x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') # if x_forwarded_for: # ip = x_forwarded_for.split(',')[0]#所以这里是真实的ip # print("------------real ip") # else: # ip = request.META.get('REMOTE_ADDR')#这里获得代理ip # print("------------unreal ip") # 获取主机名 # hostname = socket.gethostname() # #获取IP # ip = socket.gethostbyname(hostname) # print("获取的IP为:",ip) current_user = request.session.get('username') 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: print("---用户") role = "user" nums = CBDstatus.objects.filter( equip_id__equip_user=current_user).count() elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True: print("---代理商") role = "user" nums = CBDstatus.objects.filter( equip_id__equip_agency=current_user.user_agency).count() else: print("---管理员") role = "superuser" nums = CBDstatus.objects.all().count() return render(request, 'warnmanage/cbd_list.html', context={"nums": nums,"role": role}) def post(self, request): if request.is_ajax(): print("ajax-post!") req = request.POST.get('req') print("req:", req) # 请求数据: if req == "dat": print("---请求数据的post!") 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: print("---不是管理员") # sta1 = CBDstatus.objects.filter( # equip_id__equip_user=current_user, equip_id__equip_type=3)[(10*(page-1)):(page*10)] # .order_by("-equip_id__equip_add_time") sta1 = CBDstatus.objects.filter(equip_id__equip_user=current_user)[(10*(page-1)):(page*10)] elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True: print("---代理商") # sta1 = CBDstatus.objects.filter( # equip_id__equip_agency=current_user.user_agency, equip_id__equip_type=3)[(10*(page-1)):(page*10)] sta1 = CBDstatus.objects.filter(equip_id__equip_agency=current_user.user_agency)[(10*(page-1)):(page*10)] else: print("---管理员") # sta1 = CBDstatus.objects.filter(equip_id__equip_type=3)[( # 10*(page-1)):(page*10)] # .order_by("-equip_id__equip_add_time") sta1 = CBDstatus.objects.all()[(10*(page-1)):(page*10)] sta2 = [{"cbd_status": x.cbd_status, "upl_time": x.upl_time, "paramconf": x.paramconf, "serverconf": x.serverconf, "equip_name": x.equip_id.equip_name, "equip_desc": x.equip_id.equip_desc, "is_online": x.is_online, "off_time": x.off_time} for x in sta1] data = json.dumps(sta2, cls=CJSONEncoder, indent=4) # print("data:",data) return HttpResponse(data) elif req == "filter": f_name = request.POST.get('ename') print("f_name:", f_name) f_id = request.POST.get('f_id') print("f_id:", f_id) page = int(request.POST.get('page')) print("page:", page) dver = request.POST.get('dver') print("dver",dver) is_online = request.POST.get('is_online') print("is_online",is_online) # 读取当前用户: 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: print("---不是管理员") if f_name == "" and f_id == '': sta1 = CBDstatus.objects.filter( equip_id__equip_user=current_user) elif f_name == "" and f_id != '': sta1 = CBDstatus.objects.filter( equip_id__equip_user=current_user, equip_id__equip_id__contains=f_id) elif f_name != "" and f_id == '': sta1 = CBDstatus.objects.filter( equip_id__equip_user=current_user, equip_id__equip_name__contains=f_name) elif f_name != "" and f_id != '': sta1 = CBDstatus.objects.filter( equip_id__equip_user=current_user, equip_id__equip_name__contains=f_name, equip_id__equip_id__contains=f_id) elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True: print("---代理商") if f_name == "" and f_id == '': sta1 = CBDstatus.objects.filter( equip_id__equip_agency=current_user.user_agency) elif f_name == "" and f_id != '': sta1 = CBDstatus.objects.filter( equip_id__equip_agency=current_user.user_agency, equip_id__equip_id__contains=f_id) elif f_name != "" and f_id == '': sta1 = CBDstatus.objects.filter( equip_id__equip_agency=current_user.user_agency, equip_id__equip_name__contains=f_name) elif f_name != "" and f_id != '': sta1 = CBDstatus.objects.filter( equip_id__equip_agency=current_user.user_agency, equip_id__equip_name__contains=f_name, equip_id__equip_id__contains=f_id) else: print("---管理员") if f_name == "" and f_id == '': sta1 = CBDstatus.objects.all() elif f_name == "" and f_id != '': sta1 = CBDstatus.objects.filter( equip_id__equip_id__contains=f_id) elif f_name != "" and f_id == '': sta1 = CBDstatus.objects.filter( equip_id__equip_name__contains=f_name) elif f_name != "" and f_id != '': sta1 = CBDstatus.objects.filter( equip_id__equip_name__contains=f_name, equip_id__equip_id__contains=f_id) print("在线状态------------>",is_online) # ----------------------------------------------------------------------------------------- # 版本号筛选设备 if dver != "" and is_online == "": sta3 = [] for i in sta1: fir_v = eval(i.cbd_status)["dver"].split(".") if fir_v[0] == dver: sta3.append({"cbd_status": i.cbd_status, "upl_time": i.upl_time, "paramconf": i.paramconf, "serverconf": i.serverconf, "equip_name": i.equip_id.equip_name, "equip_desc": i.equip_id.equip_desc, "is_online": i.is_online, "off_time": i.off_time}) data = {"dat": sta3[(10*(page-1)):(page*10)], "nums": len(sta3)} print("-------------",len(sta3)) data = json.dumps(data, cls=CJSONEncoder) # print("data:",data) return HttpResponse(data) # ----------------------------------------------------------------------------------------- # 在线状态筛选设备 elif is_online != "" and dver == "": sta4 = [] for i in sta1: if is_online == i.is_online: sta4.append({"cbd_status": i.cbd_status, "upl_time": i.upl_time, "paramconf": i.paramconf, "serverconf": i.serverconf, "equip_name": i.equip_id.equip_name, "equip_desc": i.equip_id.equip_desc, "is_online": i.is_online, "off_time": i.off_time}) data = {"dat": sta4[(10*(page-1)):(page*10)], "nums": len(sta4)} print("-------------",len(sta4)) data = json.dumps(data, cls=CJSONEncoder) # print("data:",data) return HttpResponse(data) # ----------------------------------------------------------------------------------------- # 版本号和在线状态同时筛选设备 elif is_online != "" and dver != "": sta3 = [] for i in sta1: fir_v = eval(i.cbd_status)["dver"].split(".") if fir_v[0] == dver and i.is_online == is_online: sta3.append({"cbd_status": i.cbd_status, "upl_time": i.upl_time, "paramconf": i.paramconf, "serverconf": i.serverconf, "equip_name": i.equip_id.equip_name, "equip_desc": i.equip_id.equip_desc, "is_online": i.is_online, "off_time": i.off_time}) data = {"dat": sta3[(10*(page-1)):(page*10)], "nums": len(sta3)} print("-------------",len(sta3)) data = json.dumps(data, cls=CJSONEncoder) # print("data:",data) return HttpResponse(data) # ----------------------------------------------------------------------------------------- sta2 = [{"cbd_status": x.cbd_status, "upl_time": x.upl_time, "paramconf": x.paramconf, "serverconf": x.serverconf, "equip_name": x.equip_id.equip_name, "equip_desc": x.equip_id.equip_desc, "is_online": x.is_online, "off_time": x.off_time} for x in sta1] data = {"dat": sta2[(10*(page-1)):(page*10)], "nums": sta1.count()} data = json.dumps(data, cls=CJSONEncoder) # print("data:",data) return HttpResponse(data) elif req == "paramconf": equip_id = request.POST.get('id') print("equip_id:", equip_id) # 读取当前设备的参数配置信息: sta1 = CBDstatus.objects.filter(equip_id=equip_id) for x in sta1: sta2 = {"paramconf": x.paramconf} data = json.dumps(sta2, cls=CJSONEncoder) print("配置信息的data:", data) return HttpResponse(data) elif req == "change": equip_id = request.POST.get('id') print("equip_id:", equip_id) equip_desc = request.POST.get('desc') equip_obj = Equip.objects.get(equip_id=equip_id) try: equip_obj.equip_desc = equip_desc equip_obj.save() data = "0" except: data = "1" return HttpResponse(data) # 测报灯短信配置 class CBDMsg_Conf(ListView): def get(self,request): pass def post(self,request): e_id = request.POST.get("e_id") try: msgconf = Msg_Conf.objects.get(equip_id=e_id) data = msgconf.conf except: data = "" return HttpResponse(data) # 测报灯短信配置保存 class MsgConf_Save(ListView): def get(self,request): pass def post(self,request): e_id = request.POST.get("e_id") e_conf = request.POST.get("conf") equip_obj = Equip.objects.get(equip_id=e_id) if Msg_Conf.objects.filter(equip_id=equip_obj).exists(): msgconf = Msg_Conf.objects.get(equip_id=equip_obj) msgconf.conf = e_conf msgconf.save() else: Msg_Conf.objects.create(equip_id=equip_obj,conf=e_conf) return HttpResponse("0") class AlarmRange_View(View): def get(self, request): e_id = request.GET.get("e_id") return render(request, 'warnmanage/alarm_range.html', context={"e_id":e_id}) def post(self, request): e_id = request.POST.get("e_id") pest_num = 0 pest_name = [] pest_nums = [] pest_dict = {} pest_dict_new = {} cbd_list = CBDphoto.objects.filter(equip_id=e_id) for x in cbd_list: if x.indentify_result == None or x.indentify_result == "": pass else: for a in x.indentify_result.split("#"): pest_num = pest_num + int(a.split(",")[1]) pest_name.append(int(a.split(",")[0])) pest_nums.append(int(a.split(",")[1])) for xx in range(len(pest_name)): c = {pest_name[xx]:pest_nums[xx]} for d in c: if d in pest_dict: pest_dict[d] = pest_dict[d] + c[d] else: pest_dict.update(c) print(pest_dict) pest_list = [] for i in pest_dict: pest_list.append(i) data = {"pest_list":pest_list} data = json.dumps(data) return HttpResponse(data) class AlarmHistory_View(View): def get(self, request): 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: # __username print("---不是管理员") alarm_record = Alarm_record.objects.filter(equip_id__equip_user=current_user)[0:10] else: print("---管理员") alarm_record = Alarm_record.objects.all() return render(request, 'warnmanage/alarm_history.html', context={'alarm_record':alarm_record}) def alarm_map(request): return render(request, 'warnmanage/alarm_map.html', context={}) # sim卡流量提醒 class Sim_Flow(ListView): def get(self,request): return render(request, 'warnmanage/sim_list.html', context={}) class Sim_Flow_View(ListView): def get(self,request): current_user = request.session.get('username') current_user = MyUser.objects.get(username=current_user) page = int(request.GET.get("page")) e_id = request.GET.get("e_id") iccid = request.GET.get("iccid") status = request.GET.get("status") if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True: print("---用户") if e_id: simlist = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,equip_id__equip_id__contains=e_id)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,equip_id__equip_id__contains=e_id).count() elif iccid: simlist = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,iccid__contains=iccid)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,iccid__contains=iccid).count() elif status: status = int(status) simlist = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,account_status=status)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user,account_status=status).count() else: simlist = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(equip_id__equip_user=current_user).count() elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True: print("---代理商") if e_id: simlist = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,equip_id__equip_id__contains=e_id)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,equip_id__equip_id__contains=e_id).count() elif iccid: simlist = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,iccid__contains=iccid)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,iccid__contains=iccid).count() elif status: status = int(status) simlist = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,account_status=status)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency,account_status=status).count() else: simlist = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency).count() else: print("---管理员") if e_id: simlist = Equip_SimInfo.objects.filter(equip_id__equip_id__contains=e_id)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(equip_id__equip_id__contains=e_id).count() elif iccid: simlist = Equip_SimInfo.objects.filter(iccid__contains=iccid)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(iccid__contains=iccid).count() elif status: status = int(status) simlist = Equip_SimInfo.objects.filter(account_status=status)[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.filter(account_status=status).count() else: simlist = Equip_SimInfo.objects.all()[(10*(page-1)):(page*10)] nums = Equip_SimInfo.objects.all().count() return render(request, 'warnmanage/siminfoList.html', context={"simlist":simlist,"nums":nums}) # 手机号保存 class Sim_Save(ListView): def get(self,request): pass def post(self,request): e_id = request.POST.get("e_id") mobile = request.POST.get("mobile") try: sim_obj = Equip_SimInfo.objects.get(equip_id=e_id) sim_obj.sim_alarm = mobile sim_obj.save() except Exception as e: print(e) return HttpResponse("1") return HttpResponse("0")