user.proto 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622
  1. syntax = "proto3";
  2. package api.user;
  3. import "google/api/annotations.proto";
  4. //import "google/protobuf/struct.proto";
  5. import "google/protobuf/empty.proto";
  6. import "google/protobuf/struct.proto";
  7. import "api/chat/chat.proto";
  8. import "api/common/common.proto";
  9. import "api/statistics/statistics.proto";
  10. option go_package = "git.ikuban.com/server/pw-protobuf/api/user;user";
  11. option java_multiple_files = true;
  12. option java_package = "api.user";
  13. service User {
  14. // 1、获取用户详情
  15. rpc GetUserInfo (google.protobuf.Empty) returns (UserInfo){
  16. option (google.api.http) = {
  17. post: "/api/user/info",
  18. body:"*"
  19. };
  20. };
  21. // 2、用户发送验证码
  22. rpc SendPhoneCode (common.SendPhoneCodeRequest) returns (google.protobuf.Empty){
  23. option (google.api.http) = {
  24. post: "/api/user/code/send",
  25. body:"*"
  26. };
  27. };
  28. // 3、用户验证验证码
  29. rpc CheckPhoneCode (common.CheckPhoneCodeRequest) returns (google.protobuf.Empty){
  30. option (google.api.http) = {
  31. post: "/api/user/code/check",
  32. body:"*"
  33. };
  34. };
  35. // 4、更新用户信息
  36. rpc UpdateUserInformation (common.UpdateInformationRequest) returns (google.protobuf.Empty){
  37. option (google.api.http) = {
  38. post: "/api/user/update/information",
  39. body:"*"
  40. };
  41. };
  42. // 5、创建用户与某人的关联
  43. rpc CreateUserPersonRoom (common.CreateChatRoomParam) returns (chat.RoomReply){
  44. option (google.api.http) = {
  45. post: "/api/user/create/room",
  46. body:"*"
  47. };
  48. };
  49. // 6、获取用户的金额信息
  50. rpc GetUserBalance (google.protobuf.Empty) returns (UserBalance){
  51. option (google.api.http) = {
  52. post: "/api/user/balance",
  53. body:"*"
  54. };
  55. };
  56. // 7、用户获取ta的主页信息
  57. rpc UserGetHomeInfo (common.PersonParam) returns (common.HomeInfo){
  58. option (google.api.http) = {
  59. post: "/api/user/home",
  60. body:"*"
  61. };
  62. };
  63. // 8、用户获取ta的主页访客、关注数
  64. rpc UserGetPersonLikedAndLooked (common.PersonParam) returns (common.LookedAndLikedNum){
  65. option (google.api.http) = {
  66. post: "/api/user/num",
  67. body:"*"
  68. };
  69. };
  70. // 9、查看看过我的列表
  71. rpc FindLookList (common.ListPageRequest) returns (statistics.LookAndLikeListReply){
  72. option (google.api.http) = {
  73. post: "/api/user/list/look",
  74. body:"*"
  75. };
  76. };
  77. // 10、微信SDK初始化
  78. rpc WxConf (common.WxConfReq) returns (common.WxConfResponse){
  79. option (google.api.http) = {
  80. post: "/api/wx/jssdk/config",
  81. body:"*"
  82. };
  83. };
  84. // 11、获取标签列表
  85. rpc FindTagListBySex (common.SexReq) returns (common.TagListReply){
  86. option (google.api.http) = {
  87. post: "/api/user/list/tag",
  88. body:"*"
  89. };
  90. };
  91. // 12、获取在线列表
  92. rpc FindOnlineList (common.ListPage2Request) returns (common.RecommendPersonListReply){
  93. option (google.api.http) = {
  94. post: "/api/user/list/online",
  95. body:"*"
  96. };
  97. };
  98. // 13、七天内列表(当前会话)
  99. rpc FindWithinSevenDayRoomList (common.ListPageRequest) returns (UserFindChatListReply){
  100. option (google.api.http) = {
  101. post: "/api/user/list/chat/within",
  102. body:"*"
  103. };
  104. };
  105. // 14、七天外列表(更早的聊天记录)
  106. rpc FindOverSevenDayRoomList (common.ListPageRequest) returns (UserFindChatListReply){
  107. option (google.api.http) = {
  108. post: "/api/user/list/chat/over",
  109. body:"*"
  110. };
  111. };
  112. // 15、用户查询聊天记录
  113. rpc FindChatRecordList (common.FindChatRecordListRequest) returns (common.ChatRecordListReply){
  114. option (google.api.http) = {
  115. post: "/api/user/chat/record",
  116. body:"*"
  117. };
  118. };
  119. // 16、用户查询房间信息
  120. rpc FindChatRoomMsg (common.FindChatRoomMsgRequest) returns (common.ChatRoomMsg){
  121. option (google.api.http) = {
  122. post: "/api/user/chat/room/msg",
  123. body:"*"
  124. };
  125. };
  126. // 17、用户查询是否关注某人
  127. rpc GetUserIsLike (common.PersonParam) returns (common.IsLike){
  128. option (google.api.http) = {
  129. post: "/api/user/islike",
  130. body:"*"
  131. };
  132. };
  133. // 18、通过类型获取表情包列表
  134. rpc FindMemeByType (common.MemeRequest) returns (common.MemeList){
  135. option (google.api.http) = {
  136. post: "/api/user/find/meme/type",
  137. body:"*"
  138. };
  139. };
  140. // 19、获取对方性别的聊天话题
  141. rpc FindChatTopic (common.FindChatTopicRequest) returns (common.ChatTopicList){
  142. option (google.api.http) = {
  143. post: "/api/user/find/topic",
  144. body:"*"
  145. };
  146. };
  147. // 20、随机表情包
  148. rpc RandomMeme (common.RandomNum) returns (common.CommonTextList){
  149. option (google.api.http) = {
  150. post: "/api/user/find/meme/random",
  151. body:"*"
  152. };
  153. };
  154. // 21、随机打招呼
  155. rpc RandomSwiftMessage (common.RandomNumAndSex) returns (common.CommonTextList){
  156. option (google.api.http) = {
  157. post: "/api/user/find/topic/random",
  158. body:"*"
  159. };
  160. };
  161. // 22、表情包分类名
  162. rpc FindMemeTitle (google.protobuf.Empty) returns (common.MemeTitleList){
  163. option (google.api.http) = {
  164. post: "/api/user/find/meme/title",
  165. body:"*"
  166. };
  167. };
  168. // 23、用户获取聊天对象的资料卡片
  169. rpc UserGetChatCard(common.PersonParam) returns (common.ChatCardInfo){
  170. option (google.api.http) = {
  171. post: "/api/user/chat/card",
  172. body:"*"
  173. };
  174. };
  175. // 24、聊天话题分类名
  176. rpc FindChatTopicTitle (google.protobuf.Empty) returns (common.MemeTitleList){
  177. option (google.api.http) = {
  178. post: "/api/user/find/chat/title",
  179. body:"*"
  180. };
  181. };
  182. // 25、用户关注某人
  183. rpc UserLike(common.PersonParam) returns (google.protobuf.Empty){
  184. option (google.api.http) = {
  185. post: "/api/user/like",
  186. body:"*"
  187. };
  188. };
  189. // 26、用户取关某人
  190. rpc UserUnLike(common.PersonParam) returns (google.protobuf.Empty){
  191. option (google.api.http) = {
  192. post: "/api/user/unlike",
  193. body:"*"
  194. };
  195. };
  196. // 27、举报某人
  197. rpc Report (common.ReportChatRequest) returns (google.protobuf.Empty){
  198. option (google.api.http) = {
  199. post: "/api/user/report",
  200. body:"*"
  201. };
  202. };
  203. // 28、超过七天的头像列表
  204. rpc FindOverSevenDayAvatar (google.protobuf.Empty) returns (common.FindOverSevenDayAvatarReply){
  205. option (google.api.http) = {
  206. post: "/api/user/over/avatar/list",
  207. body:"*"
  208. };
  209. };
  210. // 29、更新上次访问的小纸条
  211. rpc UpdateLastScripID (common.UpdateLastScripIDRequest) returns (google.protobuf.Empty){
  212. option (google.api.http) = {
  213. post: "/api/user/scrip/last/update",
  214. body:"*"
  215. };
  216. };
  217. // 30、创建纸条
  218. rpc CreateScrip (CreateScripRequest) returns (common.ScripID){
  219. option (google.api.http) = {
  220. post: "/api/user/scrip/create",
  221. body:"*"
  222. };
  223. };
  224. // 31、删除纸条
  225. rpc DeleteScrip (DeleteScripRequest) returns (google.protobuf.Empty){
  226. option (google.api.http) = {
  227. post: "/api/user/scrip/delete",
  228. body:"*"
  229. };
  230. };
  231. // 32、查询自己的小纸条
  232. rpc FindMyScrip (UserFindScripRequest) returns (common.ScripReply){
  233. option (google.api.http) = {
  234. post: "/api/user/scrip/find/self",
  235. body:"*"
  236. };
  237. };
  238. // 33、查询别人的小纸条
  239. rpc FindOtherScrip (common.FindScripRequest) returns (common.ScripReply){
  240. option (google.api.http) = {
  241. post: "/api/user/scrip/find/other",
  242. body:"*"
  243. };
  244. };
  245. // 34、查询随机纸条列表
  246. rpc FindRecommendScrip (UserFindScripRequest) returns (common.ScripReply){
  247. option (google.api.http) = {
  248. post: "/api/user/scrip/find/recommend",
  249. body:"*"
  250. };
  251. };
  252. // 35、用户查看纸条
  253. rpc PersonLookScrip (PersonLookScripRequest) returns (google.protobuf.Empty){
  254. option (google.api.http) = {
  255. post: "/api/user/scrip/look",
  256. body:"*"
  257. };
  258. };
  259. // 36、用户点击回看
  260. rpc PersonClickLookBack (google.protobuf.Empty) returns (common.ScripInfo){
  261. option (google.api.http) = {
  262. post: "/api/user/scrip/look/back",
  263. body:"*"
  264. };
  265. };
  266. // 37、用户回复小纸条
  267. rpc PersonReplyScrip (ReplyScripRequest) returns (common.ChatRecordInfo){
  268. option (google.api.http) = {
  269. post: "/api/user/scrip/reply",
  270. body:"*"
  271. };
  272. };
  273. // 38、用户删除房间
  274. rpc UserDeleteChat (common.RoomIDRequest) returns (google.protobuf.Empty){
  275. option (google.api.http) = {
  276. post: "/api/user/chat/delete",
  277. body:"*"
  278. };
  279. };
  280. // ---还未共用---
  281. // 用户拉黑某人
  282. rpc UserSetBlackChat (common.RoomIDRequest) returns (google.protobuf.Empty){
  283. option (google.api.http) = {
  284. post: "/api/user/set/black",
  285. body:"*"
  286. };
  287. };
  288. // ---用户专用---
  289. // 检查用户是否与接待员关联
  290. rpc CheckUserPartnerIsRelationship (common.PartnerIDParam) returns (chat.CheckUserPartnerIsRelationshipReply){
  291. option (google.api.http) = {
  292. post: "/api/user/check/relationship",
  293. body:"*"
  294. };
  295. };
  296. // 获取接待员的确认通过页面信息
  297. rpc GetPartnerCircleInfo (KeyRequest) returns (common.AddFriendMessageInfo){
  298. option (google.api.http) = {
  299. post: "/api/user/circle/info",
  300. body:"*"
  301. };
  302. };
  303. // 查看我喜欢的列表
  304. rpc FindLikeList (common.ListPageRequest) returns (statistics.LookAndLikeListReply){
  305. option (google.api.http) = {
  306. post: "/api/user/list/like",
  307. body:"*"
  308. };
  309. };
  310. // 查看喜欢我的列表
  311. rpc FindLikedList (common.ListPageRequest) returns (statistics.LookAndLikeListReply){
  312. option (google.api.http) = {
  313. post: "/api/user/list/liked",
  314. body:"*"
  315. };
  316. };
  317. // 获取用户的访客数以及关注数
  318. rpc GetLookAndLikeStatisticsMessage (google.protobuf.Empty) returns (statistics.LookAndLikeMessageReply){
  319. option (google.api.http) = {
  320. post: "/api/user/num/like_look",
  321. body:"*"
  322. };
  323. };
  324. // 获取用户访问数详情
  325. rpc GetUserLookNum (google.protobuf.Empty) returns (statistics.LookMessageReply){
  326. option (google.api.http) = {
  327. post: "/api/user/look/num",
  328. body:"*"
  329. };
  330. };
  331. // 用户完善资料
  332. rpc UserFinishInformation (google.protobuf.Empty) returns (google.protobuf.Empty){
  333. option (google.api.http) = {
  334. post: "/api/user/information/finish",
  335. body:"*"
  336. };
  337. };
  338. // 用户完善情况
  339. rpc UserInformationStatus (google.protobuf.Empty) returns (InformationStatus){
  340. option (google.api.http) = {
  341. post: "/api/user/information/status",
  342. body:"*"
  343. };
  344. };
  345. // 用户获取完善资料奖励
  346. rpc UserGetInformationAward(google.protobuf.Empty) returns (google.protobuf.Empty){
  347. option (google.api.http) = {
  348. post: "/api/user/information/award",
  349. body:"*"
  350. };
  351. };
  352. // 解锁"看过我的"的记录
  353. rpc UnlockLookRecord (common.PersonParam) returns (google.protobuf.Empty){
  354. option (google.api.http) = {
  355. post: "/api/user/look/unlock",
  356. body:"*"
  357. };
  358. };
  359. // 用户充值
  360. rpc UserRecharge (UserRechargeRequest) returns (PayInfo){
  361. option (google.api.http) = {
  362. post: "/api/user/recharge",
  363. body:"*"
  364. };
  365. };
  366. // 充值套餐列表
  367. rpc FindRechargeList (google.protobuf.Empty) returns (RechargeList){
  368. option (google.api.http) = {
  369. post: "/api/user/recharge/list",
  370. body:"*"
  371. };
  372. };
  373. // 用户充值记录列表
  374. rpc FindPayList (FindPayOrderListRequest) returns (PayOrderList){
  375. option (google.api.http) = {
  376. post: "/api/user/pay/list",
  377. body:"*"
  378. };
  379. };
  380. // 查询推荐人的列表
  381. rpc FindRecommendPersonList (google.protobuf.Empty) returns (common.RecommendPersonListReply){
  382. option (google.api.http) = {
  383. post: "/api/user/list/recommend",
  384. body:"*"
  385. };
  386. };
  387. // 获取匹配的头像数组以及数量
  388. rpc FindMatchingAvatarAndNum (google.protobuf.Empty) returns (FindMatchingAvatarAndNumReply){
  389. option (google.api.http) = {
  390. post: "/api/user/matching/message",
  391. body:"*"
  392. };
  393. };
  394. // 获取假弹窗
  395. rpc GetWindowInfo (google.protobuf.Empty) returns (chat.WindowInfo){
  396. option (google.api.http) = {
  397. post: "/api/user/chat/window/get",
  398. body:"*"
  399. };
  400. };
  401. // 用户的每日免费数
  402. rpc GetUserFreeNum (google.protobuf.Empty) returns (UserFreeNum){
  403. option (google.api.http) = {
  404. post: "/api/user/free/num",
  405. body:"*"
  406. };
  407. };
  408. // 随机速配
  409. rpc GetRandomMatching (common.SexReq) returns (chat.GetRandomMatchingReply){
  410. option (google.api.http) = {
  411. post: "/api/user/random/matching",
  412. body:"*"
  413. };
  414. };
  415. // 解锁语音扣费
  416. rpc UnlockVoice (common.RoomIDRequest) returns (google.protobuf.Empty){
  417. option (google.api.http) = {
  418. post: "/api/user/unlock/voice",
  419. body:"*"
  420. };
  421. };
  422. // 解锁图片扣费
  423. rpc UnlockPicture (common.RoomIDRequest) returns (google.protobuf.Empty){
  424. option (google.api.http) = {
  425. post: "/api/user/unlock/picture",
  426. body:"*"
  427. };
  428. };
  429. // 更新用户注册状态
  430. rpc UpdateUserIsRegister (google.protobuf.Empty) returns (google.protobuf.Empty){
  431. option (google.api.http) = {
  432. post: "/api/user/update/register",
  433. body:"*"
  434. };
  435. };
  436. // 创建用户与接待员的关联
  437. rpc CreateUserPartnerRoom (common.CreateChatRoomParam) returns (chat.RoomReply){
  438. option (google.api.http) = {
  439. post: "/api/user/create/room/partner",
  440. body:"*"
  441. };
  442. };
  443. // ---rpc---
  444. // 1、获取用户详情
  445. rpc GetUserDBMsg (common.PersonIDParam) returns (common.PersonMsg);
  446. // 2、通过用户IDs查看用户信息列表
  447. rpc FindUserDBList (common.PersonIDList) returns (common.PersonDBReply);
  448. // 3、对内更新
  449. rpc UpdateLastScripIDDB (common.UpdateLastScripIDDBRequest) returns (google.protobuf.Empty){};
  450. // 4、查询推荐用户的数据
  451. rpc FindRecommendUserDBList (common.FindRecommendRequest) returns (common.PersonDBReply){};
  452. // 5、更新上次登录时间
  453. rpc UpdateUserLastLoginTime (common.PersonIDParam) returns (google.protobuf.Empty){};
  454. // 发送消息扣费
  455. rpc SendMsgReduceCredit (common.PersonParam) returns (google.protobuf.Empty);
  456. // 回看纸条扣费
  457. rpc LookBackScripReduceCredit (common.PersonParam) returns (google.protobuf.Empty);
  458. // 发纸条扣费
  459. rpc CreateScripReduceCredit (common.PersonParam) returns (google.protobuf.Empty);
  460. // 回纸条扣费
  461. rpc ReplyScripReduceCredit (common.PersonParam) returns (google.protobuf.Empty);
  462. // 匹配扣费
  463. rpc MatchingCredit (common.PersonParam) returns (google.protobuf.Empty);
  464. }
  465. message SendMsgReduceCreditReply{
  466. bool isSendReminder = 1;// 是否发送免费次数用完提醒
  467. }
  468. message UserFreeNum{
  469. int64 replyScripNum = 1;// 今日可免费回复纸条的次数
  470. int64 createScripNum = 2;// 今日免费创建纸条的次数
  471. int64 matchingNum = 3;// 今日免费匹配数
  472. }
  473. message ReplyScripRequest {
  474. int64 scripId = 4;// 小纸条ID
  475. common.Message message = 5;// 回复内容 只需要提供 回复小纸条的内容 或 回复小纸条的素材链接
  476. string msgType = 6;
  477. }
  478. message PersonLookScripRequest{
  479. int64 scripId = 3;// 纸条id
  480. }
  481. message UserFindScripRequest {
  482. int64 nextId = 3;
  483. int64 offset = 4;
  484. }
  485. message DeleteScripRequest {
  486. int64 scripId = 1;// 纸条id
  487. }
  488. message CreateScripRequest {
  489. string text = 1;// 纸条内容
  490. string pictureUrl = 2; // 纸条背景图
  491. }
  492. message FindMatchingAvatarAndNumReply{
  493. int64 num = 1;// 匹配人数
  494. repeated string list = 2;// 头像列表
  495. }
  496. message UserRechargeRequest{
  497. int64 RechargeTemplateId = 1;// 充值套餐ID
  498. }
  499. message RechargeList{
  500. repeated RechargeInfo list = 1;
  501. }
  502. message RechargeInfo{
  503. int64 id = 1;
  504. int64 price = 2;
  505. int64 credit = 3;// 积分
  506. int64 giveCredit = 4;// 赠送的积分
  507. string description = 5;// 描述
  508. string title = 6;// 标题
  509. }
  510. message InformationStatus{
  511. bool isFinishInformation = 1;//是否完善资料
  512. bool isGetAward = 2;// 是否领取奖励
  513. }
  514. message UserBalance{
  515. string id = 1; // id
  516. int64 credit = 2;// 积分
  517. }
  518. message UserFindChatListReply{
  519. repeated UserChatInfo list = 1;
  520. int64 nextId = 2;
  521. }
  522. message UserChatInfo{
  523. string personId = 2;// 用户ID
  524. int64 unreadNum = 3;// 用户未读数
  525. string lastContent = 4;// 上次发送内容
  526. int64 lastTime = 5;// 上次发送时间
  527. int64 likeability = 6;// 好感度
  528. int64 sex = 8;// 性别
  529. string avatarUrl = 9;// 头像
  530. string nickname = 10;// 昵称
  531. int64 age = 11;// 年龄
  532. int64 roomId = 12;// 房间号ID
  533. }
  534. message UserInfo{
  535. string id = 1; // id
  536. string nickname = 2;// 昵称
  537. string avatarUrl =3;// 头像链接
  538. int64 age = 4;// 年龄
  539. int64 sex = 5;// 性别
  540. string constellation = 6; // 星座
  541. int64 credit = 7;// 积分
  542. repeated int64 tagList = 8; // 标签
  543. string signature = 9; // 签名
  544. string introduceVoice = 10; // 介绍语音
  545. string province = 11;// 省
  546. string city = 12;// 市
  547. string area = 13;// 区
  548. int64 userId = 14;// 用户ID
  549. bool isBlack = 15;// 是否被封号
  550. bool isRegister = 16;// 是否注册
  551. }
  552. message KeyRequest{
  553. string key = 1;
  554. }
  555. message CreatePayRequest{
  556. int64 money = 1; // 支付金额 单位 分
  557. string type = 2; // 类型
  558. string openId = 3;
  559. string description = 4;
  560. string attach = 5;
  561. }
  562. message PayInfo{
  563. google.protobuf.Value payInfo = 1;
  564. int64 orderId = 2;
  565. }
  566. message PayOrderInfo{
  567. string userID = 1;
  568. int64 orderID = 2; // 订单的唯一ID
  569. int64 money = 3; // 支付金额 ,单位分
  570. string type = 4; // 类型
  571. string TransactionID = 5;
  572. string openId = 6;
  573. string description = 7;
  574. string status = 9;// 状态
  575. int64 payTime = 10;// 支付时间
  576. int64 createTime = 11;// 创建时间
  577. }
  578. message PayOrderList{
  579. repeated PayOrderInfo list = 1;
  580. int64 nextId = 2;
  581. }
  582. message FindPayOrderListRequest{
  583. int64 nextId = 1;
  584. int64 offset = 2;
  585. string status = 3;
  586. }
  587. message PayCallbackReply{
  588. bytes result = 1;
  589. }