Browse Source

提交代码

2023
ychao_1983 2 years ago
parent
commit
ba61157bf2
3 changed files with 110 additions and 0 deletions
  1. +51
    -0
      models/tech_converge_info.go
  2. +11
    -0
      routers/api/v1/api.go
  3. +48
    -0
      routers/api/v1/tech/tech.go

+ 51
- 0
models/tech_converge_info.go View File

@@ -0,0 +1,51 @@
package models

import (
"code.gitea.io/gitea/modules/timeutil"
)

type TechConvergeBaseInfo struct {
ID int64 `xorm:"pk autoincr"`
ProjectNumber string `xorm:"index"` //项目立项编号
ProjectName string //科技项目名称
Institution string //项目承担单位
ApplyYear int //申报年度
Province string //所属省(省市)
Category string //单位性质
Recommend string //推荐单位
Owner string //项目负责人
Phone string //负责人电话
Email string //负责人邮箱
Contact string //项目联系人
ContactPhone string //联系人电话
ContactEmail string //联系人邮箱
ExecutePeriod int //执行周期
ExecuteStartYear int //执行开始年份
ExecuteEndYear int //执行结束年份
ExecuteDeadLine string //执行期限
Type string //项目类型
StartUp timeutil.TimeStamp //启动会时间
NameAndInstitution1 string
NameAndInstitution2 string
NameAndInstitution3 string
NameAndInstitution4 string
NameAndInstitution5 string
AllInstitution string `xorm:"TEXT"`
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}

type RepoConvergeInfo struct {
ID int64 `xorm:"pk autoincr"`
RepoID int64
Url string
BaseInfoID int64
Institution string
UID int64
Status int
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
User *User `xorm:"-"`
Repo *Repository `xorm:"-"`
BaseInfo *TechConvergeBaseInfo `xorm:"-"`
}

+ 11
- 0
routers/api/v1/api.go View File

@@ -62,6 +62,8 @@ import (
"net/http"
"strings"

"code.gitea.io/gitea/routers/api/v1/tech"

"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/auth"

@@ -535,6 +537,15 @@ func RegisterRoutes(m *macaron.Macaron) {

}, reqToken())

m.Group("/tech", func() {

m.Post("/basic", tech.ImportBasicInfo)
m.Get("/custom", repo.GetCustomImages)
m.Get("/star", repo.GetStarImages)
m.Get("/npu", repo.GetNpuImages)

}, reqToken())

m.Group("/attachments", func() {

m.Get("/:uuid", repo.GetAttachment)


+ 48
- 0
routers/api/v1/tech/tech.go View File

@@ -0,0 +1,48 @@
package tech

import (
"net/http"
"strconv"

"github.com/lunny/log"

"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"github.com/360EntSecGroup-Skylar/excelize/v2"
)

func ImportBasicInfo(ctx *context.APIContext) {
file, _, err := ctx.GetFile("file")
if err != nil {
ctx.JSON(http.StatusBadRequest, models.BaseErrorMessageApi(ctx.Tr("model_app.get_file_fail")))
return
}
defer file.Close()

f, err := excelize.OpenReader(file)
if err != nil {
ctx.JSON(http.StatusBadRequest, models.BaseErrorMessageApi(ctx.Tr("model_app.get_file_fail")))
return
}
rows, err := f.GetRows(f.GetSheetName(1))
if err != nil {
ctx.JSON(http.StatusBadRequest, models.BaseErrorMessageApi(ctx.Tr("model_app.get_file_fail")))
return
}
for i, row := range rows {
if i != 0 {
baseInfo := &models.TechConvergeBaseInfo{}
baseInfo.ProjectNumber = row[2]
baseInfo.ApplyYear, err = strconv.Atoi(row[1])
log.Warn("base info apply year parse err ", i)
baseInfo.ProjectName = row[3]
baseInfo.Type = row[16]
baseInfo.Owner = row[8]
baseInfo.Email = row[10]
baseInfo.Phone = row[9]
baseInfo.Recommend = row[7]
baseInfo.Institution = row[4]

}
}
}

Loading…
Cancel
Save