Procházet zdrojové kódy

fix(消息汇总列表):消息汇总列表数据调整

Roc před 3 roky
rodič
revize
834c515626

+ 45 - 27
controllers/message.go

@@ -10,6 +10,7 @@ import (
 	"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
 	"hongze/hongze_mobile_admin/utils"
 	"rdluck_tools/paging"
+	"sort"
 	"strconv"
 	"strings"
 )
@@ -21,23 +22,26 @@ type MessageCommon struct {
 
 // @Title 消息列表汇总页
 // @Description 消息列表汇总页接口
-// @Success 200 {object} message.SummaryMessageListResp
+// @Success 200 {object} []message.SummaryMessage
 // @router /summaryMessageList [get]
 func (this *MessageCommon) SummaryMessageList() {
 	sysUser := this.AdminWx
 	sysUserId := sysUser.AdminId
 
-	SummaryMessageListResp := message.SummaryMessageListResp{}
+	//SummaryMessageListResp := message.SummaryMessageListResp{}
 	sourceTypeList := [...]int{1, 2, 3}
+	messageMap := make(map[int]message.SummaryMessage)
+	timeList := make([]int, 0)
 	for _, sourceType := range sourceTypeList {
 		//最近一条消息
 		tmpMessage := ``
 		messageInfo, err := company_approval_message.GetLastMessage(sysUserId, sourceType)
 		if err != nil {
-			if err.Error() != utils.ErrNoRow() {
-				this.FailWithMessage("获取失败", "获取消息失败,Err:"+err.Error())
-				return
+			if err.Error() == utils.ErrNoRow() {
+				continue
 			}
+			this.FailWithMessage("获取失败", "获取消息失败,Err:"+err.Error())
+			return
 		} else {
 			tmpMessage = fmt.Sprint(messageInfo.RealName, " ", messageInfo.CreateTime.Format("2006.01.02"), " ", messageInfo.Content)
 		}
@@ -47,20 +51,34 @@ func (this *MessageCommon) SummaryMessageList() {
 			this.FailWithMessage("获取失败", "获取未读消息数失败,Err:"+err.Error())
 			return
 		}
-		switch sourceType {
-		case 1:
-			SummaryMessageListResp.CompanyMessage.Message = tmpMessage
-			SummaryMessageListResp.CompanyMessage.Total = int(notReadTotal)
-		case 2:
-			SummaryMessageListResp.ContractMessage.Message = tmpMessage
-			SummaryMessageListResp.ContractMessage.Total = int(notReadTotal)
-		case 3:
-			SummaryMessageListResp.SealMessage.Message = tmpMessage
-			SummaryMessageListResp.SealMessage.Total = int(notReadTotal)
+		CompanyMessage := message.SummaryMessage{
+			Message:    tmpMessage,
+			Total:      int(notReadTotal),
+			SourceType: sourceType,
 		}
+		timeInt := int(messageInfo.CreateTime.Unix())
+		messageMap[timeInt] = CompanyMessage
+		timeList = append(timeList, timeInt)
+
+		//switch sourceType {
+		//case 1:
+		//	SummaryMessageListResp.CompanyMessage = CompanyMessage
+		//case 2:
+		//	SummaryMessageListResp.ContractMessage = CompanyMessage
+		//case 3:
+		//	SummaryMessageListResp.SealMessage = CompanyMessage
+		//}
+	}
+
+	///1,根据参数名称的ASCII码表的顺序排序
+	sort.Ints(timeList)
+
+	messageList := make([]message.SummaryMessage, 0)
+	for _, currTime := range timeList {
+		messageList = append(messageList, messageMap[currTime])
 	}
 
-	this.OkDetailed(SummaryMessageListResp, "获取成功")
+	this.OkDetailed(messageList, "获取成功")
 }
 
 // @Title 消息列表
@@ -107,13 +125,13 @@ func (this *MessageCommon) MessageList() {
 	newApprovalRecordIds := make([]string, 0)
 	companyApprovalMap := make(map[int]*company_approval.CompanyApproval)
 	newApprovalMap := make(map[int]*contract_approval.ContractApproval)
-	for _, message := range list {
-		if message.SourceType == 1 {
-			companyApprovalIds = append(companyApprovalIds, strconv.Itoa(message.CompanyApprovalId))
+	for _, messageInfo := range list {
+		if messageInfo.SourceType == 1 {
+			companyApprovalIds = append(companyApprovalIds, strconv.Itoa(messageInfo.CompanyApprovalId))
 		} else {
 			//如果不是文字消息
-			if message.MessageType != 3 {
-				newApprovalRecordIds = append(newApprovalRecordIds, strconv.Itoa(message.CompanyApprovalId))
+			if messageInfo.MessageType != 3 {
+				newApprovalRecordIds = append(newApprovalRecordIds, strconv.Itoa(messageInfo.CompanyApprovalId))
 			}
 		}
 	}
@@ -164,10 +182,10 @@ func (this *MessageCommon) MessageList() {
 		}
 	}
 
-	for _, message := range list {
+	for _, messageInfo := range list {
 		approvalInfo := company_approval_message.ApprovalInfo{}
-		if message.SourceType == 1 {
-			if companyApproval, ok := companyApprovalMap[message.CompanyApprovalId]; ok {
+		if messageInfo.SourceType == 1 {
+			if companyApproval, ok := companyApprovalMap[messageInfo.CompanyApprovalId]; ok {
 				switch companyApproval.ApplyMethod {
 				case 1:
 					approvalInfo.Type = "申请转正"
@@ -187,8 +205,8 @@ func (this *MessageCommon) MessageList() {
 				approvalInfo.ApprovalTime = companyApproval.ApproveTime.Format(utils.FormatDateTime)
 			}
 		} else {
-			if message.MessageType != 3 {
-				if newApproval, ok := newApprovalMap[message.CompanyApprovalId]; ok {
+			if messageInfo.MessageType != 3 {
+				if newApproval, ok := newApprovalMap[messageInfo.CompanyApprovalId]; ok {
 					approvalInfo.Type = newApproval.ApplyContent
 					approvalInfo.ApplyName = newApproval.ApplyUserName
 					approvalInfo.ApplyTime = newApproval.CreateTime.Format(utils.FormatDateTime)
@@ -196,7 +214,7 @@ func (this *MessageCommon) MessageList() {
 				}
 			}
 		}
-		message.ApprovalInfo = approvalInfo
+		messageInfo.ApprovalInfo = approvalInfo
 	}
 	//
 	resp := message.CompanyApprovalMessageListResp{

+ 3 - 2
models/response/message/message.go

@@ -10,8 +10,9 @@ type SummaryMessageListResp struct {
 }
 
 type SummaryMessage struct {
-	Message string `description:"消息"`
-	Total   int    `description:"未读数据数"`
+	Message    string `description:"消息"`
+	Total      int    `description:"未读数据数"`
+	SourceType int    `description:"消息来源类型,1:客户,2:合同,3:用印"`
 }
 
 type CompanyApprovalMessageListResp struct {

+ 1 - 1
services/seal/approval.go

@@ -501,7 +501,7 @@ func approvedByCc(approvedRemark string, sourceApprovalRecord *contract_approval
 		{
 			content = sealInfo.CompanyName + " 用印已审核"
 			approvalSysUser, _ := admin.GetAdminById(sealInfo.UserId)
-			go services.AddCompanyApprovalMessage(sourceApprovalRecord.ApproveUserId, sealInfo.UserId, 0, sourceApprovalRecord.ContractApprovalRecordId, 2, 2, 2, sealInfo.CompanyName, content, content, approvalSysUser.Mobile)
+			go services.AddCompanyApprovalMessage(sourceApprovalRecord.ApproveUserId, sealInfo.UserId, 0, sourceApprovalRecord.ContractApprovalRecordId, 2, sourceType, 2, sealInfo.CompanyName, content, content, approvalSysUser.Mobile)
 		}
 	} else {
 		//获取下级节点信息