Browse Source

forgetCode

chenjunkai 6 years ago
parent
commit
fb33a68d66
4 changed files with 157 additions and 94 deletions
  1. 6 0
      Ansjer/test/coposs_sts.py
  2. 2 0
      Ansjer/urls.py
  3. 84 86
      Controller/UserBrandController.py
  4. 65 8
      Controller/UserController.py

+ 6 - 0
Ansjer/test/coposs_sts.py

@@ -69,3 +69,9 @@ bucket = oss2.Bucket(auth, endpoint, bucket_name)
 res = bucket.put_object('object-name.txt', b'hello world')
 res = bucket.put_object('object-name.txt', b'hello world')
 print(res)
 print(res)
 
 
+
+'''
+# master 172.17.0.4
+
+slave 172.17.0.8
+'''

+ 2 - 0
Ansjer/urls.py

@@ -111,6 +111,8 @@ urlpatterns = [
     url(r'^v2/account/register$', UserController.v2registerView.as_view()),
     url(r'^v2/account/register$', UserController.v2registerView.as_view()),
     url(r'^v2/account/forgetCode$', UserController.v2forgetPwdCodeView.as_view()),
     url(r'^v2/account/forgetCode$', UserController.v2forgetPwdCodeView.as_view()),
     url(r'^v2/account/resetPwdByCode$', UserController.v2resetPwdByCodeView.as_view()),
     url(r'^v2/account/resetPwdByCode$', UserController.v2resetPwdByCodeView.as_view()),
+    # 重置密码验证码校验
+    url(r'^v2/authcode/verify$', UserController.verifyAuthcode.as_view()),
 
 
     url(r'^detect/add$', EquipmentInfo.AddDetectionView.as_view()),
     url(r'^detect/add$', EquipmentInfo.AddDetectionView.as_view()),
     url(r'^detect/status$', EquipmentInfo.DetectStatusView.as_view()),
     url(r'^detect/status$', EquipmentInfo.DetectStatusView.as_view()),

+ 84 - 86
Controller/UserBrandController.py

@@ -16,13 +16,14 @@ from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
-from Model.models import User_Brand,Device_User
+from Model.models import User_Brand, Device_User
 from django.utils import timezone
 from django.utils import timezone
-import traceback,time,json,urllib.request
+import traceback, time, json, urllib.request
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from collections import Counter
 from collections import Counter
+
 '''
 '''
 http://192.168.136.39:8000/userbrandinfo/queryByAdmin?token=test&page=1&line=10  全部记录
 http://192.168.136.39:8000/userbrandinfo/queryByAdmin?token=test&page=1&line=10  全部记录
 http://192.168.136.39:8000/userbrandinfo/queryArea?token=test   市的区域统计
 http://192.168.136.39:8000/userbrandinfo/queryArea?token=test   市的区域统计
@@ -34,6 +35,7 @@ http://192.168.136.39:8000/userbrandinfo/queryAll?token=eyJ0eXAiOiJKV1QiLCJhbGci
 
 
 
 
 class UserBrandInfo(View):
 class UserBrandInfo(View):
+
     @method_decorator(csrf_exempt)
     @method_decorator(csrf_exempt)
     def dispatch(self, *args, **kwargs):
     def dispatch(self, *args, **kwargs):
         return super(UserBrandInfo, self).dispatch(*args, **kwargs)
         return super(UserBrandInfo, self).dispatch(*args, **kwargs)
@@ -49,10 +51,8 @@ class UserBrandInfo(View):
         return self.validation(request.POST, request, operation)
         return self.validation(request.POST, request, operation)
 
 
     def validation(self, request_dict, request, operation):
     def validation(self, request_dict, request, operation):
-        if operation is None:
-            return response.json(444, 'error path')
-        self.clientIP = CommonService.get_ip_address(request)
         response = ResponseObject()
         response = ResponseObject()
+        self.clientIP = CommonService.get_ip_address(request)
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         if token is not None:
         if token is not None:
             tko = TokenObject(token)
             tko = TokenObject(token)
@@ -61,18 +61,17 @@ class UserBrandInfo(View):
                 userID = tko.userID
                 userID = tko.userID
                 if userID is not None:
                 if userID is not None:
                     if operation == 'queryByAdmin':
                     if operation == 'queryByAdmin':
-                        return self.query_info(request_dict, userID,response)
+                        return self.query_info(request_dict, userID, response)
                     elif operation == 'add':
                     elif operation == 'add':
-                        return self.add_info(request_dict, userID,response)
+                        return self.add_info(request_dict, userID, response)
                     elif operation == 'queryAllByAdmin':
                     elif operation == 'queryAllByAdmin':
-                        return self.query_all_info(request_dict, userID,response)
+                        return self.query_all_info(request_dict, userID, response)
                     elif operation == 'deleteByAdmin':
                     elif operation == 'deleteByAdmin':
-                        return self.delete_by_admin(request_dict, userID,response)
+                        return self.delete_by_admin(request_dict, userID, response)
                     elif operation == 'queryDeviceSupplier':
                     elif operation == 'queryDeviceSupplier':
-                        return self.query_deviceSupplier_info(request_dict, userID,response)
+                        return self.query_deviceSupplier_info(request_dict, userID, response)
                     elif operation == 'queryArea':
                     elif operation == 'queryArea':
-                        return self.query_area_info(request_dict, userID,response)
-
+                        return self.query_area_info(request_dict, userID, response)
                     else:
                     else:
                         return response.json(444)
                         return response.json(444)
                 else:
                 else:
@@ -83,11 +82,8 @@ class UserBrandInfo(View):
             return response.json(309)
             return response.json(309)
             # 获取外网IP
             # 获取外网IP
 
 
-
-
-
     # http://192.168.136.39:8000/userbrandinfo?operation=add&token=test&deviceSupplier=小米&deviceModel=HM NOTE 1TD&osType=WEB&osVersion=4.0.0
     # http://192.168.136.39:8000/userbrandinfo?operation=add&token=test&deviceSupplier=小米&deviceModel=HM NOTE 1TD&osType=WEB&osVersion=4.0.0
-    def add_info(self, request_dict, userID,response):
+    def add_info(self, request_dict, userID, response):
         deviceSupplier = request_dict.get('deviceSupplier', None)
         deviceSupplier = request_dict.get('deviceSupplier', None)
         deviceModel = request_dict.get('deviceModel', None)
         deviceModel = request_dict.get('deviceModel', None)
         osType = request_dict.get('osType', None)
         osType = request_dict.get('osType', None)
@@ -101,22 +97,22 @@ class UserBrandInfo(View):
         latitude = request_dict.get('latitude', None)
         latitude = request_dict.get('latitude', None)
         appId = request_dict.get('appId', None)
         appId = request_dict.get('appId', None)
         if area is None:
         if area is None:
-            area=''
+            area = ''
         if street is None:
         if street is None:
-            street=''
+            street = ''
         if longitude is None:
         if longitude is None:
-            longitude=''
+            longitude = ''
         if latitude is None:
         if latitude is None:
-            latitude=''
-        param_area = CommonService.get_param_flag(data=[country,province,city])
-        must_fill_in = CommonService.get_param_flag(data=[appId,deviceSupplier,deviceModel,osType,osVersion])
+            latitude = ''
+        param_area = CommonService.get_param_flag(data=[country, province, city])
+        must_fill_in = CommonService.get_param_flag(data=[appId, deviceSupplier, deviceModel, osType, osVersion])
         if must_fill_in is False:
         if must_fill_in is False:
-            return response.json(444,'appId,deviceSupplier,deviceModel,osType,osVersion')
-        if  param_area is True:
+            return response.json(444, 'appId,deviceSupplier,deviceModel,osType,osVersion')
+        if param_area is True:
             if '省' in province:
             if '省' in province:
-                province = province.replace('省','')
+                province = province.replace('省', '')
             if '市' in city:
             if '市' in city:
-                city = city.replace('市','')
+                city = city.replace('市', '')
             status = 1
             status = 1
             country = country
             country = country
             province = province
             province = province
@@ -127,8 +123,8 @@ class UserBrandInfo(View):
             latitude = latitude
             latitude = latitude
         else:
         else:
             status = 0
             status = 0
-            print (self.clientIP)
-            jsonData = CommonService.getIpIpInfo(ip=self.clientIP,lang='CN')
+            print(self.clientIP)
+            jsonData = CommonService.getIpIpInfo(ip=self.clientIP, lang='CN')
             country = jsonData['country_name']
             country = jsonData['country_name']
             province = jsonData['region_name']
             province = jsonData['region_name']
             city = jsonData['city_name']
             city = jsonData['city_name']
@@ -136,7 +132,7 @@ class UserBrandInfo(View):
             street = ''
             street = ''
             longitude = jsonData['longitude']
             longitude = jsonData['longitude']
             latitude = jsonData['latitude']
             latitude = jsonData['latitude']
-        param_flag = CommonService.get_param_flag(data=[deviceSupplier, deviceModel,osType,osVersion])
+        param_flag = CommonService.get_param_flag(data=[deviceSupplier, deviceModel, osType, osVersion])
         if param_flag is True:
         if param_flag is True:
             try:
             try:
                 user_brand = User_Brand(
                 user_brand = User_Brand(
@@ -146,16 +142,16 @@ class UserBrandInfo(View):
                     osType=osType,
                     osType=osType,
                     osVersion=osVersion,
                     osVersion=osVersion,
                     ip=self.clientIP,
                     ip=self.clientIP,
-                    addTime = int(time.time()),
-                    status = status,
-                    country = country,
-                    province = province,
-                    city = city,
+                    addTime=int(time.time()),
+                    status=status,
+                    country=country,
+                    province=province,
+                    city=city,
                     appId=appId,
                     appId=appId,
-                    area = area,
-                    street = street,
-                    longitude = longitude,
-                    latitude = latitude
+                    area=area,
+                    street=street,
+                    longitude=longitude,
+                    latitude=latitude
                 )
                 )
                 user_brand.save()
                 user_brand.save()
             except Exception:
             except Exception:
@@ -164,25 +160,22 @@ class UserBrandInfo(View):
                 return response.json(424, {'details': errorInfo})
                 return response.json(424, {'details': errorInfo})
             else:
             else:
                 print(type(user_brand.addTime))
                 print(type(user_brand.addTime))
-                return response.json(0,{'id':user_brand.id})
+                return response.json(0, {'id': user_brand.id})
         else:
         else:
             # 参数错误
             # 参数错误
-             return response.json(444)
-
-
-
+            return response.json(444)
 
 
-    def query_info(self, request_dict, userID,response):
+    def query_info(self, request_dict, userID, response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
-        username = request_dict.get('username',None)
+        username = request_dict.get('username', None)
 
 
         param_flag = CommonService.get_param_flag(data=[page, line])
         param_flag = CommonService.get_param_flag(data=[page, line])
         if param_flag is True:
         if param_flag is True:
-            check_perm = ModelService.check_perm(userID=userID,permID=30)
+            check_perm = ModelService.check_perm(userID=userID, permID=30)
             if check_perm is True:
             if check_perm is True:
                 if username is None or username is '':
                 if username is None or username is '':
-                    user_brand_queryset = User_Brand.objects.all().order_by( '-id')
+                    user_brand_queryset = User_Brand.objects.all().order_by('-id')
                 else:
                 else:
                     user_brand_queryset = User_Brand.objects.filter(userID__username=username).order_by('-id')
                     user_brand_queryset = User_Brand.objects.filter(userID__username=username).order_by('-id')
                 if user_brand_queryset.exists():
                 if user_brand_queryset.exists():
@@ -190,8 +183,8 @@ class UserBrandInfo(View):
                     res = user_brand_queryset[(page - 1) * line:page * line]
                     res = user_brand_queryset[(page - 1) * line:page * line]
                     send_json = CommonService.qs_to_dict(res)
                     send_json = CommonService.qs_to_dict(res)
                     for k, v in enumerate(send_json["datas"]):
                     for k, v in enumerate(send_json["datas"]):
-                            username = ModelService.get_user_name(userID=send_json["datas"][k]['fields']['userID'])
-                            send_json["datas"][k]['fields']['username']=username
+                        username = ModelService.get_user_name(userID=send_json["datas"][k]['fields']['userID'])
+                        send_json["datas"][k]['fields']['username'] = username
                     send_json['count'] = count
                     send_json['count'] = count
                     return response.json(0, send_json)
                     return response.json(0, send_json)
                 return response.json(0, {'datas': [], 'count': 0})
                 return response.json(0, {'datas': [], 'count': 0})
@@ -199,7 +192,8 @@ class UserBrandInfo(View):
                 return response.json(404)
                 return response.json(404)
         else:
         else:
             return response.json(444)
             return response.json(444)
-    def delete_by_admin(self, request_dict, userID,response):
+
+    def delete_by_admin(self, request_dict, userID, response):
         id_list = request_dict.getlist('id', None)
         id_list = request_dict.getlist('id', None)
         param_flag = CommonService.get_param_flag(data=[id_list])
         param_flag = CommonService.get_param_flag(data=[id_list])
         if param_flag is True:
         if param_flag is True:
@@ -211,32 +205,36 @@ class UserBrandInfo(View):
                 return response.json(404)
                 return response.json(404)
         else:
         else:
             return response.json(444)
             return response.json(444)
+
     # 查询每个用户最新的一条记录统计信息
     # 查询每个用户最新的一条记录统计信息
-    def query_all_info(self, request_dict, userID,response):
+    def query_all_info(self, request_dict, userID, response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
         username = request_dict.get('username', None)
         username = request_dict.get('username', None)
         param_flag = CommonService.get_param_flag(data=[page, line])
         param_flag = CommonService.get_param_flag(data=[page, line])
         if param_flag is True:
         if param_flag is True:
-            check_perm = ModelService.check_perm(userID=userID,permID=30)
+            check_perm = ModelService.check_perm(userID=userID, permID=30)
             if check_perm is True:
             if check_perm is True:
                 if username is None or username is '':
                 if username is None or username is '':
-                # 按照用户去重复查询
-                    user_brand_queryset = User_Brand.objects.all().order_by('userID').values_list('userID', flat=True).distinct()
+                    # 按照用户去重复查询
+                    user_brand_queryset = User_Brand.objects.all().order_by('userID').values_list('userID',
+                                                                                                  flat=True).distinct()
                 else:
                 else:
-                    user_brand_queryset = User_Brand.objects.filter(userID__username=username).order_by('userID').values_list( 'userID',flat=True).distinct()
-                print (user_brand_queryset)
-                send_jsons=[]
-                counts=0
+                    user_brand_queryset = User_Brand.objects.filter(userID__username=username).order_by(
+                        'userID').values_list('userID', flat=True).distinct()
+                print(user_brand_queryset)
+                send_jsons = []
+                counts = 0
                 for i in user_brand_queryset:
                 for i in user_brand_queryset:
-                    counts=counts+1
+                    counts = counts + 1
                     user_brand_querysetlast = User_Brand.objects.filter(userID=i).order_by('-addTime')[:1]
                     user_brand_querysetlast = User_Brand.objects.filter(userID=i).order_by('-addTime')[:1]
                     user_brand_querysetlast = CommonService.qs_to_dict(user_brand_querysetlast)
                     user_brand_querysetlast = CommonService.qs_to_dict(user_brand_querysetlast)
-                    username = ModelService.get_user_name(userID=user_brand_querysetlast["datas"][0]['fields']['userID'])
-                    user_brand_querysetlast["datas"][0]['fields']['username']=username
+                    username = ModelService.get_user_name(
+                        userID=user_brand_querysetlast["datas"][0]['fields']['userID'])
+                    user_brand_querysetlast["datas"][0]['fields']['username'] = username
                     send_jsons.append(user_brand_querysetlast["datas"][0])
                     send_jsons.append(user_brand_querysetlast["datas"][0])
                 # 按照加入的日期排序
                 # 按照加入的日期排序
-                send_jsons = sorted(send_jsons, key=lambda x:x['fields']['addTime'], reverse=True)
+                send_jsons = sorted(send_jsons, key=lambda x: x['fields']['addTime'], reverse=True)
                 # 分页
                 # 分页
                 send_jsons = send_jsons[(page - 1) * line:page * line]
                 send_jsons = send_jsons[(page - 1) * line:page * line]
                 return response.json(0, {'datas': send_jsons, 'count': counts})
                 return response.json(0, {'datas': send_jsons, 'count': counts})
@@ -247,57 +245,57 @@ class UserBrandInfo(View):
             return response.json(444)
             return response.json(444)
 
 
     # 品牌统计的接口
     # 品牌统计的接口
-    def query_deviceSupplier_info(self, request_dict, userID,response):
-        check_perm = ModelService.check_perm(userID=userID,permID=30)
+    def query_deviceSupplier_info(self, request_dict, userID, response):
+        check_perm = ModelService.check_perm(userID=userID, permID=30)
         if check_perm is True:
         if check_perm is True:
             # 按照用户去重复查询
             # 按照用户去重复查询
-            user_brand_queryset = User_Brand.objects.all().order_by('userID').values_list('userID', flat=True).distinct()
-            print (user_brand_queryset)
-            send_jsons=[]
-            counts=0
+            user_brand_queryset = User_Brand.objects.all().order_by('userID').values_list('userID',
+                                                                                          flat=True).distinct()
+            print(user_brand_queryset)
+            send_jsons = []
+            counts = 0
             for i in user_brand_queryset:
             for i in user_brand_queryset:
-                counts=counts+1
+                counts = counts + 1
                 user_brand_querysetlast = User_Brand.objects.filter(userID=i).order_by('-addTime')[:1]
                 user_brand_querysetlast = User_Brand.objects.filter(userID=i).order_by('-addTime')[:1]
                 user_brand_querysetlast = CommonService.qs_to_dict(user_brand_querysetlast)
                 user_brand_querysetlast = CommonService.qs_to_dict(user_brand_querysetlast)
                 username = ModelService.get_user_name(userID=user_brand_querysetlast["datas"][0]['fields']['userID'])
                 username = ModelService.get_user_name(userID=user_brand_querysetlast["datas"][0]['fields']['userID'])
-                user_brand_querysetlast["datas"][0]['fields']['username']=username
+                user_brand_querysetlast["datas"][0]['fields']['username'] = username
                 send_jsons.append(user_brand_querysetlast["datas"][0])
                 send_jsons.append(user_brand_querysetlast["datas"][0])
-            deviceSupplier=[]
+            deviceSupplier = []
             for k, v in enumerate(send_jsons):
             for k, v in enumerate(send_jsons):
                 deviceSupplier.append(v['fields']['deviceSupplier'])
                 deviceSupplier.append(v['fields']['deviceSupplier'])
             deviceSupplier = Counter(deviceSupplier)
             deviceSupplier = Counter(deviceSupplier)
-            print (deviceSupplier)
-            return response.json(0, {'datas': deviceSupplier,'counts':counts})
+            print(deviceSupplier)
+            return response.json(0, {'datas': deviceSupplier, 'counts': counts})
 
 
         else:
         else:
             return response.json(404)
             return response.json(404)
+
     # 区域统计的接口
     # 区域统计的接口
-    def query_area_info(self, request_dict, userID,response):
-        check_perm = ModelService.check_perm(userID=userID,permID=30)
+    def query_area_info(self, request_dict, userID, response):
+        check_perm = ModelService.check_perm(userID=userID, permID=30)
         district = request_dict.get('district', None)
         district = request_dict.get('district', None)
         if check_perm is True:
         if check_perm is True:
             # 按照用户去重复查询
             # 按照用户去重复查询
-            user_brand_queryset = User_Brand.objects.all().order_by('userID').values_list('userID', flat=True).distinct()
-            print (user_brand_queryset)
-            send_jsons=[]
-            counts=0
+            user_brand_queryset = User_Brand.objects.all().order_by('userID').values_list('userID',
+                                                                                          flat=True).distinct()
+            print(user_brand_queryset)
+            send_jsons = []
+            counts = 0
             for i in user_brand_queryset:
             for i in user_brand_queryset:
-                counts=counts+1
+                counts = counts + 1
                 user_brand_querysetlast = User_Brand.objects.filter(userID=i).order_by('-addTime')[:1]
                 user_brand_querysetlast = User_Brand.objects.filter(userID=i).order_by('-addTime')[:1]
                 user_brand_querysetlast = CommonService.qs_to_dict(user_brand_querysetlast)
                 user_brand_querysetlast = CommonService.qs_to_dict(user_brand_querysetlast)
                 username = ModelService.get_user_name(userID=user_brand_querysetlast["datas"][0]['fields']['userID'])
                 username = ModelService.get_user_name(userID=user_brand_querysetlast["datas"][0]['fields']['userID'])
-                user_brand_querysetlast["datas"][0]['fields']['username']=username
+                user_brand_querysetlast["datas"][0]['fields']['username'] = username
                 send_jsons.append(user_brand_querysetlast["datas"][0])
                 send_jsons.append(user_brand_querysetlast["datas"][0])
-            deviceSupplier=[]
+            deviceSupplier = []
             for k, v in enumerate(send_jsons):
             for k, v in enumerate(send_jsons):
                 deviceSupplier.append(v['fields'][district])
                 deviceSupplier.append(v['fields'][district])
             deviceSupplier = Counter(deviceSupplier)
             deviceSupplier = Counter(deviceSupplier)
             deviceSupplier = deviceSupplier
             deviceSupplier = deviceSupplier
 
 
-            return response.json(0, {'datas': deviceSupplier,'counts':counts})
+            return response.json(0, {'datas': deviceSupplier, 'counts': counts})
 
 
         else:
         else:
             return response.json(404)
             return response.json(404)
-
-
-

+ 65 - 8
Controller/UserController.py

@@ -960,12 +960,12 @@ class v2resetPwdByCodeView(TemplateView):
             return response.json(104)
             return response.json(104)
         reds = RedisObject()
         reds = RedisObject()
         resetCode = reds.get_data(key=email + '_forgetPwdResetCode')
         resetCode = reds.get_data(key=email + '_forgetPwdResetCode')
-        if resetCode is True:
-            return response.json(90)
+        # if resetCode is True:
+        #     return response.json(90)
         if authcode != resetCode:
         if authcode != resetCode:
             return response.json(121)
             return response.json(121)
-        if not reds.set_data(key=email + '_forgetPwdResetCode', val=resetCode, expire=300):
-            return response.json(10, '生成缓存错误')
+        # if not reds.set_data(key=email + '_forgetPwdResetCode', val=resetCode, expire=300):
+        #     return response.json(10, '生成缓存错误')
         user_qs.update(password=make_password(password))
         user_qs.update(password=make_password(password))
         if not reds.del_data(email + '_forgetPwdResetCode'):
         if not reds.del_data(email + '_forgetPwdResetCode'):
             return response.json(10, '删除缓存失败')
             return response.json(10, '删除缓存失败')
@@ -982,12 +982,12 @@ class v2resetPwdByCodeView(TemplateView):
             return response.json(102)
             return response.json(102)
         reds = RedisObject()
         reds = RedisObject()
         resetCode = reds.get_data(key=phone + '_forgetPwdResetCode')
         resetCode = reds.get_data(key=phone + '_forgetPwdResetCode')
-        if resetCode is True:
-            return response.json(90)
+        # if resetCode is True:
+        #     return response.json(90)
         if authcode != resetCode:
         if authcode != resetCode:
             return response.json(121)
             return response.json(121)
-        if not reds.set_data(key=phone + '_forgetPwdResetCode', val=resetCode, expire=300):
-            return response.json(10, '生成缓存错误')
+        # if not reds.set_data(key=phone + '_forgetPwdResetCode', val=resetCode, expire=300):
+        #     return response.json(10, '生成缓存错误')
         user_qs.update(password=make_password(password))
         user_qs.update(password=make_password(password))
         if not reds.del_data(phone + '_forgetPwdResetCode'):
         if not reds.del_data(phone + '_forgetPwdResetCode'):
             return response.json(10, '删除缓存失败')
             return response.json(10, '删除缓存失败')
@@ -1145,3 +1145,60 @@ class InitInfoView(View):
             'usmsg': sm_count
             'usmsg': sm_count
         }
         }
         return response.json(0, res)
         return response.json(0, res)
+
+
+# 获取验证码
+class verifyAuthcode(TemplateView):
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        lang = request.POST.get('lang', None)
+        if not lang:
+            lang = request.POST.get('language', None)
+        response = ResponseObject(lang)
+        request_dict = request.POST
+        return self.ValidationError(request_dict, response)
+
+    def get(self, request, *args, **kwargs):
+        # Device_User.objects.filter(userEmail='chanjunkai@163.com').delete()
+        request.encoding = 'utf-8'
+        lang = request.GET.get('lang', None)
+        if not lang:
+            lang = request.GET.get('language', None)
+        response = ResponseObject(lang)
+        request_dict = request.GET
+        return self.ValidationError(request_dict, response)
+
+    def ValidationError(self, request_dict, response):
+        email = request_dict.get('email', None)
+        phone = request_dict.get('phone', None)
+        authcode = request_dict.get('authcode', None)
+        if email is not None:
+            email = email.strip()
+            return self.email_validate(email, authcode, response)
+        elif phone is not None:
+            phone = phone.strip()
+            return self.phone_validate(phone, authcode, response)
+        else:
+            return response.json(444)
+
+    def email_validate(self, email, authcode, response):
+        data_valid = DataValid()
+        if data_valid.email_validate(email) is not True:
+            return response.json(105)
+        reds = RedisObject()
+        resetCode = reds.get_data(key=email + '_forgetPwdResetCode')
+        if authcode != resetCode:
+            return response.json(121)
+        return response.json(0)
+
+    def phone_validate(self, phone, authcode, response):
+        data_valid = DataValid()
+        if data_valid.mobile_validate(phone) is not True:
+            return response.json(100)
+        reds = RedisObject()
+        resetCode = reds.get_data(key=phone + '_forgetPwdResetCode')
+        print(resetCode)
+        if authcode != resetCode:
+            return response.json(121)
+        return response.json(0)