base.go 34 KB

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