123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- package controllers
- import (
- "encoding/json"
- "fmt"
- "hongze/hongze_mobile_admin/models/response/message"
- "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/utils"
- "rdluck_tools/paging"
- "strconv"
- "strings"
- )
- //消息模块
- 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
- }
- companyApprovalIds := make([]string, 0)
- newApprovalIds := 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))
- } else {
- //如果不是文字消息
- if message.MessageType != 3 {
- newApprovalIds = append(newApprovalIds, strconv.Itoa(message.CompanyApprovalId))
- }
- }
- }
- //客户信息
- if len(companyApprovalIds) > 0 {
- companyApprovalList, err := company_approval.GetApprovalListByApprovalIds(strings.Join(companyApprovalIds, ","))
- if err != nil {
- this.FailWithMessage("获取失败", "获取申请列表信息失败,Err:"+err.Error())
- }
- for _, companyApproval := range companyApprovalList {
- companyApprovalMap[companyApproval.CompanyApprovalId] = companyApproval
- }
- }
- //新的审批单信息
- if len(newApprovalIds) > 0 {
- contractApprovalList, err := contract_approval.GetContractApprovalByIds(strings.Join(newApprovalIds, ","))
- if err != nil {
- this.FailWithMessage("获取失败", "获取申请列表信息失败,Err:"+err.Error())
- }
- for _, contractApproval := range contractApprovalList {
- newApprovalMap[contractApproval.ContractApprovalId] = contractApproval
- }
- }
- for _, message := range list {
- approvalInfo := company_approval_message.ApprovalInfo{}
- if message.SourceType == 1 {
- if companyApproval, ok := companyApprovalMap[message.CompanyApprovalId]; ok {
- switch companyApproval.ApplyMethod {
- case 1:
- approvalInfo.Type = "申请转正"
- case 2:
- approvalInfo.Type = "冻结转试用"
- case 3:
- approvalInfo.Type = "流失转正式"
- case 4:
- approvalInfo.Type = "申请延期"
- case 5:
- approvalInfo.Type = "原销售申请领取流失客户"
- case 6:
- approvalInfo.Type = "服务更新"
- }
- approvalInfo.ApplyName = companyApproval.ApplyRealName
- approvalInfo.ApplyTime = companyApproval.CreateTime.Format(utils.FormatDateTime)
- approvalInfo.ApprovalTime = companyApproval.ApproveTime.Format(utils.FormatDateTime)
- }
- } else {
- if message.MessageType != 3 {
- if newApproval, ok := newApprovalMap[message.CompanyApprovalId]; ok {
- approvalInfo.Type = newApproval.ApplyContent
- approvalInfo.ApplyName = newApproval.ApplyUserName
- approvalInfo.ApplyTime = newApproval.CreateTime.Format(utils.FormatDateTime)
- approvalInfo.ApprovalTime = newApproval.ModifyTime.Format(utils.FormatDateTime)
- }
- }
- }
- message.ApprovalInfo = approvalInfo
- }
- //
- 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("已读成功")
- }
|