|
@@ -131,12 +131,39 @@ func (s AnnouncementService) Announcement(ctx context.Context, req *model.Announ
|
|
|
return 0, nil, fmt.Errorf("查询用户部门错误 %s", err)
|
|
return 0, nil, fmt.Errorf("查询用户部门错误 %s", err)
|
|
|
}
|
|
}
|
|
|
ret := []*model.AnnouncementWithNew{}
|
|
ret := []*model.AnnouncementWithNew{}
|
|
|
- err = s.DB.Table("announcement a").
|
|
|
|
|
|
|
+ dao := s.DB.Table("announcement a").
|
|
|
LeftJoin(fmt.Sprintf("(select `Id`,`MessageId`,`UserId` from announcement_read_record where `UserId`=%d) b", s.userInfo.Id), "a.Id=b.MessageId").
|
|
LeftJoin(fmt.Sprintf("(select `Id`,`MessageId`,`UserId` from announcement_read_record where `UserId`=%d) b", s.userInfo.Id), "a.Id=b.MessageId").
|
|
|
Where("a.Status = 2").
|
|
Where("a.Status = 2").
|
|
|
- Where("a.DeptId in (?)", strings.Split(dept.Paths, "/")).
|
|
|
|
|
- Fields("a.*, b.Id is null as IsNew").Structs(&ret)
|
|
|
|
|
- return 0, ret, err
|
|
|
|
|
|
|
+ Where("a.DeptId in (?)", strings.Split(dept.Paths, "/"))
|
|
|
|
|
+
|
|
|
|
|
+ if req.Title != "" {
|
|
|
|
|
+ dao = dao.Where("a.Title LIKE ?", fmt.Sprintf("%%%s%%", req.Title))
|
|
|
|
|
+ }
|
|
|
|
|
+ if req.Sender != "" {
|
|
|
|
|
+ dao = dao.Where("a.Sender LIKE ?", fmt.Sprintf("%%%s%%", req.Sender))
|
|
|
|
|
+ }
|
|
|
|
|
+ if req.PublishTimeStart != nil {
|
|
|
|
|
+ dao = dao.Where("a.PublishTime > ?", req.PublishTimeStart)
|
|
|
|
|
+ }
|
|
|
|
|
+ if req.PublishTimeEnd != nil {
|
|
|
|
|
+ dao = dao.Where("a.PublishTime < ?", req.PublishTimeEnd)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ total, err := dao.Count()
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return 0, nil, err
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if req.Current == 0 {
|
|
|
|
|
+ req.Current = 1
|
|
|
|
|
+ }
|
|
|
|
|
+ if req.Size == 0 {
|
|
|
|
|
+ req.Size = 10
|
|
|
|
|
+ }
|
|
|
|
|
+ dao = dao.Page(req.Current, req.Size)
|
|
|
|
|
+ err = dao.Fields("a.*, b.Id is null as IsNew").
|
|
|
|
|
+ OrderBy("IsTop desc,CreatedAt desc").Structs(&ret)
|
|
|
|
|
+ return total, ret, err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (s AnnouncementService) Receipt(ctx context.Context, req *model.IdReq) error {
|
|
func (s AnnouncementService) Receipt(ctx context.Context, req *model.IdReq) error {
|