task.pb.go 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461
  1. package proto
  2. import (
  3. "bet24.com/log"
  4. "bet24.com/servers/micros/common"
  5. item "bet24.com/servers/micros/item_inventory/proto"
  6. "context"
  7. "github.com/smallnest/rpcx/client"
  8. )
  9. const ServiceName = "task"
  10. var consulAddr = common.Default_Consul_Addr
  11. func getClient() client.XClient {
  12. return common.GetClientPool().GetClient(ServiceName, consulAddr)
  13. }
  14. type Request struct {
  15. Name string
  16. UserId int
  17. Count int
  18. Scene int
  19. IsRefresh bool
  20. Tasks []int
  21. }
  22. type Response struct {
  23. Data string
  24. Success bool
  25. Items []item.ItemPack
  26. Scene int
  27. TaskId int
  28. }
  29. func SetConsulAddr(addr string) {
  30. consulAddr = addr
  31. }
  32. func SayHello(name string) string {
  33. xclient := getClient()
  34. //defer xclient.Close()
  35. args := &Request{
  36. Name: name,
  37. }
  38. reply := &Response{}
  39. err := xclient.Call(context.Background(), "SayHello", args, reply)
  40. if err != nil {
  41. log.Debug("task failed to call: %v", err)
  42. common.GetClientPool().RemoveClient(ServiceName)
  43. return ""
  44. }
  45. log.Debug("SayHello return %s", reply.Data)
  46. return reply.Data
  47. }
  48. func AddUser(userId int) {
  49. xclient := getClient()
  50. //defer xclient.Close()
  51. args := &Request{
  52. UserId: userId,
  53. }
  54. err := xclient.Call(context.Background(), "AddUser", args, nil)
  55. if err != nil {
  56. log.Debug("task failed to call: %v", err)
  57. common.GetClientPool().RemoveClient(ServiceName)
  58. }
  59. }
  60. func RemoveUser(userId int) {
  61. xclient := getClient()
  62. //defer xclient.Close()
  63. args := &Request{
  64. UserId: userId,
  65. }
  66. err := xclient.Call(context.Background(), "RemoveUser", args, nil)
  67. if err != nil {
  68. log.Debug("task failed to call: %v", err)
  69. common.GetClientPool().RemoveClient(ServiceName)
  70. }
  71. }
  72. type Response_Tasks struct {
  73. Tasks []*UserTask
  74. }
  75. func GetUserTasks(userId int) []*UserTask {
  76. xclient := getClient()
  77. //defer xclient.Close()
  78. args := &Request{
  79. UserId: userId,
  80. }
  81. reply := &Response_Tasks{}
  82. err := xclient.Call(context.Background(), "GetUserTasks", args, reply)
  83. if err != nil {
  84. log.Debug("task failed to call: %v", err)
  85. common.GetClientPool().RemoveClient(ServiceName)
  86. return nil
  87. }
  88. return reply.Tasks
  89. }
  90. type Request_Task struct {
  91. TaskId int
  92. }
  93. type Response_Task struct {
  94. Task *Task
  95. }
  96. func GetSysTask(taskId int) *Task {
  97. xclient := getClient()
  98. //defer xclient.Close()
  99. args := &Request_Task{
  100. TaskId: taskId,
  101. }
  102. reply := &Response_Task{}
  103. err := xclient.Call(context.Background(), "GetSysTask", args, reply)
  104. if err != nil {
  105. log.Debug("task failed to call: %v", err)
  106. common.GetClientPool().RemoveClient(ServiceName)
  107. return nil
  108. }
  109. return reply.Task
  110. }
  111. type Response_SysTasks struct {
  112. Tasks map[int]*Task
  113. }
  114. func GetSysTaskList() map[int]*Task {
  115. xclient := getClient()
  116. //defer xclient.Close()
  117. args := &Request{}
  118. reply := &Response_SysTasks{}
  119. err := xclient.Call(context.Background(), "GetSysTaskList", args, reply)
  120. if err != nil {
  121. log.Debug("task failed to call: %v", err)
  122. common.GetClientPool().RemoveClient(ServiceName)
  123. return nil
  124. }
  125. return reply.Tasks
  126. }
  127. type Request_Action struct {
  128. UserId int
  129. Action int
  130. Progress int
  131. Param TaskScope
  132. }
  133. func DoTaskAction(userId int, action, progress int, param TaskScope) (bool, int) {
  134. if userId == 0 {
  135. return false, 0
  136. }
  137. xclient := getClient()
  138. //defer xclient.Close()
  139. args := &Request_Action{
  140. UserId: userId,
  141. Action: action,
  142. Progress: progress,
  143. Param: param,
  144. }
  145. reply := &Response{}
  146. err := xclient.Call(context.Background(), "DoTaskAction", args, reply)
  147. if err != nil {
  148. log.Debug("task failed to call: %v", err)
  149. common.GetClientPool().RemoveClient(ServiceName)
  150. return false, 0
  151. }
  152. return reply.Success, reply.TaskId
  153. }
  154. func IsActionTaskActive(userId int, action int, gameName string) bool {
  155. if userId == 0 {
  156. return false
  157. }
  158. xclient := getClient()
  159. args := &Request_Action{
  160. UserId: userId,
  161. Action: action,
  162. Param: TaskScope{GameName: gameName},
  163. }
  164. reply := &Response{}
  165. err := xclient.Call(context.Background(), "IsActionTaskActive", args, reply)
  166. if err != nil {
  167. log.Debug("task failed to call: %v", err)
  168. common.GetClientPool().RemoveClient(ServiceName)
  169. return false
  170. }
  171. return reply.Success
  172. }
  173. func RemoveTaskByAction(userId int, action int, gameName string) {
  174. if userId == 0 {
  175. return
  176. }
  177. xclient := getClient()
  178. //defer xclient.Close()
  179. args := &Request_Action{
  180. UserId: userId,
  181. Action: action,
  182. Param: TaskScope{GameName: gameName},
  183. }
  184. err := xclient.Call(context.Background(), "RemoveTaskByAction", args, nil)
  185. if err != nil {
  186. log.Debug("task failed to call: %v", err)
  187. common.GetClientPool().RemoveClient(ServiceName)
  188. }
  189. }
  190. type Request_Award struct {
  191. UserId int
  192. TaskId int
  193. }
  194. func AwardTask(userId int, taskId int) (bool, string) {
  195. xclient := getClient()
  196. //defer xclient.Close()
  197. args := &Request_Award{
  198. UserId: userId,
  199. TaskId: taskId,
  200. }
  201. reply := &Response{}
  202. err := xclient.Call(context.Background(), "AwardTask", args, reply)
  203. if err != nil {
  204. log.Debug("task failed to call: %v", err)
  205. common.GetClientPool().RemoveClient(ServiceName)
  206. return false, "rpc call failed"
  207. }
  208. return reply.Success, reply.Data
  209. }
  210. func AwardTaskWithItems(userId int, taskId int) string {
  211. xclient := getClient()
  212. //defer xclient.Close()
  213. args := &Request_Award{
  214. UserId: userId,
  215. TaskId: taskId,
  216. }
  217. reply := &Response{}
  218. err := xclient.Call(context.Background(), "AwardTaskWithItems", args, reply)
  219. if err != nil {
  220. log.Debug("AwardTaskWithItems task failed to call: %v", err)
  221. common.GetClientPool().RemoveClient(ServiceName)
  222. return ""
  223. }
  224. return reply.Data
  225. }
  226. func IsTriggerPreAddiction(userId int) bool {
  227. xclient := getClient()
  228. //defer xclient.Close()
  229. args := &Request{
  230. UserId: userId,
  231. }
  232. reply := &Response{}
  233. err := xclient.Call(context.Background(), "IsTriggerPreAddiction", args, reply)
  234. if err != nil {
  235. log.Debug("task failed to call: %v", err)
  236. common.GetClientPool().RemoveClient(ServiceName)
  237. return false
  238. }
  239. return reply.Success
  240. }
  241. func RefreshTask(userId int) {
  242. xclient := getClient()
  243. //defer xclient.Close()
  244. args := &Request{
  245. UserId: userId,
  246. }
  247. err := xclient.Call(context.Background(), "RefreshTask", args, nil)
  248. if err != nil {
  249. log.Debug("task failed to call: %v", err)
  250. common.GetClientPool().RemoveClient(ServiceName)
  251. return
  252. }
  253. }
  254. func GetTaskTipScene(userId int) int {
  255. xclient := getClient()
  256. //defer xclient.Close()
  257. args := &Request{
  258. UserId: userId,
  259. }
  260. reply := &Response{}
  261. err := xclient.Call(context.Background(), "GetTaskTipScene", args, reply)
  262. if err != nil {
  263. log.Debug("task failed to call: %v", err)
  264. common.GetClientPool().RemoveClient(ServiceName)
  265. }
  266. return reply.Scene
  267. }
  268. func AwardAllTask(userId int) []item.ItemPack {
  269. xclient := getClient()
  270. args := &Request{
  271. UserId: userId,
  272. }
  273. reply := &Response{}
  274. err := xclient.Call(context.Background(), "AwardAllTask", args, reply)
  275. if err != nil {
  276. log.Debug("task.AwardAllTask failed to call: %v", err)
  277. common.GetClientPool().RemoveClient(ServiceName)
  278. return nil
  279. }
  280. return reply.Items
  281. }
  282. func CreateRandomTasksByScene(userId int, scene int, count int, isRefresh bool) {
  283. xclient := getClient()
  284. args := &Request{
  285. UserId: userId,
  286. Scene: scene,
  287. Count: count,
  288. IsRefresh: isRefresh,
  289. }
  290. err := xclient.Call(context.Background(), "CreateRandomTasksByScene", args, nil)
  291. if err != nil {
  292. log.Debug("task.CreateRandomTasksByScene failed to call: %v", err)
  293. common.GetClientPool().RemoveClient(ServiceName)
  294. }
  295. }
  296. func IsAllTaskFinished(userId int, scene int) bool {
  297. xclient := getClient()
  298. args := &Request{
  299. UserId: userId,
  300. Scene: scene,
  301. }
  302. reply := &Response{}
  303. err := xclient.Call(context.Background(), "IsAllTaskFinished", args, reply)
  304. if err != nil {
  305. log.Debug("task.IsAllTaskFinished failed to call: %v", err)
  306. common.GetClientPool().RemoveClient(ServiceName)
  307. return false
  308. }
  309. return reply.Success
  310. }
  311. func CreateUserTasks(userId int, taskIds []int) bool {
  312. xclient := getClient()
  313. args := &Request{
  314. UserId: userId,
  315. Tasks: taskIds,
  316. }
  317. reply := &Response{}
  318. err := xclient.Call(context.Background(), "CreateUserTasks", args, reply)
  319. if err != nil {
  320. log.Debug("task.CreateUserTasks failed to call: %v", err)
  321. common.GetClientPool().RemoveClient(ServiceName)
  322. return false
  323. }
  324. return reply.Success
  325. }
  326. func IsTasksFinished(userId int, taskIds []int) bool {
  327. xclient := getClient()
  328. args := &Request{
  329. UserId: userId,
  330. Tasks: taskIds,
  331. }
  332. reply := &Response{}
  333. err := xclient.Call(context.Background(), "IsTasksFinished", args, reply)
  334. if err != nil {
  335. log.Debug("task.IsTasksFinished failed to call: %v", err)
  336. common.GetClientPool().RemoveClient(ServiceName)
  337. return false
  338. }
  339. return reply.Success
  340. }
  341. func GetTasksRewards(taskIds []int) []item.ItemPack {
  342. xclient := getClient()
  343. args := &Request{
  344. Tasks: taskIds,
  345. }
  346. reply := &Response{}
  347. err := xclient.Call(context.Background(), "GetTasksRewards", args, reply)
  348. if err != nil {
  349. log.Debug("task.GetTasksRewards failed to call: %v", err)
  350. common.GetClientPool().RemoveClient(ServiceName)
  351. return nil
  352. }
  353. return reply.Items
  354. }
  355. func ClaimTaskRewards(userId int, taskIds []int) []item.ItemPack {
  356. xclient := getClient()
  357. args := &Request{
  358. Tasks: taskIds,
  359. UserId: userId,
  360. }
  361. reply := &Response{}
  362. err := xclient.Call(context.Background(), "ClaimTaskRewards", args, reply)
  363. if err != nil {
  364. log.Debug("task.ClaimTaskRewards failed to call: %v", err)
  365. common.GetClientPool().RemoveClient(ServiceName)
  366. return nil
  367. }
  368. return reply.Items
  369. }