46 lines
1.6 KiB
C++
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);
|
|
}
|
|
}
|
|
}
|
|
|
|
|