@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)
| 372 | // @Success 201 {object} model.CommonResponse{data=[]model.Navigation} "创建成功" |
| 373 | // @Router /api/navigations/init [post] |
| 374 | func 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 | |
| 424 | type CreateNavigationContentRequest struct { |
| 425 | HtmlContent string `json:"html_content" binding:"required"` |
nothing calls this directly
no test coverage detected