base.go 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364
  1. package grpc
  2. import (
  3. "context"
  4. "encoding/json"
  5. pb "sportfitness/base/api/grpc/base"
  6. "sportfitness/base/assembly/base/service"
  7. "sportfitness/base/errors"
  8. "sportfitness/base/global"
  9. "strings"
  10. "time"
  11. "google.golang.org/grpc/metadata"
  12. )
  13. type Api struct {
  14. pb.UnimplementedApiServer
  15. }
  16. func (Api) getRemoteIp(ctx context.Context) string {
  17. if md, ok := metadata.FromIncomingContext(ctx); ok {
  18. ip := md.Get("x-forwarded-for")
  19. if len(ip) > 0 {
  20. return ip[0]
  21. }
  22. }
  23. return ""
  24. }
  25. func (Api) getUserAgent(ctx context.Context) string {
  26. if md, ok := metadata.FromIncomingContext(ctx); ok {
  27. agents := md.Get("user-agent")
  28. return strings.Join(agents, "\n")
  29. }
  30. return ""
  31. }
  32. func (Api) getToken(ctx context.Context) (token string) {
  33. if md, ok := metadata.FromIncomingContext(ctx); ok {
  34. sl := md.Get("Token")
  35. if len(sl) >= 1 {
  36. token = sl[0]
  37. }
  38. }
  39. return
  40. }
  41. func (Api) checkRs(rs string) bool {
  42. b := false
  43. rsMap := make(map[string]interface{})
  44. err := json.Unmarshal([]byte(rs), &rsMap)
  45. if err != nil {
  46. panic(errors.J2MError)
  47. }
  48. code := int(rsMap["code"].(float64))
  49. if code == 0 {
  50. b = true
  51. } else {
  52. b = false
  53. }
  54. return b
  55. }
  56. // webToGoVerify 前端入Go验证签名函数,只允许StandardRequest进行验证
  57. func (a Api) webToGoVerify(ctx context.Context, q *pb.StandardRequest) (string, *pb.StandardRequest, string) {
  58. token := a.getToken(ctx)
  59. //wtgStr = q.JsonStr
  60. wtgSign := q.Sign // 生成新签名
  61. return token, q, wtgSign
  62. }
  63. // courseToGoVerify 前端入Go验证签名函数,只允许StandardRequest进行验证
  64. func (a Api) courseToGoVerify(ctx context.Context, q *pb.CourseStandardRequest) (string, *pb.CourseStandardRequest, string) {
  65. token := a.getToken(ctx)
  66. //wtgStr = q.JsonStr
  67. wtgSign := q.Sign // 生成新签名
  68. return token, q, wtgSign
  69. }
  70. func (Api) goToWebSigner(content string) (gtwStr, gtwSign string) {
  71. gtwStr = content
  72. gtwSign = ""
  73. return
  74. }
  75. func (a Api) toWebFunc(content string) *pb.StandardReply {
  76. gtwStr, gtwSign := a.goToWebSigner(content) // 空函数,go透传给前台数据时生成签名
  77. return &pb.StandardReply{
  78. JsonRst: gtwStr,
  79. Sign: gtwSign,
  80. }
  81. }
  82. func (a Api) SignIn(ctx context.Context, q *pb.SignInRequest) (*pb.SignInReply, error) {
  83. token := service.User{}.SignInUserCodePassword(
  84. q.Name, q.Password, a.getRemoteIp(ctx), a.getUserAgent(ctx), q.CodeId, q.VerifyCode)
  85. return &pb.SignInReply{Token: token}, nil
  86. }
  87. func (a Api) GenVerifyImage(ctx context.Context, q *pb.GenVerifyImageRequest) (*pb.GenVerifyImageReply, error) {
  88. codeId, imageBase64 := service.User{}.GenVerifyImage(q.Height, q.Width)
  89. return &pb.GenVerifyImageReply{ImageBase64: imageBase64, CodeId: codeId}, nil
  90. }
  91. func (a Api) SignOut(ctx context.Context, q *pb.DefaultRequest) (*pb.DefaultReply, error) {
  92. token := a.getToken(ctx)
  93. service.User{}.SignOut(token)
  94. return &pb.DefaultReply{}, nil
  95. }
  96. //func (a Api) SignUpInWithPhone() {
  97. //
  98. //}
  99. // ----------------------- 商家信息管理 ---------------------------------------------
  100. // AcrossUserSimpleQuery 可跨店会员简单查询
  101. func (a Api) AcrossUserSimpleQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  102. // 获取token,并验证签名函数
  103. token, q, sign := a.webToGoVerify(ctx, r)
  104. rs := service.User{}.AcrossUserSimpleQuery(token, q.ShopID, q.JsonStr, sign)
  105. rst := a.toWebFunc(rs)
  106. return rst, nil
  107. }
  108. // VipUserSimpleQuery 会员简单查询
  109. func (a Api) VipUserSimpleQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  110. // 获取token,并验证签名函数
  111. token, q, sign := a.webToGoVerify(ctx, r)
  112. rs := service.User{}.VipUserSimpleQuery(token, q.ShopID, q.JsonStr, sign)
  113. rst := a.toWebFunc(rs)
  114. return rst, nil
  115. }
  116. // TempVipUserSimpleQuery 临时会员简单查询
  117. func (a Api) TempVipUserSimpleQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  118. // 获取token,并验证签名函数
  119. token, q, sign := a.webToGoVerify(ctx, r)
  120. rs := service.User{}.TempVipUserSimpleQuery(token, q.ShopID, q.JsonStr, sign)
  121. rst := a.toWebFunc(rs)
  122. return rst, nil
  123. }
  124. // ClassSimpleQuery 课目简单查询
  125. func (a Api) ClassSimpleQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  126. // 获取token,并验证签名函数
  127. token, q, sign := a.webToGoVerify(ctx, r)
  128. rs := service.Class{}.ClassSimpleQuery(token, q.ShopID, q.JsonStr, sign)
  129. rst := a.toWebFunc(rs)
  130. return rst, nil
  131. }
  132. // SelectHrSensors 心率带简单查询
  133. func (a Api) SelectHrSensors(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  134. // 获取token,并验证签名函数
  135. token, q, sign := a.webToGoVerify(ctx, r)
  136. rs := service.Hr{}.SelectHrSensors(token, q.ShopID, q.JsonStr, sign)
  137. rst := a.toWebFunc(rs)
  138. return rst, nil
  139. }
  140. // GroupSimpleQueryByShopID 商家分组简单查询-通过商家自己ID查询
  141. func (a Api) GroupSimpleQueryByShopID(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  142. // 获取token,并验证签名函数
  143. token, q, sign := a.webToGoVerify(ctx, r)
  144. rs := service.Shop{}.GroupSimpleQueryByShopID(token, q.ShopID, q.JsonStr, sign)
  145. rst := a.toWebFunc(rs)
  146. return rst, nil
  147. }
  148. // EqSimpleQuery 商家分组简单查询-通过商家自己ID查询
  149. func (a Api) EqSimpleQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  150. // 获取token,并验证签名函数
  151. token, q, sign := a.webToGoVerify(ctx, r)
  152. rs := service.Shop{}.EqSimpleQuery(token, q.ShopID, q.JsonStr, sign)
  153. rst := a.toWebFunc(rs)
  154. return rst, nil
  155. }
  156. // ----------------------- 商家信息管理 ---------------------------------------------
  157. func (a Api) ManageableShopList(ctx context.Context, r *pb.ShopListRequest) (*pb.ShopListReply, error) {
  158. token := a.getToken(ctx)
  159. rs := service.Shop{}.ManageableShopList(token, r)
  160. return rs, nil
  161. }
  162. func (a Api) ManageableGetShopInfo(ctx context.Context, r *pb.ShopDetailRequest) (*pb.ShopInfo, error) {
  163. token := a.getToken(ctx)
  164. rs := service.Shop{}.ManageableGetShopInfo(token, r)
  165. return rs, nil
  166. }
  167. func (a Api) ShopLicenseList(ctx context.Context, r *pb.ShopDetailRequest) (*pb.LicenseList, error) {
  168. token := a.getToken(ctx)
  169. rs := service.Shop{}.ShopLicenseList(token, r)
  170. return rs, nil
  171. }
  172. //func (a Api) ShopLicenseTypeMap(ctx context.Context, r *pb.IdList) (*pb.LicenseTypeMapReply, error) {
  173. // token := a.getToken(ctx)
  174. //
  175. // _ = service.Shop{}.LicenseTypeMap(token, r)
  176. //
  177. // return nil, nil
  178. //}
  179. // ShopGroupQuery 商家跨店分组查询
  180. func (a Api) ShopGroupQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  181. // 获取token,并验证签名函数
  182. token, q, sign := a.webToGoVerify(ctx, r)
  183. rs := service.Shop{}.ShopGroupQuery(token, q.ShopID, q.JsonStr, sign)
  184. rst := a.toWebFunc(rs)
  185. return rst, nil
  186. }
  187. // GetShopNavi 查询商家栏目:分级查询,查询一级菜单parentId传入0
  188. func (a Api) GetShopNavi(ctx context.Context, r *pb.GetShopNaviRequest) (*pb.GetShopNaviReply, error) {
  189. token := a.getToken(ctx)
  190. rs := service.Shop{}.GetShopNavi(token, r)
  191. return rs, nil
  192. }
  193. // GetShopNaviAll 查询商家全部栏目
  194. func (a Api) GetShopNaviAll(ctx context.Context, r *pb.GetShopNaviAllRequest) (*pb.GetShopNaviAllReply, error) {
  195. token := a.getToken(ctx)
  196. rs := service.Shop{}.GetShopNaviAll(token, r)
  197. return rs, nil
  198. }
  199. // ShopGroupAdd 商家跨店分组添加
  200. func (a Api) ShopGroupAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  201. // 获取token,并验证签名函数
  202. token, q, sign := a.webToGoVerify(ctx, r)
  203. rs := service.Shop{}.ShopGroupAdd(token, q.ShopID, q.JsonStr, sign)
  204. rst := a.toWebFunc(rs)
  205. return rst, nil
  206. }
  207. // ShopGroupEdit 商家跨店分组编辑
  208. func (a Api) ShopGroupEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  209. // 获取token,并验证签名函数
  210. token, q, sign := a.webToGoVerify(ctx, r)
  211. rs := service.Shop{}.ShopGroupEdit(token, q.ShopID, q.JsonStr, sign)
  212. rst := a.toWebFunc(rs)
  213. return rst, nil
  214. }
  215. // ShopGroupStatusEdit 商家跨店分组状态修改
  216. func (a Api) ShopGroupStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  217. // 获取token,并验证签名函数
  218. token, q, sign := a.webToGoVerify(ctx, r)
  219. rs := service.Shop{}.ShopGroupStatusEdit(token, q.ShopID, q.JsonStr, sign)
  220. rst := a.toWebFunc(rs)
  221. return rst, nil
  222. }
  223. // ShopGroupDetailsQuery 跨店分组详情查询
  224. func (a Api) ShopGroupDetailsQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  225. // 获取token,并验证签名函数
  226. token, q, sign := a.webToGoVerify(ctx, r)
  227. rs := service.Shop{}.ShopGroupDetailsQuery(token, q.ShopID, q.JsonStr, sign)
  228. rst := a.toWebFunc(rs)
  229. return rst, nil
  230. }
  231. // ShopVenueQuery 商家区域查询
  232. func (a Api) ShopVenueQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  233. // 获取token,并验证签名函数
  234. token, q, sign := a.webToGoVerify(ctx, r)
  235. rs := service.Shop{}.ShopVenueQuery(token, q.ShopID, q.JsonStr, sign)
  236. rst := a.toWebFunc(rs)
  237. return rst, nil
  238. }
  239. // ShopVenueAdd 商家区域添加
  240. func (a Api) ShopVenueAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  241. // 获取token,并验证签名函数
  242. token, q, sign := a.webToGoVerify(ctx, r)
  243. rs := service.Shop{}.ShopVenueAdd(token, q.ShopID, q.JsonStr, sign)
  244. rst := a.toWebFunc(rs)
  245. return rst, nil
  246. }
  247. // ShopVenueEdit 商家区域编辑
  248. func (a Api) ShopVenueEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  249. // 获取token,并验证签名函数
  250. token, q, sign := a.webToGoVerify(ctx, r)
  251. rs := service.Shop{}.ShopVenueEdit(token, q.ShopID, q.JsonStr, sign)
  252. rst := a.toWebFunc(rs)
  253. return rst, nil
  254. }
  255. // ShopVenueStatusEdit 商家区域状态修改
  256. func (a Api) ShopVenueStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  257. // 获取token,并验证签名函数
  258. token, q, sign := a.webToGoVerify(ctx, r)
  259. rs := service.Shop{}.ShopVenueStatusEdit(token, q.ShopID, q.JsonStr, sign)
  260. rst := a.toWebFunc(rs)
  261. return rst, nil
  262. }
  263. // ShopVenueEquipQuery 商家设备查询
  264. func (a Api) ShopVenueEquipQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  265. // 获取token,并验证签名函数
  266. token, q, sign := a.webToGoVerify(ctx, r)
  267. rs := service.Shop{}.ShopVenueEquipQuery(token, q.ShopID, q.JsonStr, sign)
  268. rst := a.toWebFunc(rs)
  269. return rst, nil
  270. }
  271. // ShopVenueEquipEdit 商家设备编辑
  272. func (a Api) ShopVenueEquipEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  273. // 获取token,并验证签名函数
  274. token, q, sign := a.webToGoVerify(ctx, r)
  275. rs := service.Shop{}.ShopVenueEquipEdit(token, q.ShopID, q.JsonStr, sign)
  276. rst := a.toWebFunc(rs)
  277. return rst, nil
  278. }
  279. // ShopVenueEquipStatusEdit 商家设备状态修改
  280. func (a Api) ShopVenueEquipStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  281. // 获取token,并验证签名函数
  282. token, q, sign := a.webToGoVerify(ctx, r)
  283. rs := service.Shop{}.ShopVenueEquipStatusEdit(token, q.ShopID, q.JsonStr, sign)
  284. rst := a.toWebFunc(rs)
  285. return rst, nil
  286. }
  287. // ShopVenueEquipStatusDel 商家设备删除
  288. func (a Api) ShopVenueEquipStatusDel(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  289. // 获取token,并验证签名函数
  290. token, q, sign := a.webToGoVerify(ctx, r)
  291. rs := service.Shop{}.ShopVenueEquipStatusEdit(token, q.ShopID, q.JsonStr, sign)
  292. rst := a.toWebFunc(rs)
  293. return rst, nil
  294. }
  295. // ShopConfigQuery 商家配置查询
  296. func (a Api) ShopConfigQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  297. // 获取token,并验证签名函数
  298. token, q, sign := a.webToGoVerify(ctx, r)
  299. rs := service.Shop{}.ShopConfigQuery(token, q.ShopID, q.JsonStr, sign)
  300. rst := a.toWebFunc(rs)
  301. return rst, nil
  302. }
  303. // ShopConfigEdit 商家配置编辑
  304. func (a Api) ShopConfigEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  305. // 获取token,并验证签名函数
  306. token, q, sign := a.webToGoVerify(ctx, r)
  307. rs := service.Shop{}.ShopConfigEdit(token, q.ShopID, q.JsonStr, sign)
  308. rst := a.toWebFunc(rs)
  309. return rst, nil
  310. }
  311. // --------------------------商家会员管理----------------------------------------------------
  312. // ShopVipUserQuery 商家会员查询
  313. func (a Api) ShopVipUserQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  314. // 获取token,并验证签名函数
  315. token, q, sign := a.webToGoVerify(ctx, r)
  316. rs := service.User{}.ShopVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  317. rst := a.toWebFunc(rs)
  318. return rst, nil
  319. }
  320. // ShopVipUserAdd 商家会员添加
  321. func (a Api) ShopVipUserAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  322. // 获取token,并验证签名函数
  323. token, q, sign := a.webToGoVerify(ctx, r)
  324. rs := service.User{}.ShopVipUserAdd(token, q.ShopID, q.JsonStr, sign)
  325. rst := a.toWebFunc(rs)
  326. return rst, nil
  327. }
  328. // ShopVipUserEdit 商家会员编辑
  329. func (a Api) ShopVipUserEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  330. // 获取token,并验证签名函数
  331. token, q, sign := a.webToGoVerify(ctx, r)
  332. rs := service.User{}.ShopVipUserEdit(token, q.ShopID, q.JsonStr, sign)
  333. rst := a.toWebFunc(rs)
  334. return rst, nil
  335. }
  336. // ShopVipUserStatusEdit 商家会员状态编辑
  337. func (a Api) ShopVipUserStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  338. // 获取token,并验证签名函数
  339. token, q, sign := a.webToGoVerify(ctx, r)
  340. rs := service.User{}.ShopVipUserStatusEdit(token, q.ShopID, q.JsonStr, sign)
  341. rst := a.toWebFunc(rs)
  342. return rst, nil
  343. }
  344. // AcrossVipUserQuery 跨店会员查询
  345. func (a Api) AcrossVipUserQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  346. // 获取token,并验证签名函数
  347. token, q, sign := a.webToGoVerify(ctx, r)
  348. rs := service.User{}.AcrossVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  349. rst := a.toWebFunc(rs)
  350. return rst, nil
  351. }
  352. // AcrossVipUserAdd 跨店会员添加
  353. func (a Api) AcrossVipUserAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  354. // 获取token,并验证签名函数
  355. token, q, sign := a.webToGoVerify(ctx, r)
  356. rs := service.User{}.AcrossVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  357. rst := a.toWebFunc(rs)
  358. return rst, nil
  359. }
  360. // AcrossVipUserDel 跨店会员删除
  361. func (a Api) AcrossVipUserDel(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  362. // 获取token,并验证签名函数
  363. token, q, sign := a.webToGoVerify(ctx, r)
  364. rs := service.User{}.AcrossVipUserDel(token, q.ShopID, q.JsonStr, sign)
  365. rst := a.toWebFunc(rs)
  366. return rst, nil
  367. }
  368. // VipPhoneQuery 商家会员手机号查询
  369. func (a Api) VipPhoneQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  370. // 获取token,并验证签名函数
  371. token, q, sign := a.webToGoVerify(ctx, r)
  372. rs := service.User{}.VipPhoneQuery(token, q.ShopID, q.JsonStr, sign)
  373. rst := a.toWebFunc(rs)
  374. return rst, nil
  375. }
  376. // VipMainPhoneCheck 商家会员主手机号校验
  377. func (a Api) VipMainPhoneCheck(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  378. // 获取token,并验证签名函数
  379. token, q, sign := a.webToGoVerify(ctx, r)
  380. rs := service.User{}.VipMainPhoneCheck(token, q.ShopID, q.JsonStr, sign)
  381. rst := a.toWebFunc(rs)
  382. return rst, nil
  383. }
  384. // VipOtherPhoneAdd 商家会员其他手机号添加
  385. func (a Api) VipOtherPhoneAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  386. // 获取token,并验证签名函数
  387. token, q, sign := a.webToGoVerify(ctx, r)
  388. rs := service.User{}.VipOtherPhoneAdd(token, q.ShopID, q.JsonStr, sign)
  389. rst := a.toWebFunc(rs)
  390. return rst, nil
  391. }
  392. // VipOtherPhoneEdit 商家会员其他手机号编辑
  393. func (a Api) VipOtherPhoneEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  394. // 获取token,并验证签名函数
  395. token, q, sign := a.webToGoVerify(ctx, r)
  396. rs := service.User{}.VipOtherPhoneEdit(token, q.ShopID, q.JsonStr, sign)
  397. rst := a.toWebFunc(rs)
  398. return rst, nil
  399. }
  400. // VipOtherPhoneStatusEdit 商家会员其他手机号状态修改
  401. func (a Api) VipOtherPhoneStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  402. // 获取token,并验证签名函数
  403. token, q, sign := a.webToGoVerify(ctx, r)
  404. rs := service.User{}.VipOtherPhoneStatusEdit(token, q.ShopID, q.JsonStr, sign)
  405. rst := a.toWebFunc(rs)
  406. return rst, nil
  407. }
  408. // TempVipUserQuery 商家临时会员查询
  409. func (a Api) TempVipUserQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  410. // 获取token,并验证签名函数
  411. token, q, sign := a.webToGoVerify(ctx, r)
  412. rs := service.User{}.TempVipUserQuery(token, q.ShopID, q.JsonStr, sign)
  413. rst := a.toWebFunc(rs)
  414. return rst, nil
  415. }
  416. // TempVipUserAdd 商家临时会员添加
  417. func (a Api) TempVipUserAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  418. // 获取token,并验证签名函数
  419. token, q, sign := a.webToGoVerify(ctx, r)
  420. rs := service.User{}.TempVipUserAdd(token, q.ShopID, q.JsonStr, sign)
  421. rst := a.toWebFunc(rs)
  422. return rst, nil
  423. }
  424. // TempVipUserEdit 商家临时会员编辑
  425. func (a Api) TempVipUserEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  426. // 获取token,并验证签名函数
  427. token, q, sign := a.webToGoVerify(ctx, r)
  428. rs := service.User{}.TempVipUserEdit(token, q.ShopID, q.JsonStr, sign)
  429. rst := a.toWebFunc(rs)
  430. return rst, nil
  431. }
  432. // TempVipUserStatusEdit 商家临时会员状态修改
  433. func (a Api) TempVipUserStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  434. // 获取token,并验证签名函数
  435. token, q, sign := a.webToGoVerify(ctx, r)
  436. rs := service.User{}.TempVipUserStatusEdit(token, q.ShopID, q.JsonStr, sign)
  437. rst := a.toWebFunc(rs)
  438. return rst, nil
  439. }
  440. // VipHourEdit 商家会员课时编辑
  441. func (a Api) VipHourEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  442. // 获取token,并验证签名函数
  443. token, q, sign := a.webToGoVerify(ctx, r)
  444. rs := service.User{}.VipHourEdit(token, q.ShopID, q.JsonStr, sign)
  445. rst := a.toWebFunc(rs)
  446. return rst, nil
  447. }
  448. // VipConsumeListQuery 商家会员消费课时查询
  449. func (a Api) VipConsumeListQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  450. // 获取token,并验证签名函数
  451. token, q, sign := a.webToGoVerify(ctx, r)
  452. rs := service.User{}.VipConsumeListQuery(token, q.ShopID, q.JsonStr, sign)
  453. rst := a.toWebFunc(rs)
  454. return rst, nil
  455. }
  456. // VipConsumeDetailQuery 商家会员消费课时详情查询
  457. func (a Api) VipConsumeDetailQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  458. // 获取token,并验证签名函数
  459. token, q, sign := a.webToGoVerify(ctx, r)
  460. rs := service.User{}.VipConsumeDetailQuery(token, q.ShopID, q.JsonStr, sign)
  461. rst := a.toWebFunc(rs)
  462. return rst, nil
  463. }
  464. // VipClassRelationEdit 商家会员对应课程增删
  465. func (a Api) VipClassRelationEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  466. // 获取token,并验证签名函数
  467. token, q, sign := a.webToGoVerify(ctx, r)
  468. rs := service.User{}.VipClassRelationEdit(token, q.ShopID, q.JsonStr, sign)
  469. rst := a.toWebFunc(rs)
  470. return rst, nil
  471. }
  472. // VipHourChgQuery 商家会员消费课时详情查询
  473. func (a Api) VipHourChgQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  474. // 获取token,并验证签名函数
  475. token, q, sign := a.webToGoVerify(ctx, r)
  476. rs := service.User{}.VipHourChgQuery(token, q.ShopID, q.JsonStr, sign)
  477. rst := a.toWebFunc(rs)
  478. return rst, nil
  479. }
  480. // VipUserClassQuery 商家会员课程查询
  481. func (a Api) VipUserClassQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  482. // 获取token,并验证签名函数
  483. token, q, sign := a.webToGoVerify(ctx, r)
  484. rs := service.User{}.VipUserClassQuery(token, q.ShopID, q.JsonStr, sign)
  485. rst := a.toWebFunc(rs)
  486. return rst, nil
  487. }
  488. // GetSimpleQiNiuToken 获取七牛简单Token
  489. func (a Api) GetSimpleQiNiuToken(ctx context.Context, r *pb.DefaultRequest) (*pb.QiNiuTokenReply, error) {
  490. token := a.getToken(ctx)
  491. rs := service.User{}.GetSimpleQiNiuToken(token)
  492. return rs, nil
  493. }
  494. // GetOverlayImgQiNiuToken 获取七牛可覆盖文件Token
  495. func (a Api) GetOverlayImgQiNiuToken(ctx context.Context, r *pb.GetOverlayImgRequest) (*pb.QiNiuTokenReply, error) {
  496. token := a.getToken(ctx)
  497. rs := service.User{}.GetOverlayImgQiNiuToken(token, r.FileName)
  498. return rs, nil
  499. }
  500. // ClassQuery 商家基础课程查询
  501. func (a Api) ClassQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  502. // 获取token,并验证签名函数
  503. token, q, sign := a.webToGoVerify(ctx, r)
  504. rs := service.Class{}.ClassQuery(token, q.ShopID, q.JsonStr, sign)
  505. rst := a.toWebFunc(rs)
  506. return rst, nil
  507. }
  508. // ClassAdd 商家基础课程添加
  509. func (a Api) ClassAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  510. // 获取token,并验证签名函数
  511. token, q, sign := a.webToGoVerify(ctx, r)
  512. rs := service.Class{}.ClassAdd(token, q.ShopID, q.JsonStr, sign)
  513. rst := a.toWebFunc(rs)
  514. return rst, nil
  515. }
  516. // ClassEdit 商家基础课程编辑
  517. func (a Api) ClassEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  518. // 获取token,并验证签名函数
  519. token, q, sign := a.webToGoVerify(ctx, r)
  520. rs := service.Class{}.ClassEdit(token, q.ShopID, q.JsonStr, sign)
  521. rst := a.toWebFunc(rs)
  522. return rst, nil
  523. }
  524. // ClassStatusEdit 商家基础课程状态编辑
  525. func (a Api) ClassStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  526. // 获取token,并验证签名函数
  527. token, q, sign := a.webToGoVerify(ctx, r)
  528. rs := service.Class{}.ClassStatusEdit(token, q.ShopID, q.JsonStr, sign)
  529. rst := a.toWebFunc(rs)
  530. return rst, nil
  531. }
  532. // ClassColorEdit 商家基础课程颜色修改
  533. func (a Api) ClassColorEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  534. // 获取token,并验证签名函数
  535. token, q, sign := a.webToGoVerify(ctx, r)
  536. rs := service.Class{}.ClassColorEdit(token, q.ShopID, q.JsonStr, sign)
  537. rst := a.toWebFunc(rs)
  538. return rst, nil
  539. }
  540. // ClassWxVisibleEdit 商家基础课程微信显示状态修改
  541. func (a Api) ClassWxVisibleEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  542. // 获取token,并验证签名函数
  543. token, q, sign := a.webToGoVerify(ctx, r)
  544. rs := service.Class{}.ClassWxVisibleEdit(token, q.ShopID, q.JsonStr, sign)
  545. rst := a.toWebFunc(rs)
  546. return rst, nil
  547. }
  548. // ClassVipEdit 商家课程会员增删
  549. func (a Api) ClassVipEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  550. // 获取token,并验证签名函数
  551. token, q, sign := a.webToGoVerify(ctx, r)
  552. rs := service.Class{}.ClassVipEdit(token, q.ShopID, q.JsonStr, sign)
  553. rst := a.toWebFunc(rs)
  554. return rst, nil
  555. }
  556. // SttPlanBasicQuery 商家课程表模板总览查询
  557. func (a Api) SttPlanBasicQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  558. // 获取token,并验证签名函数
  559. token, q, sign := a.webToGoVerify(ctx, r)
  560. rs := service.Class{}.SttPlanBasicQuery(token, q.ShopID, q.JsonStr, sign)
  561. rst := a.toWebFunc(rs)
  562. return rst, nil
  563. }
  564. // SttPlanBasicAdd 商家课程表模板总览添加
  565. func (a Api) SttPlanBasicAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  566. // 获取token,并验证签名函数
  567. token, q, sign := a.webToGoVerify(ctx, r)
  568. rs := service.Class{}.SttPlanBasicAdd(token, q.ShopID, q.JsonStr, sign)
  569. rst := a.toWebFunc(rs)
  570. return rst, nil
  571. }
  572. // SttPlanBasicEdit 商家课程表模板总览编辑
  573. func (a Api) SttPlanBasicEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  574. // 获取token,并验证签名函数
  575. token, q, sign := a.webToGoVerify(ctx, r)
  576. rs := service.Class{}.SttPlanBasicEdit(token, q.ShopID, q.JsonStr, sign)
  577. rst := a.toWebFunc(rs)
  578. return rst, nil
  579. }
  580. // SttPlanBasicShopEdit 商家课程表模板总览所属商家修改
  581. func (a Api) SttPlanBasicShopEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  582. // 获取token,并验证签名函数
  583. token, q, sign := a.webToGoVerify(ctx, r)
  584. rs := service.Class{}.SttPlanBasicShopEdit(token, q.ShopID, q.JsonStr, sign)
  585. rst := a.toWebFunc(rs)
  586. return rst, nil
  587. }
  588. // SttPlanBasicStatusEdit 商家课程表模板状态
  589. func (a Api) SttPlanBasicStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  590. // 获取token,并验证签名函数
  591. token, q, sign := a.webToGoVerify(ctx, r)
  592. rs := service.Class{}.SttPlanBasicStatusEdit(token, q.ShopID, q.JsonStr, sign)
  593. rst := a.toWebFunc(rs)
  594. return rst, nil
  595. }
  596. // SttPlanBasicPublish 商家课程表模板发布
  597. func (a Api) SttPlanBasicPublish(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  598. // 获取token,并验证签名函数
  599. token, q, sign := a.webToGoVerify(ctx, r)
  600. rs := service.Class{}.SttPlanBasicPublish(token, q.ShopID, q.JsonStr, sign)
  601. rst := a.toWebFunc(rs)
  602. return rst, nil
  603. }
  604. // SttPlanPreview 商家课程表模板详情预览
  605. func (a Api) SttPlanPreview(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  606. // 获取token,并验证签名函数
  607. token, q, sign := a.webToGoVerify(ctx, r)
  608. rs := service.Class{}.SttPlanPreview(token, q.ShopID, q.JsonStr, sign)
  609. rst := a.toWebFunc(rs)
  610. return rst, nil
  611. }
  612. // SttPlanCopy 商家课程表模板复制
  613. func (a Api) SttPlanCopy(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  614. // 获取token,并验证签名函数
  615. token, q, sign := a.webToGoVerify(ctx, r)
  616. rs := service.Class{}.SttPlanCopy(token, q.ShopID, q.JsonStr, sign)
  617. rst := a.toWebFunc(rs)
  618. return rst, nil
  619. }
  620. // SttPlanDetailQuery 商家课程表模板详情查询
  621. func (a Api) SttPlanDetailQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  622. // 获取token,并验证签名函数
  623. token, q, sign := a.webToGoVerify(ctx, r)
  624. rs := service.Class{}.SttPlanDetailQuery(token, q.ShopID, q.JsonStr, sign)
  625. rst := a.toWebFunc(rs)
  626. return rst, nil
  627. }
  628. // SttPlanDetailBatchSave 商家课程表模板详情批量保存
  629. func (a Api) SttPlanDetailBatchSave(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  630. // 获取token,并验证签名函数
  631. token, q, sign := a.webToGoVerify(ctx, r)
  632. rs := service.Class{}.SttPlanDetailBatchSave(token, q.ShopID, q.JsonStr, sign)
  633. rst := a.toWebFunc(rs)
  634. return rst, nil
  635. }
  636. // STTBasicQuery 商家课程表总览查询
  637. func (a Api) STTBasicQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  638. // 获取token,并验证签名函数
  639. token, q, sign := a.webToGoVerify(ctx, r)
  640. rs := service.Class{}.STTBasicQuery(token, q.ShopID, q.JsonStr, sign)
  641. rst := a.toWebFunc(rs)
  642. return rst, nil
  643. }
  644. // STTBasicAdd 商家课程表总览添加
  645. func (a Api) STTBasicAdd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  646. // 获取token,并验证签名函数
  647. token, q, sign := a.webToGoVerify(ctx, r)
  648. rs := service.Class{}.STTBasicAdd(token, q.ShopID, q.JsonStr, sign)
  649. rst := a.toWebFunc(rs)
  650. return rst, nil
  651. }
  652. // STTBasicEdit 商家课程表总览编辑
  653. func (a Api) STTBasicEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  654. // 获取token,并验证签名函数
  655. token, q, sign := a.webToGoVerify(ctx, r)
  656. rs := service.Class{}.STTBasicEdit(token, q.ShopID, q.JsonStr, sign)
  657. if !a.checkRs(rs) {
  658. rst := a.toWebFunc(rs)
  659. return rst, nil
  660. }
  661. rst := a.toWebFunc(rs)
  662. return rst, nil
  663. }
  664. // STTBasicStatusEdit 商家课程表总览状态修改
  665. func (a Api) STTBasicStatusEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  666. // 获取token,并验证签名函数
  667. token, q, sign := a.webToGoVerify(ctx, r)
  668. rs := service.Class{}.STTBasicStatusEdit(token, q.ShopID, q.JsonStr, sign)
  669. rst := a.toWebFunc(rs)
  670. return rst, nil
  671. }
  672. // STTBasicPreview 商家课程表详情预览
  673. func (a Api) STTBasicPreview(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  674. // 获取token,并验证签名函数
  675. token, q, sign := a.webToGoVerify(ctx, r)
  676. rs := service.Class{}.STTBasicPreview(token, q.ShopID, q.JsonStr, sign)
  677. rst := a.toWebFunc(rs)
  678. return rst, nil
  679. }
  680. // STTBasicCopy 商家课程表模板复制
  681. func (a Api) STTBasicCopy(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  682. // 获取token,并验证签名函数
  683. token, q, sign := a.webToGoVerify(ctx, r)
  684. rs := service.Class{}.STTBasicCopy(token, q.ShopID, q.JsonStr, sign)
  685. rst := a.toWebFunc(rs)
  686. return rst, nil
  687. }
  688. // STTBasicOfflineEdit 商家课程表上下线状态修改
  689. func (a Api) STTBasicOfflineEdit(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  690. // 获取token,并验证签名函数
  691. token, q, sign := a.webToGoVerify(ctx, r)
  692. rs := service.Class{}.STTBasicOfflineEdit(token, q.ShopID, q.JsonStr, sign)
  693. rst := a.toWebFunc(rs)
  694. return rst, nil
  695. }
  696. // STTDetailListQuery 商家课程表详情列表查询
  697. func (a Api) STTDetailListQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  698. // 获取token,并验证签名函数
  699. token, q, sign := a.webToGoVerify(ctx, r)
  700. rs := service.Class{}.STTDetailListQuery(token, q.ShopID, q.JsonStr, sign)
  701. rst := a.toWebFunc(rs)
  702. return rst, nil
  703. }
  704. // STTBasicDetailBatchSave 商家课程表详情批量保存
  705. func (a Api) STTBasicDetailBatchSave(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  706. // 获取token,并验证签名函数
  707. token, q, sign := a.webToGoVerify(ctx, r)
  708. rs := service.Class{}.STTBasicDetailBatchSave(token, q.ShopID, q.JsonStr, sign)
  709. rst := a.toWebFunc(rs)
  710. return rst, nil
  711. }
  712. // STTDetailAllowDelCheck 商家课程表详情判断是否可删除
  713. func (a Api) STTDetailAllowDelCheck(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  714. // 获取token,并验证签名函数
  715. token, q, sign := a.webToGoVerify(ctx, r)
  716. rs := service.Class{}.STTDetailAllowDelCheck(token, q.ShopID, q.JsonStr, sign)
  717. rst := a.toWebFunc(rs)
  718. return rst, nil
  719. }
  720. // ----------------------- 商家上下课管理 ---------------------------------------------
  721. // CourseDetailQuery 课程管理查询
  722. func (a Api) CourseDetailQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  723. // 获取token,并验证签名函数
  724. token, q, sign := a.webToGoVerify(ctx, r)
  725. rs := service.Course{}.CourseDetailQuery(token, q.ShopID, q.JsonStr, sign)
  726. rst := a.toWebFunc(rs)
  727. return rst, nil
  728. }
  729. // ClassListByOrderDate 某日课程表查询
  730. func (a Api) ClassListByOrderDate(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  731. // 获取token,并验证签名函数
  732. token, q, sign := a.webToGoVerify(ctx, r)
  733. rs := service.Course{}.ClassListByOrderDate(token, q.ShopID, q.JsonStr, sign)
  734. rst := a.toWebFunc(rs)
  735. return rst, nil
  736. }
  737. // ClassStartPrepare 上课准备
  738. func (a Api) ClassStartPrepare(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
  739. // 获取token,并验证签名函数
  740. token, q, sign := a.courseToGoVerify(ctx, r)
  741. rs := service.Course{}.ClassStartPrepare(token, q.ShopID, q.JsonStr, sign)
  742. if !a.checkRs(rs) {
  743. rst := a.toWebFunc(rs)
  744. return rst, nil
  745. }
  746. if q.IsHr == 1 {
  747. hrRs := service.Hr{}.HrClassStartPrepare(token, q.ShopID, q.JsonStr, sign)
  748. if !a.checkRs(hrRs) {
  749. rst := a.toWebFunc(rs)
  750. return rst, nil
  751. }
  752. }
  753. if q.IsScore == 1 {
  754. // todo 调用评分系统接口
  755. if !a.checkRs(rs) {
  756. rst := a.toWebFunc(rs)
  757. return rst, nil
  758. }
  759. }
  760. rst := a.toWebFunc(rs)
  761. return rst, nil
  762. }
  763. // VipClassDetailQuery 会员上课详情查询
  764. func (a Api) VipClassDetailQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  765. // 获取token,并验证签名函数
  766. token, q, sign := a.webToGoVerify(ctx, r)
  767. rs := service.Course{}.VipClassDetailQuery(token, q.ShopID, q.JsonStr, sign)
  768. rst := a.toWebFunc(rs)
  769. return rst, nil
  770. }
  771. // VipClassDetailAdd 会员上课详情添加-上课未预约
  772. func (a Api) VipClassDetailAdd(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
  773. // 获取token,并验证签名函数
  774. token, q, sign := a.courseToGoVerify(ctx, r)
  775. rs := service.Course{}.VipClassDetailAdd(token, q.ShopID, q.JsonStr, sign)
  776. if !a.checkRs(rs) {
  777. rst := a.toWebFunc(rs)
  778. return rst, nil
  779. }
  780. if q.IsHr == 1 {
  781. hrRs := service.Hr{}.HrClassDetailAdd(token, q.ShopID, q.JsonStr, sign)
  782. if !a.checkRs(hrRs) {
  783. rst := a.toWebFunc(rs)
  784. return rst, nil
  785. }
  786. }
  787. if q.IsScore == 1 {
  788. // todo 调用评分系统接口
  789. }
  790. rst := a.toWebFunc(rs)
  791. return rst, nil
  792. }
  793. // VipClassDetailDel 会员上课详情删除
  794. func (a Api) VipClassDetailDel(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
  795. // 获取token,并验证签名函数
  796. token, q, sign := a.courseToGoVerify(ctx, r)
  797. rs := service.Course{}.VipClassDetailDel(token, q.ShopID, q.JsonStr, sign)
  798. if !a.checkRs(rs) {
  799. rst := a.toWebFunc(rs)
  800. return rst, nil
  801. }
  802. if q.IsHr == 1 {
  803. hrRs := service.Hr{}.HrClassDetailDel(token, q.ShopID, q.JsonStr, sign)
  804. if !a.checkRs(hrRs) {
  805. rst := a.toWebFunc(rs)
  806. return rst, nil
  807. }
  808. }
  809. if q.IsScore == 1 {
  810. // todo 调用评分系统接口
  811. }
  812. rst := a.toWebFunc(rs)
  813. return rst, nil
  814. }
  815. // TmpClassDetailAdd 临时会员上课详情添加
  816. func (a Api) TmpClassDetailAdd(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
  817. // 获取token,并验证签名函数
  818. token, q, sign := a.courseToGoVerify(ctx, r)
  819. rs := service.Course{}.TmpClassDetailAdd(token, q.ShopID, q.JsonStr, sign)
  820. if !a.checkRs(rs) {
  821. rst := a.toWebFunc(rs)
  822. return rst, nil
  823. }
  824. if q.IsHr == 1 {
  825. hrRs := service.Hr{}.HrClassDetailDel(token, q.ShopID, q.JsonStr, sign)
  826. if !a.checkRs(hrRs) {
  827. rst := a.toWebFunc(rs)
  828. return rst, nil
  829. }
  830. }
  831. if q.IsScore == 1 {
  832. // todo 调用评分系统接口
  833. }
  834. rst := a.toWebFunc(rs)
  835. return rst, nil
  836. }
  837. // TmpClassDetailDel 临时会员上课详情删除
  838. func (a Api) TmpClassDetailDel(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
  839. // 获取token,并验证签名函数
  840. token, q, sign := a.courseToGoVerify(ctx, r)
  841. rs := service.Course{}.TmpClassDetailDel(token, q.ShopID, q.JsonStr, sign)
  842. if !a.checkRs(rs) {
  843. rst := a.toWebFunc(rs)
  844. return rst, nil
  845. }
  846. if q.IsHr == 1 {
  847. hrRs := service.Hr{}.HrClassDetailDel(token, q.ShopID, q.JsonStr, sign)
  848. if !a.checkRs(hrRs) {
  849. rst := a.toWebFunc(rs)
  850. return rst, nil
  851. }
  852. }
  853. if q.IsScore == 1 {
  854. // todo 调用评分系统接口
  855. }
  856. rst := a.toWebFunc(rs)
  857. return rst, nil
  858. }
  859. // VipClassDetailStatueEdit 会员上课详情状态修改
  860. func (a Api) VipClassDetailStatueEdit(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
  861. // 获取token,并验证签名函数
  862. token, q, sign := a.courseToGoVerify(ctx, r)
  863. rs := service.Course{}.VipClassDetailStatueEdit(token, q.ShopID, q.JsonStr, sign)
  864. if !a.checkRs(rs) {
  865. rst := a.toWebFunc(rs)
  866. return rst, nil
  867. }
  868. if q.IsHr == 1 {
  869. hrRs := service.Hr{}.HrClassDetailStatusEdit(token, q.ShopID, q.JsonStr, sign)
  870. if !a.checkRs(hrRs) {
  871. rst := a.toWebFunc(rs)
  872. return rst, nil
  873. }
  874. }
  875. if q.IsScore == 1 {
  876. // todo 调用评分系统接口
  877. }
  878. rst := a.toWebFunc(rs)
  879. return rst, nil
  880. }
  881. // ClassStartConfirm 确认上课
  882. func (a Api) ClassStartConfirm(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
  883. // 获取token,并验证签名函数
  884. token, q, sign := a.courseToGoVerify(ctx, r)
  885. rs := service.Course{}.ClassStartConfirm(token, q.ShopID, q.JsonStr, sign)
  886. if !a.checkRs(rs) {
  887. rst := a.toWebFunc(rs)
  888. return rst, nil
  889. }
  890. if q.IsHr == 1 {
  891. hrRs := service.Hr{}.HrClassStartConfirm(token, q.ShopID, q.JsonStr, sign)
  892. if !a.checkRs(hrRs) {
  893. rst := a.toWebFunc(rs)
  894. return rst, nil
  895. }
  896. }
  897. if q.IsScore == 1 {
  898. // todo 调用评分系统接口
  899. }
  900. rst := a.toWebFunc(rs)
  901. return rst, nil
  902. }
  903. // ClassOverConfirm 确认下课
  904. func (a Api) ClassOverConfirm(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  905. // 获取token,并验证签名函数
  906. token, q, sign := a.webToGoVerify(ctx, r)
  907. rs := service.Course{}.ClassOverConfirm(token, q.ShopID, q.JsonStr, sign)
  908. rst := a.toWebFunc(rs)
  909. return rst, nil
  910. }
  911. // ClassGiveUpConfirm 关闭课程
  912. func (a Api) ClassGiveUpConfirm(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
  913. // 获取token,并验证签名函数
  914. token, q, sign := a.courseToGoVerify(ctx, r)
  915. rs := service.Course{}.ClassGiveUpConfirm(token, q.ShopID, q.JsonStr, sign)
  916. if !a.checkRs(rs) {
  917. rst := a.toWebFunc(rs)
  918. return rst, nil
  919. }
  920. if q.IsHr == 1 {
  921. hrRs := service.Hr{}.HrClassGiveUpConfirm(token, q.ShopID, q.JsonStr, sign)
  922. if !a.checkRs(hrRs) {
  923. rst := a.toWebFunc(rs)
  924. return rst, nil
  925. }
  926. }
  927. if q.IsScore == 1 {
  928. // todo 调用评分系统接口
  929. }
  930. rst := a.toWebFunc(rs)
  931. return rst, nil
  932. }
  933. // AfterClassAddClassDetail 关闭课程
  934. func (a Api) AfterClassAddClassDetail(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
  935. // 获取token,并验证签名函数
  936. token, q, sign := a.courseToGoVerify(ctx, r)
  937. var rs string
  938. // 因为是上课后追加的人,已经在基础库中添加,所以只需要在心率与评分中加入
  939. //rs := service.Course{}.ClassGiveUpConfirm(token, q.ShopID, q.JsonStr, sign)
  940. if q.IsHr == 1 {
  941. rs = service.Hr{}.AfterClassAddClassDetail(token, q.ShopID, q.JsonStr, sign)
  942. if !a.checkRs(rs) {
  943. rst := a.toWebFunc(rs)
  944. return rst, nil
  945. }
  946. }
  947. if q.IsScore == 1 {
  948. // todo 调用评分系统接口
  949. }
  950. rst := a.toWebFunc(rs)
  951. return rst, nil
  952. }
  953. // ----------------------- 商家预约管理 ---------------------------------------------
  954. // OrderListQuery 预约记录查询
  955. func (a Api) OrderListQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  956. // 获取token,并验证签名函数
  957. token, q, sign := a.webToGoVerify(ctx, r)
  958. rs := service.Order{}.OrderListQuery(token, q.ShopID, q.JsonStr, sign)
  959. rst := a.toWebFunc(rs)
  960. return rst, nil
  961. }
  962. // OrderAddByManager 管理员预约添加
  963. func (a Api) OrderAddByManager(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  964. // 获取token,并验证签名函数
  965. token, q, sign := a.webToGoVerify(ctx, r)
  966. rs := service.Order{}.OrderAddByManager(token, q.ShopID, q.JsonStr, sign)
  967. rst := a.toWebFunc(rs)
  968. return rst, nil
  969. }
  970. // OrderCancelByManager 管理员预约取消
  971. func (a Api) OrderCancelByManager(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  972. // 获取token,并验证签名函数
  973. token, q, sign := a.webToGoVerify(ctx, r)
  974. rs := service.Order{}.OrderCancelByManager(token, q.ShopID, q.JsonStr, sign)
  975. rst := a.toWebFunc(rs)
  976. return rst, nil
  977. }
  978. // OrderStatistics 商家预约统计
  979. func (a Api) OrderStatistics(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  980. // 获取token,并验证签名函数
  981. token, q, sign := a.webToGoVerify(ctx, r)
  982. rs := service.Order{}.OrderStatistics(token, q.ShopID, q.JsonStr, sign)
  983. rst := a.toWebFunc(rs)
  984. return rst, nil
  985. }
  986. // ClassOrderQuery 可预约课程预约列表查询
  987. func (a Api) ClassOrderQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  988. // 获取token,并验证签名函数
  989. token, q, sign := a.webToGoVerify(ctx, r)
  990. rs := service.Order{}.ClassOrderQuery(token, q.ShopID, q.JsonStr, sign)
  991. rst := a.toWebFunc(rs)
  992. return rst, nil
  993. }
  994. // VipUserOrderQuery 会员预约列表查询
  995. func (a Api) VipUserOrderQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  996. // 获取token,并验证签名函数
  997. token, q, sign := a.webToGoVerify(ctx, r)
  998. rs := service.Order{}.VipUserOrderQuery(token, q.ShopID, q.JsonStr, sign)
  999. rst := a.toWebFunc(rs)
  1000. return rst, nil
  1001. }
  1002. // UserOrderQueryByStd 查询课程预约用户列表
  1003. func (a Api) UserOrderQueryByStd(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  1004. // 获取token,并验证签名函数
  1005. token, q, sign := a.webToGoVerify(ctx, r)
  1006. rs := service.Order{}.UserOrderQueryByStd(token, q.ShopID, q.JsonStr, sign)
  1007. rst := a.toWebFunc(rs)
  1008. return rst, nil
  1009. }
  1010. // ----------------------- 商家心率管理 ---------------------------------------------
  1011. // HrSensorsPublicQuery 公共心率带查询
  1012. func (a Api) HrSensorsPublicQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  1013. // 获取token,并验证签名函数
  1014. token, q, sign := a.webToGoVerify(ctx, r)
  1015. rs := service.Hr{}.HrSensorsPublicQuery(token, q.ShopID, q.JsonStr, sign)
  1016. rst := a.toWebFunc(rs)
  1017. return rst, nil
  1018. }
  1019. // HrSensorsPvtQuery 私有心率带查询
  1020. func (a Api) HrSensorsPvtQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  1021. // 获取token,并验证签名函数
  1022. token, q, sign := a.webToGoVerify(ctx, r)
  1023. rs := service.Hr{}.HrSensorsPvtQuery(token, q.ShopID, q.JsonStr, sign)
  1024. rst := a.toWebFunc(rs)
  1025. return rst, nil
  1026. }
  1027. // AddHrSensors 公共心率带添加
  1028. func (a Api) AddHrSensors(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  1029. // 获取token,并验证签名函数
  1030. token, q, sign := a.webToGoVerify(ctx, r)
  1031. rs := service.Hr{}.AddHrSensors(token, q.ShopID, q.JsonStr, sign)
  1032. rst := a.toWebFunc(rs)
  1033. return rst, nil
  1034. }
  1035. // AddPvtHrSensors 私有心率带添加
  1036. func (a Api) AddPvtHrSensors(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  1037. // 获取token,并验证签名函数
  1038. token, q, sign := a.webToGoVerify(ctx, r)
  1039. rs := service.Hr{}.AddPvtHrSensors(token, q.ShopID, q.JsonStr, sign)
  1040. rst := a.toWebFunc(rs)
  1041. return rst, nil
  1042. }
  1043. // EditHrSensors 心率带编辑
  1044. func (a Api) EditHrSensors(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  1045. // 获取token,并验证签名函数
  1046. token, q, sign := a.webToGoVerify(ctx, r)
  1047. rs := service.Hr{}.EditHrSensors(token, q.ShopID, q.JsonStr, sign)
  1048. rst := a.toWebFunc(rs)
  1049. return rst, nil
  1050. }
  1051. // HrSensorsDel 心率带删除
  1052. func (a Api) HrSensorsDel(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  1053. // 获取token,并验证签名函数
  1054. token, q, sign := a.webToGoVerify(ctx, r)
  1055. rs := service.Hr{}.HrSensorsDel(token, q.ShopID, q.JsonStr, sign)
  1056. rst := a.toWebFunc(rs)
  1057. return rst, nil
  1058. }
  1059. // PKGroupChg 修改PK分队
  1060. func (a Api) PKGroupChg(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  1061. // 获取token,并验证签名函数
  1062. token, q, sign := a.webToGoVerify(ctx, r)
  1063. rs := service.Hr{}.PKGroupChg(token, q.ShopID, q.JsonStr, sign)
  1064. rst := a.toWebFunc(rs)
  1065. return rst, nil
  1066. }
  1067. // BindHrSensor 绑定心率带
  1068. func (a Api) BindHrSensor(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  1069. // 获取token,并验证签名函数
  1070. token, q, sign := a.webToGoVerify(ctx, r)
  1071. rs := service.Hr{}.BindHrSensor(token, q.ShopID, q.JsonStr, sign)
  1072. rst := a.toWebFunc(rs)
  1073. return rst, nil
  1074. }
  1075. // UnBindHrSensor 解绑心率带
  1076. func (a Api) UnBindHrSensor(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
  1077. // 获取token,并验证签名函数
  1078. token, q, sign := a.webToGoVerify(ctx, r)
  1079. rs := service.Hr{}.UnBindHrSensor(token, q.ShopID, q.JsonStr, sign)
  1080. rst := a.toWebFunc(rs)
  1081. return rst, nil
  1082. }
  1083. // ----------------------- 评分管理 ---------------------------------------------
  1084. // ----------------------- 微信管理 ---------------------------------------------
  1085. // GenVerifyImageByWinXin 微信登陆获取图片验证码
  1086. func (Api) GenVerifyImageByWinXin(ctx context.Context, r *pb.GenVerifyImageRequest) (*pb.GenVerifyImageReply, error) {
  1087. //height := int(r.Height)
  1088. //width := int(r.Width)
  1089. id, pic := service.VerifyCode{}.GenImage(int(r.Height), int(r.Width))
  1090. return &pb.GenVerifyImageReply{
  1091. CodeId: id,
  1092. ImageBase64: pic,
  1093. }, nil
  1094. }
  1095. // GenPhoneVerifyCodeByWeiXin 微信登陆获取短信验证码
  1096. func (a Api) GenPhoneVerifyCodeByWeiXin(ctx context.Context, r *pb.GenPhoneVerifyCodeRequestWX) (*pb.StandardReply, error) {
  1097. ip := a.getRemoteIp(ctx)
  1098. rs := service.VerifyCode{}.GetPhoneVFCode(
  1099. r.SId,
  1100. r.Account, ip, global.TemplateCode, r.CodeId, r.ImgCode, r.VerifyType, time.Duration(global.SmsExpireNano))
  1101. rst := a.toWebFunc(rs)
  1102. return rst, nil
  1103. }
  1104. //// WeiXinSignIn 微信登陆
  1105. //func (a Api) WeiXinSignIn(ctx context.Context, r *pb.WeiXinSignInRequest) (*pb.SignInReply, error) {
  1106. //
  1107. //
  1108. // rs := service.Wx{}.WeiXinSignIn(token, q.ShopID, q.JsonStr, sign)
  1109. //
  1110. // return &pb.SignInReply{Token: rs}, nil
  1111. //}