caipin 4 年 前
コミット
a936a37b29

+ 13 - 1
dao/project_message_dao.go

@@ -2,12 +2,13 @@
  * @description:消息推送
  * @Author: LanJianRong
  * @Date: 2021-01-26 14:40:06
- * @FilePath: \construction_management\dao\project_message.go
+ * @FilePath: \construction_management\dao\project_message_dao.go
  */
 package dao
 
 import (
 	"github.com/go-xorm/xorm"
+	"go.mod/models"
 )
 
 //数据库操作引擎
@@ -21,3 +22,14 @@ func NewProjectMessageDao(engine *xorm.Engine) *ProjectMessageDao {
 		engine: engine,
 	}
 }
+
+// 获得项目下 账号的消息
+func (d *ProjectMessageDao) GetAll(projectId int, accountId int) []models.CmProjectMessage {
+
+	datalist := make([]models.CmProjectMessage, 0)
+	_ = d.engine.
+		Where("project_id=? and account_id=? ",
+			projectId, accountId).
+		Find(&datalist)
+	return datalist
+}

+ 63 - 0
services/project_message_service.go

@@ -0,0 +1,63 @@
+/*
+ * @description: 项目相关数据处理
+ * @Author: CP
+ * @Date: 2020-09-04 14:42:27
+ * @FilePath: \construction_management\services\project_message_service.go
+ */
+package services
+
+import (
+	"strconv"
+
+	"go.mod/comm"
+	"go.mod/conf"
+	"go.mod/dao"
+	"go.mod/datasource"
+	"go.mod/web/viewmodels"
+)
+
+//定义项目Service接口
+type ProjectMessageService interface {
+	GetAll(projectId int, accountId int) []*viewmodels.ProjectMessage
+}
+
+//返回service操作类
+type projectMessageService struct {
+	projectMessagedao *dao.ProjectMessageDao
+}
+
+//创建项目service
+func NewProjectMessageService() ProjectMessageService {
+	return &projectMessageService{
+		projectMessagedao: dao.NewProjectMessageDao(datasource.InstanceDbMaster()),
+	}
+}
+
+// 获得需要关注人
+func (s *projectMessageService) GetAll(projectId int, accountId int) []*viewmodels.ProjectMessage {
+	dataList := s.projectMessagedao.GetAll(projectId, accountId)
+
+	projectMessageVM := make([]*viewmodels.ProjectMessage, 0)
+	for _, item := range dataList {
+		viewProjectMessage := &viewmodels.ProjectMessage{}
+		id, _ := comm.AesEncrypt(strconv.Itoa(item.Id), conf.SignSecret)
+		projectId, _ := comm.AesEncrypt(strconv.Itoa(item.ProjectId), conf.SignSecret)
+		bidsectionId, _ := comm.AesEncrypt(strconv.Itoa(item.BidsectionId), conf.SignSecret)
+		accountId, _ := comm.AesEncrypt(strconv.Itoa(item.AccountId), conf.SignSecret)
+		dataId, _ := comm.AesEncrypt(strconv.Itoa(item.DataId), conf.SignSecret)
+
+		viewProjectMessage.Id = id
+		viewProjectMessage.ProjectId = projectId
+		viewProjectMessage.BidsectionId = bidsectionId
+		viewProjectMessage.AccountId = accountId
+		viewProjectMessage.DataType = item.DataType
+		viewProjectMessage.DataId = dataId
+		viewProjectMessage.Title = item.Title
+		viewProjectMessage.Content = item.Content
+		viewProjectMessage.CreateTime = item.CreateTime.Format(conf.SysTimeform)
+
+		projectMessageVM = append(projectMessageVM, viewProjectMessage)
+	}
+	// data, err := s.permissionDao.GetPermissionWithAccountId(accountId, bidsectionId)
+	return projectMessageVM
+}

+ 8 - 2
web/api/dashboard_api.go

@@ -16,8 +16,9 @@ type DashboardApi struct {
 	//框架-web应用上下文环境
 	Ctx iris.Context
 	// // 需要用的service
-	ServiceSafe    services.SafeService
-	ServiceQuality services.QualityService
+	ServiceSafe           services.SafeService
+	ServiceQuality        services.QualityService
+	ServiceProjectMessage services.ProjectMessageService
 }
 
 // @Summary 获得代办事项的内容
@@ -42,12 +43,17 @@ func (c *DashboardApi) Get() {
 		return
 	}
 
+	// 需要你处理
 	safeData := c.ServiceSafe.GetPending(projectId, projectAccountId)
 	qualityData := c.ServiceQuality.GetPending(projectId, projectAccountId)
 
+	// 需要你关注
+	messageData := c.ServiceProjectMessage.GetAll(projectId, projectAccountId)
+
 	data := map[string]interface{}{
 		"safeDataHandle":    safeData,
 		"qualityDataHandle": qualityData,
+		"messageData":       messageData,
 	}
 	c.Ctx.JSON(iris.Map{
 		"code": 0,

+ 3 - 0
web/routes/routes.go

@@ -31,6 +31,7 @@ func Configure(b *bootstrap.Bootstrapper) {
 	SafeAuditService := services.NewSafeAuditService()
 	QualityService := services.NewQualityService()
 	QualityAuditService := services.NewQualityAuditService()
+	ProjectMessageService := services.NewProjectMessageService()
 	//CSRF相关
 	b.Use(middleware.SetCsrf)
 
@@ -184,6 +185,8 @@ func Configure(b *bootstrap.Bootstrapper) {
 	apiDashboard := mvc.New(b.Party("/api/dashboard"))
 	apiDashboard.Register(SafeService)
 	apiDashboard.Register(QualityService)
+	apiDashboard.Register(ProjectMessageService)
+
 	apiDashboard.Router.Use(middleware.SessionsAuth)
 	apiDashboard.Router.Use(middleware.AccessAuth)
 	apiDashboard.Handle(new(api.DashboardApi))

+ 25 - 0
web/viewmodels/project_message.go

@@ -0,0 +1,25 @@
+/*
+ * @description:项目消息
+ * @Author: CP
+ * @Date: 2020-10-22 16:00:19
+ * @FilePath: \construction_management\web\viewmodels\project_message.go
+ */
+package viewmodels
+
+type ProjectMessage struct {
+	Id           string `form:"id" json:"id"`
+	ProjectId    string `form:"projectId" json:"projectId"`
+	BidsectionId string `form:"bidsectionId" json:"bidsectionId"`
+	AccountId    string `form:"accountId" json:"accountId"`
+	DataType     int    `form:"dataType" json:"dataType"`
+	DataId       string `form:"dataId" json:"dataId"`
+	Title        string `form:"title" json:"title"`
+	Content      string `form:"content" json:"content"`
+	CreateTime   string `form:"createTime" json:"createTime"`
+}
+
+// func (l ProjectMessage) Validate() error {
+// 	return validation.ValidateStruct(&l,
+// 		validation.Field(&l.BidsectionType, validation.Required.Error("请求类型不能为空"), validation.In(0, 1, 2).Error("未找到相关请求类型")),
+// 	)
+// }