소스 검색

feat: 安全巡检详情接口。doing

lanjianrong 4 년 전
부모
커밋
1ae5b6494e
5개의 변경된 파일65개의 추가작업 그리고 54개의 파일을 삭제
  1. 13 35
      dao/safe_audit_dao.go
  2. 2 2
      dao/safe_file_dao.go
  3. 26 12
      services/safe_service.go
  4. 2 1
      web/api/safe_api.go
  5. 22 4
      web/viewmodels/safe.go

+ 13 - 35
dao/safe_audit_dao.go

@@ -11,7 +11,6 @@ import (
 	"fmt"
 
 	"github.com/go-xorm/xorm"
-	"go.mod/models"
 	"go.mod/web/viewmodels"
 )
 
@@ -27,46 +26,25 @@ func NewSafeAuditDao(engine *xorm.Engine) *SafeAuditDao {
 	}
 }
 
-// id获得数据
-func (d *SafeAuditDao) GetListBySid(id int) []models.CmSafeAudit {
-	dataList := make([]models.CmSafeAudit, 0)
-	err := d.engine.
-		Asc("audit_order").
-		Where("safe_id=?", id).
-		Find(&dataList)
-	if err != nil {
-		return dataList
-	}
-	return dataList
-}
+// 根据当前times,获取审批人(包括原报)
+func (d *SafeAuditDao) GetAuditors(id int, times int, cur_uid int) []viewmodels.Auditors {
+	auditors := make([]viewmodels.Auditors, 0)
 
-// id获得某一条审批记录
-func (d *SafeAuditDao) GetRecordBySid(id int) viewmodels.SafeListAuditRecord {
-	// data := &models.CmSafeAudit{}
-	sql := "select p.name, s.create_time from `cm_safe_audit` as s , `cm_project_account` as p where s.`audit_id` = p.`id` and s.`safe_id` = ? and `times` = (select max(`times`) from `cm_safe_audit` where `safe_id` = ?) order by `audit_order` desc limit 2"
+	// 原报
+	auditor := viewmodels.Auditors{}
 
-	results, err := d.engine.Query(sql, id, id)
+	_, err := d.engine.Sql("select `name` from `cm_project_account` where id = ?", cur_uid).Get(&auditor)
 
 	if err != nil {
-
-	}
-	record := viewmodels.SafeListAuditRecord{}
-
-	// fmt.Println(results)
-	for i, item := range results {
-		fmt.Println(item)
-
-		if i == 1 {
-			record.CreateTime = string(item["create_time"])
-			record.Name = string(item["name"])
-		}
+		fmt.Println(err)
 	}
+	auditors = append(auditors, auditor)
+	d.engine.Sql("select pa.`name` from `cm_project_account` as pa, `cm_safe_audit` as ca where ca.`safe_id` = ? and ca.`times` = ? and ca.audit_id = pa.id order by `audit_order`", id, times).Find(&auditors)
 
-	return record
+	return auditors
 }
 
-// func (d *ProjectAccountDao) GetAudit(id int) {
-// 	auditor := models.CmProjectAccount
-// 	has, err := d.engine.Id(id).Get(auditor)
-// 	return auditor
+// func (d *SafeAuditDao) GetAuditHistory(id int, times int) {
+// 	auditorHistory := make([]models.CmSafeAudit, 0)
+// 	d.engine.Sql("select pa.`name`, pa.`position`,ca.`create_time`, ca.`end_time`, ca.`opinion`, ca.`status`,  from `cm_project_account` as pa, `cm_safe_audit` as ca where ca.`safe_id` = ? and ca.audit_id = pa.id order by `audit_order`", id, times).Find(&auditors)
 // }

+ 2 - 2
dao/safe_file_dao.go

@@ -24,8 +24,8 @@ func NewSafeFileDao(engine *xorm.Engine) *SafeFileDao {
 	}
 }
 
