smtp 合并到 MS 中
添加好友 取好友列表 略有修改 接下再来 要该包类型宏 备份一下
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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_)
|
||||
|
||||
@@ -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__
|
||||
|
||||
@@ -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; // 请求验证码
|
||||
|
||||
@@ -36,4 +36,5 @@ message sri {
|
||||
uint64 sri_phone = 5;
|
||||
string sri_msg = 6;
|
||||
string sri_token = 7;
|
||||
string data = 8;
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user