Browse Source

fix(消息列表):调整返回的申请人信息

Roc 3 years ago
parent
commit
6afd86bc79

+ 33 - 6
controllers/message.go

@@ -7,6 +7,7 @@ import (
 	"hongze/hongze_mobile_admin/models/tables/company_approval"
 	"hongze/hongze_mobile_admin/models/tables/company_approval_message"
 	"hongze/hongze_mobile_admin/models/tables/contract_approval"
+	"hongze/hongze_mobile_admin/models/tables/contract_approval_record"
 	"hongze/hongze_mobile_admin/utils"
 	"rdluck_tools/paging"
 	"strconv"
@@ -101,7 +102,7 @@ func (this *MessageCommon) MessageList() {
 	}
 
 	companyApprovalIds := make([]string, 0)
-	newApprovalIds := make([]string, 0)
+	newApprovalRecordIds := make([]string, 0)
 	companyApprovalMap := make(map[int]*company_approval.CompanyApproval)
 	newApprovalMap := make(map[int]*contract_approval.ContractApproval)
 	for _, message := range list {
@@ -110,7 +111,7 @@ func (this *MessageCommon) MessageList() {
 		} else {
 			//如果不是文字消息
 			if message.MessageType != 3 {
-				newApprovalIds = append(newApprovalIds, strconv.Itoa(message.CompanyApprovalId))
+				newApprovalRecordIds = append(newApprovalRecordIds, strconv.Itoa(message.CompanyApprovalId))
 			}
 		}
 	}
@@ -125,13 +126,39 @@ func (this *MessageCommon) MessageList() {
 		}
 	}
 	//新的审批单信息
-	if len(newApprovalIds) > 0 {
-		contractApprovalList, err := contract_approval.GetContractApprovalByIds(strings.Join(newApprovalIds, ","))
+	if len(newApprovalRecordIds) > 0 {
+		//审批流程单信息
+		contractApprovalRecordList, err := contract_approval_record.GetContractApprovalRecordByIds(strings.Join(newApprovalRecordIds, ","))
 		if err != nil {
 			this.FailWithMessage("获取失败", "获取申请列表信息失败,Err:"+err.Error())
 		}
-		for _, contractApproval := range contractApprovalList {
-			newApprovalMap[contractApproval.ContractApprovalId] = contractApproval
+		newApprovalIds := make([]string, 0)
+
+		approvalRecordMap := make(map[int][]int)
+		for _, contractApprovalRecord := range contractApprovalRecordList {
+			newApprovalIds = append(newApprovalIds, strconv.Itoa(contractApprovalRecord.ContractApprovalId))
+			if _, ok := approvalRecordMap[contractApprovalRecord.ContractApprovalId]; ok {
+				approvalRecordMap[contractApprovalRecord.ContractApprovalId] = append(approvalRecordMap[contractApprovalRecord.ContractApprovalId], contractApprovalRecord.ContractApprovalRecordId)
+			} else {
+				tmpContractApprovalRecordIdList := make([]int, 0)
+				tmpContractApprovalRecordIdList = append(tmpContractApprovalRecordIdList, contractApprovalRecord.ContractApprovalRecordId)
+				approvalRecordMap[contractApprovalRecord.ContractApprovalId] = tmpContractApprovalRecordIdList
+			}
+		}
+
+		//审批单信息
+		if len(newApprovalIds) > 0 {
+			contractApprovalList, err := contract_approval.GetContractApprovalByIds(strings.Join(newApprovalIds, ","))
+			if err != nil {
+				this.FailWithMessage("获取失败", "获取申请列表信息失败,Err:"+err.Error())
+			}
+			for _, contractApproval := range contractApprovalList {
+				if _, ok := approvalRecordMap[contractApproval.ContractApprovalId]; ok {
+					for _, contractApprovalRecordId := range approvalRecordMap[contractApproval.ContractApprovalId] {
+						newApprovalMap[contractApprovalRecordId] = contractApproval
+					}
+				}
+			}
 		}
 	}
 

+ 8 - 0
models/tables/contract_approval_record/contract_approval_record.go

@@ -125,3 +125,11 @@ WHERE a.contract_approval_id in (` + contractApprovalIds + `) AND (approve_user_
 	_, err = o.Raw(sql, approveUserId).QueryRows(&list)
 	return
 }
+
+//根据合同审批单id集合获取合同审批流程单信息列表
+func GetContractApprovalRecordByIds(contractApprovalRecordIds string) (contractApprovalRecordList []*ContractApprovalRecord, err error) {
+	o := orm.NewOrm()
+	sql := `select * from contract_approval_record where contract_approval_record_id in (` + contractApprovalRecordIds + `) `
+	_, err = o.Raw(sql).QueryRows(&contractApprovalRecordList)
+	return
+}