package VerifyTemplate import ( "ColdVerify_server/lib" "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 VerifyTemplateMapDataHistory struct { Id int `orm:"column(ID);size(11);auto;pk"` T_source int `orm:"size(4);"` // 来源 0-所有 1-方案 2-报告 3-表单 T_task_id string `orm:"index,size(256);null"` // 任务id T_VerifyTemplate_id string `orm:"size(256);null"` // 模板id T_VerifyTemplateMap_id string `orm:"size(256);null"` // 标签id T_value string `orm:"size(1024);null"` // 内容 T_uuid string `orm:"index,size(256);null"` // 提交人 T_time string `orm:"index,size(256);null"` // 提交时间 T_submit_source int `orm:"size(4);"` // 提交来源 // 验证流程 T_flow_sort int `orm:"size(2);default(0)"` // 验证流程排序 T_max_time int `orm:"size(256);null"` // 验证流程最大时间 T_min_time int `orm:"size(256);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 VerifyTemplateMapDataHistory_R struct { T_id int T_VerifyTemplateMap_id string // 标签id T_source int T_label int // T_name string // 标题 T_text string // 标题 T_value string // // 验证流程 T_flow_sort int // 验证流程排序 T_max_time int // 验证流程最大时间 T_min_time int // 验证流程最小时间 } func (t *VerifyTemplateMapDataHistory) TableName() string { return "verify_template_map_data_history" // 数据库名称 // ************** 替换 FormulaList ************** } func init() { //注册模型 orm.RegisterModel(new(VerifyTemplateMapDataHistory)) } // ------------------------------------------------------------- func VerifyTemplateMapToVerifyTemplateMapDataHistory_R(T VerifyTemplateMap) (T_r VerifyTemplateMapDataHistory_R) { T_r.T_VerifyTemplateMap_id = T.T_id T_r.T_source = T.T_source T_r.T_label = T.T_label T_r.T_name = T.T_name T_r.T_text = T.T_text T_r.T_flow_sort = T.T_flow_sort T_r.T_max_time = T.T_max_time T_r.T_min_time = T.T_min_time T_r.T_value = "" return T_r } func VerifyTemplateMapDataToVerifyTemplateMapDataHistory_R(T VerifyTemplateMap, VerifyTemplateMapDataHistory map[string]string) (T_r VerifyTemplateMapDataHistory_R) { T_r.T_VerifyTemplateMap_id = T.T_id T_r.T_source = T.T_source T_r.T_label = T.T_label T_r.T_name = T.T_name T_r.T_text = T.T_text T_r.T_flow_sort = T.T_flow_sort T_r.T_max_time = T.T_max_time T_r.T_min_time = T.T_min_time T_r.T_value = "" if v, ok := VerifyTemplateMapDataHistory[T.T_id]; ok { T_r.T_value = v } return T_r } // 获取列表 func Read_VerifyTemplateMapDataHistory_List(T_source int, T_task_id, T_VerifyTemplate_id, T_time string, Map_List []VerifyTemplateMap) []VerifyTemplateMapDataHistory_R { o := orm.NewOrm() // 也可以直接使用 Model 结构体作为表名 var r []VerifyTemplateMapDataHistory qs := o.QueryTable(new(VerifyTemplateMapDataHistory)) cond := orm.NewCondition() cond1 := cond.And("T_task_id", T_task_id).And("T_VerifyTemplate_id", T_VerifyTemplate_id).And("T_time", T_time) qs.SetCond((*orm2.Condition)(cond1)).All(&r) if len(r) == 0 { // 转换 var VerifyTemplateMapData_r []VerifyTemplateMapDataHistory_R for k, v := range Map_List { Data_r := VerifyTemplateMapToVerifyTemplateMapDataHistory_R(v) Data_r.T_id = k VerifyTemplateMapData_r = append(VerifyTemplateMapData_r, Data_r) } return VerifyTemplateMapData_r } // 转换 var VerifyTemplateMapDataHistory_r []VerifyTemplateMapDataHistory_R for k, v := range Map_List { Data_r := VerifyTemplateMapDataToVerifyTemplateMapDataHistory_R(v, VerifyTemplateMapDataHistoryToMap(r)) Data_r.T_id = k VerifyTemplateMapDataHistory_r = append(VerifyTemplateMapDataHistory_r, Data_r) } return VerifyTemplateMapDataHistory_r } // 获取列表 func Read_MapDataHistory_List(T_source int, T_task_id, T_VerifyTemplate_id, T_time string) []VerifyTemplateMapDataHistory { o := orm.NewOrm() // 也可以直接使用 Model 结构体作为表名 var r []VerifyTemplateMapDataHistory qs := o.QueryTable(new(VerifyTemplateMapDataHistory)) cond := orm.NewCondition() source := []int{T_source} if T_source == 2 { source = append(source, 3) } if T_source != 3 { source = append(source, 0) } cond1 := cond.And("T_source__in", source).And("T_task_id", T_task_id).And("T_VerifyTemplate_id", T_VerifyTemplate_id).And("T_time", T_time) qs.SetCond((*orm2.Condition)(cond1)).All(&r) return r } func VerifyTemplateMapDataHistoryToMap(T []VerifyTemplateMapDataHistory) map[string]string { maps := make(map[string]string, len(T)) for _, v := range T { if _, ok := maps[v.T_VerifyTemplateMap_id]; ok { continue } maps[v.T_VerifyTemplateMap_id] = v.T_value } return maps } type VerifyTemplateMapDataHistory_History_List_Res struct { T_uuid string T_time string T_uuid_name string } // 获取列表 func Read_VerifyTemplateMapDataHistory_History_List(T_task_id string, T_source int, AdminMap map[string]string) (lists []VerifyTemplateMapDataHistory_History_List_Res) { o := orm.NewOrm() var pl_lists []VerifyTemplateMapDataHistory_History_List_Res _, err := o.Raw("SELECT DISTINCT t_uuid,t_time FROM verify_template_map_data_history where t_task_id = ? and t_submit_source = ? order by t_time desc LIMIT 0,1000 ", T_task_id, T_source). QueryRows(&pl_lists) if err != nil { logs.Error(lib.FuncName(), err) return pl_lists } for i := 0; i < len(pl_lists); i++ { pl_lists[i].T_uuid_name = AdminMap[pl_lists[i].T_uuid] } return pl_lists }