mq.go 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985
  1. package request
  2. import (
  3. "encoding/base64"
  4. "errors"
  5. "mtp20access/global"
  6. "mtp20access/packet"
  7. "mtp20access/res/pb"
  8. "regexp"
  9. "strings"
  10. "time"
  11. "github.com/golang/protobuf/jsonpb"
  12. "github.com/golang/protobuf/proto"
  13. "go.uber.org/zap"
  14. )
  15. type MQBodyReq struct {
  16. FunCodeReq uint32 `json:"funCodeReq" binding:"required"` // 请求功能码
  17. FunCodeRsp uint32 `json:"funCodeRsp"` // 回复功能码
  18. IsEncrypted *bool `json:"isEncrypted" binding:"required"` // 是否加密
  19. Data string `json:"data" binding:"required"` // 请求数据
  20. }
  21. // GetProtoBytes 将客户端请求的数据转换成总线使用的Protobuf
  22. //
  23. // serialNumber 流水号
  24. func (r *MQBodyReq) GetProtoBytes(serialNumber *uint32, sessionId string) (bytes *[]byte, err error) {
  25. // 判断是否需要解密数据内容
  26. data := r.Data
  27. if *r.IsEncrypted {
  28. d, e := base64.StdEncoding.DecodeString(r.Data)
  29. if e != nil {
  30. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  31. err = errors.New("解密失败")
  32. return
  33. }
  34. d1 := d[4 : len(d)-8] // 解密时要去头尾
  35. p, e := packet.Decrypt(d1, packet.AESKey, true)
  36. if e != nil {
  37. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  38. err = errors.New("解密失败")
  39. return
  40. }
  41. data = string(p)
  42. }
  43. global.M2A_LOG.Info("[C->S]", zap.Any("req", r.FunCodeReq), zap.Any("SessionId", sessionId), zap.Any("data", data))
  44. // JSON -> Protobuf
  45. switch int(r.FunCodeReq) {
  46. case global.ModifyPwdReq:
  47. m := pb.ModifyPwdReq{}
  48. if err = r.reflect(data, &m); err != nil {
  49. return
  50. }
  51. if m.Header != nil {
  52. m.Header.RequestID = serialNumber
  53. } else {
  54. err = errors.New("请求信息序列化失败")
  55. return
  56. }
  57. if b, e := proto.Marshal(&m); e != nil {
  58. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  59. err = errors.New("请求信息序列化失败")
  60. return
  61. } else {
  62. bytes = &b
  63. }
  64. case global.UserReceiveInfoReq:
  65. m := pb.UserReceiveInfoReq{}
  66. if err = r.reflect(data, &m); err != nil {
  67. return
  68. }
  69. if m.Header != nil {
  70. m.Header.RequestID = serialNumber
  71. } else {
  72. err = errors.New("请求信息序列化失败")
  73. return
  74. }
  75. if b, e := proto.Marshal(&m); e != nil {
  76. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  77. err = errors.New("请求信息序列化失败")
  78. return
  79. } else {
  80. bytes = &b
  81. }
  82. case global.DelUserReceiveInfoReq:
  83. m := pb.DelUserReceiveInfoReq{}
  84. if err = r.reflect(data, &m); err != nil {
  85. return
  86. }
  87. if m.Header != nil {
  88. m.Header.RequestID = serialNumber
  89. } else {
  90. err = errors.New("请求信息序列化失败")
  91. return
  92. }
  93. if b, e := proto.Marshal(&m); e != nil {
  94. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  95. err = errors.New("请求信息序列化失败")
  96. return
  97. } else {
  98. bytes = &b
  99. }
  100. case global.UserReceiveIsDefaultReq:
  101. m := pb.UserReceiveIsDefaultReq{}
  102. if err = r.reflect(data, &m); err != nil {
  103. return
  104. }
  105. if m.Header != nil {
  106. m.Header.RequestID = serialNumber
  107. } else {
  108. err = errors.New("请求信息序列化失败")
  109. return
  110. }
  111. if b, e := proto.Marshal(&m); e != nil {
  112. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  113. err = errors.New("请求信息序列化失败")
  114. return
  115. } else {
  116. bytes = &b
  117. }
  118. case global.UserReceiptInfoReq:
  119. m := pb.UserReceiptInfoReq{}
  120. if err = r.reflect(data, &m); err != nil {
  121. return
  122. }
  123. if m.Header != nil {
  124. m.Header.RequestID = serialNumber
  125. } else {
  126. err = errors.New("请求信息序列化失败")
  127. return
  128. }
  129. if b, e := proto.Marshal(&m); e != nil {
  130. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  131. err = errors.New("请求信息序列化失败")
  132. return
  133. } else {
  134. bytes = &b
  135. }
  136. case global.DelUserReceiptInfoReq:
  137. m := pb.DelUserReceiptInfoReq{}
  138. if err = r.reflect(data, &m); err != nil {
  139. return
  140. }
  141. if m.Header != nil {
  142. m.Header.RequestID = serialNumber
  143. } else {
  144. err = errors.New("请求信息序列化失败")
  145. return
  146. }
  147. if b, e := proto.Marshal(&m); e != nil {
  148. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  149. err = errors.New("请求信息序列化失败")
  150. return
  151. } else {
  152. bytes = &b
  153. }
  154. case global.T2bBankSignReq:
  155. m := pb.T2BBankSignReq{}
  156. if err = r.reflectNoLong(data, &m); err != nil {
  157. return
  158. }
  159. if m.Header != nil {
  160. m.Header.RequestID = serialNumber
  161. } else {
  162. err = errors.New("请求信息序列化失败")
  163. return
  164. }
  165. if b, e := proto.Marshal(&m); e != nil {
  166. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  167. err = errors.New("请求信息序列化失败")
  168. return
  169. } else {
  170. bytes = &b
  171. }
  172. case global.T2bSMSVerificationCodeReq:
  173. m := pb.T2BSMSVerificationCodeReq{}
  174. if err = r.reflectNoLong(data, &m); err != nil {
  175. return
  176. }
  177. if m.Header != nil {
  178. m.Header.RequestID = serialNumber
  179. } else {
  180. err = errors.New("请求信息序列化失败")
  181. return
  182. }
  183. if b, e := proto.Marshal(&m); e != nil {
  184. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  185. err = errors.New("请求信息序列化失败")
  186. return
  187. } else {
  188. bytes = &b
  189. }
  190. case global.T2bBankCancelSignReq:
  191. m := pb.T2BBankCancelSignReq{}
  192. if err = r.reflect(data, &m); err != nil {
  193. return
  194. }
  195. if m.Header != nil {
  196. m.Header.RequestID = serialNumber
  197. } else {
  198. err = errors.New("请求信息序列化失败")
  199. return
  200. }
  201. if b, e := proto.Marshal(&m); e != nil {
  202. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  203. err = errors.New("请求信息序列化失败")
  204. return
  205. } else {
  206. bytes = &b
  207. }
  208. case global.T2bBankWithdrawReq:
  209. m := pb.T2BBankWithdrawReq{}
  210. if err = r.reflect(data, &m); err != nil {
  211. return
  212. }
  213. if m.Header != nil {
  214. m.Header.RequestID = serialNumber
  215. } else {
  216. err = errors.New("请求信息序列化失败")
  217. return
  218. }
  219. if b, e := proto.Marshal(&m); e != nil {
  220. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  221. err = errors.New("请求信息序列化失败")
  222. return
  223. } else {
  224. bytes = &b
  225. }
  226. case global.T2bBankDepositReq:
  227. m := pb.T2BBankDepositReq{}
  228. if err = r.reflect(data, &m); err != nil {
  229. return
  230. }
  231. if m.Header != nil {
  232. m.Header.RequestID = serialNumber
  233. } else {
  234. err = errors.New("请求信息序列化失败")
  235. return
  236. }
  237. if b, e := proto.Marshal(&m); e != nil {
  238. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  239. err = errors.New("请求信息序列化失败")
  240. return
  241. } else {
  242. bytes = &b
  243. }
  244. case global.WarehouseApplyReq:
  245. m := pb.WarehouseApplyReq{}
  246. if err = r.reflect(data, &m); err != nil {
  247. return
  248. }
  249. if m.Header != nil {
  250. m.Header.RequestID = serialNumber
  251. } else {
  252. err = errors.New("请求信息序列化失败")
  253. return
  254. }
  255. if b, e := proto.Marshal(&m); e != nil {
  256. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  257. err = errors.New("请求信息序列化失败")
  258. return
  259. } else {
  260. bytes = &b
  261. }
  262. case global.PerformanceContractedApplyReq:
  263. m := pb.PerformanceContractedApplyReq{}
  264. if err = r.reflect(data, &m); err != nil {
  265. return
  266. }
  267. if m.Header != nil {
  268. m.Header.RequestID = serialNumber
  269. } else {
  270. err = errors.New("请求信息序列化失败")
  271. return
  272. }
  273. if b, e := proto.Marshal(&m); e != nil {
  274. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  275. err = errors.New("请求信息序列化失败")
  276. return
  277. } else {
  278. bytes = &b
  279. }
  280. case global.PerformanceDelayApplyReq:
  281. m := pb.PerformanceDelayApplyReq{}
  282. if err = r.reflect(data, &m); err != nil {
  283. return
  284. }
  285. if m.Header != nil {
  286. m.Header.RequestID = serialNumber
  287. } else {
  288. err = errors.New("请求信息序列化失败")
  289. return
  290. }
  291. if b, e := proto.Marshal(&m); e != nil {
  292. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  293. err = errors.New("请求信息序列化失败")
  294. return
  295. } else {
  296. bytes = &b
  297. }
  298. case global.PerformanceManualConfirmReq:
  299. m := pb.PerformanceManualConfirmReq{}
  300. if err = r.reflect(data, &m); err != nil {
  301. return
  302. }
  303. if m.Header != nil {
  304. m.Header.RequestID = serialNumber
  305. } else {
  306. err = errors.New("请求信息序列化失败")
  307. return
  308. }
  309. if b, e := proto.Marshal(&m); e != nil {
  310. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  311. err = errors.New("请求信息序列化失败")
  312. return
  313. } else {
  314. bytes = &b
  315. }
  316. case global.PerformanceModifyContactReq:
  317. m := pb.PerformanceModifyContactReq{}
  318. if err = r.reflect(data, &m); err != nil {
  319. return
  320. }
  321. if m.Header != nil {
  322. m.Header.RequestID = serialNumber
  323. } else {
  324. err = errors.New("请求信息序列化失败")
  325. return
  326. }
  327. if b, e := proto.Marshal(&m); e != nil {
  328. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  329. err = errors.New("请求信息序列化失败")
  330. return
  331. } else {
  332. bytes = &b
  333. }
  334. case global.GoodsFavoriteOperateReq:
  335. m := pb.GoodsFavoriteOperateReq{}
  336. if err = r.reflect(data, &m); err != nil {
  337. return
  338. }
  339. if m.Header != nil {
  340. m.Header.RequestID = serialNumber
  341. } else {
  342. err = errors.New("请求信息序列化失败")
  343. return
  344. }
  345. if b, e := proto.Marshal(&m); e != nil {
  346. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  347. err = errors.New("请求信息序列化失败")
  348. return
  349. } else {
  350. bytes = &b
  351. }
  352. case global.ZSBuyOrderListingReq:
  353. m := pb.ZSBuyOrderListingReq{}
  354. if err = r.reflect(data, &m); err != nil {
  355. return
  356. }
  357. if m.Header != nil {
  358. m.Header.RequestID = serialNumber
  359. } else {
  360. err = errors.New("请求信息序列化失败")
  361. return
  362. }
  363. if b, e := proto.Marshal(&m); e != nil {
  364. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  365. err = errors.New("请求信息序列化失败")
  366. return
  367. } else {
  368. bytes = &b
  369. }
  370. case global.ZSSellOrderListingReq:
  371. m := pb.ZSSellOrderListingReq{}
  372. if err = r.reflect(data, &m); err != nil {
  373. return
  374. }
  375. if m.Header != nil {
  376. m.Header.RequestID = serialNumber
  377. } else {
  378. err = errors.New("请求信息序列化失败")
  379. return
  380. }
  381. if b, e := proto.Marshal(&m); e != nil {
  382. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  383. err = errors.New("请求信息序列化失败")
  384. return
  385. } else {
  386. bytes = &b
  387. }
  388. case global.ZSBuyOrderDestingReq:
  389. m := pb.ZSBuyOrderDestingReq{}
  390. if err = r.reflect(data, &m); err != nil {
  391. return
  392. }
  393. if m.Header != nil {
  394. m.Header.RequestID = serialNumber
  395. } else {
  396. err = errors.New("请求信息序列化失败")
  397. return
  398. }
  399. if b, e := proto.Marshal(&m); e != nil {
  400. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  401. err = errors.New("请求信息序列化失败")
  402. return
  403. } else {
  404. bytes = &b
  405. }
  406. case global.ZSSellOrderDestingApplyReq:
  407. m := pb.ZSSellOrderDestingApplyReq{}
  408. if err = r.reflect(data, &m); err != nil {
  409. return
  410. }
  411. if m.Header != nil {
  412. m.Header.RequestID = serialNumber
  413. } else {
  414. err = errors.New("请求信息序列化失败")
  415. return
  416. }
  417. if b, e := proto.Marshal(&m); e != nil {
  418. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  419. err = errors.New("请求信息序列化失败")
  420. return
  421. } else {
  422. bytes = &b
  423. }
  424. case global.ZSSellOrderDestingApplyOperateReq:
  425. m := pb.ZSSellOrderDestingApplyOperateReq{}
  426. if err = r.reflect(data, &m); err != nil {
  427. return
  428. }
  429. if m.Header != nil {
  430. m.Header.RequestID = serialNumber
  431. } else {
  432. err = errors.New("请求信息序列化失败")
  433. return
  434. }
  435. if b, e := proto.Marshal(&m); e != nil {
  436. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  437. err = errors.New("请求信息序列化失败")
  438. return
  439. } else {
  440. bytes = &b
  441. }
  442. case global.ZSBuyOrderDestingNegPriceReq:
  443. m := pb.ZSBuyOrderDestingNegPriceReq{}
  444. if err = r.reflect(data, &m); err != nil {
  445. return
  446. }
  447. if m.Header != nil {
  448. m.Header.RequestID = serialNumber
  449. } else {
  450. err = errors.New("请求信息序列化失败")
  451. return
  452. }
  453. if b, e := proto.Marshal(&m); e != nil {
  454. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  455. err = errors.New("请求信息序列化失败")
  456. return
  457. } else {
  458. bytes = &b
  459. }
  460. case global.ZSBuyOrderDestingNegPriceOperateReq:
  461. m := pb.ZSBuyOrderDestingNegPriceOperateReq{}
  462. if err = r.reflect(data, &m); err != nil {
  463. return
  464. }
  465. if m.Header != nil {
  466. m.Header.RequestID = serialNumber
  467. } else {
  468. err = errors.New("请求信息序列化失败")
  469. return
  470. }
  471. if b, e := proto.Marshal(&m); e != nil {
  472. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  473. err = errors.New("请求信息序列化失败")
  474. return
  475. } else {
  476. bytes = &b
  477. }
  478. case global.WRListingCancelOrderReq:
  479. m := pb.WRListingCancelOrderReq{}
  480. if err = r.reflect(data, &m); err != nil {
  481. return
  482. }
  483. if m.Header != nil {
  484. m.Header.RequestID = serialNumber
  485. } else {
  486. err = errors.New("请求信息序列化失败")
  487. return
  488. }
  489. if b, e := proto.Marshal(&m); e != nil {
  490. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  491. err = errors.New("请求信息序列化失败")
  492. return
  493. } else {
  494. bytes = &b
  495. }
  496. case global.HdWROrderReq:
  497. m := pb.HdWROrderReq{}
  498. if err = r.reflect(data, &m); err != nil {
  499. return
  500. }
  501. if m.Header != nil {
  502. m.Header.RequestID = serialNumber
  503. } else {
  504. err = errors.New("请求信息序列化失败")
  505. return
  506. }
  507. if b, e := proto.Marshal(&m); e != nil {
  508. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  509. err = errors.New("请求信息序列化失败")
  510. return
  511. } else {
  512. bytes = &b
  513. }
  514. case global.WROutApplyReq:
  515. m := pb.WROutApplyReq{}
  516. if err = r.reflectNoLong(data, &m); err != nil {
  517. return
  518. }
  519. if m.Header != nil {
  520. m.Header.RequestID = serialNumber
  521. } else {
  522. err = errors.New("请求信息序列化失败")
  523. return
  524. }
  525. if b, e := proto.Marshal(&m); e != nil {
  526. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  527. err = errors.New("请求信息序列化失败")
  528. return
  529. } else {
  530. bytes = &b
  531. }
  532. case global.ReceiptZSOutApplyReq:
  533. m := pb.ReceiptZSOutApplyReq{}
  534. if err = r.reflect(data, &m); err != nil {
  535. return
  536. }
  537. if m.Header != nil {
  538. m.Header.RequestID = serialNumber
  539. } else {
  540. err = errors.New("请求信息序列化失败")
  541. return
  542. }
  543. if b, e := proto.Marshal(&m); e != nil {
  544. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  545. err = errors.New("请求信息序列化失败")
  546. return
  547. } else {
  548. bytes = &b
  549. }
  550. case global.SpotPresaleListingOrderReq:
  551. m := pb.SpotPresaleListingOrderReq{}
  552. if err = r.reflect(data, &m); err != nil {
  553. return
  554. }
  555. if m.Header != nil {
  556. m.Header.RequestID = serialNumber
  557. } else {
  558. err = errors.New("请求信息序列化失败")
  559. return
  560. }
  561. if b, e := proto.Marshal(&m); e != nil {
  562. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  563. err = errors.New("请求信息序列化失败")
  564. return
  565. } else {
  566. bytes = &b
  567. }
  568. case global.CJJCMemberOperateReq:
  569. m := pb.CJJCMemberOperateReq{}
  570. if err = r.reflect(data, &m); err != nil {
  571. return
  572. }
  573. if m.Header != nil {
  574. m.Header.RequestID = serialNumber
  575. } else {
  576. err = errors.New("请求信息序列化失败")
  577. return
  578. }
  579. if b, e := proto.Marshal(&m); e != nil {
  580. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  581. err = errors.New("请求信息序列化失败")
  582. return
  583. } else {
  584. bytes = &b
  585. }
  586. case global.BSFWMemberOperateReq:
  587. m := pb.BSFWMemberOperateReq{}
  588. if err = r.reflect(data, &m); err != nil {
  589. return
  590. }
  591. if m.Header != nil {
  592. m.Header.RequestID = serialNumber
  593. } else {
  594. err = errors.New("请求信息序列化失败")
  595. return
  596. }
  597. if b, e := proto.Marshal(&m); e != nil {
  598. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  599. err = errors.New("请求信息序列化失败")
  600. return
  601. } else {
  602. bytes = &b
  603. }
  604. case global.AccountFundInfoReq:
  605. m := pb.AccountFundInfoReq{}
  606. if err = r.reflect(data, &m); err != nil {
  607. return
  608. }
  609. if m.Header != nil {
  610. m.Header.RequestID = serialNumber
  611. } else {
  612. err = errors.New("请求信息序列化失败")
  613. return
  614. }
  615. if b, e := proto.Marshal(&m); e != nil {
  616. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  617. err = errors.New("请求信息序列化失败")
  618. return
  619. } else {
  620. bytes = &b
  621. }
  622. case global.GZPresaleApplyReq:
  623. m := pb.GZPresaleApplyReq{}
  624. if err = r.reflect(data, &m); err != nil {
  625. return
  626. }
  627. if m.Header != nil {
  628. m.Header.RequestID = serialNumber
  629. } else {
  630. err = errors.New("请求信息序列化失败")
  631. return
  632. }
  633. if b, e := proto.Marshal(&m); e != nil {
  634. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  635. err = errors.New("请求信息序列化失败")
  636. return
  637. } else {
  638. bytes = &b
  639. }
  640. case global.GZPresaleOrderReq:
  641. m := pb.GZPresaleOrderReq{}
  642. if err = r.reflect(data, &m); err != nil {
  643. return
  644. }
  645. if m.Header != nil {
  646. m.Header.RequestID = serialNumber
  647. } else {
  648. err = errors.New("请求信息序列化失败")
  649. return
  650. }
  651. if b, e := proto.Marshal(&m); e != nil {
  652. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  653. err = errors.New("请求信息序列化失败")
  654. return
  655. } else {
  656. bytes = &b
  657. }
  658. case global.GZCenterPurchaseApplyReq:
  659. m := pb.GZCenterPurchaseApplyReq{}
  660. if err = r.reflect(data, &m); err != nil {
  661. return
  662. }
  663. if m.Header != nil {
  664. m.Header.RequestID = serialNumber
  665. } else {
  666. err = errors.New("请求信息序列化失败")
  667. return
  668. }
  669. if b, e := proto.Marshal(&m); e != nil {
  670. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  671. err = errors.New("请求信息序列化失败")
  672. return
  673. } else {
  674. bytes = &b
  675. }
  676. case global.GZCenterPurchaseOrderReq:
  677. m := pb.GZCenterPurchaseOrderReq{}
  678. if err = r.reflect(data, &m); err != nil {
  679. return
  680. }
  681. if m.Header != nil {
  682. m.Header.RequestID = serialNumber
  683. } else {
  684. err = errors.New("请求信息序列化失败")
  685. return
  686. }
  687. if b, e := proto.Marshal(&m); e != nil {
  688. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  689. err = errors.New("请求信息序列化失败")
  690. return
  691. } else {
  692. bytes = &b
  693. }
  694. case global.BSWMSReckonPayReq:
  695. m := pb.BSWMSReckonPayReq{}
  696. if err = r.reflect(data, &m); err != nil {
  697. return
  698. }
  699. if m.Header != nil {
  700. m.Header.RequestID = serialNumber
  701. } else {
  702. err = errors.New("请求信息序列化失败")
  703. return
  704. }
  705. if b, e := proto.Marshal(&m); e != nil {
  706. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  707. err = errors.New("请求信息序列化失败")
  708. return
  709. } else {
  710. bytes = &b
  711. }
  712. case global.OrderReq:
  713. m := pb.OrderReq{}
  714. if err = r.reflect(data, &m); err != nil {
  715. return
  716. }
  717. if m.Header != nil {
  718. m.Header.RequestID = serialNumber
  719. } else {
  720. err = errors.New("请求信息序列化失败")
  721. return
  722. }
  723. // 按交易服务要求增加服务器时间
  724. m.ServiceTime = new(string)
  725. *m.ServiceTime = time.Now().Format("2006-01-02 15:04:05")
  726. if b, e := proto.Marshal(&m); e != nil {
  727. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  728. err = errors.New("请求信息序列化失败")
  729. return
  730. } else {
  731. bytes = &b
  732. }
  733. case global.OfflineDeliveryApplyCancelOrderReq:
  734. m := pb.OfflineDeliveryApplyCancelOrderReq{}
  735. if err = r.reflect(data, &m); err != nil {
  736. return
  737. }
  738. if m.Header != nil {
  739. m.Header.RequestID = serialNumber
  740. } else {
  741. err = errors.New("请求信息序列化失败")
  742. return
  743. }
  744. if b, e := proto.Marshal(&m); e != nil {
  745. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  746. err = errors.New("请求信息序列化失败")
  747. return
  748. } else {
  749. bytes = &b
  750. }
  751. case global.CancelOrderReq:
  752. m := pb.CancelOrderReq{}
  753. if err = r.reflect(data, &m); err != nil {
  754. return
  755. }
  756. if m.Header != nil {
  757. m.Header.RequestID = serialNumber
  758. } else {
  759. err = errors.New("请求信息序列化失败")
  760. return
  761. }
  762. if b, e := proto.Marshal(&m); e != nil {
  763. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  764. err = errors.New("请求信息序列化失败")
  765. return
  766. } else {
  767. bytes = &b
  768. }
  769. case global.HolderCloseReq:
  770. m := pb.HolderCloseReq{}
  771. if err = r.reflect(data, &m); err != nil {
  772. return
  773. }
  774. if m.Header != nil {
  775. m.Header.RequestID = serialNumber
  776. } else {
  777. err = errors.New("请求信息序列化失败")
  778. return
  779. }
  780. if b, e := proto.Marshal(&m); e != nil {
  781. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  782. err = errors.New("请求信息序列化失败")
  783. return
  784. } else {
  785. bytes = &b
  786. }
  787. case global.DeliveryOrderReq:
  788. m := pb.DeliveryOrderReq{}
  789. if err = r.reflect(data, &m); err != nil {
  790. return
  791. }
  792. if m.Header != nil {
  793. m.Header.RequestID = serialNumber
  794. } else {
  795. err = errors.New("请求信息序列化失败")
  796. return
  797. }
  798. if b, e := proto.Marshal(&m); e != nil {
  799. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  800. err = errors.New("请求信息序列化失败")
  801. return
  802. } else {
  803. bytes = &b
  804. }
  805. case global.MakeUpDepositReq:
  806. m := pb.MakeUpDepositReq{}
  807. if err = r.reflect(data, &m); err != nil {
  808. return
  809. }
  810. if m.Header != nil {
  811. m.Header.RequestID = serialNumber
  812. } else {
  813. err = errors.New("请求信息序列化失败")
  814. return
  815. }
  816. if b, e := proto.Marshal(&m); e != nil {
  817. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  818. err = errors.New("请求信息序列化失败")
  819. return
  820. } else {
  821. bytes = &b
  822. }
  823. case global.HoldAppendDepositReq:
  824. m := pb.HoldAppendDepositReq{}
  825. if err = r.reflect(data, &m); err != nil {
  826. return
  827. }
  828. if m.Header != nil {
  829. m.Header.RequestID = serialNumber
  830. } else {
  831. err = errors.New("请求信息序列化失败")
  832. return
  833. }
  834. if b, e := proto.Marshal(&m); e != nil {
  835. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  836. err = errors.New("请求信息序列化失败")
  837. return
  838. } else {
  839. bytes = &b
  840. }
  841. case global.OfflineDeliveryReq:
  842. m := pb.OfflineDeliveryReq{}
  843. if err = r.reflect(data, &m); err != nil {
  844. return
  845. }
  846. if m.Header != nil {
  847. m.Header.RequestID = serialNumber
  848. } else {
  849. err = errors.New("请求信息序列化失败")
  850. return
  851. }
  852. if b, e := proto.Marshal(&m); e != nil {
  853. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  854. err = errors.New("请求信息序列化失败")
  855. return
  856. } else {
  857. bytes = &b
  858. }
  859. case global.HdWRDealOrderReq:
  860. m := pb.HdWRDealOrderReq{}
  861. if err = r.reflect(data, &m); err != nil {
  862. return
  863. }
  864. if m.Header != nil {
  865. m.Header.RequestID = serialNumber
  866. } else {
  867. err = errors.New("请求信息序列化失败")
  868. return
  869. }
  870. if b, e := proto.Marshal(&m); e != nil {
  871. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  872. err = errors.New("请求信息序列化失败")
  873. return
  874. } else {
  875. bytes = &b
  876. }
  877. case global.SupplementDepositReq:
  878. m := pb.SupplementDepositReq{}
  879. if err = r.reflect(data, &m); err != nil {
  880. return
  881. }
  882. if m.Header != nil {
  883. m.Header.RequestID = serialNumber
  884. } else {
  885. err = errors.New("请求信息序列化失败")
  886. return
  887. }
  888. if b, e := proto.Marshal(&m); e != nil {
  889. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  890. err = errors.New("请求信息序列化失败")
  891. return
  892. } else {
  893. bytes = &b
  894. }
  895. case global.RefundedDepositReq:
  896. m := pb.RefundedDepositReq{}
  897. if err = r.reflect(data, &m); err != nil {
  898. return
  899. }
  900. if m.Header != nil {
  901. m.Header.RequestID = serialNumber
  902. } else {
  903. err = errors.New("请求信息序列化失败")
  904. return
  905. }
  906. if b, e := proto.Marshal(&m); e != nil {
  907. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  908. err = errors.New("请求信息序列化失败")
  909. return
  910. } else {
  911. bytes = &b
  912. }
  913. case global.MarketOrderDeliveryApplyReq:
  914. m := pb.MarketOrderDeliveryApplyReq{}
  915. if err = r.reflect(data, &m); err != nil {
  916. return
  917. }
  918. if m.Header != nil {
  919. m.Header.RequestID = serialNumber
  920. } else {
  921. err = errors.New("请求信息序列化失败")
  922. return
  923. }
  924. if b, e := proto.Marshal(&m); e != nil {
  925. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  926. err = errors.New("请求信息序列化失败")
  927. return
  928. } else {
  929. bytes = &b
  930. }
  931. case global.DeliveryClientOperatorReq:
  932. m := pb.DeliveryClientOperatorReq{}
  933. if err = r.reflect(data, &m); err != nil {
  934. return
  935. }
  936. if m.Header != nil {
  937. m.Header.RequestID = serialNumber
  938. } else {
  939. err = errors.New("请求信息序列化失败")
  940. return
  941. }
  942. if b, e := proto.Marshal(&m); e != nil {
  943. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  944. err = errors.New("请求信息序列化失败")
  945. return
  946. } else {
  947. bytes = &b
  948. }
  949. }
  950. return
  951. }
  952. func (r *MQBodyReq) reflect(data string, m proto.Message) (err error) {
  953. // 由于JS对Long类型支持不佳,故让小程序端在使用单号时以字符串发过来,服务这边会自动把19位数字的字符串转化为数字
  954. reg, _ := regexp.Compile(`"[0-9]{19}"`)
  955. all := reg.FindAll([]byte(data), -1)
  956. for _, i := range all {
  957. r := strings.Replace(string(i), "\"", "", -1)
  958. data = strings.Replace(data, string(i), r, -1)
  959. }
  960. if e := jsonpb.UnmarshalString(data, m); e != nil {
  961. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  962. err = errors.New("业务数据装箱失败")
  963. return
  964. }
  965. return
  966. }
  967. func (r *MQBodyReq) reflectNoLong(data string, m proto.Message) (err error) {
  968. if e := jsonpb.UnmarshalString(data, m); e != nil {
  969. global.M2A_LOG.Error(e.Error(), zap.Error(e))
  970. err = errors.New("业务数据装箱失败")
  971. return
  972. }
  973. return
  974. }