EquipmentManager.py 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644
  1. import re
  2. import time
  3. import traceback
  4. import simplejson as json
  5. from django.utils import timezone
  6. from Model.models import Device_User, Device_Info, UID_Bucket, UID_App, UID_Preview
  7. from django.db.models import Q
  8. from Object.ResponseObject import ResponseObject
  9. from Object.TokenObject import TokenObject
  10. from Service.CommonService import CommonService
  11. from Service.ModelService import ModelService
  12. from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY
  13. import oss2
  14. # 查询用户设备
  15. def queryUserEquipmentInterface(request):
  16. request.encoding = 'utf-8'
  17. response = ResponseObject()
  18. if request.method == 'POST':
  19. request_dict = request.POST
  20. elif request.method == 'GET':
  21. request_dict = request.GET
  22. else:
  23. return response.json(444)
  24. token = request_dict.get('token', None)
  25. tko = TokenObject(token)
  26. response.lang = tko.lang
  27. if tko.code != 0:
  28. return response.json(tko.code)
  29. userID = tko.userID
  30. if not userID:
  31. return response.json(309)
  32. dvqs = Device_Info.objects.filter(userID_id=userID)
  33. dvdict = CommonService.qs_to_dict(dvqs)
  34. uid_list = Device_Info.objects.filter(userID_id=userID, isShare=False). \
  35. values_list('UID', flat=True)
  36. ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
  37. values('bucket__content', 'status', 'channel', 'endTime', 'uid')
  38. res = []
  39. nowTime = int(time.time())
  40. for p in dvdict['datas']:
  41. p['fields']['vod'] = []
  42. for dm in ubqs:
  43. if p['fields']['UID'] == dm['uid']:
  44. if dm['endTime'] > nowTime:
  45. p['fields']['vod'].append(dm)
  46. # dm['valid'] = 1
  47. # else:
  48. # dm['valid'] = 0
  49. # p['fields']['primaryUserID'] = ''
  50. res.append(p)
  51. return response.json(0, {'datas': res})
  52. def addNewUserEquipmentInterface(request):
  53. request.encoding = 'utf-8'
  54. response = ResponseObject()
  55. if request.method == 'POST':
  56. request_dict = request.POST
  57. elif request.method == 'GET':
  58. request_dict = request.GET
  59. else:
  60. return response.json(444)
  61. token = request_dict.get('token', None)
  62. deviceContent = request_dict.get('content', None)
  63. if not deviceContent:
  64. return response.json(444, 'content')
  65. tko = TokenObject(token)
  66. response.lang = tko.lang
  67. if tko.code != 0:
  68. return response.json(tko.code)
  69. userID = tko.userID
  70. try:
  71. deviceData = json.loads(deviceContent)
  72. UID = deviceData.get('UID', None)
  73. if not UID:
  74. return response.json(444, 'content')
  75. dValid = Device_Info.objects.filter(userID_id=userID, UID=UID)
  76. if dValid:
  77. return response.json(174)
  78. else:
  79. UID = deviceData.get('UID', '')
  80. re_uid = re.compile(r'^[A-Za-z0-9]{20}$')
  81. if re_uid.match(UID):
  82. userDevice = Device_Info(id=CommonService.getUserID(getUser=False), userID_id=userID,
  83. **deviceData)
  84. userDevice.save()
  85. # is_bind = Device_Info.objects.filter(UID=UID, isShare=False)
  86. # # 判断是否有已绑定用户
  87. # if not is_bind.exists():
  88. # userDevice = Device_Info(id=CommonService.getUserID(getUser=False), userID_id=userID,
  89. # **deviceData)
  90. # userDevice.save()
  91. # else:
  92. # # 分享添加
  93. # if 'isShare' in deviceData:
  94. # deviceData['isShare'] = True
  95. # else:
  96. # deviceData['isShare'] = True
  97. # bind_userID = is_bind[0].userID_id
  98. # userDevice = Device_Info(id=CommonService.getUserID(getUser=False),
  99. # userID_id=userID,
  100. # primaryUserID=bind_userID,
  101. # primaryMaster=ModelService.get_user_name(bind_userID),
  102. # **deviceData)
  103. # userDevice.save()
  104. else:
  105. return response.json(444, 'UID')
  106. except Exception as e:
  107. errorInfo = traceback.format_exc()
  108. print('添加设备错误: %s ' % errorInfo)
  109. return response.json(178, repr(e))
  110. else:
  111. sqlDict = CommonService.qs_to_dict([userDevice])
  112. return response.json(0, sqlDict)
  113. def delUserEquipmentInterface(request):
  114. '''
  115. 删除用户设备
  116. :param request:
  117. :return:
  118. '''
  119. response = ResponseObject()
  120. request.encoding = 'utf-8'
  121. if request.method == 'POST':
  122. request_dict = request.POST
  123. elif request.method == 'GET':
  124. request_dict = request.GET
  125. else:
  126. return response.json(444)
  127. token = request_dict.get('token', None)
  128. id = request_dict.get('id', None)
  129. if not id:
  130. return response.json(444, 'id')
  131. tko = TokenObject(token)
  132. response.lang = tko.lang
  133. if tko.code != 0:
  134. return response.json(tko.code)
  135. userID = tko.userID
  136. # 主用户删除设备全部删除
  137. try:
  138. Device_Info.objects.filter(userID_id=userID, id=id).delete()
  139. except Exception as e:
  140. errorInfo = traceback.format_exc()
  141. print('删除数据库记录错误: %s' % errorInfo)
  142. return response.json(176, repr(e))
  143. else:
  144. return response.json(0)
  145. def modifyUserEquipmentInterface(request):
  146. '''
  147. 修改用户设备
  148. :param request:
  149. :return:
  150. '''
  151. response = ResponseObject()
  152. if request.method == 'POST':
  153. request.encoding = 'utf-8'
  154. request_dict = request.POST
  155. elif request.method == 'GET':
  156. request.encoding = 'utf-8'
  157. request_dict = request.GET
  158. else:
  159. return response.json(444)
  160. token = request_dict.get('token', None)
  161. deviceContent = request_dict.get('content', None)
  162. id = request_dict.get('id', None)
  163. if not deviceContent or not id:
  164. return response.json(444, 'content,id')
  165. tko = TokenObject(token)
  166. response.lang = tko.lang
  167. if tko.code != 0:
  168. return response.json(tko.code)
  169. userID = tko.userID
  170. if userID is None:
  171. return response.json(309)
  172. try:
  173. deviceData = json.loads(deviceContent)
  174. Device_Info.objects.filter(userID_id=userID, id=id).update(**deviceData)
  175. except Exception as e:
  176. return response.json(177, repr(e))
  177. else:
  178. qs = Device_Info.objects.filter(userID_id=userID, id=id)
  179. res = CommonService.qs_to_dict(qs)
  180. return response.json(0, res)
  181. def showAllUserEquipmentInterface(request, *callback_args, **callback_kwargs):
  182. request.encoding = 'utf-8'
  183. response = ResponseObject()
  184. if request.method == 'POST':
  185. fieldDict = request.POST
  186. elif request.method == 'GET':
  187. fieldDict = request.GET
  188. else:
  189. return response.json(444)
  190. token = request.POST.get('token', None)
  191. type = request.POST.get('type', None)
  192. tko = TokenObject(token)
  193. response.lang = tko.lang
  194. if tko.code != 0:
  195. return response.json(tko.code)
  196. userID = tko.userID
  197. if not userID:
  198. return response.json(309)
  199. own_perm = ModelService.check_perm(userID=userID, permID=30)
  200. if not own_perm:
  201. return response.json(404)
  202. if type == 'PC':
  203. page = int(fieldDict['page'])
  204. line = int(fieldDict['line'])
  205. qs = Device_Info.objects.all()
  206. count = qs.count()
  207. res = qs[(page - 1) * line:page * line]
  208. sqlDict = CommonService.qs_to_dict(query_set=res)
  209. sqlDict['count'] = count
  210. return response.json(0, sqlDict)
  211. else:
  212. qs = Device_Info.objects.all()
  213. res = CommonService.qs_to_dict(qs)
  214. return response.json(0, res)
  215. def findEquipmentInfoInterface(request, *callback_args, **callback_kwargs):
  216. request.encoding = 'utf-8'
  217. response = ResponseObject()
  218. if request.method == 'GET':
  219. fieldDict = request.GET
  220. elif request.method == 'POST':
  221. fieldDict = request.POST
  222. else:
  223. return response.json(444)
  224. deviceContent = fieldDict.get('content', None)
  225. token = fieldDict.get('token', None)
  226. tko = TokenObject(token)
  227. response.lang = tko.lang
  228. if tko.code != 0:
  229. return response.json(tko.code)
  230. if deviceContent:
  231. try:
  232. searchCondition = json.loads(deviceContent)
  233. except Exception as e:
  234. print(repr(e))
  235. return response.json(10, repr(e))
  236. else:
  237. kwargs = CommonService.get_kwargs(data=searchCondition)
  238. qs = Device_Info.objects.filter(**kwargs)
  239. page = int(fieldDict['page'])
  240. line = int(fieldDict['line'])
  241. count = qs.count()
  242. res = qs[(page - 1) * line:page * line]
  243. send_dict = CommonService.qs_to_dict(query_set=res)
  244. for k, v in enumerate(send_dict["datas"]):
  245. for val in res:
  246. if v['pk'] == val.id:
  247. username = ModelService.get_user_name(send_dict["datas"][k]['fields']['userID'])
  248. send_dict["datas"][k]['fields']['username'] = username
  249. primary = ModelService.get_user_name(send_dict["datas"][k]['fields']['primaryUserID'])
  250. send_dict["datas"][k]['fields']['primaryusername'] = primary
  251. send_dict['count'] = count
  252. return response.json(0, send_dict)
  253. else:
  254. qs = Device_Info.objects.all()
  255. page = int(fieldDict['page'])
  256. line = int(fieldDict['line'])
  257. count = qs.count()
  258. res = qs[(page - 1) * line:page * line]
  259. send_dict = CommonService.qs_to_dict(query_set=res)
  260. for k, v in enumerate(send_dict["datas"]):
  261. for val in res:
  262. if v['pk'] == val.id:
  263. username = ModelService.get_user_name(send_dict["datas"][k]['fields']['userID'])
  264. send_dict["datas"][k]['fields']['username'] = username
  265. primary = ModelService.get_user_name(send_dict["datas"][k]['fields']['primaryUserID'])
  266. send_dict["datas"][k]['fields']['primaryusername'] = primary
  267. send_dict['count'] = count
  268. return response.json(0, send_dict)
  269. # 添加设备字段
  270. def addInterface(request):
  271. request.encoding = 'utf-8'
  272. response = ResponseObject()
  273. if request.method == 'POST':
  274. request_dict = request.POST
  275. elif request.method == 'GET':
  276. request_dict = request.GET
  277. else:
  278. return response.json(444)
  279. token = request_dict.get('token', None)
  280. UID = request_dict.get('UID', None)
  281. NickName = request_dict.get('NickName', None)
  282. View_Account = request_dict.get('View_Account', None)
  283. View_Password = request_dict.get('View_Password', '')
  284. Type = request_dict.get('Type', None)
  285. ChannelIndex = request_dict.get('ChannelIndex', None)
  286. if all([UID, NickName, View_Account, Type, ChannelIndex]):
  287. tko = TokenObject(token)
  288. response.lang = tko.lang
  289. if tko.code == 0:
  290. userID = tko.userID
  291. re_uid = re.compile(r'^[A-Za-z0-9]{20}$')
  292. if re_uid.match(UID):
  293. is_exist = Device_Info.objects.filter(UID=UID, userID_id=userID)
  294. if is_exist:
  295. return response.json(174)
  296. else:
  297. # is_bind = Device_Info.objects.filter(UID=UID, isShare=False)
  298. # # 判断是否有已绑定用户
  299. # if is_bind:
  300. # return response.json(15)
  301. try:
  302. pk = CommonService.getUserID(getUser=False)
  303. userDevice = Device_Info(id=pk, userID_id=userID, UID=UID,
  304. NickName=NickName, View_Account=View_Account,
  305. View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex)
  306. userDevice.save()
  307. except Exception as e:
  308. return response.json(10, repr(e))
  309. else:
  310. dvqs = Device_Info.objects.filter(id=pk).values('id', 'userID', 'NickName', 'UID',
  311. 'View_Account',
  312. 'View_Password', 'ChannelIndex', 'Type',
  313. 'isShare',
  314. 'primaryUserID', 'primaryMaster',
  315. 'data_joined', 'version',
  316. 'isVod', 'isExist')
  317. dvql = CommonService.qs_to_list(dvqs)
  318. ubqs = UID_Bucket.objects.filter(uid=UID). \
  319. values('bucket__content', 'status', 'channel', 'endTime', 'uid')
  320. res = dvql[0]
  321. res['vod'] = list(ubqs)
  322. return response.json(0, res)
  323. else:
  324. return response.json(444, {'param': 'UID'})
  325. else:
  326. return response.json(tko.code)
  327. else:
  328. return response.json(444, {'param': 'UID,NickName,View_Account,View_Password,Type,ChannelIndex'})
  329. # 管理员添加
  330. def admin_addInterface(request):
  331. request.encoding = 'utf-8'
  332. response = ResponseObject()
  333. if request.method == 'POST':
  334. request_dict = request.POST
  335. elif request.method == 'GET':
  336. request_dict = request.GET
  337. else:
  338. return response.json(444)
  339. token = request_dict.get('token', None)
  340. deviceContent = request_dict.get('content', None)
  341. username = request_dict.get('username', None)
  342. if not username:
  343. return response.json(444, 'username')
  344. if not deviceContent:
  345. return response.json(444, 'content')
  346. tko = TokenObject(token)
  347. response.lang = tko.lang
  348. if tko.code != 0:
  349. return response.json(tko.code)
  350. userID = tko.userID
  351. own_perm = ModelService.check_perm(userID, 40)
  352. # 权限判断
  353. if own_perm is not True:
  354. return response.json(404)
  355. # 查询id
  356. user = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username))
  357. if user.exists():
  358. user_dict = CommonService.qs_to_dict(user)
  359. userID = user_dict.get('datas')[0].get('pk')
  360. else:
  361. return response.json(104)
  362. print(deviceContent)
  363. try:
  364. deviceData = json.loads(deviceContent)
  365. UID = deviceData.get('UID', None)
  366. if not UID:
  367. return response.json(444, 'content')
  368. dValid = Device_Info.objects.filter(userID_id=userID, UID=UID)
  369. if dValid:
  370. return response.json(174)
  371. else:
  372. UID = deviceData.get('UID', '')
  373. re_uid = re.compile(r'^[A-Za-z0-9]{20}$')
  374. if re_uid.match(UID):
  375. userDevice = Device_Info(id=CommonService.getUserID(getUser=False), userID_id=userID,
  376. **deviceData)
  377. userDevice.save()
  378. # is_bind = Device_Info.objects.filter(UID=UID, isShare=False)
  379. # # 判断是否有已绑定用户
  380. # if not is_bind.exists():
  381. # userDevice = Device_Info(id=CommonService.getUserID(getUser=False), userID_id=userID,
  382. # **deviceData)
  383. # userDevice.save()
  384. # else:
  385. # # 分享添加
  386. # if 'isShare' in deviceData:
  387. # deviceData['isShare'] = True
  388. # else:
  389. # deviceData['isShare'] = True
  390. # bind_userID = is_bind[0].userID_id
  391. # userDevice = Device_Info(id=CommonService.getUserID(getUser=False),
  392. # userID_id=userID,
  393. # primaryUserID=bind_userID,
  394. # primaryMaster=ModelService.get_user_name(bind_userID),
  395. # **deviceData)
  396. # userDevice.save()
  397. else:
  398. return response.json(444, 'UID')
  399. except Exception as e:
  400. errorInfo = traceback.format_exc()
  401. print('添加设备错误: %s ' % errorInfo)
  402. return response.json(178, repr(e))
  403. else:
  404. sqlDict = CommonService.qs_to_dict([userDevice])
  405. return response.json(0, sqlDict)
  406. # 超级管理员修改设备
  407. def admin_modifyInterface(request):
  408. response = ResponseObject()
  409. if request.method == 'POST':
  410. request.encoding = 'utf-8'
  411. request_dict = request.POST
  412. elif request.method == 'GET':
  413. request.encoding = 'utf-8'
  414. request_dict = request.GET
  415. else:
  416. return response.json(444)
  417. token = request_dict.get('token', None)
  418. deviceContent = request_dict.get('content', None)
  419. username = request_dict.get('username', None)
  420. if not username:
  421. return response.json(444, 'username')
  422. id = request_dict.get('id', None)
  423. print(deviceContent)
  424. if not deviceContent or not id:
  425. return response.json(444, 'content,id')
  426. tko = TokenObject(token)
  427. response.lang = tko.lang
  428. if tko.code != 0:
  429. return response.json(tko.code)
  430. userID = tko.userID
  431. if userID is None:
  432. return response.json(309)
  433. own_perm = ModelService.check_perm(userID, 50)
  434. # 权限判断
  435. if own_perm is not True:
  436. return response.json(404)
  437. deviceData = json.loads(deviceContent)
  438. print(deviceData['UID'])
  439. dValid = Device_Info.objects.filter(userID_id=userID, UID=deviceData['UID'])
  440. if dValid.exists():
  441. dValid_dict = CommonService.qs_to_dict(dValid)
  442. print(dValid_dict.get('datas')[0].get('pk'))
  443. if dValid_dict.get('datas')[0].get('pk') == id:
  444. print('可以编辑')
  445. else:
  446. return response.json(174)
  447. # 查询id
  448. user = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username))
  449. if user.exists():
  450. user_dict = CommonService.qs_to_dict(user)
  451. userID = user_dict.get('datas')[0].get('pk')
  452. try:
  453. # 更改的时间
  454. update_time = timezone.localtime(timezone.now())
  455. Device_Info.objects.filter(userID_id=userID, id=id).update(update_time=update_time, **deviceData)
  456. except Exception as e:
  457. return response.json(177, repr(e))
  458. else:
  459. qs = Device_Info.objects.filter(userID_id=userID, id=id)
  460. res = CommonService.qs_to_dict(qs)
  461. return response.json(0, res)
  462. else:
  463. # 查询id
  464. user = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username))
  465. if user.exists():
  466. user_dict = CommonService.qs_to_dict(user)
  467. userID = user_dict.get('datas')[0].get('pk')
  468. try:
  469. # 更改的时间
  470. update_time = timezone.localtime(timezone.now())
  471. Device_Info.objects.filter(userID_id=userID, id=id).update(update_time=update_time, **deviceData)
  472. except Exception as e:
  473. return response.json(177, repr(e))
  474. else:
  475. qs = Device_Info.objects.filter(userID_id=userID, id=id)
  476. res = CommonService.qs_to_dict(qs)
  477. return response.json(0, res)
  478. # 新删除设备
  479. def deleteInterface(request):
  480. '''
  481. 删除用户设备
  482. :param request:
  483. :return:
  484. '''
  485. response = ResponseObject()
  486. request.encoding = 'utf-8'
  487. if request.method == 'POST':
  488. request_dict = request.POST
  489. elif request.method == 'GET':
  490. request_dict = request.GET
  491. else:
  492. return response.json(444)
  493. token = request_dict.get('token', None)
  494. id = request_dict.get('id', None)
  495. if not id:
  496. return response.json(444, 'id')
  497. tko = TokenObject(token)
  498. response.lang = tko.lang
  499. if tko.code != 0:
  500. return response.json(tko.code)
  501. userID = tko.userID
  502. # 主用户删除设备全部删除
  503. if not userID:
  504. return response.json(309)
  505. try:
  506. dv_qs = Device_Info.objects.filter(userID_id=userID, id=id)
  507. uid = dv_qs[0].UID
  508. if dv_qs[0].isShare:
  509. dv_qs.delete()
  510. else:
  511. # 主用户删除设备
  512. dv_qs.delete()
  513. # 分享获得用户假删除
  514. ud_dv_qs = Device_Info.objects.filter(UID=uid, isShare=True, primaryUserID=userID)
  515. if ud_dv_qs.exists():
  516. ud_dv_qs.update(isExist=0)
  517. except Exception as e:
  518. errorInfo = traceback.format_exc()
  519. print('删除数据库记录错误: %s' % errorInfo)
  520. return response.json(176, repr(e))
  521. else:
  522. return response.json(0)
  523. # 新查询设备字段
  524. def queryInterface(request):
  525. request.encoding = 'utf-8'
  526. response = ResponseObject()
  527. if request.method == 'POST':
  528. request_dict = request.POST
  529. elif request.method == 'GET':
  530. request_dict = request.GET
  531. else:
  532. return response.json(444)
  533. token = request_dict.get('token', None)
  534. page = request_dict.get('page', None)
  535. line = request_dict.get('line', None)
  536. NickName = request_dict.get('NickName', None)
  537. page = int(page)
  538. line = int(line)
  539. tko = TokenObject(token)
  540. response.lang = tko.lang
  541. if tko.code == 0:
  542. userID = tko.userID
  543. dvqs = Device_Info.objects.filter(userID_id=userID)
  544. if NickName:
  545. dvqs.filter(NickName__icontains=NickName)
  546. count = dvqs.count()
  547. dvql = dvqs[(page - 1) * line:page * line].values('id', 'userID', 'NickName', 'UID', 'View_Account',
  548. 'View_Password', 'ChannelIndex', 'Type', 'isShare',
  549. 'primaryUserID', 'primaryMaster', 'data_joined', 'version',
  550. 'isVod', 'isExist')
  551. dvls = CommonService.qs_to_list(dvql)
  552. uid_list = []
  553. for dvl in dvls:
  554. if dvl['isShare'] is False:
  555. uid_list.append(dvl['UID'])
  556. ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
  557. values('bucket__content', 'status', 'channel', 'endTime', 'uid')
  558. upqs = UID_Preview.objects.filter(uid__in=uid_list).values('id', 'uid', 'channel')
  559. auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
  560. uidPreview_bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
  561. nowTime = int(time.time())
  562. data = []
  563. for p in dvls:
  564. p['vod'] = []
  565. for dm in ubqs:
  566. if p['UID'] == dm['uid']:
  567. if dm['endTime'] > nowTime:
  568. p['vod'].append(dm)
  569. p['preview'] = []
  570. for up in upqs:
  571. if p['UID'] == up['uid']:
  572. obj = 'uid_preview/{uid}/{channel}.png'.format(uid=up['uid'], channel=up['channel'])
  573. img_sign = uidPreview_bucket.sign_url('GET', obj, 300)
  574. p['preview'].append(img_sign)
  575. data.append(p)
  576. return response.json(0, data)
  577. else:
  578. return response.json(tko.code)
  579. def uid_status(request):
  580. request.encoding = 'utf-8'
  581. response = ResponseObject()
  582. if request.method == 'POST':
  583. request_dict = request.POST
  584. elif request.method == 'GET':
  585. request_dict = request.GET
  586. else:
  587. return response.json(444)
  588. token = request_dict.get('token', None)
  589. uid = request_dict.get('uid', None)
  590. tko = TokenObject(token)
  591. response.lang = tko.lang
  592. if tko.code != 0:
  593. return response.json(tko.code)
  594. qs = UID_App.objects.filter(uid=uid, userID_id=tko.userID).values('uid', 'status', 'interval')
  595. print(qs)
  596. if qs.exists():
  597. data = {
  598. 'push_status': qs[0]['status'],
  599. 'push_interval': qs[0]['interval'] # 推送间隔
  600. }
  601. ubqs = UID_Bucket.objects.filter(uid=uid). \
  602. values('bucket__content', 'status', 'channel', 'endTime', 'uid')
  603. nowTime = int(time.time())
  604. if ubqs[0]['endTime'] > nowTime:
  605. data['vod'] = list(ubqs)
  606. return response.json(0, data)
  607. else:
  608. return response.json(0)