linhaohong 9 сар өмнө
parent
commit
8d90d26ae7

+ 71 - 6
Controller/ShopifyController.py

@@ -90,12 +90,19 @@ class ShopifyView(View):
             return self.shopify_login(request_dict, response)
         elif operation == 'shopifyRegister':
             return self.shopify_register(request_dict, response)
-        elif operation == 'searchCustomer': # 查询FAPP注册账号情况
+        # 查询FAPP注册账号情况
+        elif operation == 'searchCustomer':
             return self.search_customer(request_dict, response)
-        elif operation == 'searchAccount': # 官网检测账号接口
+        # 官网检测账号接口
+        elif operation == 'searchAccount':
             return self.search_account(request_dict, response)
         elif operation == 'getCountryDomainList':
             return self.get_country_domain_list(request_dict, response)
+        # 忘记密码
+        elif operation == 'shopifyChangePassword':
+            return self.shopify_change_password(request_dict, response)
+        elif operation == 'verifyAuthcode':
+            return self.verify_authcode(request_dict, response)
         else:
             return response.json(414)
 
@@ -169,6 +176,10 @@ class ShopifyView(View):
 
         if not all([email, password, authcode]):
             return response.json(444)
+        data_valid = DataValid()
+        re_flag = data_valid.password_validate(password)
+        if re_flag is not True:
+            return response.json(109)
 
         reds = RedisObject()
         identifyingCode = reds.get_data(key=email + '_identifyingCode')
@@ -178,11 +189,9 @@ class ShopifyView(View):
         # 验证码是否正确
         if authcode != identifyingCode:
             return response.json(121)
-
         # 注册
         if Device_User.objects.filter(Q(username=email) | Q(userEmail=email)).exists():
             return response.json(103)
-
         # 创建用户
         password = make_password(password)
         new_userID = CommonService.getUserID(μs=False, setOTAID=True)
@@ -196,7 +205,7 @@ class ShopifyView(View):
             "user_isValid": True,
         }
         Device_User.objects.create(**user_data)
-
+        reds.del_data(key=email + '_identifyingCode')
         return response.json(0)
 
     def search_account(self, request_dict, response):
@@ -267,7 +276,6 @@ class ShopifyView(View):
             print(e)
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
-
     @staticmethod
     def call_search_customer(email):
         urls = {
@@ -336,4 +344,61 @@ class ShopifyView(View):
             print(e)
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
+    @staticmethod
+    def shopify_change_password(request_dict, response):
+        email = request_dict.get("email", None)
+        password = request_dict.get("password", None)
+        authcode = request_dict.get("authCode", None)
+        if not all([email, password, authcode]):
+            return response.json(444)
+        try:
+            reds = RedisObject()
+            identifyingCode = reds.get_data(key=email + '_forgetPwdResetCode')
+            # 判断验证码是否过期
+            if identifyingCode is False:
+                return response.json(120)
+            # 验证码是否正确
+            if authcode != identifyingCode:
+                return response.json(121)
+
+            user_qs = Device_User.objects.filter(Q(username=email) | Q(userEmail=email))
+            if not user_qs.exists():
+                return response.json(174)
+            password = make_password(password)
+            user_qs.update(password=password)
+            reds.del_data(key=email + '_forgetPwdResetCode')
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
+    @staticmethod
+    def verify_authcode(request_dict, response):
+        """
+        在修改密码的时候改变验证码
+        """
+        email = request_dict.get("email", None)
+        authcode = request_dict.get("authCode", None)
+        code_type = request_dict.get("code_type", None)
+        if not all([email, authcode, code_type]):
+            return response.json(444)
+        try:
+            code_type = int(code_type)
+            if code_type == 1:
+                reds_key = "_forgetPwdResetCode"
+            elif code_type == 2:
+                reds_key = "_identifyingCode"
+            else:
+                return response.json(444)
+            reds = RedisObject()
+            identifyingCode = reds.get_data(key=email + reds_key)
+            if identifyingCode is False:
+                return response.json(120)
+            # 验证码是否正确
+            if authcode != identifyingCode:
+                return response.json(121)
+            user_qs = Device_User.objects.filter(Q(username=email) | Q(userEmail=email))
+            if not user_qs.exists():
+                return response.json(174)
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))