views.py 175 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671
  1. import copy
  2. # Create your views here.
  3. import datetime
  4. import json
  5. import os
  6. import re
  7. import time
  8. import urllib.request
  9. import requests
  10. from django.http import FileResponse
  11. from django.http.response import HttpResponse
  12. from django.shortcuts import render
  13. from django.views.generic import ListView
  14. from django.views.generic.base import View
  15. from django.contrib.auth.hashers import make_password, check_password
  16. from PIL import Image
  17. from django.utils import timezone
  18. import xmltodict
  19. from requests.auth import HTTPBasicAuth
  20. from django.contrib.auth import get_user_model
  21. from apps.AppInfo.models import (
  22. Article, CKArticle, Equip, Equip_type, FarmList, FarmUser, GardenManage,
  23. Hotel_Info, Hotel_Photo, JKdata, MyUser, Pick_Pub, Product, QXZdata,
  24. QXZdata_New, QXZstatus, QXZstatus_New, QXZswitchdata, QXZswitchstatus,
  25. Video_data,GardenArea,Store_Manage,Areacrop,Sell_Manage,Person_Pick,QXZAutoswitch,Sightsee_Info,Pic_Info,
  26. QXZ_Alarm_Log,Experts,Relations,QXZ_Alarm,QXZ_Conf,QXZ_Base_Info,QXZ_Default_Conf,QXZ_Info_Record,SystemPhoto)
  27. from apps.Equipment.all_dict import qxz_dict
  28. import xlwt
  29. from io import BytesIO
  30. # 地图
  31. class Map_Test(View):
  32. def get(self,request):
  33. # current_user = request.session.get('username')
  34. username = request.user.username
  35. print('username:',username)
  36. current_user = MyUser.objects.get(username=username)
  37. # print("current_user:", current_user)
  38. # current_user = MyUser.objects.get(username=current_user)
  39. try:
  40. pic_list = Pic_Info.objects.get(pic_user=current_user)
  41. except:
  42. pic_list = ""
  43. return render(request, 'backstageNet/map/map.html', context={"pic_list":pic_list})
  44. def post(self,request):
  45. pass
  46. # 测试接口
  47. class Equip_Test(View):
  48. def get(self,request):
  49. pass
  50. def post(self,request):
  51. qxz_data = QXZstatus.objects.get(equip_id="16054381")
  52. json_obj = qxz_data.qxz_status.replace("'", "\"")
  53. xml = xmltodict.unparse({'request':json_obj})
  54. return HttpResponse(xml)
  55. # 监控界面
  56. class JKview(ListView):
  57. def get(self,request):
  58. equip_id = request.GET.get('equip_id')
  59. token = "at.0izp4b188fna8vvk8j28o2l4a980qqex-1otrmuqf8l-1k26cbi-cletdiwkp"
  60. return render(request, 'backstageNet/jk/equipmanage_jk.html', context={"equip_id":equip_id,"token":token})
  61. def post(self,request):
  62. pass
  63. # 监控列表
  64. class JKlist(ListView):
  65. def get(self,request):
  66. # current_user = request.user.username
  67. # print("current_user:", current_user)
  68. username = request.user.username
  69. print('username:',username)
  70. current_user = MyUser.objects.get(username=username)
  71. page = request.GET.get('page')
  72. page = int(page)
  73. f_id = request.GET.get('f_id')
  74. print("f_id:", f_id)
  75. if current_user.is_superuser != True and current_user.is_staff != True:
  76. # 用户
  77. if f_id != "":
  78. equip_list = Equip.objects.filter(equip_type=6, equip_user=current_user, equip_id__contains=f_id)
  79. else:
  80. equip_list = Equip.objects.filter(equip_type=6, equip_user=current_user)
  81. else:
  82. # 管理员
  83. if f_id != "":
  84. equip_list = Equip.objects.filter(equip_type=6, equip_id__contains=f_id)
  85. else:
  86. equip_list = Equip.objects.filter(equip_type=6)
  87. e_ids = []
  88. for x in equip_list:
  89. n_d = {"equip_name":x.equip_name, "equip_id":x.equip_id}
  90. e_ids.append(n_d)
  91. nums = len(e_ids)
  92. # print(nums)
  93. ids = e_ids[(10*(page-1)):(page*10)]
  94. data = {'ids': ids, 'nums': nums}
  95. data = json.dumps(data)
  96. return HttpResponse(data)
  97. def post(self,request):
  98. pass
  99. # 视频详情
  100. class JKManage_View(ListView):
  101. def get(self, request):
  102. live_list = []
  103. j_id = request.GET.get("id")
  104. jk_list = JKdata.objects.filter(equip_id=j_id)
  105. for x in jk_list:
  106. # 用token和设备id获取直播地址
  107. live_url = 'https://open.ys7.com/api/lapp/live/address/get'
  108. live_data = {"accessToken":x.jk_token,
  109. "source":"%s:1"%x.equip_id}
  110. print("=================live_data:",live_data)
  111. live_res = requests.post(live_url,data=live_data)
  112. # print("-------------------------------:",type(live_res.text))
  113. live_res = eval(live_res.text)
  114. print("live_res:",live_res)
  115. # 如果返回200 则返回直播地址
  116. if live_res['code'] == "200":
  117. print("token获取成功")
  118. live_list.append(live_res)
  119. # 如果返回其他 则调用获取token之后重新获取直播地址并返回
  120. else:
  121. print("token过期重新获取")
  122. token_url = 'https://open.ys7.com/api/lapp/token/get'
  123. token_data = {"appKey":"e8ec0d52b4b14628a3daf4b88cbcca2a",
  124. "appSecret":"d4565abea1cd0b90b59917111dcb37bd"}
  125. token_res = requests.post(token_url,data=token_data)
  126. print("token_res1:",token_res.text)
  127. token_res = eval(token_res.text)
  128. if token_res["code"] == "200":
  129. token_res["data"]["accessToken"]
  130. x.jk_token = token_res["data"]["accessToken"]
  131. x.upl_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
  132. x.save()
  133. token = x.jk_token
  134. print("-----------------token保存成功")
  135. live_url = 'https://open.ys7.com/api/lapp/live/address/get'
  136. live_data = {"accessToken":x.jk_token,
  137. "source":"%s:1"%x.equip_id}
  138. live_res = requests.post(live_url,data=live_data)
  139. live_res = eval(live_res.text)
  140. print("live_res2:",live_res)
  141. live_list.append(live_res)
  142. data = json.dumps(live_list)
  143. return HttpResponse(data)
  144. # return render(request, 'backstageNet/jk/equipmanage_jk.html', context={"data":data})
  145. def post(self, request):
  146. jk_id = request.POST.get('id')
  147. ctrl = request.POST.get('ctrl')
  148. imei = request.POST.get('imei')
  149. accessToken = JKdata.objects.get(equip_id=jk_id).jk_token
  150. print("accessToken:",accessToken)
  151. if imei:
  152. if Equip.objects.filter(equip_id=imei).exists():
  153. return HttpResponse("0")
  154. else:
  155. # 得到设备类型实例:
  156. equip_t = Equip_type.objects.get(type_id=6)
  157. try:
  158. e_id = Equip.objects.create(equip_id=imei, equip_type=equip_t)
  159. print("<-----监控设备添加成功!----->")
  160. return HttpResponse("1")
  161. except:
  162. print("<-----监控设备添加失败!----->")
  163. if ctrl == "takephoto":
  164. url = 'https://open.ys7.com/api/lapp/device/capture'
  165. channelNo = '1'
  166. data = {'accessToken':accessToken, 'deviceSerial':jk_id, 'channelNo':channelNo}
  167. res = requests.post(url,data=data)
  168. print("截图返回结果为:",json.loads(res.text))
  169. return HttpResponse(res.text)
  170. # 操作命令:0-上,1-下,2-左,3-右,4-左上,5-左下,6-右上,7-右下,8-放大,9-缩小,10-近焦距,11-远焦距
  171. if ctrl == "move":
  172. print("-------球机云台控制开始!")
  173. dire = request.POST.get('movenum')
  174. ctrl_url = 'https://open.ys7.com/api/lapp/device/ptz/start'
  175. channelNo = '1'
  176. speed = '1'
  177. data = {'accessToken':accessToken, 'deviceSerial':jk_id, 'channelNo':channelNo, 'speed':speed, 'direction':dire}
  178. res1 = requests.post(ctrl_url,data=data)
  179. elif ctrl == "stop":
  180. print("-------球机云台控制结束!")
  181. ctrl_url = 'https://open.ys7.com/api/lapp/device/ptz/stop'
  182. channelNo = '1'
  183. data = {'accessToken':accessToken, 'deviceSerial':jk_id, 'channelNo':channelNo}
  184. res2 = requests.post(ctrl_url,data=data)
  185. return HttpResponse("1")
  186. # 新闻列表
  187. class Newslist_View(ListView):
  188. def get(self,request):
  189. con = request.GET.get("condition")
  190. page = int(request.GET.get("page"))
  191. try:
  192. art_type = int(request.GET.get("type"))
  193. art_list = CKArticle.objects.filter(art_type=art_type)
  194. if con:
  195. art_list = CKArticle.objects.filter(art_type=art_type,title__contains=con)
  196. except:
  197. art_list = CKArticle.objects.all()
  198. if con:
  199. art_list = CKArticle.objects.filter(title__contains=con)
  200. nums = art_list.count()
  201. art = art_list[(5*(page-1)):(page*5)]
  202. return render(request, 'outerNet/newsList.html', context={'art':art,"nums":nums,"con":con,"page":page})
  203. def post(self,request):
  204. art_list = CKArticle.objects.all()
  205. data = []
  206. for i in art_list:
  207. data.append({"id":i.id,"title":i.title,"content":i.content,"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S')})
  208. data = json.dumps(data)
  209. return HttpResponse(data)
  210. # 新闻详情
  211. class News_View(ListView):
  212. def get(self,request):
  213. f_id = request.GET.get("id")
  214. objs = CKArticle.objects.all().order_by("id")
  215. art = objs.get(id=f_id)
  216. on_art = objs.filter(id__lt=f_id,art_type=art.art_type)
  217. up_art = objs.filter(id__gt=f_id,art_type=art.art_type)
  218. return render(request, 'outerNet/newsDetail.html', context={"art":art,"on_art":on_art,"up_art":up_art})
  219. def post(self,request):
  220. art_list = Article.objects.all()
  221. for i in art_list:
  222. print(i.title)
  223. return HttpResponse("1")
  224. # 产品展厅列表
  225. class Equip_Show_List(ListView):
  226. def get(self,request):
  227. page = int(request.GET.get("page"))
  228. product_list = Product.objects.all()
  229. con = request.GET.get("condition")
  230. if con:
  231. product_list = Product.objects.filter(title__contains=con)
  232. nums = product_list.count()
  233. product = product_list[(20*(page-1)):(page*20)]
  234. return render(request, 'outerNet/exhibitionList.html', context={"nums":nums,"page":page,"con":con,"product":product})
  235. def post(self,request):
  236. pass
  237. # 产品展厅详情
  238. class Equip_Show_Detail(ListView):
  239. def get(self,request):
  240. e_id = request.GET.get("id")
  241. e_name = request.GET.get("name")
  242. if e_id:
  243. product = Product.objects.get(id=e_id)
  244. if e_name:
  245. product = Product.objects.get(title=e_name)
  246. return render(request, 'outerNet/exhibitionDetail.html', context={"product":product})
  247. def post(self,request):
  248. pass
  249. # 四季采摘-园区列表
  250. class Garden_List(ListView):
  251. def get(self,request):
  252. pass
  253. def post(self,request):
  254. page = int(request.POST.get("page"))
  255. farm_list = FarmList.objects.all()
  256. farm = []
  257. for i in farm_list:
  258. farm.append({"name":i.name,"id":i.id})
  259. nums = len(farm)
  260. farms = farm[(10*(page-1)):(page*10)]
  261. data = {"farms":farms,"nums":nums}
  262. data = json.dumps(data)
  263. return HttpResponse(data)
  264. # 四季采摘-主页
  265. class Garden_View(ListView):
  266. def get(self,request):
  267. return render(request, 'outerNet/fourPick.html', context={})
  268. def post(self,request):
  269. pass
  270. # 主页四级采摘进入的介绍页
  271. class Garden_Intro(ListView):
  272. def get(self,request):
  273. pid = request.GET.get("id")
  274. pname = request.GET.get("name")
  275. if pid:
  276. pick = Pick_Pub.objects.get(id=pid)
  277. if pname:
  278. pick = Pick_Pub.objects.get(name=pname)
  279. return render(request, 'outerNet/pickIntro.html', context={"pick":pick})
  280. def post(self,request):
  281. pass
  282. # 四季采摘-园区详情
  283. class Garden_Detail(ListView):
  284. def get(self,request):
  285. pass
  286. def post(self,request):
  287. f_id = request.POST.get("id")
  288. page = int(request.POST.get("page"))
  289. farm = FarmList.objects.get(id=f_id)
  290. pick = Pick_Pub.objects.filter(farm=farm)
  291. pick_list = []
  292. for i in pick:
  293. pick_list.append({"id":i.id,"farm":i.farm.name,"pick_s":i.pick_s,"pick_e":i.pick_e,"name":i.name,"time":i.upl_time,"company":i.company,"img":i.pick_img})
  294. nums = len(pick_list)
  295. pick_list = pick_list[(12*(page-1)):(page*12)]
  296. data = {"pick":pick_list,"nums":nums}
  297. data = json.dumps(data)
  298. return HttpResponse(data)
  299. #旅游导览
  300. class Tourist(ListView):
  301. def get(self,request):
  302. sid = request.GET.get("id")
  303. sname = request.GET.get("name")
  304. if sid:
  305. sightsee = Sightsee_Info.objects.get(id=sid)
  306. if sname:
  307. sightsee = Sightsee_Info.objects.get(name=sname)
  308. return render(request, 'outerNet/tourist.html', context={"sightsee":sightsee})
  309. def post(self,request):
  310. pass
  311. #旅游导览
  312. class Tourist_List(ListView):
  313. def get(self,request):
  314. page = int(request.GET.get("page"))
  315. con = request.GET.get("condition")
  316. sightsee = Sightsee_Info.objects.all()
  317. if con:
  318. sightsee = Sightsee_Info.objects.filter(name__contains=con)
  319. nums = sightsee.count()
  320. sightsee = sightsee[(10*(page-1)):(page*10)]
  321. return render(request, 'outerNet/touristList.html', context={"sightsee":sightsee,"nums":nums})
  322. def post(self,request):
  323. pass
  324. # 民宿列表
  325. class Dorm_List(ListView):
  326. def get(self,request):
  327. page = int(request.GET.get("page"))
  328. con = request.GET.get("condition")
  329. hotel_list = Hotel_Info.objects.all()
  330. if con:
  331. hotel_list = Hotel_Info.objects.filter(name__contains=con)
  332. nums = hotel_list.count()
  333. hotel = hotel_list[(10*(page-1)):(page*10)]
  334. return render(request, 'outerNet/hotelList.html', context={"nums":nums,"hotel":hotel,"page":page,"con":con})
  335. def post(self,request):
  336. pass
  337. # 民宿详情
  338. class Dorm_Detail(ListView):
  339. def get(self,request):
  340. hotel_id = request.GET.get("id")
  341. hotel_name = request.GET.get("name")
  342. if hotel_id:
  343. hotel = Hotel_Info.objects.get(id=hotel_id)
  344. if hotel_name:
  345. hotel = Hotel_Info.objects.get(name=hotel_name)
  346. photos = Hotel_Photo.objects.filter(hotel=hotel)
  347. return render(request, 'outerNet/hotelDetail.html', context={"hotel":hotel,"photos":photos})
  348. def post(self,request):
  349. pass
  350. # 农场导览
  351. class Farm_list(ListView):
  352. def get(self,request):
  353. page = int(request.GET.get("page"))
  354. con = request.GET.get("condition")
  355. garden_list = GardenArea.objects.filter(hidden=True)
  356. if con:
  357. garden_list = GardenArea.objects.filter(hidden=True,name__contains=con)
  358. nums = garden_list.count()
  359. garden_list = garden_list[(9*(page-1)):(page*9)]
  360. return render(request, 'outerNet/farmList.html', context={"nums":nums,"garden_list":garden_list,"page":page,"con":con})
  361. def post(self,request):
  362. pass
  363. # 视频列表
  364. class Video_List(ListView):
  365. def get(self,request):
  366. page = int(request.GET.get("page"))
  367. con = request.GET.get("condition")
  368. video_list = Video_data.objects.all()
  369. if con:
  370. video_list = Video_data.objects.filter(title__contains=con)
  371. nums = video_list.count()
  372. video = video_list[(12*(page-1)):(page*12)]
  373. return render(request, 'outerNet/videoList.html', context={"nums":nums,"video":video,"con":con,"page":page})
  374. def post(self,request):
  375. pass
  376. # 视频详情
  377. class Video_Detail(ListView):
  378. def get(self,request):
  379. v_id = request.GET.get("id")
  380. v_name = request.GET.get("name")
  381. if v_id:
  382. video = Video_data.objects.get(id=v_id)
  383. if v_name:
  384. print("name",v_name)
  385. video = Video_data.objects.get(title=v_name)
  386. return render(request, 'outerNet/videoDetail.html', context={"video":video})
  387. def post(self,request):
  388. pass
  389. # 后台管理页面
  390. class Back_Manage(ListView):
  391. def get(self,request):
  392. if request.user.is_authenticated():
  393. current_user = request.user.username
  394. current_user = MyUser.objects.get(username=current_user)
  395. garden = GardenArea.objects.all()
  396. return render(request, 'backstageNet/home.html', context={"current_user":current_user,"garden":garden})
  397. else:
  398. return render(request, 'outerNet/index2.html')
  399. def post(self,request):
  400. current_user = request.user.username
  401. print("current_user:", current_user)
  402. current_user = MyUser.objects.get(username=current_user)
  403. data = current_user.limit
  404. return HttpResponse(data)
  405. # 信息发布页面
  406. class Info_Pub(ListView):
  407. def get(self,request):
  408. return render(request, 'backstageNet/info/infoPub.html', context={})
  409. def post(self,request):
  410. # 文章标题
  411. title = request.POST.get('title')
  412. # 文章简介
  413. intro = request.POST.get('intro')
  414. # 文章内容
  415. info = request.POST.get('info')
  416. # 文章图片
  417. head_img = request.POST.get('upicture')
  418. username = request.user.username
  419. print('username:',username)
  420. current_user = MyUser.objects.get(username=username)
  421. if head_img:
  422. try:
  423. Article.objects.create(title=title,intro=intro,content=info,author=current_user,head_img=head_img)
  424. data = "1"
  425. except:
  426. data = "0"
  427. else:
  428. data = "0"
  429. return HttpResponse(data)
  430. # 信息维护页面
  431. class Info_Manage(ListView):
  432. def get(self,request):
  433. return render(request, 'backstageNet/info/infoManage.html', context={})
  434. def post(self,request):
  435. pass
  436. # 气象站分页接口
  437. class QXZ_Page(ListView):
  438. def get(self,request):
  439. # current_user = request.user.username
  440. # print("current_user:", current_user)
  441. # current_user = MyUser.objects.get(username="admin")
  442. page = request.GET.get('page')
  443. page = int(page)
  444. # f_id = request.GET.get('f_id')
  445. # print("f_id:", f_id)
  446. # if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
  447. # # 用户
  448. # if f_id != "":
  449. # equip_list = Equip.objects.filter(equip_type=5, equip_user=current_user, equip_id__contains=f_id)
  450. # else:
  451. # equip_list = Equip.objects.filter(equip_type=5, equip_user=current_user)
  452. # elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
  453. # # 代理商
  454. # if f_id != "":
  455. # equip_list = Equip.objects.filter(equip_type=5, equip_agency=current_user.user_agency, equip_id__contains=f_id)
  456. # else:
  457. # equip_list = Equip.objects.filter(equip_type=5, equip_agency=current_user.user_agency)
  458. # else:
  459. # # 管理员
  460. # if f_id != "":
  461. # equip_list = Equip.objects.filter(equip_type=5, equip_id__contains=f_id)
  462. # else:
  463. equip_list = Equip.objects.filter(equip_type=5)
  464. e_ids = []
  465. for x in equip_list:
  466. n_d = {"equip_name":x.equip_name, "equip_id":x.equip_id}
  467. e_ids.append(n_d)
  468. nums = len(e_ids)
  469. # print(nums)
  470. ids = e_ids[(10*(page-1)):(page*10)]
  471. data = {'ids': ids, 'nums': nums}
  472. data = json.dumps(data)
  473. return HttpResponse(data)
  474. def post(self,request):
  475. pass
  476. # 气象站状态
  477. class QXZ_Status(ListView):
  478. def get(self,request):
  479. return render(request, 'backstageNet/qxzctrl/qxzData.html', context={})
  480. def post(self,request):
  481. e_id = request.POST.get("e_id")
  482. qxz_list = QXZstatus_New.objects.filter(equip_id=e_id)
  483. data = []
  484. for i in qxz_list:
  485. data.append({"interval":i.interval,"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),"e1":i.e1,"e2":i.e2,"e3":i.e3,
  486. "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})
  487. data = json.dumps(data)
  488. return HttpResponse(data)
  489. # 气象站状态测试
  490. class QXZ_Status2(ListView):
  491. def get(self,request):
  492. return render(request, 'backstageNet/qxzctrl/qxzData.html', context={})
  493. def post(self,request):
  494. e_id = request.POST.get("e_id")
  495. qxz_list = QXZstatus_New.objects.filter(equip_id=e_id)
  496. # data = []
  497. for i in qxz_list:
  498. 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}
  499. data = {"interval":i.interval,"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),"dat":dat}
  500. data = json.dumps(data)
  501. return HttpResponse(data)
  502. # 气象站控制
  503. class QXZcontrol(ListView):
  504. def get(self,request):
  505. return render(request, 'backstageNet/qxzctrl/qxzctrl.html', context={})
  506. def post(self,request):
  507. e_id = request.POST.get('e_id')
  508. try:
  509. switch_obj = QXZswitchstatus.objects.get(equip_id=e_id)
  510. qxz_switch = switch_obj.qxz_switch
  511. except:
  512. qxz_switch = ""
  513. try:
  514. switch_name_obj = QXZswitchdata.objects.get(equip_id=e_id)
  515. switch_name = switch_name_obj.qxz_switch_data
  516. except:
  517. switch_name = ""
  518. data = {'qxz_switch':qxz_switch, 'switch_name':switch_name}
  519. data = json.dumps(data)
  520. return HttpResponse(data)
  521. # 气象站数据
  522. class QXZchart(ListView):
  523. def get(self,request):
  524. return render(request, 'backstageNet/qxzctrl/qxzchart.html', context={})
  525. def post(self,request):
  526. qxz_dict_2 = copy.deepcopy(qxz_dict)
  527. equip_id = request.POST.get('id')
  528. print("equip_id:", equip_id)
  529. f_tbegin = request.POST.get('begin')
  530. f_tend = request.POST.get('end')
  531. print("f_tbegin:", f_tbegin)
  532. print("f_tend:", f_tend)
  533. current_equip = Equip.objects.get(equip_id=equip_id)
  534. dat = []
  535. if f_tbegin:
  536. begindate = re.findall(r"\d+\.?\d*", f_tbegin)
  537. enddate = re.findall(r"\d+\.?\d*", f_tend)
  538. start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2]))
  539. end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2]))
  540. print("start_date:", start_date)
  541. print("end_date:", end_date)
  542. sta1 = QXZdata.objects.filter(
  543. equip_id=equip_id, upl_time__range=(start_date, end_date)).values()
  544. for x in sta1:
  545. sta = {"upl_time": x["upl_time"].strftime('%Y-%m-%d %H:%M:%S'),"e_len": len((eval(x["qxz_data"])["data"])),
  546. "unit": [], "equip_id": x["equip_id_id"]}
  547. for i in eval(x["qxz_data"])["data"]:
  548. qxz_dict_2[i["eNum"]][0] = i["eValue"] # 将气象站字典列表里的索引值替换为 数据的eValue
  549. d = copy.deepcopy(qxz_dict_2[i["eNum"]]) # 此处有坑 如果不深拷贝 后一次 qxz_dict[i["eNum"]][0] = i["eValue"] 赋值会把上次赋值替换掉
  550. ek = i["eKey"]
  551. d.append(ek)
  552. d.append(i["eNum"])
  553. sta["unit"].append(d)
  554. # qxz_dict[eval(x.qxz_data)['data'][0]["eNum"]]
  555. # print(sta["unit"])
  556. dat.append(sta)
  557. # print(dat)
  558. data = {"e_name": current_equip.equip_name, "dat": dat}
  559. data = json.dumps(data)
  560. return HttpResponse(data)
  561. # 获取当前日期:
  562. now_time = datetime.datetime.now()
  563. print("当前日期为:",now_time)
  564. print("当前月为:",now_time.month)
  565. sta1 = QXZdata.objects.filter(equip_id=equip_id, upl_time__month=now_time.month).values()
  566. for x in sta1:
  567. sta = {"upl_time": x["upl_time"].strftime('%Y-%m-%d %H:%M:%S'),"e_len": len(eval(x["qxz_data"])["data"]),
  568. "unit": [], "equip_id": x["equip_id_id"]}
  569. for i in eval(x["qxz_data"])["data"]:
  570. qxz_dict_2[i["eNum"]][0] = i["eValue"]
  571. d = copy.deepcopy(qxz_dict_2[i["eNum"]]) # 此处有坑 如果不深拷贝 后一次 qxz_dict[i["eNum"]][0] = i["eValue"] 赋值会把上次赋值替换掉
  572. ek = i["eKey"]
  573. d.append(ek)
  574. d.append(i["eNum"])
  575. sta["unit"].append(d)
  576. # qxz_dict[eval(x.qxz_data)['data'][0]["eNum"]]
  577. dat.append(sta)
  578. # print(dat)
  579. data = {"e_name": current_equip.equip_name, "dat": dat}
  580. # print("------",data)
  581. data = json.dumps(data)
  582. return HttpResponse(data)
  583. # 气象站列表详情
  584. class QXZ_Report_Detail(ListView):
  585. def get(self, request):
  586. qxz_dict_3 = copy.deepcopy(qxz_dict)
  587. page = int(request.GET.get('page'))
  588. print("page:", page)
  589. equip_id = request.GET.get('id')
  590. print("equip_id:", equip_id)
  591. f_tbegin = request.GET.get('begin')
  592. f_tend = request.GET.get('end')
  593. print("f_tbegin:", f_tbegin)
  594. print("f_tend:", f_tend)
  595. current_equip = Equip.objects.get(equip_id=equip_id)
  596. dat = []
  597. if f_tbegin:
  598. begindate = re.findall(r"\d+\.?\d*", f_tbegin)
  599. enddate = re.findall(r"\d+\.?\d*", f_tend)
  600. start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2]))
  601. end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2]))
  602. print("start_date:", start_date)
  603. print("end_date:", end_date)
  604. sta1 = QXZdata.objects.filter(
  605. equip_id=equip_id, upl_time__range=(start_date, end_date)).values()
  606. for x in sta1:
  607. sta = {"upl_time": x["upl_time"].strftime('%Y-%m-%d %H:%M:%S'), "unit": [], "equip_id": x["equip_id_id"]}
  608. for i in eval(x["qxz_data"])["data"]:
  609. qxz_dict_3[i["eNum"]][0] = i["eValue"]
  610. d = copy.deepcopy(qxz_dict_3[i["eNum"]]) # 此处有坑 如果不深拷贝 后一次 qxz_dict[i["eNum"]][0] = i["eValue"] 赋值会把上次赋值替换掉
  611. ek = i["eKey"]
  612. d.append(ek)
  613. sta["unit"].append(d)
  614. # qxz_dict[eval(x.qxz_data)['data'][0]["eNum"]]
  615. dat.append(sta)
  616. nums = len(dat)
  617. dat = dat[(10*(page-1)):(page*10)]
  618. data = {"dat": dat, "nums":nums}
  619. data = json.dumps(data)
  620. return HttpResponse(data)
  621. sta1 = QXZdata.objects.filter(equip_id=equip_id).values()
  622. for x in sta1:
  623. sta = {"upl_time": x["upl_time"].strftime('%Y-%m-%d %H:%M:%S'), "unit": [], "equip_id": x["equip_id_id"]}
  624. for i in eval(x["qxz_data"])["data"]:
  625. qxz_dict_3[i["eNum"]][0] = i["eValue"]
  626. d = copy.deepcopy(qxz_dict_3[i["eNum"]]) # 此处有坑 如果不深拷贝 后一次 qxz_dict[i["eNum"]][0] = i["eValue"] 赋值会把上次赋值替换掉
  627. ek = i["eKey"]
  628. d.append(ek)
  629. sta["unit"].append(d)
  630. dat.append(sta)
  631. nums = len(dat)
  632. dat = dat[(10*(page-1)):(page*10)]
  633. data = {"dat": dat, "nums":nums}
  634. data = json.dumps(data)
  635. return HttpResponse(data)
  636. class QXZ_Report_Detail2(ListView):
  637. def get(self, request):
  638. pass
  639. def post(self,request):
  640. e_id = request.POST.get("e_id")
  641. page = int(request.POST.get("page"))
  642. qxz_list = QXZdata_New.objects.filter(equip_id=e_id)
  643. f_tbegin = request.POST.get('begin')
  644. f_tend = request.POST.get('end')
  645. if f_tbegin:
  646. print("f_tbegin:", f_tbegin)
  647. print("f_tend:", f_tend)
  648. begindate = re.findall(r"\d+\.?\d*", f_tbegin)
  649. enddate = re.findall(r"\d+\.?\d*", f_tend)
  650. start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2]))
  651. end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2]))
  652. print("start_date:", start_date)
  653. print("end_date:", end_date)
  654. qxz_list = QXZdata_New.objects.filter(equip_id=e_id, upl_time__range=(start_date, end_date))
  655. data = []
  656. for i in qxz_list:
  657. 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}
  658. data.append({"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),"dat":dat})
  659. nums = len(data)
  660. data = data[(10*(page-1)):(page*10)]
  661. datas = {"data":data,"nums":nums}
  662. datas = json.dumps(datas)
  663. return HttpResponse(datas)
  664. # 气象站开关名字
  665. class QXZ_Switch_Name(ListView):
  666. def get(self,request):
  667. pass
  668. def post(self,request):
  669. imei = request.POST.get('imei')
  670. way = request.POST.get('way')
  671. sw_name = request.POST.get('sw_name')
  672. try:
  673. switch_obj = QXZswitchdata.objects.get(equip_id=imei)
  674. except:
  675. return HttpResponse("1")
  676. sw_name_list = eval(switch_obj.qxz_switch_data)
  677. for i in sw_name_list:
  678. if i["JK"] == int(way):
  679. i["name"] = sw_name
  680. print(sw_name_list)
  681. try:
  682. switch_obj.qxz_switch_data = sw_name_list
  683. switch_obj.save()
  684. except:
  685. return HttpResponse("1")
  686. data = "0"
  687. return HttpResponse(data)
  688. # 气象站通信接口
  689. class QXZ_Mqtt(ListView):
  690. def get(self,request):
  691. pass
  692. def post(self,request):
  693. req = request.POST.get('req')
  694. imei = request.POST.get('imei')
  695. topic = "/yfkj/qxz/sub/"+imei
  696. if req == "read":
  697. payload = {"ext":{"type":"status"},"cmd":"read"}
  698. elif req == "set":
  699. way = int(request.POST.get('way'))
  700. switch = int(request.POST.get('switch'))
  701. payload = {"cmd":"control","ext":{"JK":way,"status":switch}}
  702. elif req == "conf":
  703. payload = {"ext":{"type":"jkStatus"},"cmd":"read"}
  704. elif req == "interval":
  705. time = int(request.POST.get('time'))
  706. payload = {"cmd": "config","ext": {"interval": time}}
  707. cmd = {"topic":topic,"payload":json.dumps(payload),'qos':0}
  708. res = requests.post("http://www.yfzhwlw.com:8080/api/v2/mqtt/publish",
  709. data=json.dumps(cmd), auth=HTTPBasicAuth("admin", "yfkj_6019"))
  710. print("res.status_code:", type(res.status_code))
  711. if res.status_code == 200:
  712. data = "0"
  713. return HttpResponse(data)
  714. else:
  715. data = "1"
  716. return HttpResponse(data)
  717. # 新闻审核
  718. class News_Check(ListView):
  719. def get(self,request):
  720. return render(request, 'backstageNet/infoManage/newsManage.html', context={'role':'superuser'})
  721. def post(self,request):
  722. news_id = request.POST.get('id')
  723. news_see_id = request.POST.get("ids")
  724. # 通过后删除
  725. if news_id:
  726. try:
  727. news_sta = CKArticle.objects.get(id=news_id)
  728. news_sta.delete()
  729. return HttpResponse("1")
  730. except:
  731. return HttpResponse("0")
  732. # 通过查看详情
  733. art_list = CKArticle.objects.filter(id=news_see_id)
  734. dat = []
  735. for i in art_list:
  736. dat.append({
  737. "title":i.title,
  738. "intro":i.intro,
  739. "time": i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),
  740. "img": "%s"%i.head_img,
  741. "writer":i.writer,
  742. "author":i.author.username,
  743. "content":i.content,
  744. "art_type":i.art_type,
  745. })
  746. data = json.dumps(dat)
  747. return HttpResponse(data)
  748. # 新闻审核页面
  749. class News_Check_List(ListView):
  750. def get(self,request):
  751. hidden = request.GET.get('hidden')
  752. page = int(request.GET.get('page'))
  753. art_list = CKArticle.objects.filter(art_type=5,hidden=hidden)
  754. nums = art_list.count()
  755. print(nums)
  756. art = art_list[(10*(page-1)):(page*10)]
  757. return render(request, 'backstageNet/infoManage/newsManageList.html', context={"art":art,"nums":nums})
  758. def post(self,request):
  759. art_id = request.POST.get('id')
  760. req = request.POST.get('req')
  761. art_obj = CKArticle.objects.filter(id=art_id)
  762. # 编辑
  763. if req == "edit":
  764. data = []
  765. for i in art_obj:
  766. data.append({
  767. "id":i.id,
  768. "title":i.title,
  769. "intro":i.intro,
  770. "head_img":i.head_img.name,
  771. "content":i.content,
  772. "art_type":i.art_type,
  773. "writer":i.writer,
  774. "upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),
  775. "author":i.author.username
  776. })
  777. # 未审核删除
  778. elif req == "del":
  779. art_obj.delete()
  780. data = "1"
  781. # 通过审核
  782. elif req == "check":
  783. art_obj = CKArticle.objects.get(id=art_id)
  784. art_obj.hidden = True
  785. art_obj.save()
  786. data = "1"
  787. data = json.dumps(data)
  788. return HttpResponse(data)
  789. # 新闻审核上传图片接口
  790. class News_Photo(ListView):
  791. def get(self,request):
  792. pass
  793. def post(self,request):
  794. # e_id = request.POST.get('id')
  795. # news_sta = Article.objects.get(id=e_id)
  796. news_photo = request.FILES.get('upicture')
  797. if news_photo:
  798. print("新闻图片:", news_photo)
  799. news_photo_dir = 'hnews_photo/'
  800. end_name = news_photo.name.split('.')[-1]
  801. # 判断如果路径不存在,即创建路径
  802. if os.path.exists(news_photo_dir) == False:
  803. os.makedirs(news_photo_dir)
  804. img = Image.open(news_photo)
  805. # img = img.convert('RGB')
  806. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  807. pic_name = now_time + '.' + end_name
  808. print("pic_name:", pic_name)
  809. img.save(news_photo_dir + pic_name)
  810. news_photo = news_photo_dir + pic_name
  811. print("new_photo:",news_photo)
  812. data = {"code": 0,"msg": "","data": {"src": news_photo}}
  813. else:
  814. new_photo = "0"
  815. data = {"code": 404,"msg": "","data": {"src": news_photo}}
  816. data = json.dumps(data)
  817. return HttpResponse(data)
  818. # 新闻发布
  819. class News_Pub(ListView):
  820. def get(self,request):
  821. return render(request, 'backstageNet/info/newsPub.html', context={'role':'superuser'})
  822. def post(self,request):
  823. username = request.user.username
  824. print('username:',username)
  825. current_user = MyUser.objects.get(username=username)
  826. news_photo = request.POST.get('upload')
  827. art_type = request.POST.get('type')
  828. writer = request.POST.get('writer')
  829. intro = request.POST.get('intro')
  830. title = request.POST.get('title')
  831. content = request.POST.get('content')
  832. news_id = request.POST.get("id")
  833. if news_id:
  834. if CKArticle.objects.filter(id=news_id).exists():
  835. CKArticle.objects.filter(id=news_id).update(
  836. art_type=art_type,
  837. writer = writer,
  838. intro = intro,
  839. title = title,
  840. content = content,
  841. head_img = news_photo
  842. )
  843. data= "1"
  844. else:
  845. data = "0"
  846. else:
  847. try:
  848. CKArticle.objects.create(author=current_user,art_type=art_type,writer=writer,intro=intro,title=title,content=content,head_img=news_photo)
  849. data = "1"
  850. except Exception as e:
  851. print(e)
  852. data = "0"
  853. return HttpResponse(data)
  854. # 视频发布
  855. class Video_Pub(ListView):
  856. def get(self,request):
  857. return render(request, 'backstageNet/info/videoPub.html', context={})
  858. def post(self,request):
  859. # 视频标题
  860. title = request.POST.get('title')
  861. # 视频简介
  862. intro = request.POST.get('intro')
  863. # 视频链接
  864. video = request.POST.get('video_url')
  865. username = request.user.username
  866. print('username:',username)
  867. current_user = MyUser.objects.get(username=username)
  868. video_img = request.POST.get('video_img')
  869. video_id =request.POST.get('id')
  870. if video_id:
  871. if Video_data.objects.filter(id=video_id).exists():
  872. Video_data.objects.filter(id=video_id).update(
  873. title=title,
  874. intro=intro,
  875. video_url=video,
  876. author=current_user,
  877. video_img=video_img,
  878. )
  879. data = '1'
  880. else:
  881. data = '0'
  882. else:
  883. try:
  884. Video_data.objects.create(title=title,intro=intro,video_url=video,author=current_user,video_img=video_img)
  885. data = "1"
  886. except Exception as e:
  887. print("-------错误信息为----------")
  888. print(e)
  889. data = "0"
  890. # else:
  891. # data = "0"
  892. return HttpResponse(data)
  893. # 视频封面上传图片接口
  894. class Video_Photo(ListView):
  895. def get(self,request):
  896. pass
  897. def post(self,request):
  898. # e_id = request.POST.get('id')
  899. # news_sta = Article.objects.get(id=e_id)
  900. video_photo = request.FILES.get('video_img')
  901. if video_photo:
  902. print("视频图片:", video_photo)
  903. video_photo_dir = 'hvideo_photo/'
  904. end_name = video_photo.name.split('.')[-1]
  905. # 判断如果路径不存在,即创建路径
  906. if os.path.exists(video_photo_dir) == False:
  907. os.makedirs(video_photo_dir)
  908. img = Image.open(video_photo)
  909. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  910. pic_name = now_time + '.' + end_name
  911. print("pic_name:", pic_name)
  912. img.save(video_photo_dir + pic_name)
  913. video_photo = video_photo_dir + pic_name
  914. print("new_photo:",video_photo)
  915. data = {"code": 0,"msg": "","data": {"src": video_photo}}
  916. else:
  917. video_photo = "0"
  918. data = {"code": 404,"msg": "","data": {"src": video_photo}}
  919. data = json.dumps(data)
  920. return HttpResponse(data)
  921. # 视频上传接口
  922. class Video_Upload(ListView):
  923. def get(self,request):
  924. pass
  925. def post(self,request):
  926. obj = request.FILES.get('upload')
  927. f = os.path.join('hvideos',obj.name).replace('\\','/')
  928. print(f)
  929. if not obj:
  930. return HttpResponse("0")
  931. dest=open(f,"wb")
  932. try:
  933. for chunk in obj.chunks():
  934. dest.write(chunk)
  935. finally:
  936. dest.close()
  937. video_dir = "hvideos/" + obj.name
  938. data = {"code": 0,"msg": "","data": {"src":video_dir}}
  939. data = json.dumps(data)
  940. return HttpResponse(data)
  941. # 产品发布
  942. class Equip_Pub(ListView):
  943. def get(self,request):
  944. return render(request, 'backstageNet/info/productPub.html', context={})
  945. def post(self,request):
  946. # 产品标题
  947. title = request.POST.get('title')
  948. # 产品简介
  949. intro = request.POST.get('intro')
  950. # 产品内容
  951. content = request.POST.get('content')
  952. # 产品图片
  953. head_img = request.POST.get('img_url')
  954. mobile = request.POST.get('mobile')
  955. username = request.user.username
  956. print('username:',username)
  957. current_user = MyUser.objects.get(username=username)
  958. equip_id = request.POST.get("id")
  959. if equip_id:
  960. if Product.objects.filter(id=equip_id).exists():
  961. try:
  962. Product.objects.filter(id=equip_id).update(
  963. title=title,
  964. intro=intro,
  965. content=content,
  966. author=current_user,
  967. head_img=head_img,
  968. mobile=mobile
  969. )
  970. data = "1"
  971. except Exception as e:
  972. print("-----------错误信息为-------------")
  973. print(e)
  974. data = "0"
  975. else:
  976. data = "0"
  977. else:
  978. if head_img:
  979. try:
  980. Product.objects.create(title=title,intro=intro,content=content,author=current_user,head_img=head_img,mobile=mobile)
  981. data = "1"
  982. except Exception as e:
  983. print("-----------错误信息为-------------")
  984. print(e)
  985. data = "0"
  986. else:
  987. data = "0"
  988. return HttpResponse(data)
  989. # 产品封面上传图片接口
  990. class Equip_Photo(ListView):
  991. def get(self,request):
  992. pass
  993. def post(self,request):
  994. pro_photo = request.FILES.get('pro_img')
  995. if pro_photo:
  996. print("视频图片:", pro_photo)
  997. pro_photo_dir = 'product_photo/'
  998. # 判断如果路径不存在,即创建路径
  999. end_name = pro_photo.name.split('.')[-1]
  1000. if os.path.exists(pro_photo_dir) == False:
  1001. os.makedirs(pro_photo_dir)
  1002. img = Image.open(pro_photo)
  1003. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  1004. pic_name = now_time + '.' + end_name
  1005. print("pic_name:", pic_name)
  1006. img.save(pro_photo_dir + pic_name)
  1007. pro_photo = pro_photo_dir + pic_name
  1008. print("pro_photo:",pro_photo)
  1009. data = {"code": 0,"msg": "","data": {"src": pro_photo}}
  1010. else:
  1011. pro_photo = "0"
  1012. data = {"code": 404,"msg": "","data": {"src": pro_photo}}
  1013. data = json.dumps(data)
  1014. return HttpResponse(data)
  1015. # 采摘农场选择
  1016. class Farm_Choice(ListView):
  1017. def get(self,request):
  1018. pass
  1019. def post(self,request):
  1020. username = request.user.username
  1021. print('username:',username)
  1022. current_user = MyUser.objects.get(username=username)
  1023. if current_user.is_staff == True:
  1024. farmlist = FarmList.objects.all()
  1025. else:
  1026. farmlist = FarmList.objects.filter(user=current_user)
  1027. dat = []
  1028. for i in farmlist:
  1029. dat.append({"name":i.name})
  1030. dat = json.dumps(dat)
  1031. return HttpResponse(dat)
  1032. # 四季采摘图片上传
  1033. class Pick_Photo(ListView):
  1034. def get(self,request):
  1035. pass
  1036. def post(self,request):
  1037. gar_photo = request.FILES.get('gar_img')
  1038. if gar_photo:
  1039. print("视频图片:", gar_photo)
  1040. garden_photo_dir = 'garden_photo/'
  1041. end_name = gar_photo.name.split('.')[-1]
  1042. # 判断如果路径不存在,即创建路径
  1043. if os.path.exists(garden_photo_dir) == False:
  1044. os.makedirs(garden_photo_dir)
  1045. img = Image.open(gar_photo)
  1046. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  1047. pic_name = now_time + '.' + end_name
  1048. print("pic_name:", pic_name)
  1049. img.save(garden_photo_dir + pic_name)
  1050. gar_photo = garden_photo_dir + pic_name
  1051. print("gar_photo:",gar_photo)
  1052. data = {"code": 0,"msg": "","data": {"src": gar_photo}}
  1053. else:
  1054. pro_photo = "0"
  1055. data = {"code": 404,"msg": "","data": {"src": gar_photo}}
  1056. data = json.dumps(data)
  1057. return HttpResponse(data)
  1058. # 四季采摘发布
  1059. class Garden_Pub(ListView):
  1060. def get(self,request):
  1061. return render(request, 'backstageNet/info/gardenPub.html', context={})
  1062. def post(self,request):
  1063. farm = request.POST.get('farm')
  1064. name = request.POST.get('name')
  1065. time = request.POST.get('time')
  1066. pick_s = request.POST.get('start')
  1067. pick_e = request.POST.get('end')
  1068. ripe_time = request.POST.get('ripe')
  1069. # 规模
  1070. scale = request.POST.get('scale')
  1071. addr = request.POST.get('addr')
  1072. company = request.POST.get('company')
  1073. pick_img = request.POST.get('img_url')
  1074. content = request.POST.get('content')
  1075. garden_id = request.POST.get('id')
  1076. print("garden_id:",garden_id)
  1077. # begindate = re.findall(r"\d+\.?\d*", pick_s)
  1078. # enddate = re.findall(r"\d+\.?\d*", pick_e)
  1079. # start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2]))
  1080. # end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2]))
  1081. # 编辑更新
  1082. if garden_id:
  1083. if Pick_Pub.objects.filter(id=garden_id).exists():
  1084. farm_obj = FarmList.objects.get(name=farm)
  1085. Pick_Pub.objects.filter(id=garden_id).update(pick_s=pick_s,pick_e=pick_e,ripe_time=ripe_time,content=content,
  1086. scale=scale,addr=addr,farm=farm_obj,name=name,company=company,pick_img=pick_img,upl_time=time)
  1087. data = "1"
  1088. else:
  1089. data = "0"
  1090. return HttpResponse(data)
  1091. else:
  1092. try:
  1093. farm_obj = FarmList.objects.get(name=farm)
  1094. Pick_Pub.objects.create(pick_s=pick_s,pick_e=pick_e,ripe_time=ripe_time,content=content,
  1095. scale=scale,addr=addr,farm=farm_obj,name=name,company=company,pick_img=pick_img,upl_time=time)
  1096. data = "1"
  1097. print(data)
  1098. except Exception as e:
  1099. print("-----------报错信息为-------------")
  1100. print(e)
  1101. data = "0"
  1102. return HttpResponse(data)
  1103. # 民宿封面
  1104. class Dorm_Img(ListView):
  1105. def get(self,request):
  1106. pass
  1107. def post(self,request):
  1108. hotel_photo = request.FILES.get('hotel_photo')
  1109. if hotel_photo:
  1110. print("视频图片:", hotel_photo)
  1111. hotel_photo_dir = 'hotel_photo/'
  1112. end_name = hotel_photo.name.split('.')[-1]
  1113. # 判断如果路径不存在,即创建路径
  1114. if os.path.exists(hotel_photo_dir) == False:
  1115. os.makedirs(hotel_photo_dir)
  1116. img = Image.open(hotel_photo)
  1117. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  1118. pic_name = now_time + '.' + end_name
  1119. print("pic_name:", pic_name)
  1120. img.save(hotel_photo_dir + pic_name)
  1121. hotel_photo = hotel_photo_dir + pic_name
  1122. print("hotel_photo:",hotel_photo)
  1123. data = {"code": 0,"msg": "","data": {"src": hotel_photo}}
  1124. else:
  1125. hotel_photo = "0"
  1126. data = {"code": 404,"msg": "","data": {"src": hotel_photo}}
  1127. data = json.dumps(data)
  1128. return HttpResponse(data)
  1129. # 民宿介绍图
  1130. class Dorm_Photo(ListView):
  1131. def get(self,request):
  1132. pass
  1133. def post(self,request):
  1134. hotel_photos = request.FILES.get('hotel_photos')
  1135. if hotel_photos:
  1136. print("视频图片:", hotel_photos)
  1137. hotel_photo_dir = 'hotel_photos/'
  1138. end_name = hotel_photos.name.split('.')[-1]
  1139. # 判断如果路径不存在,即创建路径
  1140. if os.path.exists(hotel_photo_dir) == False:
  1141. os.makedirs(hotel_photo_dir)
  1142. img = Image.open(hotel_photos)
  1143. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  1144. pic_name = now_time + '.' + end_name
  1145. print("pic_name:", pic_name)
  1146. img.save(hotel_photo_dir + pic_name)
  1147. hotel_photos = hotel_photo_dir + pic_name
  1148. print("hotel_photos:",hotel_photos)
  1149. data = {"code": 0,"msg": "","data": {"src": hotel_photos}}
  1150. else:
  1151. hotel_photos = "0"
  1152. data = {"code": 404,"msg": "","data": {"src": hotel_photos}}
  1153. data = json.dumps(data)
  1154. return HttpResponse(data)
  1155. # 民宿发布
  1156. class Dorm_Pub(ListView):
  1157. def get(self,request):
  1158. return render(request, 'backstageNet/info/dormPub.html', context={})
  1159. def post(self,request):
  1160. username = request.user.username
  1161. print('username:',username)
  1162. current_user = MyUser.objects.get(username=username)
  1163. name = request.POST.get('name')
  1164. price = request.POST.get('price')
  1165. person = request.POST.get('person')
  1166. mobile = request.POST.get('mobile')
  1167. img_url = request.POST.get('img_url')
  1168. addr = request.POST.get('addr')
  1169. location = request.POST.get('location')
  1170. intro = request.POST.get('intro')
  1171. content = request.POST.get('content')
  1172. pic_list = request.POST.get('pic_list')
  1173. Hotel_id= request.POST.get("id")
  1174. if Hotel_id:
  1175. if Hotel_Info.objects.filter(id=Hotel_id).exists():
  1176. try:
  1177. Hotel_Info.objects.filter(id=Hotel_id).update(
  1178. name=name,
  1179. price=price,
  1180. intro=intro,
  1181. addr=addr,
  1182. location=location,
  1183. person=person,
  1184. hotel_img=img_url,
  1185. hotel_tel=mobile,
  1186. content=content,
  1187. author=current_user,
  1188. )
  1189. data="1"
  1190. except Exception as e:
  1191. print("-----------报错信息为-------------")
  1192. print(e)
  1193. data = "0"
  1194. if data == "1":
  1195. try:
  1196. hotel_obj = Hotel_Info.objects.get(name=name)
  1197. pic_list = pic_list.split(',')
  1198. for i in pic_list:
  1199. Hotel_Photo.objects.filter(hotel=hotel_obj).update(hotel=hotel_obj,addr=i)
  1200. except Exception as aa:
  1201. print("滚动图保存错误")
  1202. print(aa)
  1203. else:
  1204. data = "0"
  1205. return HttpResponse(data)
  1206. else:
  1207. try:
  1208. Hotel_Info.objects.create(
  1209. name=name,
  1210. price=price,
  1211. intro=intro,
  1212. addr=addr,
  1213. location=location,
  1214. person=person,
  1215. hotel_img=img_url,
  1216. hotel_tel=mobile,
  1217. content=content,
  1218. author=current_user)
  1219. data = "1"
  1220. except Exception as e:
  1221. print("-----------报错信息为-------------")
  1222. print(e)
  1223. data = "0"
  1224. if data == "1":
  1225. try:
  1226. hotel_obj = Hotel_Info.objects.get(name=name)
  1227. pic_list = pic_list.split(',')
  1228. for i in pic_list:
  1229. Hotel_Photo.objects.create(hotel=hotel_obj,addr=i)
  1230. except Exception as aa:
  1231. print("滚动图保存错误")
  1232. print(aa)
  1233. return HttpResponse(data)
  1234. # 旅游发布介绍图
  1235. class Sightsee_Photo(ListView):
  1236. def get(self,request):
  1237. pass
  1238. def post(self,request):
  1239. sightsee_photos = request.FILES.get('sightsee_photos')
  1240. if sightsee_photos:
  1241. print("视频图片:", sightsee_photos)
  1242. sightsee_photos_dir = 'sightsee_photos/'
  1243. end_name = sightsee_photos.name.split('.')[-1]
  1244. # 判断如果路径不存在,即创建路径
  1245. if os.path.exists(sightsee_photos_dir) == False:
  1246. os.makedirs(sightsee_photos_dir)
  1247. img = Image.open(sightsee_photos)
  1248. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  1249. pic_name = now_time + '.' + end_name
  1250. print("pic_name:", pic_name)
  1251. img.save(sightsee_photos_dir + pic_name)
  1252. sightsee_photos = sightsee_photos_dir + pic_name
  1253. print("sightsee_photos:",sightsee_photos)
  1254. data = {"code": 0,"msg": "","data": {"src": sightsee_photos}}
  1255. else:
  1256. sightsee_photos = "0"
  1257. data = {"code": 404,"msg": "","data": {"src": sightsee_photos}}
  1258. data = json.dumps(data)
  1259. return HttpResponse(data)
  1260. # 旅游发布
  1261. class Sightsee_Pub(ListView):
  1262. def get(self,request):
  1263. return render(request, 'backstageNet/info/SightseePub.html', context={})
  1264. def post(self,request):
  1265. name = request.POST.get('name')
  1266. price = request.POST.get('price')
  1267. sightsee_tel = request.POST.get('mobile')
  1268. sightsee_img = request.POST.get('img_url')
  1269. sightsee_stime = request.POST.get('stime')
  1270. sightsee_etime = request.POST.get('etime')
  1271. # begindate = re.findall(r"\d+\.?\d*", sightsee_stime)
  1272. # enddate = re.findall(r"\d+\.?\d*", sightsee_etime)
  1273. # start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2]))
  1274. # end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2]))
  1275. # 位置
  1276. location = request.POST.get('location')
  1277. addr = request.POST.get('addr')
  1278. # 内容
  1279. content = request.POST.get('content')
  1280. # 简介
  1281. desc = request.POST.get('desc')
  1282. guide_img = request.POST.get('guide_img')
  1283. s_id = request.POST.get('id')
  1284. if s_id:
  1285. sight_obj = Sightsee_Info.objects.get(id=s_id)
  1286. sight_obj.name=name
  1287. sight_obj.price=price
  1288. sight_obj.location=location
  1289. sight_obj.sightsee_stime=sightsee_stime
  1290. sight_obj.sightsee_etime=sightsee_etime
  1291. sight_obj.sightsee_img=sightsee_img
  1292. sight_obj.sightsee_tel=sightsee_tel
  1293. sight_obj.addr=addr
  1294. sight_obj.guide_img=guide_img
  1295. sight_obj.content=content
  1296. sight_obj.desc=desc
  1297. sight_obj.save()
  1298. data = "1"
  1299. return HttpResponse(data)
  1300. try:
  1301. Sightsee_Info.objects.create(
  1302. name=name,
  1303. price=price,
  1304. location=location,
  1305. sightsee_stime=sightsee_stime,
  1306. sightsee_etime=sightsee_etime,
  1307. sightsee_img=sightsee_img,
  1308. sightsee_tel=sightsee_tel,
  1309. addr=addr,
  1310. guide_img=guide_img,
  1311. content=content,
  1312. desc=desc)
  1313. data = "1"
  1314. except:
  1315. data = "0"
  1316. return HttpResponse(data)
  1317. #我的发布
  1318. class My_Pub(ListView):
  1319. def get(self,request):
  1320. return render(request, 'backstageNet/infoList/myPub.html', context={})
  1321. def post(self,request):
  1322. pass
  1323. #我的发布列表
  1324. class My_Pub_List(ListView):
  1325. def get(self,request):
  1326. page = int(request.GET.get("page",1))
  1327. hidden = request.GET.get("hidden")
  1328. _type = request.GET.get("type")
  1329. print("----->",_type)
  1330. _list = CKArticle.objects.all()
  1331. if _type:
  1332. _list = _list.filter(art_type=_type)
  1333. if _type == "5":
  1334. pub_list = CKArticle.objects.filter(art_type="5")
  1335. elif _type == "6":
  1336. pub_list = Video_data.objects.all()
  1337. elif _type == "7":
  1338. pub_list = Product.objects.all()
  1339. elif _type == "8":
  1340. pub_list = Pick_Pub.objects.all()
  1341. elif _type == "9":
  1342. pub_list = Hotel_Info.objects.all()
  1343. elif _type == "10":
  1344. pub_list = Sightsee_Info.objects.all()
  1345. if hidden:
  1346. _list = _list.filter(hidden=hidden)
  1347. pub_list = pub_list.filter(hidden=hidden)
  1348. nums = pub_list.count()
  1349. print("nums",nums)
  1350. # nums = _list.count()
  1351. pub_list = pub_list[(10*(page-1)):(page*10)]
  1352. art_list = _list[(10*(page-1)):(page*10)]
  1353. return render(request, 'backstageNet/infoList/myPubList.html', context={"pub_list":pub_list,"art_list":art_list,"nums":nums,"type":_type})
  1354. def post(self,request):
  1355. pass
  1356. # 视频审核
  1357. class Video_Check(ListView):
  1358. def get(self,request):
  1359. return render(request, 'backstageNet/infoManage/videoManage.html', context={'role':'superuser'})
  1360. def post(self,request):
  1361. video_id = request.POST.get('id')
  1362. video_see_id = request.POST.get("ids")
  1363. # 审核通过后删除
  1364. if video_id:
  1365. try:
  1366. video_sta = Video_data.objects.get(id=video_id)
  1367. video_sta.delete()
  1368. return HttpResponse("1")
  1369. except:
  1370. return HttpResponse("0")
  1371. # 审核通过查看详情
  1372. art_list = Video_data.objects.filter(id=video_see_id)
  1373. dat = []
  1374. for i in art_list:
  1375. dat.append({
  1376. "title":i.title,
  1377. "intro":i.intro,
  1378. "video_url": i.video_url.name,
  1379. "time": i.publish_date.strftime('%Y-%m-%d %H:%M:%S'),
  1380. "video_img": "%s"%i.video_img.name,
  1381. "author":i.author.username
  1382. })
  1383. data = json.dumps(dat,ensure_ascii=False)
  1384. return HttpResponse(data)
  1385. # 视频审核页面
  1386. class Video_Check_List(ListView):
  1387. def get(self,request):
  1388. hidden = request.GET.get('hidden')
  1389. page = int(request.GET.get('page'))
  1390. art_list = Video_data.objects.filter(hidden=hidden)
  1391. nums = art_list.count()
  1392. art = art_list[(10*(page-1)):(page*10)]
  1393. return render(request, 'backstageNet/infoManage/videoManageList.html', context={"art":art,"nums":nums})
  1394. def post(self,request):
  1395. art_id = request.POST.get('id')
  1396. req = request.POST.get('req')
  1397. art_obj = Video_data.objects.filter(id=art_id)
  1398. # 编辑
  1399. data = []
  1400. if req == "edit":
  1401. for i in art_obj:
  1402. data.append({
  1403. "id":i.id,
  1404. "title":i.title,
  1405. "intro":i.intro,
  1406. "video_img":i.video_img.name,
  1407. "video_url":i.video_url.name,
  1408. "author":i.author.username,
  1409. "time":i.publish_date.strftime('%Y-%m-%d %H:%M:%S'),
  1410. })
  1411. #删除
  1412. elif req == "del":
  1413. i = Video_data.objects.get(id=art_id)
  1414. ckobj = CKArticle.objects.get(title=i.title)
  1415. ckobj.delete()
  1416. art_obj.delete()
  1417. data = "1"
  1418. #保存
  1419. elif req == "check":
  1420. art_obj = Video_data.objects.get(id=art_id)
  1421. ckobj = CKArticle.objects.get(title=art_obj.title)
  1422. ckobj.hidden = True
  1423. ckobj.save()
  1424. art_obj.hidden = True
  1425. art_obj.save()
  1426. data = "1"
  1427. data = json.dumps(data)
  1428. return HttpResponse(data)
  1429. # 产品审核
  1430. class Equip_Check(ListView):
  1431. def get(self,request):
  1432. return render(request, 'backstageNet/infoManage/productManage.html', context={'role':'superuser'})
  1433. def post(self,request):
  1434. delete = request.POST.get('id')
  1435. product_see_id = request.POST.get("ids")
  1436. # 审核通过后删除
  1437. if delete:
  1438. try:
  1439. video_sta = Product.objects.get(id=delete)
  1440. video_sta.delete()
  1441. return HttpResponse("1")
  1442. except:
  1443. return HttpResponse("0")
  1444. # 审核通过查看详情
  1445. art_list = Product.objects.filter(id=product_see_id)
  1446. dat = []
  1447. for i in art_list:
  1448. dat.append({
  1449. "title":i.title,
  1450. "intro":i.intro,
  1451. "content": i.content,
  1452. "time": i.publish_date.strftime('%Y-%m-%d %H:%M:%S'),
  1453. "head_img": "%s"%i.head_img,
  1454. "mobile":i.mobile,
  1455. "author":i.author.username
  1456. })
  1457. data = json.dumps(dat)
  1458. return HttpResponse(data)
  1459. # 产品审核页面
  1460. class Equip_Check_List(ListView):
  1461. def get(self,request):
  1462. hidden = request.GET.get('hidden')
  1463. page = int(request.GET.get('page'))
  1464. art_list = Product.objects.filter(hidden=hidden)
  1465. nums = art_list.count()
  1466. art = art_list[(10*(page-1)):(page*10)]
  1467. return render(request, 'backstageNet/infoManage/productManageList.html', context={"art":art,"nums":nums})
  1468. def post(self,request):
  1469. art_id = request.POST.get('id')
  1470. req = request.POST.get('req')
  1471. art_obj = Product.objects.filter(id=art_id)
  1472. # 编辑
  1473. if req == "edit":
  1474. data = []
  1475. for i in art_obj:
  1476. data.append({
  1477. "id":i.id,
  1478. "title":i.title,
  1479. "intro":i.intro,
  1480. "head_img":i.head_img,
  1481. "content":i.content,
  1482. "mobile":i.mobile,
  1483. "author":i.author.username,
  1484. "time": i.publish_date.strftime('%Y-%m-%d %H:%M:%S'),
  1485. })
  1486. #删除
  1487. elif req == "del":
  1488. i = Product.objects.get(id=art_id)
  1489. ckobj = CKArticle.objects.get(title=i.title)
  1490. ckobj.delete()
  1491. art_obj.delete()
  1492. data = "1"
  1493. #审核通过
  1494. elif req == "check":
  1495. art_obj = Product.objects.get(id=art_id)
  1496. ckobj = CKArticle.objects.get(title=art_obj.title)
  1497. ckobj.hidden = True
  1498. ckobj.save()
  1499. art_obj.hidden = True
  1500. art_obj.save()
  1501. data = "1"
  1502. data = json.dumps(data)
  1503. return HttpResponse(data)
  1504. # 四季采摘审核
  1505. class Garden_Check(ListView):
  1506. def get(self,request):
  1507. return render(request, 'backstageNet/infoManage/pickManage.html', context={'role':'superuser'})
  1508. def post(self,request):
  1509. delete = request.POST.get('id')
  1510. garden_see_id = request.POST.get("ids")
  1511. if delete:
  1512. try:
  1513. garden_sta = Pick_Pub.objects.get(id=delete)
  1514. garden_sta.delete()
  1515. return HttpResponse("1")
  1516. except:
  1517. return HttpResponse("0")
  1518. art_list = Pick_Pub.objects.filter(id=garden_see_id)
  1519. dat = []
  1520. # 查看详情
  1521. for i in art_list:
  1522. dat.append({
  1523. "name":i.name,
  1524. "company":i.company,
  1525. "time": i.upl_time,
  1526. "img": "%s"%i.pick_img,
  1527. "farm":i.farm.name
  1528. })
  1529. data = json.dumps(dat)
  1530. return HttpResponse(data)
  1531. # 四季采摘审核页面
  1532. class Garden_Check_List(ListView):
  1533. def get(self,request):
  1534. hidden = request.GET.get('hidden')
  1535. page = int(request.GET.get('page'))
  1536. art_list = Pick_Pub.objects.filter(hidden=hidden)
  1537. nums = art_list.count()
  1538. art = art_list[(10*(page-1)):(page*10)]
  1539. return render(request, 'backstageNet/infoManage/pickManageList.html', context={"art":art,"nums":nums})
  1540. def post(self,request):
  1541. art_id = request.POST.get('id')
  1542. req = request.POST.get('req')
  1543. art_obj = Pick_Pub.objects.filter(id=art_id)
  1544. # 编辑
  1545. if req == "edit":
  1546. data = []
  1547. for i in art_obj:
  1548. data.append({
  1549. "id":i.id,
  1550. "name":i.name,
  1551. "company":i.company,
  1552. "pick_img":i.pick_img,
  1553. "time": i.upl_time,
  1554. "farm":i.farm.name,
  1555. "scale":i.scale,
  1556. "pick_s":i.pick_s,
  1557. "pick_e":i.pick_e,
  1558. "ripe_time":i.ripe_time,
  1559. "addr":i.addr,
  1560. "content":i.content
  1561. })
  1562. #删除
  1563. elif req == "del":
  1564. i = Pick_Pub.objects.get(id=art_id)
  1565. ckobj = CKArticle.objects.get(title=i.name)
  1566. ckobj.delete()
  1567. art_obj.delete()
  1568. data = "1"
  1569. #审核通过
  1570. elif req == "check":
  1571. art_obj = Pick_Pub.objects.get(id=art_id)
  1572. art_obj.hidden = True
  1573. ckobj = CKArticle.objects.get(title=art_obj.name)
  1574. ckobj.hidden = True
  1575. ckobj.save()
  1576. art_obj.save()
  1577. data = "1"
  1578. data = json.dumps(data,ensure_ascii=False)
  1579. return HttpResponse(data)
  1580. # 民宿审核
  1581. class Dorm_Check(ListView):
  1582. def get(self,request):
  1583. return render(request, 'backstageNet/infoManage/dormManage.html', context={'role':'superuser'})
  1584. def post(self,request):
  1585. hote_see_id = request.POST.get('ids')
  1586. delete = request.POST.get('id')
  1587. #已通过的删除
  1588. if delete:
  1589. try:
  1590. hote_sta = Hotel_Info.objects.get(id=delete)
  1591. hote_sta.delete()
  1592. return HttpResponse("1")
  1593. except:
  1594. return HttpResponse("0")
  1595. art_list = Hotel_Info.objects.filter(id=hote_see_id)
  1596. dat = []
  1597. # 通过后查看详情
  1598. for i in art_list:
  1599. dat.append({
  1600. "name":i.name,
  1601. "price":i.price,
  1602. "intro":i.intro,
  1603. "addr":i.addr,
  1604. "person":i.person,
  1605. "hotel_tel":i.hotel_tel,
  1606. "author":i.author.username,
  1607. "content":i.content,
  1608. "location":i.location,
  1609. # "time": i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),
  1610. "img": "%s"%i.hotel_img,
  1611. })
  1612. data = json.dumps(dat,ensure_ascii=False)
  1613. return HttpResponse(data)
  1614. # 民宿审核页面
  1615. class Dorm_Check_List(ListView):
  1616. def get(self,request):
  1617. hidden = request.GET.get('hidden')
  1618. page = int(request.GET.get('page'))
  1619. art_list = Hotel_Info.objects.filter(hidden=hidden)
  1620. nums = art_list.count()
  1621. art = art_list[(10*(page-1)):(page*10)]
  1622. return render(request, 'backstageNet/infoManage/dormManageList.html', context={"art":art,"nums":nums})
  1623. def post(self,request):
  1624. art_id = request.POST.get('id')
  1625. req = request.POST.get('req')
  1626. art_obj = Hotel_Info.objects.filter(id=art_id)
  1627. art = Hotel_Photo.objects.filter(hotel=art_id)
  1628. data = []
  1629. # 编辑
  1630. if req == "edit":
  1631. for i in art_obj:
  1632. data.append({
  1633. "id":i.id,
  1634. "name":i.name,
  1635. "price":i.price,
  1636. "intro":i.intro,
  1637. "addr":i.addr,
  1638. "location":i.location,
  1639. "person":i.person,
  1640. "hotel_img":i.hotel_img,
  1641. "hotel_tel":i.hotel_tel,
  1642. "content":i.content,
  1643. # "upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),
  1644. })
  1645. for x in art:
  1646. data.append({"addr_photo":x.addr})
  1647. # data.append(x.addr)
  1648. #删除
  1649. elif req == "del":
  1650. i = Hotel_Info.objects.get(id=art_id)
  1651. ckobj = CKArticle.objects.get(title=i.name)
  1652. ckobj.delete()
  1653. art_obj.delete()
  1654. data = "1"
  1655. #审核通过
  1656. elif req == "check":
  1657. art_obj = Hotel_Info.objects.get(id=art_id)
  1658. ckobj = CKArticle.objects.get(title=art_obj.name)
  1659. ckobj.hidden = True
  1660. ckobj.save()
  1661. art_obj.hidden = True
  1662. art_obj.save()
  1663. data = "1"
  1664. data = json.dumps(data,ensure_ascii=False)
  1665. return HttpResponse(data)
  1666. # 农场审核
  1667. class Farm_Check(ListView):
  1668. def get(self,request):
  1669. return render(request, 'backstageNet/infoManage/farmManage.html', context={'role':'superuser'})
  1670. def post(self,request):
  1671. delete = request.POST.get('id')
  1672. garden_see_id = request.POST.get("ids")
  1673. if delete:
  1674. try:
  1675. garden_sta = Pick_Pub.objects.get(id=delete)
  1676. garden_sta.delete()
  1677. return HttpResponse("1")
  1678. except:
  1679. return HttpResponse("0")
  1680. art_list = Pick_Pub.objects.filter(id=garden_see_id)
  1681. dat = []
  1682. # 查看详情
  1683. for i in art_list:
  1684. dat.append({
  1685. "name":i.name,
  1686. "company":i.company,
  1687. "time": i.upl_time,
  1688. "img": "%s"%i.pick_img,
  1689. "farm":i.farm.name
  1690. })
  1691. data = json.dumps(dat)
  1692. return HttpResponse(data)
  1693. # 农场审核页面
  1694. class Farm_Check_List(ListView):
  1695. def get(self,request):
  1696. hidden = request.GET.get('hidden')
  1697. page = int(request.GET.get('page'))
  1698. art_list = GardenArea.objects.filter(hidden=hidden)
  1699. nums = art_list.count()
  1700. art = art_list[(10*(page-1)):(page*10)]
  1701. return render(request, 'backstageNet/infoManage/farmManageList.html', context={"art":art,"nums":nums})
  1702. def post(self,request):
  1703. art_id = request.POST.get('id')
  1704. req = request.POST.get('req')
  1705. art_obj = GardenArea.objects.filter(id=art_id)
  1706. #删除
  1707. if req == "del":
  1708. i = GardenArea.objects.get(id=art_id)
  1709. # ckobj = CKArticle.objects.get(title=i.name)
  1710. # ckobj.delete()
  1711. art_obj.delete()
  1712. data = "1"
  1713. #审核通过
  1714. elif req == "check1":
  1715. art_obj = GardenArea.objects.get(id=art_id)
  1716. # ckobj = CKArticle.objects.get(title=art_obj.name)
  1717. # ckobj.hidden = True
  1718. # ckobj.save()
  1719. art_obj.hidden = True
  1720. art_obj.save()
  1721. data = "1"
  1722. #审核通过
  1723. elif req == "check0":
  1724. art_obj = GardenArea.objects.get(id=art_id)
  1725. art_obj.hidden = False
  1726. art_obj.save()
  1727. data = "1"
  1728. data = json.dumps(data,ensure_ascii=False)
  1729. return HttpResponse(data)
  1730. # 景点审核
  1731. class Sightsee_Check(ListView):
  1732. def get(self,request):
  1733. return render(request, 'backstageNet/infoManage/sightseeManage.html', context={'role':'superuser'})
  1734. def post(self,request):
  1735. delete = request.POST.get('id')
  1736. garden_see_id = request.POST.get("ids")
  1737. if delete:
  1738. try:
  1739. garden_sta = Pick_Pub.objects.get(id=delete)
  1740. garden_sta.delete()
  1741. return HttpResponse("1")
  1742. except:
  1743. return HttpResponse("0")
  1744. art_list = Pick_Pub.objects.filter(id=garden_see_id)
  1745. dat = []
  1746. # 查看详情
  1747. for i in art_list:
  1748. dat.append({
  1749. "name":i.name,
  1750. "company":i.company,
  1751. "time": i.upl_time,
  1752. "img": "%s"%i.pick_img,
  1753. "farm":i.farm.name
  1754. })
  1755. data = json.dumps(dat)
  1756. return HttpResponse(data)
  1757. # 景点审核页面
  1758. class Sightsee_Check_List(ListView):
  1759. def get(self,request):
  1760. hidden = request.GET.get('hidden')
  1761. page = int(request.GET.get('page'))
  1762. sightsee = Sightsee_Info.objects.filter(hidden=hidden)
  1763. nums = sightsee.count()
  1764. sightsee = sightsee[(10*(page-1)):(page*10)]
  1765. return render(request, 'backstageNet/infoManage/sightseeManageList.html', context={"sightsee":sightsee,"nums":nums})
  1766. def post(self,request):
  1767. s_id = request.POST.get('id')
  1768. req = request.POST.get('req')
  1769. i = Sightsee_Info.objects.get(id=s_id)
  1770. if req == "edit":
  1771. data = {"name":i.name,"price":i.price,"desc":i.desc,"location":i.location,"addr":i.addr,"sightsee_stime":i.sightsee_stime,"sightsee_etime":i.sightsee_etime,
  1772. "sightsee_img":i.sightsee_img,"sightsee_tel":i.sightsee_tel,"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),"guide_img":i.guide_img,"content":i.content}
  1773. data = json.dumps(data,ensure_ascii=False)
  1774. elif req == "check":
  1775. ckobj = CKArticle.objects.get(title=i.name)
  1776. ckobj.hidden = True
  1777. ckobj.save()
  1778. i.hidden = True
  1779. i.save()
  1780. data = "1"
  1781. elif req == "del":
  1782. ckobj = CKArticle.objects.get(title=i.name)
  1783. ckobj.delete()
  1784. i.delete()
  1785. data = "1"
  1786. return HttpResponse(data)
  1787. # 产品发布图片上传
  1788. class Product_Photo(ListView):
  1789. def get(self,request):
  1790. pass
  1791. def post(self,request):
  1792. pass
  1793. # 新闻审核上传图片接口
  1794. class Test_Photo(ListView):
  1795. def get(self,request):
  1796. pass
  1797. def post(self,request):
  1798. # e_id = request.POST.get('id')
  1799. # news_sta = Article.objects.get(id=e_id)
  1800. news_photo = request.FILES['upload']
  1801. if news_photo:
  1802. print("新闻图片:", news_photo)
  1803. news_photo_dir = 'media/uploads/'
  1804. end_name = news_photo.name.split('.')[-1]
  1805. # 判断如果路径不存在,即创建路径
  1806. if os.path.exists(news_photo_dir) == False:
  1807. os.makedirs(news_photo_dir)
  1808. img = Image.open(news_photo)
  1809. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  1810. pic_name = now_time + '.' + end_name
  1811. print("pic_name:", pic_name)
  1812. img.save(news_photo_dir + pic_name)
  1813. news_photo = news_photo_dir + pic_name
  1814. print("new_photo:",news_photo)
  1815. data = {"uploaded": 1,"fileName": pic_name,"url": news_photo}
  1816. else:
  1817. new_photo = "0"
  1818. data = {"code": 404,"msg": "","data": {"src": news_photo}}
  1819. data = json.dumps(data)
  1820. return HttpResponse(data)
  1821. class Guide_Img(ListView):
  1822. def get(self,request):
  1823. pass
  1824. def post(self,request):
  1825. # e_id = request.POST.get('id')
  1826. # news_sta = Article.objects.get(id=e_id)
  1827. guide_photo = request.FILES['upload']
  1828. if guide_photo:
  1829. print("新闻图片:", guide_photo)
  1830. news_photo_dir = 'media/uploads/'
  1831. end_name = guide_photo.name.split('.')[-1]
  1832. # 判断如果路径不存在,即创建路径
  1833. if os.path.exists(news_photo_dir) == False:
  1834. os.makedirs(news_photo_dir)
  1835. img = Image.open(guide_photo)
  1836. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  1837. pic_name = now_time + '.' + end_name
  1838. print("pic_name:", pic_name)
  1839. img.save(news_photo_dir + pic_name)
  1840. news_photo = news_photo_dir + pic_name
  1841. print("new_photo:",news_photo)
  1842. data = {"code": 0,"msg": "","data": {"src": news_photo}}
  1843. else:
  1844. new_photo = "0"
  1845. data = {"code": 404,"msg": "","data": {"src": news_photo}}
  1846. data = json.dumps(data)
  1847. return HttpResponse(data)
  1848. class CKArticle_View(ListView):
  1849. def get(self,request):
  1850. pass
  1851. def post(self,request):
  1852. username = request.user.username
  1853. print('username:',username)
  1854. current_user = MyUser.objects.get(username=username)
  1855. news_photo = request.POST.get('upload')
  1856. writer = request.POST.get('writer')
  1857. intro = request.POST.get('intro')
  1858. title = request.POST.get('title')
  1859. art_type = request.POST.get('art_type')
  1860. content = request.POST.get('content')
  1861. edit = request.POST.get('edit')
  1862. if edit == "1":
  1863. CKArticle.objects.filter(title=title).update(
  1864. art_type=art_type,
  1865. writer=writer,
  1866. intro=intro,
  1867. title=title,
  1868. content=content,
  1869. head_img=news_photo
  1870. )
  1871. return HttpResponse("1")
  1872. if CKArticle.objects.filter(title=title).exists():
  1873. return HttpResponse("2")
  1874. try:
  1875. # CKArticle.objects.create(auther=current_user.username,art_type=art_type,writer=writer,intro=intro,title=title,content=content,head_img=news_photo)
  1876. if art_type == "5":
  1877. return HttpResponse("1")
  1878. CKArticle.objects.create(art_type=art_type,writer=writer,intro=intro,title=title,content=content,head_img=news_photo)
  1879. data = "1"
  1880. except Exception as e:
  1881. print("错误信息为",e)
  1882. data = "0"
  1883. return HttpResponse(data)
  1884. #园区筛选
  1885. class Park_Land(ListView):
  1886. def get(self,request):
  1887. username = request.user.username
  1888. print('username:',username)
  1889. current_user = MyUser.objects.get(username=username)
  1890. data = []
  1891. if current_user.is_superuser != True and current_user.is_staff != True:
  1892. #用户
  1893. art_list = GardenArea.objects.filter(user=current_user)
  1894. else:
  1895. #管理员
  1896. art_list = GardenArea.objects.all()
  1897. for i in art_list:
  1898. data.append({"name":i.name,"id":i.id})
  1899. data = json.dumps(data)
  1900. return HttpResponse(data)
  1901. # 农场管理
  1902. class Garden_Manage_New(ListView):
  1903. def get(self,request):
  1904. gardenid = int(request.GET.get("ids"))
  1905. username = request.user.username
  1906. print('username:',username)
  1907. current_user = MyUser.objects.get(username=username)
  1908. garden = GardenArea.objects.get(id=gardenid)
  1909. art_list = FarmList.objects.filter(garden=garden)
  1910. nums = len(art_list)
  1911. page = int(request.GET.get('page'))
  1912. art = art_list[(9*(page-1)):(page*9)]
  1913. return render(request, 'backstageNet/production/gardenNew.html', context={"art":art,"nums":nums})
  1914. def post(self,request):
  1915. req = request.POST.get("req")
  1916. farm_id = request.POST.get('id')
  1917. art_list=FarmList.objects.filter(id=farm_id)
  1918. print(art_list)
  1919. data = []
  1920. #编辑回显数据
  1921. if req =="edit":
  1922. for i in art_list:
  1923. if i.manage_user:
  1924. data.append({
  1925. "id":i.id,
  1926. "name":i.name,
  1927. "user":i.user.username,
  1928. "manage_user":i.manage_user.name,
  1929. "area":i.area,
  1930. "curr_var":i.curr_var,
  1931. "farm_img":i.farm_img,
  1932. "farm_desc":i.farm_desc
  1933. })
  1934. else:
  1935. data.append({
  1936. "id":i.id,
  1937. "name":i.name,
  1938. "user":i.user.username,
  1939. "manage_user":"",
  1940. "area":i.area,
  1941. "curr_var":i.curr_var,
  1942. "farm_img":i.farm_img,
  1943. "farm_desc":i.farm_desc
  1944. })
  1945. #删除数据
  1946. if req == 'del':
  1947. try:
  1948. Pick_Pub.objects.filter(farm=farm_id).delete()
  1949. FarmList.objects.filter(id=farm_id).delete()
  1950. data = "1"
  1951. except:
  1952. data = "0"
  1953. # if len(pickid) == 0:
  1954. # art.delete()
  1955. # data="1"
  1956. # elif len(pickid) != 0:
  1957. # pickid.delete()
  1958. # art.delete()
  1959. # data="1"
  1960. data = json.dumps(data,ensure_ascii=False)
  1961. return HttpResponse(data)
  1962. # 修改农场管理
  1963. class Garden_Manage_View(ListView):
  1964. def get(self,request):
  1965. username = request.user.username
  1966. print('username:',username)
  1967. current_user = MyUser.objects.get(username=username)
  1968. if current_user.is_staff == True:
  1969. garden = GardenArea.objects.all()
  1970. elif current_user.is_staff != True:
  1971. garden = GardenArea.objects.filter(user=current_user)
  1972. return render(request, 'backstageNet/production/gardenManage.html', context={"garden":garden})
  1973. def post(self,request):
  1974. #农场id
  1975. farm_id = request.POST.get('id')
  1976. #农场名称
  1977. name = request.POST.get('name')
  1978. #农场介绍
  1979. farm_desc = request.POST.get('content')
  1980. #农场面积
  1981. area = request.POST.get('area')
  1982. #农场品种
  1983. curr_var = request.POST.get('curr_var')
  1984. #农场图片
  1985. farm_img = request.POST.get('img_url')
  1986. #园区id
  1987. gardenid = request.POST.get("ids")
  1988. #修改当前数据
  1989. username = request.user.username
  1990. print('username:',username)
  1991. current_user = MyUser.objects.get(username=username)
  1992. if farm_id:
  1993. try:
  1994. hote_sta = FarmList.objects.filter(id=farm_id).update(
  1995. name=name,
  1996. farm_desc=farm_desc,
  1997. area=area,
  1998. curr_var=curr_var,
  1999. farm_img=farm_img,
  2000. user=current_user,
  2001. )
  2002. data="1"
  2003. except Exception as e:
  2004. print(e)
  2005. data="0"
  2006. else:
  2007. try:
  2008. gardens=GardenArea.objects.get(id=gardenid)
  2009. if FarmList.objects.filter(name=name,user=current_user):
  2010. data = "0"
  2011. else:
  2012. FarmList.objects.create(
  2013. name=name,
  2014. farm_desc=farm_desc,
  2015. area=area,
  2016. curr_var=curr_var,
  2017. farm_img=farm_img,
  2018. user=current_user,
  2019. garden=gardens
  2020. )
  2021. data="1"
  2022. except Exception as e:
  2023. print(e)
  2024. data="0"
  2025. return HttpResponse(data)
  2026. # 新建人员管理
  2027. class Garden_User_View(ListView):
  2028. def get(self,request):
  2029. username = request.user.username
  2030. print('username:',username)
  2031. current_user = MyUser.objects.get(username=username)
  2032. gardenname = request.GET.get("name")
  2033. if current_user.is_staff == True:
  2034. garden = GardenArea.objects.all()
  2035. elif current_user.is_staff != True:
  2036. garden = GardenArea.objects.filter(user=current_user)
  2037. if gardenname:
  2038. garden = GardenArea.objects.filter(name=gardenname)
  2039. if garden:
  2040. farm = FarmList.objects.filter(garden=garden[0])
  2041. else:
  2042. farm = ""
  2043. if current_user.is_staff == True:
  2044. garden = GardenArea.objects.all()
  2045. elif current_user.is_staff != True:
  2046. garden = GardenArea.objects.filter(user=current_user)
  2047. return render(request, 'backstageNet/production/workerManage.html', context={"garden":garden,"farm":farm})
  2048. def post(self,request):
  2049. #管理者id
  2050. farm_id = request.POST.get('id')
  2051. #管理者名称
  2052. name = request.POST.get('name')
  2053. #性别
  2054. gender = request.POST.get('sex')
  2055. #联系方式
  2056. mobile = request.POST.get('mobile')
  2057. #管理农场
  2058. farm_name = request.POST.get("city")
  2059. #修改
  2060. if farm_id:
  2061. try:
  2062. hote_sta = FarmUser.objects.filter(id=farm_id).update(
  2063. name=name,
  2064. gender=gender,
  2065. mobile=mobile,
  2066. )
  2067. data="1"
  2068. if data=="1":
  2069. farms =FarmUser.objects.get(name=name)
  2070. farm = FarmList.objects.filter(name=farm_name).update(
  2071. manage_user=farms
  2072. )
  2073. data="1"
  2074. except Exception as e:
  2075. print(e)
  2076. data="0"
  2077. else:
  2078. #增加
  2079. try:
  2080. FarmUser.objects.create(
  2081. name=name,
  2082. gender=gender,
  2083. mobile=mobile,
  2084. )
  2085. data="1"
  2086. if data=="1":
  2087. farms =FarmUser.objects.get(name=name)
  2088. farm = FarmList.objects.filter(name=farm_name).update(
  2089. manage_user=farms
  2090. )
  2091. data="1"
  2092. except Exception as e:
  2093. print(e)
  2094. data="0"
  2095. return HttpResponse(data)
  2096. # 人员管理
  2097. class Garden_User_New(ListView):
  2098. def get(self,request):
  2099. username = request.user.username
  2100. print('username:',username)
  2101. current_user = MyUser.objects.get(username=username)
  2102. farmid = request.GET.get('id')
  2103. art_list = FarmUser.objects.get(id=farmid)
  2104. FarmUser.objects.all()
  2105. nums = art_list.count()
  2106. page = int(request.GET.get('page'))
  2107. art = art_list[(9*(page-1)):(page*9)]
  2108. return render(request, 'backstageNet/production/workerNew.html', context={"art":art,"nums":nums})
  2109. def post(self,request):
  2110. req = request.POST.get("req")
  2111. farmuser_id = request.POST.get('id')
  2112. art_list = FarmUser.objects.filter(id=farmuser_id)
  2113. data = []
  2114. #编辑数据回显
  2115. if req == "edit":
  2116. for i in art_list:
  2117. data.append({
  2118. "id":i.id,
  2119. "name":i.name,
  2120. "gender":i.gender,
  2121. "mobile":i.mobile
  2122. })
  2123. #删除
  2124. elif req == 'del':
  2125. art_list.delete()
  2126. data = "1"
  2127. data = json.dumps(data,ensure_ascii=False)
  2128. return HttpResponse(data)
  2129. # 库存新建
  2130. class Repertory_View(ListView):
  2131. def get(self,request):
  2132. # page = request.GET.get("page")
  2133. username = request.user.username
  2134. print('username:',username)
  2135. current_user = MyUser.objects.get(username=username)
  2136. data = []
  2137. if current_user.is_superuser != True and current_user.is_staff != True:
  2138. #用户
  2139. art_list = GardenArea.objects.filter(user=current_user)
  2140. else:
  2141. #管理员
  2142. art_list = GardenArea.objects.all()
  2143. return render(request, 'backstageNet/production/repertoryManage.html', context={"art_list":art_list})
  2144. def post(self,request):
  2145. uid = request.user.id
  2146. #库存id
  2147. store_id = request.POST.get('id')
  2148. #物料名称
  2149. name = request.POST.get('name')
  2150. #物料类别
  2151. rtype = request.POST.get('rtype')
  2152. #规格
  2153. spec = request.POST.get('spec')
  2154. #库存
  2155. rese = request.POST.get('rese')
  2156. #园区
  2157. gradenid = request.POST.get('graden')
  2158. #修改
  2159. if store_id:
  2160. try:
  2161. hote_sta = Store_Manage.objects.filter(id=store_id).update(
  2162. name=name,
  2163. rtype=rtype,
  2164. spec=spec,
  2165. rese=rese,
  2166. )
  2167. data = "1"
  2168. except Exception as e:
  2169. print(e)
  2170. data = "0"
  2171. else:
  2172. #新增
  2173. try:
  2174. gradens=GardenArea.objects.get(id=gradenid)
  2175. Store_Manage.objects.create(
  2176. name=name,
  2177. rtype=rtype,
  2178. spec=spec,
  2179. rese=rese,
  2180. graden=gradens
  2181. )
  2182. data = "1"
  2183. except Exception as e:
  2184. print(e)
  2185. data = "0"
  2186. return HttpResponse(data)
  2187. # 库存管理
  2188. class Repertory_New(ListView):
  2189. def get(self,request):
  2190. username = request.user.username
  2191. print('username:',username)
  2192. current_user = MyUser.objects.get(username=username)
  2193. ids = int(request.GET.get('ids'))
  2194. try:
  2195. art = GardenArea.objects.get(id=ids)
  2196. art_list = Store_Manage.objects.filter(graden=art)
  2197. print(art_list)
  2198. except Exception as e:
  2199. print(e)
  2200. art_list = ""
  2201. nums = len(art_list)
  2202. page = int(request.GET.get('page'))
  2203. art = art_list[(9*(page-1)):(page*9)]
  2204. return render(request, 'backstageNet/production/repertoryNew.html', context={"art":art,"nums":nums})
  2205. def post(self,request):
  2206. req = request.POST.get("req")
  2207. store_id = request.POST.get('id')
  2208. art_list=Store_Manage.objects.filter(id=store_id)
  2209. data = []
  2210. #编辑数据回显
  2211. if req == "edit":
  2212. for i in art_list:
  2213. data.append({
  2214. "id":i.id,
  2215. "name":i.name,
  2216. "rtype":i.rtype,
  2217. "spec":i.spec,
  2218. "rese":i.rese
  2219. })
  2220. #删除
  2221. elif req == 'del':
  2222. art_list.delete()
  2223. data = "1"
  2224. data = json.dumps(data,ensure_ascii=False)
  2225. return HttpResponse(data)
  2226. # 库存管理(出库,入库)
  2227. class Repertory_New_View(ListView):
  2228. def get(self,request):
  2229. pass
  2230. def post(self,request):
  2231. req = request.POST.get("req")
  2232. store_id = request.POST.get('id')
  2233. num = int(request.POST.get('num'))
  2234. print("num",num)
  2235. art_list = Store_Manage.objects.filter(id=store_id)
  2236. #出库
  2237. if req == "see":
  2238. for i in art_list:
  2239. res = int(i.rese)
  2240. r = res-num
  2241. if r >0 or r == 0:
  2242. Store_Manage.objects.filter(id=store_id).update(rese=r)
  2243. data = "1"
  2244. else:
  2245. data = "0"
  2246. return HttpResponse(data)
  2247. #入库
  2248. elif req == "add":
  2249. for i in art_list:
  2250. res = int(i.rese)
  2251. r = res+num
  2252. if r:
  2253. Store_Manage.objects.filter(id=store_id).update(rese=r)
  2254. data = "1"
  2255. else:
  2256. data = "0"
  2257. return HttpResponse(data)
  2258. # 园区下地块
  2259. class Sell_Land(ListView):
  2260. def get(self,request):
  2261. username = request.user.username
  2262. print('username:',username)
  2263. data = []
  2264. current_user = MyUser.objects.get(username=username)
  2265. if current_user.is_superuser != True and current_user.is_staff != True:
  2266. farm_l = GardenArea.objects.filter(user=current_user)
  2267. else:
  2268. farm_l = GardenArea.objects.all()
  2269. for i in farm_l:
  2270. print(i.id)
  2271. try:
  2272. farm_list = FarmList.objects.get(garden=i.id)
  2273. # print(farm_list.name)
  2274. farm_list = farm_list.name
  2275. except:
  2276. farm_list = ''
  2277. data.append({"garden":i.name,"farm_name":farm_list})
  2278. data = json.dumps(data)
  2279. return HttpResponse(data)
  2280. #销售图片
  2281. class Sell_Photo(ListView):
  2282. def post(self,request):
  2283. gar_photo = request.FILES.get('gar_img')
  2284. if gar_photo:
  2285. print("视频图片:", gar_photo)
  2286. garden_photo_dir = 'sell_photo/'
  2287. end_name = gar_photo.name.split('.')[-1]
  2288. # 判断如果路径不存在,即创建路径
  2289. if os.path.exists(garden_photo_dir) == False:
  2290. os.makedirs(garden_photo_dir)
  2291. img = Image.open(gar_photo)
  2292. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  2293. pic_name = now_time + '.' + end_name
  2294. print("pic_name:", pic_name)
  2295. img.save(garden_photo_dir + pic_name)
  2296. gar_photo = garden_photo_dir + pic_name
  2297. print("gar_photo:",gar_photo)
  2298. data = {"code": 0,"msg": "","data": {"src": gar_photo}}
  2299. else:
  2300. pro_photo = "0"
  2301. data = {"code": 404,"msg": "","data": {"src": gar_photo}}
  2302. data = json.dumps(data)
  2303. return HttpResponse(data)
  2304. # 销售管理
  2305. class Sell_View(ListView):
  2306. def get(self,request):
  2307. username = request.user.username
  2308. print('username:',username)
  2309. current_user = MyUser.objects.get(username=username)
  2310. area_list = GardenArea.objects.all()
  2311. area_obj = GardenArea.objects.all().first()
  2312. farm_list = FarmList.objects.filter(garden=area_obj)
  2313. return render(request, 'backstageNet/production/sellManage.html',context={"area_list":area_list,"farm_list":farm_list})
  2314. def post(self,request):
  2315. username = request.user.username
  2316. print('username:',username)
  2317. current_user = MyUser.objects.get(username=username)
  2318. page = int(request.POST.get("page"))
  2319. dat = []
  2320. try:
  2321. # user_gar = GardenArea.objects.get(user=current_user)
  2322. # farm_list = FarmList.objects.filter(garden=user_gar)
  2323. if current_user.is_superuser != True and current_user.is_staff != True:
  2324. farm_list = FarmList.objects.filter(garden__user=current_user)
  2325. else:
  2326. farm_list = FarmList.objects.all()
  2327. for i in farm_list:
  2328. for x in Sell_Manage.objects.filter(farm=i):
  2329. dat.append({
  2330. "id":x.id,
  2331. "farm":x.farm.name,"name":x.name,
  2332. "num":x.num,"money":x.money,
  2333. "time":x.upl_time.strftime('%Y-%m-%d'),
  2334. "sell_img":x.sell_img
  2335. })
  2336. except Exception as e:
  2337. print(e)
  2338. dat = []
  2339. nums = len(dat)
  2340. dat = dat[(9*(page-1)):(page*9)]
  2341. data = json.dumps({"dat":dat,"nums":nums})
  2342. return HttpResponse(data)
  2343. # 销售新建
  2344. class Sell_New(ListView):
  2345. def get(self,request):
  2346. pass
  2347. def post(self,request):
  2348. farm = request.POST.get("farm")
  2349. name = request.POST.get("name")
  2350. num = request.POST.get("num")
  2351. money = request.POST.get("money")
  2352. time = request.POST.get("time")
  2353. s_id = request.POST.get("id")
  2354. sell_img = request.POST.get("sell_img")
  2355. username = request.user.id
  2356. if s_id:
  2357. try:
  2358. farm_obj = FarmList.objects.get(name=farm,user=username)
  2359. sell_obj = Sell_Manage.objects.get(id=s_id)
  2360. sell_obj.farm = farm_obj
  2361. sell_obj.name = name
  2362. sell_obj.num = num
  2363. sell_obj.money = money
  2364. sell_obj.upl_time = time
  2365. sell_obj.sell_img = sell_img
  2366. sell_obj.save()
  2367. data = "1"
  2368. except Exception as e:
  2369. print(e)
  2370. data = "0"
  2371. else:
  2372. try:
  2373. farm_obj = FarmList.objects.get(name=farm,user=username)
  2374. Sell_Manage.objects.create(farm=farm_obj,name=name,num=num,money=money,upl_time=time,sell_img=sell_img)
  2375. data = "1"
  2376. except Exception as e:
  2377. print(e)
  2378. data = "0"
  2379. return HttpResponse(data)
  2380. # 销售删除
  2381. class Sell_Del(ListView):
  2382. def get(self,request):
  2383. pass
  2384. def post(self,request):
  2385. s_id = request.POST.get("id")
  2386. try:
  2387. sell_obj = Sell_Manage.objects.get(id=s_id)
  2388. sell_obj.delete()
  2389. data = "1"
  2390. except Exception as e:
  2391. print(e)
  2392. data = "0"
  2393. return HttpResponse(data)
  2394. # 数据分析
  2395. class Cropdata(ListView):
  2396. def get(self,request):
  2397. return render(request, 'backstageNet/production/cropdata.html', context={})
  2398. def post(self,request):
  2399. pass
  2400. # 种植统计
  2401. class CropCount(ListView):
  2402. def get(self,request):
  2403. username = request.user.username
  2404. print('username:',username)
  2405. current_user = MyUser.objects.get(username=username)
  2406. gardenname = request.GET.get("name")
  2407. if current_user.is_staff == True:
  2408. garden = GardenArea.objects.all()
  2409. elif current_user.is_staff != True:
  2410. garden = GardenArea.objects.filter(user=current_user)
  2411. if gardenname:
  2412. garden = GardenArea.objects.filter(name=gardenname)
  2413. if garden:
  2414. farm = FarmList.objects.filter(garden=garden[0])
  2415. else:
  2416. farm = ""
  2417. if current_user.is_staff == True:
  2418. garden = GardenArea.objects.all()
  2419. elif current_user.is_staff != True:
  2420. garden = GardenArea.objects.filter(user=current_user)
  2421. return render(request, 'backstageNet/production/cropcount.html', context={"garden":garden,"farm":farm})
  2422. def post(self,request):
  2423. username = request.user.username
  2424. crop_count = request.POST.get('crop_count')
  2425. area = request.POST.get('area')
  2426. crop_id = request.POST.get('id')
  2427. upl_time = request.POST.get("upl_time")
  2428. cropname = request.POST.get('cropname')
  2429. city = request.POST.get("city")
  2430. crop_img = request.POST.get("crop_img")
  2431. count=crop_count + city
  2432. print(count)
  2433. #修改
  2434. if crop_id:
  2435. print("修改")
  2436. try:
  2437. crops =FarmList.objects.get(name=area)
  2438. crop = Areacrop.objects.filter(id=crop_id).update(
  2439. cropname=cropname,
  2440. area=crops,
  2441. upl_time=upl_time,
  2442. crop_count=count,
  2443. crop_img=crop_img,
  2444. )
  2445. data = "1"
  2446. except Exception as e:
  2447. print(e)
  2448. data = "0"
  2449. else:
  2450. print("新增")
  2451. #新增
  2452. try:
  2453. crops =FarmList.objects.get(name=area)
  2454. Areacrop.objects.create(
  2455. cropname=cropname,
  2456. area=crops,
  2457. upl_time=upl_time,
  2458. crop_count=count,
  2459. crop_img=crop_img,
  2460. )
  2461. data = "1"
  2462. except Exception as e:
  2463. print(e)
  2464. data = "0"
  2465. return HttpResponse(data)
  2466. #种植管理
  2467. class CropCount_Photo(ListView):
  2468. def get(self,request):
  2469. pass
  2470. def post(self,request):
  2471. gar_photo = request.FILES.get('gar_img')
  2472. if gar_photo:
  2473. print("视频图片:", gar_photo)
  2474. garden_photo_dir = 'cropcount_photo/'
  2475. end_name = gar_photo.name.split('.')[-1]
  2476. # 判断如果路径不存在,即创建路径
  2477. if os.path.exists(garden_photo_dir) == False:
  2478. os.makedirs(garden_photo_dir)
  2479. img = Image.open(gar_photo)
  2480. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  2481. pic_name = now_time + '.' + end_name
  2482. print("pic_name:", pic_name)
  2483. img.save(garden_photo_dir + pic_name)
  2484. gar_photo = garden_photo_dir + pic_name
  2485. print("gar_photo:",gar_photo)
  2486. data = {"code": 0,"msg": "","data": {"src": gar_photo}}
  2487. else:
  2488. pro_photo = "0"
  2489. data = {"code": 404,"msg": "","data": {"src": gar_photo}}
  2490. data = json.dumps(data)
  2491. return HttpResponse(data)
  2492. # 种植管理
  2493. class CropCount_View(ListView):
  2494. def get(self,request):
  2495. username = request.user.username
  2496. print('username:',username)
  2497. current_user = MyUser.objects.get(username=username)
  2498. gardenid = request.GET.get("ids")
  2499. page = int(request.GET.get("page"))
  2500. dat = []
  2501. art = FarmList.objects.filter(id=gardenid)
  2502. if art:
  2503. for i in art:
  2504. art_list = Areacrop.objects.filter(area=i)
  2505. for x in art_list:
  2506. time = int(x.upl_time.strftime("%Y%m%d"))
  2507. time_now = int(timezone.now().strftime("%Y%m%d"))
  2508. data = time_now-time
  2509. print(data)
  2510. curro = ""
  2511. h2 = {"cropname":x.cropname,
  2512. "area":x.area.name,
  2513. "crop_count":x.crop_count,
  2514. "img":x.area.farm_img,
  2515. "time":data,
  2516. "id":x.id,
  2517. "upl_time":x.upl_time.strftime('%Y-%m-%d'),
  2518. "crop_img":x.crop_img,
  2519. }
  2520. dat.append({"data":h2,"curro":curro})
  2521. nums = len(dat)
  2522. dat = dat[(9*(page-1)):(page*9)]
  2523. data = json.dumps({"dat":dat,"nums":nums})
  2524. return HttpResponse(data)
  2525. def post(self,request):
  2526. req = request.POST.get("req")
  2527. areacropid = request.POST.get("id")
  2528. art_list = Areacrop.objects.filter(id=areacropid)
  2529. data = []
  2530. #结束时间
  2531. if req == "end":
  2532. for x in art_list:
  2533. Areacrop.objects.filter(id=areacropid).update(
  2534. end_time=datetime.datetime.now()
  2535. )
  2536. data = "1"
  2537. #编辑数据返现
  2538. elif req == "edit":
  2539. for i in art_list:
  2540. data.append({
  2541. "id":i.id,
  2542. "area":i.area.name,
  2543. "crop_count":i.crop_count,
  2544. "cropname":i.cropname,
  2545. "upl_time":i.upl_time.strftime('%Y-%m-%d'),
  2546. "crop_img":i.crop_img,
  2547. })
  2548. #删除
  2549. elif req == "del":
  2550. art_list.delete()
  2551. data = "1"
  2552. data = json.dumps(data)
  2553. return HttpResponse(data)
  2554. # 个人采摘
  2555. class Pick(ListView):
  2556. def get(self,request):
  2557. username = request.user.username
  2558. print('username:',username)
  2559. current_user = MyUser.objects.get(username=username)
  2560. try:
  2561. # user_gar = GardenArea.objects.get(user=current_user)
  2562. farm_list = FarmList.objects.filter(garden__user=current_user)
  2563. except Exception as e:
  2564. print(e)
  2565. farm_list = ""
  2566. nums = farm_list.count()
  2567. return render(request, 'backstageNet/production/pick.html', context={"farm_list":farm_list,"nums":nums})
  2568. def post(self,request):
  2569. username = request.user.username
  2570. print('username:',username)
  2571. current_user = MyUser.objects.get(username=username)
  2572. page = int(request.POST.get("page"))
  2573. dat = []
  2574. try:
  2575. farm_list = FarmList.objects.filter(garden__user=current_user)
  2576. for i in farm_list:
  2577. for x in Person_Pick.objects.filter(farm=i):
  2578. dat.append({
  2579. "id":x.id,
  2580. "farm":x.farm.name,"name":x.name,
  2581. "num":x.num,"var":x.var,
  2582. "time":x.upl_time.strftime('%Y-%m-%d')
  2583. })
  2584. except Exception as e:
  2585. print(e)
  2586. dat = []
  2587. nums = len(dat)
  2588. dat = dat[(9*(page-1)):(page*9)]
  2589. data = json.dumps({"dat":dat,"nums":nums})
  2590. return HttpResponse(data)
  2591. # 采摘新建
  2592. class Pick_New(ListView):
  2593. def get(self,request):
  2594. pass
  2595. def post(self,request):
  2596. farm = request.POST.get("farm")
  2597. name = request.POST.get("name")
  2598. num = request.POST.get("num")
  2599. var = request.POST.get("var")
  2600. time = request.POST.get("time")
  2601. p_id = request.POST.get("id")
  2602. if p_id:
  2603. try:
  2604. farm_obj = FarmList.objects.get(name=farm)
  2605. pick_obj = Person_Pick.objects.get(id=p_id)
  2606. pick_obj.farm = farm_obj
  2607. pick_obj.name = name
  2608. pick_obj.num = num
  2609. pick_obj.var = var
  2610. pick_obj.upl_time = time
  2611. pick_obj.save()
  2612. data = "1"
  2613. except Exception as e:
  2614. print(e)
  2615. data = "0"
  2616. else:
  2617. try:
  2618. farm_obj = FarmList.objects.get(name=farm)
  2619. Person_Pick.objects.create(farm=farm_obj,name=name,num=num,var=var,upl_time=time)
  2620. data = "1"
  2621. except Exception as e:
  2622. print(e)
  2623. data = "0"
  2624. return HttpResponse(data)
  2625. # 采摘删除
  2626. class Pick_Del(ListView):
  2627. def get(self,request):
  2628. pass
  2629. def post(self,request):
  2630. p_id = request.POST.get("id")
  2631. try:
  2632. pick_obj = Person_Pick.objects.get(id=p_id)
  2633. pick_obj.delete()
  2634. data = "1"
  2635. except Exception as e:
  2636. print(e)
  2637. data = "0"
  2638. return HttpResponse(data)
  2639. # 类型分析
  2640. class Type_View(ListView):
  2641. def get(self,request):
  2642. username = request.user.username
  2643. print('username:',username)
  2644. current_user = MyUser.objects.get(username=username)
  2645. area_list = GardenArea.objects.all()
  2646. return render(request, 'backstageNet/datacenter/cropdata.html', context={"area_list":area_list})
  2647. def post(self,request):
  2648. area = request.POST.get("id")
  2649. username = request.user.username
  2650. print('username:',username)
  2651. current_user = MyUser.objects.get(username=username)
  2652. year = datetime.datetime.now().year
  2653. start_1 = datetime.date(year,1,1)
  2654. end_1 = datetime.date(year,3,31)
  2655. start_2 = datetime.date(year,4,1)
  2656. end_2 = datetime.date(year,6,30)
  2657. start_3 = datetime.date(year,7,1)
  2658. end_3 = datetime.date(year,9,30)
  2659. start_4 = datetime.date(year,10,1)
  2660. end_4 = datetime.date(year,12,31)
  2661. money = 0
  2662. dat = []
  2663. dat1 = []
  2664. dat2 = []
  2665. dat3 = []
  2666. dat4 = []
  2667. start_date = datetime.datetime.now().year
  2668. start_date = datetime.date(start_date,1,1)
  2669. end_date = datetime.datetime.now()
  2670. if area:
  2671. # area_obj = GardenArea.objects.get(id=area)
  2672. for i in FarmList.objects.filter(garden_id=area):
  2673. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_1, end_1)):
  2674. money = money + int(x.money)
  2675. dat1.append({"farm":i.name,"money":money})
  2676. money = 0
  2677. for i in FarmList.objects.filter(garden_id=area):
  2678. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_2, end_2)):
  2679. money = money + int(x.money)
  2680. dat2.append({"farm":i.name,"money":money})
  2681. money = 0
  2682. for i in FarmList.objects.filter(garden_id=area):
  2683. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_3, end_3)):
  2684. money = money + int(x.money)
  2685. dat3.append({"farm":i.name,"money":money})
  2686. money = 0
  2687. for i in FarmList.objects.filter(garden_id=area):
  2688. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_4, end_4)):
  2689. money = money + int(x.money)
  2690. dat4.append({"farm":i.name,"money":money})
  2691. money = 0
  2692. for i in FarmList.objects.filter(garden_id=area):
  2693. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_date, end_date)):
  2694. money = money + int(x.money)
  2695. dat.append({"area":i.area,"name":i.name,"money":money})
  2696. money = 0
  2697. data = json.dumps({"1":dat1,"2":dat2,"3":dat3,"4":dat4,"dat":dat})
  2698. return HttpResponse(data)
  2699. # 对比分析
  2700. class Contrast_View(ListView):
  2701. def get(self,request):
  2702. username = request.user.username
  2703. print('username:',username)
  2704. current_user = MyUser.objects.get(username=username)
  2705. area_list = GardenArea.objects.all()
  2706. area_obj = GardenArea.objects.all().first()
  2707. farm_list = FarmList.objects.filter(garden=area_obj)
  2708. return render(request, 'backstageNet/datacenter/contrast.html', context={"area_list":area_list,"farm_list":farm_list})
  2709. def post(self,request):
  2710. area_id = request.POST.get("id")
  2711. farm_list = FarmList.objects.filter(garden_id=area_id)
  2712. dat= []
  2713. for i in farm_list:
  2714. dat.append({"name":i.name,"id":i.id})
  2715. data = json.dumps(dat)
  2716. return HttpResponse(data)
  2717. # 对比分析详情
  2718. class Contrast_Detail(ListView):
  2719. def get(self,request):
  2720. pass
  2721. def post(self,request):
  2722. farm_id = request.POST.get("id")
  2723. year = datetime.datetime.now().year
  2724. start_1 = datetime.date(year,1,1)
  2725. end_1 = datetime.date(year,12,31)
  2726. start_2 = datetime.date(year-1,1,1)
  2727. end_2 = datetime.date(year-1,12,31)
  2728. start_3 = datetime.date(year-2,1,1)
  2729. end_3 = datetime.date(year-2,12,31)
  2730. start_4 = datetime.date(year-3,1,1)
  2731. end_4 = datetime.date(year-3,12,31)
  2732. dat1 = []
  2733. dat2 = []
  2734. dat3 = []
  2735. dat4 = []
  2736. money = 0
  2737. if farm_id != "":
  2738. print("+++++++++++++++++")
  2739. # area_obj = GardenArea.objects.get(id=area)
  2740. for i in FarmList.objects.filter(id=farm_id):
  2741. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_1, end_1)):
  2742. money = money + int(x.money)
  2743. dat1.append({"farm":i.name,"money":money})
  2744. money = 0
  2745. for i in FarmList.objects.filter(id=farm_id):
  2746. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_2, end_2)):
  2747. money = money + int(x.money)
  2748. dat2.append({"farm":i.name,"money":money})
  2749. money = 0
  2750. for i in FarmList.objects.filter(id=farm_id):
  2751. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_3, end_3)):
  2752. money = money + int(x.money)
  2753. dat3.append({"farm":i.name,"money":money})
  2754. money = 0
  2755. for i in FarmList.objects.filter(id=farm_id):
  2756. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_4, end_4)):
  2757. money = money + int(x.money)
  2758. dat4.append({"farm":i.name,"money":money})
  2759. money = 0
  2760. elif farm_id == "":
  2761. print("--------")
  2762. dat1 = []
  2763. dat2 = []
  2764. dat3 = []
  2765. dat4 = []
  2766. data = json.dumps({"1":dat1,"2":dat2,"3":dat3,"4":dat4})
  2767. return HttpResponse(data)
  2768. # 对比分析列表
  2769. class Contrast_List(ListView):
  2770. def get(self,request):
  2771. pass
  2772. def post(self,request):
  2773. area_id = request.POST.get("id")
  2774. page = int(request.POST.get("page"))
  2775. dat = []
  2776. farm_list = FarmList.objects.filter(garden_id=area_id)
  2777. for i in farm_list:
  2778. for x in Sell_Manage.objects.filter(farm=i):
  2779. dat.append({"name":x.farm.name,"num":x.num,"area":x.farm.area,"money":x.money,"upl_time":x.upl_time.strftime('%Y-%m-%d %H:%M:%S')})
  2780. nums = len(dat)
  2781. dat = dat[(10*(page-1)):(page*10)]
  2782. data = json.dumps({"dat":dat,"nums":nums})
  2783. return HttpResponse(data)
  2784. # 产业数据
  2785. class Industry_Data(ListView):
  2786. def get(self,request):
  2787. username = request.user.username
  2788. print('username:',username)
  2789. current_user = MyUser.objects.get(username=username)
  2790. area_list = GardenArea.objects.all()
  2791. return render(request, 'backstageNet/datacenter/industrydata.html', context={"area_list":area_list})
  2792. def post(self,request):
  2793. username = request.user.username
  2794. print('username:',username)
  2795. current_user = MyUser.objects.get(username=username)
  2796. area = request.POST.get("id")
  2797. page = int(request.POST.get("page"))
  2798. dat = []
  2799. money = 0
  2800. start_date = datetime.datetime.now().year
  2801. start_date = datetime.date(start_date,1,1)
  2802. end_date = datetime.datetime.now()
  2803. if area:
  2804. # area_obj = GardenArea.objects.get(id=area)
  2805. for i in FarmList.objects.filter(garden_id=area):
  2806. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_date, end_date)):
  2807. money = money + int(x.money)
  2808. dat.append({"farm":i.name,"money":money,"manage":i.manage_user,"area":i.area})
  2809. money = 0
  2810. else:
  2811. area_obj = GardenArea.objects.get(user=current_user)
  2812. for i in FarmList.objects.filter(garden=area_obj):
  2813. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_date, end_date)):
  2814. money = money + int(x.money)
  2815. dat.append({"farm":i.name,"money":money,"manage":i.manage_user,"area":i.area})
  2816. money = 0
  2817. nums = len(dat)
  2818. dat_split = dat[(10*(page-1)):(page*10)]
  2819. data = json.dumps({"dat":dat,"nums":nums,"dat_split":dat_split})
  2820. return HttpResponse(data)
  2821. # 气象站阈值设置
  2822. class QXZ_Warning_View(ListView):
  2823. def get(self,request):
  2824. user_name = request.user.username
  2825. print('user_name=', user_name)
  2826. current_user = MyUser.objects.get(username=user_name)
  2827. equip_list = Equip.objects.filter(equip_user=current_user,equip_type=5)
  2828. if current_user.is_staff:
  2829. equip_list = Equip.objects.filter(equip_type=5)
  2830. return render(request, 'backstageNet/warn/warnSet.html', context={"equip_list":equip_list})
  2831. def post(self,request):
  2832. equip_id = request.POST.get('equip_id')
  2833. try:
  2834. alarm = QXZ_Alarm.objects.get(equip_id=equip_id).conf
  2835. except:
  2836. alarm = ""
  2837. x = QXZ_Conf.objects.get(equip_id=equip_id)
  2838. conf = {"e1":x.e1,"e2":x.e2,"e3":x.e3,"e4":x.e4,"e5":x.e5,
  2839. "e6":x.e6,"e7":x.e7,"e8":x.e8,"e9":x.e9,"e10":x.e10,
  2840. "e11":x.e11,"e12":x.e12,"e13":x.e13,"e14":x.e14,
  2841. "e15":x.e15,"e16":x.e16,"e17":x.e17,"e18":x.e18,
  2842. "e19":x.e19,"e20":x.e20,"e21":x.e21,"e22":x.e22,
  2843. "e23":x.e23,"e24":x.e24,"e25":x.e25,"e26":x.e26,
  2844. "e27":x.e27,"e28":x.e28,"e29":x.e29,"e30":x.e30}
  2845. data = {"alarm":alarm,"conf":conf}
  2846. data = json.dumps(data)
  2847. return HttpResponse(data)
  2848. # 气象站阈值记录
  2849. class QXZ_Warning_List(ListView):
  2850. def get(self,request):
  2851. return render(request, 'backstageNet/warn/warnRecord.html', context={})
  2852. def post(self,request):
  2853. alarm = request.POST.get('alarm')
  2854. print(alarm)
  2855. print(eval(alarm)["equip_id"])
  2856. e_id = eval(alarm)["equip_id"]
  2857. tel = eval(alarm)["tel"]
  2858. equip_obj = Equip.objects.get(equip_id=e_id)
  2859. if QXZ_Alarm.objects.filter(equip_id=e_id).exists():
  2860. alarm_obj = QXZ_Alarm.objects.get(equip_id=equip_obj)
  2861. alarm_obj.conf = alarm
  2862. alarm_obj.tel = tel
  2863. alarm_obj.save()
  2864. print("修改成功")
  2865. else:
  2866. QXZ_Alarm.objects.create(equip_id=equip_obj,conf=alarm,tel=tel)
  2867. return HttpResponse("0")
  2868. # 生产方式设置
  2869. class Production_Set(ListView):
  2870. def get(self,request):
  2871. user_name = request.user.username
  2872. print('user_name=', user_name)
  2873. current_user = MyUser.objects.get(username=user_name)
  2874. equip_list = Equip.objects.filter(equip_user=current_user,equip_type=5)
  2875. if current_user.is_staff:
  2876. equip_list = Equip.objects.filter(equip_type=5)
  2877. return render(request, 'backstageNet/warn/productionset.html', context={"equip_list":equip_list})
  2878. def post(self,request):
  2879. pass
  2880. # 农场划分
  2881. class Farm_Mark(ListView):
  2882. def get(self,request):
  2883. return render(request, 'backstageNet/basicSet/farmmark.html', context={})
  2884. def post(self,request):
  2885. pass
  2886. # 农场列表
  2887. class Farm_List(ListView):
  2888. def get(self,request):
  2889. return render(request, 'backstageNet/basicSet/farmlist.html', context={})
  2890. def post(self,request):
  2891. pass
  2892. # 交通指引
  2893. class Traffic_Line(ListView):
  2894. def get(self,request):
  2895. return render(request, 'backstageNet/trafficLine/trafficLine.html', context={})
  2896. def post(self,request):
  2897. pass
  2898. # 管理员新闻发布
  2899. class Policy_Pub(ListView):
  2900. def get(self,request):
  2901. return render(request, 'backstageNet/annunciate/policyPub.html', context={})
  2902. def post(self,request):
  2903. username = request.user.username
  2904. print('username:',username)
  2905. current_user = MyUser.objects.get(username=username)
  2906. # news_photo = request.POST.get('upload')
  2907. art_type = request.POST.get('type')
  2908. # writer = request.POST.get('writer')
  2909. # intro = request.POST.get('intro')
  2910. title = request.POST.get('title')
  2911. content = request.POST.get('content')
  2912. policyid = request.POST.get("id")
  2913. #修改
  2914. if policyid:
  2915. try:
  2916. CKArticle.objects.filter(id=policyid).update(art_type=art_type,title=title,content=content,hidden=True)
  2917. data = "1"
  2918. except Exception as e:
  2919. print(e)
  2920. data = "0"
  2921. #创建
  2922. else:
  2923. try:
  2924. CKArticle.objects.create(author=current_user,art_type=art_type,title=title,content=content,hidden=True)
  2925. data = "1"
  2926. except Exception as e:
  2927. print(e)
  2928. data = "0"
  2929. return HttpResponse(data)
  2930. # 管理员新闻列表
  2931. class Policy_List_View(ListView):
  2932. def get(self,request):
  2933. return render(request, 'backstageNet/annunciate/policyListView.html', context={})
  2934. def post(self,request):
  2935. policyid = request.POST.get("id")
  2936. req = request.POST.get("req")
  2937. art_list = CKArticle.objects.filter(id=policyid)
  2938. data = []
  2939. #查看
  2940. if req == "see":
  2941. for i in art_list:
  2942. data.append({
  2943. "art_type":i.art_type,
  2944. "title":i.title,
  2945. "content":i.content,
  2946. "time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),
  2947. "author":i.author.username
  2948. })
  2949. elif req == "del":
  2950. art_list.delete()
  2951. data="1"
  2952. data = json.dumps(data,ensure_ascii=False)
  2953. return HttpResponse(data)
  2954. # 管理员新闻列表
  2955. class Policy_List(ListView):
  2956. def get(self,request):
  2957. page = int(request.GET.get("page"))
  2958. art_list = CKArticle.objects.all().exclude(art_type=5)
  2959. nums = art_list.count()
  2960. art = art_list[(10*(page-1)):(page*10)]
  2961. return render(request, 'backstageNet/annunciate/policyList.html', context={"art":art,"nums":nums})
  2962. def post(self,request):
  2963. data = []
  2964. req = request.POST.get("req")
  2965. page = int(request.POST.get("page"))
  2966. print(req)
  2967. if req == "":
  2968. art_list = CKArticle.objects.filter(art_type__lte=2)
  2969. nums = art_list.count()
  2970. else:
  2971. art_list = CKArticle.objects.filter(art_type=req)
  2972. #筛选
  2973. nums = art_list.count()
  2974. art = art_list[(10*(page-1)):(page*10)]
  2975. return render(request, 'backstageNet/annunciate/policyList.html', context={"art":art,"nums":nums})
  2976. # 个人农场主页
  2977. class Person_Farm(ListView):
  2978. def get(self,request):
  2979. uname = request.GET.get('name')
  2980. current_user = MyUser.objects.get(username=uname)
  2981. news = CKArticle.objects.filter(author=current_user)
  2982. garden = GardenArea.objects.get(user=current_user)
  2983. video = Video_data.objects.filter(author=current_user)
  2984. product = Product.objects.filter(author=current_user)
  2985. return render(request, 'outerNet/person_farm.html', context={"news":news,"garden":garden,"video":video,"product":product})
  2986. def post(self,request):
  2987. pass
  2988. # 农场管理界面
  2989. class Person_Farm_Edit(ListView):
  2990. def get(self,request):
  2991. username = request.user.username
  2992. print('username:',username)
  2993. user = MyUser.objects.get(username=username)
  2994. print("当前用户为:", username)
  2995. return render(request, 'backstageNet/production/person_farm_edit.html', context={"current_user":user})
  2996. def post(self,request):
  2997. username = request.user.username
  2998. print('username:',username)
  2999. current_user = MyUser.objects.get(username=username)
  3000. try:
  3001. gar_area = GardenArea.objects.get(user=current_user)
  3002. data = {"id":current_user.id,"name":gar_area.name,"manage":gar_area.manage,"mobile":gar_area.mobile,
  3003. "area":gar_area.area,"location":gar_area.location,"location_2":gar_area.location_2,"addr":gar_area.addr,
  3004. "desc":gar_area.desc,"img":gar_area.img,"guide_img":gar_area.guide_img
  3005. }
  3006. except Exception as e:
  3007. print(e)
  3008. data = {"id":"","name":"","manage":"","mobile":"",
  3009. "area":"","location":"","addr":"",
  3010. "desc":"","img":"","guide_img":""
  3011. }
  3012. data = json.dumps(data)
  3013. return HttpResponse(data)
  3014. # 园区发布
  3015. class Person_Area_Pub(ListView):
  3016. def get(self,request):
  3017. pass
  3018. def post(self,request):
  3019. # current_user = MyUser.objects.get(username='admin')
  3020. username = request.user.username
  3021. print('username:',username)
  3022. user = MyUser.objects.get(username=username)
  3023. print("当前用户为:", username)
  3024. # 农场名称
  3025. name = request.POST.get('name')
  3026. # 负责人
  3027. manage = request.POST.get('manage')
  3028. # 联系电话
  3029. mobile = request.POST.get('mobile')
  3030. # 面积
  3031. area = request.POST.get('area')
  3032. # 农场介绍
  3033. desc = request.POST.get('desc')
  3034. # 图片
  3035. img = request.POST.get('img')
  3036. img_1 = request.POST.get('img_1')
  3037. location = request.POST.get('location')
  3038. location_2 = request.POST.get('location_2')
  3039. addr = request.POST.get('addr')
  3040. guide_img = request.POST.get('guide_img')
  3041. if GardenArea.objects.filter(user=user).exists():
  3042. try:
  3043. gar_obj = GardenArea.objects.get(user=user)
  3044. gar_obj.name = name
  3045. gar_obj.manage = manage
  3046. gar_obj.mobile = mobile
  3047. gar_obj.area = area
  3048. gar_obj.desc = desc
  3049. gar_obj.img = img
  3050. gar_obj.location = location
  3051. gar_obj.location_2 = location_2
  3052. gar_obj.addr = addr
  3053. gar_obj.guide_img = guide_img
  3054. gar_obj.img_1 = img_1
  3055. gar_obj.save()
  3056. data = "1"
  3057. except Exception as e:
  3058. print(e)
  3059. data = "0"
  3060. else:
  3061. try:
  3062. GardenArea.objects.create(user=user,name=name,manage=manage,mobile=mobile,
  3063. area=area,desc=desc,img=img,guide_img=guide_img,img_1=img_1,location_2=location_2,
  3064. location=location,addr=addr)
  3065. data = "1"
  3066. except Exception as e:
  3067. print(e)
  3068. data = "0"
  3069. return HttpResponse(data)
  3070. class Person_View(ListView):
  3071. def get(self,request):
  3072. # 接收当前用户
  3073. # current_user = request.session.get('username')
  3074. username = request.user.username
  3075. print('username:',username)
  3076. current_user = MyUser.objects.get(username=username)
  3077. # print("current_user:", current_user)
  3078. # current_user = MyUser.objects.get(username=current_user)
  3079. page = request.GET.get("page")
  3080. uname = request.GET.get("uname")
  3081. user_list = MyUser.objects.all()
  3082. nums = user_list.count()
  3083. return render(request, 'backstageNet/systemSet/userManage.html', context={"nums": nums,"page":page,"uname":uname})
  3084. def post(self, request):
  3085. pass
  3086. # 地图设置
  3087. class SetMap_View(ListView):
  3088. def get(self,request):
  3089. # 接收当前用户
  3090. # current_user = request.session.get('username')
  3091. username = request.user.username
  3092. print('username:',username)
  3093. current_user = MyUser.objects.get(username=username)
  3094. # print("current_user:", current_user)
  3095. # current_user = MyUser.objects.get(username=current_user)
  3096. page = request.GET.get("page")
  3097. uname = request.GET.get("uname")
  3098. user_list = MyUser.objects.all()
  3099. nums = user_list.count()
  3100. pic_list = Pic_Info.objects.filter(pic_user=current_user)
  3101. return render(request, 'backstageNet/systemSet/mapManage.html', context={"nums": nums,"page":page,"uname":uname,"pic_list":pic_list})
  3102. def post(self, request):
  3103. map_photo = request.FILES.get('upicture')
  3104. if map_photo:
  3105. print("地图图片:", map_photo)
  3106. map_photo_dir = 'map_photo/'
  3107. end_name = map_photo.name.split('.')[-1]
  3108. # 判断如果路径不存在,即创建路径
  3109. if os.path.exists(map_photo_dir) == False:
  3110. os.makedirs(map_photo_dir)
  3111. img = Image.open(map_photo)
  3112. # img = img.convert('RGB')
  3113. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  3114. pic_name = now_time + '.' + end_name
  3115. print("pic_name:", pic_name)
  3116. img.save(map_photo_dir + pic_name)
  3117. news_photo = map_photo_dir + pic_name
  3118. print("new_photo:",news_photo)
  3119. data = {"code": 0,"msg": "","data": {"src": news_photo}}
  3120. else:
  3121. new_photo = "0"
  3122. data = {"code": 404,"msg": "","data": {"src": news_photo}}
  3123. data = json.dumps(data)
  3124. return HttpResponse(data)
  3125. class Person_List(ListView):
  3126. def get(self,request):
  3127. page = int(request.GET.get('page'))
  3128. print("page=", page)
  3129. uname = request.GET.get("uname")
  3130. # 接收当前用户
  3131. # current_user = request.session.get('username')
  3132. username = request.user.username
  3133. print('username:',username)
  3134. current_user = MyUser.objects.get(username=username)
  3135. # print("current_user:", current_user)
  3136. # current_user = MyUser.objects.get(username=current_user)
  3137. # if current_user.is_superuser == True:
  3138. user_list = MyUser.objects.all().order_by(
  3139. "-date_joined")[(10*(page-1)):(page*10)]
  3140. if uname:
  3141. user_list = MyUser.objects.filter(username__contains=uname).order_by(
  3142. "-date_joined")[(10*(page-1)):(page*10)]
  3143. return render(request, 'backstageNet/systemSet/user_list.html', context={'user_list': user_list})
  3144. def post(self,request):
  3145. # current_user = request.session.get('username')
  3146. # print("current_user:", current_user)
  3147. username = request.user.username
  3148. print('username:',username)
  3149. current_user = MyUser.objects.get(username=username)
  3150. print("筛选:")
  3151. f_name = request.POST.get('uname')
  3152. page = int(request.POST.get('page'))
  3153. print("page:", page)
  3154. user_list = MyUser.objects.filter(username__contains=f_name)
  3155. nums = user_list.count()
  3156. user_list = user_list[(10*(page-1)):(page*10)]
  3157. return render(request, 'backstageNet/systemSet/user_list.html', context={'user_list': user_list, "nums": nums})
  3158. class Area_Create(ListView):
  3159. def get(self,request):
  3160. username = request.user.username
  3161. print('username:',username)
  3162. current_user = MyUser.objects.get(username=username)
  3163. currpage = request.GET.get('currpage')
  3164. uname = request.GET.get("uname")
  3165. f_name = request.GET.get("f_name")
  3166. c_id = request.GET.get("id")
  3167. user_obj = MyUser.objects.get(username=uname)
  3168. try:
  3169. curr_area = GardenArea.objects.get(user=user_obj)
  3170. # user_area = {"name":curr_area.name,"location":curr_area.location}
  3171. except Exception as e:
  3172. print(e)
  3173. curr_area = ""
  3174. # user_area = {"name":"","location":""}
  3175. return render(request, 'backstageNet/systemSet/onlineSplit.html', context={"currpage":currpage,"uname":uname,"f_name":f_name,"curr_area":curr_area,"id":c_id})
  3176. def post(self,request):
  3177. uname = request.POST.get("uname")
  3178. name = request.POST.get("name")
  3179. area = request.POST.get("area")
  3180. location = request.POST.get("location")
  3181. location_2 = request.POST.get("location_2")
  3182. user_obj = MyUser.objects.get(username=uname)
  3183. if GardenArea.objects.filter(user=user_obj).exists():
  3184. try:
  3185. area_obj = GardenArea.objects.get(user=user_obj)
  3186. area_obj.name = name
  3187. area_obj.area = area
  3188. area_obj.location = location
  3189. area_obj.location_2 = location_2
  3190. area_obj.upl_time = datetime.datetime.now()
  3191. area_obj.save()
  3192. data = "1"
  3193. except Exception as e:
  3194. print(e)
  3195. data = "0"
  3196. else:
  3197. try:
  3198. GardenArea.objects.create(user=user_obj,name=name,area=area,location=location,location_2=location_2,upl_time=datetime.datetime.now())
  3199. data = "1"
  3200. except Exception as e:
  3201. print(e)
  3202. data = "0"
  3203. return HttpResponse(data)
  3204. class Area_Map(ListView):
  3205. def get(self,request):
  3206. return render(request, 'backstageNet/systemSet/onlineSplitMap.html', context={})
  3207. def post(self,request):
  3208. uname = request.POST.get("uname")
  3209. user_obj = MyUser.objects.get(username=uname)
  3210. all_area = []
  3211. area_list = GardenArea.objects.all().exclude(user=user_obj)
  3212. for i in area_list:
  3213. all_area.append({"name":i.name,"location_2":i.location_2})
  3214. try:
  3215. curr_area = GardenArea.objects.get(user=user_obj)
  3216. user_area = {"name":curr_area.name,"location_2":curr_area.location_2}
  3217. except Exception as e:
  3218. print(e)
  3219. user_area = {"name":"","location_2":""}
  3220. data = json.dumps({"all_area":all_area,"user_area":user_area})
  3221. return HttpResponse(data)
  3222. # 菜单权限
  3223. class Limit(ListView):
  3224. def get(self,request):
  3225. currpage = request.GET.get('currpage')
  3226. uname = request.GET.get("uname")
  3227. f_name = request.GET.get("f_name")
  3228. return render(request, 'backstageNet/limit/limit.html', context={"currpage":currpage,"uname":uname,"f_name":f_name})
  3229. def post(self,request):
  3230. uname = request.POST.get("uname")
  3231. user_obj = MyUser.objects.get(username=uname)
  3232. return HttpResponse(user_obj.limit)
  3233. class Limit_View(ListView):
  3234. def get(self,request):
  3235. # 接收当前用户
  3236. # current_user = request.session.get('username')
  3237. username = request.user.username
  3238. print('username:',username)
  3239. current_user = MyUser.objects.get(username=username)
  3240. # print("current_user:", current_user)
  3241. # current_user = MyUser.objects.get(username=current_user)
  3242. page = request.GET.get("page")
  3243. uname = request.GET.get("uname")
  3244. user_list = MyUser.objects.all()
  3245. nums = user_list.count()
  3246. return render(request, 'backstageNet/limit/limitUserManage.html', context={"nums": nums,"page":page,"uname":uname})
  3247. def post(self, request):
  3248. uname = request.POST.get("uname")
  3249. limit = request.POST.get("limit")
  3250. user_obj = MyUser.objects.get(username=uname)
  3251. try:
  3252. user_obj.limit = limit
  3253. user_obj.save()
  3254. data = "1"
  3255. except Exception as e:
  3256. print("错误信息为",e)
  3257. data = "0"
  3258. return HttpResponse(data)
  3259. class Person_Limit(ListView):
  3260. def get(self,request):
  3261. page = int(request.GET.get('page'))
  3262. print("page=", page)
  3263. uname = request.GET.get("uname")
  3264. # 接收当前用户
  3265. # current_user = request.session.get('username')
  3266. username = request.user.username
  3267. print('username:',username)
  3268. current_user = MyUser.objects.get(username=username)
  3269. # print("current_user:", current_user)
  3270. # current_user = MyUser.objects.get(username=current_user)
  3271. # if current_user.is_superuser == True:
  3272. user_list = MyUser.objects.all().order_by(
  3273. "-date_joined")[(10*(page-1)):(page*10)]
  3274. if uname:
  3275. user_list = MyUser.objects.filter(username__contains=uname).order_by(
  3276. "-date_joined")[(10*(page-1)):(page*10)]
  3277. return render(request, 'backstageNet/limit/limit_user_list.html', context={'user_list': user_list})
  3278. def post(self,request):
  3279. # current_user = request.session.get('username')
  3280. # print("current_user:", current_user)
  3281. username = request.user.username
  3282. print('username:',username)
  3283. user_list = MyUser.objects.get(username=username)
  3284. print("筛选:")
  3285. f_name = request.POST.get('uname')
  3286. page = int(request.POST.get('page'))
  3287. print("page:", page)
  3288. nums = 1
  3289. if f_name:
  3290. user_list = MyUser.objects.filter(username__contains=f_name)
  3291. nums = user_list.count()
  3292. user_list = user_list[(10*(page-1)):(page*10)]
  3293. return render(request, 'backstageNet/limit/limit_user_list.html', context={'user_list': user_list, "nums": nums})
  3294. # 专家诊断
  3295. class Expert(ListView):
  3296. def get(self,request):
  3297. username = request.user.username
  3298. print('username:',username)
  3299. user = MyUser.objects.get(username=username)
  3300. role = "0"
  3301. if user.is_staff == True:
  3302. role = "1"
  3303. return render(request, 'backstageNet/limit/expert.html', context={"role":role})
  3304. def post(self,request):
  3305. pass
  3306. class learnDepot(ListView):
  3307. def get(self,request):
  3308. return render(request, 'backstageNet/limit/learnDepot.html', context={})
  3309. def post(self,request):
  3310. pass
  3311. # 创建新用户
  3312. class Create_User(ListView):
  3313. def get(self,request):
  3314. currpage = request.GET.get("currpage")
  3315. f_name = request.GET.get("f_name")
  3316. userId = request.GET.get("userId")
  3317. return render(request, 'backstageNet/systemSet/creatUser.html', context={"currpage":currpage,"f_name":f_name,"userId":userId})
  3318. def post(self,request):
  3319. name = request.POST.get("name")
  3320. email = request.POST.get("email")
  3321. phone = request.POST.get("phone")
  3322. role = request.POST.get("role")
  3323. user_remark = request.POST.get("desc")
  3324. uid = request.POST.get("id")
  3325. if uid:
  3326. userobj = MyUser.objects.get(id=uid)
  3327. userobj.user_phone = phone
  3328. userobj.is_staff = role
  3329. userobj.user_remark = user_remark
  3330. userobj.save()
  3331. return HttpResponse("1")
  3332. if MyUser.objects.extra(where=['binary username=%s'], params=[name]).exists():
  3333. # 用户已存在!!!
  3334. data = "3"
  3335. return HttpResponse(data)
  3336. elif MyUser.objects.filter(email = email).exists():
  3337. # 该邮箱已注册!!!
  3338. data = "2"
  3339. return HttpResponse(data)
  3340. else:
  3341. UserModel = get_user_model()
  3342. # 创建用户:
  3343. try:
  3344. user = UserModel.objects.create_user(username=name, email=email,\
  3345. user_phone=phone, password="yf123456",\
  3346. is_active = 1,is_staff = int(role),user_remark = user_remark,limit =
  3347. [{
  3348. "id": 1,
  3349. "title": "首页",
  3350. "icon": "&#xe626;",
  3351. "url": "map",
  3352. "checked": "false",
  3353. "children": []
  3354. },
  3355. {
  3356. "id": 3,
  3357. "title": "信息发布",
  3358. "icon": "&#xe765;",
  3359. "url": "",
  3360. "children": [
  3361. {
  3362. "id": 3.1,
  3363. "title": "新闻资讯",
  3364. "url": "news_pub",
  3365. },
  3366. {
  3367. "id": 3.2,
  3368. "title": "视频资讯",
  3369. "url": "video_pub",
  3370. },
  3371. {
  3372. "id": 3.2,
  3373. "title": "产品展厅",
  3374. "url": "equip_pub",
  3375. },
  3376. {
  3377. "id": 3.3,
  3378. "title": "四季采摘",
  3379. "url": "garden_pub",
  3380. },
  3381. {
  3382. "id": 3.4,
  3383. "title": "民宿导览",
  3384. "url": "dorm_pub",
  3385. },
  3386. ]
  3387. },
  3388. ])
  3389. user.save()
  3390. data = "1"
  3391. except Exception as e:
  3392. print(e)
  3393. data = "0"
  3394. return HttpResponse(data)
  3395. # 管理员修改密码
  3396. class Change_Pwd(ListView):
  3397. def get(self,request):
  3398. pass
  3399. def post(self,request):
  3400. uname = request.POST.get("uname")
  3401. new_pwd = request.POST.get("userpassword")
  3402. print("uname:",uname)
  3403. print("new_pwd:",new_pwd)
  3404. user = MyUser.objects.get(username=uname)
  3405. user.set_password(new_pwd)
  3406. try:
  3407. user.save()
  3408. data = "1"
  3409. except:
  3410. data = "0"
  3411. return HttpResponse(data)
  3412. # 删除用户
  3413. class Delete_User(ListView):
  3414. def get(self,request):
  3415. pass
  3416. def post(self,request):
  3417. uname = request.POST.get("uname")
  3418. try:
  3419. user_obj = MyUser.objects.get(username=uname)
  3420. user_obj.delete()
  3421. data = "1"
  3422. except Exception as e:
  3423. print(e)
  3424. data = "0"
  3425. return HttpResponse(data)
  3426. # 用户修改自己密码
  3427. class User_Change_Pwd(ListView):
  3428. def get(self,request):
  3429. return render(request, 'backstageNet/systemSet/changePwd.html', context={})
  3430. def post(self,request):
  3431. username = request.user.username
  3432. print('username:',username)
  3433. user = MyUser.objects.get(username=username)
  3434. print("当前用户为:", username)
  3435. oldpassword = request.POST.get('oldpassword')
  3436. password = request.POST.get('password')
  3437. print("post的oldpassword:", oldpassword)
  3438. print("post的password:", password)
  3439. if(check_password(oldpassword, user.password)):
  3440. user.set_password(password)
  3441. user.save()
  3442. data = "1"
  3443. else:
  3444. data = "0"
  3445. return HttpResponse(data)
  3446. # 用户信息
  3447. class User_Info(ListView):
  3448. def get(self,request):
  3449. pass
  3450. def post(self,request):
  3451. uid = request.POST.get('id')
  3452. user = MyUser.objects.get(id=uid)
  3453. data = {"name":user.username,"email":user.email,"phone":user.user_phone,"remark":user.user_remark,"role":user.is_staff}
  3454. data = json.dumps(data)
  3455. return HttpResponse(data)
  3456. # 气象站阈值接口
  3457. class QXZ_Auto(ListView):
  3458. def get(self,request):
  3459. pass
  3460. def post(self,request):
  3461. imei = request.POST.get('imei')
  3462. try:
  3463. auto_list = QXZAutoswitch.objects.get(equip_id_id=imei)
  3464. qxz_list = QXZstatus.objects.get(equip_id_id=imei)
  3465. data = {"qxz_list":eval(qxz_list.qxz_status)['data'],"auto_list":auto_list.qxz_auto}
  3466. except:
  3467. data = {"qxz_list":[],"auto_list":[]}
  3468. data = json.dumps(data)
  3469. return HttpResponse(data)
  3470. # 气象站阈值设置接口
  3471. class QXZ_Value_Mqtt(ListView):
  3472. def get(self,request):
  3473. pass
  3474. def post(self,request):
  3475. req = request.POST.get('req')
  3476. jk = request.POST.get('JK')
  3477. ekey = request.POST.get('eKey')
  3478. upper = request.POST.get('upper')
  3479. lower = request.POST.get('lower')
  3480. method = request.POST.get('method')
  3481. imei = request.POST.get('imei')
  3482. # topic = "/yfkj/qxz/sub/"+imei
  3483. # if req == "read":
  3484. # payload = {"ext":{"type":"status"},"cmd":"read"}
  3485. # elif req == "set":
  3486. # way = int(request.POST.get('way'))
  3487. # switch = int(request.POST.get('switch'))
  3488. # payload = {"cmd":"control","ext":{"JK":way,"status":switch}}
  3489. # elif req == "conf":
  3490. # payload = {"ext":{"type":"jkStatus"},"cmd":"read"}
  3491. # cmd = {"topic":topic,"payload":json.dumps(payload),'qos':0}
  3492. # res = requests.post("http://www.yfzhwlw.com:8080/api/v2/mqtt/publish",
  3493. # data=json.dumps(cmd), auth=HTTPBasicAuth("admin", "yfkj_6019"))
  3494. # print("res.status_code:", type(res.status_code))
  3495. # if res.status_code == 200:
  3496. # data = "0"
  3497. # return HttpResponse(data)
  3498. # else:
  3499. # data = "1"
  3500. # return HttpResponse(data)
  3501. return HttpResponse("0")
  3502. # 保存图片信息
  3503. class Pic_locat(ListView):
  3504. def get(self,request):
  3505. pass
  3506. def post(self,request):
  3507. username = request.user.username
  3508. print('username:',username)
  3509. user = MyUser.objects.get(username=username)
  3510. print("当前用户为:", username)
  3511. # 东北点
  3512. locat1 = request.POST.get('locat1')
  3513. # 西南点
  3514. locat2 = request.POST.get('locat2')
  3515. # 图片地址
  3516. addr = request.POST.get('addr')
  3517. locat_info = request.POST.get('locat_info')
  3518. pic_center = request.POST.get('pic_center')
  3519. if Pic_Info.objects.filter(pic_user=user).exists():
  3520. pic_obj = Pic_Info.objects.get(pic_user=user)
  3521. pic_obj.locat1=locat1
  3522. pic_obj.locat2=locat2
  3523. pic_obj.pic_center=pic_center
  3524. pic_obj.addr=addr
  3525. pic_obj.locat_info=locat_info
  3526. pic_obj.save()
  3527. return HttpResponse("1")
  3528. try:
  3529. Pic_Info.objects.create(pic_user=user,locat1=locat1,locat2=locat2,pic_center=pic_center,addr=addr,locat_info=locat_info)
  3530. return HttpResponse("1")
  3531. except Exception as e:
  3532. print("--->>",e)
  3533. return HttpResponse("0")
  3534. class Home_Farm(ListView):
  3535. def get(self,request):
  3536. username = request.user.username
  3537. print('username:',username)
  3538. user = MyUser.objects.get(username=username)
  3539. print("当前用户为:", username)
  3540. farm_list = FarmList.objects.all()
  3541. return render(request, 'backstageNet/home.html', context={"farm_list":farm_list})
  3542. def post(self, request):
  3543. pass
  3544. class Alarm_Record(ListView):
  3545. def get(self,request):
  3546. pass
  3547. def post(self, request):
  3548. alarm_list = QXZ_Alarm_Log.objects.all()
  3549. page = int(request.POST.get("page"))
  3550. dat = []
  3551. for i in alarm_list:
  3552. dat.append({"equip_id":i.equip_id_id,"logs":i.logs,"ekey":i.ekey,"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S')})
  3553. nums = len(dat)
  3554. dat = dat[(10*(page-1)):(page*10)]
  3555. data = {"dat":dat,"nums":nums}
  3556. data = json.dumps(data)
  3557. return HttpResponse(data)
  3558. class Expert_Img(ListView):
  3559. def get(self,request):
  3560. pass
  3561. def post(self,request):
  3562. # e_id = request.POST.get('id')
  3563. # news_sta = Article.objects.get(id=e_id)
  3564. guide_photo = request.FILES['upload']
  3565. if guide_photo:
  3566. print("新闻图片:", guide_photo)
  3567. news_photo_dir = 'media/uploads/'
  3568. end_name = guide_photo.name.split('.')[-1]
  3569. # 判断如果路径不存在,即创建路径
  3570. if os.path.exists(news_photo_dir) == False:
  3571. os.makedirs(news_photo_dir)
  3572. img = Image.open(guide_photo)
  3573. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  3574. pic_name = now_time + '.' + end_name
  3575. print("pic_name:", pic_name)
  3576. img.save(news_photo_dir + pic_name)
  3577. news_photo = news_photo_dir + pic_name
  3578. print("new_photo:",news_photo)
  3579. data = {"code": 0,"msg": "","data": {"src": news_photo}}
  3580. else:
  3581. new_photo = "0"
  3582. data = {"code": 404,"msg": "","data": {"src": news_photo}}
  3583. data = json.dumps(data)
  3584. return HttpResponse(data)
  3585. class Expert_Info(ListView):
  3586. def get(self,request):
  3587. page = int(request.GET.get("page"))
  3588. expert = Experts.objects.all()
  3589. nums = expert.count()
  3590. username = request.user.username
  3591. print('username:',username)
  3592. user = MyUser.objects.get(username=username)
  3593. role = "0"
  3594. if user.is_staff == True:
  3595. role = "1"
  3596. expert = expert[(9*(page-1)):(page*9)]
  3597. return render(request, 'backstageNet/limit/expertList.html', context={"expert":expert,"nums":nums,"role":role})
  3598. def post(self, request):
  3599. ex_id = request.POST.get('id')
  3600. if ex_id:
  3601. Experts.objects.get(id=ex_id).delete()
  3602. return HttpResponse("1")
  3603. name = request.POST.get('name')
  3604. relation = request.POST.get('relation')
  3605. desc = request.POST.get('desc')
  3606. pic = request.POST.get('pic')
  3607. Experts.objects.create(name=name,relation=relation,desc=desc,pic=pic)
  3608. return HttpResponse("1")
  3609. class Add_Relation(ListView):
  3610. def get(self,request):
  3611. return render(request, 'backstageNet/systemSet/partners.html', context={})
  3612. def post(self, request):
  3613. ex_id = request.POST.get('id')
  3614. if ex_id:
  3615. Relations.objects.get(id=ex_id).delete()
  3616. return HttpResponse("1")
  3617. name = request.POST.get('name')
  3618. relation = request.POST.get('relation')
  3619. desc = request.POST.get('desc')
  3620. pic = request.POST.get('pic')
  3621. Relations.objects.create(name=name,relation=relation,pic=pic)
  3622. return HttpResponse("1")
  3623. class Add_Relation_List(ListView):
  3624. def get(self,request):
  3625. page = int(request.GET.get("page"))
  3626. partner = Relations.objects.all()
  3627. nums = partner.count()
  3628. partner = partner[(10*(page-1)):(page*10)]
  3629. return render(request, 'backstageNet/systemSet/partnersList.html', context={"partner":partner,"nums":nums})
  3630. def post(self, request):
  3631. pass
  3632. class Equip_Addr(ListView):
  3633. def get(self,request):
  3634. pass
  3635. def post(self, request):
  3636. username = request.user.username
  3637. print('username:',username)
  3638. user = MyUser.objects.get(username=username)
  3639. if user.is_staff == True:
  3640. equip_list = Equip.objects.all()
  3641. else:
  3642. equip_list = Equip.objects.filter(equip_user=user)
  3643. data = []
  3644. for i in equip_list:
  3645. data.append({"equip_id":i.equip_id,"lng":i.lng,"lat":i.lat,"equip_type":i.equip_type.type_id})
  3646. data = json.dumps(data)
  3647. return HttpResponse(data)
  3648. class Equip_Location(ListView):
  3649. def get(self,request):
  3650. pass
  3651. def post(self, request):
  3652. eid = request.POST.get("e_id")
  3653. ename = request.POST.get("ename")
  3654. lng = request.POST.get("lng")
  3655. lat = request.POST.get("lat")
  3656. if ename:
  3657. if Equip.objects.filter(equip_name=ename).exists():
  3658. return HttpResponse("0")
  3659. equip_obj = Equip.objects.get(equip_id=eid)
  3660. equip_obj.equip_name = ename
  3661. equip_obj.save()
  3662. if lat:
  3663. equip_obj = Equip.objects.get(equip_id=eid)
  3664. equip_obj.lng = lng
  3665. equip_obj.lat = lat
  3666. equip_obj.save()
  3667. return HttpResponse("1")
  3668. import json
  3669. class Add_Qxz_Test(ListView):
  3670. def get(self,request):
  3671. pass
  3672. def post(self, request):
  3673. payload = request.body
  3674. payload = json.loads(payload.decode())
  3675. print("payload",payload)
  3676. print("type",type(payload))
  3677. if payload.get("cmd") == "terminalData":
  3678. print("<-----uploading data!----->")
  3679. extdata = payload.get("ext")
  3680. print(type(extdata))
  3681. qxzdata = extdata['data']
  3682. print(qxzdata)
  3683. device_id = extdata['StationID']
  3684. print(device_id)
  3685. e1 = ''
  3686. e2 = ''
  3687. e3 = ''
  3688. e4 = ''
  3689. e5 = ''
  3690. e6 = ''
  3691. e7 = ''
  3692. e8 = ''
  3693. e9 = ''
  3694. e10 = ''
  3695. e11 = ''
  3696. e12 = ''
  3697. e13 = ''
  3698. e14 = ''
  3699. e15 = ''
  3700. e16 = ''
  3701. e17 = ''
  3702. e18 = ''
  3703. e19 = ''
  3704. e20 = ''
  3705. e21 = ''
  3706. e22 = ''
  3707. e23 = ''
  3708. e24 = ''
  3709. e25 = ''
  3710. e26 = ''
  3711. e27 = ''
  3712. e28 = ''
  3713. e29 = ''
  3714. e30 = ''
  3715. conf1 = ''
  3716. conf2 = ''
  3717. conf3 = ''
  3718. conf4 = ''
  3719. conf5 = ''
  3720. conf6 = ''
  3721. conf7 = ''
  3722. conf8 = ''
  3723. conf9 = ''
  3724. conf10 = ''
  3725. conf11 = ''
  3726. conf12 = ''
  3727. conf13 = ''
  3728. conf14 = ''
  3729. conf15 = ''
  3730. conf16 = ''
  3731. conf17 = ''
  3732. conf18 = ''
  3733. conf19 = ''
  3734. conf20 = ''
  3735. conf21 = ''
  3736. conf22 = ''
  3737. conf23 = ''
  3738. conf24 = ''
  3739. conf25 = ''
  3740. conf26 = ''
  3741. conf27 = ''
  3742. conf28 = ''
  3743. conf29 = ''
  3744. conf30 = ''
  3745. for i in qxzdata:
  3746. if i['eKey'] == 'e1':
  3747. e1 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3748. conf1 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3749. if e1[0] == "#":
  3750. continue
  3751. elif i['eKey'] == 'e2':
  3752. e2 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3753. conf2 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3754. if e2[0] == "#":
  3755. continue
  3756. elif i['eKey'] == 'e3':
  3757. e3 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3758. conf3 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3759. if e3[0] == "#":
  3760. continue
  3761. elif i['eKey'] == 'e4':
  3762. e4 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3763. conf4 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3764. if e4[0] == "#":
  3765. continue
  3766. elif i['eKey'] == 'e5':
  3767. e5 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3768. conf5 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3769. if e5[0] == "#":
  3770. continue
  3771. elif i['eKey'] == 'e6':
  3772. e6 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3773. conf6 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3774. if e6[0] == "#":
  3775. continue
  3776. elif i['eKey'] == 'e7':
  3777. e7 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3778. conf7 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3779. if e7[0] == "#":
  3780. continue
  3781. elif i['eKey'] == 'e8':
  3782. e8 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3783. conf8 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3784. if e8[0] == "#":
  3785. continue
  3786. elif i['eKey'] == 'e9':
  3787. e9 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3788. conf9 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3789. if e9[0] == "#":
  3790. continue
  3791. elif i['eKey'] == 'e10':
  3792. e10 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3793. conf10 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3794. if e10[0] == "#":
  3795. continue
  3796. elif i['eKey'] == 'e11':
  3797. e11 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3798. conf11 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3799. if e11[0] == "#":
  3800. continue
  3801. elif i['eKey'] == 'e12':
  3802. e12 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3803. conf12 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3804. if e12[0] == "#":
  3805. continue
  3806. elif i['eKey'] == 'e13':
  3807. e13 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3808. conf13 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3809. if e13[0] == "#":
  3810. continue
  3811. elif i['eKey'] == 'e14':
  3812. e14 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3813. conf14 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3814. if e14[0] == "#":
  3815. continue
  3816. elif i['eKey'] == 'e15':
  3817. e15 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3818. conf15 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3819. if e15[0] == "#":
  3820. continue
  3821. elif i['eKey'] == 'e16':
  3822. e16 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3823. conf16 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3824. if e16[0] == "#":
  3825. continue
  3826. elif i['eKey'] == 'e17':
  3827. e17 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3828. conf17 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3829. if e17[0] == "#":
  3830. continue
  3831. elif i['eKey'] == 'e18':
  3832. e18 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3833. conf18 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3834. if e18[0] == "#":
  3835. continue
  3836. elif i['eKey'] == 'e19':
  3837. e19 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3838. conf19 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3839. if e19[0] == "#":
  3840. continue
  3841. elif i['eKey'] == 'e20':
  3842. e20 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3843. conf20 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3844. if e20[0] == "#":
  3845. continue
  3846. elif i['eKey'] == 'e21':
  3847. e21 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3848. conf21 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3849. if e21[0] == "#":
  3850. continue
  3851. elif i['eKey'] == 'e22':
  3852. e22 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3853. conf22 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3854. if e22[0] == "#":
  3855. continue
  3856. elif i['eKey'] == 'e23':
  3857. e23 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3858. conf23 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3859. if e23[0] == "#":
  3860. continue
  3861. elif i['eKey'] == 'e24':
  3862. e24 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3863. conf24 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3864. if e24[0] == "#":
  3865. continue
  3866. elif i['eKey'] == 'e25':
  3867. e25 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3868. conf25 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3869. if e25[0] == "#":
  3870. continue
  3871. elif i['eKey'] == 'e26':
  3872. e26 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3873. conf26 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3874. if e26[0] == "#":
  3875. continue
  3876. elif i['eKey'] == 'e27':
  3877. e27 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3878. conf27 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3879. if e27[0] == "#":
  3880. continue
  3881. elif i['eKey'] == 'e28':
  3882. e28 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3883. conf28 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3884. if e28[0] == "#":
  3885. continue
  3886. elif i['eKey'] == 'e29':
  3887. e29 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3888. conf29 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3889. if e29[0] == "#":
  3890. continue
  3891. elif i['eKey'] == 'e30':
  3892. e30 = str(i['eValue']) + '#' + str(i['eNum']) + '#' + str(i['eKey'])
  3893. conf30 = qxz_dict[i['eNum']][1] + '#' + qxz_dict[i['eNum']][2]
  3894. if e30[0] == "#":
  3895. continue
  3896. qxz_exist = Equip.objects.filter(equip_id=device_id)
  3897. # print("extdata:", extdata)
  3898. # 设备存在,进一步判断状态表是否存在:
  3899. times = datetime.datetime.now()
  3900. if qxz_exist.exists():
  3901. print("<-----this equip is existed!----->")
  3902. try:
  3903. e_id = Equip.objects.get(equip_id=device_id)
  3904. except:
  3905. print("<-----this equip didn't exist!----->")
  3906. try:
  3907. # 设备数据表直接储存数据
  3908. # QXZdata.objects.create(equip_id=e_id, qxz_data=extdata)
  3909. QXZdata_New.objects.create(equip_id=e_id,
  3910. e1=e1,e2=e2,e3=e3,e4=e4,e5=e5,e6=e6,e7=e7,e8=e8,e9=e9,e10=e10,
  3911. e11=e11,e12=e12,e13=e13,e14=e14,e15=e15,e16=e16,e17=e17,e18=e18,e19=e19,e20=e20,
  3912. e21=e21,e22=e22,e23=e23,e24=e24,e25=e25,e26=e26,e27=e27,e28=e28,e29=e29,e30=e30)
  3913. print("<-----data update success!----->")
  3914. except:
  3915. print("<-----data update failed!----->")
  3916. if QXZstatus_New.objects.filter(equip_id=e_id).exists():
  3917. print("<-----this equip's status is existed!----->")
  3918. try:
  3919. sta = QXZstatus_New.objects.get(equip_id=e_id)
  3920. sta.e1 = e1
  3921. sta.e2 = e2
  3922. sta.e3 = e3
  3923. sta.e4 = e4
  3924. sta.e5 = e5
  3925. sta.e6 = e6
  3926. sta.e7 = e7
  3927. sta.e8 = e8
  3928. sta.e9 = e9
  3929. sta.e10 = e10
  3930. sta.e11 = e11
  3931. sta.e12 = e12
  3932. sta.e13 = e13
  3933. sta.e14 = e14
  3934. sta.e15 = e15
  3935. sta.e16 = e16
  3936. sta.e17 = e17
  3937. sta.e18 = e18
  3938. sta.e19 = e19
  3939. sta.e20 = e20
  3940. sta.e21 = e21
  3941. sta.e22 = e22
  3942. sta.e23 = e23
  3943. sta.e24 = e24
  3944. sta.e25 = e25
  3945. sta.e26 = e26
  3946. sta.e27 = e27
  3947. sta.e28 = e28
  3948. sta.e29 = e29
  3949. sta.e30 = e30
  3950. sta.is_online = "1"
  3951. sta.save()
  3952. print("<-----status update success!----->")
  3953. except:
  3954. print("<-----status update failed!----->")
  3955. else:
  3956. # 设备状态表不存在、创建状态表:
  3957. print("<-----this equip's status is not existed!----->")
  3958. try:
  3959. QXZstatus_New.objects.create(equip_id=e_id,
  3960. e1=e1,e2=e2,e3=e3,e4=e4,e5=e5,e6=e6,e7=e7,e8=e8,e9=e9,e10=e10,
  3961. e11=e11,e12=e12,e13=e13,e14=e14,e15=e15,e16=e16,e17=e17,e18=e18,e19=e19,e20=e20,
  3962. e21=e21,e22=e22,e23=e23,e24=e24,e25=e25,e26=e26,e27=e27,e28=e28,e29=e29,e30=e30,is_online="1")
  3963. # QXZstatus.objects.create(equip_id=e_id, qxz_status=extdata)
  3964. print("<-----this equip's status table re-create successed!----->")
  3965. except:
  3966. print("<-----this equip's status table re-create failed!----->")
  3967. # 判断标题配置表
  3968. if QXZ_Conf.objects.filter(equip_id=e_id).exists():
  3969. print("------conf create default-------")
  3970. else:
  3971. QXZ_Conf.objects.create(equip_id=e_id,
  3972. e1=conf1,e2=conf2,e3=conf3,e4=conf4,e5=conf5,e6=conf6,e7=conf7,e8=conf8,e9=conf9,e10=conf10,
  3973. e11=conf11,e12=conf12,e13=conf13,e14=conf14,e15=conf15,e16=conf16,e17=conf17,e18=conf18,e19=conf19,e20=conf20,
  3974. e21=conf21,e22=conf22,e23=conf23,e24=conf24,e25=conf25,e26=conf26,e27=conf27,e28=conf28,e29=conf29,e30=conf30)
  3975. QXZ_Default_Conf.objects.create(equip_id=e_id,
  3976. e1=conf1,e2=conf2,e3=conf3,e4=conf4,e5=conf5,e6=conf6,e7=conf7,e8=conf8,e9=conf9,e10=conf10,
  3977. e11=conf11,e12=conf12,e13=conf13,e14=conf14,e15=conf15,e16=conf16,e17=conf17,e18=conf18,e19=conf19,e20=conf20,
  3978. e21=conf21,e22=conf22,e23=conf23,e24=conf24,e25=conf25,e26=conf26,e27=conf27,e28=conf28,e29=conf29,e30=conf30)
  3979. print("------conf create success-------")
  3980. # 设备状态表存在、刷新状态表:
  3981. print("2222222")
  3982. else:
  3983. print("<-----this equip not existed!----->")
  3984. # 设备不存在,在设备列表中创建:
  3985. try:
  3986. e_type = Equip_type.objects.get(type_id="5")
  3987. e_id = Equip.objects.create(equip_id=device_id, equip_type=e_type)
  3988. print("<-----this imei add successed!----->")
  3989. try:
  3990. # 设备数据表直接储存数据
  3991. QXZdata_New.objects.create(equip_id=e_id,
  3992. e1=e1,e2=e2,e3=e3,e4=e4,e5=e5,e6=e6,e7=e7,e8=e8,e9=e9,e10=e10,
  3993. e11=e11,e12=e12,e13=e13,e14=e14,e15=e15,e16=e16,e17=e17,e18=e18,e19=e19,e20=e20,
  3994. e21=e21,e22=e22,e23=e23,e24=e24,e25=e25,e26=e26,e27=e27,e28=e28,e29=e29,e30=e30)
  3995. # QXZdata.objects.create(equip_id=e_id, qxz_data=extdata)
  3996. print("<-----data update success!----->")
  3997. except:
  3998. print("<-----data update failed!----->")
  3999. try:
  4000. QXZstatus_New.objects.create(equip_id=e_id,
  4001. e1=e1,e2=e2,e3=e3,e4=e4,e5=e5,e6=e6,e7=e7,e8=e8,e9=e9,e10=e10,
  4002. e11=e11,e12=e12,e13=e13,e14=e14,e15=e15,e16=e16,e17=e17,e18=e18,e19=e19,e20=e20,
  4003. e21=e21,e22=e22,e23=e23,e24=e24,e25=e25,e26=e26,e27=e27,e28=e28,e29=e29,e30=e30,is_online="1")
  4004. # QXZstatus.objects.create(equip_id=e_id, qxz_status=extdata)
  4005. print("<-----this imei register successed!----->")
  4006. except:
  4007. print("<-----this imei register failed!----->")
  4008. # 判断标题配置表
  4009. if QXZ_Conf.objects.filter(equip_id=e_id).exists():
  4010. print("------conf create default-------")
  4011. else:
  4012. QXZ_Conf.objects.create(equip_id=e_id,
  4013. e1=conf1,e2=conf2,e3=conf3,e4=conf4,e5=conf5,e6=conf6,e7=conf7,e8=conf8,e9=conf9,e10=conf10,
  4014. e11=conf11,e12=conf12,e13=conf13,e14=conf14,e15=conf15,e16=conf16,e17=conf17,e18=conf18,e19=conf19,e20=conf20,
  4015. e21=conf21,e22=conf22,e23=conf23,e24=conf24,e25=conf25,e26=conf26,e27=conf27,e28=conf28,e29=conf29,e30=conf30)
  4016. QXZ_Default_Conf.objects.create(equip_id=e_id,
  4017. e1=conf1,e2=conf2,e3=conf3,e4=conf4,e5=conf5,e6=conf6,e7=conf7,e8=conf8,e9=conf9,e10=conf10,
  4018. e11=conf11,e12=conf12,e13=conf13,e14=conf14,e15=conf15,e16=conf16,e17=conf17,e18=conf18,e19=conf19,e20=conf20,
  4019. e21=conf21,e22=conf22,e23=conf23,e24=conf24,e25=conf25,e26=conf26,e27=conf27,e28=conf28,e29=conf29,e30=conf30)
  4020. print("------conf create success-------")
  4021. except Exception as e:
  4022. print(e)
  4023. print("<-----this imei add failed!----->")
  4024. if payload.get("cmd") == "Status":
  4025. extdata = payload.get("ext")['terminalStatus']
  4026. print(extdata)
  4027. try:
  4028. volt = extdata["VOLT"]
  4029. rssi = extdata["RSSI"]
  4030. iccid = extdata["ICCID"]
  4031. lng = extdata["longitude"]
  4032. lat = extdata["latitude"]
  4033. led = extdata["Dotled"]
  4034. except:
  4035. pass
  4036. try:
  4037. dver = extdata["Version"]
  4038. except:
  4039. dver = ""
  4040. if qxz_exist.exists():
  4041. print("<-----this equip is existed!----->")
  4042. try:
  4043. e_id = Equip.objects.get(equip_id=device_id)
  4044. except:
  4045. print("<-----this equip didn't exist!----->")
  4046. QXZ_Info_Record.objects.create(equip_id=e_id, volt=volt,rssi=rssi)
  4047. if QXZ_Base_Info.objects.filter(equip_id=e_id).exists():
  4048. print("<-----this qxz_base_info is existed!----->")
  4049. try:
  4050. sta = QXZ_Base_Info.objects.get(equip_id=device_id)
  4051. sta.volt = volt
  4052. sta.rssi = rssi
  4053. sta.iccid = iccid
  4054. sta.lng = lng
  4055. sta.lat = lat
  4056. sta.led = led
  4057. sta.dver = dver
  4058. sta.save()
  4059. sta1 = Equip.objects.get(equip_id=device_id)
  4060. sta1.lng = lng
  4061. sta1.lat = lat
  4062. sta1.save()
  4063. print("<-----qxz_base_info update success!----->")
  4064. except:
  4065. print("<-----qxz_base_info update failed!----->")
  4066. try:
  4067. sta = QXZ_Base_Info.objects.get(equip_id=device_id)
  4068. sta.volt = volt
  4069. sta.rssi = rssi
  4070. sta.save()
  4071. print("<-----qxz_base_info update success!!!----->")
  4072. except:
  4073. pass
  4074. else:
  4075. # 设备阈值表不存在、创建阈值表:
  4076. print("<-----this qxz_base_info is not existed!----->")
  4077. try:
  4078. QXZ_Base_Info.objects.create(equip_id=device_id, volt=volt,rssi=rssi,iccid=iccid,lng=lng,lat=lat,led=led)
  4079. print("<-----this qxz_base_info table re-create successed!----->")
  4080. except:
  4081. print("<-----this qxz_base_info table re-create failed!----->")
  4082. return HttpResponse("1")
  4083. # 气象站数据导出接口
  4084. class QXZ_Data_Export(ListView):
  4085. def get(self,request):
  4086. equip_id = request.GET.get('id')
  4087. print("请求数据的设备id:",equip_id)
  4088. f_tbegin = request.GET.get('begin')
  4089. f_tend = request.GET.get('end')
  4090. filename = request.GET.get('filename')
  4091. print("f_tbegin:", f_tbegin)
  4092. print("f_tend:", f_tend)
  4093. print("f_tbegin:", type(f_tbegin))
  4094. print("f_tend:", type(f_tend))
  4095. # 查询时间段
  4096. if f_tbegin:
  4097. begindate = re.findall(r"\d+\.?\d*", f_tbegin)
  4098. enddate = re.findall(r"\d+\.?\d*", f_tend)
  4099. start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2]))
  4100. end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2]))
  4101. print("start_date:", start_date)
  4102. print("end_date:", end_date)
  4103. sta1 = QXZdata.objects.filter(equip_id=equip_id, upl_time__range=(start_date, end_date))
  4104. print("sta1:", sta1)
  4105. sta2 = [{"equip_name": x.equip_id.equip_name,
  4106. "qxz_data": eval(x.qxz_data)["data"],
  4107. "upl_time": x.upl_time.strftime("%Y-%m-%d %H:%M:%S")} for x in sta1]
  4108. # 查询全部
  4109. else:
  4110. sta1 = QXZdata.objects.filter(equip_id=equip_id)
  4111. print("sta1:",sta1)
  4112. sta2 = [{"equip_name": x.equip_id.equip_name,
  4113. "qxz_data": eval(x.qxz_data)["data"],
  4114. "upl_time": x.upl_time.strftime("%Y-%m-%d %H:%M:%S")} for x in sta1]
  4115. # print(sta2)
  4116. try:
  4117. # 遍历标题
  4118. title = []
  4119. for aaa in sta2[0]['qxz_data']:
  4120. # print(qxz_dict[aaa['eNum']][1])
  4121. title.append(qxz_dict[aaa['eNum']][1]+aaa['eKey'])
  4122. title.append("上报时间")
  4123. print(title)
  4124. # print(sta2[0]['qxz_data'])
  4125. except:
  4126. book = xlwt.Workbook() # 创建一个excel对象
  4127. sheet = book.add_sheet('Sheet1',cell_overwrite_ok=True) # 添加一个sheet页
  4128. sheet.write(0,0,"错误的时间段") # 将title数组中的字段写入到0行i列中
  4129. # 写出到IO
  4130. output = BytesIO()
  4131. book.save(output)
  4132. # 重新定位到开始
  4133. output.seek(0)
  4134. response = HttpResponse(content_type='application/vnd.ms-excel')
  4135. response['Content-Disposition'] = 'attachment;filename=%s.xls'%filename
  4136. response.write(output.getvalue())
  4137. return response
  4138. book = xlwt.Workbook() # 创建一个excel对象
  4139. sheet = book.add_sheet('Sheet1',cell_overwrite_ok=True) # 添加一个sheet页
  4140. for i in range(len(title)): # 遍历列
  4141. sheet.write(0,i,title[i]) # 将title数组中的字段写入到0行i列中
  4142. for x in range(len(sta2)): # 遍历列表
  4143. # print("行",x)
  4144. for xx in range(len(title)):
  4145. print("行",x+1,"列",xx)
  4146. # print(sta2[x]["qxz_data"][xx-1])
  4147. if xx+1 == len(title):
  4148. # print(x+1,xx,sta2[x]["upl_time"])
  4149. sheet.write(x+1,xx,sta2[x]["upl_time"])
  4150. break
  4151. # print(x+1,xx,sta2[x]["qxz_data"][xx]["eValue"]+" "+qxz_dict[sta2[x]["qxz_data"][xx]["eNum"]][2])
  4152. sheet.write(x+1,xx,sta2[x]["qxz_data"][xx]["eValue"]+" "+qxz_dict[sta2[x]["qxz_data"][xx]["eNum"]][2])
  4153. # 写出到IO
  4154. output = BytesIO()
  4155. book.save(output)
  4156. # 重新定位到开始
  4157. output.seek(0)
  4158. response = HttpResponse(content_type='application/vnd.ms-excel')
  4159. response['Content-Disposition'] = 'attachment;filename=%s.xls'%filename
  4160. response.write(output.getvalue())
  4161. return response
  4162. def post(self,request):
  4163. pass
  4164. # 系统管理上传图片
  4165. class System_Photo(ListView):
  4166. def get(self,request):
  4167. return render(request, 'backstageNet/systemSet/imageUpload.html', context={})
  4168. def post(self,request):
  4169. upl_time = timezone.now()
  4170. basestr = request.FILES.get("upload")
  4171. basestr1 = request.FILES.get("upload1")
  4172. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  4173. if basestr:
  4174. base_dir = 'media/uploads/'
  4175. img = Image.open(basestr)
  4176. code = 1
  4177. else:
  4178. base_dir = 'media/uploads1/'
  4179. code = 2
  4180. img = Image.open(basestr1)
  4181. if os.path.exists(base_dir) == False:
  4182. os.makedirs(base_dir)
  4183. img.save(base_dir + now_time +".png")
  4184. pic_list = SystemPhoto.objects.filter(code=code).order_by("upl_time")
  4185. if code == 1:
  4186. if len(pic_list) <= 2:
  4187. SystemPhoto.objects.create(code=code,pic_img=base_dir +now_time +".png")
  4188. else:
  4189. for i in pic_list[:1]:
  4190. i.pic_img=base_dir +now_time +".png"
  4191. i.upl_time=upl_time
  4192. i.save()
  4193. else:
  4194. if len(pic_list) <=3:
  4195. SystemPhoto.objects.create(code=code,pic_img=base_dir +now_time +".png")
  4196. else:
  4197. for i in pic_list[:1]:
  4198. i.pic_img=base_dir +now_time +".png"
  4199. i.upl_time=upl_time
  4200. i.save()
  4201. return HttpResponse("1")
  4202. # 系统管理上传图片
  4203. class System_Photo_Save(ListView):
  4204. def post(self,request):
  4205. code = request.POST.get("code")
  4206. data = []
  4207. if code != "1" and code != "2":
  4208. return HttpResponse("0")
  4209. else:
  4210. pic_list = SystemPhoto.objects.filter(code=code)
  4211. for i in pic_list:
  4212. data.append({
  4213. "pic_img":i.pic_img
  4214. })
  4215. data = json.dumps(data)
  4216. return HttpResponse(data)