| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497 |
- # -*- coding: utf-8 -*-
- from django.shortcuts import render, redirect
- from apps.SystemManage.forms import AddUserForm
- from django.http import HttpResponse
- from django.template import RequestContext
- from django.contrib import auth
- from django.contrib.auth import authenticate, login as auth_login, logout
- from django.contrib.auth import get_user_model
- from django.contrib.auth.models import User, Group, Permission
- from django.contrib.auth.hashers import make_password, check_password
- from django.contrib.auth.decorators import login_required
- from django.views.decorators.csrf import csrf_exempt
- from django.views.generic import ListView
- from django.views.generic.base import View
- import datetime
- from PIL import Image
- import json
- import base64
- import redis
- from django.core.cache import cache
- # from xadmin.models import Log
- from apps.AppInfoManage.models import Help, MyUser, User_Group, User_Log, Equip, Equip_type, CBDdata, CBDstatus, SCDstatus, Logo, RecentCBDdata, RecentSCDdata, Equip_SimInfo,\
- BZYstatus, CBDphoto, BZYphoto, QXZdata, QXZstatus, VR_Photo, APP_Img, YBQstatus, Purchase, QXZ_Base_Info, Alarm_record, QXZdata_New
- from .forms import LoginForm, ChangePwdForm, UserRegisterForm
- from apps.EquipManage.views import CJSONEncoder
- from apps.ReportManage.all_dict import qxz_dict, insect_dict, insect_dict_new
- import copy
- import os
- from yfwlw_pro.settings import get_client_ip
- # cach = redis.StrictRedis('127.0.0.1',6379)
- # cach.set("k1","v1",nx=False)
- # kv1 = cach.get("k1")
- # print("kv1:",kv1)
- #from django.core.exceptions import ObjectDoesNotExist
- #from django.utils.datastructures import MultiValueDictKeyError
- # from django.conf import settings
- # def global_setting(request):#注意有request参数
- # CURRENTUSER = settings.CURRENTUSER
- # print("全局变量:!")
- # print("CURRENTUSER:",CURRENTUSER)
- # return locals()
- from django.views.decorators.csrf import csrf_exempt
- from django.utils.decorators import method_decorator
- # 用户登录
- @method_decorator(csrf_exempt, name='dispatch')
- class Login_View(View):
- def get(self, request):
- HTTP_HOST=request.META['HTTP_HOST']
- print('HTTP_HOST:',HTTP_HOST)
- # form = AddUserForm()
- # return render(request, 'home/login.html', context={'form': form})
- if request.user.is_authenticated():
- user_name = request.user.username
- print('user_name=', user_name)
- current_user = MyUser.objects.get(username=user_name)
- if current_user.is_superuser:
- role = "superuser"
- elif current_user.is_staff:
- role = "staff"
- elif current_user.is_agency:
- role = "agency"
- else:
- role = "user"
- num = 1
- if current_user.is_superuser:
- role = "superuser"
- elif current_user.is_staff:
- role = "staff"
- elif current_user.is_agency:
- role = "agency"
- if Purchase.objects.filter(userid=current_user).exists():
- pass
- else:
- print(current_user.user_agency)
- if current_user.user_agency:
- purchase_list = Purchase.objects.filter(userid__user_agency=current_user.user_agency).count()
- if purchase_list:
- pass
- else:
- num = 0
- else:
- num = 0
- else:
- role = "user"
- num = Purchase.objects.filter(userid=current_user).count()
- # 获取用户所有组:
- groups = Group.objects.filter(user=current_user)
- print("groups:", groups)
- for i in groups:
- print("##############:",i.name)
- print("当前用户类型:是否为超级管理员", current_user.is_superuser)
- # 获取用户的logo组
- logos = Logo.objects.filter(myuser=current_user)
- print("logos:",logos)
- for i in groups:
- print("##############:",i.name)
-
- print("当前用户类型:是否为超级管理员", current_user.is_superuser)
- print("---------len:",len(logos))
- if len(logos) == "0":
- logos == ""
- else:
- pass
- # 超级管理员没有到期时间 提取不到参数时会报错
- try:
- # remaining_days=账户还剩多少天
- remaining_days = (current_user.expire_date - datetime.datetime.now()).days
- # 账户的具体到期时间
- user_date = current_user.expire_date
- # 将账户的具体到期时间转字符串,取年-月-日
- user_date = datetime.date.strftime(user_date,"%Y-%m-%d %H:%M:%S")[0:10]
- except:
- return render(request, 'home/home.html', context={'user_name': user_name, 'current_user': current_user, 'role': role, 'groups': groups, 'logos':logos,'have':num})
- return render(request, 'home/home.html', context={'user_name': user_name, 'current_user': current_user, 'role': role, 'groups': groups,
- 'remaining_days':remaining_days, 'user_date':user_date, 'logos':logos,'have':num})
- # return render(request, 'home/home.html', context={'user_name': user_name, 'role': role, 'groups': groups})
- else:
- form = AddUserForm()
- # # 读取cookie:
- # try:
- # user_name = request.COOKIES.get('uname')
- # # 从cookie中读出的upwd p1为str:
- # p1 = request.COOKIES.get('upwd')
- # # print("type(p1):", type(p1))
- # # 将str类型的p1转为bytes:p2
- # p2 = bytes(p1, encoding='utf-8')
- # # 将p2解密,得到bytes的p3:
- # p3 = base64.decodestring(p2)
- # # 将p3转为str:
- # p4 = str(p3, encoding="utf8")
- # pass_word = p4
- # print("读取cookie:用户名:", user_name)
- # print("读取cookie:用户密码:", pass_word)
- # except:
- # user_name = pass_word = None
- if HTTP_HOST == "www.yfzhwlw.com" or HTTP_HOST == "yfzhwlw.com" or HTTP_HOST == "120.27.222.26":
- return render(request, 'home/login.html', context={'form': form})
- # return render(request, 'home/common_login.html', context={'form': form})
- elif HTTP_HOST == "www.zgzhwlw.com" or HTTP_HOST == "zgzhwlw.com":
- return render(request, 'home/common_login.html', context={'form': form})
- elif HTTP_HOST == "127.0.0.1:8000":
- return render(request, 'home/login.html', context={'form': form})
- # return render(request, 'home/common_login.html', context={'form': form})
- elif HTTP_HOST == "localhost:8000":
- # return render(request, 'home/common_login.html', context={'form': form})
- return render(request, 'home/common_login.html', context={'form': form})
- else:
- return render(request, 'home/login.html', context={'form': form})
- # return render(request, 'home/common_login.html', context={'form': form})
-
- def post(self, request):
- user_name = request.POST.get('username')
- pass_word = request.POST.get('password')
- print('输入的用户名:', user_name)
- user = MyUser.objects.extra(
- where=['binary username=%s'], params=[user_name])
- print("user.exists():", user.exists())
- if user.exists() == False:
- data = "1"
- return HttpResponse(data)
- else:
- user = MyUser.objects.get(username=user_name)
- if user.is_active != True:
- data = "2"
- return HttpResponse(data)
- else:
- if check_password(pass_word, user.password) != True:
- data = "3"
- return HttpResponse(data)
- else:
- print('登陆成功')
- try:
- current_user = MyUser.objects.get(username=user_name)
- remaining_days = (current_user.expire_date - datetime.datetime.now()).days
- print("账号剩余天数:",remaining_days)
- if remaining_days < 30 and remaining_days > 0:
- print("账号剩余时间过少,请及时充值")
- elif remaining_days <= 0:
- return HttpResponse("4")
- except Exception as e:
- pass
-
- user_has_perm = user.has_perm('apps.EquipList.add_equip')
- print('user_has_perm=', user_has_perm)
- print("头像:", user.user_picture)
- 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='登录')
- data = "0"
- returnUrl = request.POST.get('returnUrl')
- print("returnUrl:",returnUrl)
- if returnUrl == None:
- print("returnUrl is none!!!!!!!!")
- return HttpResponse(data)
- else:
- if returnUrl == "":
- print("returnUrl is empty")
- return render(request, 'reportmanage/cbd_report.html')
- elif returnUrl != "":
- print("returnUrl is not empty")
- return render(request, 'reportmanage/cbd_report.html')
- # response = HttpResponse(data)
- # response['Access-Control-Allow-Origin'] = '*'
- # response['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
- # response['Access-Control-Max-Age'] = '1000'
- # response['Access-Control-Allow-Headers'] = '*'
- # return response
- # return HttpResponse(data)
- # if is_remember_pwd == "remember":
- # print("记住密码")
- # data = "0"
- # re = HttpResponse(data)
- # re.set_cookie('uname', user_name, 3600)
- # # 保存密码:先加密
- # bpwd = base64.encodestring(
- # bytes(pass_word, encoding='utf-8'))
- # re.set_cookie('upwd', bpwd, 3600)
- # return re
- # elif is_remember_pwd == "no":
- # print("不记住密码,删除密码")
- # data = "0"
- # re = HttpResponse(data)
- # re.delete_cookie("uname")
- # re.delete_cookie("upwd")
- # return re
- # 首页视图函数
- from django.core import serializers
- def home(request):
- if request.user.is_authenticated():
- user_name = request.user.username
- current_user = MyUser.objects.get(username=user_name)
- print('user_name=', user_name)
- print('current_user=', current_user.username)
- groups = User_Group.objects.filter(user=current_user)
- print("groups:", groups)
- # 获取用户的logo组
- logos = Logo.objects.filter(myuser=current_user)
- print("logos:",logos)
-
- for i in groups:
- print("##############:",i.name)
-
- print("当前用户类型:是否为超级管理员", current_user.is_superuser)
- print("---------len:",len(logos))
- if len(logos) == "0":
- logos == ""
- else:
- pass
- # groups_list=[]
- # for i in groups:
- # groups_list.append(i.name)
- # groups_list = ','.join(groups_list)
- # print("groups_list:", groups_list)
- # 如果是依科曼的用户:
- # if "scd" in groups_list:
- # if "cbd" in groups_list:
- # #杀虫灯和测报灯用户:
- # group = "scd+cbd"
- # else:
- # # 杀虫灯用户:
- # group = "scd"
- # elif "cbd" in groups_list:
- # # 测报灯用户:
- # group = "cbd"
- # elif "ykm" in groups_list:
- # if "ykm" in groups_list:
- # # 依科曼测报灯用户:
- # group = "ykm"
- # else:
- # group = "yfkj"
- print("当前用户类型:是否为超级管理员", current_user.is_superuser)
- if current_user.is_superuser:
- role = "superuser"
- num = 1
- elif current_user.is_staff:
- role = "staff"
- num = 1
- elif current_user.is_agency:
- role = "agency"
- if Purchase.objects.filter(userid=current_user).exists():
- num = 1
- else:
- print(current_user.user_agency)
- if current_user.user_agency:
- hh = Purchase.objects.filter(userid__user_agency=current_user.user_agency).count()
- if hh:
- num = 1
- else:
- num = 0
- else:
- num = 0
- else:
- role = "user"
- num = Purchase.objects.filter(userid=current_user).count()
- print("num",num)
- current_user = MyUser.objects.get(username=user_name)
- # 超级管理员没有到期时间 提取不到参数时会报错
- try:
- # remaining_days=账户还剩多少天
- remaining_days = (current_user.expire_date - datetime.datetime.now()).days
- # 账户的具体到期时间
- user_date = current_user.expire_date
- # 将账户的具体到期时间转字符串,取年-月-日
- user_date = datetime.date.strftime(user_date,"%Y-%m-%d %H:%M:%S")[0:10]
- except:
- return render(request, 'home/home.html', context={'current_user': current_user, 'role': role, 'groups': groups, 'logos':logos,'have':num})
- return render(request, 'home/home.html', context={'current_user': current_user, 'role': role, 'groups': groups,
- 'remaining_days':remaining_days, 'user_date':user_date, 'logos':logos,'have':num})
- else:
- return redirect('/login')
- # 用户注册
- from django.utils.decorators import method_decorator
- @method_decorator(csrf_exempt, name='dispatch')
- class Register_View(View):
- def post(self, request):
- user_name = request.POST.get('username')
- email = request.POST.get('email')
- user_phone = request.POST.get('user_phone')
- password = request.POST.get('password')
- password2 = request.POST.get('password2')
- print(user_name)
- print(email)
- print(user_phone)
- print(password)
- print(password2)
- if(MyUser.objects.extra(where=['binary username=%s'], params=[user_name]).exists() == True):
- data = "1"
- return HttpResponse(data)
- UserModel = get_user_model()
- user = UserModel.objects.create_user(
- username=user_name, email=email, password=password, user_phone=user_phone)
- user.save()
- data = "0"
- return HttpResponse(data)
- @login_required
- def home_map(request):
- User_Log.objects.create(log_user=request.user.username,
- log_ip=get_client_ip(request), log_desc='首页')
- current_user = request.session.get('username')
- print("请求定位信息!!!")
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- print("请求杀虫灯定位!")
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- sta1 = SCDstatus.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 = SCDstatus.objects.filter(equip_id__equip_agency=current_user.user_agency)
- else:
- print("---管理员")
- sta1 = SCDstatus.objects.all()
- return render(request, 'home/home_map.html', context={"scdlist":sta1})
- # 根据用户来进行定位
- class User_Location(ListView):
- def get(self,request):
- pass
- def post(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- try:
- user_pro = current_user.user_pro
- except:
- user_pro = ""
- try:
- user_city = current_user.user_city
- except:
- user_city = ""
- try:
- user_area = current_user.user_area
- except:
- user_area = ""
- data = {"user_pro":user_pro,"user_city":user_city,"user_area":user_area}
- data = json.dumps(data)
- return HttpResponse(data)
- # 地图定位请求接口:
- class Map_Scd_All(ListView):
- def get(self,request):
- pass
- def post(self,request):
- current_user = request.session.get('username')
- print("请求定位信息!!!")
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- print("请求杀虫灯定位!")
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- sta1 = RecentSCDdata.objects.filter(
- equip_id__equip_user=current_user).values()
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---代理商")
- sta1 = RecentSCDdata.objects.filter(equip_id__equip_agency=current_user.user_agency).values()
- else:
- print("---管理员")
- sta1 = RecentSCDdata.objects.all().values()
- nums = sta1.count()
- data = {"nums":nums}
- data = json.dumps(data)
- return HttpResponse(data)
- # 地图定位请求接口:
- class Map_Locat_View(ListView):
- def get(self, request):
- pass
- def post(self, request):
- current_user = request.session.get('username')
- print("请求定位信息!!!")
- print("current_user:", current_user)
- current_user = MyUser.objects.get(username=current_user)
- req = request.POST.get('req')
- print("req:", req)
- # page = int(request.POST.get('page'))
- # print("page",page)
- if req == "cbd":
- print("请求测报灯定位!")
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- sta1 = RecentCBDdata.objects.filter(equip_id__equip_user=current_user).values()
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---代理商")
- sta1 = RecentCBDdata.objects.filter(equip_id__equip_agency=current_user.user_agency).values()
- else:
- print("---管理员")
- sta1 = RecentCBDdata.objects.all().values()
- sta2 = []
- for x in sta1:
- try:
- gps = eval(x['cbd_data'])['gps']
- if gps == -1:
- gps = 2
- sta2.append({
- "equip_id": x['equip_id_id'],
- "equip_type": 3,
- "equip_name": x['equip_name'],
- "gps": gps,
- "lng": eval(x['cbd_data'])['lng'],
- "lat": eval(x['cbd_data'])['lat']
- })
- except:
- sta2.append({
- "equip_id": x['equip_id_id'],
- "equip_type": 3,
- "equip_name": x['equip_name'],
- "gps": 2,
- "lng": eval(x['cbd_data'])['lng'],
- "lat": eval(x['cbd_data'])['lat']
- })
-
- # sta2 = [{
- # "equip_id": x['equip_id_id'],
- # "equip_type": 3,
- # "equip_name": x['equip_name'],
- # "lng": eval(x['cbd_data'])['lng'],
- # "lat": eval(x['cbd_data'])['lat']
- # } for x in sta1]
- data = json.dumps(sta2)
- # print("data:", data)
- return HttpResponse(data)
- elif req == "scd":
- print("请求杀虫灯定位!")
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- sta1 = RecentSCDdata.objects.filter(
- equip_id__equip_user=current_user).values()
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---代理商")
- sta1 = RecentSCDdata.objects.filter(equip_id__equip_agency=current_user.user_agency).values()
- else:
- print("---管理员")
- sta1 = RecentSCDdata.objects.all().values()
- sta2 = []
- a = datetime.datetime.now()
- for x in sta1:
- try:
- sta2.append({
- "equip_id": x['equip_id_id'],
- "equip_type": 2,
- "equip_name": x['equip_name'],
- "gps": eval(x['scd_data'])['gps'],
- "lng": eval(x['scd_data'])['lng'],
- "lat": eval(x['scd_data'])['lat']
- })
- except:
- sta2.append({
- "equip_id": x['equip_id_id'],
- "equip_type": 2,
- "equip_name": x['equip_name'],
- "gps": 2,
- "lng": 113,
- "lat": 34
- })
- print("消耗时间为",datetime.datetime.now()-a)
- data = json.dumps(sta2)
- # print("data:", data)
- return HttpResponse(data)
- elif req == "qxz":
- print("请求气象站定位!")
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- sta1 = QXZ_Base_Info.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 = QXZ_Base_Info.objects.filter(equip_id__equip_agency=current_user.user_agency)
- else:
- print("---管理员")
- sta1 = QXZ_Base_Info.objects.all()
- sta2 = [{
- "equip_id": x.equip_id_id,
- "equip_type": 5,
- "equip_name": x.equip_id.equip_name,
- "lng": x.lng,
- "lat": x.lat
- } for x in sta1]
- data = json.dumps(sta2)
- # print("data:", data)
- return HttpResponse(data)
- elif req == "bzy":
- print("请求孢子仪定位!")
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- sta1 = BZYstatus.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 = BZYstatus.objects.filter(equip_id__equip_agency=current_user.user_agency)
- else:
- print("---管理员")
- sta1 = BZYstatus.objects.all()
- sta2 = [{
- "equip_id": x.equip_id_id,
- "equip_type": 7,
- "equip_name": x.equip_id.equip_name,
- "lng": eval(x.bzy_status)['lng'],
- "lat": eval(x.bzy_status)['lat']
- } for x in sta1]
- data = json.dumps(sta2)
- # print("data:", data)
- return HttpResponse(data)
- elif req == "xyq":
- print("请求性诱设备定位!")
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- print("---不是管理员")
- sta1 = YBQstatus.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 = YBQstatus.objects.filter(equip_id__equip_agency=current_user.user_agency)
- else:
- print("---管理员")
- sta1 = YBQstatus.objects.all()
- sta2 = []
- for x in sta1:
- try:
- sta2.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": 4,
- "equip_name": x.equip_id.equip_name,
- "gps": eval(x.ybq_status)['gps'],
- "lng": x.lng,
- "lat": x.lat
- })
- except:
- sta2.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": 4,
- "equip_name": x.equip_id.equip_name,
- "gps": 2,
- "lng": x.lng,
- "lat": x.lat
- })
- # sta2 = [{
- # "equip_id": x.equip_id_id,
- # "equip_type": 4,
- # "equip_code": x.equip_code,
- # "lng": eval(x.ybq_status)['lng'],
- # "lat": eval(x.ybq_status)['lat']
- # } for x in sta1]
- data = json.dumps(sta2)
- # print("data:", data)
- return HttpResponse(data)
- elif req == "imei":
- print("imei搜索定位!")
- equip_id = request.POST.get('equip_id')
- print("equip_id:", equip_id)
- if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
- # 非管理员筛选出当前用户:
- scd_equips = Equip.objects.filter(equip_user=current_user,equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='2'))
- cbd_equips = Equip.objects.filter(equip_user=current_user,equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='3'))
- bzy_equips = Equip.objects.filter(equip_user=current_user,equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='7'))
- qxz_equips = Equip.objects.filter(equip_user=current_user,equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='5'))
- xyq_equips = Equip.objects.filter(equip_user=current_user,equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='4'))
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- # 代理商用户
- scd_equips = Equip.objects.filter(equip_agency=current_user.user_agency,equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='2'))
- cbd_equips = Equip.objects.filter(equip_agency=current_user.user_agency,equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='3'))
- bzy_equips = Equip.objects.filter(equip_agency=current_user.user_agency,equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='7'))
- qxz_equips = Equip.objects.filter(equip_agency=current_user.user_agency,equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='5'))
- xyq_equips = Equip.objects.filter(equip_agency=current_user.user_agency,equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='4'))
- else:
- # 管理员用户
- scd_equips = Equip.objects.filter(equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='2'))
- cbd_equips = Equip.objects.filter(equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='3'))
- bzy_equips = Equip.objects.filter(equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='7'))
- qxz_equips = Equip.objects.filter(equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='5'))
- xyq_equips = Equip.objects.filter(equip_id__contains=equip_id, equip_type=Equip_type.objects.get(type_id='4'))
- if not scd_equips and not cbd_equips and not bzy_equips and not qxz_equips and not xyq_equips:
- sta5 = 0
- data = json.dumps(sta5)
- return HttpResponse(data)
- # print("scd_equips:", scd_equips)
- # print("cbd_equips:", cbd_equips)
- else:
- sta2 = []
- if scd_equips:
- for i in scd_equips:
- sta1 = SCDstatus.objects.filter(
- equip_id__equip_id__contains=equip_id)
- for x in sta1:
- try:
- sta2.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": x.equip_id.equip_type.type_id,
- "equip_name": x.equip_id.equip_name,
- "gps": eval(x.scd_status)['gps'],
- "lng": x.lng,
- "lat": x.lat,
- "equip_location": x.equip_location
- })
- except:
- sta2.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": x.equip_id.equip_type.type_id,
- "equip_name": x.equip_id.equip_name,
- "gps": 2,
- "lng": x.lng,
- "lat": x.lat,
- "equip_location": x.equip_location
- })
- sta4 = []
- if cbd_equips:
- for i in cbd_equips:
- sta3 = CBDstatus.objects.filter(
- equip_id__equip_id__contains=equip_id)
-
- for x in sta3:
- try:
- sta4.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": 3,
- "equip_name": x.equip_id.equip_name,
- "gps": eval(x.cbd_status)['gps'],
- "lng": x.lng,
- "lat": x.lat,
- "equip_location": x.equip_location
- })
- except:
- sta4.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": 3,
- "equip_name": x.equip_id.equip_name,
- "gps": 2,
- "lng": x.lng,
- "lat": x.lat,
- "equip_location": x.equip_location
- })
- sta7 = []
- if bzy_equips:
- for i in bzy_equips:
- sta6 = BZYstatus.objects.filter(
- equip_id__equip_id__contains=equip_id)
-
- for x in sta6:
- try:
- sta7.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": 7,
- "equip_name": x.equip_id.equip_name,
- "lng": eval(x.bzy_status)['lng'],
- "lat": eval(x.bzy_status)['lat'],
- "equip_location": ""
- })
- except:
- sta7.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": 7,
- "equip_name": x.equip_id.equip_name,
- "lng": eval(x.bzy_status)['lng'],
- "lat": eval(x.bzy_status)['lat'],
- "equip_location": ""
- })
- sta9 = []
- if qxz_equips:
- for i in qxz_equips:
- sta8 = QXZ_Base_Info.objects.filter(
- equip_id__equip_id__contains=equip_id)
-
- for x in sta8:
- try:
- sta9.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": 5,
- "equip_name": x.equip_id.equip_name,
- "lng": x.lng,
- "lat": x.lat,
- "equip_location": ""
- })
- except:
- sta9.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": 5,
- "equip_name": x.equip_id.equip_name,
- "lng": x.lng,
- "lat": x.lat,
- "equip_location": ""
- })
- sta11 = []
- if xyq_equips:
- for i in xyq_equips:
- sta10 = YBQstatus.objects.filter(
- equip_id__equip_id__contains=equip_id)
-
- for x in sta10:
- try:
- sta11.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": 4,
- "equip_name": x.equip_id.equip_name,
- "gps": eval(x.ybq_status)['gps'],
- "lng": eval(x.ybq_status)['lng'],
- "lat": eval(x.ybq_status)['lat'],
- "equip_location": ""
- })
- except:
- sta11.append({
- "equip_id": x.equip_id.equip_id,
- "equip_type": 4,
- "equip_name": x.equip_id.equip_name,
- "gps": 2,
- "lng": eval(x.ybq_status)['lng'],
- "lat": eval(x.ybq_status)['lat'],
- "equip_location": ""
- })
- # sta4 = [{
- # "equip_id": x.equip_id.equip_id,
- # "equip_type": x.equip_id.equip_type.type_id,
- # "equip_name": x.equip_id.equip_name,
- # "lng": x.lng,
- # "lat": x.lat,
- # "equip_location": x.equip_location
- # } for x in sta3]
- sta5 = sta2+sta4+sta7+sta9+sta11
- data = json.dumps(sta5)
- return HttpResponse(data)
- # 个人信息 视图函数
- class Personal_Info_View(View):
- def get(self, request):
- user_name = request.user.username
- user = MyUser.objects.get(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=request.META['REMOTE_ADDR'], log_desc='个人信息')
- return render(request, 'home/personal_info.html', context={'user': user, 'role': role})
- def post(self, request):
- username = request.user.username
- print('username:',username)
- user = MyUser.objects.get(username=username)
- req = request.POST.get('req')
- if req == "info":
- 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 == "photo":
- user_photo = request.FILES['upicture']
- print("用户头像:", 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 + username+".png")
- new_photo = user_photo_dir + username+".png"
- # 数据库关联设备,并在照片的表中存入路径:
- user.user_picture = new_photo
- user.save()
- data = "0"
- return HttpResponse(data)
- # 修改密码 视图函数
- def change_pwd(request):
- if request.method == 'GET':
- user_name = request.user.username
- print("当前用户为:", user_name)
- return render(request, 'home/change_pwd.html')
- if request.method == 'POST':
- user_name = request.POST.get('username')
- print('user_name:',user_name)
- user = MyUser.objects.get(username=user_name)
- print("当前用户为:", user_name)
- oldpassword = request.POST.get('oldpassword')
- password = request.POST.get('password')
- print("post的oldpassword:", oldpassword)
- print("post的password:", password)
-
- if(check_password(oldpassword, user.password)):
- user.set_password(password)
- user.save()
- User_Log.objects.create(log_user=request.user.username,
- log_ip=request.META['REMOTE_ADDR'], log_desc='修改密码')
- data = "0"
- return HttpResponse(data)
- else:
- data = "1"
- return HttpResponse(data)
- # 用户退出
- @login_required
- def logout(request):
- print("用户退出")
- del request.session['username']# 删除session
- auth.logout(request)
- return redirect('/login')
- # 用户账户有效期
- class User_Remaining_Days(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:
- pass
- else:
- # remaining_days为账号还剩xx天,user_date为xxxx年xx月xx日到期
- remaining_days = (current_user.expire_date - datetime.datetime.now()).days
- user_date = current_user.expire_date
- user_date = datetime.date.strftime(user_date,"%Y-%m-%d %H:%M:%S")[0:10]
- # data = {"remaining_days":remaining_days, "user_date":user_date}
- # data = json.dumps(data)
- return render(request, 'home/renew.html', context={'remaining_days': remaining_days, 'user_date': user_date})
- # 主页提示设备流量卡过期
- class SCD_Alarm(ListView):
- def get(self,request):
- pass
- def post(self,request):
- 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("---用户")
- _list = Equip.objects.filter(equip_user=current_user,equip_type=2).values()
- elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
- print("---代理商")
- _list = Equip.objects.filter(equip_agency=current_user.user_agency,equip_type=2).values()
- dat = []
- data = []
- for i in _list:
- dat.append(i['equip_id'])
- for x in Alarm_record.objects.filter(alarm_desc__contains="Dump").values():
- if x['equip_id_id'] in dat:
- data.append({"equip_id":x['equip_id_id'],"time":x['alarm_time']})
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- class Big_Data(ListView):
- def get(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- return render(request, 'home/bigScreen.html', context={"current_user":current_user})
- def post(self, request):
- pass
- # 主页提示设备流量卡过期
- class Equip_Sim(ListView):
- def get(self,request):
- pass
- def post(self,request):
- 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("---用户")
- simlist = Equip_SimInfo.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("---代理商")
- simlist = Equip_SimInfo.objects.filter(equip_id__equip_agency=current_user.user_agency)
- else:
- print("---管理员")
- simlist = Equip_SimInfo.objects.all()
- dat = []
- for i in simlist:
- dat.append({"equip_id":i.equip_id_id,"expiry_date":i.expiry_date})
- data = dat
- data = json.dumps(data)
- return HttpResponse(data)
- # 展示页面判断是不是四情用户
- class User_Judge(ListView):
- def get(self,request):
- pass
- def post(self,request):
- user_name = request.POST.get('username')
- pass_word = request.POST.get('password')
- print('输入的用户名:', user_name)
- user = MyUser.objects.extra(
- where=['binary username=%s'], params=[user_name])
- print("user.exists():", user.exists())
- if user.exists() == False:
- data = "1"
- return HttpResponse(data)
- else:
- user = MyUser.objects.get(username=user_name)
- if user.is_active != True:
- data = "2"
- return HttpResponse(data)
- else:
- if check_password(pass_word, user.password) != True:
- data = "3"
- return HttpResponse(data)
- else:
- print('登陆成功')
- user_obj = MyUser.objects.get(username=user_name)
- equip_list = Equip.objects.filter(equip_user=user_obj)
- type_list = []
- for i in equip_list:
- type_list.append(i.equip_type_id)
- if user_obj.is_superuser:
- auth_user = authenticate(
- username=user_name, password=pass_word)
- auth_login(request, auth_user)
- # 将当前登录的用户名写入session
- request.session['username'] = user_name
- data = "0"
- return HttpResponse(data)
- elif 3 and 5 and 6 and 7 in type_list:
- auth_user = authenticate(
- username=user_name, password=pass_word)
- auth_login(request, auth_user)
- # 将当前登录的用户名写入session
- request.session['username'] = user_name
- data = "0"
- else:
- data = "5"
- return HttpResponse(data)
- # 用户基地展示图
- class User_Display(ListView):
- def get(self,request):
- pass
- def post(self,request):
- current_user = request.session.get('username')
- print('current_user')
- print(current_user)
- current_user = MyUser.objects.get(username=current_user)
- equip_list = Equip.objects.filter(equip_user=current_user)
- if current_user.is_superuser:
- equip_list = Equip.objects.all()
- dat = []
- for i in equip_list:
- if i.equip_type_id == 3:
- dat.append({"e_id":i.equip_id,"equip_type":"3"})
- elif i.equip_type_id == 5:
- dat.append({"e_id":i.equip_id,"equip_type":"5"})
- elif i.equip_type_id == 6:
- dat.append({"e_id":i.equip_id,"equip_type":"6"})
- elif i.equip_type_id == 7:
- dat.append({"e_id":i.equip_id,"equip_type":"7"})
- data = {"basename":current_user.base_name,"basephoto":"%s"%current_user.base_show,"dat":dat}
- data = json.dumps(data)
- return HttpResponse(data)
- # 测报灯数据展示页面
- class CBD_Display(ListView):
- def get(self,request):
- pass
- def post(self,request):
- e_id = request.POST.get("imei")
- equip_obj = Equip.objects.get(equip_id=e_id)
- cbd_obj = CBDstatus.objects.get(equip_id=equip_obj)
- cbd_photo = CBDphoto.objects.filter(equip_id=e_id)
- photo_list = []
- for x in cbd_photo:
- photo_list.append(x.addr)
- if len(photo_list) >= 10:
- break
- pest_list = []
- for i in CBDphoto.objects.filter(equip_id=e_id):
- if i.indentify_result:
- pest_list.append({"pest":i.indentify_result,"time":i.upl_time,"at":i.at,"ah":i.ah})
- if len(pest_list) >= 10:
- break
- data = {"photolist":photo_list,"pestlist":pest_list,"status":cbd_obj.cbd_status,"is_online":cbd_obj.is_online}
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- # 孢子仪数据展示页面
- class BZY_Display(ListView):
- def get(self,request):
- pass
- def post(self,request):
- e_id = request.POST.get("imei")
- bzy_obj = BZYstatus.objects.get(equip_id=e_id)
- bzy_photo = BZYphoto.objects.filter(equip_id=e_id)
- photo_list = []
- for x in bzy_photo:
- photo_list.append(x.addr)
- if len(photo_list) >= 10:
- break
- data = {"photolist":photo_list,"status":bzy_obj.bzy_status,"is_online":bzy_obj.is_online}
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- # 气象站数据展示页面
- class QXZ_Display(ListView):
- def get(self,request):
- pass
- def post(self,request):
- e_id = request.POST.get("imei")
-
- # e_id = request.POST.get("e_id")
- # page = int(request.POST.get('page'))
- # qxz_list = QXZdata_New.objects.filter(equip_id=e_id)
- # data = []
- # for i in qxz_list:
- # data.append({"dat":{"e1":i.e1,"e2":i.e2,"e3":i.e3,"e4":i.e4,"e5":i.e5,
- # "e6":i.e6,"e7":i.e7,"e8":i.e8,"e9":i.e9,"e10":i.e10,
- # "e11":i.e11,"e12":i.e12,"e13":i.e13,"e14":i.e14,
- # "e15":i.e15,"e16":i.e16,"e17":i.e17,"e18":i.e18,
- # "e19":i.e19,"e20":i.e20,"e21":i.e21,"e22":i.e22,
- # "e23":i.e23,"e24":i.e24,"e25":i.e25,"e26":i.e26,
- # "e27":i.e27,"e28":i.e28,"e29":i.e29,"e30":i.e30},
- # "time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S')})
- # if len(data) >= 10:
- # break
- # try:
- # x = QXZ_Conf.objects.get(equip_id=e_id)
- # conf = {"e1":x.e1,"e2":x.e2,"e3":x.e3,"e4":x.e4,"e5":x.e5,
- # "e6":x.e6,"e7":x.e7,"e8":x.e8,"e9":x.e9,"e10":x.e10,
- # "e11":x.e11,"e12":x.e12,"e13":x.e13,"e14":x.e14,
- # "e15":x.e15,"e16":x.e16,"e17":x.e17,"e18":x.e18,
- # "e19":x.e19,"e20":x.e20,"e21":x.e21,"e22":x.e22,
- # "e23":x.e23,"e24":x.e24,"e25":x.e25,"e26":x.e26,
- # "e27":x.e27,"e28":x.e28,"e29":x.e29,"e30":x.e30}
- # except:
- # conf = {}
- # nums = qxz_list.count()
- # # data = data[(10*(page-1)):(page*10)]
- # data1 = {"data":data,"nums":nums,"conf":conf}
- # data1 = json.dumps(data1)
- # return HttpResponse(data1)
-
- qxz_dict_3 = copy.deepcopy(qxz_dict)
- sta1 = QXZdata.objects.filter(equip_id=e_id).values()
- dat = []
- for x in sta1:
- sta = {"upl_time": x["upl_time"], "unit": [], "equip_id": x["equip_id_id"]}
- for i in eval(x["qxz_data"])["data"]:
- qxz_dict_3[i["eNum"]][0] = i["eValue"]
- d = copy.deepcopy(qxz_dict_3[i["eNum"]]) # 此处有坑 如果不深拷贝 后一次 qxz_dict[i["eNum"]][0] = i["eValue"] 赋值会把上次赋值替换掉
- ek = i["eKey"]
- d.append(ek)
- d.append(i["eNum"])
- sta["unit"].append(d)
- # qxz_dict[eval(x.qxz_data)['data'][0]["eNum"]]
- dat.append(sta)
- if len(dat) >= 10:
- break
- data = {"dat": dat}
- data = json.dumps(data, cls=CJSONEncoder)
- return HttpResponse(data)
- # 展示页面地图
- class Display_Map(ListView):
- def get(self,request):
- e_type = request.GET.get("type")
- return render(request, 'home/bigScreenMap.html', context={"type":e_type})
- def post(self,request):
- current_user = request.session.get('username')
- e_type = request.POST.get("type")
- print('current_user')
- print(current_user)
- current_user = MyUser.objects.get(username=current_user)
- equip_list = Equip.objects.filter(equip_user=current_user)
- if current_user.is_superuser:
- equip_list = Equip.objects.all()
- dat = []
- if e_type == "all":
- for i in equip_list:
- if i.equip_type_id == 3:
- lat = CBDstatus.objects.get(equip_id=i).lat
- lng = CBDstatus.objects.get(equip_id=i).lng
- # dat.append({"e_id":i.equip_id_id,"lat":lat,"lng":lng})
- dat.append({"e_id":i.equip_id,"lat":lat,"lng":lng,"equip_type":"3"})
- elif i.equip_type_id == 5:
- lat = ""
- lng = ""
- # dat.append({"e_id":i.equip_id_id,"lat":lat,"lng":lng})
- dat.append({"e_id":i.equip_id,"lat":lat,"lng":lng,"equip_type":"5"})
- elif i.equip_type_id == 6:
- lat = ""
- lng = ""
- # dat.append({"e_id":i.equip_id_id,"lat":lat,"lng":lng})
- dat.append({"e_id":i.equip_id,"lat":lat,"lng":lng,"equip_type":"6"})
- elif i.equip_type_id == 7:
- try:
- lat = eval(BZYstatus.objects.get(equip_id=i).bzy_status)["lat"]
- lng = eval(BZYstatus.objects.get(equip_id=i).bzy_status)["lng"]
- except Exception as e:
- print("错误信息为:",e)
- lat = ""
- lng = ""
- # dat.append({"e_id":i.equip_id_id,"lat":lat,"lng":lng})
- dat.append({"e_id":i.equip_id,"lat":lat,"lng":lng,"equip_type":"7"})
- elif e_type == "3":
- for i in equip_list:
- if i.equip_type_id == 3:
- lat = CBDstatus.objects.get(equip_id=i).lat
- lng = CBDstatus.objects.get(equip_id=i).lng
- # dat.append({"e_id":i.equip_id_id,"lat":lat,"lng":lng})
- dat.append({"e_id":i.equip_id,"lat":lat,"lng":lng,"equip_type":"3"})
- elif e_type == "7":
- for i in equip_list:
- if i.equip_type_id == 7:
- try:
- lat = eval(BZYstatus.objects.get(equip_id=i).bzy_status)["lat"]
- lng = eval(BZYstatus.objects.get(equip_id=i).bzy_status)["lng"]
- except Exception as e:
- print("错误信息为:",e)
- lat = ""
- lng = ""
- # dat.append({"e_id":i.equip_id_id,"lat":lat,"lng":lng})
- dat.append({"e_id":i.equip_id,"lat":lat,"lng":lng,"equip_type":"7"})
- data = {"dat":dat}
- data = json.dumps(data)
- return HttpResponse(data)
- # 用户基地展示
- class User_Base(ListView):
- def get(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- base_name = current_user.base_name
- base_show = current_user.base_show
- return render(request, 'home/baseEdit.html', context={"base_name":base_name,"base_photo":base_show})
- def post(self,request):
- pass
- # 用户基地保存
- class User_Base_Save(ListView):
- def get(self,request):
- pass
- def post(self,request):
- basestr = request.FILES.get("basephoto")
- basename = request.POST.get("basename")
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- base_dir = "base_show/"
- if basestr:
- img = Image.open(basestr)
- img.save(base_dir + current_user.username +".png")
- current_user.base_show = base_dir + current_user.username +".png"
- current_user.base_name = basename
- current_user.save()
- return HttpResponse("0")
- class VR_List(ListView):
- def get(self, request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- if current_user.is_superuser:
- role = "superuser"
- elif current_user.is_staff:
- role = "staff"
- elif current_user.is_agency:
- role = "agency"
- else:
- role = "user"
- user_list = MyUser.objects.all()
- user_name = []
- for i in user_list:
- user_name.append(i.username)
- return render(request, 'vr/panoramaList.html', context={"role":role,"user_name":user_name})
- def post(self, request):
- pass
- class VR_Display(ListView):
- def get(self, request):
- e_id = request.GET.get('id')
- img = VR_Photo.objects.get(id=e_id).photo
- return render(request, 'vr/panorama.html', context={"img":img})
- def post(self, request):
- pass
- class Home_VR(ListView):
- def get(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- vr_obj = VR_Photo.objects.filter(user=current_user)
- if current_user.is_superuser or current_user.is_staff:
- vr_obj = VR_Photo.objects.all()
- data = []
- for i in vr_obj:
- data.append({"id":i.id,"name":i.name,"user":i.user.username,"photo":i.photo})
- data = json.dumps(data)
- return HttpResponse(data)
- def post(self,request):
- pass
- # VR图片上传
- class VR_Upload(ListView):
- def get(self,request):
- pass
- def post(self,request):
- e_id = request.POST.get('id')
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- name = request.POST.get('name')
- uname = request.POST.get('uname')
- vruser = MyUser.objects.get(username=uname)
- # vr_display = request.FILES['display']
- vr_photo = request.FILES['photo']
- print("vr图片:", vr_photo)
- vr_photo_dir = 'vr_photo/'
- now_time = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
- # new_display = vr_photo_dir + current_user.username + "dis" + now_time +".png"
- new_photo = vr_photo_dir + current_user.username + "pho" + now_time +".png"
- if os.path.exists(vr_photo_dir) == False:
- os.makedirs(vr_photo_dir)
- # img1 = Image.open(vr_display)
- # img1.save(new_display)
- img2 = Image.open(vr_photo)
- img2.save(new_photo)
- else:
- # img1 = Image.open(vr_display)
- # img1.save(new_display)
- img2 = Image.open(vr_photo)
- img2.save(new_photo)
- # 判断如果路径不存在,即创建路径
- if e_id:
- vr_obj = VR_Photo.objects.get(id=e_id)
- # 数据库关联设备,并在照片的表中存入路径:
- vr_obj.name = name
- vr_obj.user = vruser
- # vr_obj.display = new_display
- vr_obj.photo = new_photo
- vr_obj.save()
- data = "0"
- else:
- print("new_photo:",new_photo)
- VR_Photo.objects.create(user=vruser,name=name,photo=new_photo)
- data = "0"
- return HttpResponse(data)
- # vr图片删除
- class VR_Delete(ListView):
- def get(self,request):
- pass
- def post(self,request):
- print("-----vr image delete!-----")
- e_id = request.POST.get('id')
- photo_obj = VR_Photo.objects.get(id=e_id)
- if os.path.exists(photo_obj.photo) == True:
- # 删除图片文件
- # os.remove(photo_obj.display)
- os.remove(photo_obj.photo)
- # 删除数据库照片列表中,照片路径:
- try:
- VR_Photo.objects.filter(id=e_id).delete()
- print("-----image delete ok!-----")
- data = "1"
- return HttpResponse(data)
- except:
- print("-----image delete failed!-----")
- data = "0"
- return HttpResponse(data)
- else:
- # 照片不存在,但是数据库有路径的情况会删除不掉
- # 因此不管何时都删除数据库路径
- try:
- VR_Photo.objects.filter(id=e_id).delete()
- print("-----image delete ok!-----")
- except:
- print("-----image not exist!-----")
- pass
- data = "1"
- return HttpResponse(data)
- # APP轮播图
- class App_Img(ListView):
- def get(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- app_img = APP_Img.objects.filter(user=current_user)
- return render(request, 'home/appBannerManage.html', context={"app_img":app_img})
- def post(self,request):
- pass
- # APP轮播图上传
- class App_Img_Upload(ListView):
- def get(self,request):
- pass
- def post(self,request):
- current_user = request.session.get('username')
- current_user = MyUser.objects.get(username=current_user)
- # vr_display = request.FILES['display']
- img = request.FILES['photo']
- print("vr图片:", img)
- vr_photo_dir = 'app_file/app_img/'
- now_time = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
- # new_display = vr_photo_dir + current_user.username + "dis" + now_time +".png"
- new_photo = vr_photo_dir + current_user.username + now_time +".png"
- if os.path.exists(vr_photo_dir) == False:
- os.makedirs(vr_photo_dir)
- # img1 = Image.open(vr_display)
- # img1.save(new_display)
- img2 = Image.open(img)
- img2.save(new_photo)
- else:
- # img1 = Image.open(vr_display)
- # img1.save(new_display)
- img2 = Image.open(img)
- img2.save(new_photo)
- APP_Img.objects.create(user=current_user,img=new_photo)
- data = "0"
- return HttpResponse(data)
- # app轮播图删除
- class App_Img_Delete(ListView):
- def get(self,request):
- pass
- def post(self,request):
- print("-----app image delete!-----")
- e_id = request.POST.get('id')
- photo_obj = APP_Img.objects.get(id=e_id)
- if os.path.exists(photo_obj.img) == True:
- # 删除图片文件
- # os.remove(photo_obj.display)
- os.remove(photo_obj.img)
- # 删除数据库照片列表中,照片路径:
- try:
- APP_Img.objects.filter(id=e_id).delete()
- print("-----image delete ok!-----")
- data = "1"
- return HttpResponse(data)
- except:
- print("-----image delete failed!-----")
- data = "0"
- return HttpResponse(data)
- else:
- # 照片不存在,但是数据库有路径的情况会删除不掉
- # 因此不管何时都删除数据库路径
- try:
- APP_Img.objects.filter(id=e_id).delete()
- print("-----image delete ok!-----")
- except:
- print("-----image not exist!-----")
- pass
- data = "1"
- return HttpResponse(data)
|