Browse Source

feat: 增加提交安全巡检附件记录接口

lanjianrong 4 years ago
parent
commit
a90e86990e
6 changed files with 116 additions and 8 deletions
  1. 1 1
      conf/project.go
  2. 6 0
      dao/safe_file_dao.go
  3. 37 3
      services/safe_service.go
  4. 1 1
      web/api/oss_api.go
  5. 52 3
      web/api/safe_api.go
  6. 19 0
      web/viewmodels/safe.go

+ 1 - 1
conf/project.go

@@ -24,7 +24,7 @@ const OssHost string = "http://measuresaas.oss-cn-shenzhen.aliyuncs.com"
 const CallbackUrl string = "http://88.88.88.88:8888"
 
 // 用户上传文件时指定的前缀。 --user-dir-prefix/
-const Upload_dir string = ""
+const Upload_dir string = "xinxihua/"
 const Expire_time int64 = 60
 
 // 中国时区

+ 6 - 0
dao/safe_file_dao.go

@@ -48,3 +48,9 @@ func (d *SafeFileDao) GetCount(id int) int64 {
 	}
 	return total
 }
+
+// 批量插入数据
+func (d *SafeFileDao) InsertByList(data []models.CmSafeFile) error {
+	_, err := d.engine.Insert(data)
+	return err
+}

+ 37 - 3
services/safe_service.go

