|
@@ -0,0 +1,173 @@
|
|
|
+# -*- 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))
|