IM/MS/works/controller/UserProveController.cpp

46 lines
1.6 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中 直接存入服务器内存
session->add_user(sri, request);
}
// 注册
else if (request->m_mph->mp_type() == mp::MP_REQUEST_REGISTER) {
auto session_code = session->get_session(request->m_bev, "code");
auto sri = service.register_(request->m_body.subcommand(),request->m_body.account(),
request->m_body.password(), request->m_body.data(), session_code);
response->set(sri, request->m_bev);
}
// 退出登陆
else if (request->m_mph->mp_type() == mp::MP_REQUEST_LOGOUT) {
// 查看当前用户是否在线
bool state = session->is_user(request->m_body.account());
// current user list used redis 在优化
if (state) {
session->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);
}
}
}