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

x网站免费模板免费下载如何说服老板做网站

x网站免费模板免费下载,如何说服老板做网站,服装网站设计方案,上海网站开发建设价格项目背景 在自研的系统#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.w-s-a.com/news/268034/

相关文章:

  • 青岛网站建设有哪些公司区块链网站开发价格
  • 怎么设置网站的logo微信公众号的h5网站开发6
  • 粉色的网站绍兴市建设局网站
  • 个人网站的基本风格是wordpress 模板选择
  • 南昌专业做网站公司有哪些广州市住房城乡建设部门户网站
  • 福州网站建设团队淘宝联盟网站怎么建设
  • 福州企业网站建站模板国内黑色风格的网站
  • 好看的网站首页设计android移动开发
  • 域名注册完成后如何做网站域名 删除 wordpress
  • wordpress xml导入大小东莞seo优化方案
  • 网站建设效益网站销售怎么做的
  • 利用网站空间做代理设计方案的格式范文
  • 无锡建设工程质量监督网站遵义做手机网站建设
  • 衡阳商城网站制作ps做网站首页规范尺寸
  • 微信网站应用开发营销推广的方案
  • 广州做网站商城的公司制作一个app的完整流程
  • 湖南城乡建设厅网站163注册企业邮箱
  • 做网站怎么调整图片间距织梦做的网站如何去掉index
  • 凡科网免费建站步骤及视频网页设计基础教程第二版课后答案
  • 建设一个旅游网站毕业设计企业网站要更新文章吗
  • 做网站需要简介中山网站设计公司
  • 网站怎么做导航栏微信公众号官网登录
  • 1_ 掌握网站开发的基本流程 要求:熟悉网站开发与设计的基本流程.电子商城网站开发
  • 百度网站怎么建设河北省工程造价信息网官网
  • 阿里云网站模板网页设计的合适尺寸是多少
  • 做小程序和做网站哪个好让别人做网站推广需要多少钱
  • 做外贸的几个网站查询网域名解析
  • 酒泉如何做百度的网站seo研究中心好客站
  • 网站设计建设平台户县做网站
  • 一元云购网站开发wordpress博客空间