正在显示
6 个修改的文件
包含
184 行增加
和
4 行删除
@@ -158,3 +158,24 @@ func (this *MessageController) MsgCompanyNotice() { | @@ -158,3 +158,24 @@ func (this *MessageController) MsgCompanyNotice() { | ||
158 | header := controllers.GetRequestHeader(this.Ctx) | 158 | header := controllers.GetRequestHeader(this.Ctx) |
159 | msg = protocol.NewReturnResponse(message.MsgCompanyNotice(header, request)) | 159 | msg = protocol.NewReturnResponse(message.MsgCompanyNotice(header, request)) |
160 | } | 160 | } |
161 | + | ||
162 | +//MsgChanceApprove 机会审核消息 | ||
163 | +//@router /msgChanceApprove [post] | ||
164 | +func (this *MessageController) MsgChanceApprove() { | ||
165 | + var msg *protocol.ResponseMessage | ||
166 | + defer func() { | ||
167 | + this.Resp(msg) | ||
168 | + }() | ||
169 | + var request *protocol.MsgChanceApproveRequest | ||
170 | + if err := json.Unmarshal(this.ByteBody, &request); err != nil { | ||
171 | + log.Error(err) | ||
172 | + msg = protocol.BadRequestParam(1) | ||
173 | + return | ||
174 | + } | ||
175 | + if b, m := this.Valid(request); !b { | ||
176 | + msg = m | ||
177 | + return | ||
178 | + } | ||
179 | + header := controllers.GetRequestHeader(this.Ctx) | ||
180 | + msg = protocol.NewReturnResponse(message.MsgChanceApprove(header, request)) | ||
181 | +} |
1 | package utils | 1 | package utils |
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | + "encoding/json" | ||
4 | "errors" | 5 | "errors" |
5 | "fmt" | 6 | "fmt" |
7 | + "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" | ||
6 | "reflect" | 8 | "reflect" |
7 | "strings" | 9 | "strings" |
8 | ) | 10 | ) |
@@ -74,3 +76,12 @@ func IsNil(i interface{}) bool { | @@ -74,3 +76,12 @@ func IsNil(i interface{}) bool { | ||
74 | } | 76 | } |
75 | return false | 77 | return false |
76 | } | 78 | } |
79 | + | ||
80 | +func JsonUnmarshal(jsonData string, v interface{}) { | ||
81 | + if len(jsonData) == 0 { | ||
82 | + return | ||
83 | + } | ||
84 | + if e := json.Unmarshal([]byte(jsonData), v); e != nil { | ||
85 | + log.Error("json.unmarshal error data:", jsonData, e) | ||
86 | + } | ||
87 | +} |
@@ -173,3 +173,27 @@ func GetUserMsgsBulletin(userId, companyId int64, msgType int, lastId int64, pag | @@ -173,3 +173,27 @@ func GetUserMsgsBulletin(userId, companyId int64, msgType int, lastId int64, pag | ||
173 | } | 173 | } |
174 | return | 174 | return |
175 | } | 175 | } |
176 | + | ||
177 | +//获取机会消息 | ||
178 | +func GetChanceMsg(uid, cid int64, lastId int64, pageSize int, msgType int, v interface{}) (total int, err error) { | ||
179 | + sql := `select a.*,b.images,b.speechs,b.videos from ( | ||
180 | +select a.*,b.source_content,b.enable_status,b.user_id chance_user_id from ( | ||
181 | +select id,company_id,receive_user_id,message,source_id,create_time,is_read | ||
182 | +from user_msg where receive_user_id=? and source_type=1 and (?=0 or id>?) and msg_type=? | ||
183 | +)a left outer join chance b on a.source_id = b.id | ||
184 | +)a left outer join chance_data b on a.source_id =b.chance_id | ||
185 | +order by a.create_time desc | ||
186 | +LIMIT ?` | ||
187 | + | ||
188 | + sqlCount := `select count(0) | ||
189 | +from user_msg where receive_user_id=? and source_type=1 and msg_type=? ` | ||
190 | + if err = utils.ExecuteQueryOne(&total, sqlCount, uid, msgType); err != nil { | ||
191 | + return | ||
192 | + } | ||
193 | + if v != nil { | ||
194 | + if err = utils.ExecuteQueryAll(v, sql, uid, lastId, lastId, msgType, pageSize); err != nil { | ||
195 | + return | ||
196 | + } | ||
197 | + } | ||
198 | + return | ||
199 | +} |
@@ -2,6 +2,7 @@ package protocol | @@ -2,6 +2,7 @@ package protocol | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "encoding/json" | 4 | "encoding/json" |
5 | + "time" | ||
5 | ) | 6 | ) |
6 | 7 | ||
7 | var errmessge ErrorMap = map[int]string{ | 8 | var errmessge ErrorMap = map[int]string{ |
@@ -47,10 +48,13 @@ var errmessge ErrorMap = map[int]string{ | @@ -47,10 +48,13 @@ var errmessge ErrorMap = map[int]string{ | ||
47 | } | 48 | } |
48 | 49 | ||
49 | const ( | 50 | const ( |
50 | - MsgTypeBulletin = 1 //公告 | ||
51 | - MsgTypeCommend = 2 //表彰 | ||
52 | - MsgTypeInteraction = 4 //互动消息 | ||
53 | - MsgTypeAudit = 8 //机会审核 | 51 | + MsgTypeBulletin = 1 //公告 |
52 | + MsgTypeCommend = 2 //表彰 | ||
53 | + MsgTypeInteraction = 4 //互动消息 | ||
54 | + MsgTypeAudit = 8 //机会审核 | ||
55 | + MsgTypeAuditBy = 16 //机会被审核消息 | ||
56 | + MsgTypeComment = 32 //评论 | ||
57 | + MsgTypeThumbUp = 64 //点赞 | ||
54 | ) | 58 | ) |
55 | 59 | ||
56 | var ( | 60 | var ( |
@@ -192,6 +196,35 @@ type MsgCompanyNoticeResponse struct { | @@ -192,6 +196,35 @@ type MsgCompanyNoticeResponse struct { | ||
192 | Total int `json:"total"` | 196 | Total int `json:"total"` |
193 | } | 197 | } |
194 | 198 | ||
199 | +/*MsgChanceApprove 机会审核消息*/ | ||
200 | +type MsgChanceApproveRequest struct { | ||
201 | + LastId int64 `json:"lastId"` | ||
202 | + PageSize int `json:"pageSize" valid:"Required"` | ||
203 | +} | ||
204 | +type MsgChanceApproveResponse struct { | ||
205 | + List []CommonListItem `json:"list"` | ||
206 | + Total int `json:"total"` | ||
207 | +} | ||
208 | + | ||
209 | +//我的审核机会列表 | ||
210 | +type MsgChanceApproveItemOrm struct { | ||
211 | + ChanceUserId int64 `orm:"column(chance_user_id)"` | ||
212 | + SourceContent string `orm:"column(source_content)"` | ||
213 | + ChanceEnableStatus int `orm:"column(enable_status)"` | ||
214 | + Images string `orm:"column(images)"` | ||
215 | + Voices string `orm:"column(speechs)"` | ||
216 | + Videos string `orm:"column(videos)"` | ||
217 | + //ReviewStatus int `orm:"column(review_status)"` | ||
218 | + | ||
219 | + Id int64 `orm:"column(id)"` //消息id | ||
220 | + ReceiveUserId int64 `orm:"column(receive_user_id)"` | ||
221 | + CreateTime time.Time `orm:"column(create_at)"` | ||
222 | + Message string `orm:"column(message)"` | ||
223 | + IsRead int64 `orm:"column(isRead)"` | ||
224 | + ChanceId int64 `orm:"column(source_id)"` // 机会id | ||
225 | + //EnableStatus int `orm:"column(enable_status)"` | ||
226 | +} | ||
227 | + | ||
195 | /*Announcement H5公告详情*/ | 228 | /*Announcement H5公告详情*/ |
196 | type AnnouncementRequest struct { | 229 | type AnnouncementRequest struct { |
197 | Id int `json:"id" valid:"Required"` | 230 | Id int `json:"id" valid:"Required"` |
@@ -84,6 +84,56 @@ func SendApproveMsgByFormat(receiverId int64, name string, companyId int64, chan | @@ -84,6 +84,56 @@ func SendApproveMsgByFormat(receiverId int64, name string, companyId int64, chan | ||
84 | return | 84 | return |
85 | } | 85 | } |
86 | 86 | ||
87 | +//发送被审核消息 | ||
88 | +func SendApprovedMsg(receiverId int64, name string, companyId int64, chanceId int64, chanceTypeId int, reviewStatus int, msgType int) (err error) { | ||
89 | + var ( | ||
90 | + chanceType *models.ChanceType | ||
91 | + format string | ||
92 | + ) | ||
93 | + switch reviewStatus { | ||
94 | + case protocol.ReviewStatusAuditging: | ||
95 | + format = MessageApproving | ||
96 | + break | ||
97 | + case protocol.ReviewStatusReturn: | ||
98 | + format = MessageApproveReject | ||
99 | + break | ||
100 | + case protocol.ReviewStatusPass: | ||
101 | + format = MessageApproveSuccess | ||
102 | + break | ||
103 | + default: | ||
104 | + format = MessageApproving | ||
105 | + break | ||
106 | + } | ||
107 | + if chanceType, err = models.GetChanceTypeById(chanceTypeId); err != nil { | ||
108 | + return | ||
109 | + } | ||
110 | + format = fmt.Sprintf(format, chanceType.Name) | ||
111 | + return SendMsg(receiverId, name, companyId, chanceId, protocol.SourceTypeChance, format, msgType) | ||
112 | +} | ||
113 | + | ||
114 | +//发送消息 | ||
115 | +func SendMsg(receiverId int64, name string, companyId int64, sourceId int64, sourceType int, message string, msgType int) (err error) { | ||
116 | + var ( | ||
117 | + userMsg *models.UserMsg | ||
118 | + ) | ||
119 | + userMsg = &models.UserMsg{ | ||
120 | + Id: idgen.Next(), | ||
121 | + CompanyId: companyId, | ||
122 | + ReceiveUserId: receiverId, | ||
123 | + MsgType: msgType, | ||
124 | + Message: message, | ||
125 | + SourceId: sourceId, | ||
126 | + SourceType: sourceType, | ||
127 | + IsPublic: 0, | ||
128 | + CreateAt: time.Now(), | ||
129 | + } | ||
130 | + if _, err = models.AddUserMsg(userMsg); err != nil { | ||
131 | + return | ||
132 | + } | ||
133 | + logMsg(userMsg, name) | ||
134 | + return | ||
135 | +} | ||
136 | + | ||
87 | //打印消息日志 | 137 | //打印消息日志 |
88 | func logMsg(msg *models.UserMsg, name string) { | 138 | func logMsg(msg *models.UserMsg, name string) { |
89 | log.Info(fmt.Sprintf("发送消息 消息类型:%v Receiver:%v(%v) Message:%v SourceId:%v SourceType:%v", | 139 | log.Info(fmt.Sprintf("发送消息 消息类型:%v Receiver:%v(%v) Message:%v SourceId:%v SourceType:%v", |
@@ -10,6 +10,7 @@ import ( | @@ -10,6 +10,7 @@ import ( | ||
10 | "opp/internal/utils" | 10 | "opp/internal/utils" |
11 | "opp/models" | 11 | "opp/models" |
12 | "opp/protocol" | 12 | "opp/protocol" |
13 | + "opp/services/agg" | ||
13 | "time" | 14 | "time" |
14 | ) | 15 | ) |
15 | 16 | ||
@@ -182,6 +183,46 @@ func MsgCompanyNotice(header *protocol.RequestHeader, request *protocol.MsgCompa | @@ -182,6 +183,46 @@ func MsgCompanyNotice(header *protocol.RequestHeader, request *protocol.MsgCompa | ||
182 | return | 183 | return |
183 | } | 184 | } |
184 | 185 | ||
186 | +//消息中心-机会审核消息 | ||
187 | +func MsgChanceApprove(header *protocol.RequestHeader, request *protocol.MsgChanceApproveRequest) (rsp *protocol.MsgChanceApproveResponse, err error) { | ||
188 | + var ( | ||
189 | + myChances []protocol.MsgChanceApproveItemOrm | ||
190 | + total int | ||
191 | + provider *protocol.BaseUserInfo | ||
192 | + ) | ||
193 | + if total, err = models.GetChanceMsg(header.UserId, header.CompanyId, request.LastId, request.PageSize, protocol.MsgTypeAudit, &myChances); err != nil { | ||
194 | + if err == orm.ErrNoRows { | ||
195 | + err = nil | ||
196 | + return | ||
197 | + } | ||
198 | + log.Error(err) | ||
199 | + return | ||
200 | + } | ||
201 | + if provider, err = agg.GetUserBaseInfo(header.UserId, header.CompanyId); err != nil { | ||
202 | + log.Error(err) | ||
203 | + return | ||
204 | + } | ||
205 | + rsp = &protocol.MsgChanceApproveResponse{Total: total} | ||
206 | + for i := 0; i < len(myChances); i++ { | ||
207 | + chance := myChances[i] | ||
208 | + commItem := protocol.CommonListItem{} | ||
209 | + item := protocol.ChanceItem{ | ||
210 | + Id: chance.Id, | ||
211 | + Provider: provider, | ||
212 | + //CreateTime: chance.CreateTime.Unix() * 1000, | ||
213 | + } | ||
214 | + utils.JsonUnmarshal(chance.SourceContent, &item.FormList) | ||
215 | + utils.JsonUnmarshal(chance.Images, &item.Pictures) | ||
216 | + utils.JsonUnmarshal(chance.Voices, &item.Speechs) | ||
217 | + utils.JsonUnmarshal(chance.Videos, &item.Videos) | ||
218 | + { | ||
219 | + commItem.Chance = item | ||
220 | + } | ||
221 | + rsp.List = append(rsp.List, commItem) | ||
222 | + } | ||
223 | + return | ||
224 | +} | ||
225 | + | ||
185 | //H5公告详情 | 226 | //H5公告详情 |
186 | func H5Announcement(header *protocol.RequestHeader, request *protocol.AnnouncementRequest) (rsp *protocol.AnnouncementResponse, err error) { | 227 | func H5Announcement(header *protocol.RequestHeader, request *protocol.AnnouncementRequest) (rsp *protocol.AnnouncementResponse, err error) { |
187 | var ( | 228 | var ( |
-
请 注册 或 登录 后发表评论