package VerifyTemplate import ( "ColdVerify_server/logs" "github.com/beego/beego/v2/adapter/orm" orm2 "github.com/beego/beego/v2/client/orm" _ "github.com/go-sql-driver/mysql" "time" ) // 模板 type VerifyTemplateMapData struct { Id int `orm:"column(ID);size(11);auto;pk"` T_source int `orm:"size(2);"` // 来源 1-方案 2-报告 T_task_id string `orm:"index,size(256);null"` // 任务id T_VerifyTemplate_id string `orm:"index,size(256);null"` // 模板id T_VerifyTemplateMap_id string `orm:"index,size(256);null"` // 标签id T_value string `orm:"size(1024);null"` // 内容 CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间 UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"` //auto_now 每次 model 保存时都会对时间自动更新 } type VerifyTemplateMapData_R struct { T_VerifyTemplateMap_id string // 标签id T_label int // T_name string // 标题 T_field string // 标题 T_text string // 标题 T_value string // 标题 } func (t *VerifyTemplateMapData) TableName() string { return "verify_template_map_data" // 数据库名称 // ************** 替换 FormulaList ************** } // 多字段索引 //func (t *VerifyTemplateMapData) TableIndex() [][]string { // return [][]string{ // []string{"T_task_id", "T_VerifyTemplate_id", "T_VerifyTemplateMap_id"}, // } //} // 多字段唯一键 //func (t *VerifyTemplateMapData) TableUnique() [][]string { // return [][]string{ // []string{"T_task_id", "T_VerifyTemplate_id", "T_VerifyTemplateMap_id"}, // } //} func init() { //注册模型 orm.RegisterModel(new(VerifyTemplateMapData)) } // ------------------------------------------------------------- func VerifyTemplateMapToVerifyTemplateMapData_R(T VerifyTemplateMap) (T_r VerifyTemplateMapData_R) { T_r.T_VerifyTemplateMap_id = T.T_id T_r.T_label = T.T_label T_r.T_name = T.T_name T_r.T_field = T.T_field T_r.T_text = T.T_text T_r.T_value = "" return T_r } func VerifyTemplateMapDataToVerifyTemplateMapData_R(T VerifyTemplateMap, VerifyTemplateMapData map[string]string) (T_r VerifyTemplateMapData_R) { T_r.T_VerifyTemplateMap_id = T.T_id T_r.T_label = T.T_label T_r.T_name = T.T_name T_r.T_field = T.T_field T_r.T_text = T.T_text T_r.T_value = "" if v, ok := VerifyTemplateMapData[T.T_id]; ok { T_r.T_value = v } return T_r } // ---------------- 特殊方法 ------------------- // 添加 func AddOrUpdate_VerifyTemplateMapData(List []VerifyTemplateMapData) (ids []int64, is bool) { o := orm.NewOrm() o.Begin() for _, v := range List { // 生成编号 id, err := o.InsertOrUpdate(&v, "T_task_id", "T_VerifyTemplate_id", "T_VerifyTemplateMap_id") if err != nil { logs.Println(err) o.Rollback() return ids, false } ids = append(ids, id) } o.Commit() return ids, true } // 获取列表 func Read_VerifyTemplateMapData_List(T_source int, T_task_id, T_VerifyTemplate_id string, Map_List []VerifyTemplateMap) []VerifyTemplateMapData_R { o := orm.NewOrm() // 也可以直接使用 Model 结构体作为表名 var r []VerifyTemplateMapData qs := o.QueryTable(new(VerifyTemplateMapData)) cond := orm.NewCondition() cond1 := cond.And("T_task_id", T_task_id).And("T_VerifyTemplate_id", T_VerifyTemplate_id).And("T_source", T_source) qs.SetCond((*orm2.Condition)(cond1)).All(&r) if len(r) == 0 { // 转换 var VerifyTemplateMapData_r []VerifyTemplateMapData_R for _, v := range Map_List { VerifyTemplateMapData_r = append(VerifyTemplateMapData_r, VerifyTemplateMapToVerifyTemplateMapData_R(v)) } return VerifyTemplateMapData_r } // 转换 var VerifyTemplateMapData_r []VerifyTemplateMapData_R for _, v := range Map_List { VerifyTemplateMapData_r = append(VerifyTemplateMapData_r, VerifyTemplateMapDataToVerifyTemplateMapData_R(v, VerifyTemplateMapDataToMap(r))) } return VerifyTemplateMapData_r } func VerifyTemplateMapDataToMap(T []VerifyTemplateMapData) map[string]string { maps := make(map[string]string, len(T)) for _, v := range T { maps[v.T_VerifyTemplateMap_id] = v.T_value } return maps }