package controllers import ( "encoding/json" "fmt" "hongze/hongze_mobile_admin/models/response/message" "hongze/hongze_mobile_admin/models/tables/company_approval_message" "hongze/hongze_mobile_admin/utils" "rdluck_tools/paging" ) //消息模块 type MessageCommon struct { BaseAuth } // @Title 消息列表汇总页 // @Description 消息列表汇总页接口 // @Success 200 {object} message.SummaryMessageListResp // @router /summaryMessageList [get] func (this *MessageCommon) SummaryMessageList() { sysUser := this.AdminWx sysUserId := sysUser.AdminId SummaryMessageListResp := message.SummaryMessageListResp{} sourceTypeList := [...]int{1, 2, 3} 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 } } else { tmpMessage = fmt.Sprint(messageInfo.RealName, messageInfo.CreateTime, messageInfo.Content) } notReadTotal, err := company_approval_message.GetNotReadMessageTotal(sysUserId, sourceType) if err != nil { 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) } } this.OkDetailed(SummaryMessageListResp, "获取成功") } // @Title 消息列表 // @Description 消息列表接口 // @Param SourceType query int true "消息类型" // @Param CurrentIndex query int true "当前页码" // @Param pageSize query int true "每页数量" // @Success 200 {object} message.CompanyApprovalMessageListResp // @router /list [get] func (this *MessageCommon) MessageList() { sysUser := this.AdminWx sysUserId := sysUser.AdminId sourceType, err := this.GetInt("SourceType", 1) if err != nil { this.FailWithMessage("获取失败", "获取消息类型失败,Err:"+err.Error()) return } pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = paging.StartIndex(currentIndex, pageSize) total, err := company_approval_message.GetCompanyApprovalMessageCount(sysUserId, sourceType) if err != nil { this.FailWithMessage("获取失败", "获取消息总数失败,Err:"+err.Error()) return } list, err := company_approval_message.GetCompanyApprovalMessageList(sysUserId, sourceType, startSize, pageSize) if err != nil { this.FailWithMessage("获取失败", "获取消息列表失败,Err:"+err.Error()) return } resp := message.CompanyApprovalMessageListResp{ List: list, Total: total, } this.OkDetailed(resp, "获取成功") } // @Title 消息已读 // @Description 消息已读接口 // @Param request body company.CompanyApprovalMessageReadReq true "type json string" // @Success Ret=200 申请成功 // @router /read [post] func (this *MessageCommon) MessageRead() { //sysUser := this.AdminWx var req company_approval_message.CompanyApprovalMessageReadReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error()) return } if req.Id <= 0 { this.FailWithMessage("参数错误", "参数错误,客户id小于等于0") return } err = company_approval_message.ModifyCompanyApprovalMessageStatus(req.Id) if err != nil { this.FailWithMessage("修改失败!", "修改已读失败,Err:"+err.Error()) return } this.OkWithMessage("已读成功") }