-// 通过标段id获得数据
-func (d *SafeFileDao) GetListByBid(id int) []models.CmSafeFile {
+// 通过safe_id获得数据
+func (d *SafeFileDao) GetListBySid(id int) []models.CmSafeFile {
 	dataList := make([]models.CmSafeFile, 0)
 	err := d.engine.
 		Asc("create_time").

+ 26 - 12
services/safe_service.go

@@ -18,7 +18,7 @@ type SafeService interface {
 	Get(id int, pid int) []viewmodels.SafeList
 	Post(data models.CmSafe) error
 	Del(id int) error
-	GetDetail(id int) viewmodels.Safe
+	GetDetail(id int, pid int) viewmodels.SafeDetail
 	ValidRule(ctx iris.Context) (viewmodels.Safe, error)
 }
 
@@ -28,13 +28,13 @@ type safeService struct {
 	daoSafeAudit      *dao.SafeAuditDao
 	daoSafeFile       *dao.SafeFileDao
 	daoProjectAccount *dao.ProjectAccountDao
-	valid             string
-	validCreate       string
+	validDetail       string
 }
 
 //创建项目用户service
 func NewSafeService() SafeService {
 	return &safeService{
+		validDetail:       "/api/safe/detail",
 		daoSafe:           dao.NewSafeDao(datasource.InstanceDbMaster()),
 		daoSafeAudit:      dao.NewSafeAuditDao(datasource.InstanceDbMaster()),
 		daoSafeFile:       dao.NewSafeFileDao(datasource.InstanceDbMaster()),
@@ -82,19 +82,28 @@ func (s *safeService) Del(id int) error {
 }
 
 // 详情页数据拼装
-func (s *safeService) GetDetail(id int) viewmodels.Safe {
+func (s *safeService) GetDetail(id int, pid int) viewmodels.SafeDetail {
 
 	safeData := s.daoSafe.FindById(id)
-
 	fmt.Println(safeData)
-	// id, _ := comm.AesEncrypt(strconv.Itoa(safeData.BidsectionId), conf.SignSecret)
-
-	// bid, _2 := comm.AesEncrypt(strconv.Itoa(safeData.BidsectionId), conf.SignSecret)
-	data := viewmodels.Safe{}
-	// data.Id = string(id)
-
+	safeId, _ := comm.AesEncrypt(strconv.Itoa(safeData.Id), conf.SignSecret)
+	bid, _ := comm.AesEncrypt(strconv.Itoa(safeData.BidsectionId), conf.SignSecret)
+	data := viewmodels.SafeDetail{}
+	data.Id = string(safeId)
+	data.BidsectionId = string(bid)
+	data.Code = safeData.Code
+	data.Inspection = safeData.Inspection
+	data.InspectionDetail = safeData.InspectionDetail
+	data.Demand = safeData.Demand
+	account := s.daoProjectAccount.Get(safeData.Uid, pid)
+	data.AuditName = account.Name
+	data.CreateTime = safeData.CreateTime.Format(conf.SysTimeform)
+	data.FileList = s.daoSafeFile.GetListBySid(safeData.Id)
+	auditors := s.daoSafeAudit.GetAuditors(safeData.Id, safeData.Times, account.Id)
+	data.Auditors = auditors
 	return data
 }
+
 func (s *safeService) ValidRule(ctx iris.Context) (viewmodels.Safe, error) {
 	safeVaild := viewmodels.Safe{}
 	if ctx.Method() == "GET" {
@@ -103,7 +112,12 @@ func (s *safeService) ValidRule(ctx iris.Context) (viewmodels.Safe, error) {
 			log.Println("safe-ValidRule-ReadForm转换异常, error=", err)
 			return safeVaild, err
 		}
-		err = safeVaild.ValidateList()
+		if ctx.Path() == s.validDetail {
+			// 一样要传id,所以用delete的方法判断
+			err = safeVaild.ValidateDelete()
+		} else {
+			err = safeVaild.ValidateList()
+		}
 	}
 
 	if ctx.Method() == "POST" {

+ 2 - 1
web/api/safe_api.go

@@ -178,7 +178,8 @@ func (c *SafeApi) GetDetail() {
 		c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadForm转换异常,请检查参数"})
 		return
 	}
-	SafeData := c.ServiceSafe.GetDetail(id)
+	pid, err := utils.GetProjectId(c.Ctx)
+	SafeData := c.ServiceSafe.GetDetail(id, pid)
 
 	c.Ctx.JSON(iris.Map{
 		"code": 0,

+ 22 - 4
web/viewmodels/safe.go

@@ -26,7 +26,22 @@ type Safe struct {
 	Status           int    `form:"status" json:"status"`
 }
 type SafeList struct {
-	Id               string               `form:"id" json:"id" `
+	Id               string `form:"id" json:"id" `
+	Code             string `form:"code" json:"code"`
+	CreateTime       string `form:"createTime" json:"createTime"`
+	Position         string `form:"position" json:"position"`
+	Inspection       string `form:"inspection" json:"inspection"`
+	InspectionDetail string `form:"inspectionDetail" json:"inspectionDetail"`
+	Demand           string `form:"demand" json:"demand"`
+	Status           int    `form:"status" json:"status"`
+	AuditName        string `form:"auditName" json:"auditName"`
+	FileCounts       int64  `from:"fileCounts" json:"fileCounts"`
+}
+
+type SafeDetail struct {
+	Id           string `form:"id" json:"id" `
+	BidsectionId string `form:"bidsectionId" json:"bidsectionId"`
+
 	Code             string               `form:"code" json:"code"`
 	CreateTime       string               `form:"createTime" json:"createTime"`
 	Position         string               `form:"position" json:"position"`
@@ -35,12 +50,15 @@ type SafeList struct {
 	Demand           string               `form:"demand" json:"demand"`
 	Status           int                  `form:"status" json:"status"`
 	AuditName        string               `form:"auditName" json:"auditName"`
-	auditors         []models.CmSafeAudit `form:"auditors" json:"auditors"`
-	FileCounts       int64                `from:"fileCounts" json:"fileCounts"`
+	FileList         []models.CmSafeFile  `form:"files" json:"files"`
+	Auditors         []Auditors           `form:"auditors" json:"auditors"`
+	auditorHistory   []models.CmSafeAudit `form:"auditorHistory" json:"auditorHistory"`
 }
 
-type SafeDetail struct {
+type Auditors struct {
+	Name string
 }
+
 type SafeListAuditRecord struct {
 	Name       string `form:"name" json:"name"`
 	CreateTime string `form:"create_time" json:"create_time"`