| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 | 
							- # -*- encoding: utf-8 -*-
 
- """
 
- @File    : UserDeviceShareController.py
 
- @Time    : 2023/2/3 13:25
 
- @Author  : guanhailong
 
- @Email   : guanhailong@asj6.wecom.work
 
- @Software: PyCharm
 
- """
 
- import datetime
 
- import random
 
- import time
 
- from Controller.CheckUserData import RandomStr
 
- from Model.models import Device_User, Device_Info, DeviceSuperPassword
 
- from Object.RedisObject import RedisObject
 
- from Object.ResponseObject import ResponseObject
 
- from Object.TokenObject import TokenObject
 
- from django.views import View
 
- from Service.CommonService import CommonService
 
- class AppAccoutView(View):
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         operation = kwargs.get('operation')
 
-         request_dict = request.GET
 
-         return self.validation(request_dict, request, operation)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         operation = kwargs.get('operation')
 
-         request_dict = request.GET
 
-         return self.validation(request_dict, request, operation)
 
-     def validation(self, request_dict, request, operation):
 
-         token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
 
-         lang = request_dict.get('lang', token.lang)
 
-         response = ResponseObject(lang)
 
-         userID = token.userID
 
-         if token.code != 0:
 
-             return response.json(token.code)
 
-         if operation == 'getAuthorizationCode':  # 获取用户请求/生成授权码
 
-             return self.getAuthorizationCode(request_dict, response, userID)
 
-         if operation == 'verifyTheVerificationCode':  # 效验验证码
 
-             return self.verifyTheVerificationCode(request_dict, response)
 
-         if operation == 'customerServiceManagement':  # 客服管理
 
-             return self.customerServiceManagement(request_dict, response)
 
-         if operation == 'getDeviceSuperPassword':  # 查询超级密码请求表
 
-             return self.getDeviceSuperPassword(request_dict, response)
 
-         else:
 
-             return response.json(404)
 
-     def getAuthorizationCode(self, request_dict, response, userID):
 
-         """
 
-         @param uid:设备id
 
-         @param request_dict:请求参数
 
-         @param response:响应对象
 
-         @param describe:需求描述
 
-         @param Purchase_channel:购买渠道描述
 
-         @param orderID:订单id
 
-         @param buyTime:购买时间
 
-         @return:
 
-         """
 
-         uid = request_dict.get('uid', None)
 
-         describe = request_dict.get('describe', None)
 
-         if not all([uid, describe]):
 
-             return response.json(444)
 
-         purchase_channel = request_dict.get('purchase_channel', None)
 
-         orderID = request_dict.get('orderID', None)
 
-         buyTime = request_dict.get('buyTime', None)
 
-         try:
 
-             now = int(time.time())
 
-             addTime = now
 
-             device_info_qs = Device_Info.objects.filter(UID=uid, userID_id=userID)
 
-             if not device_info_qs.exists():
 
-                 return response.json(173)
 
-             if buyTime:
 
-                 buyTime = datetime.datetime.strptime(buyTime, '%Y-%m-%d')
 
-                 buyTime = CommonService.str_to_timestamp(str_time=str(buyTime))
 
-             DeviceSuperPassword.objects.create(uid=uid, orderID=orderID, describe=describe,
 
-                                                purchase_channel=purchase_channel, addTime=addTime, userID=userID,
 
-                                                buyTime=buyTime, status=0)
 
-             # 验证码生成
 
-             super_code = RandomStr(6, True)
 
-             super_password_id = "super_password_%s" % super_code
 
-             redisObj = RedisObject(db=6)
 
-             redisObj.set_data(key=super_password_id, val=super_code, expire=86400)
 
-             authcode = CommonService.encode_data(super_code)
 
-             return response.json(0, {'authcode': authcode})
 
-         except Exception as e:
 
-             print('获取验证码异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
-             return response.json(500, repr(e))
 
-     def verifyTheVerificationCode(self, request_dict, response):
 
-         verificationCode = request_dict.get('verificationCode', None)
 
-         authcode = request_dict.get('authcode', None)
 
-         if verificationCode and authcode:
 
-             authcode = CommonService.decode_data(authcode)
 
-             super_password_id = 'super_password_' + verificationCode
 
-             redisObj = RedisObject(db=6)
 
-             # redis里面的验证码
 
-             redis_image_code = redisObj.get_data(key=super_password_id)
 
-             # 验证用户输入的验证码和redis中的验证码
 
-             if redis_image_code is False or authcode.lower() != redis_image_code.lower():
 
-                 return response.json(121)
 
-             else:
 
-                 return response.json(0)
 
-         else:
 
-             return response.json(444)
 
-     def customerServiceManagement(self, request_dict, response):
 
-         userID = request_dict.get('userID')
 
-         uid = request_dict.get('uid', None)
 
-         status = request_dict.get('status', None)
 
-         hint = request_dict.get('hint', None)
 
-         if not all({uid, userID}):
 
-             return response.json(444)
 
-         try:
 
-             device_super_password_qs = DeviceSuperPassword.objects.filter(uid=uid, userID=userID)
 
-             if not device_super_password_qs.exists():
 
-                 return response.json(173)
 
-             status = int(status)
 
-             if status == 1:
 
-                 device_super_password_qs.update(status=status)
 
-                 return response.json(0)
 
-             else:
 
-                 device_super_password_qs.update(status=status, hint=hint)
 
-                 return response.json(0)
 
-         except Exception as e:
 
-             print('修改状态异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
-             return response.json(500, repr(e))
 
-     def getDeviceSuperPassword(self, request_dict, response):
 
-         pageNo = request_dict.get('pageNo', None)
 
-         pageSize = request_dict.get('pageSize', None)
 
-         status = request_dict.get('status', None)
 
-         userID = request_dict.get('userID', None)
 
-         uid = request_dict.get('uid', None)
 
-         if not all([pageNo, pageSize]):
 
-             return response.json(444)
 
-         page = int(pageNo)
 
-         line = int(pageSize)
 
-         try:
 
-             device_super_password_qs = DeviceSuperPassword.objects.all()
 
-             if status:
 
-                 device_super_password_qs = device_super_password_qs.filter(status=status)
 
-             if userID:
 
-                 device_super_password_qs = device_super_password_qs.filter(userID=userID)
 
-             if uid:
 
-                 device_super_password_qs = device_super_password_qs.filter(uid=uid)
 
-             if not device_super_password_qs.exists():
 
-                 return response.json(0, [])
 
-             count = device_super_password_qs.count()
 
-             device_super_password_qs = device_super_password_qs.values('id',
 
-                                                                        'uid',
 
-                                                                        'userID',
 
-                                                                        'orderID',
 
-                                                                        'describe',
 
-                                                                        'purchase_channel',
 
-                                                                        'addTime',
 
-                                                                        'status',
 
-                                                                        'buyTime',
 
-                                                                        'hint')
 
-             device_super_password_qs = device_super_password_qs.order_by('-addTime')[
 
-                                        (page - 1) * line:page * line]
 
-             return response.json(0, {'list': list(device_super_password_qs), 'count': count})
 
-         except Exception as e:
 
-             print('查询异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
-             return response.json(500, repr(e))
 
 
  |