From e3375383bbff8e59ea6599e1ea1eb7d3a1f8695e Mon Sep 17 00:00:00 2001 From: yangwei999 <348134071@qq.com> Date: Mon, 25 Dec 2023 17:20:34 +0800 Subject: [PATCH 1/2] store first patch time --- cve-vulner-manager/controllers/cve.go | 2 ++ cve-vulner-manager/git | 0 cve-vulner-manager/models/cve.go | 17 ++++++++++++----- cve-vulner-manager/models/modeldb.go | 17 ++++++++++++----- cve-vulner-manager/models/uploadcve.go | 6 ++++++ 5 files changed, 32 insertions(+), 10 deletions(-) delete mode 100644 cve-vulner-manager/git diff --git a/cve-vulner-manager/controllers/cve.go b/cve-vulner-manager/controllers/cve.go index 715314f..b2e0542 100644 --- a/cve-vulner-manager/controllers/cve.go +++ b/cve-vulner-manager/controllers/cve.go @@ -134,6 +134,7 @@ type CveAllIssueoData struct { Url string `json:"issue_url,omitempty"` User string `json:"user,omitempty"` IsIgnore int8 `json:"is_ignore"` + FirstPatchTime string `json:"first_patch_time"` } // @Title Obtain all cve data and provide operation kanban for use @@ -207,6 +208,7 @@ func (u *CveAllIssueController) Get() { RpmPublicTime: rpmPub, User: issues.IssueCreate, IsIgnore: issues.IsIgnore, + FirstPatchTime: models.QueryFirstPatchTime(issues.CveNum), } } resp["body"] = cid diff --git a/cve-vulner-manager/git b/cve-vulner-manager/git deleted file mode 100644 index e69de29..0000000 diff --git a/cve-vulner-manager/models/cve.go b/cve-vulner-manager/models/cve.go index 6337714..b806734 100644 --- a/cve-vulner-manager/models/cve.go +++ b/cve-vulner-manager/models/cve.go @@ -1036,7 +1036,7 @@ ON b.cve_id = e.cve_id return } -//GetCanExportExcelData Get exportable data +// GetCanExportExcelData Get exportable data func GetCanExportExcelData(cveNum, issueNum, repo string, issueId int64) (list []ExcelExport, err error) { if cveNum == "" { return list, errors.New("cve number can not empty") @@ -1161,7 +1161,7 @@ type CveIssueInfoData struct { AffectProduct string `orm:"column(affected_version)"` } -//QueryIssue query issuewhitelist +// QueryIssue query issuewhitelist func QueryCveIssueByBranch(currentPage, pageSize int, milestone string) ([]CveIssueInfoData, error) { startSize := (currentPage - 1) * pageSize o := orm.NewOrm() @@ -1247,7 +1247,7 @@ type CveAllIssueData struct { IsIgnore int8 `orm:"column(is_ignore)"` } -//QueryIssue query issuewhitelist +// QueryIssue query issuewhitelist func QueryCveAllIssueData(currentPage, pageSize, communityFlag int, startTime string) (res []CveAllIssueData, err error) { startSize := (currentPage - 1) * pageSize o := orm.NewOrm() @@ -1279,6 +1279,13 @@ where t.status != 6 and t.cve_id = v.cve_id %s order by t.update_time desc limit return } +func QueryFirstPatchTime(cveNum string) string { + t := OriginUpstreamPatchFirstTime{CveNum: cveNum} + orm.NewOrm().Read(&t, "cve_num") + + return t.CreateAt +} + func QueryCveOrgIssueCount(communityFlag int) (count int64) { sql := "" if communityFlag > 0 { @@ -1298,7 +1305,7 @@ func QueryCveOrgIssueCount(communityFlag int) (count int64) { return res.Total } -//QueryIssue query issuewhitelist +// QueryIssue query issuewhitelist func QueryCveOrgIssueData(currentPage, pageSize, communityFlag int) (goi []GiteOriginIssue) { startSize := (currentPage - 1) * pageSize o := orm.NewOrm() @@ -1323,7 +1330,7 @@ func QueryCveOrgIssueData(currentPage, pageSize, communityFlag int) (goi []GiteO return } -//QueryIssue query issuewhitelist +// QueryIssue query issuewhitelist func QueryCveSingleIssueData(communityFlag int, packName, cveNum, issueNum string) (cai CveAllIssueData, err error) { o := orm.NewOrm() err = o.Raw("SELECT t.cve_num, t.nvd_score, t.openeuler_score, t.issue_num, t.affected_version,t.owned_version,t.owned_component,"+ diff --git a/cve-vulner-manager/models/modeldb.go b/cve-vulner-manager/models/modeldb.go index 8588744..6e4245c 100644 --- a/cve-vulner-manager/models/modeldb.go +++ b/cve-vulner-manager/models/modeldb.go @@ -424,6 +424,13 @@ type OriginUpstreamPatch struct { Branch string `orm:"size(64);column(branch)" description:"分支"` } +type OriginUpstreamPatchFirstTime struct { + ID int64 `orm:"PK;auto;column(id)"` + CveNum string `orm:"size(256);column(cve_num);unique" description:"cve编号"` + CreateAt string `orm:"type(datetime);column(created_at)"` + UpdateAt time.Time `orm:"type(datetime);column(updated_at);auto_now"` +} + type OriginUpstreamImpactScore struct { ScoreId int64 `orm:"pk;auto;column(score_id)"` ImpactId int64 `orm:"index;column(impact_id)" description:"OriginUpstreamImpact 外键"` @@ -535,7 +542,7 @@ type OriginUpstreamFixSuggestRefTag struct { Name string `orm:"size(512);column(name);null" description:"名称"` } -//GiteOriginIssue Issues that already exist on Code Cloud +// GiteOriginIssue Issues that already exist on Code Cloud type GiteOriginIssue struct { Id int64 `orm:"pk;auto"` IssueId int64 `json:"issue_id" orm:"unique"` @@ -599,7 +606,7 @@ type GitRepoGroups struct { GroupName string `orm:"index"` } -//GiteRepo Code Cloud repo +// GiteRepo Code Cloud repo type GiteRepo struct { RepoId int64 `orm:"pk;auto;column(repo_id)"` GroupId int64 `orm:"index;column(group_id)" description:"GitRepoGroups 外键"` @@ -615,7 +622,7 @@ type GiteRepo struct { DeleteTime string `orm:"type(datetime);column(delete_time);null"` } -//GiteMember Members of Code Cloud repo +// GiteMember Members of Code Cloud repo type GiteRepoMember struct { MemBerId int64 `orm:"pk;auto;column(repo_id)"` GroupId int64 `orm:"index;column(group_id)" description:"GitRepoGroups 外键"` @@ -626,7 +633,7 @@ type GiteRepoMember struct { DeleteTime string `orm:"type(datetime);column(delete_time);null"` } -//GiteRepoBranch Code Cloud repo Branch +// GiteRepoBranch Code Cloud repo Branch type GiteRepoBranch struct { Id int64 `orm:"pk;auto"` RepoId int64 `orm:"index;column(repo_id)" description:"GiteRepo 外键"` @@ -1110,7 +1117,7 @@ func CreateDb() bool { new(OpenLookengSecurityReviewer), new(OpenLookengYaml), new(IssueCommunityStatistics), new(CommunityYamlConfig), new(IssueDeleteRecord), new(AuthTokenInfo), new(OriginUpstreamPatch), new(OriginUpstreamPackageUrl), - new(Reviewer), new(HotPatch), + new(Reviewer), new(HotPatch), new(OriginUpstreamPatchFirstTime), ) logs.Info("table create success!") errosyn := orm.RunSyncdb("default", false, true) diff --git a/cve-vulner-manager/models/uploadcve.go b/cve-vulner-manager/models/uploadcve.go index 5bda8dd..98d733b 100644 --- a/cve-vulner-manager/models/uploadcve.go +++ b/cve-vulner-manager/models/uploadcve.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "strings" + "time" "cvevulner/common" @@ -1031,6 +1032,11 @@ func resetOriginPatch(cveData *common.CveOriginData, o orm.Ormer, oid string) er return nil } + o.Insert(&OriginUpstreamPatchFirstTime{ + CveNum: cveData.CveNum, + CreateAt: time.Now().Format("2006-01-02 15:04:05"), + }) + _, err := o.InsertMulti(bulk, patches) return err -- Gitee From 405cdce04185638665396a91368dbf3a5c66f371 Mon Sep 17 00:00:00 2001 From: yangwei999 <348134071@qq.com> Date: Mon, 25 Dec 2023 20:26:44 +0800 Subject: [PATCH 2/2] use const --- cve-vulner-manager/models/uploadcve.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cve-vulner-manager/models/uploadcve.go b/cve-vulner-manager/models/uploadcve.go index 98d733b..2f7ad5a 100644 --- a/cve-vulner-manager/models/uploadcve.go +++ b/cve-vulner-manager/models/uploadcve.go @@ -1034,7 +1034,7 @@ func resetOriginPatch(cveData *common.CveOriginData, o orm.Ormer, oid string) er o.Insert(&OriginUpstreamPatchFirstTime{ CveNum: cveData.CveNum, - CreateAt: time.Now().Format("2006-01-02 15:04:05"), + CreateAt: time.Now().Format(common.DATE_FORMAT), }) _, err := o.InsertMulti(bulk, patches) -- Gitee