MCPcopy Index your code
hub / github.com/53AI/53AIHub / InitSystemNavigation

Function InitSystemNavigation

api/controller/navigation.go:374–422  ·  view source on GitHub ↗

@Summary 初始化系统导航 @Description 初始化企业系统默认导航 @Tags Navigation @Accept json @Produce json @Param request body []NavigationRequest true "导航列表" @Success 201 {object} model.CommonResponse{data=[]model.Navigation} "创建成功" @Router /api/navigations/init [post]

(c *gin.Context)

Source from the content-addressed store, hash-verified

372// @Success 201 {object} model.CommonResponse{data=[]model.Navigation} "创建成功"
373// @Router /api/navigations/init [post]
374func InitSystemNavigation(c *gin.Context) {
375 eid := config.GetEID(c)
376 user, err := model.GetLoginUser(c)
377 if err == nil {
378 eid = user.Eid
379 }
380
381 navs, err := model.GetNavigationsByEid(eid)
382 if err != nil {
383 c.JSON(http.StatusInternalServerError, model.DBError.ToResponse(nil))
384 return
385 }
386 if len(navs) > 0 {
387 c.JSON(http.StatusOK, model.Success.ToResponse(navs))
388 return
389 }
390
391 var req []NavigationRequest
392 if err := c.ShouldBindJSON(&req); err != nil {
393 c.JSON(http.StatusBadRequest, model.ParamError.ToResponse(err))
394 return
395 }
396
397 tx := model.DB.Begin()
398 for _, nav := range req {
399 createdTime := time.Now().UTC().UnixMilli()
400 nav := model.Navigation{
401 Name: nav.Name,
402 JumpPath: nav.JumpPath,
403 Sort: nav.Sort,
404 Config: nav.Config,
405 Eid: eid,
406 Type: model.NavigationTypeSystemBuiltIn,
407 BaseModel: model.BaseModel{
408 CreatedTime: createdTime,
409 UpdatedTime: createdTime,
410 },
411 }
412 if err := tx.Create(&nav).Error; err != nil {
413 tx.Rollback()
414 c.JSON(http.StatusInternalServerError, model.DBError.ToResponse(nil))
415 return
416 }
417 navs = append(navs, &nav)
418 }
419 tx.Commit()
420
421 c.JSON(http.StatusCreated, model.Success.ToResponse(nil))
422}
423
424type CreateNavigationContentRequest struct {
425 HtmlContent string `json:"html_content" binding:"required"`

Callers

nothing calls this directly

Calls 3

GetEIDMethod · 0.80
ToResponseMethod · 0.80
CreateMethod · 0.45

Tested by

no test coverage detected