结构体构建

type PlansApproval struct {

    ID          uint
    Plans_Id    int    //plans编号
    UpdateUser  int    //更新者
    Approval    string //批示内容
    Record_date time.Time
    CreateUser  int
    ProfileID   int
    Profile     Profile `gorm:"ForeignKey:ProfileID;AssociationForeignKey:ID;"`

    PlansApprovalsReply []PlansApprovalsReply `gorm:"ForeignKey:ID;AssociationForeignKey:ID;"`
}
type PlansApprovalsReply struct {
    ID                            int
    Plans_id                      int
    Plans_approvals_reply_content string
    Plans_approvals_reply_date    time.Time
    Plans_approvals_reply_user    int
    User                          User `gorm:"ForeignKey:Plans_approvals_reply_user;AssociationForeignKey:ID"`
}
type PlansComment struct {
    ID                 uint
    Plans_Id           int //plans编号
    CreateUser         int
    UpdateUser         int //更新者
    Record_date        time.Time
    Comment            string //评论内容
    ProfileID          int
    Profile            Profile              `gorm:"ForeignKey:ProfileID;AssociationForeignKey:ID"`
    User               User                 `gorm:"ForeignKey:ProfileID;AssociationForeignKey:ID"`
    PlansCommentsReply []PlansCommentsReply `gorm:"ForeignKey:ID;AssociationForeignKey:ID;"`
}
type PlansCommentsReply struct {
    ID                          int
    Plans_id                    uint
    Plans_comment_reply_content string
    Plans_comment_reply_date    time.Time
    Plans_comment_reply_user    int
    User                        User `gorm:"ForeignKey:Plans_comment_reply_user;AssociationForeignKey:ID"`
}
type User struct {
    gorm.Model
    Username   string
    Avatar     string `gorm:"default:'/img/user.jpg'"`
    Profile_id int
}

type Profile struct {
    gorm.Model
    Realname    string    `form:"Realname" json:"Realname"`
    Sex         int       `form:"Sex" json:"Sex,string"`
    Birth       time.Time `form:"Birth" json:"Birth" time_format:"2006-01-02"`
    Email       string    `form:"Email" json:"Email"`
    Webchat     string    `form:"Webchat" json:"Webchat"`
    Qq          string    `form:"Qq" json:"Qq"`
    Phone       string    `form:"Phone" json:"Phone"`
    Tel         string    `form:"Tel" json:"Tel"`
    Address     string    `form:"Address" json:"Address"`
    Emercontact string    `form:"Emercontact" json:"Emercontact"`
    Emerphone   string    `form:"Emerphone" json:"Emerphone"`
    Departid    int64
    Positionid  int64
    Lognum      int
    Ip          string
    Lasted      int64
    Depart      Depart `gorm:"ForeignKey:Departid;AssociationForeignKey:ID"`
    User        User   `gorm:"ForeignKey:ID;AssociationForeignKey:ID;"`
}

type Depart struct {
    ID   int
    Name string
    Desc string
}

预加载
func GetPlansCommentByPlansidList(p PlansComment, q util.Query) (results map[string]interface{}, err error) {
    results = make(map[string]interface{})

    var pc []PlansComment

    pc = make([]PlansComment, 0)

    var total int

    err = db.Orm.Debug().Preload("Profile.Depart").Preload("PlansCommentsReply.User").Preload("Profile.User").First(&pc, p.CreateUser).Where("plans_id = ?", p.Plans_Id).Find(&pc).Error

    db.Orm.Table("plans_comments").Where("plans_id = ?", p.Plans_Id).Where("deleted_at IS NULL").Count(&total)



    results["items"] = pc

    results["total"] = total



    return results, err



}

