views.py 119 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357
  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 django.contrib.auth import get_user_model
  20. from apps.AppInfo.models import (
  21. Article, CKArticle, Equip, Equip_type, FarmList, FarmUser, GardenManage,
  22. Hotel_Info, Hotel_Photo, JKdata, MyUser, Pick_Pub, Product, QXZdata,
  23. QXZdata_New, QXZstatus, QXZstatus_New, QXZswitchdata, QXZswitchstatus,
  24. Video_data,GardenArea,Store_Manage,Areacrop,Sell_Manage,Person_Pick,QXZAutoswitch)
  25. from apps.Equipment.all_dict import qxz_dict
  26. # 地图
  27. class Map_Test(View):
  28. def get(self,request):
  29. return render(request, 'backstageNet/map/map.html', context={})
  30. def post(self,request):
  31. pass
  32. # 测试接口
  33. class Equip_Test(View):
  34. def get(self,request):
  35. pass
  36. def post(self,request):
  37. qxz_data = QXZstatus.objects.get(equip_id="16054381")
  38. json_obj = qxz_data.qxz_status.replace("'", "\"")
  39. xml = xmltodict.unparse({'request':json_obj})
  40. return HttpResponse(xml)
  41. # 监控界面
  42. class JKview(ListView):
  43. def get(self,request):
  44. return render(request, 'backstageNet/jk/equipmanage_jk.html', context={})
  45. def post(self,request):
  46. pass
  47. # 监控列表
  48. class JKlist(ListView):
  49. def get(self,request):
  50. # current_user = request.user.username
  51. # print("current_user:", current_user)
  52. current_user = MyUser.objects.get(username="admin")
  53. page = request.GET.get('page')
  54. page = int(page)
  55. f_id = request.GET.get('f_id')
  56. print("f_id:", f_id)
  57. if current_user.is_superuser != True and current_user.is_staff != True:
  58. # 用户
  59. if f_id != "":
  60. equip_list = Equip.objects.filter(equip_type=6, equip_user=current_user, equip_id__contains=f_id)
  61. else:
  62. equip_list = Equip.objects.filter(equip_type=6, equip_user=current_user)
  63. else:
  64. # 管理员
  65. if f_id != "":
  66. equip_list = Equip.objects.filter(equip_type=6, equip_id__contains=f_id)
  67. else:
  68. equip_list = Equip.objects.filter(equip_type=6)
  69. e_ids = []
  70. for x in equip_list:
  71. n_d = {"equip_name":x.equip_name, "equip_id":x.equip_id}
  72. e_ids.append(n_d)
  73. nums = len(e_ids)
  74. # print(nums)
  75. ids = e_ids[(10*(page-1)):(page*10)]
  76. data = {'ids': ids, 'nums': nums}
  77. data = json.dumps(data)
  78. return HttpResponse(data)
  79. def post(self,request):
  80. pass
  81. # 视频详情
  82. class JKManage_View(ListView):
  83. def get(self, request):
  84. live_list = []
  85. j_id = request.GET.get("id")
  86. jk_list = JKdata.objects.filter(equip_id=j_id)
  87. for x in jk_list:
  88. # 用token和设备id获取直播地址
  89. live_url = 'https://open.ys7.com/api/lapp/live/address/get'
  90. live_data = {"accessToken":x.jk_token,
  91. "source":"%s:1"%x.equip_id}
  92. print("=================live_data:",live_data)
  93. live_res = requests.post(live_url,data=live_data)
  94. # print("-------------------------------:",type(live_res.text))
  95. live_res = eval(live_res.text)
  96. print("live_res:",live_res)
  97. # 如果返回200 则返回直播地址
  98. if live_res['code'] == "200":
  99. print("token获取成功")
  100. live_list.append(live_res)
  101. # 如果返回其他 则调用获取token之后重新获取直播地址并返回
  102. else:
  103. print("token过期重新获取")
  104. token_url = 'https://open.ys7.com/api/lapp/token/get'
  105. token_data = {"appKey":"e8ec0d52b4b14628a3daf4b88cbcca2a",
  106. "appSecret":"d4565abea1cd0b90b59917111dcb37bd"}
  107. token_res = requests.post(token_url,data=token_data)
  108. print("token_res1:",token_res.text)
  109. token_res = eval(token_res.text)
  110. if token_res["code"] == "200":
  111. token_res["data"]["accessToken"]
  112. x.jk_token = token_res["data"]["accessToken"]
  113. x.upl_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
  114. x.save()
  115. token = x.jk_token
  116. print("-----------------token保存成功")
  117. live_url = 'https://open.ys7.com/api/lapp/live/address/get'
  118. live_data = {"accessToken":x.jk_token,
  119. "source":"%s:1"%x.equip_id}
  120. live_res = requests.post(live_url,data=live_data)
  121. live_res = eval(live_res.text)
  122. print("live_res2:",live_res)
  123. live_list.append(live_res)
  124. data = json.dumps(live_list)
  125. return HttpResponse(data)
  126. # return render(request, 'backstageNet/jk/equipmanage_jk.html', context={"data":data})
  127. def post(self, request):
  128. jk_id = request.POST.get('id')
  129. ctrl = request.POST.get('ctrl')
  130. imei = request.POST.get('imei')
  131. accessToken = JKdata.objects.get(equip_id=jk_id).jk_token
  132. print("accessToken:",accessToken)
  133. if imei:
  134. if Equip.objects.filter(equip_id=imei).exists():
  135. return HttpResponse("0")
  136. else:
  137. # 得到设备类型实例:
  138. equip_t = Equip_type.objects.get(type_id=6)
  139. try:
  140. e_id = Equip.objects.create(equip_id=imei, equip_type=equip_t)
  141. print("<-----监控设备添加成功!----->")
  142. return HttpResponse("1")
  143. except:
  144. print("<-----监控设备添加失败!----->")
  145. if ctrl == "takephoto":
  146. url = 'https://open.ys7.com/api/lapp/device/capture'
  147. channelNo = '1'
  148. data = {'accessToken':accessToken, 'deviceSerial':jk_id, 'channelNo':channelNo}
  149. res = requests.post(url,data=data)
  150. print("截图返回结果为:",json.loads(res.text))
  151. return HttpResponse(res.text)
  152. # 操作命令:0-上,1-下,2-左,3-右,4-左上,5-左下,6-右上,7-右下,8-放大,9-缩小,10-近焦距,11-远焦距
  153. if ctrl == "move":
  154. print("-------球机云台控制开始!")
  155. dire = request.POST.get('movenum')
  156. ctrl_url = 'https://open.ys7.com/api/lapp/device/ptz/start'
  157. channelNo = '1'
  158. speed = '1'
  159. data = {'accessToken':accessToken, 'deviceSerial':jk_id, 'channelNo':channelNo, 'speed':speed, 'direction':dire}
  160. res1 = requests.post(ctrl_url,data=data)
  161. elif ctrl == "stop":
  162. print("-------球机云台控制结束!")
  163. ctrl_url = 'https://open.ys7.com/api/lapp/device/ptz/stop'
  164. channelNo = '1'
  165. data = {'accessToken':accessToken, 'deviceSerial':jk_id, 'channelNo':channelNo}
  166. res2 = requests.post(ctrl_url,data=data)
  167. return HttpResponse("1")
  168. # 新闻列表
  169. class Newslist_View(ListView):
  170. def get(self,request):
  171. con = request.GET.get("condition")
  172. page = int(request.GET.get("page"))
  173. art_type = int(request.GET.get("type"))
  174. art_list = CKArticle.objects.filter(art_type=art_type)
  175. if con:
  176. art_list = CKArticle.objects.filter(art_type=art_type,title__contains=con)
  177. nums = art_list.count()
  178. art = art_list[(5*(page-1)):(page*5)]
  179. return render(request, 'outerNet/newsList.html', context={'art':art,"nums":nums,"con":con,"page":page})
  180. def post(self,request):
  181. art_list = CKArticle.objects.all()
  182. data = []
  183. for i in art_list:
  184. data.append({"id":i.id,"title":i.title,"content":i.content,"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S')})
  185. data = json.dumps(data)
  186. return HttpResponse(data)
  187. # 新闻详情
  188. class News_View(ListView):
  189. def get(self,request):
  190. f_id = request.GET.get("id")
  191. objs = CKArticle.objects.all().order_by("id")
  192. art = objs.get(id=f_id)
  193. on_art = objs.filter(id__lt=f_id,art_type=art.art_type)
  194. up_art = objs.filter(id__gt=f_id,art_type=art.art_type)
  195. return render(request, 'outerNet/newsDetail.html', context={"art":art,"on_art":on_art,"up_art":up_art})
  196. def post(self,request):
  197. art_list = Article.objects.all()
  198. for i in art_list:
  199. print(i.title)
  200. return HttpResponse("1")
  201. # 产品展厅列表
  202. class Equip_Show_List(ListView):
  203. def get(self,request):
  204. page = int(request.GET.get("page"))
  205. product_list = Product.objects.all()
  206. con = request.GET.get("condition")
  207. if con:
  208. product_list = Product.objects.filter(title__contains=con)
  209. nums = product_list.count()
  210. product = product_list[(20*(page-1)):(page*20)]
  211. return render(request, 'outerNet/exhibitionList.html', context={"nums":nums,"page":page,"con":con,"product":product})
  212. def post(self,request):
  213. pass
  214. # 产品展厅详情
  215. class Equip_Show_Detail(ListView):
  216. def get(self,request):
  217. e_id = request.GET.get("id")
  218. product = Product.objects.get(id=e_id)
  219. return render(request, 'outerNet/exhibitionDetail.html', context={"product":product})
  220. def post(self,request):
  221. pass
  222. # 四季采摘-园区列表
  223. class Garden_List(ListView):
  224. def get(self,request):
  225. pass
  226. def post(self,request):
  227. page = int(request.POST.get("page"))
  228. farm_list = FarmList.objects.all()
  229. farm = []
  230. for i in farm_list:
  231. farm.append({"name":i.name,"id":i.id})
  232. nums = len(farm)
  233. farms = farm[(10*(page-1)):(page*10)]
  234. data = {"farms":farms,"nums":nums}
  235. data = json.dumps(data)
  236. return HttpResponse(data)
  237. # 四季采摘-主页
  238. class Garden_View(ListView):
  239. def get(self,request):
  240. return render(request, 'outerNet/fourPick.html', context={})
  241. def post(self,request):
  242. pass
  243. # 主页四级采摘进入的介绍页
  244. class Garden_Intro(ListView):
  245. def get(self,request):
  246. return render(request, 'outerNet/pickIntro.html', context={})
  247. def post(self,request):
  248. pass
  249. # 四季采摘-园区详情
  250. class Garden_Detail(ListView):
  251. def get(self,request):
  252. pass
  253. def post(self,request):
  254. f_id = request.POST.get("id")
  255. page = int(request.POST.get("page"))
  256. farm = FarmList.objects.get(id=f_id)
  257. pick = Pick_Pub.objects.filter(farm=farm)
  258. pick_list = []
  259. for i in pick:
  260. pick_list.append({"farm":i.farm.name,"name":i.name,"time":i.upl_time,"company":i.company,"img":i.pick_img})
  261. nums = len(pick_list)
  262. pick_list = pick_list[(12*(page-1)):(page*12)]
  263. data = {"pick":pick_list,"nums":nums}
  264. data = json.dumps(data)
  265. return HttpResponse(data)
  266. #旅游导览
  267. class Tourist(ListView):
  268. def get(self,request):
  269. return render(request, 'outerNet/tourist.html', context={})
  270. def post(self,request):
  271. pass
  272. #旅游导览
  273. class Tourist_List(ListView):
  274. def get(self,request):
  275. return render(request, 'outerNet/touristList.html', context={})
  276. def post(self,request):
  277. pass
  278. # 民宿列表
  279. class Dorm_List(ListView):
  280. def get(self,request):
  281. page = int(request.GET.get("page"))
  282. con = request.GET.get("condition")
  283. hotel_list = Hotel_Info.objects.all()
  284. if con:
  285. hotel_list = Hotel_Info.objects.filter(name__contains=con)
  286. nums = hotel_list.count()
  287. hotel = hotel_list[(10*(page-1)):(page*10)]
  288. return render(request, 'outerNet/hotelList.html', context={"nums":nums,"hotel":hotel,"page":page,"con":con})
  289. def post(self,request):
  290. pass
  291. # 民宿详情
  292. class Dorm_Detail(ListView):
  293. def get(self,request):
  294. hotel_id = request.GET.get("id")
  295. hotel = Hotel_Info.objects.get(id=hotel_id)
  296. photos = Hotel_Photo.objects.filter(hotel=hotel)
  297. return render(request, 'outerNet/hotelDetail.html', context={"hotel":hotel,"photos":photos})
  298. def post(self,request):
  299. pass
  300. # 农场导览
  301. class Farm_list(ListView):
  302. def get(self,request):
  303. page = int(request.GET.get("page"))
  304. con = request.GET.get("condition")
  305. hotel_list = Hotel_Info.objects.all()
  306. if con:
  307. hotel_list = Hotel_Info.objects.filter(name__contains=con)
  308. nums = hotel_list.count()
  309. hotel = hotel_list[(10*(page-1)):(page*10)]
  310. return render(request, 'outerNet/farmList.html', context={"nums":nums,"hotel":hotel,"page":page,"con":con})
  311. def post(self,request):
  312. pass
  313. # 视频列表
  314. class Video_List(ListView):
  315. def get(self,request):
  316. page = int(request.GET.get("page"))
  317. con = request.GET.get("condition")
  318. video_list = Video_data.objects.all()
  319. if con:
  320. video_list = Video_data.objects.filter(title__contains=con)
  321. nums = video_list.count()
  322. video = video_list[(12*(page-1)):(page*12)]
  323. return render(request, 'outerNet/videoList.html', context={"nums":nums,"video":video,"con":con,"page":page})
  324. def post(self,request):
  325. pass
  326. # 视频详情
  327. class Video_Detail(ListView):
  328. def get(self,request):
  329. v_id = request.GET.get("id")
  330. video = Video_data.objects.get(id=v_id)
  331. return render(request, 'outerNet/videoDetail.html', context={"video":video})
  332. def post(self,request):
  333. pass
  334. # 后台管理页面
  335. class Back_Manage(ListView):
  336. def get(self,request):
  337. if request.user.is_authenticated():
  338. return render(request, 'backstageNet/home.html', context={})
  339. else:
  340. return render(request, 'outerNet/index.html')
  341. def post(self,request):
  342. current_user = request.user.username
  343. print("current_user:", current_user)
  344. current_user = MyUser.objects.get(username=current_user)
  345. data = current_user.limit
  346. return HttpResponse(data)
  347. # 信息发布页面
  348. class Info_Pub(ListView):
  349. def get(self,request):
  350. return render(request, 'backstageNet/info/infoPub.html', context={})
  351. def post(self,request):
  352. # 文章标题
  353. title = request.POST.get('title')
  354. # 文章简介
  355. intro = request.POST.get('intro')
  356. # 文章内容
  357. info = request.POST.get('info')
  358. # 文章图片
  359. head_img = request.POST.get('upicture')
  360. admin = MyUser.objects.get(username="admin")
  361. if head_img:
  362. try:
  363. Article.objects.create(title=title,intro=intro,content=info,author=admin,head_img=head_img)
  364. data = "1"
  365. except:
  366. data = "0"
  367. else:
  368. data = "0"
  369. return HttpResponse(data)
  370. # 信息维护页面
  371. class Info_Manage(ListView):
  372. def get(self,request):
  373. return render(request, 'backstageNet/info/infoManage.html', context={})
  374. def post(self,request):
  375. pass
  376. # 气象站分页接口
  377. class QXZ_Page(ListView):
  378. def get(self,request):
  379. # current_user = request.user.username
  380. # print("current_user:", current_user)
  381. # current_user = MyUser.objects.get(username="admin")
  382. page = request.GET.get('page')
  383. page = int(page)
  384. # f_id = request.GET.get('f_id')
  385. # print("f_id:", f_id)
  386. # if current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency != True:
  387. # # 用户
  388. # if f_id != "":
  389. # equip_list = Equip.objects.filter(equip_type=5, equip_user=current_user, equip_id__contains=f_id)
  390. # else:
  391. # equip_list = Equip.objects.filter(equip_type=5, equip_user=current_user)
  392. # elif current_user.is_superuser != True and current_user.is_staff != True and current_user.is_agency == True:
  393. # # 代理商
  394. # if f_id != "":
  395. # equip_list = Equip.objects.filter(equip_type=5, equip_agency=current_user.user_agency, equip_id__contains=f_id)
  396. # else:
  397. # equip_list = Equip.objects.filter(equip_type=5, equip_agency=current_user.user_agency)
  398. # else:
  399. # # 管理员
  400. # if f_id != "":
  401. # equip_list = Equip.objects.filter(equip_type=5, equip_id__contains=f_id)
  402. # else:
  403. equip_list = Equip.objects.filter(equip_type=5)
  404. e_ids = []
  405. for x in equip_list:
  406. n_d = {"equip_name":x.equip_name, "equip_id":x.equip_id}
  407. e_ids.append(n_d)
  408. nums = len(e_ids)
  409. # print(nums)
  410. ids = e_ids[(10*(page-1)):(page*10)]
  411. data = {'ids': ids, 'nums': nums}
  412. data = json.dumps(data)
  413. return HttpResponse(data)
  414. def post(self,request):
  415. pass
  416. # 气象站状态
  417. class QXZ_Status(ListView):
  418. def get(self,request):
  419. return render(request, 'backstageNet/qxzctrl/qxzData.html', context={})
  420. def post(self,request):
  421. e_id = request.POST.get("e_id")
  422. qxz_list = QXZstatus_New.objects.filter(equip_id=e_id)
  423. data = []
  424. for i in qxz_list:
  425. 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,
  426. "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})
  427. data = json.dumps(data)
  428. return HttpResponse(data)
  429. # 气象站状态测试
  430. class QXZ_Status2(ListView):
  431. def get(self,request):
  432. return render(request, 'backstageNet/qxzctrl/qxzData.html', context={})
  433. def post(self,request):
  434. e_id = request.POST.get("e_id")
  435. qxz_list = QXZstatus_New.objects.filter(equip_id=e_id)
  436. # data = []
  437. for i in qxz_list:
  438. 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}
  439. data = {"interval":i.interval,"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),"dat":dat}
  440. data = json.dumps(data)
  441. return HttpResponse(data)
  442. # 气象站控制
  443. class QXZcontrol(ListView):
  444. def get(self,request):
  445. return render(request, 'backstageNet/qxzctrl/qxzctrl.html', context={})
  446. def post(self,request):
  447. e_id = request.POST.get('e_id')
  448. try:
  449. switch_obj = QXZswitchstatus.objects.get(equip_id=e_id)
  450. qxz_switch = switch_obj.qxz_switch
  451. except:
  452. qxz_switch = ""
  453. try:
  454. switch_name_obj = QXZswitchdata.objects.get(equip_id=e_id)
  455. switch_name = switch_name_obj.qxz_switch_data
  456. except:
  457. switch_name = ""
  458. data = {'qxz_switch':qxz_switch, 'switch_name':switch_name}
  459. data = json.dumps(data)
  460. return HttpResponse(data)
  461. # 气象站数据
  462. class QXZchart(ListView):
  463. def get(self,request):
  464. return render(request, 'backstageNet/qxzctrl/qxzchart.html', context={})
  465. def post(self,request):
  466. qxz_dict_2 = copy.deepcopy(qxz_dict)
  467. equip_id = request.POST.get('id')
  468. print("equip_id:", equip_id)
  469. f_tbegin = request.POST.get('begin')
  470. f_tend = request.POST.get('end')
  471. print("f_tbegin:", f_tbegin)
  472. print("f_tend:", f_tend)
  473. current_equip = Equip.objects.get(equip_id=equip_id)
  474. dat = []
  475. if f_tbegin:
  476. begindate = re.findall(r"\d+\.?\d*", f_tbegin)
  477. enddate = re.findall(r"\d+\.?\d*", f_tend)
  478. start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2]))
  479. end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2]))
  480. print("start_date:", start_date)
  481. print("end_date:", end_date)
  482. sta1 = QXZdata.objects.filter(
  483. equip_id=equip_id, upl_time__range=(start_date, end_date)).values()
  484. for x in sta1:
  485. sta = {"upl_time": x["upl_time"].strftime('%Y-%m-%d %H:%M:%S'),"e_len": len((eval(x["qxz_data"])["data"])),
  486. "unit": [], "equip_id": x["equip_id_id"]}
  487. for i in eval(x["qxz_data"])["data"]:
  488. qxz_dict_2[i["eNum"]][0] = i["eValue"] # 将气象站字典列表里的索引值替换为 数据的eValue
  489. d = copy.deepcopy(qxz_dict_2[i["eNum"]]) # 此处有坑 如果不深拷贝 后一次 qxz_dict[i["eNum"]][0] = i["eValue"] 赋值会把上次赋值替换掉
  490. ek = i["eKey"]
  491. d.append(ek)
  492. d.append(i["eNum"])
  493. sta["unit"].append(d)
  494. # qxz_dict[eval(x.qxz_data)['data'][0]["eNum"]]
  495. # print(sta["unit"])
  496. dat.append(sta)
  497. # print(dat)
  498. data = {"e_name": current_equip.equip_name, "dat": dat}
  499. data = json.dumps(data)
  500. return HttpResponse(data)
  501. # 获取当前日期:
  502. now_time = datetime.datetime.now()
  503. print("当前日期为:",now_time)
  504. print("当前月为:",now_time.month)
  505. sta1 = QXZdata.objects.filter(equip_id=equip_id, upl_time__month=now_time.month).values()
  506. for x in sta1:
  507. sta = {"upl_time": x["upl_time"].strftime('%Y-%m-%d %H:%M:%S'),"e_len": len(eval(x["qxz_data"])["data"]),
  508. "unit": [], "equip_id": x["equip_id_id"]}
  509. for i in eval(x["qxz_data"])["data"]:
  510. qxz_dict_2[i["eNum"]][0] = i["eValue"]
  511. d = copy.deepcopy(qxz_dict_2[i["eNum"]]) # 此处有坑 如果不深拷贝 后一次 qxz_dict[i["eNum"]][0] = i["eValue"] 赋值会把上次赋值替换掉
  512. ek = i["eKey"]
  513. d.append(ek)
  514. d.append(i["eNum"])
  515. sta["unit"].append(d)
  516. # qxz_dict[eval(x.qxz_data)['data'][0]["eNum"]]
  517. dat.append(sta)
  518. # print(dat)
  519. data = {"e_name": current_equip.equip_name, "dat": dat}
  520. # print("------",data)
  521. data = json.dumps(data)
  522. return HttpResponse(data)
  523. # 气象站列表详情
  524. class QXZ_Report_Detail(ListView):
  525. def get(self, request):
  526. qxz_dict_3 = copy.deepcopy(qxz_dict)
  527. page = int(request.GET.get('page'))
  528. print("page:", page)
  529. equip_id = request.GET.get('id')
  530. print("equip_id:", equip_id)
  531. f_tbegin = request.GET.get('begin')
  532. f_tend = request.GET.get('end')
  533. print("f_tbegin:", f_tbegin)
  534. print("f_tend:", f_tend)
  535. current_equip = Equip.objects.get(equip_id=equip_id)
  536. dat = []
  537. if f_tbegin:
  538. begindate = re.findall(r"\d+\.?\d*", f_tbegin)
  539. enddate = re.findall(r"\d+\.?\d*", f_tend)
  540. start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2]))
  541. end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2]))
  542. print("start_date:", start_date)
  543. print("end_date:", end_date)
  544. sta1 = QXZdata.objects.filter(
  545. equip_id=equip_id, upl_time__range=(start_date, end_date)).values()
  546. for x in sta1:
  547. sta = {"upl_time": x["upl_time"].strftime('%Y-%m-%d %H:%M:%S'), "unit": [], "equip_id": x["equip_id_id"]}
  548. for i in eval(x["qxz_data"])["data"]:
  549. qxz_dict_3[i["eNum"]][0] = i["eValue"]
  550. d = copy.deepcopy(qxz_dict_3[i["eNum"]]) # 此处有坑 如果不深拷贝 后一次 qxz_dict[i["eNum"]][0] = i["eValue"] 赋值会把上次赋值替换掉
  551. ek = i["eKey"]
  552. d.append(ek)
  553. sta["unit"].append(d)
  554. # qxz_dict[eval(x.qxz_data)['data'][0]["eNum"]]
  555. dat.append(sta)
  556. nums = len(dat)
  557. dat = dat[(10*(page-1)):(page*10)]
  558. data = {"dat": dat, "nums":nums}
  559. data = json.dumps(data)
  560. return HttpResponse(data)
  561. sta1 = QXZdata.objects.filter(equip_id=equip_id).values()
  562. for x in sta1:
  563. sta = {"upl_time": x["upl_time"].strftime('%Y-%m-%d %H:%M:%S'), "unit": [], "equip_id": x["equip_id_id"]}
  564. for i in eval(x["qxz_data"])["data"]:
  565. qxz_dict_3[i["eNum"]][0] = i["eValue"]
  566. d = copy.deepcopy(qxz_dict_3[i["eNum"]]) # 此处有坑 如果不深拷贝 后一次 qxz_dict[i["eNum"]][0] = i["eValue"] 赋值会把上次赋值替换掉
  567. ek = i["eKey"]
  568. d.append(ek)
  569. sta["unit"].append(d)
  570. dat.append(sta)
  571. nums = len(dat)
  572. dat = dat[(10*(page-1)):(page*10)]
  573. data = {"dat": dat, "nums":nums}
  574. data = json.dumps(data)
  575. return HttpResponse(data)
  576. class QXZ_Report_Detail2(ListView):
  577. def get(self, request):
  578. pass
  579. def post(self,request):
  580. e_id = request.POST.get("e_id")
  581. qxz_list = QXZdata_New.objects.filter(equip_id=e_id)
  582. data = []
  583. for i in qxz_list:
  584. 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}
  585. data.append({"upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),"dat":dat})
  586. nums = len(data)
  587. datas = {"data":data,"nums":nums}
  588. datas = json.dumps(datas)
  589. return HttpResponse(datas)
  590. # 气象站开关名字
  591. class QXZ_Switch_Name(ListView):
  592. def get(self,request):
  593. pass
  594. def post(self,request):
  595. imei = request.POST.get('imei')
  596. way = request.POST.get('way')
  597. sw_name = request.POST.get('sw_name')
  598. try:
  599. switch_obj = QXZswitchdata.objects.get(equip_id=imei)
  600. except:
  601. return HttpResponse("1")
  602. sw_name_list = eval(switch_obj.qxz_switch_data)
  603. for i in sw_name_list:
  604. if i["JK"] == int(way):
  605. i["name"] = sw_name
  606. print(sw_name_list)
  607. try:
  608. switch_obj.qxz_switch_data = sw_name_list
  609. switch_obj.save()
  610. except:
  611. return HttpResponse("1")
  612. data = "0"
  613. return HttpResponse(data)
  614. # 气象站通信接口
  615. class QXZ_Mqtt(ListView):
  616. def get(self,request):
  617. pass
  618. def post(self,request):
  619. req = request.POST.get('req')
  620. imei = request.POST.get('imei')
  621. topic = "/yfkj/qxz/sub/"+imei
  622. if req == "read":
  623. payload = {"ext":{"type":"status"},"cmd":"read"}
  624. elif req == "set":
  625. way = int(request.POST.get('way'))
  626. switch = int(request.POST.get('switch'))
  627. payload = {"cmd":"control","ext":{"JK":way,"status":switch}}
  628. elif req == "conf":
  629. payload = {"ext":{"type":"jkStatus"},"cmd":"read"}
  630. elif req == "interval":
  631. time = int(request.POST.get('time'))
  632. payload = {"cmd": "config","ext": {"interval": time}}
  633. cmd = {"topic":topic,"payload":json.dumps(payload),'qos':0}
  634. res = requests.post("http://www.yfzhwlw.com:8080/api/v2/mqtt/publish",
  635. data=json.dumps(cmd), auth=HTTPBasicAuth("admin", "yfkj_6019"))
  636. print("res.status_code:", type(res.status_code))
  637. if res.status_code == 200:
  638. data = "0"
  639. return HttpResponse(data)
  640. else:
  641. data = "1"
  642. return HttpResponse(data)
  643. # 新闻审核
  644. class News_Check(ListView):
  645. def get(self,request):
  646. return render(request, 'backstageNet/infoManage/newsManage.html', context={'role':'superuser'})
  647. def post(self,request):
  648. news_id = request.POST.get('id')
  649. news_see_id = request.POST.get("ids")
  650. # 通过后删除
  651. if news_id:
  652. try:
  653. news_sta = CKArticle.objects.get(id=news_id)
  654. news_sta.delete()
  655. return HttpResponse("1")
  656. except:
  657. return HttpResponse("0")
  658. # 通过查看详情
  659. art_list = CKArticle.objects.filter(id=news_see_id)
  660. dat = []
  661. for i in art_list:
  662. dat.append({
  663. "title":i.title,
  664. "intro":i.intro,
  665. "time": i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),
  666. "img": "%s"%i.head_img,
  667. "writer":i.writer,
  668. "author":i.author.username,
  669. "content":i.content,
  670. "art_type":i.art_type,
  671. })
  672. data = json.dumps(dat)
  673. return HttpResponse(data)
  674. # 新闻审核页面
  675. class News_Check_List(ListView):
  676. def get(self,request):
  677. hidden = request.GET.get('hidden')
  678. page = int(request.GET.get('page'))
  679. art_list = CKArticle.objects.filter(art_type=5,hidden=hidden)
  680. nums = art_list.count()
  681. print(nums)
  682. art = art_list[(10*(page-1)):(page*10)]
  683. return render(request, 'backstageNet/infoManage/newsManageList.html', context={"art":art,"nums":nums})
  684. def post(self,request):
  685. art_id = request.POST.get('id')
  686. req = request.POST.get('req')
  687. art_obj = CKArticle.objects.filter(id=art_id)
  688. # 编辑
  689. if req == "edit":
  690. data = []
  691. for i in art_obj:
  692. data.append({
  693. "id":i.id,
  694. "title":i.title,
  695. "intro":i.intro,
  696. "head_img":i.head_img.name,
  697. "content":i.content,
  698. "art_type":i.art_type,
  699. "writer":i.writer,
  700. "upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),
  701. "author":i.author.username
  702. })
  703. # 未审核删除
  704. elif req == "del":
  705. art_obj.delete()
  706. data = "1"
  707. # 通过审核
  708. elif req == "check":
  709. art_obj = CKArticle.objects.get(id=art_id)
  710. art_obj.hidden = True
  711. art_obj.save()
  712. data = "1"
  713. data = json.dumps(data)
  714. return HttpResponse(data)
  715. # 新闻审核上传图片接口
  716. class News_Photo(ListView):
  717. def get(self,request):
  718. pass
  719. def post(self,request):
  720. # e_id = request.POST.get('id')
  721. # news_sta = Article.objects.get(id=e_id)
  722. news_photo = request.FILES.get('upicture')
  723. if news_photo:
  724. print("新闻图片:", news_photo)
  725. news_photo_dir = 'hnews_photo/'
  726. end_name = news_photo.name.split('.')[-1]
  727. # 判断如果路径不存在,即创建路径
  728. if os.path.exists(news_photo_dir) == False:
  729. os.makedirs(news_photo_dir)
  730. img = Image.open(news_photo)
  731. # img = img.convert('RGB')
  732. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  733. pic_name = now_time + '.' + end_name
  734. print("pic_name:", pic_name)
  735. img.save(news_photo_dir + pic_name)
  736. news_photo = news_photo_dir + pic_name
  737. print("new_photo:",news_photo)
  738. data = {"code": 0,"msg": "","data": {"src": news_photo}}
  739. else:
  740. new_photo = "0"
  741. data = {"code": 404,"msg": "","data": {"src": news_photo}}
  742. data = json.dumps(data)
  743. return HttpResponse(data)
  744. # 新闻发布
  745. class News_Pub(ListView):
  746. def get(self,request):
  747. return render(request, 'backstageNet/info/newsPub.html', context={'role':'superuser'})
  748. def post(self,request):
  749. current_user = MyUser.objects.get(username="admin")
  750. news_photo = request.POST.get('upload')
  751. art_type = request.POST.get('type')
  752. writer = request.POST.get('writer')
  753. intro = request.POST.get('intro')
  754. title = request.POST.get('title')
  755. content = request.POST.get('content')
  756. news_id = request.POST.get("id")
  757. if news_id:
  758. if CKArticle.objects.filter(id=news_id).exists():
  759. CKArticle.objects.filter(id=news_id).update(
  760. art_type=art_type,
  761. writer = writer,
  762. intro = intro,
  763. title = title,
  764. content = content,
  765. head_img = news_photo
  766. )
  767. data= "1"
  768. else:
  769. data = "0"
  770. else:
  771. try:
  772. CKArticle.objects.create(author=current_user,art_type=art_type,writer=writer,intro=intro,title=title,content=content,head_img=news_photo)
  773. data = "1"
  774. except Exception as e:
  775. print(e)
  776. data = "0"
  777. return HttpResponse(data)
  778. # 视频发布
  779. class Video_Pub(ListView):
  780. def get(self,request):
  781. return render(request, 'backstageNet/info/videoPub.html', context={})
  782. def post(self,request):
  783. # 视频标题
  784. title = request.POST.get('title')
  785. # 视频简介
  786. intro = request.POST.get('intro')
  787. # 视频链接
  788. video = request.POST.get('video_url')
  789. admin = MyUser.objects.get(username="admin")
  790. video_img = request.POST.get('video_img')
  791. video_id =request.POST.get('id')
  792. if video_id:
  793. if Video_data.objects.filter(id=video_id).exists():
  794. Video_data.objects.filter(id=video_id).update(
  795. title=title,
  796. intro=intro,
  797. video_url=video,
  798. author=admin,
  799. video_img=video_img,
  800. )
  801. data = '1'
  802. else:
  803. data = '0'
  804. else:
  805. try:
  806. Video_data.objects.create(title=title,intro=intro,video_url=video,author=admin,video_img=video_img)
  807. data = "1"
  808. except Exception as e:
  809. print("-------错误信息为----------")
  810. print(e)
  811. data = "0"
  812. else:
  813. data = "0"
  814. return HttpResponse(data)
  815. # 视频封面上传图片接口
  816. class Video_Photo(ListView):
  817. def get(self,request):
  818. pass
  819. def post(self,request):
  820. # e_id = request.POST.get('id')
  821. # news_sta = Article.objects.get(id=e_id)
  822. video_photo = request.FILES.get('video_img')
  823. if video_photo:
  824. print("视频图片:", video_photo)
  825. video_photo_dir = 'hvideo_photo/'
  826. end_name = video_photo.name.split('.')[-1]
  827. # 判断如果路径不存在,即创建路径
  828. if os.path.exists(video_photo_dir) == False:
  829. os.makedirs(video_photo_dir)
  830. img = Image.open(video_photo)
  831. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  832. pic_name = now_time + '.' + end_name
  833. print("pic_name:", pic_name)
  834. img.save(video_photo_dir + pic_name)
  835. video_photo = video_photo_dir + pic_name
  836. print("new_photo:",video_photo)
  837. data = {"code": 0,"msg": "","data": {"src": video_photo}}
  838. else:
  839. video_photo = "0"
  840. data = {"code": 404,"msg": "","data": {"src": video_photo}}
  841. data = json.dumps(data)
  842. return HttpResponse(data)
  843. # 视频上传接口
  844. class Video_Upload(ListView):
  845. def get(self,request):
  846. pass
  847. def post(self,request):
  848. obj = request.FILES.get('upload')
  849. f = os.path.join('hvideos',obj.name).replace('\\','/')
  850. print(f)
  851. if not obj:
  852. return HttpResponse("0")
  853. dest=open(f,"wb")
  854. try:
  855. for chunk in obj.chunks():
  856. dest.write(chunk)
  857. finally:
  858. dest.close()
  859. video_dir = "hvideos/" + obj.name
  860. data = {"code": 0,"msg": "","data": {"src":video_dir}}
  861. data = json.dumps(data)
  862. return HttpResponse(data)
  863. # 产品发布
  864. class Equip_Pub(ListView):
  865. def get(self,request):
  866. return render(request, 'backstageNet/info/productPub.html', context={})
  867. def post(self,request):
  868. # 产品标题
  869. title = request.POST.get('title')
  870. # 产品简介
  871. intro = request.POST.get('intro')
  872. # 产品内容
  873. content = request.POST.get('content')
  874. # 产品图片
  875. head_img = request.POST.get('img_url')
  876. mobile = request.POST.get('mobile')
  877. admin = MyUser.objects.get(username="admin")
  878. equip_id = request.POST.get("id")
  879. if equip_id:
  880. if Product.objects.filter(id=equip_id).exists():
  881. try:
  882. Product.objects.filter(id=equip_id).update(
  883. title=title,
  884. intro=intro,
  885. content=content,
  886. author=admin,
  887. head_img=head_img,
  888. mobile=mobile
  889. )
  890. data = "1"
  891. except Exception as e:
  892. print("-----------错误信息为-------------")
  893. print(e)
  894. data = "0"
  895. else:
  896. data = "0"
  897. else:
  898. if head_img:
  899. try:
  900. Product.objects.create(title=title,intro=intro,content=content,author=admin,head_img=head_img,mobile=mobile)
  901. data = "1"
  902. except Exception as e:
  903. print("-----------错误信息为-------------")
  904. print(e)
  905. data = "0"
  906. else:
  907. data = "0"
  908. return HttpResponse(data)
  909. # 产品封面上传图片接口
  910. class Equip_Photo(ListView):
  911. def get(self,request):
  912. pass
  913. def post(self,request):
  914. pro_photo = request.FILES.get('pro_img')
  915. if pro_photo:
  916. print("视频图片:", pro_photo)
  917. pro_photo_dir = 'product_photo/'
  918. # 判断如果路径不存在,即创建路径
  919. end_name = pro_photo.name.split('.')[-1]
  920. if os.path.exists(pro_photo_dir) == False:
  921. os.makedirs(pro_photo_dir)
  922. img = Image.open(pro_photo)
  923. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  924. pic_name = now_time + '.' + end_name
  925. print("pic_name:", pic_name)
  926. img.save(pro_photo_dir + pic_name)
  927. pro_photo = pro_photo_dir + pic_name
  928. print("pro_photo:",pro_photo)
  929. data = {"code": 0,"msg": "","data": {"src": pro_photo}}
  930. else:
  931. pro_photo = "0"
  932. data = {"code": 404,"msg": "","data": {"src": pro_photo}}
  933. data = json.dumps(data)
  934. return HttpResponse(data)
  935. # 采摘农场选择
  936. class Farm_Choice(ListView):
  937. def get(self,request):
  938. pass
  939. def post(self,request):
  940. current_user = MyUser.objects.get(username="admin")
  941. farmlist = FarmList.objects.filter(user=current_user)
  942. dat = []
  943. for i in farmlist:
  944. dat.append({"name":i.name})
  945. dat = json.dumps(dat)
  946. return HttpResponse(dat)
  947. # 四季采摘图片上传
  948. class Pick_Photo(ListView):
  949. def get(self,request):
  950. pass
  951. def post(self,request):
  952. gar_photo = request.FILES.get('gar_img')
  953. if gar_photo:
  954. print("视频图片:", gar_photo)
  955. garden_photo_dir = 'garden_photo/'
  956. end_name = gar_photo.name.split('.')[-1]
  957. # 判断如果路径不存在,即创建路径
  958. if os.path.exists(garden_photo_dir) == False:
  959. os.makedirs(garden_photo_dir)
  960. img = Image.open(gar_photo)
  961. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  962. pic_name = now_time + '.' + end_name
  963. print("pic_name:", pic_name)
  964. img.save(garden_photo_dir + pic_name)
  965. gar_photo = garden_photo_dir + pic_name
  966. print("gar_photo:",gar_photo)
  967. data = {"code": 0,"msg": "","data": {"src": gar_photo}}
  968. else:
  969. pro_photo = "0"
  970. data = {"code": 404,"msg": "","data": {"src": gar_photo}}
  971. data = json.dumps(data)
  972. return HttpResponse(data)
  973. # 四季采摘发布
  974. class Garden_Pub(ListView):
  975. def get(self,request):
  976. return render(request, 'backstageNet/info/gardenPub.html', context={})
  977. def post(self,request):
  978. farm = request.POST.get('farm')
  979. name = request.POST.get('name')
  980. time = request.POST.get('time')
  981. pick_s = request.POST.get('start')
  982. pick_e = request.POST.get('end')
  983. ripe_time = request.POST.get('ripe')
  984. # 规模
  985. scale = request.POST.get('scale')
  986. addr = request.POST.get('addr')
  987. company = request.POST.get('company')
  988. pick_img = request.POST.get('img_url')
  989. garden_id = request.POST.get('id')
  990. print("garden_id:",garden_id)
  991. begindate = re.findall(r"\d+\.?\d*", pick_s)
  992. enddate = re.findall(r"\d+\.?\d*", pick_e)
  993. start_date = datetime.date(int(begindate[0]), int(begindate[1]), int(begindate[2]))
  994. end_date = datetime.date(int(enddate[0]), int(enddate[1]), int(enddate[2]))
  995. # 编辑更新
  996. if garden_id:
  997. if Pick_Pub.objects.filter(id=garden_id).exists():
  998. farm_obj = FarmList.objects.get(name=farm)
  999. Pick_Pub.objects.filter(id=garden_id).update(pick_s=start_date,pick_e=end_date,ripe_time=ripe_time,
  1000. scale=scale,addr=addr,farm=farm_obj,name=name,company=company,pick_img=pick_img,upl_time=time)
  1001. data = "1"
  1002. else:
  1003. data = "0"
  1004. return HttpResponse(data)
  1005. else:
  1006. try:
  1007. farm_obj = FarmList.objects.get(name=farm)
  1008. Pick_Pub.objects.create(farm=farm_obj,name=name,company=company,pick_img=pick_img,upl_time=time)
  1009. data = "1"
  1010. print(data)
  1011. except Exception as e:
  1012. print("-----------报错信息为-------------")
  1013. print(e)
  1014. data = "0"
  1015. return HttpResponse(data)
  1016. # 民宿封面
  1017. class Dorm_Img(ListView):
  1018. def get(self,request):
  1019. pass
  1020. def post(self,request):
  1021. hotel_photo = request.FILES.get('hotel_photo')
  1022. if hotel_photo:
  1023. print("视频图片:", hotel_photo)
  1024. hotel_photo_dir = 'hotel_photo/'
  1025. end_name = hotel_photo.name.split('.')[-1]
  1026. # 判断如果路径不存在,即创建路径
  1027. if os.path.exists(hotel_photo_dir) == False:
  1028. os.makedirs(hotel_photo_dir)
  1029. img = Image.open(hotel_photo)
  1030. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  1031. pic_name = now_time + '.' + end_name
  1032. print("pic_name:", pic_name)
  1033. img.save(hotel_photo_dir + pic_name)
  1034. hotel_photo = hotel_photo_dir + pic_name
  1035. print("hotel_photo:",hotel_photo)
  1036. data = {"code": 0,"msg": "","data": {"src": hotel_photo}}
  1037. else:
  1038. hotel_photo = "0"
  1039. data = {"code": 404,"msg": "","data": {"src": hotel_photo}}
  1040. data = json.dumps(data)
  1041. return HttpResponse(data)
  1042. # 民宿介绍图
  1043. class Dorm_Photo(ListView):
  1044. def get(self,request):
  1045. pass
  1046. def post(self,request):
  1047. hotel_photos = request.FILES.get('hotel_photos')
  1048. if hotel_photos:
  1049. print("视频图片:", hotel_photos)
  1050. hotel_photo_dir = 'hotel_photos/'
  1051. end_name = hotel_photos.name.split('.')[-1]
  1052. # 判断如果路径不存在,即创建路径
  1053. if os.path.exists(hotel_photo_dir) == False:
  1054. os.makedirs(hotel_photo_dir)
  1055. img = Image.open(hotel_photos)
  1056. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  1057. pic_name = now_time + '.' + end_name
  1058. print("pic_name:", pic_name)
  1059. img.save(hotel_photo_dir + pic_name)
  1060. hotel_photos = hotel_photo_dir + pic_name
  1061. print("hotel_photos:",hotel_photos)
  1062. data = {"code": 0,"msg": "","data": {"src": hotel_photos}}
  1063. else:
  1064. hotel_photos = "0"
  1065. data = {"code": 404,"msg": "","data": {"src": hotel_photos}}
  1066. data = json.dumps(data)
  1067. return HttpResponse(data)
  1068. # 民宿发布
  1069. class Dorm_Pub(ListView):
  1070. def get(self,request):
  1071. return render(request, 'backstageNet/info/dormPub.html', context={})
  1072. def post(self,request):
  1073. current_user = MyUser.objects.get(username="admin")
  1074. name = request.POST.get('name')
  1075. price = request.POST.get('price')
  1076. person = request.POST.get('person')
  1077. mobile = request.POST.get('mobile')
  1078. img_url = request.POST.get('img_url')
  1079. addr = request.POST.get('addr')
  1080. location = request.POST.get('location')
  1081. intro = request.POST.get('intro')
  1082. content = request.POST.get('content')
  1083. pic_list = request.POST.get('pic_list')
  1084. Hotel_id= request.POST.get("id")
  1085. if Hotel_id:
  1086. if Hotel_Info.objects.filter(id=Hotel_id).exists():
  1087. try:
  1088. Hotel_Info.objects.filter(id=Hotel_id).update(
  1089. name=name,
  1090. price=price,
  1091. intro=intro,
  1092. addr=addr,
  1093. location=location,
  1094. person=person,
  1095. hotel_img=img_url,
  1096. hotel_tel=mobile,
  1097. content=content,
  1098. author=current_user,
  1099. )
  1100. data="1"
  1101. except Exception as e:
  1102. print("-----------报错信息为-------------")
  1103. print(e)
  1104. data = "0"
  1105. if data == "1":
  1106. try:
  1107. hotel_obj = Hotel_Info.objects.get(name=name)
  1108. pic_list = pic_list.split(',')
  1109. for i in pic_list:
  1110. Hotel_Photo.objects.filter(hotel=hotel_obj).update(hotel=hotel_obj,addr=i)
  1111. except Exception as aa:
  1112. print("滚动图保存错误")
  1113. print(aa)
  1114. else:
  1115. data = "0"
  1116. return HttpResponse(data)
  1117. else:
  1118. try:
  1119. Hotel_Info.objects.create(
  1120. name=name,
  1121. price=price,
  1122. intro=intro,
  1123. addr=addr,
  1124. location=location,
  1125. person=person,
  1126. hotel_img=img_url,
  1127. hotel_tel=mobile,
  1128. content=content,
  1129. author=current_user)
  1130. data = "1"
  1131. except Exception as e:
  1132. print("-----------报错信息为-------------")
  1133. print(e)
  1134. data = "0"
  1135. if data == "1":
  1136. try:
  1137. hotel_obj = Hotel_Info.objects.get(name=name)
  1138. pic_list = pic_list.split(',')
  1139. for i in pic_list:
  1140. Hotel_Photo.objects.create(hotel=hotel_obj,addr=i)
  1141. except Exception as aa:
  1142. print("滚动图保存错误")
  1143. print(aa)
  1144. return HttpResponse(data)
  1145. # 旅游发布
  1146. class Sightsee_Pub(ListView):
  1147. def get(self,request):
  1148. return render(request, 'backstageNet/info/SightseePub.html', context={})
  1149. def post(self,request):
  1150. current_user = MyUser.objects.get(username="admin")
  1151. name = request.POST.get('name')
  1152. price = request.POST.get('price')
  1153. person = request.POST.get('person')
  1154. mobile = request.POST.get('mobile')
  1155. img_url = request.POST.get('img_url')
  1156. addr = request.POST.get('addr')
  1157. location = request.POST.get('location')
  1158. intro = request.POST.get('intro')
  1159. content = request.POST.get('content')
  1160. pic_list = request.POST.get('pic_list')
  1161. Hotel_id= request.POST.get("id")
  1162. if Hotel_id:
  1163. if Hotel_Info.objects.filter(id=Hotel_id).exists():
  1164. try:
  1165. Hotel_Info.objects.filter(id=Hotel_id).update(
  1166. name=name,
  1167. price=price,
  1168. intro=intro,
  1169. addr=addr,
  1170. location=location,
  1171. person=person,
  1172. hotel_img=img_url,
  1173. hotel_tel=mobile,
  1174. content=content,
  1175. author=current_user,
  1176. )
  1177. data="1"
  1178. except Exception as e:
  1179. print("-----------报错信息为-------------")
  1180. print(e)
  1181. data = "0"
  1182. if data == "1":
  1183. try:
  1184. hotel_obj = Hotel_Info.objects.get(name=name)
  1185. pic_list = pic_list.split(',')
  1186. for i in pic_list:
  1187. Hotel_Photo.objects.filter(hotel=hotel_obj).update(hotel=hotel_obj,addr=i)
  1188. except Exception as aa:
  1189. print("滚动图保存错误")
  1190. print(aa)
  1191. else:
  1192. data = "0"
  1193. return HttpResponse(data)
  1194. else:
  1195. try:
  1196. Hotel_Info.objects.create(
  1197. name=name,
  1198. price=price,
  1199. intro=intro,
  1200. addr=addr,
  1201. location=location,
  1202. person=person,
  1203. hotel_img=img_url,
  1204. hotel_tel=mobile,
  1205. content=content,
  1206. author=current_user)
  1207. data = "1"
  1208. except Exception as e:
  1209. print("-----------报错信息为-------------")
  1210. print(e)
  1211. data = "0"
  1212. if data == "1":
  1213. try:
  1214. hotel_obj = Hotel_Info.objects.get(name=name)
  1215. pic_list = pic_list.split(',')
  1216. for i in pic_list:
  1217. Hotel_Photo.objects.create(hotel=hotel_obj,addr=i)
  1218. except Exception as aa:
  1219. print("滚动图保存错误")
  1220. print(aa)
  1221. return HttpResponse(data)
  1222. # 视频审核
  1223. class Video_Check(ListView):
  1224. def get(self,request):
  1225. return render(request, 'backstageNet/infoManage/videoManage.html', context={'role':'superuser'})
  1226. def post(self,request):
  1227. video_id = request.POST.get('id')
  1228. video_see_id = request.POST.get("ids")
  1229. # 审核通过后删除
  1230. if video_id:
  1231. try:
  1232. video_sta = Video_data.objects.get(id=video_id)
  1233. video_sta.delete()
  1234. return HttpResponse("1")
  1235. except:
  1236. return HttpResponse("0")
  1237. # 审核通过查看详情
  1238. art_list = Video_data.objects.filter(id=video_see_id)
  1239. dat = []
  1240. for i in art_list:
  1241. dat.append({
  1242. "title":i.title,
  1243. "intro":i.intro,
  1244. "video_url": i.video_url.name,
  1245. "time": i.publish_date.strftime('%Y-%m-%d %H:%M:%S'),
  1246. "video_img": "%s"%i.video_img.name,
  1247. "author":i.author.username
  1248. })
  1249. data = json.dumps(dat,ensure_ascii=False)
  1250. return HttpResponse(data)
  1251. # 视频审核页面
  1252. class Video_Check_List(ListView):
  1253. def get(self,request):
  1254. hidden = request.GET.get('hidden')
  1255. page = int(request.GET.get('page'))
  1256. art_list = Video_data.objects.filter(hidden=hidden)
  1257. nums = art_list.count()
  1258. art = art_list[(10*(page-1)):(page*10)]
  1259. return render(request, 'backstageNet/infoManage/videoManageList.html', context={"art":art,"nums":nums})
  1260. def post(self,request):
  1261. art_id = request.POST.get('id')
  1262. req = request.POST.get('req')
  1263. art_obj = Video_data.objects.filter(id=art_id)
  1264. # 编辑
  1265. data = []
  1266. if req == "edit":
  1267. for i in art_obj:
  1268. data.append({
  1269. "id":i.id,
  1270. "title":i.title,
  1271. "intro":i.intro,
  1272. "video_img":i.video_img.name,
  1273. "video_url":i.video_url.name,
  1274. "author":i.author.username,
  1275. "time":i.publish_date.strftime('%Y-%m-%d %H:%M:%S'),
  1276. })
  1277. #删除
  1278. elif req == "del":
  1279. art_obj.delete()
  1280. data = "1"
  1281. #保存
  1282. elif req == "check":
  1283. art_obj = Video_data.objects.get(id=art_id)
  1284. art_obj.hidden = True
  1285. art_obj.save()
  1286. data = "1"
  1287. data = json.dumps(data)
  1288. return HttpResponse(data)
  1289. # 产品审核
  1290. class Equip_Check(ListView):
  1291. def get(self,request):
  1292. return render(request, 'backstageNet/infoManage/productManage.html', context={'role':'superuser'})
  1293. def post(self,request):
  1294. delete = request.POST.get('id')
  1295. product_see_id = request.POST.get("ids")
  1296. # 审核通过后删除
  1297. if delete:
  1298. try:
  1299. video_sta = Product.objects.get(id=delete)
  1300. video_sta.delete()
  1301. return HttpResponse("1")
  1302. except:
  1303. return HttpResponse("0")
  1304. # 审核通过查看详情
  1305. art_list = Product.objects.filter(id=product_see_id)
  1306. dat = []
  1307. for i in art_list:
  1308. dat.append({
  1309. "title":i.title,
  1310. "intro":i.intro,
  1311. "content": i.content,
  1312. "time": i.publish_date.strftime('%Y-%m-%d %H:%M:%S'),
  1313. "head_img": "%s"%i.head_img,
  1314. "mobile":i.mobile,
  1315. "author":i.author.username
  1316. })
  1317. data = json.dumps(dat)
  1318. return HttpResponse(data)
  1319. # 产品审核页面
  1320. class Equip_Check_List(ListView):
  1321. def get(self,request):
  1322. hidden = request.GET.get('hidden')
  1323. page = int(request.GET.get('page'))
  1324. art_list = Product.objects.filter(hidden=hidden)
  1325. nums = art_list.count()
  1326. art = art_list[(10*(page-1)):(page*10)]
  1327. return render(request, 'backstageNet/infoManage/productManageList.html', context={"art":art,"nums":nums})
  1328. def post(self,request):
  1329. art_id = request.POST.get('id')
  1330. req = request.POST.get('req')
  1331. art_obj = Product.objects.filter(id=art_id)
  1332. # 编辑
  1333. if req == "edit":
  1334. data = []
  1335. for i in art_obj:
  1336. data.append({
  1337. "id":i.id,
  1338. "title":i.title,
  1339. "intro":i.intro,
  1340. "head_img":i.head_img,
  1341. "content":i.content,
  1342. "mobile":i.mobile,
  1343. "author":i.author.username,
  1344. "time": i.publish_date.strftime('%Y-%m-%d %H:%M:%S'),
  1345. })
  1346. #删除
  1347. elif req == "del":
  1348. art_obj.delete()
  1349. data = "1"
  1350. #审核通过
  1351. elif req == "check":
  1352. art_obj = Product.objects.get(id=art_id)
  1353. art_obj.hidden = True
  1354. art_obj.save()
  1355. data = "1"
  1356. data = json.dumps(data)
  1357. return HttpResponse(data)
  1358. # 四季采摘审核
  1359. class Garden_Check(ListView):
  1360. def get(self,request):
  1361. return render(request, 'backstageNet/infoManage/pickManage.html', context={'role':'superuser'})
  1362. def post(self,request):
  1363. delete = request.POST.get('id')
  1364. garden_see_id = request.POST.get("ids")
  1365. if delete:
  1366. try:
  1367. garden_sta = Pick_Pub.objects.get(id=delete)
  1368. garden_sta.delete()
  1369. return HttpResponse("1")
  1370. except:
  1371. return HttpResponse("0")
  1372. art_list = Pick_Pub.objects.filter(id=garden_see_id)
  1373. dat = []
  1374. # 查看详情
  1375. for i in art_list:
  1376. dat.append({
  1377. "name":i.name,
  1378. "company":i.company,
  1379. "time": i.upl_time,
  1380. "img": "%s"%i.pick_img,
  1381. "farm":i.farm.name
  1382. })
  1383. data = json.dumps(dat)
  1384. return HttpResponse(data)
  1385. # 四季采摘审核页面
  1386. class Garden_Check_List(ListView):
  1387. def get(self,request):
  1388. hidden = request.GET.get('hidden')
  1389. page = int(request.GET.get('page'))
  1390. art_list = Pick_Pub.objects.filter(hidden=hidden)
  1391. nums = art_list.count()
  1392. art = art_list[(10*(page-1)):(page*10)]
  1393. return render(request, 'backstageNet/infoManage/pickManageList.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 = Pick_Pub.objects.filter(id=art_id)
  1398. # 编辑
  1399. if req == "edit":
  1400. data = []
  1401. for i in art_obj:
  1402. data.append({
  1403. "id":i.id,
  1404. "name":i.name,
  1405. "company":i.company,
  1406. "pick_img":i.pick_img,
  1407. "time": i.upl_time,
  1408. "farm":i.farm.name
  1409. })
  1410. #删除
  1411. elif req == "del":
  1412. art_obj.delete()
  1413. data = "1"
  1414. #审核通过
  1415. elif req == "check":
  1416. art_obj = Pick_Pub.objects.get(id=art_id)
  1417. art_obj.hidden = True
  1418. art_obj.save()
  1419. data = "1"
  1420. data = json.dumps(data,ensure_ascii=False)
  1421. return HttpResponse(data)
  1422. # 民宿审核
  1423. class Dorm_Check(ListView):
  1424. def get(self,request):
  1425. return render(request, 'backstageNet/infoManage/dormManage.html', context={'role':'superuser'})
  1426. def post(self,request):
  1427. hote_see_id = request.POST.get('ids')
  1428. delete = request.POST.get('id')
  1429. #已通过的删除
  1430. if delete:
  1431. try:
  1432. hote_sta = Hotel_Info.objects.get(id=delete)
  1433. hote_sta.delete()
  1434. return HttpResponse("1")
  1435. except:
  1436. return HttpResponse("0")
  1437. art_list = Hotel_Info.objects.filter(id=hote_see_id)
  1438. dat = []
  1439. # 通过后查看详情
  1440. for i in art_list:
  1441. dat.append({
  1442. "name":i.name,
  1443. "price":i.price,
  1444. "intro":i.intro,
  1445. "addr":i.addr,
  1446. "person":i.person,
  1447. "hotel_tel":i.hotel_tel,
  1448. "author":i.author.username,
  1449. "content":i.content,
  1450. "location":i.location,
  1451. # "time": i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),
  1452. "img": "%s"%i.hotel_img,
  1453. })
  1454. data = json.dumps(dat,ensure_ascii=False)
  1455. return HttpResponse(data)
  1456. # 民宿审核页面
  1457. class Dorm_Check_List(ListView):
  1458. def get(self,request):
  1459. hidden = request.GET.get('hidden')
  1460. page = int(request.GET.get('page'))
  1461. art_list = Hotel_Info.objects.filter(hidden=hidden)
  1462. nums = art_list.count()
  1463. art = art_list[(10*(page-1)):(page*10)]
  1464. return render(request, 'backstageNet/infoManage/dormManageList.html', context={"art":art,"nums":nums})
  1465. def post(self,request):
  1466. art_id = request.POST.get('id')
  1467. req = request.POST.get('req')
  1468. art_obj = Hotel_Info.objects.filter(id=art_id)
  1469. art = Hotel_Photo.objects.filter(hotel=art_id)
  1470. data = []
  1471. # 编辑
  1472. if req == "edit":
  1473. for i in art_obj:
  1474. data.append({
  1475. "id":i.id,
  1476. "name":i.name,
  1477. "price":i.price,
  1478. "intro":i.intro,
  1479. "addr":i.addr,
  1480. "location":i.location,
  1481. "person":i.person,
  1482. "hotel_img":i.hotel_img,
  1483. "hotel_tel":i.hotel_tel,
  1484. "content":i.content,
  1485. # "upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),
  1486. })
  1487. for x in art:
  1488. data.append({"addr_photo":x.addr})
  1489. # data.append(x.addr)
  1490. #删除
  1491. elif req == "del":
  1492. art_obj.delete()
  1493. data = "1"
  1494. #审核通过
  1495. elif req == "check":
  1496. art_obj = Hotel_Info.objects.get(id=art_id)
  1497. art_obj.hidden = True
  1498. art_obj.save()
  1499. data = "1"
  1500. data = json.dumps(data,ensure_ascii=False)
  1501. return HttpResponse(data)
  1502. # 农场审核
  1503. class Farm_Check(ListView):
  1504. def get(self,request):
  1505. return render(request, 'backstageNet/infoManage/farmManage.html', context={'role':'superuser'})
  1506. def post(self,request):
  1507. delete = request.POST.get('id')
  1508. garden_see_id = request.POST.get("ids")
  1509. if delete:
  1510. try:
  1511. garden_sta = Pick_Pub.objects.get(id=delete)
  1512. garden_sta.delete()
  1513. return HttpResponse("1")
  1514. except:
  1515. return HttpResponse("0")
  1516. art_list = Pick_Pub.objects.filter(id=garden_see_id)
  1517. dat = []
  1518. # 查看详情
  1519. for i in art_list:
  1520. dat.append({
  1521. "name":i.name,
  1522. "company":i.company,
  1523. "time": i.upl_time,
  1524. "img": "%s"%i.pick_img,
  1525. "farm":i.farm.name
  1526. })
  1527. data = json.dumps(dat)
  1528. return HttpResponse(data)
  1529. # 农场审核页面
  1530. class Farm_Check_List(ListView):
  1531. def get(self,request):
  1532. hidden = request.GET.get('hidden')
  1533. page = int(request.GET.get('page'))
  1534. art_list = Pick_Pub.objects.filter(hidden=hidden)
  1535. nums = art_list.count()
  1536. art = art_list[(10*(page-1)):(page*10)]
  1537. return render(request, 'backstageNet/infoManage/farmManageList.html', context={"art":art,"nums":nums})
  1538. def post(self,request):
  1539. art_id = request.POST.get('id')
  1540. req = request.POST.get('req')
  1541. art_obj = Pick_Pub.objects.filter(id=art_id)
  1542. # 编辑
  1543. if req == "edit":
  1544. data = []
  1545. for i in art_obj:
  1546. data.append({
  1547. "id":i.id,
  1548. "name":i.name,
  1549. "company":i.company,
  1550. "pick_img":i.pick_img,
  1551. "time": i.upl_time,
  1552. "farm":i.farm.name
  1553. })
  1554. #删除
  1555. elif req == "del":
  1556. art_obj.delete()
  1557. data = "1"
  1558. #审核通过
  1559. elif req == "check":
  1560. art_obj = Pick_Pub.objects.get(id=art_id)
  1561. art_obj.hidden = True
  1562. art_obj.save()
  1563. data = "1"
  1564. data = json.dumps(data,ensure_ascii=False)
  1565. return HttpResponse(data)
  1566. # 景点审核
  1567. class Sightsee_Check(ListView):
  1568. def get(self,request):
  1569. return render(request, 'backstageNet/infoManage/sightseeManage.html', context={'role':'superuser'})
  1570. def post(self,request):
  1571. delete = request.POST.get('id')
  1572. garden_see_id = request.POST.get("ids")
  1573. if delete:
  1574. try:
  1575. garden_sta = Pick_Pub.objects.get(id=delete)
  1576. garden_sta.delete()
  1577. return HttpResponse("1")
  1578. except:
  1579. return HttpResponse("0")
  1580. art_list = Pick_Pub.objects.filter(id=garden_see_id)
  1581. dat = []
  1582. # 查看详情
  1583. for i in art_list:
  1584. dat.append({
  1585. "name":i.name,
  1586. "company":i.company,
  1587. "time": i.upl_time,
  1588. "img": "%s"%i.pick_img,
  1589. "farm":i.farm.name
  1590. })
  1591. data = json.dumps(dat)
  1592. return HttpResponse(data)
  1593. # 景点审核页面
  1594. class Sightsee_Check_List(ListView):
  1595. def get(self,request):
  1596. hidden = request.GET.get('hidden')
  1597. page = int(request.GET.get('page'))
  1598. art_list = Pick_Pub.objects.filter(hidden=hidden)
  1599. nums = art_list.count()
  1600. art = art_list[(10*(page-1)):(page*10)]
  1601. return render(request, 'backstageNet/infoManage/sightseeManageList.html', context={"art":art,"nums":nums})
  1602. def post(self,request):
  1603. art_id = request.POST.get('id')
  1604. req = request.POST.get('req')
  1605. art_obj = Pick_Pub.objects.filter(id=art_id)
  1606. # 编辑
  1607. if req == "edit":
  1608. data = []
  1609. for i in art_obj:
  1610. data.append({
  1611. "id":i.id,
  1612. "name":i.name,
  1613. "company":i.company,
  1614. "pick_img":i.pick_img,
  1615. "time": i.upl_time,
  1616. "farm":i.farm.name
  1617. })
  1618. #删除
  1619. elif req == "del":
  1620. art_obj.delete()
  1621. data = "1"
  1622. #审核通过
  1623. elif req == "check":
  1624. art_obj = Pick_Pub.objects.get(id=art_id)
  1625. art_obj.hidden = True
  1626. art_obj.save()
  1627. data = "1"
  1628. data = json.dumps(data,ensure_ascii=False)
  1629. return HttpResponse(data)
  1630. # 产品发布图片上传
  1631. class Product_Photo(ListView):
  1632. def get(self,request):
  1633. pass
  1634. def post(self,request):
  1635. pass
  1636. # 新闻审核上传图片接口
  1637. class Test_Photo(ListView):
  1638. def get(self,request):
  1639. pass
  1640. def post(self,request):
  1641. # e_id = request.POST.get('id')
  1642. # news_sta = Article.objects.get(id=e_id)
  1643. news_photo = request.FILES['upload']
  1644. if news_photo:
  1645. print("新闻图片:", news_photo)
  1646. news_photo_dir = 'media/uploads/'
  1647. end_name = news_photo.name.split('.')[-1]
  1648. # 判断如果路径不存在,即创建路径
  1649. if os.path.exists(news_photo_dir) == False:
  1650. os.makedirs(news_photo_dir)
  1651. img = Image.open(news_photo)
  1652. now_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
  1653. pic_name = now_time + '.' + end_name
  1654. print("pic_name:", pic_name)
  1655. img.save(news_photo_dir + pic_name)
  1656. news_photo = news_photo_dir + pic_name
  1657. print("new_photo:",news_photo)
  1658. data = {"uploaded": 1,"fileName": pic_name,"url": news_photo}
  1659. else:
  1660. new_photo = "0"
  1661. data = {"code": 404,"msg": "","data": {"src": news_photo}}
  1662. data = json.dumps(data)
  1663. return HttpResponse(data)
  1664. class CKArticle_View(ListView):
  1665. def get(self,request):
  1666. pass
  1667. def post(self,request):
  1668. current_user = MyUser.objects.get(username="admin")
  1669. news_photo = request.POST.get('upload')
  1670. writer = request.POST.get('writer')
  1671. intro = request.POST.get('intro')
  1672. title = request.POST.get('title')
  1673. content = request.POST.get('content')
  1674. try:
  1675. CKArticle.objects.create(auther=current_user,writer=writer,intro=intro,title=title,content=content,head_img=news_photo)
  1676. data = "1"
  1677. except:
  1678. data = "0"
  1679. return HttpResponse(data)
  1680. #园区筛选
  1681. class Park_Land(ListView):
  1682. def get(self,request):
  1683. user_name = MyUser.objects.get(username="admin")
  1684. art_list = GardenArea.objects.filter(user=user_name)
  1685. data=[]
  1686. for i in art_list:
  1687. data.append({"name":i.name,"id":i.id})
  1688. data = json.dumps(data)
  1689. return HttpResponse(data)
  1690. # 农场管理
  1691. class Garden_Manage_New(ListView):
  1692. def get(self,request):
  1693. gardenid = int(request.GET.get("ids"))
  1694. user_name = MyUser.objects.filter(username="admin")
  1695. for i in user_name:
  1696. if i.username == "admin":
  1697. art_list = FarmList.objects.all()
  1698. nums = art_list.count()
  1699. else:
  1700. art_list = FarmList.objects.filter(garden=gardenid)
  1701. print("aaa")
  1702. print(art_list)
  1703. for i in art_list:
  1704. print(i.name)
  1705. nums = art_list.count()
  1706. page = int(request.GET.get('page'))
  1707. art = art_list[(9*(page-1)):(page*9)]
  1708. return render(request, 'backstageNet/production/gardenNew.html', context={"art":art,"nums":nums})
  1709. def post(self,request):
  1710. req = request.POST.get("req")
  1711. farm_id = request.POST.get('id')
  1712. art_list=FarmList.objects.filter(id=farm_id)
  1713. print(art_list)
  1714. data = []
  1715. #编辑回显数据
  1716. if req =="edit":
  1717. for i in art_list:
  1718. if i.manage_user:
  1719. data.append({
  1720. "id":i.id,
  1721. "name":i.name,
  1722. "user":i.user.username,
  1723. "manage_user":i.manage_user.name,
  1724. "area":i.area,
  1725. "curr_var":i.curr_var,
  1726. "farm_img":i.farm_img,
  1727. "farm_desc":i.farm_desc
  1728. })
  1729. else:
  1730. data.append({
  1731. "id":i.id,
  1732. "name":i.name,
  1733. "user":i.user.username,
  1734. "manage_user":"",
  1735. "area":i.area,
  1736. "curr_var":i.curr_var,
  1737. "farm_img":i.farm_img,
  1738. "farm_desc":i.farm_desc
  1739. })
  1740. #删除数据
  1741. if req == 'del':
  1742. pickid = Pick_Pub.objects.filter(farm=farm_id)
  1743. storeid = Store_Manage.objects.filter(farm=farm_id)
  1744. art = FarmList.objects.get(id=farm_id)
  1745. if pickid.count() ==0 and storeid.count() ==0:
  1746. art.delete()
  1747. data="1"
  1748. elif pickid.count() !=0 and storeid.count() ==0:
  1749. pickid.delete()
  1750. art.delete()
  1751. data="1"
  1752. elif pickid.count() ==0 and storeid.count() !=0:
  1753. storeid.delete()
  1754. art.delete()
  1755. data="1"
  1756. elif pickid.count() !=0 and storeid.count() !=0:
  1757. pickid.delete()
  1758. storeid.delete()
  1759. art.delete()
  1760. data="1"
  1761. data = json.dumps(data,ensure_ascii=False)
  1762. return HttpResponse(data)
  1763. # 修改农场管理
  1764. class Garden_Manage_View(ListView):
  1765. def get(self,request):
  1766. return render(request, 'backstageNet/production/gardenManage.html', context={})
  1767. def post(self,request):
  1768. #农场id
  1769. farm_id = request.POST.get('id')
  1770. #农场名称
  1771. name = request.POST.get('name')
  1772. #农场介绍
  1773. farm_desc = request.POST.get('content')
  1774. #农场面积
  1775. area = request.POST.get('area')
  1776. #农场品种
  1777. curr_var = request.POST.get('curr_var')
  1778. #农场图片
  1779. farm_img = request.POST.get('img_url')
  1780. #园区id
  1781. gardenid = request.POST.get("ids")
  1782. #修改当前数据
  1783. user_name = MyUser.objects.get(username="admin")
  1784. if farm_id:
  1785. try:
  1786. hote_sta = FarmList.objects.filter(id=farm_id).update(
  1787. name=name,
  1788. farm_desc=farm_desc,
  1789. area=area,
  1790. curr_var=curr_var,
  1791. farm_img=farm_img,
  1792. user=user_name,
  1793. )
  1794. data="1"
  1795. except Exception as e:
  1796. print(e)
  1797. data="0"
  1798. else:
  1799. try:
  1800. gardens=GardenArea.objects.get(id=gardenid)
  1801. FarmList.objects.create(
  1802. name=name,
  1803. farm_desc=farm_desc,
  1804. area=area,
  1805. curr_var=curr_var,
  1806. farm_img=farm_img,
  1807. user=user_name,
  1808. garden=gardens
  1809. )
  1810. data="1"
  1811. except Exception as e:
  1812. print(e)
  1813. data="0"
  1814. return HttpResponse(data)
  1815. # 新建人员管理
  1816. class Garden_User_View(ListView):
  1817. def get(self,request):
  1818. return render(request, 'backstageNet/production/workerManage.html', context={})
  1819. def post(self,request):
  1820. #管理者id
  1821. farm_id = request.POST.get('id')
  1822. #管理者名称
  1823. name = request.POST.get('name')
  1824. #性别
  1825. gender = request.POST.get('sex')
  1826. #联系方式
  1827. mobile = request.POST.get('mobile')
  1828. #管理农场
  1829. farm_name = request.POST.get("city")
  1830. #修改
  1831. if farm_id:
  1832. try:
  1833. hote_sta = FarmUser.objects.filter(id=farm_id).update(
  1834. name=name,
  1835. gender=gender,
  1836. mobile=mobile,
  1837. )
  1838. data="1"
  1839. if data=="1":
  1840. farms =FarmUser.objects.get(name=name)
  1841. farm = FarmList.objects.filter(name=farm_name).update(
  1842. manage_user=farms
  1843. )
  1844. data="1"
  1845. except Exception as e:
  1846. print(e)
  1847. data="0"
  1848. else:
  1849. #增加
  1850. try:
  1851. FarmUser.objects.create(
  1852. name=name,
  1853. gender=gender,
  1854. mobile=mobile,
  1855. )
  1856. data="1"
  1857. if data=="1":
  1858. farms =FarmUser.objects.get(name=name)
  1859. farm = FarmList.objects.filter(name=farm_name).update(
  1860. manage_user=farms
  1861. )
  1862. data="1"
  1863. except Exception as e:
  1864. print(e)
  1865. data="0"
  1866. return HttpResponse(data)
  1867. # 人员管理
  1868. class Garden_User_New(ListView):
  1869. def get(self,request):
  1870. user_name = MyUser.objects.get(username="admin")
  1871. art_list = FarmUser.objects.all()
  1872. nums = art_list.count()
  1873. page = int(request.GET.get('page'))
  1874. art = art_list[(9*(page-1)):(page*9)]
  1875. return render(request, 'backstageNet/production/workerNew.html', context={"art":art,"nums":nums})
  1876. def post(self,request):
  1877. req = request.POST.get("req")
  1878. farmuser_id = request.POST.get('id')
  1879. art_list = FarmUser.objects.filter(id=farmuser_id)
  1880. data = []
  1881. #编辑数据回显
  1882. if req == "edit":
  1883. for i in art_list:
  1884. data.append({
  1885. "id":i.id,
  1886. "name":i.name,
  1887. "gender":i.gender,
  1888. "mobile":i.mobile
  1889. })
  1890. #删除
  1891. elif req == 'del':
  1892. art_list.delete()
  1893. data = "1"
  1894. data = json.dumps(data,ensure_ascii=False)
  1895. return HttpResponse(data)
  1896. # 库存新建
  1897. class Repertory_View(ListView):
  1898. def get(self,request):
  1899. return render(request, 'backstageNet/production/repertoryManage.html', context={})
  1900. def post(self,request):
  1901. #库存id
  1902. store_id = request.POST.get('id')
  1903. #物料名称
  1904. name = request.POST.get('name')
  1905. #物料类别
  1906. rtype = request.POST.get('rtype')
  1907. #规格
  1908. spec = request.POST.get('spec')
  1909. #库存
  1910. rese = request.POST.get('rese')
  1911. #修改
  1912. if store_id:
  1913. try:
  1914. hote_sta = Store_Manage.objects.filter(id=store_id).update(
  1915. name=name,
  1916. rtype=rtype,
  1917. spec=spec,
  1918. rese=rese,
  1919. )
  1920. data = "1"
  1921. except Exception as e:
  1922. print(e)
  1923. data = "0"
  1924. else:
  1925. #新增
  1926. try:
  1927. Store_Manage.objects.create(
  1928. name=name,
  1929. rtype=rtype,
  1930. spec=spec,
  1931. rese=rese,
  1932. )
  1933. data = "1"
  1934. except Exception as e:
  1935. print(e)
  1936. data = "0"
  1937. return HttpResponse(data)
  1938. # 库存管理
  1939. class Repertory_New(ListView):
  1940. def get(self,request):
  1941. user_name = MyUser.objects.get(username="admin")
  1942. ids = int(request.GET.get('ids'))
  1943. try:
  1944. art = FarmList.objects.filter(garden=ids,user=user_name)
  1945. if art:
  1946. art_list = Store_Manage.objects.all()
  1947. print(art_list)
  1948. except Exception as e:
  1949. print(e)
  1950. art_list = ""
  1951. nums = art_list.count()
  1952. page = int(request.GET.get('page'))
  1953. art = art_list[(9*(page-1)):(page*9)]
  1954. return render(request, 'backstageNet/production/repertoryNew.html', context={"art":art,"nums":nums})
  1955. def post(self,request):
  1956. req = request.POST.get("req")
  1957. store_id = request.POST.get('id')
  1958. art_list=Store_Manage.objects.filter(id=store_id)
  1959. data = []
  1960. #编辑数据回显
  1961. if req == "edit":
  1962. for i in art_list:
  1963. data.append({
  1964. "id":i.id,
  1965. "name":i.name,
  1966. "rtype":i.rtype,
  1967. "spec":i.spec,
  1968. "rese":i.rese
  1969. })
  1970. #删除
  1971. elif req == 'del':
  1972. art_list.delete()
  1973. data = "1"
  1974. data = json.dumps(data,ensure_ascii=False)
  1975. return HttpResponse(data)
  1976. # 库存管理(出库,入库)
  1977. class Repertory_New_View(ListView):
  1978. def get(self,request):
  1979. pass
  1980. def post(self,request):
  1981. req = request.POST.get("req")
  1982. store_id = request.POST.get('id')
  1983. num = int(request.POST.get('num'))
  1984. print("num",num)
  1985. art_list = Store_Manage.objects.filter(id=store_id)
  1986. #出库
  1987. if req == "see":
  1988. for i in art_list:
  1989. res = int(i.rese)
  1990. r = res-num
  1991. if r >0 or r == 0:
  1992. Store_Manage.objects.filter(id=store_id).update(rese=r)
  1993. data = "1"
  1994. else:
  1995. data = "0"
  1996. return HttpResponse(data)
  1997. #入库
  1998. elif req == "add":
  1999. for i in art_list:
  2000. res = int(i.rese)
  2001. r = res+num
  2002. if r:
  2003. Store_Manage.objects.filter(id=store_id).update(rese=r)
  2004. data = "1"
  2005. else:
  2006. data = "0"
  2007. return HttpResponse(data)
  2008. # 销售管理
  2009. class Sell_View(ListView):
  2010. def get(self,request):
  2011. current_user = MyUser.objects.get(username="admin")
  2012. try:
  2013. # user_gar = GardenArea.objects.get(user=current_user)
  2014. farm_list = FarmList.objects.filter(garden__user=current_user)
  2015. except Exception as e:
  2016. print(e)
  2017. farm_list = ""
  2018. nums = farm_list.count()
  2019. return render(request, 'backstageNet/production/sellManage.html', context={"farm_list":farm_list,"nums":nums})
  2020. def post(self,request):
  2021. current_user = MyUser.objects.get(username="admin")
  2022. page = int(request.POST.get("page"))
  2023. dat = []
  2024. try:
  2025. # user_gar = GardenArea.objects.get(user=current_user)
  2026. # farm_list = FarmList.objects.filter(garden=user_gar)
  2027. farm_list = FarmList.objects.filter(garden__user=current_user)
  2028. for i in farm_list:
  2029. for x in Sell_Manage.objects.filter(farm=i):
  2030. dat.append({
  2031. "id":x.id,
  2032. "farm":x.farm.name,"name":x.name,
  2033. "num":x.num,"money":x.money,
  2034. "time":x.upl_time.strftime('%Y-%m-%d %H:%M:%S')
  2035. })
  2036. except Exception as e:
  2037. print(e)
  2038. dat = []
  2039. nums = len(dat)
  2040. dat = dat[(9*(page-1)):(page*9)]
  2041. data = json.dumps({"dat":dat,"nums":nums})
  2042. return HttpResponse(data)
  2043. # 销售新建
  2044. class Sell_New(ListView):
  2045. def get(self,request):
  2046. pass
  2047. def post(self,request):
  2048. farm = request.POST.get("farm")
  2049. name = request.POST.get("name")
  2050. num = request.POST.get("num")
  2051. money = request.POST.get("money")
  2052. time = request.POST.get("time")
  2053. s_id = request.POST.get("id")
  2054. if s_id:
  2055. try:
  2056. farm_obj = FarmList.objects.get(name=farm)
  2057. sell_obj = Sell_Manage.objects.get(id=s_id)
  2058. sell_obj.farm = farm_obj
  2059. sell_obj.name = name
  2060. sell_obj.num = num
  2061. sell_obj.money = money
  2062. sell_obj.upl_time = time
  2063. sell_obj.save()
  2064. data = "1"
  2065. except Exception as e:
  2066. print(e)
  2067. data = "0"
  2068. else:
  2069. try:
  2070. farm_obj = FarmList.objects.get(name=farm)
  2071. Sell_Manage.objects.create(farm=farm_obj,name=name,num=num,money=money,upl_time=time)
  2072. data = "1"
  2073. except Exception as e:
  2074. print(e)
  2075. data = "0"
  2076. return HttpResponse(data)
  2077. # 销售删除
  2078. class Sell_Del(ListView):
  2079. def get(self,request):
  2080. pass
  2081. def post(self,request):
  2082. s_id = request.POST.get("id")
  2083. try:
  2084. sell_obj = Sell_Manage.objects.get(id=s_id)
  2085. sell_obj.delete()
  2086. data = "1"
  2087. except Exception as e:
  2088. print(e)
  2089. data = "0"
  2090. return HttpResponse(data)
  2091. # 数据分析
  2092. class Cropdata(ListView):
  2093. def get(self,request):
  2094. return render(request, 'backstageNet/production/cropdata.html', context={})
  2095. def post(self,request):
  2096. pass
  2097. # 种植统计
  2098. class CropCount(ListView):
  2099. def get(self,request):
  2100. return render(request, 'backstageNet/production/cropcount.html', context={})
  2101. def post(self,request):
  2102. crop_count = request.POST.get('crop_count')
  2103. area = request.POST.get('area')
  2104. crop_id = request.POST.get('id')
  2105. upl_time = request.POST.get("upl_time")
  2106. cropname = request.POST.get('cropname')
  2107. city = request.POST.get("city")
  2108. count=crop_count + city
  2109. print(count)
  2110. #修改
  2111. if crop_id:
  2112. try:
  2113. crops =GardenArea.objects.get(name=area)
  2114. crop = Areacrop.objects.filter(id=crop_id).update(
  2115. cropname=cropname,
  2116. area=crops,
  2117. upl_time=upl_time,
  2118. crop_count=count,
  2119. )
  2120. data = "1"
  2121. except Exception as e:
  2122. print(e)
  2123. data = "0"
  2124. else:
  2125. #新增
  2126. try:
  2127. crops =GardenArea.objects.get(name=area)
  2128. Areacrop.objects.create(
  2129. cropname=cropname,
  2130. area=crops,
  2131. upl_time=upl_time,
  2132. crop_count=count,
  2133. )
  2134. data = "1"
  2135. except Exception as e:
  2136. print(e)
  2137. data = "0"
  2138. return HttpResponse(data)
  2139. # 种植管理
  2140. class CropCount_View(ListView):
  2141. def get(self,request):
  2142. user_name = MyUser.objects.get(username="admin")
  2143. art = GardenArea.objects.filter(user=user_name)
  2144. page = int(request.GET.get("page"))
  2145. dat = []
  2146. for i in art:
  2147. art_list = Areacrop.objects.filter(area=i)
  2148. for x in art_list:
  2149. if x.end_time:
  2150. time = int(x.upl_time.strftime("%Y%m%d"))
  2151. time_now = int(x.end_time.strftime("%Y%m%d"))
  2152. data = time_now-time
  2153. curro = "当前阶段已结束"
  2154. h2 = {"cropname":x.cropname,
  2155. "area":x.area.name,
  2156. "crop_count":x.crop_count,
  2157. "img":x.area.img,
  2158. "time":data,
  2159. "upl_time":x.upl_time.strftime('%Y-%m-%d'),
  2160. "id":x.id
  2161. }
  2162. dat.append({"data":h2,"curro":curro})
  2163. else:
  2164. time = int(x.upl_time.strftime("%Y%m%d"))
  2165. time_now = int(timezone.now().strftime("%Y%m%d"))
  2166. data = time_now-time
  2167. print(data)
  2168. curro = ""
  2169. h2 = {"cropname":x.cropname,
  2170. "area":x.area.name,
  2171. "crop_count":x.crop_count,
  2172. "img":x.area.img,
  2173. "time":data,
  2174. "id":x.id,
  2175. "upl_time":x.upl_time.strftime('%Y-%m-%d')
  2176. }
  2177. dat.append({"data":h2,"curro":curro})
  2178. nums = len(dat)
  2179. dat = dat[(9*(page-1)):(page*9)]
  2180. data = json.dumps({"dat":dat,"nums":nums})
  2181. return HttpResponse(data)
  2182. def post(self,request):
  2183. req = request.POST.get("req")
  2184. areacropid = request.POST.get("id")
  2185. art_list = Areacrop.objects.filter(id=areacropid)
  2186. data = []
  2187. #结束时间
  2188. if req == "end":
  2189. for x in art_list:
  2190. Areacrop.objects.filter(id=areacropid).update(
  2191. end_time=datetime.datetime.now()
  2192. )
  2193. data = "1"
  2194. #编辑数据返现
  2195. elif req == "edit":
  2196. for i in art_list:
  2197. data.append({
  2198. "id":i.id,
  2199. "area":i.area.name,
  2200. "crop_count":i.crop_count,
  2201. "cropname":i.cropname,
  2202. "upl_time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S')
  2203. })
  2204. #删除
  2205. elif req == "del":
  2206. art_list.delete()
  2207. data = "1"
  2208. data = json.dumps(data)
  2209. return HttpResponse(data)
  2210. # 个人采摘
  2211. class Pick(ListView):
  2212. def get(self,request):
  2213. current_user = MyUser.objects.get(username="admin")
  2214. try:
  2215. # user_gar = GardenArea.objects.get(user=current_user)
  2216. farm_list = FarmList.objects.filter(garden__user=current_user)
  2217. except Exception as e:
  2218. print(e)
  2219. farm_list = ""
  2220. nums = farm_list.count()
  2221. return render(request, 'backstageNet/production/pick.html', context={"farm_list":farm_list,"nums":nums})
  2222. def post(self,request):
  2223. current_user = MyUser.objects.get(username="admin")
  2224. page = int(request.POST.get("page"))
  2225. dat = []
  2226. try:
  2227. farm_list = FarmList.objects.filter(garden__user=current_user)
  2228. for i in farm_list:
  2229. for x in Person_Pick.objects.filter(farm=i):
  2230. dat.append({
  2231. "id":x.id,
  2232. "farm":x.farm.name,"name":x.name,
  2233. "num":x.num,"var":x.var,
  2234. "time":x.upl_time.strftime('%Y-%m-%d %H:%M:%S')
  2235. })
  2236. except Exception as e:
  2237. print(e)
  2238. dat = []
  2239. nums = len(dat)
  2240. dat = dat[(9*(page-1)):(page*9)]
  2241. data = json.dumps({"dat":dat,"nums":nums})
  2242. return HttpResponse(data)
  2243. # 采摘新建
  2244. class Pick_New(ListView):
  2245. def get(self,request):
  2246. pass
  2247. def post(self,request):
  2248. farm = request.POST.get("farm")
  2249. name = request.POST.get("name")
  2250. num = request.POST.get("num")
  2251. var = request.POST.get("var")
  2252. time = request.POST.get("time")
  2253. p_id = request.POST.get("id")
  2254. if p_id:
  2255. try:
  2256. farm_obj = FarmList.objects.get(name=farm)
  2257. pick_obj = Person_Pick.objects.get(id=p_id)
  2258. pick_obj.farm = farm_obj
  2259. pick_obj.name = name
  2260. pick_obj.num = num
  2261. pick_obj.var = var
  2262. pick_obj.upl_time = time
  2263. pick_obj.save()
  2264. data = "1"
  2265. except Exception as e:
  2266. print(e)
  2267. data = "0"
  2268. else:
  2269. try:
  2270. farm_obj = FarmList.objects.get(name=farm)
  2271. Person_Pick.objects.create(farm=farm_obj,name=name,num=num,var=var,upl_time=time)
  2272. data = "1"
  2273. except Exception as e:
  2274. print(e)
  2275. data = "0"
  2276. return HttpResponse(data)
  2277. # 采摘删除
  2278. class Pick_Del(ListView):
  2279. def get(self,request):
  2280. pass
  2281. def post(self,request):
  2282. p_id = request.POST.get("id")
  2283. try:
  2284. pick_obj = Person_Pick.objects.get(id=p_id)
  2285. pick_obj.delete()
  2286. data = "1"
  2287. except Exception as e:
  2288. print(e)
  2289. data = "0"
  2290. return HttpResponse(data)
  2291. # 类型分析
  2292. class Type_View(ListView):
  2293. def get(self,request):
  2294. current_user = MyUser.objects.get(username="admin")
  2295. area_list = GardenArea.objects.all()
  2296. return render(request, 'backstageNet/datacenter/cropdata.html', context={"area_list":area_list})
  2297. def post(self,request):
  2298. area = request.POST.get("id")
  2299. current_user = MyUser.objects.get(username="admin")
  2300. year = datetime.datetime.now().year
  2301. start_1 = datetime.date(year,1,1)
  2302. end_1 = datetime.date(year,3,31)
  2303. start_2 = datetime.date(year,4,1)
  2304. end_2 = datetime.date(year,6,30)
  2305. start_3 = datetime.date(year,7,1)
  2306. end_3 = datetime.date(year,9,30)
  2307. start_4 = datetime.date(year,10,1)
  2308. end_4 = datetime.date(year,12,31)
  2309. money = 0
  2310. dat = []
  2311. dat1 = []
  2312. dat2 = []
  2313. dat3 = []
  2314. dat4 = []
  2315. if area:
  2316. # area_obj = GardenArea.objects.get(id=area)
  2317. for i in FarmList.objects.filter(garden_id=area):
  2318. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_1, end_1)):
  2319. money = money + int(x.money)
  2320. dat1.append({"farm":i.name,"money":money})
  2321. money = 0
  2322. for i in FarmList.objects.filter(garden_id=area):
  2323. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_2, end_2)):
  2324. money = money + int(x.money)
  2325. dat2.append({"farm":i.name,"money":money})
  2326. money = 0
  2327. for i in FarmList.objects.filter(garden_id=area):
  2328. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_3, end_3)):
  2329. money = money + int(x.money)
  2330. dat3.append({"farm":i.name,"money":money})
  2331. money = 0
  2332. for i in FarmList.objects.filter(garden_id=area):
  2333. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_4, end_4)):
  2334. money = money + int(x.money)
  2335. dat4.append({"farm":i.name,"money":money})
  2336. money = 0
  2337. for i in FarmList.objects.filter(garden_id=area):
  2338. dat.append({"area":i.area,"name":i.name})
  2339. data = json.dumps({"1":dat1,"2":dat2,"3":dat3,"4":dat4,"dat":dat})
  2340. return HttpResponse(data)
  2341. # 对比分析
  2342. class Contrast_View(ListView):
  2343. def get(self,request):
  2344. current_user = MyUser.objects.get(username="admin")
  2345. area_list = GardenArea.objects.all()
  2346. area_obj = GardenArea.objects.all().first()
  2347. farm_list = FarmList.objects.filter(garden=area_obj)
  2348. return render(request, 'backstageNet/datacenter/contrast.html', context={"area_list":area_list,"farm_list":farm_list})
  2349. def post(self,request):
  2350. area_id = request.POST.get("id")
  2351. farm_list = FarmList.objects.filter(garden_id=area_id)
  2352. dat= []
  2353. for i in farm_list:
  2354. dat.append({"name":i.name,"id":i.id})
  2355. data = json.dumps(dat)
  2356. return HttpResponse(data)
  2357. # 对比分析详情
  2358. class Contrast_Detail(ListView):
  2359. def get(self,request):
  2360. pass
  2361. def post(self,request):
  2362. farm_id = request.POST.get("id")
  2363. year = datetime.datetime.now().year
  2364. start_1 = datetime.date(year,1,1)
  2365. end_1 = datetime.date(year,12,31)
  2366. start_2 = datetime.date(year-1,1,1)
  2367. end_2 = datetime.date(year-1,12,31)
  2368. start_3 = datetime.date(year-2,1,1)
  2369. end_3 = datetime.date(year-2,12,31)
  2370. start_4 = datetime.date(year-3,1,1)
  2371. end_4 = datetime.date(year-3,12,31)
  2372. dat1 = []
  2373. dat2 = []
  2374. dat3 = []
  2375. dat4 = []
  2376. money = 0
  2377. if farm_id != "":
  2378. print("+++++++++++++++++")
  2379. # area_obj = GardenArea.objects.get(id=area)
  2380. for i in FarmList.objects.filter(id=farm_id):
  2381. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_1, end_1)):
  2382. money = money + int(x.money)
  2383. dat1.append({"farm":i.name,"money":money})
  2384. money = 0
  2385. for i in FarmList.objects.filter(id=farm_id):
  2386. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_2, end_2)):
  2387. money = money + int(x.money)
  2388. dat2.append({"farm":i.name,"money":money})
  2389. money = 0
  2390. for i in FarmList.objects.filter(id=farm_id):
  2391. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_3, end_3)):
  2392. money = money + int(x.money)
  2393. dat3.append({"farm":i.name,"money":money})
  2394. money = 0
  2395. for i in FarmList.objects.filter(id=farm_id):
  2396. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_4, end_4)):
  2397. money = money + int(x.money)
  2398. dat4.append({"farm":i.name,"money":money})
  2399. money = 0
  2400. elif farm_id == "":
  2401. print("--------")
  2402. dat1 = []
  2403. dat2 = []
  2404. dat3 = []
  2405. dat4 = []
  2406. data = json.dumps({"1":dat1,"2":dat2,"3":dat3,"4":dat4})
  2407. return HttpResponse(data)
  2408. # 对比分析列表
  2409. class Contrast_List(ListView):
  2410. def get(self,request):
  2411. pass
  2412. def post(self,request):
  2413. area_id = request.POST.get("id")
  2414. page = int(request.POST.get("page"))
  2415. dat = []
  2416. farm_list = FarmList.objects.filter(garden_id=area_id)
  2417. for i in farm_list:
  2418. for x in Sell_Manage.objects.filter(farm=i):
  2419. dat.append({"name":x.farm.name,"num":x.num,"area":x.farm.area,"money":x.money,"upl_time":x.upl_time})
  2420. nums = len(dat)
  2421. dat = dat[(10*(page-1)):(page*10)]
  2422. data = json.dumps({"dat":dat,"nums":nums})
  2423. return HttpResponse(data)
  2424. # 产业数据
  2425. class Industry_Data(ListView):
  2426. def get(self,request):
  2427. current_user = MyUser.objects.get(username="admin")
  2428. area_list = GardenArea.objects.all()
  2429. return render(request, 'backstageNet/datacenter/industrydata.html', context={"area_list":area_list})
  2430. def post(self,request):
  2431. current_user = MyUser.objects.get(username="admin")
  2432. area = request.POST.get("id")
  2433. page = int(request.POST.get("page"))
  2434. dat = []
  2435. money = 0
  2436. start_date = datetime.datetime.now().year
  2437. start_date = datetime.date(start_date,1,1)
  2438. end_date = datetime.datetime.now()
  2439. if area:
  2440. # area_obj = GardenArea.objects.get(id=area)
  2441. for i in FarmList.objects.filter(garden_id=area):
  2442. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_date, end_date)):
  2443. money = money + int(x.money)
  2444. dat.append({"farm":i.name,"money":money,"manage":i.manage_user,"area":i.area})
  2445. money = 0
  2446. else:
  2447. area_obj = GardenArea.objects.get(user=current_user)
  2448. for i in FarmList.objects.filter(garden=area_obj):
  2449. for x in Sell_Manage.objects.filter(farm=i,upl_time__range=(start_date, end_date)):
  2450. money = money + int(x.money)
  2451. dat.append({"farm":i.name,"money":money,"manage":i.manage_user,"area":i.area})
  2452. money = 0
  2453. nums = len(dat)
  2454. dat_split = dat[(10*(page-1)):(page*10)]
  2455. data = json.dumps({"dat":dat,"nums":nums,"dat_split":dat_split})
  2456. return HttpResponse(data)
  2457. # 气象站阈值设置
  2458. class QXZ_Warning_View(ListView):
  2459. def get(self,request):
  2460. user_name = request.user.username
  2461. print('user_name=', user_name)
  2462. current_user = MyUser.objects.get(username=user_name)
  2463. equip_list = Equip.objects.filter(equip_user=current_user,equip_type=5)
  2464. return render(request, 'backstageNet/warn/warnSet.html', context={"equip_list":equip_list})
  2465. def post(self,request):
  2466. pass
  2467. # 气象站阈值记录
  2468. class QXZ_Warning_List(ListView):
  2469. def get(self,request):
  2470. return render(request, 'backstageNet/warn/warnRecord.html', context={})
  2471. def post(self,request):
  2472. pass
  2473. # 生产方式设置
  2474. class Production_Set(ListView):
  2475. def get(self,request):
  2476. user_name = request.user.username
  2477. print('user_name=', user_name)
  2478. current_user = MyUser.objects.get(username=user_name)
  2479. equip_list = Equip.objects.filter(equip_user=current_user,equip_type=5)
  2480. return render(request, 'backstageNet/warn/productionset.html', context={"equip_list":equip_list})
  2481. def post(self,request):
  2482. pass
  2483. # 农场划分
  2484. class Farm_Mark(ListView):
  2485. def get(self,request):
  2486. return render(request, 'backstageNet/basicSet/farmmark.html', context={})
  2487. def post(self,request):
  2488. pass
  2489. # 农场列表
  2490. class Farm_List(ListView):
  2491. def get(self,request):
  2492. return render(request, 'backstageNet/basicSet/farmlist.html', context={})
  2493. def post(self,request):
  2494. pass
  2495. # 交通指引
  2496. class Traffic_Line(ListView):
  2497. def get(self,request):
  2498. return render(request, 'backstageNet/trafficLine/trafficLine.html', context={})
  2499. def post(self,request):
  2500. pass
  2501. # 管理员新闻发布
  2502. class Policy_Pub(ListView):
  2503. def get(self,request):
  2504. return render(request, 'backstageNet/annunciate/policyPub.html', context={})
  2505. def post(self,request):
  2506. current_user = MyUser.objects.get(username="admin")
  2507. # news_photo = request.POST.get('upload')
  2508. art_type = request.POST.get('type')
  2509. # writer = request.POST.get('writer')
  2510. # intro = request.POST.get('intro')
  2511. title = request.POST.get('title')
  2512. content = request.POST.get('content')
  2513. policyid = request.POST.get("id")
  2514. #修改
  2515. if policyid:
  2516. try:
  2517. CKArticle.objects.filter(id=policyid).update(art_type=art_type,title=title,content=content,hidden=True)
  2518. data = "1"
  2519. except Exception as e:
  2520. print(e)
  2521. data = "0"
  2522. #创建
  2523. else:
  2524. try:
  2525. CKArticle.objects.create(author=current_user,art_type=art_type,title=title,content=content,hidden=True)
  2526. data = "1"
  2527. except Exception as e:
  2528. print(e)
  2529. data = "0"
  2530. return HttpResponse(data)
  2531. # 管理员新闻列表
  2532. class Policy_List_View(ListView):
  2533. def get(self,request):
  2534. return render(request, 'backstageNet/annunciate/policyListView.html', context={})
  2535. def post(self,request):
  2536. policyid = request.POST.get("id")
  2537. req = request.POST.get("req")
  2538. art_list = CKArticle.objects.filter(id=policyid)
  2539. data = []
  2540. #查看
  2541. if req == "see":
  2542. for i in art_list:
  2543. data.append({
  2544. "art_type":i.art_type,
  2545. "title":i.title,
  2546. "content":i.content,
  2547. "time":i.upl_time.strftime('%Y-%m-%d %H:%M:%S'),
  2548. "author":i.author.username
  2549. })
  2550. elif req == "del":
  2551. art_list.delete()
  2552. data="1"
  2553. data = json.dumps(data,ensure_ascii=False)
  2554. return HttpResponse(data)
  2555. # 管理员新闻列表
  2556. class Policy_List(ListView):
  2557. def get(self,request):
  2558. page = int(request.GET.get("page"))
  2559. art_list = CKArticle.objects.all().exclude(art_type=5)
  2560. nums = art_list.count()
  2561. art = art_list[(10*(page-1)):(page*10)]
  2562. return render(request, 'backstageNet/annunciate/policyList.html', context={"art":art,"nums":nums})
  2563. def post(self,request):
  2564. data = []
  2565. req = request.POST.get("req")
  2566. page = int(request.POST.get("page"))
  2567. print(req)
  2568. if req == "":
  2569. art_list = CKArticle.objects.filter(art_type__lte=2)
  2570. nums = art_list.count()
  2571. else:
  2572. art_list = CKArticle.objects.filter(art_type=req)
  2573. #筛选
  2574. nums = art_list.count()
  2575. art = art_list[(10*(page-1)):(page*10)]
  2576. return render(request, 'backstageNet/annunciate/policyList.html', context={"art":art,"nums":nums})
  2577. # 个人农场主页
  2578. class Person_Farm(ListView):
  2579. def get(self,request):
  2580. uname = request.GET.get('name')
  2581. current_user = MyUser.objects.get(username=uname)
  2582. news = CKArticle.objects.filter(author=current_user)
  2583. garden = GardenArea.objects.get(user=current_user)
  2584. video = Video_data.objects.filter(author=current_user)
  2585. product = Product.objects.filter(author=current_user)
  2586. return render(request, 'outerNet/person_farm.html', context={"news":news,"garden":garden,"video":video,"product":product})
  2587. def post(self,request):
  2588. pass
  2589. # 农场管理界面
  2590. class Person_Farm_Edit(ListView):
  2591. def get(self,request):
  2592. current_user = MyUser.objects.get(username='admin')
  2593. return render(request, 'backstageNet/production/person_farm_edit.html', context={"current_user":current_user})
  2594. def post(self,request):
  2595. current_user = MyUser.objects.get(username='admin')
  2596. try:
  2597. gar_area = GardenArea.objects.get(user=current_user)
  2598. data = {"name":gar_area.name,"manage":gar_area.manage,"mobile":gar_area.mobile,
  2599. "area":gar_area.area,"location":gar_area.location,"addr":gar_area.addr,
  2600. "desc":gar_area.desc,"img":gar_area.img
  2601. }
  2602. except Exception as e:
  2603. print(e)
  2604. data = {"name":"","manage":"","mobile":"",
  2605. "area":"","location":"","addr":"",
  2606. "desc":"","img":""
  2607. }
  2608. data = json.dumps(data)
  2609. return HttpResponse(data)
  2610. # 地块发布
  2611. class Person_Area_Pub(ListView):
  2612. def get(self,request):
  2613. pass
  2614. def post(self,request):
  2615. current_user = MyUser.objects.get(username='admin')
  2616. # 农场名称
  2617. name = request.POST.get('name')
  2618. # 负责人
  2619. manage = request.POST.get('manage')
  2620. # 联系电话
  2621. mobile = request.POST.get('mobile')
  2622. # 面积
  2623. area = request.POST.get('area')
  2624. # 农场介绍
  2625. desc = request.POST.get('desc')
  2626. # 图片
  2627. img = request.POST.get('img')
  2628. location = request.POST.get('location')
  2629. addr = request.POST.get('addr')
  2630. if GardenArea.objects.filter(user=current_user).exists():
  2631. try:
  2632. gar_obj = GardenArea.objects.get(user=current_user)
  2633. gar_obj.name = name
  2634. gar_obj.manage = manage
  2635. gar_obj.mobile = mobile
  2636. gar_obj.area = area
  2637. gar_obj.desc = desc
  2638. gar_obj.img = img
  2639. gar_obj.location = location
  2640. gar_obj.addr = addr
  2641. gar_obj.save()
  2642. data = "1"
  2643. except Exception as e:
  2644. print(e)
  2645. data = "0"
  2646. else:
  2647. try:
  2648. GardenArea.objects.create(user=current_user,name=name,manage=manage,mobile=mobile,
  2649. area=area,desc=desc,img=img,
  2650. location=location,addr=addr)
  2651. data = "1"
  2652. except Exception as e:
  2653. print(e)
  2654. data = "0"
  2655. return HttpResponse(data)
  2656. class Person_View(ListView):
  2657. def get(self,request):
  2658. # 接收当前用户
  2659. # current_user = request.session.get('username')
  2660. current_user = MyUser.objects.get(username="admin")
  2661. # print("current_user:", current_user)
  2662. # current_user = MyUser.objects.get(username=current_user)
  2663. page = request.GET.get("page")
  2664. uname = request.GET.get("uname")
  2665. user_list = MyUser.objects.all()
  2666. nums = user_list.count()
  2667. return render(request, 'backstageNet/systemSet/userManage.html', context={"nums": nums,"page":page,"uname":uname})
  2668. def post(self, request):
  2669. pass
  2670. class Person_List(ListView):
  2671. def get(self,request):
  2672. page = int(request.GET.get('page'))
  2673. print("page=", page)
  2674. uname = request.GET.get("uname")
  2675. # 接收当前用户
  2676. # current_user = request.session.get('username')
  2677. current_user = MyUser.objects.get(username="admin")
  2678. # print("current_user:", current_user)
  2679. # current_user = MyUser.objects.get(username=current_user)
  2680. # if current_user.is_superuser == True:
  2681. user_list = MyUser.objects.all().order_by(
  2682. "-date_joined")[(10*(page-1)):(page*10)]
  2683. if uname:
  2684. user_list = MyUser.objects.filter(username__contains=uname).order_by(
  2685. "-date_joined")[(10*(page-1)):(page*10)]
  2686. return render(request, 'backstageNet/systemSet/user_list.html', context={'user_list': user_list})
  2687. def post(self,request):
  2688. # current_user = request.session.get('username')
  2689. # print("current_user:", current_user)
  2690. current_user = MyUser.objects.get(username="admin")
  2691. print("筛选:")
  2692. f_name = request.POST.get('uname')
  2693. page = int(request.POST.get('page'))
  2694. print("page:", page)
  2695. user_list = MyUser.objects.filter(username__contains=f_name)
  2696. nums = user_list.count()
  2697. user_list = user_list[(10*(page-1)):(page*10)]
  2698. return render(request, 'backstageNet/systemSet/user_list.html', context={'user_list': user_list, "nums": nums})
  2699. class Area_Create(ListView):
  2700. def get(self,request):
  2701. current_user = MyUser.objects.get(username="admin")
  2702. currpage = request.GET.get('currpage')
  2703. uname = request.GET.get("uname")
  2704. f_name = request.GET.get("f_name")
  2705. user_obj = MyUser.objects.get(username=uname)
  2706. try:
  2707. curr_area = GardenArea.objects.get(user=user_obj)
  2708. # user_area = {"name":curr_area.name,"location":curr_area.location}
  2709. except Exception as e:
  2710. print(e)
  2711. curr_area = ""
  2712. # user_area = {"name":"","location":""}
  2713. return render(request, 'backstageNet/systemSet/onlineSplit.html', context={"currpage":currpage,"uname":uname,"f_name":f_name,"curr_area":curr_area})
  2714. def post(self,request):
  2715. uname = request.POST.get("uname")
  2716. name = request.POST.get("name")
  2717. area = request.POST.get("area")
  2718. location = request.POST.get("location")
  2719. user_obj = MyUser.objects.get(username=uname)
  2720. if GardenArea.objects.filter(user=user_obj).exists():
  2721. try:
  2722. area_obj = GardenArea.objects.get(user=user_obj)
  2723. area_obj.name = name
  2724. area_obj.area = area
  2725. area_obj.location = location
  2726. area_obj.upl_time = datetime.datetime.now()
  2727. area_obj.save()
  2728. data = "1"
  2729. except Exception as e:
  2730. print(e)
  2731. data = "0"
  2732. else:
  2733. try:
  2734. GardenArea.objects.create(user=user_obj,name=name,area=area,location=location,upl_time=datetime.datetime.now())
  2735. data = "1"
  2736. except Exception as e:
  2737. print(e)
  2738. data = "0"
  2739. return HttpResponse(data)
  2740. class Area_Map(ListView):
  2741. def get(self,request):
  2742. return render(request, 'backstageNet/systemSet/onlineSplitMap.html', context={})
  2743. def post(self,request):
  2744. uname = request.POST.get("uname")
  2745. user_obj = MyUser.objects.get(username=uname)
  2746. all_area = []
  2747. area_list = GardenArea.objects.all().exclude(user=user_obj)
  2748. for i in area_list:
  2749. all_area.append({"name":i.name,"location":i.location})
  2750. try:
  2751. curr_area = GardenArea.objects.get(user=user_obj)
  2752. user_area = {"name":curr_area.name,"location":curr_area.location}
  2753. except Exception as e:
  2754. print(e)
  2755. user_area = {"name":"","location":""}
  2756. data = json.dumps({"all_area":all_area,"user_area":user_area})
  2757. return HttpResponse(data)
  2758. # 菜单权限
  2759. class Limit(ListView):
  2760. def get(self,request):
  2761. currpage = request.GET.get('currpage')
  2762. uname = request.GET.get("uname")
  2763. f_name = request.GET.get("f_name")
  2764. return render(request, 'backstageNet/limit/limit.html', context={"currpage":currpage,"uname":uname,"f_name":f_name})
  2765. def post(self,request):
  2766. uname = request.POST.get("uname")
  2767. user_obj = MyUser.objects.get(username=uname)
  2768. return HttpResponse(user_obj.limit)
  2769. class Limit_View(ListView):
  2770. def get(self,request):
  2771. # 接收当前用户
  2772. # current_user = request.session.get('username')
  2773. current_user = MyUser.objects.get(username="admin")
  2774. # print("current_user:", current_user)
  2775. # current_user = MyUser.objects.get(username=current_user)
  2776. page = request.GET.get("page")
  2777. uname = request.GET.get("uname")
  2778. user_list = MyUser.objects.all()
  2779. nums = user_list.count()
  2780. return render(request, 'backstageNet/limit/limitUserManage.html', context={"nums": nums,"page":page,"uname":uname})
  2781. def post(self, request):
  2782. uname = request.POST.get("uname")
  2783. limit = request.POST.get("limit")
  2784. user_obj = MyUser.objects.get(username=uname)
  2785. try:
  2786. user_obj.limit = limit
  2787. user_obj.save()
  2788. data = "1"
  2789. except Exception as e:
  2790. print("错误信息为",e)
  2791. data = "0"
  2792. return HttpResponse(data)
  2793. class Person_Limit(ListView):
  2794. def get(self,request):
  2795. page = int(request.GET.get('page'))
  2796. print("page=", page)
  2797. uname = request.GET.get("uname")
  2798. # 接收当前用户
  2799. # current_user = request.session.get('username')
  2800. current_user = MyUser.objects.get(username="admin")
  2801. # print("current_user:", current_user)
  2802. # current_user = MyUser.objects.get(username=current_user)
  2803. # if current_user.is_superuser == True:
  2804. user_list = MyUser.objects.all().order_by(
  2805. "-date_joined")[(10*(page-1)):(page*10)]
  2806. if uname:
  2807. user_list = MyUser.objects.filter(username__contains=uname).order_by(
  2808. "-date_joined")[(10*(page-1)):(page*10)]
  2809. return render(request, 'backstageNet/limit/limit_user_list.html', context={'user_list': user_list})
  2810. def post(self,request):
  2811. # current_user = request.session.get('username')
  2812. # print("current_user:", current_user)
  2813. current_user = MyUser.objects.get(username="admin")
  2814. print("筛选:")
  2815. f_name = request.POST.get('uname')
  2816. page = int(request.POST.get('page'))
  2817. print("page:", page)
  2818. user_list = MyUser.objects.filter(username__contains=f_name)
  2819. nums = user_list.count()
  2820. user_list = user_list[(10*(page-1)):(page*10)]
  2821. return render(request, 'backstageNet/limit/limit_user_list.html', context={'user_list': user_list, "nums": nums})
  2822. # 专家诊断
  2823. class Expert(ListView):
  2824. def get(self,request):
  2825. return render(request, 'backstageNet/limit/expert.html', context={})
  2826. def post(self,request):
  2827. pass
  2828. class learnDepot(ListView):
  2829. def get(self,request):
  2830. return render(request, 'backstageNet/limit/learnDepot.html', context={})
  2831. def post(self,request):
  2832. pass
  2833. # 创建新用户
  2834. class Create_User(ListView):
  2835. def get(self,request):
  2836. currpage = request.GET.get("currpage")
  2837. f_name = request.GET.get("f_name")
  2838. return render(request, 'backstageNet/systemSet/creatUser.html', context={"currpage":currpage,"f_name":f_name})
  2839. def post(self,request):
  2840. name = request.POST.get("name")
  2841. email = request.POST.get("email")
  2842. phone = request.POST.get("phone")
  2843. user_remark = request.POST.get("desc")
  2844. if MyUser.objects.extra(where=['binary username=%s'], params=[name]).exists():
  2845. # 用户已存在!!!
  2846. data = "3"
  2847. return HttpResponse(data)
  2848. elif MyUser.objects.filter(email = email).exists():
  2849. # 该邮箱已注册!!!
  2850. data = "2"
  2851. return HttpResponse(data)
  2852. else:
  2853. UserModel = get_user_model()
  2854. # 创建用户:
  2855. try:
  2856. user = UserModel.objects.create_user(username=name, email=email,\
  2857. user_phone=phone, password="yf123456",\
  2858. is_active = 1,is_staff = 0,user_remark = user_remark,limit =
  2859. [{
  2860. "id": 1,
  2861. "title": "首页",
  2862. "icon": "&#xe626;",
  2863. "url": "map",
  2864. "checked": "false",
  2865. "children": []
  2866. },
  2867. {
  2868. "id": 3,
  2869. "title": "信息发布",
  2870. "icon": "&#xe765;",
  2871. "url": "",
  2872. "children": [
  2873. {
  2874. "id": 3.1,
  2875. "title": "新闻资讯",
  2876. "url": "news_pub",
  2877. },
  2878. {
  2879. "id": 3.2,
  2880. "title": "视频资讯",
  2881. "url": "video_pub",
  2882. },
  2883. {
  2884. "id": 3.2,
  2885. "title": "产品展厅",
  2886. "url": "equip_pub",
  2887. },
  2888. {
  2889. "id": 3.3,
  2890. "title": "四季采摘",
  2891. "url": "garden_pub",
  2892. },
  2893. {
  2894. "id": 3.4,
  2895. "title": "民宿导览",
  2896. "url": "dorm_pub",
  2897. },
  2898. ]
  2899. },
  2900. ])
  2901. user.save()
  2902. data = "1"
  2903. except Exception as e:
  2904. print(e)
  2905. data = "0"
  2906. return HttpResponse(data)
  2907. # 管理员修改密码
  2908. class Change_Pwd(ListView):
  2909. def get(self,request):
  2910. pass
  2911. def post(self,request):
  2912. uname = request.POST.get("uname")
  2913. new_pwd = request.POST.get("userpassword")
  2914. print("uname:",uname)
  2915. print("new_pwd:",new_pwd)
  2916. user = MyUser.objects.get(username=uname)
  2917. user.set_password(new_pwd)
  2918. try:
  2919. user.save()
  2920. data = "1"
  2921. except:
  2922. data = "0"
  2923. return HttpResponse(data)
  2924. # 删除用户
  2925. class Delete_User(ListView):
  2926. def get(self,request):
  2927. pass
  2928. def post(self,request):
  2929. uname = request.POST.get("uname")
  2930. try:
  2931. user_obj = MyUser.objects.get(username=uname)
  2932. user_obj.delete()
  2933. data = "1"
  2934. except Exception as e:
  2935. print(e)
  2936. data = "0"
  2937. return HttpResponse(data)
  2938. # 用户修改自己密码
  2939. class User_Change_Pwd(ListView):
  2940. def get(self,request):
  2941. return render(request, 'backstageNet/systemSet/changePwd.html', context={})
  2942. def post(self,request):
  2943. username = request.user.username
  2944. print('username:',username)
  2945. user = MyUser.objects.get(username=username)
  2946. print("当前用户为:", username)
  2947. oldpassword = request.POST.get('oldpassword')
  2948. password = request.POST.get('password')
  2949. print("post的oldpassword:", oldpassword)
  2950. print("post的password:", password)
  2951. if(check_password(oldpassword, user.password)):
  2952. user.set_password(password)
  2953. user.save()
  2954. data = "1"
  2955. else:
  2956. data = "0"
  2957. return HttpResponse(data)
  2958. # 气象站阈值接口
  2959. class QXZ_Auto(ListView):
  2960. def get(self,request):
  2961. pass
  2962. def post(self,request):
  2963. imei = request.POST.get('imei')
  2964. try:
  2965. auto_list = QXZAutoswitch.objects.get(equip_id_id=imei)
  2966. qxz_list = QXZstatus.objects.get(equip_id_id=imei)
  2967. data = {"qxz_list":eval(qxz_list.qxz_status)['data'],"auto_list":auto_list.qxz_auto}
  2968. except:
  2969. data = {"qxz_list":[],"auto_list":[]}
  2970. data = json.dumps(data)
  2971. return HttpResponse(data)
  2972. # 气象站阈值设置接口
  2973. class QXZ_Value_Mqtt(ListView):
  2974. def get(self,request):
  2975. pass
  2976. def post(self,request):
  2977. req = request.POST.get('req')
  2978. jk = request.POST.get('JK')
  2979. ekey = request.POST.get('eKey')
  2980. upper = request.POST.get('upper')
  2981. lower = request.POST.get('lower')
  2982. method = request.POST.get('method')
  2983. imei = request.POST.get('imei')
  2984. # topic = "/yfkj/qxz/sub/"+imei
  2985. # if req == "read":
  2986. # payload = {"ext":{"type":"status"},"cmd":"read"}
  2987. # elif req == "set":
  2988. # way = int(request.POST.get('way'))
  2989. # switch = int(request.POST.get('switch'))
  2990. # payload = {"cmd":"control","ext":{"JK":way,"status":switch}}
  2991. # elif req == "conf":
  2992. # payload = {"ext":{"type":"jkStatus"},"cmd":"read"}
  2993. # cmd = {"topic":topic,"payload":json.dumps(payload),'qos':0}
  2994. # res = requests.post("http://www.yfzhwlw.com:8080/api/v2/mqtt/publish",
  2995. # data=json.dumps(cmd), auth=HTTPBasicAuth("admin", "yfkj_6019"))
  2996. # print("res.status_code:", type(res.status_code))
  2997. # if res.status_code == 200:
  2998. # data = "0"
  2999. # return HttpResponse(data)
  3000. # else:
  3001. # data = "1"
  3002. # return HttpResponse(data)
  3003. return HttpResponse("0")