Преглед на файлове

feat: 增加分页数据

lanjianrong преди 4 години
родител
ревизия
4fea69b944
променени са 5 файла, в които са добавени 36 реда и са изтрити 16 реда
  1. 3 0
      conf/project.go
  2. 7 5
      dao/safe_dao.go
  3. 9 6
      services/safe_service.go
  4. 7 4
      web/api/safe_api.go
  5. 10 1
      web/viewmodels/safe.go

+ 3 - 0
conf/project.go

@@ -43,6 +43,9 @@ const NodeRpcHost = "localhost:50051"
 // 是否需要启动全局计划任务服务
 var RunningCrontabService = false
 
+// 分页-页数
+var PageSize = 10
+
 // 审批常量
 type auditStatus struct {
 	uncheck  int

+ 7 - 5
dao/safe_dao.go

@@ -36,16 +36,18 @@ func (d *SafeDao) FindById(id int) *models.CmSafe {
 }
 
 // id获得数据
-func (d *SafeDao) GetListByBid(id int) []models.CmSafe {
+func (d *SafeDao) GetListByBid(id int, pageNo int, pageSize int) ([]models.CmSafe, int64) {
 	dataList := make([]models.CmSafe, 0)
-	err := d.engine.
+	start := (pageNo - 1) * pageSize
+	total, err := d.engine.
 		Where("bidsection_id=?", id).
 		Asc("id").
-		Find(&dataList)
+		Limit(pageSize, start).
+		FindAndCount(&dataList)
 	if err != nil {
-		return dataList
+		return dataList, 0
 	}
-	return dataList
+	return dataList, total
 }
 
 // 插入单条记录

+ 9 - 6
services/safe_service.go

@@ -15,7 +15,7 @@ import (
 )
 
 type SafeService interface {
-	Get(id int, pid int) []viewmodels.SafeList
+	Get(id int, pid int, pageNo int, pageSize int) ([]viewmodels.SafeList, int64)
 	Post(data models.CmSafe) error
 	Del(id int) error
 	GetDetail(id int, pid int) viewmodels.SafeDetail
@@ -42,8 +42,8 @@ func NewSafeService() SafeService {
 		daoProjectAccount: dao.NewProjectAccountDao(datasource.InstanceDbMaster()),
 	}
 }
-func (s *safeService) Get(id int, pid int) []viewmodels.SafeList {
-	datalist := s.daoSafe.GetListByBid(id)
+func (s *safeService) Get(id int, pid int, pageNo int, pageSize int) ([]viewmodels.SafeList, int64) {
+	datalist, total := s.daoSafe.GetListByBid(id, pageNo, pageSize)
 	safeList := make([]viewmodels.SafeList, 0)
 	for _, item := range datalist {
 		safeVM := viewmodels.SafeList{}
@@ -62,7 +62,7 @@ func (s *safeService) Get(id int, pid int) []viewmodels.SafeList {
 		safeVM.FileCounts = counts
 		safeList = append(safeList, safeVM)
 	}
-	return safeList
+	return safeList, total
 }
 
 // post请求,插入单条数据
@@ -104,8 +104,11 @@ func (s *safeService) GetDetail(id int, pid int) viewmodels.SafeDetail {
 	account := s.daoProjectAccount.Get(safeData.Uid, pid)
 	data.AuditName = account.Name
 	data.CreateTime = safeData.CreateTime
-	fileList, _ := s.daoAnnex.GetList(3, safeData.Id, 1, 15)
-	data.FileList = fileList
+	fileList, total := s.daoAnnex.GetList(3, safeData.Id, 1, conf.PageSize)
+	fileVM := viewmodels.FileStruct{}
+	fileVM.FileList = fileList
+	fileVM.Total = total
+	data.File = fileVM
 	auditors := s.daoSafeAudit.GetAuditors(safeData.Id, safeData.Times, account.Id)
 	data.Auditors = auditors
 	return data

+ 7 - 4
web/api/safe_api.go

@@ -32,6 +32,8 @@ type SafeApi struct {
 // @Produce  json
 // @Security ApiKeyAuth
 // @Param   bidsectionId     path    string     true        "标段ID"
+// @Param   pageNo     path    int     true        "页码" eg:1
+// @Param   pageSize     path    int     true        "页数" eg:15
 // @Success 200 {object} viewmodels.Safe "{code:0成功,data:viewmodels.Safe,msg:}"
 // @Failure 400 {string} string	"{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
 // @Router /api/safe [get]
@@ -53,12 +55,13 @@ func (c *SafeApi) Get() {
 		return
 	}
 	// c.ServiceSafe.Get(bidsectionId, RpcConnect)
-	SafeData := c.ServiceSafe.Get(bidsectionId, pid)
+	SafeData, total := c.ServiceSafe.Get(bidsectionId, pid, safeData.PageNo, safeData.PageSize)
 
 	c.Ctx.JSON(iris.Map{
-		"code": 0,
-		"msg":  "请求成功",
-		"data": SafeData,
+		"code":  0,
+		"msg":   "请求成功",
+		"data":  SafeData,
+		"total": total,
 	})
 }
 

+ 10 - 1
web/viewmodels/safe.go

@@ -26,6 +26,8 @@ type Safe struct {
 	InspectionDetail string `form:"inspectionDetail" json:"inspectionDetail"`
 	Demand           string `form:"demand" json:"demand"`
 	Status           int    `form:"status" json:"status"`
+	PageNo           int    `form:"pageNo" json:"pageNo"`
+	PageSize         int    `form:"pageSize" json:"pageSize"`
 }
 type SafeList struct {
 	Id               string `form:"id" json:"id" `
@@ -52,11 +54,16 @@ type SafeDetail struct {
 	Demand           string               `form:"demand" json:"demand"`
 	Status           int                  `form:"status" json:"status"`
 	AuditName        string               `form:"auditName" json:"auditName"`
-	FileList         []AnnexListView      `form:"files" json:"files"`
+	File             FileStruct           `form:"file" json:"file"`
 	Auditors         []Auditors           `form:"auditors" json:"auditors"`
 	auditorHistory   []models.CmSafeAudit `form:"auditorHistory" json:"auditorHistory"`
 }
 
+// 单独出一个struct方便分页使用
+type FileStruct struct {
+	Total    int64           `form:"total" json:"total"`
+	FileList []AnnexListView `form:"fileList" json:"fileList"`
+}
 type SafeFile struct {
 	FileName    string    `from:"filename" json:"filename"`
 	FilePath    string    `from:"filepath" json:"filepath"`
@@ -76,6 +83,8 @@ type SafeListAuditRecord struct {
 func (l Safe) ValidateList() error {
 	return validation.ValidateStruct(&l,
 		validation.Field(&l.BidsectionId, validation.Required.Error("标段ID不能为空")),
+		validation.Field(&l.PageNo, validation.Required.Error("页码不能为空")),
+		validation.Field(&l.PageSize, validation.Required.Error("页数不能为空")),
 	)
 }