6
0
Quellcode durchsuchen

fix:修复仪器预约 bug

liuyaqi vor 2 Jahren
Ursprung
Commit
c4d3ab269e

+ 4 - 0
model/announcement/announcement.go

@@ -25,6 +25,10 @@ type AnnouncementListReq struct {
 }
 
 type AnnouncementAnnouncementReq struct {
+	Title            string      `json:"title"`
+	Sender           string      `json:"sender"`
+	PublishTimeEnd   *gtime.Time `json:"publish_time_end"`
+	PublishTimeStart *gtime.Time `json:"publish_time_start"`
 	Current int `json:"current"`
 	Size    int `json:"size"`
 }

+ 31 - 4
service/announcement/announcement.go

@@ -131,12 +131,39 @@ func (s AnnouncementService) Announcement(ctx context.Context, req *model.Announ
 		return 0, nil, fmt.Errorf("查询用户部门错误 %s", err)
 	}
 	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").
 		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 {

+ 2 - 7
service/equipment/equipment.go

@@ -283,13 +283,8 @@ func (s Service) AppointTimeInfo(req *equipment2.AppointTimeInfoReq, userinfo re
 		return nil, err
 	}
 
-	disableExpired := g.Cfg().GetBool("appointment.disableExpired")
-	appointStatus := g.Slice{1, 2}
-	if disableExpired {
-		// 需要包含超时未上机的预约
-		appointStatus = g.Slice{1, 2, 10}
-	}
-
+	// 需要包含超时未上机的预约
+	appointStatus := g.Slice{1, 2, 10}
 	var appointInfo []AppointTimeInfoAppoint
 	err = s.Dao.DB.Table("appointment a").LeftJoin("base_user b", "a.UserId=b.Id").Unscoped().
 		Where("a.DeletedAt IS NULL").

+ 4 - 4
service/reservation/reservation.go

@@ -440,10 +440,10 @@ func (s Service) check(req meeting3.ReservationReq) error {
 	if req.EndTime.Sub(req.StartTime) <= 0 {
 		return errors.New("预约结束时候必须大于开始时间")
 	}
-	// 时间间隔不能小于30分钟 todo:可以加到配置参数中
-	if req.EndTime.Sub(req.StartTime).Minutes() < 30 {
-		return errors.New("预约时间最小为30分钟")
-	}
+	// // 时间间隔不能小于30分钟 todo:可以加到配置参数中
+	// if req.EndTime.Sub(req.StartTime).Minutes() < 30 {
+	// 	return errors.New("预约时间最小为30分钟")
+	// }
 	// 校验是否是过期时间
 	if req.StartTime.Sub(gtime.Now()) < 0 {
 		return errors.New("当前预约时间已过期")