IM/MS/works/service/PEVerifCodeService.cpp
dongl a764f9fcab 暂时添加了 邮箱不可重复申请帐号
后续改成 邮箱可以申请多个账号, 用邮箱登陆时选择帐号登陆
修改了 MessageSystem 结构
2023-07-04 10:31:14 +08:00

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;
}