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 }