smtp 合并到 MS 中

添加好友 取好友列表 略有修改
接下再来 要该包类型宏  备份一下
This commit is contained in:
2023-05-16 17:12:05 +08:00
parent 8fa47d103c
commit f66340dcc0
20 changed files with 319 additions and 81 deletions

View File

@@ -61,27 +61,28 @@ static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] =
const char descriptor_table_protodef_mp_2emph_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
"\n\014mp.mph.proto\022\002mp\"b\n\003mph\022\020\n\010mpb_size\030\001 "
"\001(\r\022\r\n\005mp_id\030\002 \001(\004\022\016\n\006mp_sum\030\003 \001(\r\022\034\n\007mp"
"_type\030\004 \001(\0162\013.mp.MP_TYPE\022\014\n\004path\030\005 \001(\t*\370"
"\001\n\007MP_TYPE\022\024\n\020MP_REQUEST_LOGIN\020\000\022\025\n\021MP_R"
"_type\030\004 \001(\0162\013.mp.MP_TYPE\022\014\n\004path\030\005 \001(\t*\263"
"\002\n\007MP_TYPE\022\024\n\020MP_REQUEST_LOGIN\020\000\022\025\n\021MP_R"
"EQUEST_LOGOUT\020\001\022\027\n\023MP_REQUEST_REGISTER\020\002"
"\022\025\n\021MP_RESPONSE_LOGIN\020\024\022\026\n\022MP_RESPONSE_L"
"OGOUT\020\025\022\030\n\024MP_RESPONSE_REGISTER\020\026\022\026\n\022MP_"
"REQUEST_PE_CODE\020(\022\027\n\023MP_RESPONSE_PE_CODE"
"\020<\022\025\n\021MP_REQUEST_IM_ADD\020d\022\026\n\022MP_RESPONSE"
"_IM_ADD\020x*\204\004\n\013MP_SUB_TYPE\022\032\n\026MP_REQUEST_"
"LOGIN_EMAIL\020\000\022\032\n\026MP_REQUEST_LOGIN_PHONE\020"
"\001\022\034\n\030MP_REQUEST_LOGIN_ACCOUNT\020\002\022\035\n\031MP_RE"
"QUEST_REGISTER_EMAIL\020\003\022\035\n\031MP_REQUEST_REG"
"ISTER_PHONE\020\004\022\034\n\030MP_REQUEST_PE_CODE_EMAI"
"L\020\005\022\035\n\031MP_RESPONSE_PE_CODE_EMAIL\020\006\022\034\n\030MP"
"_REQUEST_PE_CODE_PHONE\020\007\022\035\n\031MP_RESPONSE_"
"PE_CODE_PHONE\020\010\022!\n\035MP_REQUEST_ADD_CONTAC"
"T_PERSON\020\024\022$\n MP_REQUEST_REMOVE_CONTACT_"
"PERSON\020\025\022(\n$MP_REQUEST_BLACK_LIST_CONTAC"
"T_PERSON\020\026\022\"\n\036MP_RESPONSE_ADD_CONTACT_PE"
"RSON\020(\022%\n!MP_RESPONSE_REMOVE_CONTACT_PER"
"SON\020)\022)\n%MP_RESPONSE_BLACK_LIST_CONTACT_"
"PERSON\020*b\006proto3"
"\022\033\n\027MP_REQUEST_USER_FRIENDS\020\003\022\025\n\021MP_RESP"
"ONSE_LOGIN\020\024\022\026\n\022MP_RESPONSE_LOGOUT\020\025\022\030\n\024"
"MP_RESPONSE_REGISTER\020\026\022\034\n\030MP_RESPONSE_US"
"ER_FRIENDS\020\027\022\026\n\022MP_REQUEST_PE_CODE\020(\022\027\n\023"
"MP_RESPONSE_PE_CODE\020<\022\025\n\021MP_REQUEST_IM_A"
"DD\020d\022\026\n\022MP_RESPONSE_IM_ADD\020x*\204\004\n\013MP_SUB_"
"TYPE\022\032\n\026MP_REQUEST_LOGIN_EMAIL\020\000\022\032\n\026MP_R"
"EQUEST_LOGIN_PHONE\020\001\022\034\n\030MP_REQUEST_LOGIN"
"_ACCOUNT\020\002\022\035\n\031MP_REQUEST_REGISTER_EMAIL\020"
"\003\022\035\n\031MP_REQUEST_REGISTER_PHONE\020\004\022\034\n\030MP_R"
"EQUEST_PE_CODE_EMAIL\020\005\022\035\n\031MP_RESPONSE_PE"
"_CODE_EMAIL\020\006\022\034\n\030MP_REQUEST_PE_CODE_PHON"
"E\020\007\022\035\n\031MP_RESPONSE_PE_CODE_PHONE\020\010\022!\n\035MP"
"_REQUEST_ADD_CONTACT_PERSON\020\024\022$\n MP_REQU"
"EST_REMOVE_CONTACT_PERSON\020\025\022(\n$MP_REQUES"
"T_BLACK_LIST_CONTACT_PERSON\020\026\022\"\n\036MP_RESP"
"ONSE_ADD_CONTACT_PERSON\020(\022%\n!MP_RESPONSE"
"_REMOVE_CONTACT_PERSON\020)\022)\n%MP_RESPONSE_"
"BLACK_LIST_CONTACT_PERSON\020*b\006proto3"
;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_mp_2emph_2eproto_deps[1] = {
};
@@ -90,7 +91,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_mp_
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_mp_2emph_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_mp_2emph_2eproto = {
false, false, descriptor_table_protodef_mp_2emph_2eproto, "mp.mph.proto", 896,
false, false, descriptor_table_protodef_mp_2emph_2eproto, "mp.mph.proto", 955,
&descriptor_table_mp_2emph_2eproto_once, descriptor_table_mp_2emph_2eproto_sccs, descriptor_table_mp_2emph_2eproto_deps, 1, 0,
schemas, file_default_instances, TableStruct_mp_2emph_2eproto::offsets,
file_level_metadata_mp_2emph_2eproto, 1, file_level_enum_descriptors_mp_2emph_2eproto, file_level_service_descriptors_mp_2emph_2eproto,
@@ -108,9 +109,11 @@ bool MP_TYPE_IsValid(int value) {
case 0:
case 1:
case 2:
case 3:
case 20:
case 21:
case 22:
case 23:
case 40:
case 60:
case 100:

View File

@@ -69,9 +69,11 @@ enum MP_TYPE : int {
MP_REQUEST_LOGIN = 0,
MP_REQUEST_LOGOUT = 1,
MP_REQUEST_REGISTER = 2,
MP_REQUEST_USER_FRIENDS = 3,
MP_RESPONSE_LOGIN = 20,
MP_RESPONSE_LOGOUT = 21,
MP_RESPONSE_REGISTER = 22,
MP_RESPONSE_USER_FRIENDS = 23,
MP_REQUEST_PE_CODE = 40,
MP_RESPONSE_PE_CODE = 60,
MP_REQUEST_IM_ADD = 100,

View File

@@ -51,6 +51,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_mp_2esri_2eproto::offsets[] PR
PROTOBUF_FIELD_OFFSET(::mp::sri, sri_phone_),
PROTOBUF_FIELD_OFFSET(::mp::sri, sri_msg_),
PROTOBUF_FIELD_OFFSET(::mp::sri, sri_token_),
PROTOBUF_FIELD_OFFSET(::mp::sri, data_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
{ 0, -1, sizeof(::mp::sri)},
@@ -61,23 +62,24 @@ static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] =
};
const char descriptor_table_protodef_mp_2esri_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
"\n\014mp.sri.proto\022\002mp\"\230\001\n\003sri\022\034\n\010sri_code\030\001"
"\n\014mp.sri.proto\022\002mp\"\246\001\n\003sri\022\034\n\010sri_code\030\001"
" \001(\0162\n.mp.MP_SRI\022\024\n\014sri_username\030\002 \001(\t\022\023"
"\n\013sri_account\030\003 \001(\004\022\021\n\tsri_email\030\004 \001(\t\022\021"
"\n\tsri_phone\030\005 \001(\004\022\017\n\007sri_msg\030\006 \001(\t\022\021\n\tsr"
"i_token\030\007 \001(\t*\360\003\n\006MP_SRI\022\030\n\024MP_LOGIN_ACC"
"OUNT_NOT\020\000\022\024\n\020MP_LOGIN_SUCCESS\020\001\022\021\n\rMP_L"
"OGIN_FAIL\020\002\022\027\n\023MP_REGISTER_SUCCESS\020\n\022\035\n\031"
"MP_REGISTER_SUCCESS_PHONE\020\013\022\035\n\031MP_REGIST"
"ER_SUCCESS_EMAIL\020\014\022\025\n\021MP_REGISTER_EXIST\020"
"\r\022\027\n\023MP_REGISTER_SQL_ERR\020\016\022\025\n\021MP_LOGOUT_"
"SUCCESS\020\024\022\022\n\016MP_LOGOUT_FAIL\020\025\022\022\n\016MP_ADD_"
"FRIENDS\020\036\022\024\n\020MP_ADD_FRIENDS_0\020\037\022\024\n\020MP_AD"
"D_FRIENDS_1\020 \022\024\n\020MP_ADD_FRIENDS_2\020!\022\026\n\022M"
"P_ADD_FRIENDS_ERR\020\"\022\033\n\027MP_ADD_FRIENDS_NO"
"T_TYPE\020#\022\032\n\026MP_ADD_FRIENDS_SQL_ERR\020$\022\035\n\031"
"MP_ADD_FRIENDS_ANSWER_ERR\020%\022\026\n\022MP_PE_COD"
"E_SUCCESS\0202\022\023\n\017MP_PE_CODE_FAIL\0203b\006proto3"
"i_token\030\007 \001(\t\022\014\n\004data\030\010 \001(\t*\360\003\n\006MP_SRI\022\030"
"\n\024MP_LOGIN_ACCOUNT_NOT\020\000\022\024\n\020MP_LOGIN_SUC"
"CESS\020\001\022\021\n\rMP_LOGIN_FAIL\020\002\022\027\n\023MP_REGISTER"
"_SUCCESS\020\n\022\035\n\031MP_REGISTER_SUCCESS_PHONE\020"
"\013\022\035\n\031MP_REGISTER_SUCCESS_EMAIL\020\014\022\025\n\021MP_R"
"EGISTER_EXIST\020\r\022\027\n\023MP_REGISTER_SQL_ERR\020\016"
"\022\025\n\021MP_LOGOUT_SUCCESS\020\024\022\022\n\016MP_LOGOUT_FAI"
"L\020\025\022\022\n\016MP_ADD_FRIENDS\020\036\022\024\n\020MP_ADD_FRIEND"
"S_0\020\037\022\024\n\020MP_ADD_FRIENDS_1\020 \022\024\n\020MP_ADD_FR"
"IENDS_2\020!\022\026\n\022MP_ADD_FRIENDS_ERR\020\"\022\033\n\027MP_"
"ADD_FRIENDS_NOT_TYPE\020#\022\032\n\026MP_ADD_FRIENDS"
"_SQL_ERR\020$\022\035\n\031MP_ADD_FRIENDS_ANSWER_ERR\020"
"%\022\026\n\022MP_PE_CODE_SUCCESS\0202\022\023\n\017MP_PE_CODE_"
"FAIL\0203b\006proto3"
;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_mp_2esri_2eproto_deps[1] = {
};
@@ -86,7 +88,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_mp_
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_mp_2esri_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_mp_2esri_2eproto = {
false, false, descriptor_table_protodef_mp_2esri_2eproto, "mp.sri.proto", 680,
false, false, descriptor_table_protodef_mp_2esri_2eproto, "mp.sri.proto", 694,
&descriptor_table_mp_2esri_2eproto_once, descriptor_table_mp_2esri_2eproto_sccs, descriptor_table_mp_2esri_2eproto_deps, 1, 0,
schemas, file_default_instances, TableStruct_mp_2esri_2eproto::offsets,
file_level_metadata_mp_2esri_2eproto, 1, file_level_enum_descriptors_mp_2esri_2eproto, file_level_service_descriptors_mp_2esri_2eproto,
@@ -165,6 +167,11 @@ sri::sri(const sri& from)
sri_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_sri_token(),
GetArena());
}
data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
if (!from._internal_data().empty()) {
data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_data(),
GetArena());
}
::memcpy(&sri_account_, &from.sri_account_,
static_cast<size_t>(reinterpret_cast<char*>(&sri_code_) -
reinterpret_cast<char*>(&sri_account_)) + sizeof(sri_code_));
@@ -177,6 +184,7 @@ void sri::SharedCtor() {
sri_email_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
sri_msg_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
sri_token_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
::memset(&sri_account_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&sri_code_) -
reinterpret_cast<char*>(&sri_account_)) + sizeof(sri_code_));
@@ -194,6 +202,7 @@ void sri::SharedDtor() {
sri_email_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
sri_msg_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
sri_token_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
void sri::ArenaDtor(void* object) {
@@ -221,6 +230,7 @@ void sri::Clear() {
sri_email_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
sri_msg_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
sri_token_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
::memset(&sri_account_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&sri_code_) -
reinterpret_cast<char*>(&sri_account_)) + sizeof(sri_code_));
@@ -293,6 +303,15 @@ const char* sri::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::intern
CHK_(ptr);
} else goto handle_unusual;
continue;
// string data = 8;
case 8:
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
auto str = _internal_mutable_data();
ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "mp.sri.data"));
CHK_(ptr);
} else goto handle_unusual;
continue;
default: {
handle_unusual:
if ((tag & 7) == 4 || tag == 0) {
@@ -380,6 +399,16 @@ failure:
7, this->_internal_sri_token(), target);
}
// string data = 8;
if (this->data().size() > 0) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
this->_internal_data().data(), static_cast<int>(this->_internal_data().length()),
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
"mp.sri.data");
target = stream->WriteStringMaybeAliased(
8, this->_internal_data(), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
@@ -424,6 +453,13 @@ size_t sri::ByteSizeLong() const {
this->_internal_sri_token());
}
// string data = 8;
if (this->data().size() > 0) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
this->_internal_data());
}
// uint64 sri_account = 3;
if (this->sri_account() != 0) {
total_size += 1 +
@@ -487,6 +523,9 @@ void sri::MergeFrom(const sri& from) {
if (from.sri_token().size() > 0) {
_internal_set_sri_token(from._internal_sri_token());
}
if (from.data().size() > 0) {
_internal_set_data(from._internal_data());
}
if (from.sri_account() != 0) {
_internal_set_sri_account(from._internal_sri_account());
}
@@ -523,6 +562,7 @@ void sri::InternalSwap(sri* other) {
sri_email_.Swap(&other->sri_email_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
sri_msg_.Swap(&other->sri_msg_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
sri_token_.Swap(&other->sri_token_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
data_.Swap(&other->data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(sri, sri_code_)
+ sizeof(sri::sri_code_)

View File

@@ -227,6 +227,7 @@ class sri PROTOBUF_FINAL :
kSriEmailFieldNumber = 4,
kSriMsgFieldNumber = 6,
kSriTokenFieldNumber = 7,
kDataFieldNumber = 8,
kSriAccountFieldNumber = 3,
kSriPhoneFieldNumber = 5,
kSriCodeFieldNumber = 1,
@@ -331,6 +332,31 @@ class sri PROTOBUF_FINAL :
std::string* _internal_mutable_sri_token();
public:
// string data = 8;
void clear_data();
const std::string& data() const;
void set_data(const std::string& value);
void set_data(std::string&& value);
void set_data(const char* value);
void set_data(const char* value, size_t size);
std::string* mutable_data();
std::string* release_data();
void set_allocated_data(std::string* data);
GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
" string fields are deprecated and will be removed in a"
" future release.")
std::string* unsafe_arena_release_data();
GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
" string fields are deprecated and will be removed in a"
" future release.")
void unsafe_arena_set_allocated_data(
std::string* data);
private:
const std::string& _internal_data() const;
void _internal_set_data(const std::string& value);
std::string* _internal_mutable_data();
public:
// uint64 sri_account = 3;
void clear_sri_account();
::PROTOBUF_NAMESPACE_ID::uint64 sri_account() const;
@@ -369,6 +395,7 @@ class sri PROTOBUF_FINAL :
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr sri_email_;
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr sri_msg_;
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr sri_token_;
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_;
::PROTOBUF_NAMESPACE_ID::uint64 sri_account_;
::PROTOBUF_NAMESPACE_ID::uint64 sri_phone_;
int sri_code_;
@@ -770,6 +797,87 @@ inline void sri::unsafe_arena_set_allocated_sri_token(
// @@protoc_insertion_point(field_unsafe_arena_set_allocated:mp.sri.sri_token)
}
// string data = 8;
inline void sri::clear_data() {
data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& sri::data() const {
// @@protoc_insertion_point(field_get:mp.sri.data)
return _internal_data();
}
inline void sri::set_data(const std::string& value) {
_internal_set_data(value);
// @@protoc_insertion_point(field_set:mp.sri.data)
}
inline std::string* sri::mutable_data() {
// @@protoc_insertion_point(field_mutable:mp.sri.data)
return _internal_mutable_data();
}
inline const std::string& sri::_internal_data() const {
return data_.Get();
}
inline void sri::_internal_set_data(const std::string& value) {
data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void sri::set_data(std::string&& value) {
data_.Set(
&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
// @@protoc_insertion_point(field_set_rvalue:mp.sri.data)
}
inline void sri::set_data(const char* value) {
GOOGLE_DCHECK(value != nullptr);
data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
GetArena());
// @@protoc_insertion_point(field_set_char:mp.sri.data)
}
inline void sri::set_data(const char* value,
size_t size) {
data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
reinterpret_cast<const char*>(value), size), GetArena());
// @@protoc_insertion_point(field_set_pointer:mp.sri.data)
}
inline std::string* sri::_internal_mutable_data() {
return data_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* sri::release_data() {
// @@protoc_insertion_point(field_release:mp.sri.data)
return data_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void sri::set_allocated_data(std::string* data) {
if (data != nullptr) {
} else {
}
data_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data,
GetArena());
// @@protoc_insertion_point(field_set_allocated:mp.sri.data)
}
inline std::string* sri::unsafe_arena_release_data() {
// @@protoc_insertion_point(field_unsafe_arena_release:mp.sri.data)
GOOGLE_DCHECK(GetArena() != nullptr);
return data_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
GetArena());
}
inline void sri::unsafe_arena_set_allocated_data(
std::string* data) {
GOOGLE_DCHECK(GetArena() != nullptr);
if (data != nullptr) {
} else {
}
data_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
data, GetArena());
// @@protoc_insertion_point(field_unsafe_arena_set_allocated:mp.sri.data)
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif // __GNUC__

View File

@@ -6,11 +6,13 @@ enum MP_TYPE {
MP_REQUEST_LOGIN = 0;
MP_REQUEST_LOGOUT = 1;
MP_REQUEST_REGISTER = 2;
MP_REQUEST_USER_FRIENDS = 3;
// 20 - 39
MP_RESPONSE_LOGIN = 20;
MP_RESPONSE_LOGOUT = 21;
MP_RESPONSE_REGISTER = 22;
MP_RESPONSE_USER_FRIENDS = 23;
// 40 - 59
MP_REQUEST_PE_CODE = 40; // 请求验证码

View File

@@ -36,4 +36,5 @@ message sri {
uint64 sri_phone = 5;
string sri_msg = 6;
string sri_token = 7;
string data = 8;
}

View File

@@ -14,9 +14,11 @@ include_directories(${CMAKE_SOURCE_DIR}/include/rapidjson)
include_directories(${CMAKE_SOURCE_DIR}/include/mysql++)
include_directories(${CMAKE_SOURCE_DIR}/include/mysql++/mysql)
include_directories(${CMAKE_SOURCE_DIR}/include/smtp)
include_directories(${CMAKE_SOURCE_DIR}/MDB/imm_mysqldb)
include_directories(${CMAKE_SOURCE_DIR}/MP)
include_directories(${CMAKE_SOURCE_DIR}/MS/works)
include_directories(${CMAKE_SOURCE_DIR}/MS/smtp)
message("CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/include/libevent")
link_directories(${CMAKE_SOURCE_DIR}/lib/libevent)

View File

@@ -28,6 +28,7 @@ mapping::mapping() {
// 用户添加好友群组类操作
auto improve = new IMProveController();
map.insert({mp::MP_REQUEST_IM_ADD, improve});
map.insert({mp::MP_REQUEST_USER_FRIENDS, improve});
}
}

View File

@@ -5,6 +5,13 @@
#include "IMProveController.h"
void IMProveController::run(std::shared_ptr<agreement_request> request, std::shared_ptr<agreement_response> response) {
auto sri = service.imProve(&request->m_body);
response->set(sri, request->m_bev);
// 添加好友
if (request->m_mph->mp_type() == mp::MP_REQUEST_IM_ADD) {
auto sri = service.addFriendImProve(&request->m_body);
response->set(sri, request->m_bev);
}
// 取用户好友列表
else if(request->m_mph->mp_type() == mp::MP_REQUEST_USER_FRIENDS) {
}
}

View File

@@ -20,7 +20,7 @@ std::tuple<bool, PoUser> UserDB::select_user(uint64_t account, const std::string
query.storein(user);
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return {!user.empty(), user.empty() ? PoUser() :
PoUser(user[0].account,
user[0].phone, user[0].email,
@@ -45,7 +45,7 @@ bool UserDB::insert_user(uint64_t account, const std::string &password, const st
auto ret = query.exec();
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return ret;
}
@@ -65,7 +65,7 @@ bool UserDB::insert_user_friends(uint64_t account, uint64_t friends) {
auto ret = q.exec();
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return ret;
}
@@ -79,7 +79,7 @@ bool UserDB::remove_user(uint64_t account) {
auto ret = query.exec();
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return ret;
}
@@ -99,7 +99,7 @@ bool UserDB::test(uint64_t account) {
auto ret = q.exec();
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return ret;
}
@@ -117,7 +117,7 @@ std::optional<uint64_t> UserDB::fetch_account() {
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return std::strtol(ret[0][0], nullptr,0);
}
@@ -131,7 +131,7 @@ bool UserDB::remove_pool_account(uint64_t account) {
auto ret = query.exec();
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return ret;
}
@@ -146,7 +146,7 @@ bool UserDB::bind_email(uint64_t account, const std::string &email) {
auto ret = query.exec();
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return ret;
}
@@ -160,7 +160,7 @@ bool UserDB::bind_phone(uint64_t account, const std::string &phone) {
auto ret = query.exec();
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return ret;
}

View File

@@ -16,7 +16,7 @@ char UserFriendsDB::select_add_type(uint64_t account) {
auto ret = query.store(account)[0][0][0]; // 因为 account 唯一 所以结果 至多一个
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return ret;
}
@@ -24,23 +24,34 @@ char UserFriendsDB::select_add_type(uint64_t account) {
/// friends {
/// uid info { }
/// }
bool UserFriendsDB::add_friends(uint64_t account, uint64_t friends) {
std::tuple<bool, std::string> UserFriendsDB::add_friends(uint64_t account, uint64_t friends) {
conn = LinkDB::safe_grab();
auto query = conn->query("update im_user_friends set friends="
auto q = conn->query("select username from im_user where account=%1:account");
q.template_defaults[1] = friends;
q.parse();
auto username = q.store();
if (username.num_rows() < 1) {
LinkDB::release(conn);
return {false, "未查询到账户"};
}
std::string name = username[0][0].c_str();
auto query = conn->query("update im_user_friends set friends ="
"JSON_SET(friends, '$.\"%2:friends\"', "
"JSON_OBJECT('belong_grouping', 1, 'add_time', 10000, 'add_source', 1)"
"JSON_OBJECT('username', '%3:username', 'belong_grouping', 1, 'add_time', 10000, 'add_source', 1)"
")"
"where account=%1:account");
query.template_defaults[1] = account;
query.template_defaults[2] = friends;
query.template_defaults[3] = name.c_str();
query.parse();
auto ret = query.exec();
// 放回链接
// LinkDB::release(conn);
return ret;
LinkDB::release(conn);
return {ret, "添加失败"};
}
void UserFriendsDB::insert_friends_to_be_added(uint64_t account, uint64_t friends) {
@@ -48,10 +59,10 @@ void UserFriendsDB::insert_friends_to_be_added(uint64_t account, uint64_t friend
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
}
std::optional<rapidjson::Document> UserFriendsDB::select_friends_all(uint64_t account) {
std::optional<std::string> UserFriendsDB::select_friends_all(uint64_t account) {
conn = LinkDB::safe_grab();
auto q = conn->query("select friends from im_user_friends where account=%0:account");
q.parse();
@@ -64,14 +75,28 @@ std::optional<rapidjson::Document> UserFriendsDB::select_friends_all(uint64_t ac
std::string friends;
ret[0][0].to_string(friends);
rapidjson::Document document;
document.Parse(friends.c_str());
// for (auto mem = document.MemberBegin(); mem != document.MemberEnd(); ++mem) {
// mem->name;
// }
// 放回链接
// LinkDB::release(conn);
return document;
LinkDB::release(conn);
return friends;
}
std::optional<rapidjson::Document> UserFriendsDB::select_friends_all_json(uint64_t account) {
auto temp = select_friends_all(account);
rapidjson::Document document;
if (temp.has_value()) {
document.Parse(temp.value().c_str());
return document;
} else {
return std::nullopt;
}
}
std::optional<rapidjson::Document>
UserFriendsDB::select_friends_info(uint64_t account, uint64_t friends) {
conn = LinkDB::safe_grab();
@@ -101,7 +126,7 @@ UserFriendsDB::select_friends_info(uint64_t account, uint64_t friends) {
// 放回链接
// LinkDB::release(conn);
LinkDB::release(conn);
return document;
}
@@ -114,3 +139,4 @@ UserFriendsDB::select_friends_info(uint64_t account, uint64_t friends) {

View File

@@ -14,10 +14,16 @@
class UserFriendsDB : public DB {
public:
// 查询添加类型
char select_add_type(uint64_t account);
bool add_friends(uint64_t source, uint64_t target);
std::optional<rapidjson::Document> select_friends_all(uint64_t account);
// 添加好友
std::tuple<bool, std::string> add_friends(uint64_t source, uint64_t target);
// 查询全部好友 好友列表
std::optional<std::string> select_friends_all(uint64_t account);
std::optional<rapidjson::Document> select_friends_all_json(uint64_t account);
// 查询好友信息
std::optional<rapidjson::Document> select_friends_info(uint64_t account, uint64_t friends);
// 添加待审核好友列表
void insert_friends_to_be_added(uint64_t account, uint64_t friends);
};

View File

@@ -14,21 +14,23 @@ LinkDB::~LinkDB() {
ConnectionPool* LinkDB::pool = nullptr;
mysqlpp::Connection* LinkDB::safe_grab() {
static std::vector<mysqlpp::Connection*> link;
static std::atomic<int> index;
// static std::vector<mysqlpp::Connection*> link;
// static std::atomic<int> index;
if (pool == nullptr) {
pool = new ConnectionPool("124.221.152.192", "ims", "IMS", "WimTFC8N58kznx2k");
index = -1;
for (int i = 0; i < 30; ++i) {
link.push_back(pool->safe_grab());
}
// index = -1;
// for (int i = 0; i < 30; ++i) {
// link.push_back(pool->safe_grab());
// }
}
++index;
if (index >= link.size()) {
index = 0;
}
return link[index];
// ++index;
// if (index >= link.size()) {
// index = 0;
// }
// return link[index];
return pool->safe_grab();
}
void LinkDB::release(mysqlpp::Connection *connection) {

View File

@@ -8,6 +8,7 @@
#include <mysql++/connection.h>
#include "proto/mp.sri.pb.h"
#include "db/UserDB.h"
#include "document.h"
class Service {
public:
@@ -29,6 +30,14 @@ protected:
sri->clear_sri_token();
sri->clear_sri_username();
}
std::string SerializationVector(rapidjson::Document* document) {
uint64_t account;
for (auto mem = document->MemberBegin(); mem != document->MemberEnd(); ++mem) {
mem->name;
}
}
};
#endif //IM2_SERVICE_H

View File

@@ -7,7 +7,7 @@
UserFriendsService::~UserFriendsService() {}
// 好友群组 添加删除 任务组 决策接口
mp::sri *UserFriendsService::imProve(mp::body* body) {
mp::sri *UserFriendsService::addFriendImProve(mp::body* body) {
sri_clear();
if (body->target() == 0 || body->source() == 0) {
printf("请求数据有缺\n");
@@ -34,8 +34,8 @@ mp::sri *UserFriendsService::imProve(mp::body* body) {
}
void UserFriendsService::add_friends(mp::body *body) {
bool state1 = userFriendsDb.add_friends(body->source(), body->target());
bool state2 = userFriendsDb.add_friends(body->target(), body->source());
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_sri_code((mp::MP_SRI)(mp::MP_ADD_FRIENDS | mp::MP_ADD_FRIENDS_0));
sri->set_sri_msg("添加成功");
@@ -71,6 +71,23 @@ mp::sri* UserFriendsService::add_contact_person(mp::body *body) {
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_sri_msg("好友获取成功");
sri->set_sri_code(mp::);
return sri;
}

View File

@@ -15,7 +15,8 @@ public:
public:
// 唯一对开接口
mp::sri* imProve(mp::body* body);
mp::sri* addFriendImProve(mp::body* body);
mp::sri* FetchUserFriend(uint64_t account, const std::string& data);
private:
mp::sri* add_contact_person(mp::body* body);

View File

@@ -58,7 +58,6 @@ void UserService::login_fun(const std::string& account, const std::string& passw
printf("登陆失败\n");
sri->set_sri_msg("登陆失败!");
sri->set_sri_code(mp::MP_LOGIN_FAIL);
}
}
@@ -97,14 +96,12 @@ mp::sri *UserService::register_(mp::MP_SUB_TYPE subType, const std::string &phon
if (subType == mp::MP_REQUEST_REGISTER_EMAIL) {
// 将邮箱绑定到帐号上
state1 = userDb.bind_email(account.value(), phone_email);
sri->set_sri_email(phone_email);
sri->set_sri_code(mp::MP_REGISTER_SUCCESS_EMAIL);
}
// 手机号方式
else {
// 将手机绑定到帐号上
state1 = userDb.bind_phone(account.value(), phone_email);
sri->set_sri_phone(strtol(phone_email.c_str(), nullptr, 0));
sri->set_sri_code(mp::MP_REGISTER_SUCCESS_PHONE);
}
@@ -115,6 +112,8 @@ mp::sri *UserService::register_(mp::MP_SUB_TYPE subType, const std::string &phon
// 注册成功就将取出的号在号池内删除
userDb.remove_pool_account(account.value());
}
sri->set_sri_account(account.value());
}
}

View File

@@ -27,6 +27,8 @@ TEST(JSON, MYSQL_TYPE_JSON) {
TEST(add_friends, add_friends__Test) {
auto i = UserFriendsDB();
i.add_friends(2725096176, 783556037);
i.add_friends(2725096176, 2725096176);
i.add_friends(783556037, 783556037);
i.add_friends(783556037, 2725096176);
}
@@ -43,7 +45,7 @@ TEST(select_friends, select_friends_Test) {
TEST(select_friends_all, select_friends_Test) {
auto i = UserFriendsDB();
auto doc = i.select_friends_all(2725096176);
auto doc = i.select_friends_all_json(2725096176);
if (doc.has_value())
for (auto member = doc.value().MemberBegin(); member != doc.value().MemberEnd(); ++member) {
auto belong_grouping = member->value.GetObject().FindMember("belong_grouping");
@@ -98,3 +100,13 @@ TEST(UserDB_select_user, UserDB_Ues_Test) {
TEST(email_send, email_send__Test) {
send_email_def("2725096176@qq.com", "AAKXT4");
}
TEST(fecth_frinds, fecth_frinds_Test) {
auto i = UserFriendsDB();
auto document = i.select_friends_all_json(783556037);
if (document.has_value())
for (auto mem = document->MemberBegin(); mem != document->MemberEnd(); ++mem) {
printf("%s", mem->name.GetString());
}
}