瀏覽代碼

上下课、微信相关代码

jyq 4 年之前
父節點
當前提交
734db044b9

+ 269 - 0
api/grpc/base.go

@@ -2,8 +2,10 @@ package grpc
 
 import (
 	"context"
+	"encoding/json"
 	pb "sportfitness/base/api/grpc/base"
 	"sportfitness/base/assembly/base/service"
+	"sportfitness/base/errors"
 	"sportfitness/base/global"
 	"strings"
 	"time"
@@ -42,6 +44,22 @@ func (Api) getToken(ctx context.Context) (token string) {
 	return
 }
 
+func (Api) checkRs(rs string) bool {
+	b := false
+	rsMap := make(map[string]interface{})
+	err := json.Unmarshal([]byte(rs), &rsMap)
+	if err != nil {
+		panic(errors.J2MError)
+	}
+	code := int(rsMap["code"].(float64))
+	if code == 0 {
+		b = true
+	} else {
+		b = false
+	}
+	return b
+}
+
 // webToGoVerify 前端入Go验证签名函数,只允许StandardRequest进行验证
 func (a Api) webToGoVerify(ctx context.Context, q *pb.StandardRequest) (string, *pb.StandardRequest, string) {
 	token := a.getToken(ctx)
@@ -51,6 +69,15 @@ func (a Api) webToGoVerify(ctx context.Context, q *pb.StandardRequest) (string,
 	return token, q, wtgSign
 }
 
+// courseToGoVerify 前端入Go验证签名函数,只允许StandardRequest进行验证
+func (a Api) courseToGoVerify(ctx context.Context, q *pb.CourseStandardRequest) (string, *pb.CourseStandardRequest, string) {
+	token := a.getToken(ctx)
+
+	//wtgStr = q.JsonStr
+	wtgSign := q.Sign // 生成新签名
+	return token, q, wtgSign
+}
+
 func (Api) goToWebSigner(content string) (gtwStr, gtwSign string) {
 	gtwStr = content
 	gtwSign = ""
@@ -762,6 +789,10 @@ func (a Api) STTBasicEdit(ctx context.Context, r *pb.StandardRequest) (*pb.Stand
 	token, q, sign := a.webToGoVerify(ctx, r)
 
 	rs := service.Class{}.STTBasicEdit(token, q.ShopID, q.JsonStr, sign)
+	if !a.checkRs(rs) {
+		rst := a.toWebFunc(rs)
+		return rst, nil
+	}
 	rst := a.toWebFunc(rs)
 	return rst, nil
 }
@@ -838,6 +869,244 @@ func (a Api) STTDetailAllowDelCheck(ctx context.Context, r *pb.StandardRequest)
 
 // ----------------------- 商家上下课管理 ---------------------------------------------
 
+// CourseDetailQuery 课程管理查询
+func (a Api) CourseDetailQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.webToGoVerify(ctx, r)
+
+	rs := service.Course{}.CourseDetailQuery(token, q.ShopID, q.JsonStr, sign)
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// ClassListByOrderDate 某日课程表查询
+func (a Api) ClassListByOrderDate(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.webToGoVerify(ctx, r)
+
+	rs := service.Course{}.ClassListByOrderDate(token, q.ShopID, q.JsonStr, sign)
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// ClassStartPrepare 上课准备
+func (a Api) ClassStartPrepare(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.courseToGoVerify(ctx, r)
+
+	rs := service.Course{}.ClassStartPrepare(token, q.ShopID, q.JsonStr, sign)
+	if !a.checkRs(rs) {
+		rst := a.toWebFunc(rs)
+		return rst, nil
+	}
+	if q.IsHr == 1 {
+		//todo 调用心率系统接口
+		if !a.checkRs(rs) {
+			rst := a.toWebFunc(rs)
+			return rst, nil
+		}
+	}
+	if q.IsScore == 1 {
+		// todo 调用评分系统接口
+		if !a.checkRs(rs) {
+			rst := a.toWebFunc(rs)
+			return rst, nil
+		}
+	}
+
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// VipClassDetailQuery 会员上课详情查询
+func (a Api) VipClassDetailQuery(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.webToGoVerify(ctx, r)
+
+	rs := service.Course{}.VipClassDetailQuery(token, q.ShopID, q.JsonStr, sign)
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// VipClassDetailAdd 会员上课详情添加-上课未预约
+func (a Api) VipClassDetailAdd(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.courseToGoVerify(ctx, r)
+
+	rs := service.Course{}.VipClassDetailAdd(token, q.ShopID, q.JsonStr, sign)
+	if !a.checkRs(rs) {
+		rst := a.toWebFunc(rs)
+		return rst, nil
+	}
+	if q.IsHr == 1 {
+		//todo 调用心率系统接口
+	}
+	if q.IsScore == 1 {
+		// todo 调用评分系统接口
+	}
+
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// VipClassDetailDel 会员上课详情删除
+func (a Api) VipClassDetailDel(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.courseToGoVerify(ctx, r)
+
+	rs := service.Course{}.VipClassDetailDel(token, q.ShopID, q.JsonStr, sign)
+	if !a.checkRs(rs) {
+		rst := a.toWebFunc(rs)
+		return rst, nil
+	}
+	if q.IsHr == 1 {
+		//todo 调用心率系统接口
+	}
+	if q.IsScore == 1 {
+		// todo 调用评分系统接口
+	}
+
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// TmpClassDetailAdd 临时会员上课详情添加
+func (a Api) TmpClassDetailAdd(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.courseToGoVerify(ctx, r)
+
+	rs := service.Course{}.TmpClassDetailAdd(token, q.ShopID, q.JsonStr, sign)
+	if !a.checkRs(rs) {
+		rst := a.toWebFunc(rs)
+		return rst, nil
+	}
+	if q.IsHr == 1 {
+		//todo 调用心率系统接口
+	}
+	if q.IsScore == 1 {
+		// todo 调用评分系统接口
+	}
+
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// TmpClassDetailDel 临时会员上课详情删除
+func (a Api) TmpClassDetailDel(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.courseToGoVerify(ctx, r)
+
+	rs := service.Course{}.TmpClassDetailDel(token, q.ShopID, q.JsonStr, sign)
+	if !a.checkRs(rs) {
+		rst := a.toWebFunc(rs)
+		return rst, nil
+	}
+	if q.IsHr == 1 {
+		//todo 调用心率系统接口
+	}
+	if q.IsScore == 1 {
+		// todo 调用评分系统接口
+	}
+
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// VipClassDetailStatueEdit 会员上课详情状态修改
+func (a Api) VipClassDetailStatueEdit(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.courseToGoVerify(ctx, r)
+
+	rs := service.Course{}.VipClassDetailStatueEdit(token, q.ShopID, q.JsonStr, sign)
+	if !a.checkRs(rs) {
+		rst := a.toWebFunc(rs)
+		return rst, nil
+	}
+	if q.IsHr == 1 {
+		//todo 调用心率系统接口
+	}
+	if q.IsScore == 1 {
+		// todo 调用评分系统接口
+	}
+
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// ClassStartConfirm 确认上课
+func (a Api) ClassStartConfirm(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.courseToGoVerify(ctx, r)
+
+	rs := service.Course{}.ClassStartConfirm(token, q.ShopID, q.JsonStr, sign)
+	if !a.checkRs(rs) {
+		rst := a.toWebFunc(rs)
+		return rst, nil
+	}
+	if q.IsHr == 1 {
+		//todo 调用心率系统接口
+	}
+	if q.IsScore == 1 {
+		// todo 调用评分系统接口
+	}
+
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// ClassOverConfirm 确认下课
+func (a Api) ClassOverConfirm(ctx context.Context, r *pb.StandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.webToGoVerify(ctx, r)
+
+	rs := service.Course{}.ClassOverConfirm(token, q.ShopID, q.JsonStr, sign)
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// ClassGiveUpConfirm 关闭课程
+func (a Api) ClassGiveUpConfirm(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.courseToGoVerify(ctx, r)
+
+	rs := service.Course{}.ClassGiveUpConfirm(token, q.ShopID, q.JsonStr, sign)
+	if !a.checkRs(rs) {
+		rst := a.toWebFunc(rs)
+		return rst, nil
+	}
+	if q.IsHr == 1 {
+		//todo 调用心率系统接口
+	}
+	if q.IsScore == 1 {
+		// todo 调用评分系统接口
+	}
+
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
+// AfterClassAddClassDetail 关闭课程
+func (a Api) AfterClassAddClassDetail(ctx context.Context, r *pb.CourseStandardRequest) (*pb.StandardReply, error) {
+	// 获取token,并验证签名函数
+	token, q, sign := a.courseToGoVerify(ctx, r)
+	var rs string
+	// 因为是上课后追加的人,已经在基础库中添加,所以只需要在心率与评分中加入
+	//rs := service.Course{}.ClassGiveUpConfirm(token, q.ShopID, q.JsonStr, sign)
+	if q.IsHr == 1 {
+		rs = service.Hr{}.AfterClassAddClassDetail(token, q.ShopID, q.JsonStr, sign)
+		if !a.checkRs(rs) {
+			rst := a.toWebFunc(rs)
+			return rst, nil
+		}
+	}
+	if q.IsScore == 1 {
+		// todo 调用评分系统接口
+	}
+
+	rst := a.toWebFunc(rs)
+	return rst, nil
+}
+
 // ----------------------- 商家预约管理 ---------------------------------------------
 
 // OrderListQuery 预约记录查询

File diff suppressed because it is too large
+ 776 - 633
api/grpc/base/base.pb.go


+ 432 - 0
api/grpc/base/base_grpc.pb.go

@@ -114,6 +114,18 @@ type ApiClient interface {
 	STTDetailAllowDelCheck(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
 	// 商家上下课管理
 	CourseDetailQuery(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	ClassListByOrderDate(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	ClassStartPrepare(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	VipClassDetailQuery(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	VipClassDetailAdd(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	VipClassDetailDel(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	TmpClassDetailAdd(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	TmpClassDetailDel(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	VipClassDetailStatueEdit(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	ClassStartConfirm(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	ClassOverConfirm(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	ClassGiveUpConfirm(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
+	AfterClassAddClassDetail(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
 	// 商家预约管理
 	OrderListQuery(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
 	OrderAddByManager(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error)
@@ -958,6 +970,114 @@ func (c *apiClient) CourseDetailQuery(ctx context.Context, in *StandardRequest,
 	return out, nil
 }
 
+func (c *apiClient) ClassListByOrderDate(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/ClassListByOrderDate", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) ClassStartPrepare(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/ClassStartPrepare", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) VipClassDetailQuery(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/VipClassDetailQuery", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) VipClassDetailAdd(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/VipClassDetailAdd", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) VipClassDetailDel(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/VipClassDetailDel", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) TmpClassDetailAdd(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/TmpClassDetailAdd", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) TmpClassDetailDel(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/TmpClassDetailDel", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) VipClassDetailStatueEdit(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/VipClassDetailStatueEdit", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) ClassStartConfirm(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/ClassStartConfirm", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) ClassOverConfirm(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/ClassOverConfirm", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) ClassGiveUpConfirm(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/ClassGiveUpConfirm", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) AfterClassAddClassDetail(ctx context.Context, in *CourseStandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
+	out := new(StandardReply)
+	err := c.cc.Invoke(ctx, "/base.Api/AfterClassAddClassDetail", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *apiClient) OrderListQuery(ctx context.Context, in *StandardRequest, opts ...grpc.CallOption) (*StandardReply, error) {
 	out := new(StandardReply)
 	err := c.cc.Invoke(ctx, "/base.Api/OrderListQuery", in, out, opts...)
@@ -1238,6 +1358,18 @@ type ApiServer interface {
 	STTDetailAllowDelCheck(context.Context, *StandardRequest) (*StandardReply, error)
 	// 商家上下课管理
 	CourseDetailQuery(context.Context, *StandardRequest) (*StandardReply, error)
+	ClassListByOrderDate(context.Context, *StandardRequest) (*StandardReply, error)
+	ClassStartPrepare(context.Context, *CourseStandardRequest) (*StandardReply, error)
+	VipClassDetailQuery(context.Context, *StandardRequest) (*StandardReply, error)
+	VipClassDetailAdd(context.Context, *CourseStandardRequest) (*StandardReply, error)
+	VipClassDetailDel(context.Context, *CourseStandardRequest) (*StandardReply, error)
+	TmpClassDetailAdd(context.Context, *CourseStandardRequest) (*StandardReply, error)
+	TmpClassDetailDel(context.Context, *CourseStandardRequest) (*StandardReply, error)
+	VipClassDetailStatueEdit(context.Context, *CourseStandardRequest) (*StandardReply, error)
+	ClassStartConfirm(context.Context, *CourseStandardRequest) (*StandardReply, error)
+	ClassOverConfirm(context.Context, *StandardRequest) (*StandardReply, error)
+	ClassGiveUpConfirm(context.Context, *CourseStandardRequest) (*StandardReply, error)
+	AfterClassAddClassDetail(context.Context, *CourseStandardRequest) (*StandardReply, error)
 	// 商家预约管理
 	OrderListQuery(context.Context, *StandardRequest) (*StandardReply, error)
 	OrderAddByManager(context.Context, *StandardRequest) (*StandardReply, error)
@@ -1539,6 +1671,42 @@ func (UnimplementedApiServer) STTDetailAllowDelCheck(context.Context, *StandardR
 func (UnimplementedApiServer) CourseDetailQuery(context.Context, *StandardRequest) (*StandardReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method CourseDetailQuery not implemented")
 }
+func (UnimplementedApiServer) ClassListByOrderDate(context.Context, *StandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ClassListByOrderDate not implemented")
+}
+func (UnimplementedApiServer) ClassStartPrepare(context.Context, *CourseStandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ClassStartPrepare not implemented")
+}
+func (UnimplementedApiServer) VipClassDetailQuery(context.Context, *StandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VipClassDetailQuery not implemented")
+}
+func (UnimplementedApiServer) VipClassDetailAdd(context.Context, *CourseStandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VipClassDetailAdd not implemented")
+}
+func (UnimplementedApiServer) VipClassDetailDel(context.Context, *CourseStandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VipClassDetailDel not implemented")
+}
+func (UnimplementedApiServer) TmpClassDetailAdd(context.Context, *CourseStandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method TmpClassDetailAdd not implemented")
+}
+func (UnimplementedApiServer) TmpClassDetailDel(context.Context, *CourseStandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method TmpClassDetailDel not implemented")
+}
+func (UnimplementedApiServer) VipClassDetailStatueEdit(context.Context, *CourseStandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method VipClassDetailStatueEdit not implemented")
+}
+func (UnimplementedApiServer) ClassStartConfirm(context.Context, *CourseStandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ClassStartConfirm not implemented")
+}
+func (UnimplementedApiServer) ClassOverConfirm(context.Context, *StandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ClassOverConfirm not implemented")
+}
+func (UnimplementedApiServer) ClassGiveUpConfirm(context.Context, *CourseStandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ClassGiveUpConfirm not implemented")
+}
+func (UnimplementedApiServer) AfterClassAddClassDetail(context.Context, *CourseStandardRequest) (*StandardReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method AfterClassAddClassDetail not implemented")
+}
 func (UnimplementedApiServer) OrderListQuery(context.Context, *StandardRequest) (*StandardReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method OrderListQuery not implemented")
 }
@@ -3232,6 +3400,222 @@ func _Api_CourseDetailQuery_Handler(srv interface{}, ctx context.Context, dec fu
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Api_ClassListByOrderDate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(StandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).ClassListByOrderDate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/ClassListByOrderDate",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).ClassListByOrderDate(ctx, req.(*StandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_ClassStartPrepare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CourseStandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).ClassStartPrepare(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/ClassStartPrepare",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).ClassStartPrepare(ctx, req.(*CourseStandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_VipClassDetailQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(StandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).VipClassDetailQuery(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/VipClassDetailQuery",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).VipClassDetailQuery(ctx, req.(*StandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_VipClassDetailAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CourseStandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).VipClassDetailAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/VipClassDetailAdd",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).VipClassDetailAdd(ctx, req.(*CourseStandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_VipClassDetailDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CourseStandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).VipClassDetailDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/VipClassDetailDel",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).VipClassDetailDel(ctx, req.(*CourseStandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_TmpClassDetailAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CourseStandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).TmpClassDetailAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/TmpClassDetailAdd",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).TmpClassDetailAdd(ctx, req.(*CourseStandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_TmpClassDetailDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CourseStandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).TmpClassDetailDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/TmpClassDetailDel",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).TmpClassDetailDel(ctx, req.(*CourseStandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_VipClassDetailStatueEdit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CourseStandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).VipClassDetailStatueEdit(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/VipClassDetailStatueEdit",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).VipClassDetailStatueEdit(ctx, req.(*CourseStandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_ClassStartConfirm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CourseStandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).ClassStartConfirm(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/ClassStartConfirm",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).ClassStartConfirm(ctx, req.(*CourseStandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_ClassOverConfirm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(StandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).ClassOverConfirm(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/ClassOverConfirm",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).ClassOverConfirm(ctx, req.(*StandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_ClassGiveUpConfirm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CourseStandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).ClassGiveUpConfirm(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/ClassGiveUpConfirm",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).ClassGiveUpConfirm(ctx, req.(*CourseStandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_AfterClassAddClassDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CourseStandardRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).AfterClassAddClassDetail(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/base.Api/AfterClassAddClassDetail",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).AfterClassAddClassDetail(ctx, req.(*CourseStandardRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _Api_OrderListQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(StandardRequest)
 	if err := dec(in); err != nil {
@@ -3959,6 +4343,54 @@ var Api_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "CourseDetailQuery",
 			Handler:    _Api_CourseDetailQuery_Handler,
 		},
+		{
+			MethodName: "ClassListByOrderDate",
+			Handler:    _Api_ClassListByOrderDate_Handler,
+		},
+		{
+			MethodName: "ClassStartPrepare",
+			Handler:    _Api_ClassStartPrepare_Handler,
+		},
+		{
+			MethodName: "VipClassDetailQuery",
+			Handler:    _Api_VipClassDetailQuery_Handler,
+		},
+		{
+			MethodName: "VipClassDetailAdd",
+			Handler:    _Api_VipClassDetailAdd_Handler,
+		},
+		{
+			MethodName: "VipClassDetailDel",
+			Handler:    _Api_VipClassDetailDel_Handler,
+		},
+		{
+			MethodName: "TmpClassDetailAdd",
+			Handler:    _Api_TmpClassDetailAdd_Handler,
+		},
+		{
+			MethodName: "TmpClassDetailDel",
+			Handler:    _Api_TmpClassDetailDel_Handler,
+		},
+		{
+			MethodName: "VipClassDetailStatueEdit",
+			Handler:    _Api_VipClassDetailStatueEdit_Handler,
+		},
+		{
+			MethodName: "ClassStartConfirm",
+			Handler:    _Api_ClassStartConfirm_Handler,
+		},
+		{
+			MethodName: "ClassOverConfirm",
+			Handler:    _Api_ClassOverConfirm_Handler,
+		},
+		{
+			MethodName: "ClassGiveUpConfirm",
+			Handler:    _Api_ClassGiveUpConfirm_Handler,
+		},
+		{
+			MethodName: "AfterClassAddClassDetail",
+			Handler:    _Api_AfterClassAddClassDetail_Handler,
+		},
 		{
 			MethodName: "OrderListQuery",
 			Handler:    _Api_OrderListQuery_Handler,

+ 95 - 0
assembly/base/repository/postgre/course.go

@@ -0,0 +1,95 @@
+// Package postgre
+/**
+ * @ File:
+ * @ Date: 2021/5/27 10:13
+ * @ Author: JYQ
+ * @ Description:
+ */
+package postgre
+
+type PGCourse struct {
+}
+
+func (PGCourse) StdListQuery(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_std_List_query(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassListByOrderDate(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_stt_class_list_by_order_date(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassStartPrepare(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_class_start_prepare(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassDetailListQuery(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_class_detail_list_query(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassDetailAdd(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_class_detail_add(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassDetailDel(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_class_detail_del(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassTmpUserDetailAdd(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_class_tmp_user_detail_add(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassTmpUserDetailDel(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_class_tmp_user_detail_del(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassDetailStatusEdit(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_class_detail_status_edit(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassStartConfirm(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_class_start_confirm(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassOverConfirm(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_class_over_confirm(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}
+
+func (PGCourse) ClassGiveUpConfirm(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_class_give_up_confirm(? ,? ,?, ? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}

+ 16 - 0
assembly/base/service/base.go

@@ -133,3 +133,19 @@ func RandomInt(n int) int {
 	code := rand1.Intn(max) + min
 	return code
 }
+
+func (base) checkRs(rs string) bool {
+	b := false
+	rsMap := make(map[string]interface{})
+	err := json.Unmarshal([]byte(rs), &rsMap)
+	if err != nil {
+		panic(errors.J2MError)
+	}
+	code := int(rsMap["code"].(float64))
+	if code == 0 {
+		b = true
+	} else {
+		b = false
+	}
+	return b
+}

+ 129 - 0
assembly/base/service/courseMGT.go

@@ -6,3 +6,132 @@
  * @ Description: 上下课管理
  */
 package service
+
+import (
+	"sportfitness/base/assembly/base/repository/postgre"
+	"sportfitness/base/errors"
+)
+
+type Course struct {
+	base
+}
+
+func (c Course) CourseDetailQuery(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.StdListQuery(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) ClassListByOrderDate(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassListByOrderDate(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) ClassStartPrepare(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassStartPrepare(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) VipClassDetailQuery(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassDetailListQuery(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) VipClassDetailAdd(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassDetailAdd(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) VipClassDetailDel(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassDetailDel(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) TmpClassDetailAdd(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassTmpUserDetailAdd(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) TmpClassDetailDel(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassTmpUserDetailDel(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) VipClassDetailStatueEdit(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassDetailStatusEdit(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) ClassStartConfirm(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassStartConfirm(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) ClassOverConfirm(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassOverConfirm(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}
+
+func (c Course) ClassGiveUpConfirm(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := c.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGCourse{}.ClassGiveUpConfirm(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}

+ 10 - 0
assembly/base/service/hr.go

@@ -115,3 +115,13 @@ func (h Hr) SelectHrSensors(token string, objectShopId int64, jsonStr string, si
 	}
 	return rst
 }
+
+func (h Hr) AfterClassAddClassDetail(token string, objectShopId int64, jsonStr string, sign string) string {
+	optId := h.checkPermission(token, objectShopId)
+
+	rst, err := postgre.PGHr{}.HrClassDetailStatusEdit(optId, objectShopId, jsonStr, sign)
+	if err != nil {
+		panic(errors.PGError)
+	}
+	return rst
+}

+ 6 - 0
assembly/base/service/verifyCode.go

@@ -82,11 +82,17 @@ func (v VerifyCode) GetPhoneVFCode(sId int64, account, ip, templateCode, codeId,
 	if err != nil {
 		panic(errors.M2JError)
 	}
+	// todo 微信获取短信验证码,存储过程未校验上次发送时间
 	rs, err := postgre.PGVerifyCode{}.CreateVerifyCode(string(str), sId)
 	if err != nil {
 		panic(errors.PGError)
 	}
+	if !v.checkRs(rs) {
+		// 校验返回记录,如果code!= 0 直接返回,不执行短信发送
+		return rs
+	}
 	sms.PhoneCode{}.SendCode(vf, templateCode, signName)
+
 	return rs
 }
 

+ 7 - 0
assembly/heartRate/repository/postgre/hr.go

@@ -79,3 +79,10 @@ func (PGHr) UnBindSensorsQuery(optUserId int64, objectShopId int64, jsonStr stri
 
 	return
 }
+
+func (PGHr) HrClassDetailStatusEdit(optUserId int64, objectShopId int64, jsonStr string, verfStr string) (result string, err error) {
+	err = getClient().Raw("select fn_hr_class_detail_status_edit(? ,? ,? )", optUserId, objectShopId, jsonStr, verfStr).
+		Scan(&result).Error
+
+	return
+}

+ 20 - 0
proto/server/base.proto

@@ -121,6 +121,18 @@ service Api {
 
   // 商家上下课管理
   rpc CourseDetailQuery (StandardRequest) returns (StandardReply) {}
+  rpc ClassListByOrderDate (StandardRequest) returns (StandardReply) {}
+  rpc ClassStartPrepare (CourseStandardRequest) returns (StandardReply) {}
+  rpc VipClassDetailQuery (StandardRequest) returns (StandardReply) {}
+  rpc VipClassDetailAdd (CourseStandardRequest) returns (StandardReply) {}
+  rpc VipClassDetailDel (CourseStandardRequest) returns (StandardReply) {}
+  rpc TmpClassDetailAdd (CourseStandardRequest) returns (StandardReply) {}
+  rpc TmpClassDetailDel (CourseStandardRequest) returns (StandardReply) {}
+  rpc VipClassDetailStatueEdit (CourseStandardRequest) returns (StandardReply) {}
+  rpc ClassStartConfirm (CourseStandardRequest) returns (StandardReply) {}
+  rpc ClassOverConfirm (StandardRequest) returns (StandardReply) {}
+  rpc ClassGiveUpConfirm (CourseStandardRequest) returns (StandardReply) {}
+  rpc AfterClassAddClassDetail (CourseStandardRequest) returns (StandardReply) {}
 
   // 商家预约管理
   rpc OrderListQuery (StandardRequest) returns (StandardReply) {}
@@ -161,6 +173,14 @@ message StandardRequest{
   string sign = 3;
 }
 
+message CourseStandardRequest{
+  int64 shopID = 1;
+  string jsonStr = 2;
+  string sign = 3;
+  int32 isHr = 4;
+  int32 isScore = 5;
+}
+
 message StandardReply{
   string jsonRst = 1;
   string sign = 2;

Some files were not shown because too many files changed in this diff