Эх сурвалжийг харах

fix: 体验版用户-手工数据权限

hsun 10 сар өмнө
parent
commit
346c0c2a8d

+ 74 - 0
controller/eta_trial/manual_user.go

@@ -0,0 +1,74 @@
+package eta_trial
+
+import (
+	"fmt"
+	"github.com/gin-gonic/gin"
+	"github.com/go-playground/validator/v10"
+	"hongze/hz_crm_eta/controller/resp"
+	"hongze/hz_crm_eta/global"
+	edbTrialModel "hongze/hz_crm_eta/models/eta_trial"
+	"time"
+)
+
+// CreateManualAuth
+// @Description 新增手工录入权限
+// @Success 200 {string} string "操作成功"
+// @Router /eta_trial/manual_user/add_auth [post]
+func (a *EtaTrialController) CreateManualAuth(c *gin.Context) {
+	var req edbTrialModel.CreateManualAuthReq
+	err := c.Bind(&req)
+	if err != nil {
+		errs, ok := err.(validator.ValidationErrors)
+		if !ok {
+			resp.FailData("参数解析失败", "Err:"+err.Error(), c)
+			return
+		}
+		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
+		return
+	}
+	if req.AdminId <= 0 {
+		resp.FailData("参数有误", fmt.Sprintf("CreateManualAuth参数有误, AdminId: %d", req.AdminId), c)
+		return
+	}
+
+	// 从ETA试用平台的edb库中读取手工数据分类
+	classifyIds := make([]int, 0)
+	{
+		classifyOb := new(edbTrialModel.EdbdataClassify)
+		cond := ` is_show = 1`
+		pars := make([]interface{}, 0)
+		list, e := classifyOb.GetItemsByCondition(cond, pars, []string{}, "")
+		if e != nil {
+			resp.FailData("操作失败", "获取手工数据分类失败, Err: "+e.Error(), c)
+			return
+		}
+		for _, v := range list {
+			classifyIds = append(classifyIds, v.ParentId)
+		}
+	}
+
+	// 新增用户及权限
+	manualUser := new(edbTrialModel.ManualUser)
+	manualUser.AdminId = req.AdminId
+	manualUser.AdminRealName = req.AdminName
+	manualUser.CreateTime = time.Now().Local()
+	if e := manualUser.Create(); e != nil {
+		resp.FailData("操作失败", "新增权限用户失败, Err: "+e.Error(), c)
+		return
+	}
+	userClassifies := make([]*edbTrialModel.ManualUserClassify, 0)
+	for _, v := range classifyIds {
+		userClassifies = append(userClassifies, &edbTrialModel.ManualUserClassify{
+			AdminId:    req.AdminId,
+			ClassifyId: v,
+			CreateTime: time.Now().Local(),
+		})
+	}
+	userClassifyOb := new(edbTrialModel.ManualUserClassify)
+	if e := userClassifyOb.BatchCreate(userClassifies); e != nil {
+		resp.FailData("操作失败", "批量新增权限用户分类失败, Err: "+e.Error(), c)
+		return
+	}
+
+	resp.OkData("操作成功", "", c)
+}

+ 28 - 0
models/eta_trial/edbdata_classify.go

