Bladeren bron

feature:添加可以删除任何人会议室预约的权限

liuyaqi 3 jaren geleden
bovenliggende
commit
3db28cd4e5
3 gewijzigde bestanden met toevoegingen van 36 en 1 verwijderingen
  1. 20 0
      common/dist.go
  2. 15 0
      service/reservation/reservation.go
  3. 1 1
      swaggerui/index.html

+ 20 - 0
common/dist.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 
 	"dashoo.cn/common_definition/admin/dict_def"
+	"dashoo.cn/common_definition/admin/permission_def"
 	"dashoo.cn/micro_libary/micro_srv"
 )
 
@@ -33,3 +34,22 @@ func DictAsMap(tenant, code string) (map[string]string, error) {
 	}
 	return m, nil
 }
+
+func Allow(tenant, uuid, permission string) (bool, error) {
+	permissionSrv := micro_srv.InitMicroSrvClient("Permission", "micro_srv.admin")
+	defer permissionSrv.Close()
+	rsp := &permission_def.PermissionResp{}
+	err := permissionSrv.Call(context.TODO(), "GetAllPermissionByUser", &permission_def.UuidReq{
+		Tenant: tenant,
+		Uuid:   uuid,
+	}, rsp)
+	if err != nil {
+		return false, fmt.Errorf("获取权限失败 %s", err.Error())
+	}
+	for _, p := range rsp.UserPermissions {
+		if p == permission {
+			return true, nil
+		}
+	}
+	return false, nil
+}

+ 15 - 0
service/reservation/reservation.go

@@ -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("当前预约只能由预约人取消")
 	}

+ 1 - 1
swaggerui/index.html

@@ -56,7 +56,7 @@
             return
           }
           console.log(req)
-          let serviceUrl = "http://192.168.0.102:9981/dashoo.lims.adapter-0.1-jlw"
+          let serviceUrl = "http://192.168.0.252:8100/dashoo.lims.adapter-0.1-jlw"
           let reqUrl = new URL(req.url)
           let urlInfo = reqUrl.pathname.substring(1).split('.')
           if (urlInfo.length < 2) {