base.go 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958
  1. package grpc
  2. import (
  3. "context"
  4. pb "sportfitness/base/api/grpc/base"
  5. "sportfitness/base/assembly/base/service"
  6. "strings"
  7. "google.golang.org/grpc/metadata"
  8. )
  9. type Api struct {
  10. pb.UnimplementedApiServer
  11. }
  12. func (Api) getRemoteIp(ctx context.Context) string {
  13. if md, ok := metadata.FromIncomingContext(ctx); ok {
  14. ip := md.Get("x-forwarded-for")
  15. if len(ip) > 0 {
  16. return ip[0]
  17. }
  18. }
  19. return ""
  20. }
  21. func (Api) getUserAgent(ctx context.Context) string {
  22. if md, ok := metadata.FromIncomingContext(ctx); ok {
  23. agents := md.Get("user-agent")
  24. return strings.Join(agents, "\n")
  25. }
  26. return ""
  27. }
  28. func (Api) getToken(ctx context.Context) (token string) {
  29. if md, ok := metadata.FromIncomingContext(ctx); ok {
  30. sl := md.Get("Token")
  31. if len(sl) >= 1 {
  32. token = sl[0]
  33. }
  34. }
  35. return
  36. }
  37. // webToGoVerify 前端入Go验证签名函数,只允许StandardRequest进行验证
  38. func (a Api) webToGoVerify(ctx context.Context, q *pb.StandardRequest) (string, *pb.StandardRequest, string) {
  39. token := a.getToken(ctx)
  40. //wtgStr = q.JsonStr
  41. wtgSign := q.Sign // 生成新签名
  42. return token, q, wtgSign
  43. }
  44. func (Api) goToWebSigner(content string) (gtwStr, gtwSign string) {
  45. gtwStr = content
  46. gtwSign = ""
  47. return
  48. }
  49. func (a Api) toWebFunc(content string) *pb.StandardReply {
  50. gtwStr, gtwSign := a.goToWebSigner(content) // 空函数,go透传给前台数据时生成签名
  51. return &pb.StandardReply{
  52. JsonRst: gtwStr,
  53. Sign: gtwSign,
  54. }
  55. }
  56. func (a Api) SignIn(ctx context.Context, q *pb.SignInRequest) (*pb.SignInReply, error) {
  57. token := service.User{}.SignInUserCodePassword(
  58. q.Name, q.Password, a.getRemoteIp(ctx), a.getUserAgent(ctx), q.CodeId, q.VerifyCode)
  59. return &pb.SignInReply{Token: token}, nil
  60. }
  61. func (a Api) GenVerifyImage(ctx context.Context, q *pb.GenVerifyImageRequest) (*pb.GenVerifyImageReply, error) {
  62. codeId, imageBase64 := service.User{}.GenVerifyImage(q.Height, q.Width)
  63. return &pb.GenVerifyImageReply{ImageBase64: imageBase64, CodeId: codeId}, nil
  64. }
  65. func (a Api) SignOut(ctx context.Context, q *pb.DefaultRequest) (*pb.DefaultReply, error) {
  66. token := a.getToken(ctx)
  67. service.User{}.SignOut(token)
  68. return &pb.DefaultReply{}, nil
  69. }
  70. //func (a Api) SignUpInWithPhone() {
  71. //
  72. //}
  73. // ----------------------- 商家信息管理 ---------------------------------------------
  74. func (a Api) ManageableShopList(ctx context.Context, r *pb.ShopListRequest) (*pb.ShopListReply, error) {
  75. token := a.getToken(ctx)
  76. rs := service.Shop{}.ManageableShopList(token, r)
  77. return rs, nil
  78. }
  79. func (a Api) ManageableGetShopInfo(ctx context.Context, r *pb.ShopDetailRequest) (*pb.ShopInfo, error) {
  80. token := a.getToken(ctx)
  81. rs := service.Shop{}.ManageableGetShopInfo(token, r)
  82. return rs, nil
  83. }
  84. func (a Api) ShopLicenseList(ctx context.Context, r *pb.ShopDetailRequest) (*pb.LicenseList, error) {
  85. token := a.getToken(ctx)
  86. rs := service.Shop{}.ShopLicenseList(token, r)
  87. return rs, nil
  88. }
  89. //func (a Api) ShopLicenseTypeMap(ctx context.Context, r *pb.IdList) (*pb.LicenseTypeMapReply, error) {
  90. // token := a.getToken(ctx)
  91. //
  92. // _ = service.Shop{}.LicenseTypeMap(token, r)
  93. //
  94. // return nil, nil
  95. //}
  96. // ShopGroupQuery 商家跨店分组查询
  97. func (a Api) ShopGroupQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  98. // 获取token,并验证签名函数
  99. token, q, sign := a.webToGoVerify(ctx, r)
  100. rs := service.Shop{}.ShopGroupQuery(token, q.ShopID, q.JsonStr, sign)
  101. rst := a.toWebFunc(rs)
  102. return rst, nil
  103. }
  104. // GetShopNavi 查询商家栏目:分级查询,查询一级菜单parentId传入0
  105. func (a Api) GetShopNavi(ctx context.Context, r *pb.GetShopNaviRequest) (*pb.GetShopNaviReply, error) {
  106. token := a.getToken(ctx)
  107. rs := service.Shop{}.GetShopNavi(token, r)
  108. return rs, nil
  109. }
  110. // ShopGroupAdd 商家跨店分组添加
  111. func (a Api) ShopGroupAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  112. // 获取token,并验证签名函数
  113. token, q, sign := a.webToGoVerify(ctx, r)
  114. rs := service.Shop{}.ShopGroupAdd(token, q.ShopID, q.JsonStr, sign)
  115. rst := a.toWebFunc(rs)
  116. return rst, nil
  117. }
  118. // ShopGroupEdit 商家跨店分组编辑
  119. func (a Api) ShopGroupEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  120. // 获取token,并验证签名函数
  121. token, q, sign := a.webToGoVerify(ctx, r)
  122. rs := service.Shop{}.ShopGroupEdit(token, q.ShopID, q.JsonStr, sign)
  123. rst := a.toWebFunc(rs)
  124. return rst, nil
  125. }
  126. // ShopGroupStatusEdit 商家跨店分组状态修改
  127. func (a Api) ShopGroupStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  128. // 获取token,并验证签名函数
  129. token, q, sign := a.webToGoVerify(ctx, r)
  130. rs := service.Shop{}.ShopGroupStatusEdit(token, q.ShopID, q.JsonStr, sign)
  131. rst := a.toWebFunc(rs)
  132. return rst, nil
  133. }
  134. // ShopGroupDetailsQuery 跨店分组详情查询
  135. func (a Api) ShopGroupDetailsQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  136. // 获取token,并验证签名函数
  137. token, q, sign := a.webToGoVerify(ctx, r)
  138. rs := service.Shop{}.ShopGroupDetailsQuery(token, q.ShopID, q.JsonStr, sign)
  139. rst := a.toWebFunc(rs)
  140. return rst, nil
  141. }
  142. // ShopVenueQuery 商家区域查询
  143. func (a Api) ShopVenueQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  144. // 获取token,并验证签名函数
  145. token, q, sign := a.webToGoVerify(ctx, r)
  146. rs := service.Shop{}.ShopVenueQuery(token, q.ShopID, q.JsonStr, sign)
  147. rst := a.toWebFunc(rs)
  148. return rst, nil
  149. }
  150. // ShopVenueAdd 商家区域添加
  151. func (a Api) ShopVenueAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  152. // 获取token,并验证签名函数
  153. token, q, sign := a.webToGoVerify(ctx, r)
  154. rs := service.Shop{}.ShopVenueAdd(token, q.ShopID, q.JsonStr, sign)
  155. rst := a.toWebFunc(rs)
  156. return rst, nil
  157. }
  158. // ShopVenueEdit 商家区域编辑
  159. func (a Api) ShopVenueEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  160. // 获取token,并验证签名函数
  161. token, q, sign := a.webToGoVerify(ctx, r)
  162. rs := service.Shop{}.ShopVenueEdit(token, q.ShopID, q.JsonStr, sign)
  163. rst := a.toWebFunc(rs)
  164. return rst, nil
  165. }
  166. // ShopVenueStatusEdit 商家区域状态修改
  167. func (a Api) ShopVenueStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  168. // 获取token,并验证签名函数
  169. token, q, sign := a.webToGoVerify(ctx, r)
  170. rs := service.Shop{}.ShopVenueStatusEdit(token, q.ShopID, q.JsonStr, sign)
  171. rst := a.toWebFunc(rs)
  172. return rst, nil
  173. }
  174. // ShopVenueEquipQuery 商家设备查询
  175. func (a Api) ShopVenueEquipQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  176. // 获取token,并验证签名函数
  177. token, q, sign := a.webToGoVerify(ctx, r)
  178. rs := service.Shop{}.ShopVenueEquipQuery(token, q.ShopID, q.JsonStr, sign)
  179. rst := a.toWebFunc(rs)
  180. return rst, nil
  181. }
  182. // ShopVenueEquipEdit 商家设备编辑
  183. func (a Api) ShopVenueEquipEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  184. // 获取token,并验证签名函数
  185. token, q, sign := a.webToGoVerify(ctx, r)
  186. rs := service.Shop{}.ShopVenueEquipEdit(token, q.ShopID, q.JsonStr, sign)
  187. rst := a.toWebFunc(rs)
  188. return rst, nil
  189. }
  190. // ShopVenueEquipStatusEdit 商家设备状态修改
  191. func (a Api) ShopVenueEquipStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  192. // 获取token,并验证签名函数
  193. token, q, sign := a.webToGoVerify(ctx, r)
  194. rs := service.Shop{}.ShopVenueEquipStatusEdit(token, q.ShopID, q.JsonStr, sign)
  195. rst := a.toWebFunc(rs)
  196. return rst, nil
  197. }
  198. // ShopVenueEquipStatusDel 商家设备删除
  199. func (a Api) ShopVenueEquipStatusDel(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  200. // 获取token,并验证签名函数
  201. token, q, sign := a.webToGoVerify(ctx, r)
  202. rs := service.Shop{}.ShopVenueEquipStatusEdit(token, q.ShopID, q.JsonStr, sign)
  203. rst := a.toWebFunc(rs)
  204. return rst, nil
  205. }
  206. // ShopConfigQuery 商家配置查询
  207. func (a Api) ShopConfigQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  208. // 获取token,并验证签名函数
  209. token, q, sign := a.webToGoVerify(ctx, r)
  210. rs := service.Shop{}.ShopConfigQuery(token, q.ShopID, q.JsonStr, sign)
  211. rst := a.toWebFunc(rs)
  212. return rst, nil
  213. }
  214. // ShopConfigEdit 商家配置编辑
  215. func (a Api) ShopConfigEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  216. // 获取token,并验证签名函数
  217. token, q, sign := a.webToGoVerify(ctx, r)
  218. rs := service.Shop{}.ShopConfigEdit(token, q.ShopID, q.JsonStr, sign)
  219. rst := a.toWebFunc(rs)
  220. return rst, nil
  221. }
  222. // --------------------------商家会员管理----------------------------------------------------
  223. // ShopVipUserQuery 商家会员查询
  224. func (a Api) ShopVipUserQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  225. // 获取token,并验证签名函数
  226. token, q, sign := a.webToGoVerify(ctx, r)
  227. rs := service.User{}.ShopVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  228. rst := a.toWebFunc(rs)
  229. return rst, nil
  230. }
  231. // ShopVipUserAdd 商家会员添加
  232. func (a Api) ShopVipUserAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  233. // 获取token,并验证签名函数
  234. token, q, sign := a.webToGoVerify(ctx, r)
  235. rs := service.User{}.ShopVipUserAdd(token, q.ShopID, q.JsonStr, sign)
  236. rst := a.toWebFunc(rs)
  237. return rst, nil
  238. }
  239. // ShopVipUserEdit 商家会员编辑
  240. func (a Api) ShopVipUserEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  241. // 获取token,并验证签名函数
  242. token, q, sign := a.webToGoVerify(ctx, r)
  243. rs := service.User{}.ShopVipUserEdit(token, q.ShopID, q.JsonStr, sign)
  244. rst := a.toWebFunc(rs)
  245. return rst, nil
  246. }
  247. // ShopVipUserStatusEdit 商家会员状态编辑
  248. func (a Api) ShopVipUserStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  249. // 获取token,并验证签名函数
  250. token, q, sign := a.webToGoVerify(ctx, r)
  251. rs := service.User{}.ShopVipUserStatusEdit(token, q.ShopID, q.JsonStr, sign)
  252. rst := a.toWebFunc(rs)
  253. return rst, nil
  254. }
  255. // AcrossVipUserQuery 跨店会员查询
  256. func (a Api) AcrossVipUserQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  257. // 获取token,并验证签名函数
  258. token, q, sign := a.webToGoVerify(ctx, r)
  259. rs := service.User{}.AcrossVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  260. rst := a.toWebFunc(rs)
  261. return rst, nil
  262. }
  263. // AcrossVipUserAdd 跨店会员添加
  264. func (a Api) AcrossVipUserAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  265. // 获取token,并验证签名函数
  266. token, q, sign := a.webToGoVerify(ctx, r)
  267. rs := service.User{}.AcrossVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  268. rst := a.toWebFunc(rs)
  269. return rst, nil
  270. }
  271. // AcrossVipUserDel 跨店会员删除
  272. func (a Api) AcrossVipUserDel(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  273. // 获取token,并验证签名函数
  274. token, q, sign := a.webToGoVerify(ctx, r)
  275. rs := service.User{}.AcrossVipUserDel(token, q.ShopID, q.JsonStr, sign)
  276. rst := a.toWebFunc(rs)
  277. return rst, nil
  278. }
  279. // VipPhoneQuery 商家会员手机号查询
  280. func (a Api) VipPhoneQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  281. // 获取token,并验证签名函数
  282. token, q, sign := a.webToGoVerify(ctx, r)
  283. rs := service.User{}.VipPhoneQuery(token, q.ShopID, q.JsonStr, sign)
  284. rst := a.toWebFunc(rs)
  285. return rst, nil
  286. }
  287. // VipMainPhoneCheck 商家会员主手机号校验
  288. func (a Api) VipMainPhoneCheck(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  289. // 获取token,并验证签名函数
  290. token, q, sign := a.webToGoVerify(ctx, r)
  291. rs := service.User{}.VipMainPhoneCheck(token, q.ShopID, q.JsonStr, sign)
  292. rst := a.toWebFunc(rs)
  293. return rst, nil
  294. }
  295. // VipOtherPhoneAdd 商家会员其他手机号添加
  296. func (a Api) VipOtherPhoneAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  297. // 获取token,并验证签名函数
  298. token, q, sign := a.webToGoVerify(ctx, r)
  299. rs := service.User{}.VipOtherPhoneAdd(token, q.ShopID, q.JsonStr, sign)
  300. rst := a.toWebFunc(rs)
  301. return rst, nil
  302. }
  303. // VipOtherPhoneEdit 商家会员其他手机号编辑
  304. func (a Api) VipOtherPhoneEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  305. // 获取token,并验证签名函数
  306. token, q, sign := a.webToGoVerify(ctx, r)
  307. rs := service.User{}.VipOtherPhoneEdit(token, q.ShopID, q.JsonStr, sign)
  308. rst := a.toWebFunc(rs)
  309. return rst, nil
  310. }
  311. // TempVipUserQuery 商家临时会员查询
  312. func (a Api) TempVipUserQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  313. // 获取token,并验证签名函数
  314. token, q, sign := a.webToGoVerify(ctx, r)
  315. rs := service.User{}.TempVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  316. rst := a.toWebFunc(rs)
  317. return rst, nil
  318. }
  319. // TempVipUserAdd 商家临时会员添加
  320. func (a Api) TempVipUserAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  321. // 获取token,并验证签名函数
  322. token, q, sign := a.webToGoVerify(ctx, r)
  323. rs := service.User{}.TempVipUserAdd(token, q.ShopID, q.JsonStr, sign)
  324. rst := a.toWebFunc(rs)
  325. return rst, nil
  326. }
  327. // TempVipUserEdit 商家临时会员编辑
  328. func (a Api) TempVipUserEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  329. // 获取token,并验证签名函数
  330. token, q, sign := a.webToGoVerify(ctx, r)
  331. rs := service.User{}.TempVipUserEdit(token, q.ShopID, q.JsonStr, sign)
  332. rst := a.toWebFunc(rs)
  333. return rst, nil
  334. }
  335. // TempVipUserStatusEdit 商家临时会员状态修改
  336. func (a Api) TempVipUserStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  337. // 获取token,并验证签名函数
  338. token, q, sign := a.webToGoVerify(ctx, r)
  339. rs := service.User{}.TempVipUserStatusEdit(token, q.ShopID, q.JsonStr, sign)
  340. rst := a.toWebFunc(rs)
  341. return rst, nil
  342. }
  343. // VipHourEdit 商家会员课时编辑
  344. func (a Api) VipHourEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  345. // 获取token,并验证签名函数
  346. token, q, sign := a.webToGoVerify(ctx, r)
  347. rs := service.User{}.VipHourEdit(token, q.ShopID, q.JsonStr, sign)
  348. rst := a.toWebFunc(rs)
  349. return rst, nil
  350. }
  351. // VipConsumeListQuery 商家会员消费课时查询
  352. func (a Api) VipConsumeListQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  353. // 获取token,并验证签名函数
  354. token, q, sign := a.webToGoVerify(ctx, r)
  355. rs := service.User{}.VipConsumeListQuery(token, q.ShopID, q.JsonStr, sign)
  356. rst := a.toWebFunc(rs)
  357. return rst, nil
  358. }
  359. // VipConsumeDetailQuery 商家会员消费课时详情查询
  360. func (a Api) VipConsumeDetailQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  361. // 获取token,并验证签名函数
  362. token, q, sign := a.webToGoVerify(ctx, r)
  363. rs := service.User{}.VipConsumeDetailQuery(token, q.ShopID, q.JsonStr, sign)
  364. rst := a.toWebFunc(rs)
  365. return rst, nil
  366. }
  367. // VipClassRelationEdit 商家会员对应课程增删
  368. func (a Api) VipClassRelationEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  369. // 获取token,并验证签名函数
  370. token, q, sign := a.webToGoVerify(ctx, r)
  371. rs := service.User{}.VipClassRelationEdit(token, q.ShopID, q.JsonStr, sign)
  372. rst := a.toWebFunc(rs)
  373. return rst, nil
  374. }
  375. // VipHourChgQuery 商家会员消费课时详情查询
  376. func (a Api) VipHourChgQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  377. // 获取token,并验证签名函数
  378. token, q, sign := a.webToGoVerify(ctx, r)
  379. rs := service.User{}.VipHourChgQuery(token, q.ShopID, q.JsonStr, sign)
  380. rst := a.toWebFunc(rs)
  381. return rst, nil
  382. }
  383. // VipUserClassQuery 商家会员课程查询
  384. func (a Api) VipUserClassQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  385. // 获取token,并验证签名函数
  386. token, q, sign := a.webToGoVerify(ctx, r)
  387. rs := service.User{}.VipUserClassQuery(token, q.ShopID, q.JsonStr, sign)
  388. rst := a.toWebFunc(rs)
  389. return rst, nil
  390. }
  391. // GetSimpleQiNiuToken 获取七牛简单Token
  392. func (a Api) GetSimpleQiNiuToken(ctx context.Context, r *pb.DefaultRequest) (*pb.QiNiuTokenReply, error) {
  393. token := a.getToken(ctx)
  394. rs := service.User{}.GetSimpleQiNiuToken(token)
  395. return rs, nil
  396. }
  397. // GetOverlayImgQiNiuToken 获取七牛可覆盖文件Token
  398. func (a Api) GetOverlayImgQiNiuToken(ctx context.Context, r *pb.GetOverlayImgRequest) (*pb.QiNiuTokenReply, error) {
  399. token := a.getToken(ctx)
  400. rs := service.User{}.GetOverlayImgQiNiuToken(token, r.FileName)
  401. return rs, nil
  402. }
  403. // ClassQuery 商家基础课程查询
  404. func (a Api) ClassQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  405. // 获取token,并验证签名函数
  406. token, q, sign := a.webToGoVerify(ctx, r)
  407. rs := service.Class{}.ClassQuery(token, q.ShopID, q.JsonStr, sign)
  408. rst := a.toWebFunc(rs)
  409. return rst, nil
  410. }
  411. // ClassAdd 商家基础课程添加
  412. func (a Api) ClassAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  413. // 获取token,并验证签名函数
  414. token, q, sign := a.webToGoVerify(ctx, r)
  415. rs := service.Class{}.ClassAdd(token, q.ShopID, q.JsonStr, sign)
  416. rst := a.toWebFunc(rs)
  417. return rst, nil
  418. }
  419. // ClassEdit 商家基础课程编辑
  420. func (a Api) ClassEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  421. // 获取token,并验证签名函数
  422. token, q, sign := a.webToGoVerify(ctx, r)
  423. rs := service.Class{}.ClassEdit(token, q.ShopID, q.JsonStr, sign)
  424. rst := a.toWebFunc(rs)
  425. return rst, nil
  426. }
  427. // ClassStatusEdit 商家基础课程状态编辑
  428. func (a Api) ClassStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  429. // 获取token,并验证签名函数
  430. token, q, sign := a.webToGoVerify(ctx, r)
  431. rs := service.Class{}.ClassStatusEdit(token, q.ShopID, q.JsonStr, sign)
  432. rst := a.toWebFunc(rs)
  433. return rst, nil
  434. }
  435. // ClassColorEdit 商家基础课程颜色修改
  436. func (a Api) ClassColorEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  437. // 获取token,并验证签名函数
  438. token, q, sign := a.webToGoVerify(ctx, r)
  439. rs := service.Class{}.ClassColorEdit(token, q.ShopID, q.JsonStr, sign)
  440. rst := a.toWebFunc(rs)
  441. return rst, nil
  442. }
  443. // ClassWxVisibleEdit 商家基础课程微信显示状态修改
  444. func (a Api) ClassWxVisibleEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  445. // 获取token,并验证签名函数
  446. token, q, sign := a.webToGoVerify(ctx, r)
  447. rs := service.Class{}.ClassWxVisibleEdit(token, q.ShopID, q.JsonStr, sign)
  448. rst := a.toWebFunc(rs)
  449. return rst, nil
  450. }
  451. // ClassVipEdit 商家课程会员增删
  452. func (a Api) ClassVipEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  453. // 获取token,并验证签名函数
  454. token, q, sign := a.webToGoVerify(ctx, r)
  455. rs := service.Class{}.ClassVipEdit(token, q.ShopID, q.JsonStr, sign)
  456. rst := a.toWebFunc(rs)
  457. return rst, nil
  458. }
  459. // SttPlanBasicQuery 商家课程表模板总览查询
  460. func (a Api) SttPlanBasicQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  461. // 获取token,并验证签名函数
  462. token, q, sign := a.webToGoVerify(ctx, r)
  463. rs := service.Class{}.SttPlanBasicQuery(token, q.ShopID, q.JsonStr, sign)
  464. rst := a.toWebFunc(rs)
  465. return rst, nil
  466. }
  467. // SttPlanBasicAdd 商家课程表模板总览添加
  468. func (a Api) SttPlanBasicAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  469. // 获取token,并验证签名函数
  470. token, q, sign := a.webToGoVerify(ctx, r)
  471. rs := service.Class{}.SttPlanBasicAdd(token, q.ShopID, q.JsonStr, sign)
  472. rst := a.toWebFunc(rs)
  473. return rst, nil
  474. }
  475. // SttPlanBasicEdit 商家课程表模板总览编辑
  476. func (a Api) SttPlanBasicEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  477. // 获取token,并验证签名函数
  478. token, q, sign := a.webToGoVerify(ctx, r)
  479. rs := service.Class{}.SttPlanBasicEdit(token, q.ShopID, q.JsonStr, sign)
  480. rst := a.toWebFunc(rs)
  481. return rst, nil
  482. }
  483. // SttPlanBasicShopEdit 商家课程表模板总览所属商家修改
  484. func (a Api) SttPlanBasicShopEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  485. // 获取token,并验证签名函数
  486. token, q, sign := a.webToGoVerify(ctx, r)
  487. rs := service.Class{}.SttPlanBasicShopEdit(token, q.ShopID, q.JsonStr, sign)
  488. rst := a.toWebFunc(rs)
  489. return rst, nil
  490. }
  491. // SttPlanBasicStatusEdit 商家课程表模板状态
  492. func (a Api) SttPlanBasicStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  493. // 获取token,并验证签名函数
  494. token, q, sign := a.webToGoVerify(ctx, r)
  495. rs := service.Class{}.SttPlanBasicStatusEdit(token, q.ShopID, q.JsonStr, sign)
  496. rst := a.toWebFunc(rs)
  497. return rst, nil
  498. }
  499. // SttPlanBasicPublish 商家课程表模板发布
  500. func (a Api) SttPlanBasicPublish(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  501. // 获取token,并验证签名函数
  502. token, q, sign := a.webToGoVerify(ctx, r)
  503. rs := service.Class{}.SttPlanBasicPublish(token, q.ShopID, q.JsonStr, sign)
  504. rst := a.toWebFunc(rs)
  505. return rst, nil
  506. }
  507. // SttPlanPreview 商家课程表模板详情预览
  508. func (a Api) SttPlanPreview(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  509. // 获取token,并验证签名函数
  510. token, q, sign := a.webToGoVerify(ctx, r)
  511. rs := service.Class{}.SttPlanPreview(token, q.ShopID, q.JsonStr, sign)
  512. rst := a.toWebFunc(rs)
  513. return rst, nil
  514. }
  515. // SttPlanCopy 商家课程表模板复制
  516. func (a Api) SttPlanCopy(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  517. // 获取token,并验证签名函数
  518. token, q, sign := a.webToGoVerify(ctx, r)
  519. rs := service.Class{}.SttPlanCopy(token, q.ShopID, q.JsonStr, sign)
  520. rst := a.toWebFunc(rs)
  521. return rst, nil
  522. }
  523. // SttPlanDetailQuery 商家课程表模板详情查询
  524. func (a Api) SttPlanDetailQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  525. // 获取token,并验证签名函数
  526. token, q, sign := a.webToGoVerify(ctx, r)
  527. rs := service.Class{}.SttPlanDetailQuery(token, q.ShopID, q.JsonStr, sign)
  528. rst := a.toWebFunc(rs)
  529. return rst, nil
  530. }
  531. // SttPlanDetailBatchSave 商家课程表模板详情批量保存
  532. func (a Api) SttPlanDetailBatchSave(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  533. // 获取token,并验证签名函数
  534. token, q, sign := a.webToGoVerify(ctx, r)
  535. rs := service.Class{}.SttPlanDetailBatchSave(token, q.ShopID, q.JsonStr, sign)
  536. rst := a.toWebFunc(rs)
  537. return rst, nil
  538. }
  539. // STTBasicQuery 商家课程表总览查询
  540. func (a Api) STTBasicQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  541. // 获取token,并验证签名函数
  542. token, q, sign := a.webToGoVerify(ctx, r)
  543. rs := service.Class{}.STTBasicQuery(token, q.ShopID, q.JsonStr, sign)
  544. rst := a.toWebFunc(rs)
  545. return rst, nil
  546. }
  547. // STTBasicAdd 商家课程表总览添加
  548. func (a Api) STTBasicAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  549. // 获取token,并验证签名函数
  550. token, q, sign := a.webToGoVerify(ctx, r)
  551. rs := service.Class{}.STTBasicAdd(token, q.ShopID, q.JsonStr, sign)
  552. rst := a.toWebFunc(rs)
  553. return rst, nil
  554. }
  555. // STTBasicEdit 商家课程表总览编辑
  556. func (a Api) STTBasicEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  557. // 获取token,并验证签名函数
  558. token, q, sign := a.webToGoVerify(ctx, r)
  559. rs := service.Class{}.STTBasicEdit(token, q.ShopID, q.JsonStr, sign)
  560. rst := a.toWebFunc(rs)
  561. return rst, nil
  562. }
  563. // STTBasicStatusEdit 商家课程表总览状态修改
  564. func (a Api) STTBasicStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  565. // 获取token,并验证签名函数
  566. token, q, sign := a.webToGoVerify(ctx, r)
  567. rs := service.Class{}.STTBasicStatusEdit(token, q.ShopID, q.JsonStr, sign)
  568. rst := a.toWebFunc(rs)
  569. return rst, nil
  570. }
  571. // STTBasicPreview 商家课程表详情预览
  572. func (a Api) STTBasicPreview(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  573. // 获取token,并验证签名函数
  574. token, q, sign := a.webToGoVerify(ctx, r)
  575. rs := service.Class{}.STTBasicPreview(token, q.ShopID, q.JsonStr, sign)
  576. rst := a.toWebFunc(rs)
  577. return rst, nil
  578. }
  579. // STTBasicCopy 商家课程表模板复制
  580. func (a Api) STTBasicCopy(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  581. // 获取token,并验证签名函数
  582. token, q, sign := a.webToGoVerify(ctx, r)
  583. rs := service.Class{}.STTBasicCopy(token, q.ShopID, q.JsonStr, sign)
  584. rst := a.toWebFunc(rs)
  585. return rst, nil
  586. }
  587. // STTBasicOfflineEdit 商家课程表上下线状态修改
  588. func (a Api) STTBasicOfflineEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  589. // 获取token,并验证签名函数
  590. token, q, sign := a.webToGoVerify(ctx, r)
  591. rs := service.Class{}.STTBasicOfflineEdit(token, q.ShopID, q.JsonStr, sign)
  592. rst := a.toWebFunc(rs)
  593. return rst, nil
  594. }
  595. // STTDetailListQuery 商家课程表详情列表查询
  596. func (a Api) STTDetailListQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  597. // 获取token,并验证签名函数
  598. token, q, sign := a.webToGoVerify(ctx, r)
  599. rs := service.Class{}.STTDetailListQuery(token, q.ShopID, q.JsonStr, sign)
  600. rst := a.toWebFunc(rs)
  601. return rst, nil
  602. }
  603. // STTBasicDetailBatchSave 商家课程表详情批量保存
  604. func (a Api) STTBasicDetailBatchSave(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  605. // 获取token,并验证签名函数
  606. token, q, sign := a.webToGoVerify(ctx, r)
  607. rs := service.Class{}.STTBasicDetailBatchSave(token, q.ShopID, q.JsonStr, sign)
  608. rst := a.toWebFunc(rs)
  609. return rst, nil
  610. }
  611. // STTDetailAllowDelCheck 商家课程表详情判断是否可删除
  612. func (a Api) STTDetailAllowDelCheck(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  613. // 获取token,并验证签名函数
  614. token, q, sign := a.webToGoVerify(ctx, r)
  615. rs := service.Class{}.STTDetailAllowDelCheck(token, q.ShopID, q.JsonStr, sign)
  616. rst := a.toWebFunc(rs)
  617. return rst, nil
  618. }
  619. // ----------------------- 商家上下课管理 ---------------------------------------------
  620. // ----------------------- 商家预约管理 ---------------------------------------------
  621. // OrderListQuery 预约记录查询
  622. func (a Api) OrderListQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  623. // 获取token,并验证签名函数
  624. token, q, sign := a.webToGoVerify(ctx, r)
  625. rs := service.Order{}.OrderListQuery(token, q.ShopID, q.JsonStr, sign)
  626. rst := a.toWebFunc(rs)
  627. return rst, nil
  628. }
  629. // OrderAddByManager 管理员预约添加
  630. func (a Api) OrderAddByManager(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  631. // 获取token,并验证签名函数
  632. token, q, sign := a.webToGoVerify(ctx, r)
  633. rs := service.Order{}.OrderAddByManager(token, q.ShopID, q.JsonStr, sign)
  634. rst := a.toWebFunc(rs)
  635. return rst, nil
  636. }
  637. // OrderCancelByManager 管理员预约取消
  638. func (a Api) OrderCancelByManager(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  639. // 获取token,并验证签名函数
  640. token, q, sign := a.webToGoVerify(ctx, r)
  641. rs := service.Order{}.OrderCancelByManager(token, q.ShopID, q.JsonStr, sign)
  642. rst := a.toWebFunc(rs)
  643. return rst, nil
  644. }
  645. // OrderStatistics 商家预约统计
  646. func (a Api) OrderStatistics(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  647. // 获取token,并验证签名函数
  648. token, q, sign := a.webToGoVerify(ctx, r)
  649. rs := service.Order{}.OrderStatistics(token, q.ShopID, q.JsonStr, sign)
  650. rst := a.toWebFunc(rs)
  651. return rst, nil
  652. }
  653. // ClassOrderQuery 可预约课程预约列表查询
  654. func (a Api) ClassOrderQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  655. // 获取token,并验证签名函数
  656. token, q, sign := a.webToGoVerify(ctx, r)
  657. rs := service.Order{}.ClassOrderQuery(token, q.ShopID, q.JsonStr, sign)
  658. rst := a.toWebFunc(rs)
  659. return rst, nil
  660. }
  661. // VipUserOrderQuery 会员预约列表查询
  662. func (a Api) VipUserOrderQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  663. // 获取token,并验证签名函数
  664. token, q, sign := a.webToGoVerify(ctx, r)
  665. rs := service.Order{}.VipUserOrderQuery(token, q.ShopID, q.JsonStr, sign)
  666. rst := a.toWebFunc(rs)
  667. return rst, nil
  668. }
  669. // ----------------------- 商家心率管理 ---------------------------------------------
  670. // HrSensorsPublicQuery 公共心率带查询
  671. func (a Api) HrSensorsPublicQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  672. // 获取token,并验证签名函数
  673. token, q, sign := a.webToGoVerify(ctx, r)
  674. rs := service.Hr{}.HrSensorsPublicQuery(token, q.ShopID, q.JsonStr, sign)
  675. rst := a.toWebFunc(rs)
  676. return rst, nil
  677. }
  678. // HrSensorsPvtQuery 私有心率带查询
  679. func (a Api) HrSensorsPvtQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  680. // 获取token,并验证签名函数
  681. token, q, sign := a.webToGoVerify(ctx, r)
  682. rs := service.Hr{}.HrSensorsPvtQuery(token, q.ShopID, q.JsonStr, sign)
  683. rst := a.toWebFunc(rs)
  684. return rst, nil
  685. }
  686. // AddHrSensors 公共心率带添加
  687. func (a Api) AddHrSensors(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  688. // 获取token,并验证签名函数
  689. token, q, sign := a.webToGoVerify(ctx, r)
  690. rs := service.Hr{}.AddHrSensors(token, q.ShopID, q.JsonStr, sign)
  691. rst := a.toWebFunc(rs)
  692. return rst, nil
  693. }
  694. // AddPvtHrSensors 私有心率带添加
  695. func (a Api) AddPvtHrSensors(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  696. // 获取token,并验证签名函数
  697. token, q, sign := a.webToGoVerify(ctx, r)
  698. rs := service.Hr{}.AddPvtHrSensors(token, q.ShopID, q.JsonStr, sign)
  699. rst := a.toWebFunc(rs)
  700. return rst, nil
  701. }
  702. // EditHrSensors 心率带编辑
  703. func (a Api) EditHrSensors(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  704. // 获取token,并验证签名函数
  705. token, q, sign := a.webToGoVerify(ctx, r)
  706. rs := service.Hr{}.EditHrSensors(token, q.ShopID, q.JsonStr, sign)
  707. rst := a.toWebFunc(rs)
  708. return rst, nil
  709. }
  710. // HrSensorsDel 心率带删除
  711. func (a Api) HrSensorsDel(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  712. // 获取token,并验证签名函数
  713. token, q, sign := a.webToGoVerify(ctx, r)
  714. rs := service.Hr{}.HrSensorsDel(token, q.ShopID, q.JsonStr, sign)
  715. rst := a.toWebFunc(rs)
  716. return rst, nil
  717. }
  718. // PKGroupChg 修改PK分队
  719. func (a Api) PKGroupChg(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  720. // 获取token,并验证签名函数
  721. token, q, sign := a.webToGoVerify(ctx, r)
  722. rs := service.Hr{}.PKGroupChg(token, q.ShopID, q.JsonStr, sign)
  723. rst := a.toWebFunc(rs)
  724. return rst, nil
  725. }
  726. // BindHrSensor 绑定心率带
  727. func (a Api) BindHrSensor(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  728. // 获取token,并验证签名函数
  729. token, q, sign := a.webToGoVerify(ctx, r)
  730. rs := service.Hr{}.BindHrSensor(token, q.ShopID, q.JsonStr, sign)
  731. rst := a.toWebFunc(rs)
  732. return rst, nil
  733. }
  734. // UnBindHrSensor 解绑心率带
  735. func (a Api) UnBindHrSensor(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  736. // 获取token,并验证签名函数
  737. token, q, sign := a.webToGoVerify(ctx, r)
  738. rs := service.Hr{}.UnBindHrSensor(token, q.ShopID, q.JsonStr, sign)
  739. rst := a.toWebFunc(rs)
  740. return rst, nil
  741. }
  742. // ----------------------- 评分管理 ---------------------------------------------
  743. // ----------------------- 微信管理 ---------------------------------------------
  744. // GenVerifyImageByWinXin 微信登陆获取图片验证码
  745. func (Api) GenVerifyImageByWinXin(ctx context.Context, q *pb.GenVerifyImageRequest) (*pb.GenVerifyImageReply, error) {
  746. height := int(q.Height)
  747. width := int(q.Width)
  748. id, pic := service.VerifyCode{}.GenImage(height, width)
  749. return &pb.GenVerifyImageReply{
  750. CodeId: id,
  751. ImageBase64: pic,
  752. }, nil
  753. }
  754. // VipUserWeiXinLogin 微信登陆
  755. func (a Api) VipUserWeiXinLogin(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  756. // 获取token,并验证签名函数
  757. token, q, sign := a.webToGoVerify(ctx, r)
  758. rs := service.Wx{}.VipUserWeiXinLogin(token, q.ShopID, q.JsonStr, sign)
  759. rst := a.toWebFunc(rs)
  760. return rst, nil
  761. }