caipin 4 years ago
parent
commit
b5986e5bd0

+ 3 - 3
conf/db.go

@@ -18,7 +18,7 @@ type DbConfig struct {
 }
 
 var DbMasterList = []DbConfig{
-	// dev
+	// 单体数据库
 	{
 		Host:      "192.168.1.170",
 		Port:      30000,
@@ -27,7 +27,7 @@ var DbMasterList = []DbConfig{
 		Datebase:  "construction",
 		IsRunning: true,
 	},
-	// production
+	// 集群数据库
 	{
 		Host:      "192.168.1.26",
 		Port:      8066,
@@ -36,7 +36,7 @@ var DbMasterList = []DbConfig{
 		Datebase:  "construction",
 		IsRunning: true,
 	},
-	// qa
+	// QA
 	{
 		Host:      "192.168.1.76",
 		Port:      3306,

+ 1 - 0
conf/redis.go

@@ -24,6 +24,7 @@ var RdsCacheList = []RdsConfig{
 		Pwd:       "",
 		IsRunning: true,
 	},
+	// QA
 	{
 		Host:      "192.168.1.76",
 		Port:      6379,

+ 9 - 0
dao/approver_dao.go

@@ -978,3 +978,12 @@ func (d *ApproverDao) DeleteOldAuditors(bid int, dataType int, dataId int) error
 	_, err := d.engine.Delete(data)
 	return err
 }
+
+func (d *ApproverDao) GetStatusByProjectAndAccount(projectId int, projectAccountId int, status int) []models.CmApprover {
+	datalist := make([]models.CmApprover, 0)
+	_ = d.engine.
+		Where("project_id = ? and audit_id= ? and status=? ", projectId, projectAccountId, status).
+		Desc("id").
+		Find(&datalist)
+	return datalist
+}

+ 28 - 0
dao/quality_dao.go

@@ -29,6 +29,34 @@ func NewQualityDao(engine *xorm.Engine) *QualityDao {
 	}
 }
 
+func (d *QualityDao) GetInIdJoinAccount(ids string) []viewmodels.QualityList {
+
+	datalist := make([]viewmodels.QualityList, 0)
+	err := d.engine.
+		Table("`cm_quality` as cs").
+		Select("cs.id, cs.`create_time`, cs.`inspection_detail`,cs.code, cs.status, pa.`name` as `audit_name`, pa.`position`").
+		Where("cs.id in ( "+ids+" ) ").
+		Join("left", "cm_project_account as pa", "pa.id = cs.uid").
+		Desc("id").
+		Find(&datalist)
+	if err != nil {
+		return datalist
+	} else {
+		return datalist
+	}
+
+	// datalist := make([]models.CmQuality, 0)
+	// err := d.engine.
+	// 	Where("id in ( " + ids + " ) ").
+	// 	Desc("id").
+	// 	Find(&datalist)
+	// if err != nil {
+	// 	return datalist
+	// } else {
+	// 	return datalist
+	// }
+}
+
 func (d *QualityDao) FindById(id int) *models.CmQuality {
 	data := &models.CmQuality{Id: id}
 	ok, err := d.engine.Get(data)

+ 17 - 0
dao/safe_dao.go

@@ -29,6 +29,23 @@ func NewSafeDao(engine *xorm.Engine) *SafeDao {
 	}
 }
 
+func (d *SafeDao) GetInIdJoinAccount(ids string) []viewmodels.SafeList {
+
+	datalist := make([]viewmodels.SafeList, 0)
+	err := d.engine.
+		Table("`cm_safe` as cs").
+		Select("cs.id, cs.`create_time`, cs.`inspection_detail`,cs.code, cs.status, pa.`name` as `audit_name`, pa.`position`").
+		Where("cs.id in ( "+ids+" ) ").
+		Join("left", "cm_project_account as pa", "pa.id = cs.uid").
+		Desc("id").
+		Find(&datalist)
+	if err != nil {
+		return datalist
+	} else {
+		return datalist
+	}
+}
+
 func (d *SafeDao) FindById(id int) *models.CmSafe {
 	data := &models.CmSafe{Id: id}
 	ok, err := d.engine.Get(data)

+ 39 - 0
dao/version_dao.go

@@ -0,0 +1,39 @@
+/*
+ * @description: 安全巡检数据库操作相关
+ * @Author: LanJianRong
+ * @Date: 2020-11-20
+ * @FilePath: \construction_management\dao\version_dao.go
+ */
+
+package dao
+
+import (
+	"github.com/go-xorm/xorm"
+	"go.mod/models"
+)
+
+// 数据库操作引擎
+type VersionDao struct {
+	engine *xorm.Engine
+}
+
+// 获得一个DAO对象
+func NewVersionDao(engine *xorm.Engine) *VersionDao {
+	return &VersionDao{
+		engine: engine,
+	}
+}
+
+//获得标段下的账号数据
+func (d *VersionDao) Get() *models.CmVersion {
+	data := &models.CmVersion{}
+	ok, err := d.engine.
+		Desc("id").
+		Get(data)
+	if ok && err == nil {
+		return data
+	} else {
+		data.Id = 0
+		return data
+	}
+}

+ 10 - 1
deployment/test.sh

@@ -5,4 +5,13 @@
  # @FilePath: \construction_management\deployment\test.sh
 ### 
 #!/bin/bash
-echo "golang here ,i m good   22222222222232!!!"
+echo "golang here ,i m good   22222222222232!!!"
+
+
+
+docker run  --name docker_nginx \
+	-v /mnt/html:/usr/share/nginx/html \
+	  -v /mnt/conf/nginx:/etc/nginx \
+	    -p 80:80 \
+	      -d \
+	        nginx:latest

+ 70 - 20
services/safe_service.go

@@ -4,6 +4,7 @@ import (
 	"fmt"
 	"log"
 	"strconv"
+	"strings"
 	"time"
 
 	"github.com/kataras/iris/v12"
@@ -23,13 +24,14 @@ type SafeService interface {
 	GetDetail(id int, pid int) viewmodels.SafeDetail
 
 	GetSurvey(projectId int, bidsectionId int) map[string]interface{}
-	GetPending(projectId int, projectAccountId int) []viewmodels.Safe
+	GetPending(projectId int, projectAccountId int) []viewmodels.Approver
 	ValidRule(ctx iris.Context) (viewmodels.Safe, error)
 }
 
 // //返回service操作类
 type safeService struct {
 	daoSafe           *dao.SafeDao
+	daoQuality        *dao.QualityDao
 	daoSafeAudit      *dao.SafeAuditDao
 	daoProjectAccount *dao.ProjectAccountDao
 	daoAnnex          *dao.AnnexDao
@@ -44,6 +46,7 @@ func NewSafeService() SafeService {
 	return &safeService{
 		validDetail:       "/api/safe/detail",
 		daoSafe:           dao.NewSafeDao(datasource.InstanceDbMaster()),
+		daoQuality:        dao.NewQualityDao(datasource.InstanceDbMaster()),
 		daoAnnex:          dao.NewAnnexDao(datasource.InstanceDbMaster()),
 		daoSafeAudit:      dao.NewSafeAuditDao(datasource.InstanceDbMaster()),
 		daoProjectAccount: dao.NewProjectAccountDao(datasource.InstanceDbMaster()),
@@ -326,35 +329,82 @@ func (s *safeService) GetSurvey(projectId int, bidsectionId int) map[string]inte
 }
 
 // 获得账号下需要审批的巡检
-func (s *safeService) GetPending(projectId int, projectAccountId int) []viewmodels.Safe {
+func (s *safeService) GetPending(projectId int, projectAccountId int) []viewmodels.Approver {
+
+	// 1.获得审批列表
+	approverData := s.daoApprover.GetStatusByProjectAndAccount(projectId, projectAccountId, 1)
+	// 2.构建数据ID
+	safeIds := []string{}
+	qualityIds := []string{}
+	for _, item := range approverData {
+		if item.DataType == 1 {
+			safeIds = append(safeIds, strconv.Itoa(item.DataId))
+		} else if item.DataType == 2 {
+			qualityIds = append(qualityIds, strconv.Itoa(item.DataId))
+		}
+	}
+	safeInId := strings.Join(safeIds, ",")
+	qualityInId := strings.Join(qualityIds, ",")
+
+	safeList := make([]viewmodels.SafeList, 0)
+	qualityList := make([]viewmodels.QualityList, 0)
+	if safeInId != "" {
+		safeList = s.daoSafe.GetInIdJoinAccount(safeInId)
+	}
+	if qualityInId != "" {
+		qualityList = s.daoQuality.GetInIdJoinAccount(qualityInId)
+	}
 
-	data := s.daoSafe.GetStatusByProjectAndAccount(projectId, projectAccountId, 1)
+	// data := s.daoSafe.GetStatusByProjectAndAccount(projectId, projectAccountId, 1)
 
-	safeList := make([]viewmodels.Safe, 0)
-	for _, item := range data {
-		safeVM := viewmodels.Safe{}
+	list := make([]viewmodels.Approver, 0)
+	for _, item := range approverData {
+		approverVM := viewmodels.Approver{}
 
 		Id, _ := comm.AesEncrypt(strconv.Itoa(item.Id), conf.SignSecret)
 		BidsectionId, _ := comm.AesEncrypt(strconv.Itoa(item.BidsectionId), conf.SignSecret)
 		// AuditId, _ := comm.AesEncrypt(item.AuditId, conf.SignSecret)
-		Uid, _ := comm.AesEncrypt(strconv.Itoa(item.Uid), conf.SignSecret)
+		ProjectId, _ := comm.AesEncrypt(strconv.Itoa(item.ProjectId), conf.SignSecret)
+		DataId, _ := comm.AesEncrypt(strconv.Itoa(item.DataId), conf.SignSecret)
 		// ProjectId, _ := comm.AesEncrypt(strconv.Itoa(item.ProjectId), conf.SignSecret)
 
-		safeVM.Id = Id
-		safeVM.BidsectionId = BidsectionId
-		safeVM.Uid = Uid
-		safeVM.Code = item.Code
-		safeVM.CreateTime = item.CreateTime.Format(conf.SysTimeform)
-		safeVM.EndTime = item.EndTime.Format(conf.SysTimeform)
-		safeVM.Position = item.Position
-		safeVM.Inspection = item.Inspection
-		safeVM.InspectionDetail = item.InspectionDetail
-		safeVM.Demand = item.Demand
-		safeVM.Status = item.Status
-		safeList = append(safeList, safeVM)
+		approverVM.Id = Id
+		approverVM.ProjectId = ProjectId
+		approverVM.BidsectionId = BidsectionId
+		approverVM.DataType = item.DataType
+		approverVM.DataId = DataId
+		approverVM.Status = item.Status
+
+		dataIdString := strconv.Itoa(item.DataId)
+		// 安全巡检相关
+		if item.DataType == 1 {
+			for _, data := range safeList {
+				if dataIdString == data.Id {
+					approverVM.Code = data.Code
+					approverVM.InspectionDetail = data.InspectionDetail
+					approverVM.Name = data.AuditName
+					approverVM.Position = data.Position
+					approverVM.CreateTime = data.CreateTime
+					break
+				}
+			}
+		} else if item.DataType == 2 { // 质量巡检
+			for _, data := range qualityList {
+				if dataIdString == data.Id {
+					approverVM.Code = data.Code
+					approverVM.InspectionDetail = data.InspectionDetail
+					approverVM.Name = data.AuditName
+					approverVM.Position = data.Position
+					approverVM.CreateTime = data.CreateTime
+					break
+				}
+			}
+		}
+
+		list = append(list, approverVM)
 	}
 
-	return safeList
+	return list
 }
 
 // 规则校验

+ 43 - 0
services/version_service.go

@@ -0,0 +1,43 @@
+/*
+ * @description:版本相关数据操作
+ * @Author: CP
+ * @Date: 2020-09-02 09:56:28
+ * @FilePath: \construction_management\services\version_service.go
+ */
+package services
+
+import (
+	"go.mod/dao"
+	"go.mod/datasource"
+	"go.mod/web/viewmodels"
+)
+
+//定义项目用户Service接口
+type VersionService interface {
+	Get() *viewmodels.Version
+}
+
+//返回service操作类
+type versionService struct {
+	versionDao *dao.VersionDao
+}
+
+//创建项目用户service
+func NewVersionService() VersionService {
+	return &versionService{
+		versionDao: dao.NewVersionDao(datasource.InstanceDbMaster()),
+	}
+}
+
+// 验证项目用户登陆相关
+func (s *versionService) Get() *viewmodels.Version {
+
+	// 1-1.工程项目是否存在
+	versionData := s.versionDao.Get()
+	if versionData.Id == 0 {
+		return nil
+	}
+	versionVm := &viewmodels.Version{}
+	versionVm.Name = versionData.Name
+	return versionVm
+}

+ 9 - 6
web/api/dashboard_api.go

@@ -19,6 +19,7 @@ type DashboardApi struct {
 	ServiceSafe           services.SafeService
 	ServiceQuality        services.QualityService
 	ServiceProjectMessage services.ProjectMessageService
+	ServiceVersion        services.VersionService
 }
 
 // @Summary 获得代办事项的内容
@@ -28,7 +29,7 @@ type DashboardApi struct {
 // @Produce  json
 // @Security ApiKeyAuth
 // @Success 200 {object} viewmodels.FolderContract "{code:0成功,-1参数类错误,data:viewmodels.ProjectAccount,msg:错误信息}"
-// @Router /api/contract/folder [get]
+// @Router /api/dashboard [get]
 func (c *DashboardApi) Get() {
 	// 获得项目ID
 	projectId, err := utils.GetProjectId(c.Ctx)
@@ -44,16 +45,18 @@ func (c *DashboardApi) Get() {
 	}
 
 	// 需要你处理
-	safeData := c.ServiceSafe.GetPending(projectId, projectAccountId)
-	qualityData := c.ServiceQuality.GetPending(projectId, projectAccountId)
+	approverData := c.ServiceSafe.GetPending(projectId, projectAccountId)
+	// qualityData := c.ServiceQuality.GetPending(projectId, projectAccountId)
 
 	// 需要你关注
 	messageData := c.ServiceProjectMessage.GetAll(projectId, projectAccountId)
 
+	versionData := c.ServiceVersion.Get()
+
 	data := map[string]interface{}{
-		"safeDataHandle":    safeData,
-		"qualityDataHandle": qualityData,
-		"messageData":       messageData,
+		"approverData": approverData,
+		"messageData":  messageData,
+		"versionData":  versionData,
 	}
 	c.Ctx.JSON(iris.Map{
 		"code": 0,

+ 2 - 0
web/routes/routes.go

@@ -32,6 +32,7 @@ func Configure(b *bootstrap.Bootstrapper) {
 	QualityService := services.NewQualityService()
 	QualityAuditService := services.NewQualityAuditService()
 	ProjectMessageService := services.NewProjectMessageService()
+	VersionService := services.NewVersionService()
 	//CSRF相关
 	b.Use(middleware.SetCsrf)
 
@@ -186,6 +187,7 @@ func Configure(b *bootstrap.Bootstrapper) {
 	apiDashboard.Register(SafeService)
 	apiDashboard.Register(QualityService)
 	apiDashboard.Register(ProjectMessageService)
+	apiDashboard.Register(VersionService)
 
 	apiDashboard.Router.Use(middleware.SessionsAuth)
 	apiDashboard.Router.Use(middleware.AccessAuth)

+ 6 - 0
web/viewmodels/approver.go

@@ -16,4 +16,10 @@ type Approver struct {
 	Progress     string `from:"progress" json:"progress"`
 	AuditOrder   int    `from:"audit_order" json:"audit_order"`
 	AuditId      string `from:"audit_id" json:"audit_id"`
+
+	Code             string `from:"code" json:"code"`
+	InspectionDetail string `from:"inspectionDetail" json:"inspectionDetail"`
+	Name             string `from:"name" json:"name"`
+	Position         string `from:"position" json:"position"`
+	CreateTime       string `form:"createTime" json:"createTime"`
 }

+ 14 - 0
web/viewmodels/version.go

@@ -0,0 +1,14 @@
+/*
+ * @description:
+ * @Author: CP
+ * @Date: 2021-02-02 11:20:56
+ * @FilePath: \construction_management\web\viewmodels\version.go
+ */
+package viewmodels
+
+type Version struct {
+	Id         string `form:"id" json:"id" `
+	Name       string `form:"name" json:"name" `
+	CreateTime string `form:"createTime" json:"createTime" `
+	Content    string `form:"content" json:"content" `
+}