42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
//
|
|
// Created by dongl on 23-5-10.
|
|
//
|
|
|
|
#include <experimental/random>
|
|
#include "PEVerifCodeService.h"
|
|
#include "send_email.h"
|
|
|
|
std::string PEVerifCodeService::gen_code() {
|
|
|
|
std::string code;
|
|
for (int i = 0; i < 6; ++i) {
|
|
code.push_back((char )std::experimental::randint(48, 57)); // 0-9
|
|
}
|
|
|
|
emailcode = code;
|
|
return code;
|
|
}
|
|
|
|
mp::sri* PEVerifCodeService::send_email(const std::string &target_email, const std::string &code) {
|
|
sri_clear();
|
|
|
|
emailcode = code == "0" ? emailcode : code;
|
|
// 检查发送验证码
|
|
bool state = send_email_def(target_email, emailcode);
|
|
// 检查邮箱
|
|
auto [is_exist, user] = userDb.select_user(target_email, "email");
|
|
|
|
if (is_exist) {
|
|
sri->set_subcommand(mp::MP_SUB_TYPE::MP_REGISTER_FAIL);
|
|
sri->set_msg("邮箱已使用!");
|
|
} else if (state) {
|
|
sri->set_subcommand(mp::MP_SUB_TYPE::MP_CODE_SUCCESS);
|
|
sri->set_msg("验证码已发送");
|
|
} else {
|
|
sri->set_subcommand(mp::MP_SUB_TYPE::MP_CODE_FAIL);
|
|
sri->set_msg("未知问题,验证码获取失败");
|
|
}
|
|
|
|
return sri;
|
|
}
|