base.go 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899
  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. // ShopGroupQuery 商家跨店分组查询
  80. func (a Api) ShopGroupQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  81. // 获取token,并验证签名函数
  82. token, q, sign := a.webToGoVerify(ctx, r)
  83. rs := service.Shop{}.ShopGroupQuery(token, q.ShopID, q.JsonStr, sign)
  84. rst := a.toWebFunc(rs)
  85. return rst, nil
  86. }
  87. // GetShopNavi 查询商家栏目:分级查询,查询一级菜单parentId传入0
  88. func (a Api) GetShopNavi(ctx context.Context, r *pb.GetShopNaviRequest) (*pb.GetShopNaviReply, error) {
  89. token := a.getToken(ctx)
  90. rs := service.Shop{}.GetShopNavi(token, r)
  91. return rs, nil
  92. }
  93. // ShopGroupAdd 商家跨店分组添加
  94. func (a Api) ShopGroupAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  95. // 获取token,并验证签名函数
  96. token, q, sign := a.webToGoVerify(ctx, r)
  97. rs := service.Shop{}.ShopGroupAdd(token, q.ShopID, q.JsonStr, sign)
  98. rst := a.toWebFunc(rs)
  99. return rst, nil
  100. }
  101. // ShopGroupEdit 商家跨店分组编辑
  102. func (a Api) ShopGroupEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  103. // 获取token,并验证签名函数
  104. token, q, sign := a.webToGoVerify(ctx, r)
  105. rs := service.Shop{}.ShopGroupEdit(token, q.ShopID, q.JsonStr, sign)
  106. rst := a.toWebFunc(rs)
  107. return rst, nil
  108. }
  109. // ShopGroupStatusEdit 商家跨店分组状态修改
  110. func (a Api) ShopGroupStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  111. // 获取token,并验证签名函数
  112. token, q, sign := a.webToGoVerify(ctx, r)
  113. rs := service.Shop{}.ShopGroupStatusEdit(token, q.ShopID, q.JsonStr, sign)
  114. rst := a.toWebFunc(rs)
  115. return rst, nil
  116. }
  117. // ShopGroupDetailsQuery 跨店分组详情查询
  118. func (a Api) ShopGroupDetailsQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  119. // 获取token,并验证签名函数
  120. token, q, sign := a.webToGoVerify(ctx, r)
  121. rs := service.Shop{}.ShopGroupDetailsQuery(token, q.ShopID, q.JsonStr, sign)
  122. rst := a.toWebFunc(rs)
  123. return rst, nil
  124. }
  125. // ShopVenueQuery 商家区域查询
  126. func (a Api) ShopVenueQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  127. // 获取token,并验证签名函数
  128. token, q, sign := a.webToGoVerify(ctx, r)
  129. rs := service.Shop{}.ShopVenueQuery(token, q.ShopID, q.JsonStr, sign)
  130. rst := a.toWebFunc(rs)
  131. return rst, nil
  132. }
  133. // ShopVenueAdd 商家区域添加
  134. func (a Api) ShopVenueAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  135. // 获取token,并验证签名函数
  136. token, q, sign := a.webToGoVerify(ctx, r)
  137. rs := service.Shop{}.ShopVenueAdd(token, q.ShopID, q.JsonStr, sign)
  138. rst := a.toWebFunc(rs)
  139. return rst, nil
  140. }
  141. // ShopVenueEdit 商家区域编辑
  142. func (a Api) ShopVenueEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  143. // 获取token,并验证签名函数
  144. token, q, sign := a.webToGoVerify(ctx, r)
  145. rs := service.Shop{}.ShopVenueEdit(token, q.ShopID, q.JsonStr, sign)
  146. rst := a.toWebFunc(rs)
  147. return rst, nil
  148. }
  149. // ShopVenueStatusEdit 商家区域状态修改
  150. func (a Api) ShopVenueStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  151. // 获取token,并验证签名函数
  152. token, q, sign := a.webToGoVerify(ctx, r)
  153. rs := service.Shop{}.ShopVenueStatusEdit(token, q.ShopID, q.JsonStr, sign)
  154. rst := a.toWebFunc(rs)
  155. return rst, nil
  156. }
  157. // ShopVenueEquipQuery 商家设备查询
  158. func (a Api) ShopVenueEquipQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  159. // 获取token,并验证签名函数
  160. token, q, sign := a.webToGoVerify(ctx, r)
  161. rs := service.Shop{}.ShopVenueEquipQuery(token, q.ShopID, q.JsonStr, sign)
  162. rst := a.toWebFunc(rs)
  163. return rst, nil
  164. }
  165. // ShopVenueEquipEdit 商家设备编辑
  166. func (a Api) ShopVenueEquipEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  167. // 获取token,并验证签名函数
  168. token, q, sign := a.webToGoVerify(ctx, r)
  169. rs := service.Shop{}.ShopVenueEquipEdit(token, q.ShopID, q.JsonStr, sign)
  170. rst := a.toWebFunc(rs)
  171. return rst, nil
  172. }
  173. // ShopVenueEquipStatusEdit 商家设备状态修改
  174. func (a Api) ShopVenueEquipStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  175. // 获取token,并验证签名函数
  176. token, q, sign := a.webToGoVerify(ctx, r)
  177. rs := service.Shop{}.ShopVenueEquipStatusEdit(token, q.ShopID, q.JsonStr, sign)
  178. rst := a.toWebFunc(rs)
  179. return rst, nil
  180. }
  181. // ShopVenueEquipStatusDel 商家设备删除
  182. func (a Api) ShopVenueEquipStatusDel(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  183. // 获取token,并验证签名函数
  184. token, q, sign := a.webToGoVerify(ctx, r)
  185. rs := service.Shop{}.ShopVenueEquipStatusEdit(token, q.ShopID, q.JsonStr, sign)
  186. rst := a.toWebFunc(rs)
  187. return rst, nil
  188. }
  189. // ShopConfigQuery 商家配置查询
  190. func (a Api) ShopConfigQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  191. // 获取token,并验证签名函数
  192. token, q, sign := a.webToGoVerify(ctx, r)
  193. rs := service.Shop{}.ShopConfigQuery(token, q.ShopID, q.JsonStr, sign)
  194. rst := a.toWebFunc(rs)
  195. return rst, nil
  196. }
  197. // ShopConfigEdit 商家配置编辑
  198. func (a Api) ShopConfigEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  199. // 获取token,并验证签名函数
  200. token, q, sign := a.webToGoVerify(ctx, r)
  201. rs := service.Shop{}.ShopConfigEdit(token, q.ShopID, q.JsonStr, sign)
  202. rst := a.toWebFunc(rs)
  203. return rst, nil
  204. }
  205. // --------------------------商家会员管理----------------------------------------------------
  206. // ShopVipUserQuery 商家会员查询
  207. func (a Api) ShopVipUserQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  208. // 获取token,并验证签名函数
  209. token, q, sign := a.webToGoVerify(ctx, r)
  210. rs := service.User{}.ShopVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  211. rst := a.toWebFunc(rs)
  212. return rst, nil
  213. }
  214. // ShopVipUserAdd 商家会员添加
  215. func (a Api) ShopVipUserAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  216. // 获取token,并验证签名函数
  217. token, q, sign := a.webToGoVerify(ctx, r)
  218. rs := service.User{}.ShopVipUserAdd(token, q.ShopID, q.JsonStr, sign)
  219. rst := a.toWebFunc(rs)
  220. return rst, nil
  221. }
  222. // ShopVipUserEdit 商家会员编辑
  223. func (a Api) ShopVipUserEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  224. // 获取token,并验证签名函数
  225. token, q, sign := a.webToGoVerify(ctx, r)
  226. rs := service.User{}.ShopVipUserEdit(token, q.ShopID, q.JsonStr, sign)
  227. rst := a.toWebFunc(rs)
  228. return rst, nil
  229. }
  230. // ShopVipUserStatusEdit 商家会员状态编辑
  231. func (a Api) ShopVipUserStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  232. // 获取token,并验证签名函数
  233. token, q, sign := a.webToGoVerify(ctx, r)
  234. rs := service.User{}.ShopVipUserStatusEdit(token, q.ShopID, q.JsonStr, sign)
  235. rst := a.toWebFunc(rs)
  236. return rst, nil
  237. }
  238. // AcrossVipUserQuery 跨店会员查询
  239. func (a Api) AcrossVipUserQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  240. // 获取token,并验证签名函数
  241. token, q, sign := a.webToGoVerify(ctx, r)
  242. rs := service.User{}.AcrossVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  243. rst := a.toWebFunc(rs)
  244. return rst, nil
  245. }
  246. // AcrossVipUserAdd 跨店会员添加
  247. func (a Api) AcrossVipUserAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  248. // 获取token,并验证签名函数
  249. token, q, sign := a.webToGoVerify(ctx, r)
  250. rs := service.User{}.AcrossVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  251. rst := a.toWebFunc(rs)
  252. return rst, nil
  253. }
  254. // AcrossVipUserDel 跨店会员删除
  255. func (a Api) AcrossVipUserDel(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  256. // 获取token,并验证签名函数
  257. token, q, sign := a.webToGoVerify(ctx, r)
  258. rs := service.User{}.AcrossVipUserDel(token, q.ShopID, q.JsonStr, sign)
  259. rst := a.toWebFunc(rs)
  260. return rst, nil
  261. }
  262. // VipPhoneQuery 商家会员手机号查询
  263. func (a Api) VipPhoneQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  264. // 获取token,并验证签名函数
  265. token, q, sign := a.webToGoVerify(ctx, r)
  266. rs := service.User{}.VipPhoneQuery(token, q.ShopID, q.JsonStr, sign)
  267. rst := a.toWebFunc(rs)
  268. return rst, nil
  269. }
  270. // VipMainPhoneCheck 商家会员主手机号校验
  271. func (a Api) VipMainPhoneCheck(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  272. // 获取token,并验证签名函数
  273. token, q, sign := a.webToGoVerify(ctx, r)
  274. rs := service.User{}.VipMainPhoneCheck(token, q.ShopID, q.JsonStr, sign)
  275. rst := a.toWebFunc(rs)
  276. return rst, nil
  277. }
  278. // VipOtherPhoneAdd 商家会员其他手机号添加
  279. func (a Api) VipOtherPhoneAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  280. // 获取token,并验证签名函数
  281. token, q, sign := a.webToGoVerify(ctx, r)
  282. rs := service.User{}.VipOtherPhoneAdd(token, q.ShopID, q.JsonStr, sign)
  283. rst := a.toWebFunc(rs)
  284. return rst, nil
  285. }
  286. // VipOtherPhoneEdit 商家会员其他手机号编辑
  287. func (a Api) VipOtherPhoneEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  288. // 获取token,并验证签名函数
  289. token, q, sign := a.webToGoVerify(ctx, r)
  290. rs := service.User{}.VipOtherPhoneEdit(token, q.ShopID, q.JsonStr, sign)
  291. rst := a.toWebFunc(rs)
  292. return rst, nil
  293. }
  294. // TempVipUserQuery 商家临时会员查询
  295. func (a Api) TempVipUserQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  296. // 获取token,并验证签名函数
  297. token, q, sign := a.webToGoVerify(ctx, r)
  298. rs := service.User{}.TempVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  299. rst := a.toWebFunc(rs)
  300. return rst, nil
  301. }
  302. // TempVipUserAdd 商家临时会员添加
  303. func (a Api) TempVipUserAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  304. // 获取token,并验证签名函数
  305. token, q, sign := a.webToGoVerify(ctx, r)
  306. rs := service.User{}.TempVipUserAdd(token, q.ShopID, q.JsonStr, sign)
  307. rst := a.toWebFunc(rs)
  308. return rst, nil
  309. }
  310. // TempVipUserEdit 商家临时会员编辑
  311. func (a Api) TempVipUserEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  312. // 获取token,并验证签名函数
  313. token, q, sign := a.webToGoVerify(ctx, r)
  314. rs := service.User{}.TempVipUserEdit(token, q.ShopID, q.JsonStr, sign)
  315. rst := a.toWebFunc(rs)
  316. return rst, nil
  317. }
  318. // TempVipUserStatusEdit 商家临时会员状态修改
  319. func (a Api) TempVipUserStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  320. // 获取token,并验证签名函数
  321. token, q, sign := a.webToGoVerify(ctx, r)
  322. rs := service.User{}.TempVipUserStatusEdit(token, q.ShopID, q.JsonStr, sign)
  323. rst := a.toWebFunc(rs)
  324. return rst, nil
  325. }
  326. // VipHourEdit 商家会员课时编辑
  327. func (a Api) VipHourEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  328. // 获取token,并验证签名函数
  329. token, q, sign := a.webToGoVerify(ctx, r)
  330. rs := service.User{}.TempVipUserStatusEdit(token, q.ShopID, q.JsonStr, sign)
  331. rst := a.toWebFunc(rs)
  332. return rst, nil
  333. }
  334. // VipConsumeListQuery 商家会员消费课时查询
  335. func (a Api) VipConsumeListQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  336. // 获取token,并验证签名函数
  337. token, q, sign := a.webToGoVerify(ctx, r)
  338. rs := service.User{}.VipConsumeListQuery(token, q.ShopID, q.JsonStr, sign)
  339. rst := a.toWebFunc(rs)
  340. return rst, nil
  341. }
  342. // VipConsumeDetailQuery 商家会员消费课时详情查询
  343. func (a Api) VipConsumeDetailQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  344. // 获取token,并验证签名函数
  345. token, q, sign := a.webToGoVerify(ctx, r)
  346. rs := service.User{}.VipConsumeDetailQuery(token, q.ShopID, q.JsonStr, sign)
  347. rst := a.toWebFunc(rs)
  348. return rst, nil
  349. }
  350. // VipClassRelationEdit 商家会员对应课程增删
  351. func (a Api) VipClassRelationEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  352. // 获取token,并验证签名函数
  353. token, q, sign := a.webToGoVerify(ctx, r)
  354. rs := service.User{}.VipClassRelationEdit(token, q.ShopID, q.JsonStr, sign)
  355. rst := a.toWebFunc(rs)
  356. return rst, nil
  357. }
  358. // VipHourChgQuery 商家会员消费课时详情查询
  359. func (a Api) VipHourChgQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  360. // 获取token,并验证签名函数
  361. token, q, sign := a.webToGoVerify(ctx, r)
  362. rs := service.User{}.VipHourChgQuery(token, q.ShopID, q.JsonStr, sign)
  363. rst := a.toWebFunc(rs)
  364. return rst, nil
  365. }
  366. // GetSimpleQiNiuToken 获取七牛简单Token
  367. func (a Api) GetSimpleQiNiuToken(ctx context.Context, r *pb.DefaultRequest) (*pb.QiNiuTokenReply, error) {
  368. token := a.getToken(ctx)
  369. rs := service.User{}.GetSimpleQiNiuToken(token)
  370. return rs, nil
  371. }
  372. // GetOverlayImgQiNiuToken 获取七牛可覆盖文件Token
  373. func (a Api) GetOverlayImgQiNiuToken(ctx context.Context, r *pb.GetOverlayImgRequest) (*pb.QiNiuTokenReply, error) {
  374. token := a.getToken(ctx)
  375. rs := service.User{}.GetOverlayImgQiNiuToken(token, r.FileName)
  376. return rs, nil
  377. }
  378. // ClassQuery 商家基础课程查询
  379. func (a Api) ClassQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  380. // 获取token,并验证签名函数
  381. token, q, sign := a.webToGoVerify(ctx, r)
  382. rs := service.Class{}.ClassQuery(token, q.ShopID, q.JsonStr, sign)
  383. rst := a.toWebFunc(rs)
  384. return rst, nil
  385. }
  386. // ClassAdd 商家基础课程添加
  387. func (a Api) ClassAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  388. // 获取token,并验证签名函数
  389. token, q, sign := a.webToGoVerify(ctx, r)
  390. rs := service.Class{}.ClassAdd(token, q.ShopID, q.JsonStr, sign)
  391. rst := a.toWebFunc(rs)
  392. return rst, nil
  393. }
  394. // ClassEdit 商家基础课程编辑
  395. func (a Api) ClassEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  396. // 获取token,并验证签名函数
  397. token, q, sign := a.webToGoVerify(ctx, r)
  398. rs := service.Class{}.ClassEdit(token, q.ShopID, q.JsonStr, sign)
  399. rst := a.toWebFunc(rs)
  400. return rst, nil
  401. }
  402. // ClassStatusEdit 商家基础课程状态编辑
  403. func (a Api) ClassStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  404. // 获取token,并验证签名函数
  405. token, q, sign := a.webToGoVerify(ctx, r)
  406. rs := service.Class{}.ClassStatusEdit(token, q.ShopID, q.JsonStr, sign)
  407. rst := a.toWebFunc(rs)
  408. return rst, nil
  409. }
  410. // ClassColorEdit 商家基础课程颜色修改
  411. func (a Api) ClassColorEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  412. // 获取token,并验证签名函数
  413. token, q, sign := a.webToGoVerify(ctx, r)
  414. rs := service.Class{}.ClassColorEdit(token, q.ShopID, q.JsonStr, sign)
  415. rst := a.toWebFunc(rs)
  416. return rst, nil
  417. }
  418. // ClassWxVisibleEdit 商家基础课程微信显示状态修改
  419. func (a Api) ClassWxVisibleEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  420. // 获取token,并验证签名函数
  421. token, q, sign := a.webToGoVerify(ctx, r)
  422. rs := service.Class{}.ClassWxVisibleEdit(token, q.ShopID, q.JsonStr, sign)
  423. rst := a.toWebFunc(rs)
  424. return rst, nil
  425. }
  426. // ClassVipEdit 商家课程会员增删
  427. func (a Api) ClassVipEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  428. // 获取token,并验证签名函数
  429. token, q, sign := a.webToGoVerify(ctx, r)
  430. rs := service.Class{}.ClassVipEdit(token, q.ShopID, q.JsonStr, sign)
  431. rst := a.toWebFunc(rs)
  432. return rst, nil
  433. }
  434. // SttPlanBasicQuery 商家课程表模板总览查询
  435. func (a Api) SttPlanBasicQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  436. // 获取token,并验证签名函数
  437. token, q, sign := a.webToGoVerify(ctx, r)
  438. rs := service.Class{}.SttPlanBasicQuery(token, q.ShopID, q.JsonStr, sign)
  439. rst := a.toWebFunc(rs)
  440. return rst, nil
  441. }
  442. // SttPlanBasicAdd 商家课程表模板总览添加
  443. func (a Api) SttPlanBasicAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  444. // 获取token,并验证签名函数
  445. token, q, sign := a.webToGoVerify(ctx, r)
  446. rs := service.Class{}.SttPlanBasicAdd(token, q.ShopID, q.JsonStr, sign)
  447. rst := a.toWebFunc(rs)
  448. return rst, nil
  449. }
  450. // SttPlanBasicEdit 商家课程表模板总览编辑
  451. func (a Api) SttPlanBasicEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  452. // 获取token,并验证签名函数
  453. token, q, sign := a.webToGoVerify(ctx, r)
  454. rs := service.Class{}.SttPlanBasicEdit(token, q.ShopID, q.JsonStr, sign)
  455. rst := a.toWebFunc(rs)
  456. return rst, nil
  457. }
  458. // SttPlanBasicShopEdit 商家课程表模板总览所属商家修改
  459. func (a Api) SttPlanBasicShopEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  460. // 获取token,并验证签名函数
  461. token, q, sign := a.webToGoVerify(ctx, r)
  462. rs := service.Class{}.SttPlanBasicShopEdit(token, q.ShopID, q.JsonStr, sign)
  463. rst := a.toWebFunc(rs)
  464. return rst, nil
  465. }
  466. // SttPlanBasicStatusEdit 商家课程表模板状态
  467. func (a Api) SttPlanBasicStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  468. // 获取token,并验证签名函数
  469. token, q, sign := a.webToGoVerify(ctx, r)
  470. rs := service.Class{}.SttPlanBasicStatusEdit(token, q.ShopID, q.JsonStr, sign)
  471. rst := a.toWebFunc(rs)
  472. return rst, nil
  473. }
  474. // SttPlanBasicPublish 商家课程表模板发布
  475. func (a Api) SttPlanBasicPublish(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  476. // 获取token,并验证签名函数
  477. token, q, sign := a.webToGoVerify(ctx, r)
  478. rs := service.Class{}.SttPlanBasicPublish(token, q.ShopID, q.JsonStr, sign)
  479. rst := a.toWebFunc(rs)
  480. return rst, nil
  481. }
  482. // SttPlanPreview 商家课程表模板详情预览
  483. func (a Api) SttPlanPreview(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  484. // 获取token,并验证签名函数
  485. token, q, sign := a.webToGoVerify(ctx, r)
  486. rs := service.Class{}.SttPlanPreview(token, q.ShopID, q.JsonStr, sign)
  487. rst := a.toWebFunc(rs)
  488. return rst, nil
  489. }
  490. // SttPlanCopy 商家课程表模板复制
  491. func (a Api) SttPlanCopy(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  492. // 获取token,并验证签名函数
  493. token, q, sign := a.webToGoVerify(ctx, r)
  494. rs := service.Class{}.SttPlanCopy(token, q.ShopID, q.JsonStr, sign)
  495. rst := a.toWebFunc(rs)
  496. return rst, nil
  497. }
  498. // SttPlanDetailQuery 商家课程表模板详情查询
  499. func (a Api) SttPlanDetailQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  500. // 获取token,并验证签名函数
  501. token, q, sign := a.webToGoVerify(ctx, r)
  502. rs := service.Class{}.SttPlanDetailQuery(token, q.ShopID, q.JsonStr, sign)
  503. rst := a.toWebFunc(rs)
  504. return rst, nil
  505. }
  506. // SttPlanDetailBatchSave 商家课程表模板详情批量保存
  507. func (a Api) SttPlanDetailBatchSave(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  508. // 获取token,并验证签名函数
  509. token, q, sign := a.webToGoVerify(ctx, r)
  510. rs := service.Class{}.SttPlanDetailBatchSave(token, q.ShopID, q.JsonStr, sign)
  511. rst := a.toWebFunc(rs)
  512. return rst, nil
  513. }
  514. // STTBasicQuery 商家课程表总览查询
  515. func (a Api) STTBasicQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  516. // 获取token,并验证签名函数
  517. token, q, sign := a.webToGoVerify(ctx, r)
  518. rs := service.Class{}.STTBasicQuery(token, q.ShopID, q.JsonStr, sign)
  519. rst := a.toWebFunc(rs)
  520. return rst, nil
  521. }
  522. // STTBasicAdd 商家课程表总览添加
  523. func (a Api) STTBasicAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  524. // 获取token,并验证签名函数
  525. token, q, sign := a.webToGoVerify(ctx, r)
  526. rs := service.Class{}.STTBasicAdd(token, q.ShopID, q.JsonStr, sign)
  527. rst := a.toWebFunc(rs)
  528. return rst, nil
  529. }
  530. // STTBasicEdit 商家课程表总览编辑
  531. func (a Api) STTBasicEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  532. // 获取token,并验证签名函数
  533. token, q, sign := a.webToGoVerify(ctx, r)
  534. rs := service.Class{}.STTBasicEdit(token, q.ShopID, q.JsonStr, sign)
  535. rst := a.toWebFunc(rs)
  536. return rst, nil
  537. }
  538. // STTBasicStatusEdit 商家课程表总览状态修改
  539. func (a Api) STTBasicStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  540. // 获取token,并验证签名函数
  541. token, q, sign := a.webToGoVerify(ctx, r)
  542. rs := service.Class{}.STTBasicStatusEdit(token, q.ShopID, q.JsonStr, sign)
  543. rst := a.toWebFunc(rs)
  544. return rst, nil
  545. }
  546. // STTBasicPreview 商家课程表详情预览
  547. func (a Api) STTBasicPreview(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  548. // 获取token,并验证签名函数
  549. token, q, sign := a.webToGoVerify(ctx, r)
  550. rs := service.Class{}.STTBasicPreview(token, q.ShopID, q.JsonStr, sign)
  551. rst := a.toWebFunc(rs)
  552. return rst, nil
  553. }
  554. // STTBasicCopy 商家课程表模板复制
  555. func (a Api) STTBasicCopy(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  556. // 获取token,并验证签名函数
  557. token, q, sign := a.webToGoVerify(ctx, r)
  558. rs := service.Class{}.STTBasicCopy(token, q.ShopID, q.JsonStr, sign)
  559. rst := a.toWebFunc(rs)
  560. return rst, nil
  561. }
  562. // STTBasicOfflineEdit 商家课程表上下线状态修改
  563. func (a Api) STTBasicOfflineEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  564. // 获取token,并验证签名函数
  565. token, q, sign := a.webToGoVerify(ctx, r)
  566. rs := service.Class{}.STTBasicOfflineEdit(token, q.ShopID, q.JsonStr, sign)
  567. rst := a.toWebFunc(rs)
  568. return rst, nil
  569. }
  570. // STTDetailListQuery 商家课程表详情列表查询
  571. func (a Api) STTDetailListQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  572. // 获取token,并验证签名函数
  573. token, q, sign := a.webToGoVerify(ctx, r)
  574. rs := service.Class{}.STTDetailListQuery(token, q.ShopID, q.JsonStr, sign)
  575. rst := a.toWebFunc(rs)
  576. return rst, nil
  577. }
  578. // STTBasicDetailBatchSave 商家课程表详情批量保存
  579. func (a Api) STTBasicDetailBatchSave(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  580. // 获取token,并验证签名函数
  581. token, q, sign := a.webToGoVerify(ctx, r)
  582. rs := service.Class{}.STTBasicDetailBatchSave(token, q.ShopID, q.JsonStr, sign)
  583. rst := a.toWebFunc(rs)
  584. return rst, nil
  585. }
  586. // STTDetailAllowDelCheck 商家课程表详情判断是否可删除
  587. func (a Api) STTDetailAllowDelCheck(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  588. // 获取token,并验证签名函数
  589. token, q, sign := a.webToGoVerify(ctx, r)
  590. rs := service.Class{}.STTDetailAllowDelCheck(token, q.ShopID, q.JsonStr, sign)
  591. rst := a.toWebFunc(rs)
  592. return rst, nil
  593. }
  594. // ----------------------- 商家上下课管理 ---------------------------------------------
  595. // ----------------------- 商家预约管理 ---------------------------------------------
  596. // OrderListQuery 预约记录查询
  597. func (a Api) OrderListQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  598. // 获取token,并验证签名函数
  599. token, q, sign := a.webToGoVerify(ctx, r)
  600. rs := service.Order{}.OrderListQuery(token, q.ShopID, q.JsonStr, sign)
  601. rst := a.toWebFunc(rs)
  602. return rst, nil
  603. }
  604. // OrderAddByManager 管理员预约添加
  605. func (a Api) OrderAddByManager(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  606. // 获取token,并验证签名函数
  607. token, q, sign := a.webToGoVerify(ctx, r)
  608. rs := service.Order{}.OrderAddByManager(token, q.ShopID, q.JsonStr, sign)
  609. rst := a.toWebFunc(rs)
  610. return rst, nil
  611. }
  612. // OrderCancelByManager 管理员预约取消
  613. func (a Api) OrderCancelByManager(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  614. // 获取token,并验证签名函数
  615. token, q, sign := a.webToGoVerify(ctx, r)
  616. rs := service.Order{}.OrderCancelByManager(token, q.ShopID, q.JsonStr, sign)
  617. rst := a.toWebFunc(rs)
  618. return rst, nil
  619. }
  620. // OrderStatistics 商家预约统计
  621. func (a Api) OrderStatistics(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  622. // 获取token,并验证签名函数
  623. token, q, sign := a.webToGoVerify(ctx, r)
  624. rs := service.Order{}.OrderStatistics(token, q.ShopID, q.JsonStr, sign)
  625. rst := a.toWebFunc(rs)
  626. return rst, nil
  627. }
  628. // ClassOrderQuery 可预约课程预约列表查询
  629. func (a Api) ClassOrderQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  630. // 获取token,并验证签名函数
  631. token, q, sign := a.webToGoVerify(ctx, r)
  632. rs := service.Order{}.ClassOrderQuery(token, q.ShopID, q.JsonStr, sign)
  633. rst := a.toWebFunc(rs)
  634. return rst, nil
  635. }
  636. // VipUserOrderQuery 会员预约列表查询
  637. func (a Api) VipUserOrderQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  638. // 获取token,并验证签名函数
  639. token, q, sign := a.webToGoVerify(ctx, r)
  640. rs := service.Order{}.VipUserOrderQuery(token, q.ShopID, q.JsonStr, sign)
  641. rst := a.toWebFunc(rs)
  642. return rst, nil
  643. }
  644. // ----------------------- 商家心率管理 ---------------------------------------------
  645. // HrSensorsPublicQuery 公共心率带查询
  646. func (a Api) HrSensorsPublicQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  647. // 获取token,并验证签名函数
  648. token, q, sign := a.webToGoVerify(ctx, r)
  649. rs := service.Hr{}.HrSensorsPublicQuery(token, q.ShopID, q.JsonStr, sign)
  650. rst := a.toWebFunc(rs)
  651. return rst, nil
  652. }
  653. // HrSensorsPvtQuery 私有心率带查询
  654. func (a Api) HrSensorsPvtQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  655. // 获取token,并验证签名函数
  656. token, q, sign := a.webToGoVerify(ctx, r)
  657. rs := service.Hr{}.HrSensorsPvtQuery(token, q.ShopID, q.JsonStr, sign)
  658. rst := a.toWebFunc(rs)
  659. return rst, nil
  660. }
  661. // AddHrSensors 公共心率带添加
  662. func (a Api) AddHrSensors(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  663. // 获取token,并验证签名函数
  664. token, q, sign := a.webToGoVerify(ctx, r)
  665. rs := service.Hr{}.AddHrSensors(token, q.ShopID, q.JsonStr, sign)
  666. rst := a.toWebFunc(rs)
  667. return rst, nil
  668. }
  669. // AddPvtHrSensors 私有心率带添加
  670. func (a Api) AddPvtHrSensors(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  671. // 获取token,并验证签名函数
  672. token, q, sign := a.webToGoVerify(ctx, r)
  673. rs := service.Hr{}.AddPvtHrSensors(token, q.ShopID, q.JsonStr, sign)
  674. rst := a.toWebFunc(rs)
  675. return rst, nil
  676. }
  677. // EditHrSensors 心率带编辑
  678. func (a Api) EditHrSensors(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  679. // 获取token,并验证签名函数
  680. token, q, sign := a.webToGoVerify(ctx, r)
  681. rs := service.Hr{}.EditHrSensors(token, q.ShopID, q.JsonStr, sign)
  682. rst := a.toWebFunc(rs)
  683. return rst, nil
  684. }
  685. // HrSensorsDel 心率带删除
  686. func (a Api) HrSensorsDel(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  687. // 获取token,并验证签名函数
  688. token, q, sign := a.webToGoVerify(ctx, r)
  689. rs := service.Hr{}.HrSensorsDel(token, q.ShopID, q.JsonStr, sign)
  690. rst := a.toWebFunc(rs)
  691. return rst, nil
  692. }
  693. // PKGroupChg 修改PK分队
  694. func (a Api) PKGroupChg(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  695. // 获取token,并验证签名函数
  696. token, q, sign := a.webToGoVerify(ctx, r)
  697. rs := service.Hr{}.PKGroupChg(token, q.ShopID, q.JsonStr, sign)
  698. rst := a.toWebFunc(rs)
  699. return rst, nil
  700. }
  701. // BindHrSensor 绑定心率带
  702. func (a Api) BindHrSensor(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  703. // 获取token,并验证签名函数
  704. token, q, sign := a.webToGoVerify(ctx, r)
  705. rs := service.Hr{}.BindHrSensor(token, q.ShopID, q.JsonStr, sign)
  706. rst := a.toWebFunc(rs)
  707. return rst, nil
  708. }
  709. // UnBindHrSensor 解绑心率带
  710. func (a Api) UnBindHrSensor(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  711. // 获取token,并验证签名函数
  712. token, q, sign := a.webToGoVerify(ctx, r)
  713. rs := service.Hr{}.UnBindHrSensor(token, q.ShopID, q.JsonStr, sign)
  714. rst := a.toWebFunc(rs)
  715. return rst, nil
  716. }
  717. // ----------------------- 评分管理 ---------------------------------------------