41 lines
1.4 KiB
C++
41 lines
1.4 KiB
C++
//
|
|
// Created by dongl on 23-4-20.
|
|
//
|
|
|
|
#include "UserProveController.h"
|
|
|
|
void UserProveController::run(std::shared_ptr<agreement_request> request, std::shared_ptr<agreement_response> response) {
|
|
// 登陆
|
|
if (request->m_mph->mp_type() == mp::MP_REQUEST_LOGIN) {
|
|
auto sri = service.login(request->m_body.subcommand(),
|
|
request->m_body.account(), request->m_body.password());
|
|
response->set(sri, request->m_bev);
|
|
|
|
// 登陆的用户 直接在全局 注册 在map中 直接存入服务器内存
|
|
handler::add_user(sri, request);
|
|
}
|
|
// 注册
|
|
else if (request->m_mph->mp_type() == mp::MP_REQUEST_REGISTER) {
|
|
auto sri = service.register_(request->m_body.subcommand(),
|
|
request->m_body.email(), request->m_body.password());
|
|
response->set(sri, request->m_bev);
|
|
}
|
|
// 退出登陆
|
|
else if (request->m_mph->mp_type() == mp::MP_REQUEST_LOGOUT) {
|
|
// 查看当前用户是否在线
|
|
bool state = handler::is_user(request->m_body.account());
|
|
|
|
// current user list used redis 在优化
|
|
if (state) {
|
|
handler::remove_user(request);
|
|
auto sri = service.logout(request->m_body.account(), state);
|
|
response->set(sri, request->m_bev);
|
|
} else {
|
|
auto sri = service.logout(request->m_body.account(), state);
|
|
response->set(sri, request->m_bev);
|
|
}
|
|
}
|
|
}
|
|
|
|
|