Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master' into master

# Conflicts:
#	transform/transform.pb.go
#	transformclient/transform.go
icole 4 anni fa
parent
commit
940d8a94ab

+ 42 - 0
internal/logic/get_city_ids_logic.go

@@ -0,0 +1,42 @@
+package logic
+
+import (
+	"context"
+	"fmt"
+
+	"git.i2edu.net/i2/i2-bill-erp/internal/svc"
+	"git.i2edu.net/i2/i2-bill-erp/model"
+	"git.i2edu.net/i2/i2-bill-erp/transform"
+
+	"git.i2edu.net/i2/go-zero/core/logx"
+)
+
+type GetCityIdsLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewGetCityIdsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetCityIdsLogic {
+	return &GetCityIdsLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+func (l *GetCityIdsLogic) GetCityIds(in *transform.CityIdsReq) (*transform.CityIdsRes, error) {
+	var city []model.BaseOrgan
+	err := l.svcCtx.SqlConn.QueryRowsPartial(&city, fmt.Sprintf("select id, name from base_organ where name in (%v) and del_flag!=1", in.Names))
+	if err != nil {
+		return nil, err
+	}
+	tc := transform.CityIdsRes{}
+	for i := range city {
+		if tc.MapList == nil {
+			tc.MapList = map[string]int64{}
+		}
+		tc.MapList[city[i].Name.String] = city[i].Id
+	}
+	return &tc, nil
+}

+ 195 - 0
internal/logic/get_data_permission_logic.go

@@ -0,0 +1,195 @@
+package logic
+
+import (
+	"context"
+	"fmt"
+	"strings"
+
+	"git.i2edu.net/i2/i2-bill-erp/internal/svc"
+	"git.i2edu.net/i2/i2-bill-erp/model"
+	"git.i2edu.net/i2/i2-bill-erp/transform"
+	"github.com/thoas/go-funk"
+
+	"git.i2edu.net/i2/go-zero/core/logx"
+)
+
+var roleMap = map[string]map[string]string{
+	// ##渠道一级
+	"one_level_channel": map[string]string{"市场": "1001", "网络": "1002", "老推": "1003", "品牌": "1004", "其他": "1005"},
+	// ##任务
+	// #目标计划
+	// 市场人员计划
+	"mkt_marketer_plan_target": map[string]string{"市场人员划分": "user", "校区划分": "os"}, //
+	// 校区市场计划
+	"mkt_sch_market_plan": map[string]string{"校区划分": "os"},
+	// 销售人员计划
+	"mkt_ec_user_targetplan": map[string]string{"销售人员划分": "user", "校区划分": "os"}, //
+	// 校区销售计划
+	"mkt_sch_targetsign_plan": map[string]string{"校区划分": "os"},
+	// 客服人员计划
+	"mkt_ta_target_plan": map[string]string{"客服人员划分": "user", "校区划分": "os"}, //
+	// 校区客服计划
+	"mkt_sch_ta_targetplan": map[string]string{"校区划分": "os"},
+	// 生日提醒
+	"remind_birthday": map[string]string{"跟进校区划分": "os", "班型客服划分": "ta"},
+	// ##营销
+	// #线索管理
+	// 线索学员
+	"mkt_resource": map[string]string{"资源销售划分": "ec", "资源收集人划分": "load_user", "资源收集校区划分": "os",
+		"网络渠道划分": "tmk", "市场渠道划分": "mkt", "品牌渠道划分": "prod", "老推渠道划分": "old", "其他渠道划分": "other",
+		"非网络渠道划分": "no_tmk", "分配tmk划分": "allot_tmk", "资源录入人划分": "create_by", "收集城市划分": "tmk_city",
+		"资源收集校区筛选": "load_sch", "资源跟进校区筛选": "stu_sch"},
+	// 市场活动管理
+	"mkt_activity": map[string]string{"活动创建人划分": "user", "活动校区划分": "os"},
+	// #潜在学员管理
+	// 潜在学员列表
+	"existing_students": map[string]string{"学员销售划分": "ec", "学员跟进校区划分": "os",
+		"网络渠道划分": "tmk", "市场渠道划分": "mkt", "品牌渠道划分": "prod", "老推渠道划分": "old", "其他渠道划分": "other",
+		"资源收集校区筛选": "load_sch", "资源跟进校区筛选": "stu_sch", "资源收集人划分": "load_user", "分配tmk划分": "allot_tmk"},
+	// 老推学员列表
+	"old_students": map[string]string{"资源收集人划分": "load_user", "学员跟进校区划分": "os"},
+	// 邀约上门学员列表
+	"mkt_invite_visit": map[string]string{"资源收集人划分": "load_user", "学员销售划分": "ec", "资源收集校区划分": "os"},
+	// 无效资源列表
+	"invalid_students": map[string]string{"学员销售划分": "ec", "学员跟进校区划分": "os"},
+	// #试听课管理
+	// 试听课列表
+	"mkt_trial_lesson": map[string]string{"试听课客服划分": "ta", "试听课教师划分": "tea", "试听课校区划分": "os"},
+	// 试听课学员列表
+	"mkt_trial_lesson_student": map[string]string{"学员销售划分": "ec", "试听课教师划分": "ta", "试听课校区划分": "os",
+		"网络渠道划分": "tmk", "市场渠道划分": "mkt", "品牌渠道划分": "prod", "老推渠道划分": "old", "其他渠道划分": "other",
+		"收集城市划分": "tmk_city", "分配tmk划分": "allot_tmk", "资源收集人划分": "load_user", "资源收集校区划分": "load_sch"},
+	// tmk待分配学员列表
+	"mkt_stu_unallot_tmk": map[string]string{"资源销售划分": "ec", "资源收集人划分": "load_user", "资源收集校区划分": "os",
+		"网络渠道划分": "tmk", "市场渠道划分": "mkt", "品牌渠道划分": "prod", "老推渠道划分": "old", "其他渠道划分": "other",
+		"非网络渠道划分": "no_tmk", "资源录入人划分": "create_by", "收集城市划分": "tmk_city"},
+	// tmk已分配学员列表
+	"mkt_stu_allot_tmk": map[string]string{"收集城市划分": "os", "资源收集人划分": "user", "分配tmk划分": "tmk_user",
+		"网络渠道划分": "tmk", "市场渠道划分": "mkt", "品牌渠道划分": "prod", "老推渠道划分": "old", "其他渠道划分": "other"},
+	// 学员回访列表
+	"mkt_student_visit": map[string]string{"学员销售划分": "ec", "学员跟进校区划分": "os"},
+	// ##教务
+	"stu_class":                   map[string]string{"班级客服划分": "kf", "学员跟进校区划分": "os"},
+	"edu_tea_leave_management":    map[string]string{"教师所属校区划分": "sys_os", "教师权限校区划分": "os", "教师划分": "tea"},
+	"crm_complaints_repair_order": map[string]string{"校区划分": "os"},
+	"order_student_class_type": map[string]string{"学员销售划分": "ec", "班型客服划分": "ta", "签单校区划分": "of_os",
+		"学员跟进校区划分": "os"},
+	"order_deposit_in":       map[string]string{"学员销售划分": "ec", "班型客服划分": "ta", "学员跟进校区划分": "os"},
+	"edu_sc_class_tea":       map[string]string{"班级所在校区划分": "os", "班级客服划分": "ta"},
+	"stu_tea_class_schedule": map[string]string{"班级所在校区划分": "os", "班级客服划分": "ta"},
+	// ##财务
+	"order_form": map[string]string{"学员跟进校区划分": "os", "签单校区划分": "of_os", "学员销售划分": "ec", "分配tmk划分": "allot_tmk",
+		"网络渠道划分": "tmk", "市场渠道划分": "mkt", "品牌渠道划分": "prod", "老推渠道划分": "old", "其他渠道划分": "other",
+		"学员收集人划分": "load_user", "学员班型客服划分": "ta", "收集城市划分": "tmk_city", "资源收集校区划分": "load_sch"},
+	"order_tb_form": map[string]string{"学员跟进校区划分": "os", "签单校区划分": "of_os", "学员销售划分": "ec", "分配tmk划分": "allot_tmk",
+		"网络渠道划分": "tmk", "市场渠道划分": "mkt", "品牌渠道划分": "prod", "老推渠道划分": "old", "其他渠道划分": "other",
+		"学员收集人划分": "load_user", "学员班型客服划分": "ta", "收集城市划分": "tmk_city", "资源收集校区划分": "load_sch"},
+	"order_refund": map[string]string{"学员跟进校区划分": "os", "签单校区划分": "of_os", "学员销售划分": "ec",
+		"学员收集人划分": "load_user", "班型分配班级客服划分": "ta"},
+	"fin_temp_storage_cz":               map[string]string{"学员销售划分": "ec", "班型客服划分": "ta", "学员跟进校区划分": "os"},
+	"fn_student_account":                map[string]string{"学员销售划分": "ec", "班型客服划分": "ta", "学员跟进校区划分": "os"},
+	"fin_stu_account_flow":              map[string]string{"学员销售划分": "ec", "班型客服划分": "ta", "学员跟进校区划分": "os"},
+	"fin_invoice":                       map[string]string{"学员销售划分": "ec", "班型客服划分": "ta", "签单校区划分": "os"},
+	"fin_stu_integral_flow":             map[string]string{"学员跟进校区划分": "os"},
+	"fin_yb_pay_flowing":                map[string]string{"支付校区划分": "os"},
+	"fin_yeepay_reconciliations_record": map[string]string{"流水支付校区划分": "os"},
+	"base_class_manage":                 map[string]string{"班级客服划分": "ta", "班级校区划分": "os"},
+	"student":                           map[string]string{"学员跟进校区划分": "os", "学员销售划分": "ec", "学员收集人划分": "load_user", "班型分配客服划分": "ta"},
+	"order_student_gift":                map[string]string{"学员跟进校区划分": "os", "班级客服划分": "ta"},
+	"edu_stu_ct_renew_log":              map[string]string{"班型客服划分": "ta", "学员跟进校区划分": "os"},
+	"attendance_list":                   map[string]string{"班级校区划分": "os", "教师划分": "tea", "班型客服划分": "ta"},
+	"role_trial_lesson":                 map[string]string{"班级校区划分": "os", "教师划分": "tea", "试听课销售划分": "ec"},
+	"sys_user":                          map[string]string{"所属校区划分": "sys_os", "权限校区划分": "base_os"},
+	// "base_on_sale":               map[string]string{"校区划分": "os"},
+	"stu_class_type_textbook":                map[string]string{"学员跟进校区划分": "os"},
+	"edu_class_schedule_student":             map[string]string{"班级客服划分": "ta", "学员跟进校区划分": "os"},
+	"edu_class_schedule_student_absenceList": map[string]string{"班型客服划分": "ta", "学员跟进校区划分": "os"},
+	"base_organ_school":                      map[string]string{"权限校区划分": "os"},
+	"ecs_stu":                                map[string]string{"班型客服划分": "ecs_ta", "班级状态修改权限": "manage"},
+	"encode":                                 map[string]string{"导出联系方式加密": "export_stu_phone", "显示联系方式不加密": "list_stu_phone"},
+	"order_exchange_gift_jfsc":               map[string]string{"积分兑换记录用户权限校区": "os"},
+	"task_pg":                                map[string]string{"批改作业权限": "os"},
+	"cmp_plan":                               map[string]string{"权限校区划分": "os", "班级客服划分": "ta"},
+	"eschool_stu_study_report":               map[string]string{"班级所在校区划分": "os", "班级客服划分": "ta"},
+	"order_sch_achievement_divide":           map[string]string{"所属校区划分": "base_os", "权限校区划分": "sys_os"},
+	"user_city":                              map[string]string{"所属校区划分": "base_os", "权限校区划分": "sys_os", "学员跟进校区划分": "os"},
+	"rl_hour_list":                           map[string]string{"权限校区划分": "os"},
+	"eschool_class_schedule_unit_pick":       map[string]string{"学员跟进校区划分": "os", "班型客服划分": "ta"},
+	"teacher_ft":                             map[string]string{"权限校区划分": "os"},
+	"teacher_oa":                             map[string]string{"权限校区划分": "os"},
+
+	"fin_pay_flowing":            map[string]string{"权限校区划分": "os"},
+	"fin_reconciliations_record": map[string]string{"权限校区划分": "os"},
+
+	// 兼职人员的数据
+	"acquirer_student": map[string]string{"本人及所管兼职划分": "self_acquirer", "本人及所管兼职和专员划分": "self_acquirer_market", "所管兼职和市场划分": "acquirer_market_mgn"},
+}
+
+type GetDataPermissionLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewGetDataPermissionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetDataPermissionLogic {
+	return &GetDataPermissionLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+// 获取数据权限
+func (l *GetDataPermissionLogic) GetDataPermission(in *transform.DataPermissionReq) (*transform.DataPermissionRes, error) {
+	rule_code, UserId, params := in.RuleCode, in.UserId, transform.DataPermissionRes{}
+	var channelMap = map[string]string{
+		"mkt": "1001", "tmk": "1002", "old": "1003", "other": "1005", "prod": "1004",
+	}
+	mainRoleCode := []string{"tmk", "mkt", "prod", "old", "other", "no_tmk"}
+	if roleM, ok := roleMap[rule_code]; ok {
+		var roleRules []model.SysRoleDataPermission
+		err := l.svcCtx.SqlConn.QueryRowsPartial(&roleRules, `SELECT
+			sys_data_permission_detail.*
+		FROM
+			sys_data_permission, sys_data_permission_detail,sys_user_role
+		WHERE
+			sys_data_permission.id = sys_data_permission_detail.data_permission_id
+			AND FIND_IN_SET(sys_user_role.role_id, sys_data_permission_detail.role_id)
+			AND sys_user_role.del_flag = 0
+			AND sys_data_permission_detail.del_flag = 0
+			AND sys_data_permission.code = ?
+			AND sys_user_role.user_id = ?`, rule_code, UserId)
+		if err == nil && len(roleRules) > 0 {
+			roles := funk.Get(roleRules, "Rule").([]string)
+			roleStr := strings.Join(roles, ",")
+			if rule_code == "one_level_channel" {
+				params.MapList["role_channel"] = roleStr
+			} else {
+				var role_channel []string
+				for _, code := range mainRoleCode {
+					if strings.Index(fmt.Sprintf(",%v,", roleStr), fmt.Sprintf(",%v,", code)) >= 0 {
+						if channel, ok := channelMap[code]; ok {
+							role_channel = append(role_channel, channel)
+						} else {
+							params.MapList[fmt.Sprintf("role_%v", code)] = "true"
+						}
+					}
+				}
+				if len(role_channel) > 0 {
+					params.MapList["role_channel"] = strings.Join(role_channel, ",")
+				}
+				// 并列权限,如果有了os的权限,其他的权限就不使用了,如果需要增加别的权限需要在此之前设置
+				if strings.Index(fmt.Sprintf(",%v,", roleStr), ",os,") >= 0 {
+					params.MapList["role_os"] = "true"
+				} else {
+					for _, v := range roleM {
+						if strings.Index(fmt.Sprintf(",%v,", roleStr), fmt.Sprintf(",%v,", v)) >= 0 {
+							params.MapList[fmt.Sprintf("role_%v", v)] = "true"
+						}
+					}
+				}
+			}
+		}
+	}
+	return &params, nil
+}

+ 30 - 0
internal/logic/get_school_ids_logic.go

@@ -0,0 +1,30 @@
+package logic
+
+import (
+	"context"
+
+	"git.i2edu.net/i2/i2-bill-erp/internal/svc"
+	"git.i2edu.net/i2/i2-bill-erp/transform"
+
+	"git.i2edu.net/i2/go-zero/core/logx"
+)
+
+type GetSchoolIdsLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewGetSchoolIdsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetSchoolIdsLogic {
+	return &GetSchoolIdsLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+func (l *GetSchoolIdsLogic) GetSchoolIds(in *transform.SchoolIdsReq) (*transform.SchoolIdsRes, error) {
+	// todo: add your logic here and delete this line
+
+	return &transform.SchoolIdsRes{}, nil
+}

+ 16 - 0
internal/server/transform_server.go

@@ -43,6 +43,16 @@ func (s *TransformServer) LoadOptionset(ctx context.Context, in *transform.Optio
 	return l.LoadOptionset(in)
 }
 
+func (s *TransformServer) GetSchoolIds(ctx context.Context, in *transform.SchoolIdsReq) (*transform.SchoolIdsRes, error) {
+	l := logic.NewGetSchoolIdsLogic(ctx, s.svcCtx)
+	return l.GetSchoolIds(in)
+}
+
+func (s *TransformServer) GetCityIds(ctx context.Context, in *transform.CityIdsReq) (*transform.CityIdsRes, error) {
+	l := logic.NewGetCityIdsLogic(ctx, s.svcCtx)
+	return l.GetCityIds(in)
+}
+
 func (s *TransformServer) PostExcelLog(ctx context.Context, in *transform.ExcelLogReq) (*transform.ExcelLogRes, error) {
 	l := logic.NewPostExcelLogLogic(ctx, s.svcCtx)
 	return l.PostExcelLog(in)
@@ -53,6 +63,12 @@ func (s *TransformServer) GetErpOptionset(ctx context.Context, in *transform.Opt
 	return l.GetErpOptionset(in)
 }
 
+// 获取数据权限
+func (s *TransformServer) GetDataPermission(ctx context.Context, in *transform.DataPermissionReq) (*transform.DataPermissionRes, error) {
+	l := logic.NewGetDataPermissionLogic(ctx, s.svcCtx)
+	return l.GetDataPermission(in)
+}
+
 // 获取erp 渠道细分树
 func (s *TransformServer) GetErpMktNetWorkDetailTree(ctx context.Context, in *transform.Empty) (*transform.TreeNodes, error) {
 	l := logic.NewGetErpMktNetWorkDetailTreeLogic(ctx, s.svcCtx)

+ 11 - 0
model/sys_role_data_permission.sql

@@ -0,0 +1,11 @@
+CREATE TABLE `sys_role_data_permission` (
+  `id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+  `data_permission_id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+  `role_id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+  `create_by` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+  `create_time` datetime NOT NULL,
+  `last_update_by` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+  `last_update_time` bigint NOT NULL,
+  `del_flag` int NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

+ 107 - 0
model/sys_role_data_permission_model.go

@@ -0,0 +1,107 @@
+package model
+
+import (
+	"database/sql"
+	"fmt"
+	"strings"
+	"time"
+
+	"git.i2edu.net/i2/go-zero/core/stores/cache"
+	"git.i2edu.net/i2/go-zero/core/stores/sqlc"
+	"git.i2edu.net/i2/go-zero/core/stores/sqlx"
+	"git.i2edu.net/i2/go-zero/core/stringx"
+	"git.i2edu.net/i2/go-zero/tools/goctl/model/sql/builderx"
+)
+
+var (
+	sysRoleDataPermissionFieldNames          = builderx.RawFieldNames(&SysRoleDataPermission{})
+	sysRoleDataPermissionRows                = strings.Join(sysRoleDataPermissionFieldNames, ",")
+	sysRoleDataPermissionRowsExpectAutoSet   = strings.Join(stringx.Remove(sysRoleDataPermissionFieldNames, "`create_time`", "`update_time`"), ",")
+	sysRoleDataPermissionRowsWithPlaceHolder = strings.Join(stringx.Remove(sysRoleDataPermissionFieldNames, "`id`", "`create_time`", "`update_time`"), "=?,") + "=?"
+
+	cacheSysRoleDataPermissionIdPrefix = "cache:sysRoleDataPermission:id:"
+)
+
+type (
+	SysRoleDataPermissionModel interface {
+		Insert(data SysRoleDataPermission) (sql.Result, error)
+		FindOne(id string) (*SysRoleDataPermission, error)
+		Update(data SysRoleDataPermission) error
+		Delete(id string) error
+	}
+
+	defaultSysRoleDataPermissionModel struct {
+		sqlc.CachedConn
+		table string
+	}
+
+	SysRoleDataPermission struct {
+		RoleId           string    `db:"role_id"`
+		CreateBy         string    `db:"create_by"`
+		CreateTime       time.Time `db:"create_time"`
+		LastUpdateBy     string    `db:"last_update_by"`
+		LastUpdateTime   int64     `db:"last_update_time"`
+		DelFlag          int64     `db:"del_flag"`
+		Id               string    `db:"id"`
+		DataPermissionId string    `db:"data_permission_id"`
+	}
+)
+
+func NewSysRoleDataPermissionModel(conn sqlx.SqlConn, c cache.CacheConf) SysRoleDataPermissionModel {
+	return &defaultSysRoleDataPermissionModel{
+		CachedConn: sqlc.NewConn(conn, c),
+		table:      "`sys_role_data_permission`",
+	}
+}
+
+func (m *defaultSysRoleDataPermissionModel) Insert(data SysRoleDataPermission) (sql.Result, error) {
+	query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?)", m.table, sysRoleDataPermissionRowsExpectAutoSet)
+	ret, err := m.ExecNoCache(query, data.RoleId, data.CreateBy, data.LastUpdateBy, data.LastUpdateTime, data.DelFlag, data.Id, data.DataPermissionId)
+
+	return ret, err
+}
+
+func (m *defaultSysRoleDataPermissionModel) FindOne(id string) (*SysRoleDataPermission, error) {
+	sysRoleDataPermissionIdKey := fmt.Sprintf("%s%v", cacheSysRoleDataPermissionIdPrefix, id)
+	var resp SysRoleDataPermission
+	err := m.QueryRow(&resp, sysRoleDataPermissionIdKey, func(conn sqlx.SqlConn, v interface{}) error {
+		query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", sysRoleDataPermissionRows, m.table)
+		return conn.QueryRow(v, query, id)
+	})
+	switch err {
+	case nil:
+		return &resp, nil
+	case sqlc.ErrNotFound:
+		return nil, ErrNotFound
+	default:
+		return nil, err
+	}
+}
+
+func (m *defaultSysRoleDataPermissionModel) Update(data SysRoleDataPermission) error {
+	sysRoleDataPermissionIdKey := fmt.Sprintf("%s%v", cacheSysRoleDataPermissionIdPrefix, data.Id)
+	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
+		query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, sysRoleDataPermissionRowsWithPlaceHolder)
+		return conn.Exec(query, data.RoleId, data.CreateBy, data.LastUpdateBy, data.LastUpdateTime, data.DelFlag, data.DataPermissionId, data.Id)
+	}, sysRoleDataPermissionIdKey)
+	return err
+}
+
+func (m *defaultSysRoleDataPermissionModel) Delete(id string) error {
+
+	sysRoleDataPermissionIdKey := fmt.Sprintf("%s%v", cacheSysRoleDataPermissionIdPrefix, id)
+	_, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
+		query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
+		return conn.Exec(query, id)
+	}, sysRoleDataPermissionIdKey)
+	return err
+}
+
+func (m *defaultSysRoleDataPermissionModel) formatPrimary(primary interface{}) string {
+	return fmt.Sprintf("%s%v", cacheSysRoleDataPermissionIdPrefix, primary)
+}
+
+func (m *defaultSysRoleDataPermissionModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
+	query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", sysRoleDataPermissionRows, m.table)
+	return conn.QueryRow(v, query, primary)
+}

+ 34 - 0
transform.proto

@@ -89,6 +89,26 @@ message ExcelLogRes {
   int64 Status = 1;
 }
 
+message SchoolIdsReq {
+  repeated  string names = 1;
+}
+
+message ListOfInt {
+  repeated int64 ids = 1;
+}
+
+message SchoolIdsRes {
+  map<string, int64> mapList=1;
+}
+
+message CityIdsReq {
+  string names = 1;
+}
+
+message CityIdsRes {
+  map<string, int64> mapList=1;
+}
+
 message BytesReq{
   bytes req = 1;
 }
@@ -138,6 +158,14 @@ message Active{
     string ma_name = 2;
 }
 
+message DataPermissionReq {
+  string rule_code = 1;
+  string user_id = 2;
+}
+
+message DataPermissionRes {
+  map<string, string> mapList=1;
+}
 
 service Transform {
   rpc GetUser(UserRequest) returns(UserResponse);
@@ -146,8 +174,14 @@ service Transform {
   rpc GetErpCityTree(Empty) returns(TreeNodes);
   //获取erp  字典
   rpc LoadOptionset(OptionsetReq) returns(OptionsetRes);
+  rpc GetSchoolIds(SchoolIdsReq) returns(SchoolIdsRes);
+  rpc GetCityIds(CityIdsReq) returns(CityIdsRes);
   rpc PostExcelLog(ExcelLogReq) returns(ExcelLogRes);
   rpc GetErpOptionset(OptionCode) returns(Options);
+
+  //获取数据权限
+  rpc GetDataPermission(DataPermissionReq) returns(DataPermissionRes);
+
   //获取erp 渠道细分树
   rpc GetErpMktNetWorkDetailTree(Empty) returns(TreeNodes);
   //获取erp 用户校区权限

File diff suppressed because it is too large
+ 390 - 588
transform/transform.pb.go


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