UidUser.py 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD018
  6. @NAME: AnsjerFormal
  7. @software: PyCharm
  8. @DATE: 2019/11/15 16:45
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: UserUid.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. # 添加设备字段
  15. import oss2
  16. import re
  17. import time
  18. import simplejson as json
  19. from django.utils.decorators import method_decorator
  20. from django.views.decorators.csrf import csrf_exempt
  21. from django.views.generic.base import View
  22. from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY
  23. from Model.models import UID_Bucket, UID_Preview, UidSetModel, CountryModel
  24. from Model.models import UidUserModel
  25. from Object.ResponseObject import ResponseObject
  26. from Object.TokenObject import TokenObject
  27. from Service.CommonService import CommonService
  28. from Service.ModelService import ModelService
  29. from Object.RedisObject import RedisObject
  30. import base64
  31. from Controller.CheckUserData import RandomStr
  32. '''
  33. http://192.168.136.40:8077/uiduser/add?token=local&UID=z123asdfqwerzxcvqw12&NickName=xxoxox&View_Account=user&View_Password=password&ChannelIndex=8&is_ap=1&Type=5&NickName=1234zcxv
  34. http://192.168.136.40:8077/uiduser/query?token=local&page=1&line=10&is_ap=1&NickName=1234zcxv&uid=zxcvasdfqwerzxcvqwer
  35. http://192.168.136.40:8077/uiduser/delete?token=local&id=138001380001573884997393980&is_ap=1
  36. '''
  37. # 添加设备字段
  38. def addInterface(request):
  39. request.encoding = 'utf-8'
  40. response = ResponseObject()
  41. if request.method == 'POST':
  42. request_dict = request.POST
  43. elif request.method == 'GET':
  44. request_dict = request.GET
  45. else:
  46. return response.json(444)
  47. token = request_dict.get('token', None)
  48. UID = request_dict.get('UID', None)
  49. NickName = request_dict.get('NickName', None)
  50. View_Account = request_dict.get('View_Account', None)
  51. View_Password = request_dict.get('View_Password', '')
  52. Type = request_dict.get('Type', None)
  53. ChannelIndex = request_dict.get('ChannelIndex', None)
  54. is_ap = request_dict.get('is_ap', None)
  55. if all([UID, NickName, View_Account, Type, ChannelIndex]):
  56. tko = TokenObject(token)
  57. response.lang = tko.lang
  58. if tko.code == 0:
  59. userID = tko.userID
  60. re_uid = re.compile(r'^[A-Za-z0-9]{20}$')
  61. sy_uid = re.compile(r'^[A-Za-z0-9]{14}$')
  62. sy_uid23 = re.compile(r'^[A-Za-z0-9]{23}$')
  63. if re_uid.match(UID) or sy_uid.match(UID) or sy_uid23.match(UID):
  64. is_ap = int(is_ap)
  65. is_exist = UidUserModel.objects.filter(UID=UID, userID_id=userID, is_ap=is_ap)
  66. if is_exist:
  67. return response.json(174)
  68. else:
  69. try:
  70. pk = CommonService.getUserID(getUser=False)
  71. create_data = {
  72. 'id': pk, 'userID_id': userID, 'UID': UID,
  73. 'NickName': NickName, 'View_Account': View_Account,
  74. 'View_Password': View_Password, 'Type': Type, 'ChannelIndex': ChannelIndex
  75. }
  76. UidUserModel.objects.create(**create_data)
  77. # 判断影子信息
  78. nowTime = int(time.time())
  79. us_qs = UidSetModel.objects.filter(uid=UID)
  80. if not us_qs.exists():
  81. uid_set_create_dict = {
  82. 'uid': UID,
  83. 'addTime': nowTime,
  84. 'updTime': nowTime,
  85. 'ip': CommonService.get_ip_address(request),
  86. 'channel': ChannelIndex,
  87. 'nickname': NickName,
  88. 'device_type': Type
  89. }
  90. UidSetModel.objects.create(**uid_set_create_dict)
  91. except Exception as e:
  92. return response.json(10, repr(e))
  93. else:
  94. uid_user_qs = UidUserModel.objects.filter(id=pk). \
  95. values('id', 'userID', 'NickName', 'UID', 'View_Account', 'View_Password',
  96. 'ChannelIndex', 'Type', 'isShare', 'primaryUserID', 'primaryMaster',
  97. 'data_joined', 'version', 'isVod', 'isExist','is_ap')
  98. uid_user_ql = CommonService.qs_to_list(uid_user_qs)
  99. ubqs = UID_Bucket.objects.filter(uid=UID). \
  100. values('bucket__content', 'status', 'channel', 'endTime', 'uid')
  101. res = uid_user_ql[0]
  102. res['vod'] = list(ubqs)
  103. return response.json(0, res)
  104. else:
  105. return response.json(444, {'param': 'UID'})
  106. else:
  107. return response.json(tko.code)
  108. else:
  109. return response.json(444, {'param': 'UID,NickName,View_Account,View_Password,Type,ChannelIndex'})
  110. # 新查询设备字段
  111. def queryInterface(request):
  112. request.encoding = 'utf-8'
  113. response = ResponseObject()
  114. if request.method == 'POST':
  115. request_dict = request.POST
  116. elif request.method == 'GET':
  117. request_dict = request.GET
  118. else:
  119. return response.json(444)
  120. token = request_dict.get('token', None)
  121. page = request_dict.get('page', None)
  122. line = request_dict.get('line', None)
  123. NickName = request_dict.get('NickName', None)
  124. uid = request_dict.get('uid', None)
  125. is_ap = request_dict.get('is_ap', None)
  126. page = int(page)
  127. line = int(line)
  128. tko = TokenObject(token)
  129. response.lang = tko.lang
  130. if page <= 0:
  131. return response.json(0)
  132. if tko.code == 0:
  133. userID = tko.userID
  134. # redisObj = RedisObject(db=8)
  135. # redisObj.del_data(key='uid_qs_' + userID)
  136. uid_user_qs = UidUserModel.objects.filter(userID_id=userID)
  137. if is_ap:
  138. is_ap = int(is_ap)
  139. uid_user_qs = uid_user_qs.filter(is_ap=is_ap)
  140. if NickName:
  141. uid_user_qs = uid_user_qs.filter(NickName__icontains=NickName)
  142. if uid:
  143. uid_user_qs = uid_user_qs.filter(UID=uid)
  144. uid_user_ql = uid_user_qs[(page - 1) * line:page * line]. \
  145. values('id', 'userID', 'NickName', 'UID', 'View_Account',
  146. 'View_Password', 'ChannelIndex', 'Type', 'isShare',
  147. 'primaryUserID', 'primaryMaster', 'data_joined', 'version',
  148. 'isVod', 'isExist', 'NotificationMode','is_ap')
  149. uid_user_ls = CommonService.qs_to_list(uid_user_ql)
  150. uid_list = []
  151. for uid_user in uid_user_ls:
  152. uid_list.append(uid_user['UID'])
  153. ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
  154. values('bucket__content', 'status', 'channel', 'endTime', 'uid')
  155. upqs = UID_Preview.objects.filter(uid__in=uid_list).order_by('channel').values('id', 'uid', 'channel')
  156. auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
  157. bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
  158. nowTime = int(time.time())
  159. data = []
  160. # 设备拓展信息表
  161. us_qs = UidSetModel.objects.filter(uid__in=uid_list).values('uid', 'version', 'nickname')
  162. uv_dict = {}
  163. for us in us_qs:
  164. uv_dict[us['uid']] = {'version': us['version'], 'nickname': us['nickname']}
  165. for p in uid_user_ls:
  166. p['vod'] = []
  167. for dm in ubqs:
  168. if p['UID'] == dm['uid']:
  169. if dm['endTime'] > nowTime:
  170. p['vod'].append(dm)
  171. p['preview'] = []
  172. for up in upqs:
  173. if p['UID'] == up['uid']:
  174. obj = 'uid_preview/{uid}/channel_{channel}.png'.format(uid=up['uid'], channel=up['channel'])
  175. img_sign = bucket.sign_url('GET', obj, 300)
  176. p['preview'].append(img_sign)
  177. p_uid = p['UID']
  178. if p_uid in uv_dict:
  179. # 设备版本号
  180. p['uid_version'] = uv_dict[p_uid]['version']
  181. # 设备昵称
  182. if uv_dict[p_uid]['nickname']:
  183. p['NickName'] = uv_dict[p_uid]['nickname']
  184. else:
  185. # 设备版本号
  186. p['uid_version'] = ''
  187. data.append(p)
  188. return response.json(0, data)
  189. else:
  190. return response.json(tko.code)
  191. # http://192.168.136.40:8077/uiduser/update?token=local&id=138001380001573885065588328&View_Account=12&View_Password=555&NickName=555
  192. # 添加设备字段
  193. def updateInterface(request):
  194. request.encoding = 'utf-8'
  195. response = ResponseObject()
  196. if request.method == 'POST':
  197. request_dict = request.POST
  198. elif request.method == 'GET':
  199. request_dict = request.GET
  200. else:
  201. return response.json(444)
  202. token = request_dict.get('token', None)
  203. NickName = request_dict.get('NickName', None)
  204. View_Account = request_dict.get('View_Account', None)
  205. View_Password = request_dict.get('View_Password', None)
  206. Type = request_dict.get('Type', None)
  207. tko = TokenObject(token)
  208. response.lang = tko.lang
  209. if tko.code == 0:
  210. userID = tko.userID
  211. uid_user_qs = UidUserModel.objects.filter(userID_id=userID,)
  212. if uid_user_qs.exists():
  213. update_dict = {}
  214. if NickName:
  215. update_dict['NickName'] = NickName
  216. if View_Account is not None:
  217. update_dict['View_Account'] = View_Account
  218. if View_Password is not None:
  219. update_dict['View_Password'] = View_Password
  220. if Type is not None:
  221. update_dict['Type'] = Type
  222. is_update = uid_user_qs.update(**update_dict)
  223. if is_update:
  224. return response.json(0)
  225. else:
  226. return response.json(177)
  227. else:
  228. return response.json(174)
  229. else:
  230. return response.json(tko.code)
  231. # 新删除设备
  232. def deleteInterface(request):
  233. '''
  234. 删除用户设备
  235. :param request:
  236. :return:
  237. '''
  238. response = ResponseObject()
  239. request.encoding = 'utf-8'
  240. if request.method == 'POST':
  241. request_dict = request.POST
  242. elif request.method == 'GET':
  243. request_dict = request.GET
  244. else:
  245. return response.json(444)
  246. token = request_dict.get('token', None)
  247. id = request_dict.get('id', None)
  248. is_ap = request_dict.get('is_ap', None)
  249. if all([token, id, is_ap]):
  250. tko = TokenObject(token)
  251. response.lang = tko.lang
  252. if tko.code == 0:
  253. userID = tko.userID
  254. # redisObj = RedisObject(db=8)
  255. # redisObj.del_data(key='uid_qs_' + userID)
  256. uid_user_qs = UidUserModel.objects.filter(userID_id=userID, id=id)
  257. if uid_user_qs.exists():
  258. uid_user_qs.delete()
  259. return response.json(0)
  260. else:
  261. return response.json(173)
  262. else:
  263. return response.json(tko.code)
  264. else:
  265. return response.json(444, {'param': 'token,id,is_ap'})
  266. # 设备信息添加
  267. class UidUserView(View):
  268. @method_decorator(csrf_exempt)
  269. def dispatch(self, *args, **kwargs):
  270. return super(UidUserView, self).dispatch(*args, **kwargs)
  271. def get(self, request, *args, **kwargs):
  272. request.encoding = 'utf-8'
  273. operation = kwargs.get('operation')
  274. return self.validation(request.GET, request, operation)
  275. def post(self, request, *args, **kwargs):
  276. request.encoding = 'utf-8'
  277. operation = kwargs.get('operation')
  278. return self.validation(request.POST, request, operation)
  279. def validation(self, request_dict, request, operation):
  280. response = ResponseObject()
  281. if operation is None:
  282. return response.json(444, 'error path')
  283. token = request_dict.get('token', None)
  284. # 设备主键uid
  285. tko = TokenObject(token)
  286. response.lang = tko.lang
  287. if tko.code != 0:
  288. return response.json(tko.code)
  289. userID = tko.userID
  290. if operation == 'adminDelete':
  291. return self.do_admin_delete(request_dict, userID, response)
  292. elif operation == 'adminQuery':
  293. return self.do_admin_query(request_dict, userID, response)
  294. else:
  295. return response.json(444, 'error path')
  296. # 管理员删除
  297. def do_admin_delete(self, request_dict, userID, response):
  298. own_perm = ModelService.check_perm(userID, 20)
  299. if own_perm is True:
  300. id = request_dict.getlist('id', None)
  301. uid_user_qs = UidUserModel.objects.filter(id__in=id)
  302. if uid_user_qs.exists():
  303. uid_user_qs.delete()
  304. return response.json(0)
  305. else:
  306. return response.json(173)
  307. else:
  308. return response.json(404)
  309. # 管理员查询接口
  310. def do_admin_query(self, request_dict, userID, response):
  311. own_perm = ModelService.check_perm(userID, 20)
  312. if own_perm is True:
  313. page = request_dict.get('page', None)
  314. line = request_dict.get('line', None)
  315. page = int(page)
  316. line = int(line)
  317. deviceContent = request_dict.get('content', None)
  318. if deviceContent:
  319. try:
  320. searchCondition = json.loads(deviceContent)
  321. except Exception as e:
  322. return response.json(10, repr(e))
  323. else:
  324. kwargs = CommonService.get_kwargs(data=searchCondition)
  325. uid_user_qs = UidUserModel.objects.filter(**kwargs).order_by('-id')
  326. if not uid_user_qs.exists():
  327. return response.json(0, [])
  328. count = uid_user_qs.count()
  329. uid_user_ql = uid_user_qs[(page - 1) * line:page * line]. \
  330. values('id', 'userID', 'userID__username', 'userID__userEmail', 'userID__NickName' 'NickName',
  331. 'UID', 'View_Account',
  332. 'View_Password', 'ChannelIndex', 'Type', 'isShare',
  333. 'primaryUserID', 'primaryMaster', 'data_joined', 'version',
  334. 'isVod', 'isExist', 'NotificationMode', 'is_ap')
  335. uid_user_ls = CommonService.qs_to_list(uid_user_ql)
  336. return response.json(0, {'datas': uid_user_ls, 'count': count})
  337. else:
  338. uid_user_qs = UidUserModel.objects.all().order_by('-id')
  339. if not uid_user_qs.exists():
  340. return response.json(0, [])
  341. count = uid_user_qs.count()
  342. uid_user_ql = uid_user_qs[(page - 1) * line:page * line]. \
  343. values('id', 'userID', 'userID__username', 'userID__userEmail', 'userID__NickName', 'NickName',
  344. 'UID', 'View_Account',
  345. 'View_Password', 'ChannelIndex', 'Type', 'isShare',
  346. 'primaryUserID', 'primaryMaster', 'data_joined', 'version',
  347. 'isVod', 'isExist', 'NotificationMode', 'is_ap')
  348. uid_user_ls = CommonService.qs_to_list(uid_user_ql)
  349. return response.json(0, {'datas' : uid_user_ls, 'count': count})
  350. else:
  351. return response.json(404)
  352. # v3添加设备字段
  353. def v3addInterface(request):
  354. request.encoding = 'utf-8'
  355. response = ResponseObject()
  356. if request.method == 'POST':
  357. request_dict = request.POST
  358. elif request.method == 'GET':
  359. request_dict = request.GET
  360. else:
  361. return response.json(444)
  362. token = request_dict.get('token', None)
  363. UID = request_dict.get('UID', None)
  364. NickName = request_dict.get('NickName', None)
  365. View_Account = request_dict.get('View_Account', None)
  366. View_Password = request_dict.get('View_Password', '')
  367. Type = request_dict.get('Type', None)
  368. ChannelIndex = request_dict.get('ChannelIndex', None)
  369. is_ap = request_dict.get('is_ap', None)
  370. try:
  371. for i in range(1, 4):
  372. if i == 1:
  373. View_Password = base64.b64decode(View_Password)
  374. View_Password = View_Password.decode('utf-8')
  375. View_Password = View_Password[1:-1]
  376. if i == 2:
  377. View_Password = base64.b64decode(View_Password)
  378. View_Password = View_Password.decode('utf-8')
  379. View_Password = View_Password[2:-2]
  380. if i == 3:
  381. View_Password = base64.b64decode(View_Password)
  382. View_Password = View_Password.decode('utf-8')
  383. View_Password = View_Password[3:-3]
  384. print(View_Password)
  385. except Exception as e:
  386. return response.json(111)
  387. if not View_Password:
  388. return response.json(424)
  389. if all([UID, NickName, View_Account, Type, ChannelIndex]):
  390. tko = TokenObject(token)
  391. response.lang = tko.lang
  392. if tko.code == 0:
  393. userID = tko.userID
  394. re_uid = re.compile(r'^[A-Za-z0-9]{20}$')
  395. if re_uid.match(UID):
  396. is_ap = int(is_ap)
  397. is_exist = UidUserModel.objects.filter(UID=UID, userID_id=userID, is_ap=is_ap)
  398. if is_exist:
  399. return response.json(174)
  400. else:
  401. try:
  402. pk = CommonService.getUserID(getUser=False)
  403. create_data = {
  404. 'id': pk, 'userID_id': userID, 'UID': UID,
  405. 'NickName': NickName, 'View_Account': View_Account,
  406. 'View_Password': View_Password, 'Type': Type, 'ChannelIndex': ChannelIndex
  407. }
  408. UidUserModel.objects.create(**create_data)
  409. # 判断影子信息
  410. nowTime = int(time.time())
  411. us_qs = UidSetModel.objects.filter(uid=UID)
  412. ip = CommonService.get_ip_address(request)
  413. ipInfo = CommonService.getIpIpInfo(ip, 'CN')
  414. country_qs = CountryModel.objects.filter(country_code=ipInfo['country_code']).values('id')
  415. country = country_qs.exists() if country_qs[0]['id'] else 0
  416. if not us_qs.exists():
  417. uid_set_create_dict = {
  418. 'uid': UID,
  419. 'addTime': nowTime,
  420. 'updTime': nowTime,
  421. 'ip': CommonService.get_ip_address(request),
  422. 'channel': ChannelIndex,
  423. 'nickname': NickName,
  424. 'device_type': Type,
  425. 'tb_country': country
  426. }
  427. UidSetModel.objects.create(**uid_set_create_dict)
  428. except Exception as e:
  429. return response.json(10, repr(e))
  430. else:
  431. uid_user_qs = UidUserModel.objects.filter(id=pk). \
  432. values('id', 'userID', 'NickName', 'UID', 'View_Account', 'View_Password',
  433. 'ChannelIndex', 'Type', 'isShare', 'primaryUserID', 'primaryMaster',
  434. 'data_joined', 'version', 'isVod', 'isExist','is_ap')
  435. uid_user_ql = CommonService.qs_to_list(uid_user_qs)
  436. ubqs = UID_Bucket.objects.filter(uid=UID). \
  437. values('bucket__content', 'status', 'channel', 'endTime', 'uid')
  438. res = uid_user_ql[0]
  439. res['vod'] = list(ubqs)
  440. return response.json(0, res)
  441. else:
  442. return response.json(444, {'param': 'UID'})
  443. else:
  444. return response.json(tko.code)
  445. else:
  446. return response.json(444, {'param': 'UID,NickName,View_Account,View_Password,Type,ChannelIndex'})
  447. # v3新查询设备字段
  448. def v3queryInterface(request):
  449. request.encoding = 'utf-8'
  450. response = ResponseObject()
  451. if request.method == 'POST':
  452. request_dict = request.POST
  453. elif request.method == 'GET':
  454. request_dict = request.GET
  455. else:
  456. return response.json(444)
  457. token = request_dict.get('token', None)
  458. page = request_dict.get('page', None)
  459. line = request_dict.get('line', None)
  460. NickName = request_dict.get('NickName', None)
  461. uid = request_dict.get('uid', None)
  462. is_ap = request_dict.get('is_ap', None)
  463. page = int(page)
  464. line = int(line)
  465. tko = TokenObject(token)
  466. response.lang = tko.lang
  467. if page <= 0:
  468. return response.json(0)
  469. if tko.code == 0:
  470. userID = tko.userID
  471. # redisObj = RedisObject(db=8)
  472. # redisObj.del_data(key='uid_qs_' + userID)
  473. uid_user_qs = UidUserModel.objects.filter(userID_id=userID)
  474. if is_ap:
  475. is_ap = int(is_ap)
  476. uid_user_qs = uid_user_qs.filter(is_ap=is_ap)
  477. if NickName:
  478. uid_user_qs = uid_user_qs.filter(NickName__icontains=NickName)
  479. if uid:
  480. uid_user_qs = uid_user_qs.filter(UID=uid)
  481. uid_user_ql = uid_user_qs[(page - 1) * line:page * line]. \
  482. values('id', 'userID', 'NickName', 'UID', 'View_Account',
  483. 'View_Password', 'ChannelIndex', 'Type', 'isShare',
  484. 'primaryUserID', 'primaryMaster', 'data_joined', 'version',
  485. 'isVod', 'isExist', 'NotificationMode','is_ap')
  486. uid_user_ls = CommonService.qs_to_list(uid_user_ql)
  487. uid_list = []
  488. for uid_user in uid_user_ls:
  489. uid_list.append(uid_user['UID'])
  490. ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
  491. values('bucket__content', 'status', 'channel', 'endTime', 'uid')
  492. upqs = UID_Preview.objects.filter(uid__in=uid_list).order_by('channel').values('id', 'uid', 'channel')
  493. auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
  494. bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
  495. nowTime = int(time.time())
  496. data = []
  497. # 设备拓展信息表
  498. us_qs = UidSetModel.objects.filter(uid__in=uid_list).values('uid', 'version', 'nickname')
  499. uv_dict = {}
  500. for us in us_qs:
  501. uv_dict[us['uid']] = {'version': us['version'], 'nickname': us['nickname']}
  502. for p in uid_user_ls:
  503. p['vod'] = []
  504. for dm in ubqs:
  505. if p['UID'] == dm['uid']:
  506. if dm['endTime'] > nowTime:
  507. p['vod'].append(dm)
  508. p['preview'] = []
  509. p['View_Password'] = encrypt_pwd(p['View_Password'])
  510. for up in upqs:
  511. if p['UID'] == up['uid']:
  512. obj = 'uid_preview/{uid}/channel_{channel}.png'.format(uid=up['uid'], channel=up['channel'])
  513. img_sign = bucket.sign_url('GET', obj, 300)
  514. p['preview'].append(img_sign)
  515. p_uid = p['UID']
  516. if p_uid in uv_dict:
  517. # 设备版本号
  518. p['uid_version'] = uv_dict[p_uid]['version']
  519. # 设备昵称
  520. if uv_dict[p_uid]['nickname']:
  521. p['NickName'] = uv_dict[p_uid]['nickname']
  522. else:
  523. # 设备版本号
  524. p['uid_version'] = ''
  525. data.append(p)
  526. return response.json(0, data)
  527. else:
  528. return response.json(tko.code)
  529. # #加密
  530. def encrypt_pwd(userPwd):
  531. for i in range(1, 4):
  532. if i == 1:
  533. userPwd = RandomStr(3, False)+userPwd+RandomStr(3, False)
  534. userPwd = base64.b64encode(str(userPwd).encode("utf-8")).decode('utf8')
  535. if i == 2:
  536. userPwd = RandomStr(2, False)+str(userPwd)+RandomStr(2, False)
  537. userPwd = base64.b64encode(str(userPwd).encode("utf-8")).decode('utf8')
  538. if i == 3:
  539. userPwd = RandomStr(1, False)+str(userPwd)+RandomStr(1, False)
  540. userPwd = base64.b64encode(str(userPwd).encode("utf-8")).decode('utf8')
  541. return userPwd