|
@@ -1337,55 +1337,89 @@ class v2forgetPwdCodeView(TemplateView):
|
|
|
email = request_dict.get('email', None)
|
|
|
country_code = request_dict.get('country_code', None)
|
|
|
sign_name = request_dict.get('sign_name', None)
|
|
|
+ number = request_dict.get('number', None)
|
|
|
+ lang = request_dict.get('lang', None)
|
|
|
+ if lang is None:
|
|
|
+ return response.json(444, 'lang')
|
|
|
if phone is not None:
|
|
|
phone = phone.strip()
|
|
|
if country_code is None:
|
|
|
- return self.do_send_phone_code(phone, response, sign_name)
|
|
|
+ return self.do_send_phone_code(phone, response, sign_name, number, lang)
|
|
|
else:
|
|
|
- return self.do_v2_send_phone_code(country_code, phone, response, sign_name)
|
|
|
+ return self.do_v2_send_phone_code(country_code, phone, response, sign_name, number, lang)
|
|
|
elif email is not None:
|
|
|
- return self.do_send_email_code(email, response)
|
|
|
+ return self.do_send_email_code(email, response, number, lang)
|
|
|
else:
|
|
|
return response.json(444, 'phone')
|
|
|
|
|
|
- def do_send_phone_code(self, phone, response, sign_name):
|
|
|
+ def do_send_phone_code(self, phone, response, sign_name, number, lang):
|
|
|
data_valid = DataValid()
|
|
|
if data_valid.mobile_validate(phone) is not True:
|
|
|
return response.json(100)
|
|
|
user_qs = Device_User.objects.filter(Q(phone=phone) | Q(username=phone))
|
|
|
if not user_qs.exists():
|
|
|
return response.json(102)
|
|
|
+ users = user_qs.values().first()
|
|
|
+ res = {}
|
|
|
reds = RedisObject()
|
|
|
reds_key = str(phone) + '_forgetPwdResetCode'
|
|
|
resetCode = reds.get_data(key=reds_key)
|
|
|
reds_key_ttl = reds.get_ttl(key=reds_key)
|
|
|
if reds_key_ttl > 240 and resetCode:
|
|
|
- # if identifyingCode :
|
|
|
return response.json(90)
|
|
|
- # if resetCode is True:
|
|
|
- # return response.json(120)
|
|
|
resetCode = RandomStr(6, True)
|
|
|
if sign_name == 'zosi':
|
|
|
sign_ms = '周视'
|
|
|
else:
|
|
|
sign_ms = 'Ansjer'
|
|
|
+
|
|
|
+ now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
|
|
|
+ region_country = users['region_country']
|
|
|
+ lang_id = LanguageModel.objects.filter(lang=lang).values('id')
|
|
|
+ region_qs = CountryLanguageModel.objects.filter(country_id=region_country, language_id=lang_id[0]['id']).values(
|
|
|
+ 'country_name')
|
|
|
+ res['region'] = region_qs[0]['country_name'] if region_qs.exists() else ''
|
|
|
aliSms = AliSmsObject()
|
|
|
- res = aliSms.send_code_sms(phone=phone, code=resetCode, sign_name=sign_ms,
|
|
|
- temp_msg='SMS_151675019')
|
|
|
- if res["Code"] == "OK":
|
|
|
- if not reds.set_data(key=reds_key, val=resetCode, expire=300):
|
|
|
- return response.json(10, '生成缓存错误')
|
|
|
- return response.json(0)
|
|
|
+ if not number or number == '0':
|
|
|
+ res['status'] = 0
|
|
|
+ user_qs.update(last_login=now_time, language=lang)
|
|
|
+ msg_res = aliSms.send_code_sms(phone=phone, code=resetCode, sign_name=sign_ms,
|
|
|
+ temp_msg='SMS_151675019')
|
|
|
+ if msg_res["Code"] == "OK":
|
|
|
+ if not reds.set_data(key=reds_key, val=resetCode, expire=300):
|
|
|
+ res['Message'] = '生成缓存错误'
|
|
|
+ return response.json(10, res)
|
|
|
+ else:
|
|
|
+ res['Message'] = msg_res['Message']
|
|
|
+ return response.json(10, res)
|
|
|
else:
|
|
|
- return response.json(10, res["Message"])
|
|
|
+ number = int(number)
|
|
|
+ if number != region_country and region_country != 0:
|
|
|
+ res['status'] = 1
|
|
|
+ user_qs.update(last_login=now_time, language=lang)
|
|
|
+ else:
|
|
|
+ res['status'] = 0
|
|
|
+ user_qs.update(last_login=now_time, language=lang, region_country=number)
|
|
|
+ msg_res = aliSms.send_code_sms(phone=phone, code=resetCode, sign_name=sign_ms,
|
|
|
+ temp_msg='SMS_151675019')
|
|
|
+ if msg_res["Code"] == "OK":
|
|
|
+ if not reds.set_data(key=reds_key, val=resetCode, expire=300):
|
|
|
+ res['Message'] = '生成缓存错误'
|
|
|
+ return response.json(10, res)
|
|
|
+ else:
|
|
|
+ res['Message'] = msg_res['Message']
|
|
|
+ return response.json(10, res)
|
|
|
+ return response.json(0, res)
|
|
|
|
|
|
- def do_v2_send_phone_code(self, country_code, phone, response, sign_name):
|
|
|
+ def do_v2_send_phone_code(self, country_code, phone, response, sign_name, number, lang):
|
|
|
data_valid = DataValid()
|
|
|
if data_valid.mobile_validate(phone) is not True:
|
|
|
return response.json(100)
|
|
|
user_qs = Device_User.objects.filter(Q(phone=phone) | Q(username=phone))
|
|
|
if not user_qs.exists():
|
|
|
return response.json(102)
|
|
|
+ users = user_qs.values().first()
|
|
|
+ res = {}
|
|
|
reds = RedisObject()
|
|
|
reds_key = str(phone) + '_forgetPwdResetCode'
|
|
|
resetCode = reds.get_data(key=reds_key)
|
|
@@ -1408,23 +1442,54 @@ class v2forgetPwdCodeView(TemplateView):
|
|
|
temp_msg = 'SMS_172200051'
|
|
|
rec_phone = str(country_code) + str(phone)
|
|
|
sign_ms = 'Ansjer'
|
|
|
-
|
|
|
- res = aliSms.send_code_sms(phone=rec_phone, code=resetCode, sign_name=sign_ms,
|
|
|
- temp_msg=temp_msg)
|
|
|
- if res["Code"] == "OK":
|
|
|
- if not reds.set_data(key=reds_key, val=resetCode, expire=300):
|
|
|
- return response.json(10, '生成缓存错误')
|
|
|
- return response.json(0)
|
|
|
+ now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
|
|
|
+ region_country = users['region_country']
|
|
|
+ lang_id = LanguageModel.objects.filter(lang=lang).values('id')
|
|
|
+ region_qs = CountryLanguageModel.objects.filter(country_id=region_country, language_id=lang_id[0]['id']).values(
|
|
|
+ 'country_name')
|
|
|
+ res['region'] = region_qs[0]['country_name'] if region_qs.exists() else ''
|
|
|
+ if not number or number == '0':
|
|
|
+ res['status'] = 0
|
|
|
+ user_qs.update(last_login=now_time, language=lang)
|
|
|
+ msg_res = aliSms.send_code_sms(phone=rec_phone, code=resetCode, sign_name=sign_ms,
|
|
|
+ temp_msg=temp_msg)
|
|
|
+ if msg_res["Code"] == "OK":
|
|
|
+ if not reds.set_data(key=reds_key, val=resetCode, expire=300):
|
|
|
+ res['Message'] = '生成缓存错误'
|
|
|
+ return response.json(10, res)
|
|
|
+ else:
|
|
|
+ res['Message'] = msg_res['Message']
|
|
|
+ return response.json(10, res)
|
|
|
else:
|
|
|
- return response.json(10, res["Message"])
|
|
|
+ number = int(number)
|
|
|
+ if number != region_country and region_country != 0:
|
|
|
+ res['status'] = 1
|
|
|
+ user_qs.update(last_login=now_time, language=lang)
|
|
|
+ else:
|
|
|
+ res['status'] = 0
|
|
|
+ user_qs.update(last_login=now_time, language=lang, region_country=number)
|
|
|
+ msg_res = aliSms.send_code_sms(phone=rec_phone, code=resetCode, sign_name=sign_ms,
|
|
|
+ temp_msg=temp_msg)
|
|
|
+ if msg_res["Code"] == "OK":
|
|
|
+ if not reds.set_data(key=reds_key, val=resetCode, expire=300):
|
|
|
+ res['Message'] = '生成缓存错误'
|
|
|
+ return response.json(10, res)
|
|
|
+ else:
|
|
|
+ res['Message'] = msg_res['Message']
|
|
|
+ return response.json(10, res)
|
|
|
+
|
|
|
+ return response.json(0, res)
|
|
|
|
|
|
- def do_send_email_code(self, email, response):
|
|
|
+
|
|
|
+ def do_send_email_code(self, email, response, number, lang):
|
|
|
data_valid = DataValid()
|
|
|
if data_valid.email_validate(email) is not True:
|
|
|
return response.json(105)
|
|
|
user_qs = Device_User.objects.filter(Q(userEmail=email) | Q(username=email))
|
|
|
if not user_qs.exists():
|
|
|
return response.json(104)
|
|
|
+ users = user_qs.values().first()
|
|
|
+ res = {}
|
|
|
reds = RedisObject()
|
|
|
resetCode = reds.get_data(key=email + '_forgetPwdResetCode')
|
|
|
if resetCode is True:
|
|
@@ -1435,14 +1500,35 @@ class v2forgetPwdCodeView(TemplateView):
|
|
|
send_data = TemplateService.email_message(type='forgetCode', language=response.lang)
|
|
|
send_body = send_data['body'].format(userEmail=email, email_valid_code=resetCode)
|
|
|
ses = SesClassObject()
|
|
|
+ now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
|
|
|
+ region_country = users['region_country']
|
|
|
+ lang_id = LanguageModel.objects.filter(lang=lang).values('id')
|
|
|
+ region_qs = CountryLanguageModel.objects.filter(country_id=region_country, language_id=lang_id[0]['id']).values(
|
|
|
+ 'country_name')
|
|
|
+ res['region'] = region_qs[0]['country_name'] if region_qs.exists() else ''
|
|
|
+ if not number or number == '0':
|
|
|
+ res['status'] = 0
|
|
|
+ user_qs.update(last_login=now_time, language=lang)
|
|
|
+ send_res = ses.alyEmailCode(send_address_list=[email], subject=send_data['title'], body=send_body)
|
|
|
+ if send_res is not True:
|
|
|
+ reds.del_data(key=email + '_forgetPwdResetCode')
|
|
|
+ res['Message'] = '发送邮件失败'
|
|
|
+ return response.json(44, res)
|
|
|
+ else:
|
|
|
+ number = int(number)
|
|
|
+ if number != region_country and region_country != 0:
|
|
|
+ res['status'] = 1
|
|
|
+ user_qs.update(last_login=now_time, language=lang)
|
|
|
+ else:
|
|
|
+ res['status'] = 0
|
|
|
+ user_qs.update(last_login=now_time, language=lang, region_country=number)
|
|
|
+ send_res = ses.alyEmailCode(send_address_list=[email], subject=send_data['title'], body=send_body)
|
|
|
+ if send_res is not True:
|
|
|
+ reds.del_data(key=email + '_forgetPwdResetCode')
|
|
|
+ res['Message'] = '发送邮件失败'
|
|
|
+ return response.json(44, res)
|
|
|
|
|
|
- # send_res = ses.send_email(send_address_list=[email], subject=send_data['title'], body=send_body)
|
|
|
- # 阿里云发送邮箱
|
|
|
- send_res = ses.alyEmailCode(send_address_list=[email], subject=send_data['title'], body=send_body)
|
|
|
- if send_res is not True:
|
|
|
- reds.del_data(key=email + '_forgetPwdResetCode')
|
|
|
- return response.json(44)
|
|
|
- return response.json(0)
|
|
|
+ return response.json(0, res)
|
|
|
|
|
|
|
|
|
# 忘记密码v2
|
|
@@ -4269,5 +4355,3 @@ class DeleteUser(View):
|
|
|
if user_qs.exists():
|
|
|
user_qs.delete()
|
|
|
return response.json(0)
|
|
|
-
|
|
|
-
|