@@ -0,0 +1,28 @@
+package eta_trial
+
+import (
+	"hongze/hz_crm_eta/global"
+	"time"
+)
+
+type EdbdataClassify struct {
+	ClassifyId   int       `gorm:"primaryKey;column:classify_id;type:int(11);not null" json:"classify_id"`
+	ClassifyName string    `gorm:"index:idx_classify_name;column:classify_name;type:varchar(100);default:''" json:"classify_name"` // 分类名称
+	ParentId     int       `gorm:"index:idx_parent_id;column:parent_id;type:int(11);default:0" json:"parent_id"`                   // 父级分类id
+	CreateTime   time.Time `gorm:"column:create_time;type:datetime" json:"create_time"`
+	Sort         int       `gorm:"column:sort;type:int(11);default:0" json:"sort"`          // 分类排序
+	IsShow       int8      `gorm:"column:is_show;type:tinyint(4);default:0" json:"is_show"` // 1:展示,0:不展示
+}
+
+func (m *EdbdataClassify) TableName() string {
+	return "edbdata_classify"
+}
+
+func (m *EdbdataClassify) GetItemsByCondition(cond string, pars []interface{}, fieldArr []string, orderRule string) (items []*EdbdataClassify, err error) {
+	order := ``
+	if orderRule != "" {
+		order = orderRule
+	}
+	err = global.MYSQL["edb_trial"].Where(cond, pars...).Order(order).Find(&items).Error
+	return
+}

+ 31 - 0
models/eta_trial/manual_user.go

@@ -0,0 +1,31 @@
+package eta_trial
+
+import (
+	"hongze/hz_crm_eta/global"
+	"time"
+)
+
+// ManualUser 手工数据关联用户
+type ManualUser struct {
+	ManualUserId    int       `gorm:"primaryKey;column:manual_user_id;type:int(11);not null" json:"manual_user_id"`
+	AdminId         int       `gorm:"column:admin_id;type:int(11);default:0" json:"admin_id"`
+	AdminRealName   string    `gorm:"column:admin_real_name;type:varchar(100);default:''" json:"admin_real_name"`
+	SysUserId       int       `gorm:"column:sys_user_id;type:int(11);default:0" json:"sys_user_id"`
+	SysUserRealName string    `gorm:"column:sys_user_real_name;type:varchar(100);default:''" json:"sys_user_real_name"`
+	CreateTime      time.Time `gorm:"column:create_time;type:datetime" json:"create_time"`
+}
+
+func (m *ManualUser) TableName() string {
+	return "manual_user"
+}
+
+func (m *ManualUser) Create() (err error) {
+	err = global.MYSQL["hz_data_trial"].Create(m).Error
+	return
+}
+
+// CreateManualAuthReq 新增手工数据权限
+type CreateManualAuthReq struct {
+	AdminId   int    `json:"admin_id" description:"用户ID"`
+	AdminName string `json:"admin_name" description:"用户姓名"`
+}

+ 27 - 0
models/eta_trial/manual_user_classify.go

@@ -0,0 +1,27 @@
+package eta_trial
+
+import (
+	"hongze/hz_crm_eta/global"
+	"time"
+)
+
+type ManualUserClassify struct {
+	ManualUserClassifyId int       `gorm:"primaryKey;column:manual_user_classify_id;type:int(11);not null" json:"manual_user_classify_id"`
+	AdminId              int       `gorm:"uniqueIndex:idx_sysuser_class;column:admin_id;type:int(11);default:0" json:"admin_id"`
+	ClassifyId           int       `gorm:"uniqueIndex:idx_sysuser_class;column:classify_id;type:int(11)" json:"classify_id"`
+	CreateTime           time.Time `gorm:"column:create_time;type:datetime" json:"create_time"`
+}
+
+func (m *ManualUserClassify) TableName() string {
+	return "manual_user_classify"
+}
+
+func (m *ManualUserClassify) Create() (err error) {
+	err = global.MYSQL["hz_data_trial"].Create(m).Error
+	return
+}
+
+func (m *ManualUserClassify) BatchCreate(items []*ManualUserClassify) (err error) {
+	err = global.MYSQL["hz_data_trial"].CreateInBatches(items, len(items)).Error
+	return
+}

+ 2 - 0
routers/eta_trial.go

@@ -21,4 +21,6 @@ func InitEtaTrial(r *gin.RouterGroup) {
 
 	group.POST("questionnaire/list", control.GetQuestionnaireList)
 	group.POST("questionnaire/commit", control.QuestionnaireCommit)
+
+	group.POST("manual_user/add_auth", control.CreateManualAuth)
 }