// // Created by dongl on 23-4-20. // #include "UserController.h" void UserController::run(std::shared_ptr request, std::shared_ptr 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); if (session_code.has_value()) session->remove_session(request->m_bev, "code"); } // 退出登陆 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); } } }