IM/MS/works/service/UserFriendsService.cpp

95 lines
2.2 KiB
C++

//
// Created by dongl on 23-5-5.
//
#include "UserFriendsService.h"
UserFriendsService::~UserFriendsService() {}
// 好友群组 添加删除 任务组 决策接口
mp::sri *UserFriendsService::friendImProve(mp::body* body) {
sri_clear();
if (body->target() == 0 || body->source() == 0) {
printf("请求数据有缺\n");
sri->set_msg("请求数据有缺");
return sri;
}
auto subcommand = body->subcommand();
// 添加
if (subcommand == mp::MP_SUB_TYPE::MP_ADD_FRIENDS_ACCOUNT) {
add_contact_person(body);
}
// 拉黑
else if (subcommand == mp::MP_SUB_TYPE::MP_ADD_BLACK_LIST) {
}
// 删除
else if (subcommand == mp::MP_SUB_TYPE::MP_REMOVE_FRIEND) {
}
return sri;
}
void UserFriendsService::add_friends(mp::body *body) {
auto [state1, msg1] = userFriendsDb.add_friends(body->source(), body->target());
auto [state2, msg2] = userFriendsDb.add_friends(body->target(), body->source());
if (state1 && state2) {
sri->set_subcommand(mp::MP_SUB_TYPE::MP_ADD_SUCCESS);
sri->set_msg("添加成功");
} else {
sri->set_subcommand(mp::MP_SUB_TYPE::MP_ADD_FAIL);
sri->set_msg("添加失败,请重试");
}
}
// 添加好友函数
mp::sri* UserFriendsService::add_contact_person(mp::body *body) {
// 查看添加目标的权限类型
char type = userFriendsDb.select_add_type(body->target());
// 直接添加
if (type == '0') {
add_friends(body);
}
// 回答问题
else if (type == '1') {
if ("") {
add_friends(body);
} else {
sri->set_subcommand(mp::MP_SUB_TYPE::MP_ADD_FAIL);
sri->set_msg("答案错误");
}
}
// 账户审核
else if (type == '2') {
}
return sri;
}
mp::sri *UserFriendsService::FetchUserFriend(uint64_t account, const std::string &data) {
sri_clear();
uint8_t page_begin = data.c_str()[0];
uint8_t page_end = data.c_str()[1];
auto friends = userFriendsDb.select_friends_all(account);
if (friends.has_value())
sri->set_data(friends.value());
sri->set_msg("好友获取成功");
sri->set_subcommand(mp::MP_SUB_TYPE::MP_ADD_SUCCESS);
return sri;
}