package controller import ( "designs/app/common/request" "designs/app/common/response" "designs/global" "designs/model" "github.com/gin-gonic/gin" ) func GetActionLogHeader(c *gin.Context) { response.Success(c, gin.H{ "data": map[string]interface{}{ "action": []string{ "新增", "修改", "删除", }, "object": []string{ "图片", "视频", }, }, }) } func ActionLogList(c *gin.Context) { form := request.Check(c, &struct { Offset int `form:"offset" json:"offset" binding:""` Limit int `form:"limit" json:"limit" binding:"required"` Action string `form:"action" json:"action" binding:""` Object string `form:"object" json:"object" binding:""` Order string `form:"order" json:"order" binding:""` UserId int `form:"user_id" json:"user_id" binding:""` }{}) query := global.App.DB.Table(model.TableActionLog) if form.Action != "" { query = query.Where("action", form.Action) } if form.Object != "" { query = query.Where("object", form.Object) } if form.UserId != 0 { query = query.Where("user_id", form.UserId) } var count int64 err := query.Count(&count).Error if err != nil { response.Fail(c, 1001, err.Error()) return } var data []struct { model.ActionLog Name string `json:"name" gorm:"column:name"` } err = query.Offset(form.Offset).Limit(form.Limit). Join(model.TableAdminUser, "admin_user.id", "=", "action_log.user_id"). //Select("action_log.*", "admin_user.name as user_name"). Scan(&data).Error if err != nil { response.Fail(c, 1002, err.Error()) return } response.Success(c, gin.H{ "data": map[string]interface{}{ "list": data, "total": count, }, }) }