Tigshop开源商城 分销推广海报后端怎么合成?带二维码的那种(附代码)
分销这套做着做着又追加进来一条需求分销员要能生成带自己专属二维码的商品海报发朋友圈那种别人扫码进来买就算他的业绩。这功能在 tigshop 里也是 Pro 的官网推广海报标着 (Pro)开源版没有。海报合成本身不复杂就是底图 商品图 二维码 文字四层叠一起。PHP 用 GD 或者 Intervention Image 都行我用 Intervention代码干净点。按生成流程一步步走。装库tigshop 是 composer 项目直接加依赖别手动塞 vendorcdphpcomposerrequire intervention/imagecomposerrequire endroid/qr-code生成分销员专属二维码二维码里带上分销员 id扫码进小程序或 H5 时能识别是谁推广的参数拼进落地页 URL?phpnamespaceapp\service\front\salesman;useEndroid\QrCode\QrCode;useEndroid\QrCode\Writer\PngWriter;classPosterService{// 生成带分销员标识的二维码返回本地临时路径privatefunctionmakeQrcode(int$salesmanId,int$productId):string{$urlsprintf(https://你的域名/mobile/#/pages/product/detail?id%dsid%d,$productId,$salesmanId);$result(newPngWriter())-write(QrCode::create($url)-setSize(180));$pathruntime_path().poster/qr_.$salesmanId._.$productId..png;$result-saveToFile($path);return$path;}}四层叠图底图放一张固定模板到public/static/poster_bg.png商品主图从product表拿二维码用上一步的文字写价格和标题。注意商品字段名售价列是product_price图叫pic_url别写成priceuseIntervention\Image\ImageManager;useIntervention\Image\Drivers\Gd\Driver;publicfunctiongenerate(int$salesmanId,int$productId):string{$managernewImageManager(newDriver());// 1) 底图$poster$manager-read(public_path().static/poster_bg.png);// 2) 商品主图缩放后贴到顶部$product\app\model\product\Product::field(product_name,pic_url,product_price)-find($productId);$cover$manager-read($product-pic_url)-resize(600,600);$poster-place($cover,top-left,40,40);// 3) 二维码贴右下角$qr$manager-read($this-makeQrcode($salesmanId,$productId));$poster-place($qr,bottom-right,40,40);// 4) 文字标题 价格$poster-text($product-product_name,60,700,function($font){$font-file(public_path().static/fonts/SourceHan.ttf);$font-size(32);$font-color(#333333);});$poster-text(.$product-product_price,60,760,function($font){$font-file(public_path().static/fonts/SourceHan.ttf);$font-size(40);$font-color(#e4393c);});// 存到 public也可以直接推 OSS$saveposter/.$salesmanId._.$productId._.time()..png;$poster-save(public_path().$save);return/.$save;}字体一定要带一个中文 ttf 进去。GD 默认字体打中文是乱码这个坑我踩过排查了半天才发现是字体的事。给 C 端一个接口照 tigshop 的 controller 风格挂在 user 分组下当前登录用户换算出他对应的分销员 id?phpnamespaceapp\api\controller\user;useapp\api\IndexBaseController;useapp\service\front\salesman\PosterService;usethink\App;usethink\Response;classPosterextendsIndexBaseController{protectedPosterService$service;publicfunction__construct(App$app,PosterService$service){parent::__construct($app);$this-service$service;}publicfunctionproduct():Response{$this-checkLogin();$productId$this-request-all(product_id/d,0);$salesman\app\model\salesman\Salesman::where(user_id,request()-userId)-find();if(!$salesman)return$this-error(你还不是分销员);$url$this-service-generate($salesman-salesman_id,$productId);return$this-success([poster_url$url]);}}路由Route::group(poster,function(){Route::get(product,user.poster/product);})-middleware([\app\api\middleware\CheckLogin::class]);前端展示 保存Uniapp 拿到 URL 直接显示长按保存script setup langts import request from /utils/request const poster ref() async function gen(productId: number) { poster.value (await request.get(/api/user/poster/product, { product_id: productId })).data.poster_url } /script template image v-ifposter :srcposter show-menu-by-longpress modewidthFix / /template合成量大了怎么办同一个分销员同一个商品海报别每次都现合成。加个 Redis key 判断存在就直接返回旧图省 CPU。合成量再大就扔队列异步跑tigshop 本身支持 redis 队列别卡在同步请求里让用户干等。到这分销员发圈的海报就齐活了配上返佣记录一套轻量分销就凑出来了。要做完整的推广素材体系还是得上 Pro但这个需求下上面这些跑起来没问题。

相关新闻

微信小程序TabBar深度自定义:从基础配置到动态权限与性能优化

微信小程序TabBar深度自定义:从基础配置到动态权限与性能优化

1. 项目概述:从基础配置到深度自定义的蜕变做小程序开发,TabBar(底部标签栏)几乎是每个带多页面的应用都绕不开的核心组件。很多新手拿到官方文档,照着示例把几个图标和文字一配,页面能跳转就觉得大功告成了…

2026/8/1 8:12:48阅读更多 →
从AAAS新院士看科研趋势:交叉融合、工具驱动与人才培养

从AAAS新院士看科研趋势:交叉融合、工具驱动与人才培养

1. 项目概述:从一则新闻到一次深度行业观察看到“2026 AAAS新院士出炉!中科大校友范汕洄、杜强上榜”这个标题,可能很多朋友的第一反应是“哦,一条科技新闻”。但作为一名长期关注全球科研动态和人才发展的从业者,我看…

2026/8/1 8:12:48阅读更多 →
AI Agent开源框架之争:从Hermes与Harness看智能体工程化实战

AI Agent开源框架之争:从Hermes与Harness看智能体工程化实战

1. 项目概述:一场由“抄袭”引发的AI Agent生态风暴最近AI圈子里最热闹的事儿,莫过于B站上那场关于Hermes的直播了。如果你还没关注,简单来说,就是AI智能体(Agent)领域的一个明星项目Hermes,被推…

2026/8/1 8:12:48阅读更多 →
豆包长周期任务中断率下降68%的关键突破:轻量级对话状态机+增量式上下文蒸馏双引擎(附可落地代码框架)

豆包长周期任务中断率下降68%的关键突破:轻量级对话状态机+增量式上下文蒸馏双引擎(附可落地代码框架)

更多请点击: https://codechina.net 第一章:豆包长周期任务中断率下降68%的关键突破:轻量级对话状态机增量式上下文蒸馏双引擎(附可落地代码框架) 在长周期对话场景中,传统基于全量上下文缓存的方案面临内…

2026/8/1 9:37:14阅读更多 →
TikTok Shop店群自动化管理系统:独占IP与指纹隔离,告别批量封号

TikTok Shop店群自动化管理系统:独占IP与指纹隔离,告别批量封号

TikTok Shop店群自动化管理系统:独占IP与指纹隔离,告别批量封号 做店群的老板都知道,TikTok Shop的自动回复与客服,是店群运营中最耗人力也最容易出错的环节。 店群客服是纯人力消耗战。一个店日均50条咨询,20个店就…

2026/8/1 9:37:14阅读更多 →
AI意图识别技术优化:从模型轻量化到工程实践

AI意图识别技术优化:从模型轻量化到工程实践

1. AI原生应用中的意图识别技术现状 在当前的AI原生应用领域,意图识别作为人机交互的核心技术环节,其性能表现直接影响着用户体验和业务效果。典型的应用场景包括智能客服系统、语音助手、智能家居控制等,这些场景对响应延迟都有着严苛的要求…

2026/8/1 9:37:14阅读更多 →
终极Android投屏指南:QtScrcpy如何让你用键盘鼠标玩转手机游戏

终极Android投屏指南:QtScrcpy如何让你用键盘鼠标玩转手机游戏

终极Android投屏指南:QtScrcpy如何让你用键盘鼠标玩转手机游戏 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy 你是否曾因手机屏幕太小而在游戏中错失关键操作&#xff…

2026/8/1 9:37:14阅读更多 →
PHP继承实战:从访问权限到方法重写的面向对象编程精解

PHP继承实战:从访问权限到方法重写的面向对象编程精解

1. 项目概述:从一道题看透PHP继承的实战精髓 最近在辅导一些新手朋友学习PHP面向对象编程,发现很多人卡在了“继承”这个看似基础的概念上。尤其是在做educoder这类在线编程平台的题目时,常常是知其然不知其所以然,代码能跑通&…

2026/8/1 9:37:14阅读更多 →
论文降重和降 AI 是一回事吗?论双降模式的必要性与操作指南

论文降重和降 AI 是一回事吗?论双降模式的必要性与操作指南

在毕业论文撰写完毕后的自查和修改阶段,很多同学经常会被查重率(Similarity rate)和 AI 检出率(AIGC rate)这两个指标搞得焦头烂额。最常见的惨剧莫过于:有的人花了两天时间疯狂翻词典改句式,把…

2026/8/1 9:35:14阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/31 20:44:05阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/31 17:41:43阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/31 20:44:05阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →