当前位置: 首页 > news >正文

成都建设银行分行招聘网站厦门网站开发平台

成都建设银行分行招聘网站,厦门网站开发平台,佛山网站建设企划动力,wordpress 提高收录项目背景 在自研的系统#xff0c;需要实现类似草料二维码的功能 将我们自己的小程序#xff0c;通过代码生成相想要的小程序二维码 代码已经上传到 Github 需要的朋友可以自取 https://github.com/ctra-wang/wechat-mini-qrcode 一、生成Qrcode并提交到对象存储 通过源生A…项目背景 在自研的系统需要实现类似草料二维码的功能 将我们自己的小程序通过代码生成相想要的小程序二维码 代码已经上传到 Github 需要的朋友可以自取 https://github.com/ctra-wang/wechat-mini-qrcode 一、生成Qrcode并提交到对象存储 通过源生API实现对小程序二维码的生成 1、s3上传多云对象存储桶 感谢suyuan32同学对代码的开源 https://github.com/suyuan32/simple-admin-file 让我们一起支持群主维护simple-admin 社群吧 不能加入星球的朋友记得来点个Star https://github.com/suyuan32/simple-admin-core 2、源码 下面为示意代码 需要的package如下 github.com/silenceper/wechat/v2github.com/aws/aws-sdk-go/aws func NewVerifyRaceSignTeamLogic(ctx context.Context, svcCtx *svc.ServiceContext) *VerifyRaceSignTeamLogic {return VerifyRaceSignTeamLogic{Logger: logx.WithContext(ctx),ctx: ctx,svcCtx: svcCtx} }func (l *VerifyRaceSignTeamLogic) VerifyRaceSignTeam(req *types.RaceSignTeamInfo) (resp *types.BaseMsgResp, err error) {deptId : ctxdata.GetIntParamFromJwt(l.ctx, deptId)// 根据具体赛事id查询raceSignTeam, err : l.svcCtx.CtraGoRaceRpc.GetRaceSignTeamById(l.ctx, ctragorace.IDReq{Id: *req.Id,})if err ! nil {return nil, err}flag : falseif int(deptId) ! constant.ORG_TYPE_ADMIN {// 根据 deptid 换 orgInfoorgRes, err : l.svcCtx.CtraGoRaceRpc.GetRaceOrgInfoList(l.ctx, ctragorace.RaceOrgInfoListReq{DeptId: deptId,})if err ! nil {return nil, err}if orgRes.Total 0 {// 非管理员查看该权限下所有赛事raceList, err : l.svcCtx.CtraGoRaceRpc.GetRaceInfoList(l.ctx, ctragorace.RaceInfoListReq{RaceOrgInfoId: *orgRes.Data[0].Id,})if err ! nil {return nil, err}if raceList.Total 0 {for _, datum : range raceList.Data {if *datum.Id *raceSignTeam.RaceInfoId {flag truebreak}}}}} else {flag true}if !flag {return nil, errorx.NewCodeAbortedError(该用户暂无权限进行审核)}// ----------------------- 生成 微信小程序二维码 使用github.com/silenceper/wechat/v2 -----------------------// 初始化 Wechat 实例wc : wechat.NewWechat()//这里本地内存保存access_token也可选择redismemcache或者自定cachememory : cache.NewMemory()cfg : miniConfig.Config{AppID: constant.MINI_APP_LATEST_ID,AppSecret: constant.MINI_APP_LATEST_SECRET,Cache: memory,}mini : wc.GetMiniProgram(cfg)qr : mini.GetQRCode()qrRes, err : qr.CreateWXAQRCode(qrcode.QRCoder{Page: l.svcCtx.Config.QrCode.Page,Path: fmt.Sprintf(l.svcCtx.Config.QrCode.Path, raceSignTeam.RaceInfoId),//CheckPath: nil,Width: l.svcCtx.Config.QrCode.Width,//Scene: pathName/race/pages/groupid58,//AutoColor: false,//LineColor: nil,//IsHyaline: false,//EnvVersion: ,})if err ! nil {return nil, errorx.NewCodeAbortedError(通过微信小程序API生成小程序二维码失败)}// ----------------------- 将 微信小程序二维码 生成为本地文件用于存入对象存储cos -----------------------// 拼接文件路径fileDir : fmt.Sprintf(/upload/race-info/%s/, time.Now().Format(2006_01))newFileName : generatoruuid.GetUuid() .jpg// 获取当前 Pod 的工作目录pwd, err : os.Getwd()if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(os创建文件夹失败)}// 创建文件路径err os.MkdirAll(pwdfileDir, 0755)if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(os创建文件夹失败)}// 复制文件空文件到该路径qrcodeFile, err : os.Create(pwd fileDir newFileName)if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(os创建文件失败)}// 将通过API生成小程序二维码-写入到文件中_, err qrcodeFile.Write(qrRes)if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(os创建文件失败)}defer qrcodeFile.Close()// 删除文件defer os.RemoveAll(pwd fileDir newFileName)// ----------------------- 推送文件到tencent对象存储cos -----------------------// 创建s3实例sess : session.Must(session.NewSession(aws.Config{Region: aws.String(l.svcCtx.Config.QrCode.Region),Credentials: credentials.NewStaticCredentials(l.svcCtx.Config.QrCode.SecretId, l.svcCtx.Config.QrCode.SecretKey, ),Endpoint: aws.String(l.svcCtx.Config.QrCode.EndPoint),},))CloudStorage : s3.New(sess)qrFile, err : os.Open(pwd fileDir newFileName)if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(读取新创建qrcode失败)}defer qrFile.Close()// 处理存放cos的路径// - C 端// - 赛事报名race-sign/赛事id/// - 赛事信息race-info/赛事id/ ✅// - 用户里程碑member-moment/用户id/// - 用户个人信息 member-info/用户id/// - B 端 不在这里使用// - bannerbanner/relativeSrc : fmt.Sprintf(%s/%s/%d/%s,l.svcCtx.Config.QrCode.Folder,race-info,*raceSignTeam.RaceInfoId,newFileName)// 发送到tencent-cos_, err CloudStorage.PutObjectWithContext(context.Background(), s3.PutObjectInput{Bucket: aws.String(l.svcCtx.Config.QrCode.BucketName),Key: aws.String(relativeSrc),Body: qrFile,})if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(文件上传到tencent-cos失败)}fmt.Println(QR code upload tencent cos successfully!)// ----------------------- 更新数据库表 race_sign_team -----------------------// 更新团报状态res1, err : l.svcCtx.CtraGoRaceRpc.UpdateRaceSignTeam(l.ctx,ctragorace.RaceSignTeamInfo{Id: req.Id,IsValidate: pointy.GetPointer(int32(constant.SIGN_TEAM_IS_VALIDATE_ACCESS)),TeamQrcode: relativeSrc,})if err ! nil {return nil, err}return types.BaseMsgResp{Msg: res1.Msg}, nil}3、源码分析 3.1、拿到qrcode二进制 qrRes 为拿到的图片二进制 // ----------------------- 生成 微信小程序二维码 使用github.com/silenceper/wechat/v2 -----------------------// 初始化 Wechat 实例wc : wechat.NewWechat()//这里本地内存保存access_token也可选择redismemcache或者自定cachememory : cache.NewMemory()cfg : miniConfig.Config{AppID: constant.MINI_APP_LATEST_ID,AppSecret: constant.MINI_APP_LATEST_SECRET,Cache: memory,}mini : wc.GetMiniProgram(cfg)qr : mini.GetQRCode()qrRes, err : qr.CreateWXAQRCode(qrcode.QRCoder{Page: l.svcCtx.Config.QrCode.Page,Path: fmt.Sprintf(l.svcCtx.Config.QrCode.Path, raceSignTeam.RaceInfoId),//CheckPath: nil,Width: l.svcCtx.Config.QrCode.Width,//Scene: pathName/race/pages/groupid58,//AutoColor: false,//LineColor: nil,//IsHyaline: false,//EnvVersion: ,})if err ! nil {return nil, errorx.NewCodeAbortedError(通过微信小程序API生成小程序二维码失败)}3.2、二维码存为本地文件 将 微信小程序二维码 生成为本地文件用于存入对象存储cos // ----------------------- 将 微信小程序二维码 生成为本地文件用于存入对象存储cos -----------------------// 拼接文件路径fileDir : fmt.Sprintf(/upload/contracts/%s/, time.Now().Format(2006_01))newFileName : generatoruuid.GetUuid() .jpg// 获取当前 Pod 的工作目录pwd, err : os.Getwd()if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(os创建文件夹失败)}// 创建文件路径err os.MkdirAll(pwdfileDir, 0755)if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(os创建文件夹失败)}// 复制文件空文件到该路径qrcodeFile, err : os.Create(pwd fileDir newFileName)if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(os创建文件失败)}// 将通过API生成小程序二维码-写入到文件中_, err qrcodeFile.Write(qrRes)if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(os创建文件失败)}defer qrcodeFile.Close()// 删除文件defer os.RemoveAll(pwd fileDir newFileName) 3.3、推送文件到tencent对象存储cos 通过s3协议上传到对象存储桶 | 腾讯云 cos 这里注意要将刚才保存的图片再次打开 os.Open() // ----------------------- 推送文件到tencent对象存储cos -----------------------// 创建s3实例sess : session.Must(session.NewSession(aws.Config{Region: aws.String(l.svcCtx.Config.QrCode.Region),Credentials: credentials.NewStaticCredentials(l.svcCtx.Config.QrCode.SecretId, l.svcCtx.Config.QrCode.SecretKey, ),Endpoint: aws.String(l.svcCtx.Config.QrCode.EndPoint),},))CloudStorage : s3.New(sess)qrFile, err : os.Open(pwd fileDir newFileName)if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(读取新创建qrcode失败)}defer qrFile.Close()// 处理存放cos的路径// - C 端// - 赛事报名race-sign/赛事id/// - 赛事信息race-info/赛事id/ ✅// - 用户里程碑member-moment/用户id/// - 用户个人信息 member-info/用户id/// - B 端 不在这里使用// - bannerbanner/relativeSrc : fmt.Sprintf(%s/%s/%d/%s,l.svcCtx.Config.QrCode.Folder,race-info,*raceSignTeam.RaceInfoId,newFileName)// 发送到tencent-cos_, err CloudStorage.PutObjectWithContext(context.Background(), s3.PutObjectInput{Bucket: aws.String(l.svcCtx.Config.QrCode.BucketName),Key: aws.String(relativeSrc),Body: qrFile,})if err ! nil {l.Logger.Errorf(err.Error())return nil, errorx.NewCodeAbortedError(文件上传到tencent-cos失败)}fmt.Println(QR code upload tencent cos successfully!)
http://www.zqtcl.cn/news/542543/

相关文章:

  • 思途旅游网站建设系统郴州新网招聘
  • 婚庆公司网站模板下载海域装饰
  • 微信小程序是干什么用的永康网站优化
  • 网站seo是什么谷歌海外广告投放
  • 江苏省 建设 注册中心网站首页淮南建筑网
  • 网站备案核wordpress页面菜单
  • 凤阳县城乡建设局网站设计本app下载
  • 网站建设实用教程网站后台制作表格
  • 微信官方网站注册新开的网页游戏平台
  • 福州专业建站网站代码的重点内容是什么
  • jsp网站架构网站设计的主要内容
  • html电子商务网站模板wordpress 随机阅读数
  • 湖南省军区强军网网站群建设项目免费网页托管
  • 网站背景图政协网站 两学一做专题研讨
  • 买域名建网站郑州做网站优化运营商
  • 建设宠物店网站114查询
  • 怎么查网站关键词排名微信与与网站建设
  • 湖州高端网站建设医疗网站源码
  • 有什么网站是做兼职的直播视频怎么录制
  • 扬州市网站建设工作室免费模板网站建设
  • 网站大全全部优秀网站设计流程
  • 授权网站系统网站标题如何修改
  • 商城网站大概多少钱考证培训机构报名网站
  • 马鞍山做网站怎么看网站谁做的
  • 网站建设捌金手指专业7网站如何设置广告
  • 做网站用什么浏览器好工程公司工作总结
  • 温州做网站哪家好为wordpress移动端
  • 温州平阳县企业网站搭建推荐建立网站的技术路径
  • php c2c网站开发的 书营销型网站sempk
  • 网站建设专业网站设计公司物格网陕西建省级执法人才库