github.com/SupenBysz/gf-admin-community@v0.7.4/utility/funs/funs.go (about)

     1  package funs
     2  
     3  import (
     4  	"context"
     5  	"github.com/SupenBysz/gf-admin-community/sys_model"
     6  	"github.com/SupenBysz/gf-admin-community/sys_model/sys_do"
     7  	"github.com/SupenBysz/gf-admin-community/sys_model/sys_entity"
     8  	"github.com/SupenBysz/gf-admin-community/sys_service"
     9  	"github.com/gogf/gf/v2/os/gfile"
    10  	"github.com/gogf/gf/v2/os/gtime"
    11  	"github.com/gogf/gf/v2/util/gconv"
    12  	"github.com/kysion/base-library/utility/base_permission"
    13  )
    14  
    15  func CheckPermission[TRes any](ctx context.Context, f func() (TRes, error), permissions ...base_permission.IPermission) (TRes, error) {
    16  	if has, err := sys_service.SysPermission().CheckPermission(ctx, permissions...); has != true {
    17  		var ret TRes
    18  		return ret, err
    19  	}
    20  	return f()
    21  }
    22  func CheckPermissionOr[TRes any](ctx context.Context, f func() (TRes, error), permissions ...base_permission.IPermission) (TRes, error) {
    23  	if has, err := sys_service.SysPermission().CheckPermissionOr(ctx, permissions...); has != true {
    24  		var ret TRes
    25  		return ret, err
    26  	}
    27  	return f()
    28  }
    29  
    30  func CheckPersonLicenseFiles[T sys_entity.SysPersonLicense | sys_do.SysPersonLicense](ctx context.Context, info sys_model.AuditPersonLicense, data *T) (response *T, err error) {
    31  	newData := &sys_entity.SysPersonLicense{}
    32  	gconv.Struct(data, newData)
    33  
    34  	{
    35  		//userId := sys_service.SysSession().Get(ctx).JwtClaimsUser.Id
    36  		userId := info.UserId
    37  
    38  		// 用户资源文件夹
    39  		userFolder := "./resource/license/" + gconv.String(newData.Id)
    40  		fileAt := gtime.Now().Format("YmdHis")
    41  		if !gfile.Exists(info.IdcardFrontPath) {
    42  			// 检测缓存文件
    43  			fileInfoCache, err := sys_service.File().GetUploadFile(ctx, gconv.Int64(info.IdcardFrontPath), userId, "请上传身份证头像面")
    44  			if err != nil {
    45  				return nil, err
    46  			}
    47  			// 保存员工身份证头像面
    48  			fileInfo, err := sys_service.File().SaveFile(ctx, userFolder+"/idCard/front_"+fileAt+fileInfoCache.Ext, fileInfoCache)
    49  			if err != nil {
    50  				return nil, err
    51  			}
    52  
    53  			//  注意:实际存储的License 需要存储持久化后的文件ID,而不是路径
    54  			newData.IdcardFrontPath = gconv.String(fileInfo.Id)
    55  		}
    56  
    57  		if !gfile.Exists(info.IdcardBackPath) {
    58  			// 检测缓存文件
    59  			fileInfoCache, err := sys_service.File().GetUploadFile(ctx, gconv.Int64(info.IdcardBackPath), userId, "请上传身份证国徽面")
    60  			if err != nil {
    61  				return nil, err
    62  			}
    63  			// 保存员工身份证国徽面
    64  			fileInfo, err := sys_service.File().SaveFile(ctx, userFolder+"/idCard/back_"+fileAt+fileInfoCache.Ext, fileInfoCache)
    65  			if err != nil {
    66  				return nil, err
    67  			}
    68  
    69  			//  注意:实际存储的License 需要存储持久化后的文件ID,而不是路径
    70  			newData.IdcardBackPath = gconv.String(fileInfo.Id)
    71  		}
    72  
    73  	}
    74  
    75  	gconv.Struct(newData, data)
    76  	return data, err
    77  }