gorm 结构体 预加载的更多相关文章

  1. Gorm 预加载及输出处理(二)- 查询输出处理

    上一篇<Gorm 预加载及输出处理(一)- 预加载应用>中留下的三个问题: 如何自定义输出结构,只输出指定字段? 如何自定义字段名,并去掉空值字段? 如何自定义时间格式? 这一篇先解决前两 ...

  2. Gorm 预加载及输出处理(一)- 预加载应用

    单条关联查询 先创建两个关联模型: // 用户模型 type User struct { gorm.Model Username string `gorm:"type:varchar(20) ...

  3. Gorm 预加载及输出处理(三)- 自定义时间格式

    前言 Gorm 中 time.Time 类型的字段在 JSON 序列化后呈现的格式为 "2020-03-11T18:26:13+08:00",在 Go 标准库文档 - time 的 ...

  4. javascript设计模式实践之代理模式--图片预加载

    图片的预加载就是在加载大图片前,先显示一个loading.gif,就算在网络比较慢的时候也能让人知道正在加载,总比啥反应都没有强. 下面这段代码就是预加载的一个简单的实现,假设先不处理加载图片时的on ...

  5. ViewPager的刷新、限制预加载、缓存所有

    [框架]: 公共部分:左侧菜单.TitleBar.RadioGroup(3个RadioButton:X.Y.Z) 选择X页面:指示器+ViewPager [要达成的效果]: (1)左侧选择A,进入X页 ...

  6. jquery实现图片预加载

    使用jquery实现图片预加载提高页面加载速度和用户体,本就为大家详细分析jquery图片预加载的实现原理. 什么时候使用图片预加载? 如果页面使用了很多不是最初加载便可见的图片,有必要进行预加载: ...

  7. 资源预加载preload和资源预读取prefetch简明学习

    前面的话 基于VUE的前端小站改造成SSR服务器端渲染后,HTML文档会自动使用preload和prefetch来预加载所需资源,本文将详细介绍preload和prefetch的使用 资源优先级 在介 ...

  8. 基于spring的web项目启动时预加载数据到ServletContext

    1.要在web启动时预加载数据到ServletContext,实现方法有很多,一种比较简单的方案就是: 1)新建一个bean,定义其初始化方法: <bean id="beanId&qu ...

  9. pre-network android 网络优化预加载框架

    网络优化是所有app开发中非常重要的一部分,如果将网络请求前置就是在点击跳转activity之前开始网络加载那么速度将会有质的提升.也就是网络预先加载框框架. 网络预加载框架,监听式网络前置加载框架- ...

随机推荐

  1. javase(11)_juc并发库

    一.传统线程技术 public static void main(String[] args) { Thread thread = new Thread(){ @Override public voi ...

  2. javaEE(11)_事务处理

    一.事务的概念 •事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. •例如:A——B转帐,对应于如下两条sql语句 update from account set mon ...

  3. 【搜索 技巧】Letter gaps

    需要一定技巧的搜索题 题目描述 记得做过这样一道题 Ponder This Challenge: In the string CABACB, each letter appears exactly t ...

  4. MySQL中日期函数的使用

    1. MySQL中日期函数的使用 1.1. 转DATETIME类型为Date类型 将add_time ::56转化为date类型 select * from product where Date(ad ...

  5. vim之替换命令

    格式:<range>s /<pat1>/<pat2>/gc <range>用来指定替换命令执行的范围: 百分号(%)表示所有行 点(.)表示当前行 美元 ...

  6. Django ORM字段和字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  7. Django中重定向页面的时候使用命名空间

    urls.py from django.urls import path from . import views app_name='front' urlpatterns = [ path('',vi ...

  8. Python9-装饰器-day11

    import time def timmer(f): #装饰器函数 def inner(): start = time.time() ret = f() #被装饰的函数 end = time.time ...

  9. python基础学习笔记——os模块

    #OS模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) result = os. ...

  10. 解决img标签上下出现间隙的方法

    图片与父元素下边缘有 2px 的间隙,并不是因为空格.多个 inline-block 元素之间的间隙才是因为空格. 任何不是块级元素的可见元素都是内联元素,其表现的特性是“行布局”形式.----< ...