@@ -2,9 +2,9 @@ package services
 
 import (
 	"errors"
-	"fmt"
 	"log"
 	"strconv"
+	"time"
 
 	"github.com/kataras/iris/v12"
 	"go.mod/comm"
@@ -20,7 +20,9 @@ type SafeService interface {
 	Post(data models.CmSafe) error
 	Del(id int) error
 	GetDetail(id int, pid int) viewmodels.SafeDetail
+	SaveFileInfo(bid int, sid int, uid int, fileList []viewmodels.FileList) error
 	ValidRule(ctx iris.Context) (viewmodels.Safe, error)
+	ValidFile(ctx iris.Context) (viewmodels.File, error)
 }
 
 // //返回service操作类
@@ -91,7 +93,7 @@ func (s *safeService) Del(id int) error {
 func (s *safeService) GetDetail(id int, pid int) viewmodels.SafeDetail {
 
 	safeData := s.daoSafe.FindById(id)
-	fmt.Println(safeData)
+	// fmt.Println(safeData)
 	safeId, _ := comm.AesEncrypt(strconv.Itoa(safeData.Id), conf.SignSecret)
 	bid, _ := comm.AesEncrypt(strconv.Itoa(safeData.BidsectionId), conf.SignSecret)
 	data := viewmodels.SafeDetail{}
@@ -110,9 +112,35 @@ func (s *safeService) GetDetail(id int, pid int) viewmodels.SafeDetail {
 	return data
 }
 
+// 安全巡检附件数据存库
+func (s *safeService) SaveFileInfo(bid int, sid int, uid int, fileList []viewmodels.FileList) error {
+	fileData := make([]models.CmSafeFile, 0)
+	for _, file := range fileList {
+		fileVM := models.CmSafeFile{}
+		fileVM.BidsectionId = bid
+		fileVM.SafeId = sid
+		fileVM.Uid = uid
+		createTime, _ := time.Parse("2020-11-11 20:30:12", file.CreateTime)
+		fileVM.CreatedTime = createTime
+		fileVM.FileName = file.FileName
+		fileVM.FilePath = file.FilePath
+		fileData = append(fileData, fileVM)
+	}
+	err := s.daoSafeFile.InsertByList(fileData)
+	return err
+}
+
+// 校验文件规则
+func (s *safeService) ValidFile(ctx iris.Context) (viewmodels.File, error) {
+	fileValid := viewmodels.File{}
+	err := ctx.ReadJSON(&fileValid)
+	return fileValid, err
+}
+
+// 规则校验
 func (s *safeService) ValidRule(ctx iris.Context) (viewmodels.Safe, error) {
 	safeVaild := viewmodels.Safe{}
-	fmt.Println("---------------------------safeVaild", safeVaild)
+	// fmt.Println("---------------------------safeVaild", safeVaild)
 	if ctx.Method() == "GET" {
 		err := ctx.ReadForm(&safeVaild)
 		if err != nil {
@@ -136,6 +164,12 @@ func (s *safeService) ValidRule(ctx iris.Context) (viewmodels.Safe, error) {
 		}
 		err = safeVaild.ValidateCreate()
 		return safeVaild, err
+		// if ctx.Path() == s.validCreate {
+		// }
+		// if ctx.Path() == s.validFile {
+		// 	err = safeVaild.ValidateFile()
+		// 	return safeVaild, err
+		// }
 	}
 
 	if ctx.Method() == "PUT" {

+ 1 - 1
web/api/oss_api.go

@@ -56,7 +56,7 @@ type ConfigStruct struct {
 }
 
 type PolicyToken struct {
-	AccessKeyId string `json:"accessid"`
+	AccessKeyId string `json:"accessId"`
 	Host        string `json:"host"`
 	Expire      int64  `json:"expire"`
 	Signature   string `json:"signature"`

+ 52 - 3
web/api/safe_api.go

@@ -79,7 +79,7 @@ func (c *SafeApi) Get() {
 func (c *SafeApi) Post() {
 	// 1.规则验证
 	safeData, err := c.ServiceSafe.ValidRule(c.Ctx)
-	fmt.Println("-------------------------------", err)
+	// fmt.Println("-------------------------------", err)
 	if err != nil {
 		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
 		return
@@ -163,7 +163,7 @@ func (c *SafeApi) Delete() {
 // @Produce  json
 // @Security ApiKeyAuth
 // @Param   id     path    string     true        "巡检ID"
-// @Success 200 {object} viewmodels.Safe "{code:0成功,data:viewmodels.Safe,msg:}"
+// @Success 200 {object} viewmodels.SafeDetail "{code:0成功,data:viewmodels.SafeDetail,msg:}"
 // @Failure 400 {string} string	"{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
 // @Router /api/safe/detail [get]
 func (c *SafeApi) GetDetail() {
@@ -179,7 +179,7 @@ func (c *SafeApi) GetDetail() {
 		c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadForm转换异常,请检查参数"})
 		return
 	}
-	pid, err := utils.GetProjectId(c.Ctx)
+	pid, _ := utils.GetProjectId(c.Ctx)
 	SafeData := c.ServiceSafe.GetDetail(id, pid)
 
 	c.Ctx.JSON(iris.Map{
@@ -188,3 +188,52 @@ func (c *SafeApi) GetDetail() {
 		"data": SafeData,
 	})
 }
+
+// @Summary 巡检附件记录
+// @Tags 安全巡检
+// @Description 上传附件巡检记录
+// @Accept  json
+// @Produce  json
+// @Security ApiKeyAuth
+// @Param   bidsectionId     body    string     true        "标段ID"
+// @Success 200 {object} viewmodels.Safe "{code:0成功,msg:}"
+// @Failure 400 {string} string	"{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
+// @Router /api/safe/file [post]
+func (c *SafeApi) PostFile() {
+	// 1.规则验证
+	safeData, err := c.ServiceSafe.ValidFile(c.Ctx)
+	if err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
+		return
+	}
+	bidsectionId, err := utils.GetDecryptId(safeData.BidsectionId)
+	if err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
+		return
+	}
+	sId, err := utils.GetDecryptId(safeData.SaveId)
+	if err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
+		return
+	}
+
+	uid, err := utils.GetProjectAccountId(c.Ctx)
+	if err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg": "未登录或账号失效,请重新登录"})
+		return
+	}
+
+	err = c.ServiceSafe.SaveFileInfo(bidsectionId, sId, uid, safeData.FileList)
+
+	if err != nil {
+		c.Ctx.JSON(iris.Map{
+			"code": -1,
+			"msg":  fmt.Sprintf("%s", err),
+		})
+		return
+	}
+	c.Ctx.JSON(iris.Map{
+		"code": 0,
+		"msg":  "请求成功",
+	})
+}

+ 19 - 0
web/viewmodels/safe.go

@@ -85,3 +85,22 @@ func (l Safe) ValidateDelete() error {
 		validation.Field(&l.Id, validation.Required.Error("检查项目不能为空")),
 	)
 }
+
+type FileList struct {
+	FileName   string `from:"filename" josn:"filename"`
+	FilePath   string `from:"filepath" josn:"filepath"`
+	CreateTime string `form:"createTime" json:"createTime"`
+}
+type File struct {
+	BidsectionId string     `form:"bidsectionId" json:"bidsectionId"`
+	SaveId       string     `form:"saveId" json:"saveId"`
+	FileList     []FileList `from:"fileList" json:"fileList"`
+}
+
+func (l File) ValidateFile() error {
+	return validation.ValidateStruct(&l,
+		validation.Field(&l.BidsectionId, validation.Required.Error("标段ID不能为空")),
+		validation.Field(&l.FileList, validation.Required.Error("上传的文件不能为空")),
+		validation.Field(&l.SaveId, validation.Required.Error("巡检id不能为空")),
+	)
+}