Browse Source

修改rpc链路追踪

icole 4 years ago
parent
commit
f371cb020f

+ 4 - 4
internal/logic/acquirer_mkt_qr/acquirer_mkt_qr_get_logic.go

@@ -31,7 +31,7 @@ func NewAcquirerMktQrGetLogic(ctx context.Context, svcCtx *svc.ServiceContext) A
 func (l *AcquirerMktQrGetLogic) AcquirerMktQrGet(r *http.Request) (*types.Response, error) {
 	// todo: add your logic here and delete this line
 	userId := l.svcCtx.GetUserIdByJwt(l.ctx)
-	erpUser, err := model.GetAcquirePermInfo(userId, l.svcCtx.Transformer, l.svcCtx.DB)
+	erpUser, err := model.GetAcquirePermInfo(userId, l.svcCtx.Transformer, l.svcCtx.DB, l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil
@@ -56,7 +56,7 @@ func (l *AcquirerMktQrGetLogic) AcquirerMktQrGet(r *http.Request) (*types.Respon
 	domain := strings.TrimRight(l.svcCtx.Config.AliYunOss.FileUrl, "/")
 	qr.Qr = domain + "/" + qr.Qr
 	//渠道
-	networkNodes, err := l.svcCtx.GetErpNetworkDetailTree()
+	networkNodes, err := l.svcCtx.GetErpNetworkDetailTree(l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil
@@ -69,14 +69,14 @@ func (l *AcquirerMktQrGetLogic) AcquirerMktQrGet(r *http.Request) (*types.Respon
 	qrMap["qudao_name"] = networkName
 	qrMap["qudao_path"] = networkId
 	//活动
-	active, err := l.svcCtx.GetErpActivity()
+	active, err := l.svcCtx.GetErpActivity(l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil
 	}
 	qrMap["activity_name"] = utils.GetErpActiveName(qr.ActivityId, active)
 	//校区
-	schools, err := l.svcCtx.GetErpOrganSchool()
+	schools, err := l.svcCtx.GetErpOrganSchool(l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil

+ 2 - 2
internal/logic/acquirer_mkt_qr/acquirer_mkt_qr_update_logic.go

@@ -44,7 +44,7 @@ func (l *AcquirerMktQrUpdateLogic) AcquirerMktQrUpdate(r *http.Request) (*types.
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil
 	}
-	userInfo, err := model.GetAcquirePermInfo(userId, l.svcCtx.Transformer, l.svcCtx.DB)
+	userInfo, err := model.GetAcquirePermInfo(userId, l.svcCtx.Transformer, l.svcCtx.DB, l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil
@@ -77,7 +77,7 @@ func (l *AcquirerMktQrUpdateLogic) AcquirerMktQrUpdate(r *http.Request) (*types.
 		if partUser.MkId == "" {
 			return &types.Response{500, "请联系管理员,分配mk", nil}, nil
 		}
-		erpUser, err := model.GetErpUser("", partUser.MkId, l.svcCtx.Transformer)
+		erpUser, err := model.GetErpUser("", partUser.MkId, l.svcCtx.Transformer, l.ctx)
 		if err != nil {
 			logx.Error(err.Error())
 			return &types.Response{500, err.Error(), nil}, nil

+ 1 - 1
internal/logic/acquirer_student/acquirer_student_add_logic.go

@@ -37,7 +37,7 @@ func (l *AcquirerStudentAddLogic) AcquirerStudentAdd(req types.EnrollAddReq) (*t
 		return &types.Response{500, err.Error(), nil}, nil
 	}
 	//是否有权限收单
-	erpUser, err := model.GetAcquirePermInfo(userId, l.svcCtx.Transformer, l.svcCtx.DB)
+	erpUser, err := model.GetAcquirePermInfo(userId, l.svcCtx.Transformer, l.svcCtx.DB, l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil

+ 1 - 1
internal/logic/base_organ/get_erp_city_tree_logic.go

@@ -26,7 +26,7 @@ func NewGetErpCityTreeLogic(ctx context.Context, svcCtx *svc.ServiceContext) Get
 
 func (l *GetErpCityTreeLogic) GetErpCityTree() (*types.Response, error) {
 	// todo: add your logic here and delete this line
-	res, err := l.svcCtx.GetErpCity()
+	res, err := l.svcCtx.GetErpCity(l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil

+ 2 - 2
internal/logic/base_organ_school/get_erp_sch_perm_logic.go

@@ -26,7 +26,7 @@ func NewGetErpSchPermLogic(ctx context.Context, svcCtx *svc.ServiceContext) GetE
 
 func (l *GetErpSchPermLogic) GetErpSchPerm() (*types.Response, error) {
 	// todo: add your logic here and delete this line
-	erpUser, err := model.GetAcquirePerm(l.svcCtx.GetUserIdByJwt(l.ctx), l.svcCtx.Transformer, l.svcCtx.DB)
+	erpUser, err := model.GetAcquirePerm(l.svcCtx.GetUserIdByJwt(l.ctx), l.svcCtx.Transformer, l.svcCtx.DB, l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil
@@ -34,7 +34,7 @@ func (l *GetErpSchPermLogic) GetErpSchPerm() (*types.Response, error) {
 	if erpUser == nil || erpUser.UserId == "" {
 		return &types.Response{200, "", nil}, nil
 	}
-	school, err := model.GetUserSchoolPerm(erpUser.UserId, l.svcCtx.Transformer, l.svcCtx.DB)
+	school, err := model.GetUserSchoolPerm(erpUser.UserId, l.svcCtx.Transformer, l.svcCtx.DB, l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil

+ 1 - 1
internal/logic/base_organ_school/get_erp_sch_tree_logic.go

@@ -26,7 +26,7 @@ func NewGetErpSchTreeLogic(ctx context.Context, svcCtx *svc.ServiceContext) GetE
 
 func (l *GetErpSchTreeLogic) GetErpSchTree() (*types.Response, error) {
 	// todo: add your logic here and delete this line
-	res, err := l.svcCtx.GetErpOrganSchoolTree()
+	res, err := l.svcCtx.GetErpOrganSchoolTree(l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil

+ 1 - 1
internal/logic/mkt_network_detail/get_erp_mkt_network_detail_logic.go

@@ -26,7 +26,7 @@ func NewGetErpMktNetworkDetailLogic(ctx context.Context, svcCtx *svc.ServiceCont
 
 func (l *GetErpMktNetworkDetailLogic) GetErpMktNetworkDetail() (*types.Response, error) {
 	// todo: add your logic here and delete this line
-	res, err := l.svcCtx.GetErpNetworkDetailTree()
+	res, err := l.svcCtx.GetErpNetworkDetailTree(l.ctx)
 	for _, node := range res {
 		if node.Id == 1001 {
 			res = []*transform.TreeNode{node}

+ 1 - 1
internal/logic/mkt_part_time_user/mkt_part_time_user_add_logic.go

@@ -52,7 +52,7 @@ func (l *PartTimeUserAddLogic) PartTimeUserAdd(req types.PartTimeUserAddRequest)
 		mkid = fmt.Sprintf("%s-%s-%s-%s", req.MkId[0:7], req.MkId[7:11], req.MkId[11:15], req.MkId[15:])
 	}
 
-	erpRes, err := model.GetErpUser("", mkid, l.svcCtx.Transformer)
+	erpRes, err := model.GetErpUser("", mkid, l.svcCtx.Transformer, l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{Code: 500, Msg: err.Error(), Data: nil}, nil

+ 1 - 1
internal/logic/mkt_qr/mkt_qr_add_logic.go

@@ -49,7 +49,7 @@ func (l *MktQrAddLogic) MktQrAdd(r *http.Request) (*types.Response, error) {
 	if mk_id == "" {
 		return &types.Response{500, "mk_id 不能为空", nil}, nil
 	}
-	erpRes, err := model.GetErpUser("", mk_id, l.svcCtx.Transformer)
+	erpRes, err := model.GetErpUser("", mk_id, l.svcCtx.Transformer, l.ctx)
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{Code: 500, Msg: err.Error(), Data: nil}, nil

+ 1 - 2
internal/logic/sys_optionset/get_erp_optionset_logic.go

@@ -31,8 +31,7 @@ func (l *GetErpOptionsetLogic) GetErpOptionset(req string) (*types.Response, err
 	if req == "" {
 		return nil, errors.New("请输入字典编码")
 	}
-	ctx := context.Background()
-	res, err := l.svcCtx.Transformer.GetErpOptionset(ctx, &transform.OptionCode{Code: req})
+	res, err := l.svcCtx.Transformer.GetErpOptionset(l.ctx, &transform.OptionCode{Code: req})
 	var msg string
 	var code = 200
 	var data = res

+ 1 - 1
internal/logic/user/get_user_logic.go

@@ -55,7 +55,7 @@ func (l *GetUserLogic) GetUser() (*types.InfoResponse, error) {
 			//兼职信息
 			resp.UserName, _ = res[0]["name"].(string)
 			cityId, _ := res[0]["city_id"].(int64)
-			cityNodes, err := l.svcCtx.GetErpCity()
+			cityNodes, err := l.svcCtx.GetErpCity(l.ctx)
 			if err != nil {
 				logx.Error(err)
 				return nil, err

+ 10 - 1
internal/logic/user/punch_clock_logic.go

@@ -3,6 +3,7 @@ package user
 import (
 	"context"
 	"database/sql"
+	"errors"
 	"fmt"
 	"time"
 
@@ -32,9 +33,17 @@ func NewPunchClockLogic(ctx context.Context, svcCtx *svc.ServiceContext) PunchCl
 }
 
 func (l *PunchClockLogic) PunchClock(req types.PunchClockRequest) (*types.Response, error) {
+	partTimeUser, err := model.GetPartTimeXormByUserId(l.UserId, l.svcCtx.DB)
+	if err != nil {
+		logx.Error(err)
+		return nil, err
+	}
+	if partTimeUser.UserId == 0 {
+		return nil, errors.New("请先申请成为兼职")
+	}
 	var aar model.I2billAcquirerAttendanceRecord
 	var nowDay = utils.GetTimeYmd()
-	err := l.svcCtx.SqlConn.QueryRowPartial(&aar, fmt.Sprintf("select * from i2bill_acquirer_attendance_record where `user_id` = ? and date=?  limit 1"), l.UserId, nowDay)
+	err = l.svcCtx.SqlConn.QueryRowPartial(&aar, fmt.Sprintf("select * from i2bill_acquirer_attendance_record where `user_id` = ? and date=?  limit 1"), l.UserId, nowDay)
 	if err == sqlc.ErrNotFound {
 		aar.DelFlag = sql.NullInt64{Int64: 0, Valid: true}
 		aar.UserId = sql.NullInt64{Int64: l.UserId, Valid: true}

+ 1 - 0
internal/logic/user/update_user_logic.go

@@ -31,6 +31,7 @@ func (l *UpdateUserLogic) UpdateUser(r *http.Request) (*types.Response, error) {
 	userId := l.svcCtx.GetUserIdByJwt(l.ctx)
 	user := new(model.UserXorm)
 	bodyByte, err := ioutil.ReadAll(r.Body)
+	defer r.Body.Close()
 	if err != nil {
 		logx.Error(err.Error())
 		return &types.Response{500, err.Error(), nil}, nil

+ 5 - 5
internal/svc/cache.go

@@ -4,11 +4,11 @@ import "time"
 
 const (
 	cacheWechatTokenPrefix    = "cache:wechat:token:"
-	cacheErpSchoolTree        = "i2bill:cache:erp:school_tree"
-	cacheErpActivity          = "i2bill:cache:erp:activity"
-	cacheErpSchool            = "i2bill:cache:erp:school"
-	cacheErpNetworkDetailTree = "i2bill:cache:erp:network_detail_tree"
-	cacheErpCityTree          = "i2bill:cache:erp:city_tree"
+	cacheErpSchoolTree        = "i2bill:cache:erp:school_tree:"
+	cacheErpActivity          = "i2bill:cache:erp:activity:"
+	cacheErpSchool            = "i2bill:cache:erp:school:"
+	cacheErpNetworkDetailTree = "i2bill:cache:erp:network_detail_tree:"
+	cacheErpCityTree          = "i2bill:cache:erp:city_tree:"
 )
 
 // Cache defined

+ 20 - 20
internal/svc/cache_erp.go

@@ -6,10 +6,10 @@ import (
 	"time"
 )
 
-func (svc *ServiceContext) GetErpOrganSchool() ([]*transform.OrganSchool, error) {
-	var schools []*transform.OrganSchool
+func (svc *ServiceContext) GetErpOrganSchool(ctx context.Context) ([]*transform.OrganSchool, error) {
+	var schools = new([]*transform.OrganSchool)
 	if err := svc.RdCli.GetCache(cacheErpSchool, schools); err != nil {
-		res, err := svc.Transformer.GetErpSchool(context.Background(), &transform.Empty{})
+		res, err := svc.Transformer.GetErpSchool(ctx, &transform.Empty{})
 		if err != nil {
 			return nil, err
 		}
@@ -19,13 +19,13 @@ func (svc *ServiceContext) GetErpOrganSchool() ([]*transform.OrganSchool, error)
 		}
 		return res.School, nil
 	}
-	return schools, nil
+	return *schools, nil
 }
 
-func (svc *ServiceContext) GetErpOrganSchoolTree() ([]*transform.TreeNode, error) {
-	var nodes []*transform.TreeNode
+func (svc *ServiceContext) GetErpOrganSchoolTree(ctx context.Context) ([]*transform.TreeNode, error) {
+	var nodes = new([]*transform.TreeNode)
 	if err := svc.RdCli.GetCache(cacheErpSchoolTree, nodes); err != nil {
-		res, err := svc.Transformer.GetErpOrganSchTree(context.Background(), &transform.Empty{})
+		res, err := svc.Transformer.GetErpOrganSchTree(ctx, &transform.Empty{})
 		if err != nil {
 			return nil, err
 		}
@@ -35,13 +35,13 @@ func (svc *ServiceContext) GetErpOrganSchoolTree() ([]*transform.TreeNode, error
 		}
 		return res.Nodes, nil
 	}
-	return nodes, nil
+	return *nodes, nil
 }
 
-func (svc *ServiceContext) GetErpNetworkDetailTree() ([]*transform.TreeNode, error) {
-	var nodes []*transform.TreeNode
+func (svc *ServiceContext) GetErpNetworkDetailTree(ctx context.Context) ([]*transform.TreeNode, error) {
+	var nodes = new([]*transform.TreeNode)
 	if err := svc.RdCli.GetCache(cacheErpNetworkDetailTree, nodes); err != nil {
-		res, err := svc.Transformer.GetErpMktNetWorkDetailTree(context.Background(), &transform.Empty{})
+		res, err := svc.Transformer.GetErpMktNetWorkDetailTree(ctx, &transform.Empty{})
 		if err != nil {
 			return nil, err
 		}
@@ -51,13 +51,13 @@ func (svc *ServiceContext) GetErpNetworkDetailTree() ([]*transform.TreeNode, err
 		}
 		return res.Nodes, nil
 	}
-	return nodes, nil
+	return *nodes, nil
 }
 
-func (svc *ServiceContext) GetErpActivity() ([]*transform.Active, error) {
-	var actives []*transform.Active
+func (svc *ServiceContext) GetErpActivity(ctx context.Context) ([]*transform.Active, error) {
+	var actives = new([]*transform.Active)
 	if err := svc.RdCli.GetCache(cacheErpActivity, actives); err != nil {
-		res, err := svc.Transformer.GetErpActive(context.Background(), &transform.GetErpActiveReq{})
+		res, err := svc.Transformer.GetErpActive(ctx, &transform.GetErpActiveReq{})
 		if err != nil {
 			return nil, err
 		}
@@ -67,13 +67,13 @@ func (svc *ServiceContext) GetErpActivity() ([]*transform.Active, error) {
 		}
 		return res.Active, nil
 	}
-	return actives, nil
+	return *actives, nil
 }
 
-func (svc *ServiceContext) GetErpCity() ([]*transform.TreeNode, error) {
-	var nodes []*transform.TreeNode
+func (svc *ServiceContext) GetErpCity(ctx context.Context) ([]*transform.TreeNode, error) {
+	var nodes = new([]*transform.TreeNode)
 	if err := svc.RdCli.GetCache(cacheErpCityTree, nodes); err != nil {
-		res, err := svc.Transformer.GetErpCityTree(context.Background(), &transform.Empty{})
+		res, err := svc.Transformer.GetErpCityTree(ctx, &transform.Empty{})
 		if err != nil {
 			return nil, err
 		}
@@ -83,5 +83,5 @@ func (svc *ServiceContext) GetErpCity() ([]*transform.TreeNode, error) {
 		}
 		return res.Nodes, nil
 	}
-	return nodes, nil
+	return *nodes, nil
 }

+ 8 - 10
model/i2bill_user_model.go

@@ -223,14 +223,14 @@ func GetI2bilUserInfo(userId int64, engine *xorm.Engine) (*UserXorm, error) {
 	return user, nil
 }
 
-func GetAcquirePerm(userId int64, rpcClient transformclient.Transform, engine *xorm.Engine) (*transform.GetErpRoleRes, error) {
+func GetAcquirePerm(userId int64, rpcClient transformclient.Transform, engine *xorm.Engine, ctx context.Context) (*transform.GetErpRoleRes, error) {
 
 	partUser, err := GetPartTimeXormByUserId(userId, engine)
 	if err != nil {
 		return nil, err
 	}
 	if partUser.Id != 0 && partUser.MkId != "" {
-		return GetErpUser("", partUser.MkId, rpcClient)
+		return GetErpUser("", partUser.MkId, rpcClient, ctx)
 	}
 
 	user, err := GetI2bilUserInfo(userId, engine)
@@ -238,7 +238,7 @@ func GetAcquirePerm(userId int64, rpcClient transformclient.Transform, engine *x
 		return nil, err
 	}
 
-	return GetErpUser(user.Mobile, "", rpcClient)
+	return GetErpUser(user.Mobile, "", rpcClient, ctx)
 }
 
 type AcquirePermInfo struct {
@@ -246,14 +246,14 @@ type AcquirePermInfo struct {
 	Role int64 // 1 兼职,2mk
 }
 
-func GetAcquirePermInfo(userId int64, rpcClient transformclient.Transform, engine *xorm.Engine) (*AcquirePermInfo, error) {
+func GetAcquirePermInfo(userId int64, rpcClient transformclient.Transform, engine *xorm.Engine, ctx context.Context) (*AcquirePermInfo, error) {
 	//mk
 	user, err := GetI2bilUserInfo(userId, engine)
 	if err != nil {
 		return nil, err
 	}
 
-	erpInfo, err := GetErpUser(user.Mobile, "", rpcClient)
+	erpInfo, err := GetErpUser(user.Mobile, "", rpcClient, ctx)
 	if err != nil {
 		return nil, err
 	}
@@ -268,7 +268,7 @@ func GetAcquirePermInfo(userId int64, rpcClient transformclient.Transform, engin
 	}
 	if partUser.Id != 0 && partUser.MkId != "" {
 
-		erpInfo, err := GetErpUser("", partUser.MkId, rpcClient)
+		erpInfo, err := GetErpUser("", partUser.MkId, rpcClient, ctx)
 		if err != nil {
 			return nil, err
 		}
@@ -279,8 +279,7 @@ func GetAcquirePermInfo(userId int64, rpcClient transformclient.Transform, engin
 	return nil, nil
 }
 
-func GetErpUser(mobile string, erpUserId string, rpcClient transformclient.Transform) (*transform.GetErpRoleRes, error) {
-	ctx := context.Background()
+func GetErpUser(mobile string, erpUserId string, rpcClient transformclient.Transform, ctx context.Context) (*transform.GetErpRoleRes, error) {
 	in := new(transform.GetErpRoleReq)
 	in.Mobile = mobile
 	in.UserId = erpUserId
@@ -301,8 +300,7 @@ func GetErpUser(mobile string, erpUserId string, rpcClient transformclient.Trans
 }
 
 //获取校区权限
-func GetUserSchoolPerm(erpUserId string, rpcClient transformclient.Transform, engine *xorm.Engine) ([]*transform.OrganSchool, error) {
-	ctx := context.Background()
+func GetUserSchoolPerm(erpUserId string, rpcClient transformclient.Transform, engine *xorm.Engine, ctx context.Context) ([]*transform.OrganSchool, error) {
 	in := erpUserId
 	result, err := rpcClient.GetErpOrganSchPerByUserId(ctx, &transform.GetErpOrganSchPerByUserIdReq{UserId: in})
 	if err != nil {