|
|
@@ -108,6 +108,8 @@ func (s Service) Add(userInfo request.UserInfo, req meeting3.ReservationReq) err
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+const PermissionCancelAnyMeetingReservation = "meeting:cancel:any"
|
|
|
+
|
|
|
// Cancel 取消预约 预约状态(1:预定 2:取消)
|
|
|
func (s Service) Cancel(userInfo request.UserInfo, id int) error {
|
|
|
// 判断当前用户是否是预约人
|
|
|
@@ -118,6 +120,19 @@ func (s Service) Cancel(userInfo request.UserInfo, id int) error {
|
|
|
if entity == nil {
|
|
|
return errors.New("未找到当前预约信息,请重试")
|
|
|
}
|
|
|
+ allow, err := common.Allow(s.Tenant, userInfo.Uuid, PermissionCancelAnyMeetingReservation)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if allow {
|
|
|
+ updatedMap := service.SetUpdatedMap(&userInfo)
|
|
|
+ updatedMap["Status"] = 2
|
|
|
+ _, err = s.Dao.M.Data(updatedMap).WherePri(id).Update()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ }
|
|
|
if int32(entity.UserId) != userInfo.Id {
|
|
|
return errors.New("当前预约只能由预约人取消")
|
|
|
}
|