关闭

青桃传媒

全国

上图是本项目用到的所有技术栈

青桃传媒·2025-03-14 07:51:29·阅读

上图是本项目用到的所有技术栈

上图是本项目用到的所有技术栈这个项目分为四端(前端)项目所使用的AI工具服务器项目后端(服务端)架构设计思想

整体是 pnpm + 架构,为什么要这么做呢,因为这样设计前后端可以通过技术实现前后端共用一套声明文件,后端增加了一个字段,前端会立马报错需要添加新增的字段,这样能避免很多问题。

上图是本项目用到的所有技术栈

目录就是存放公共的声明文件前后端一起用的

前后端只需要把这个项目安装到前后端项目即可

pnpm add @project/common --workspace --filter @project/admin-server

上图是本项目用到的所有技术栈

第二个考虑为什么不用现成的模板呢

我从来没用过若依那些框架(不熟)客户很多界面都是定制化的这也是一个学习的机会很多东西我想手写一次,毕竟真实在公司里不会让你去搞这些的,所以私活可以自己整很多东西前提是客户不懂技术。

所以综合考虑就自己干了 本来想跟群友一起搞的但是那时候缺米后来还是一个人承包了

后端架构

微服务设计

后端管理系统微服务Admin-文件管理微服务 Fs-小程序微服务 -即时通讯服务 -

上图是本项目用到的所有技术栈

网关层设计

因为微服务太多了api地址各不相同,我想着是入口统一设计了网关层,然后通过网关层分发到各个微服务,其次就是网关层还可以实现 限流 信道加密 熔断技术

上图是本项目用到的所有技术栈

这样就不管哪个端发送的请求都会经过网关层 然后通过网关层分发给各个微服务

上图是本项目用到的所有技术栈

数据库

数据库采用了分库分表设计

分库分表设计 主流的切分方式有 3种 水平切分 垂直切分 混合切分 我采用了水平切分

为什么要分库分表呢,因为单库性能瓶颈 CPU压力会很大

上图是本项目用到的所有技术栈

项目刚部署服务器直接爆表

网友的评价是:小马拉大车

后来我进行优化 分库分表 集群部署 Nginx七层SLB负载和四层LB负载之后终于稳定了

上图是本项目用到的所有技术栈

ORM()

这个ORM框架非常好用,TS智能提示,一对多 多对多 都很简单,并且还有级联删除 复杂查询等等太好用了

上图是本项目用到的所有技术栈

微信支付对接

官方没有提供Node.js的SDK,所有就有很多网友自己写了很多微信支付的库

上图是本项目用到的所有技术栈

但是下载量都很低,所有我选择自己封装微信支付

上图是本项目用到的所有技术栈

我封装了V2和V3两个版本的,那为什么要做两个版本的我也真的是服了

上图是本项目用到的所有技术栈

对接扫码枪只能用V2的版本而且V2的版本还是传输XML格式

上图是本项目用到的所有技术栈

上图是本项目用到的所有技术栈

其实自己搞一搞对微信的加密算法,签名会有很多的思路以后在自己的项目就会思考这些设计方案。

扫码枪方案

扫码枪是通过USB连接在电脑上的,需要客户出示付款码进行支付,但是接收方是App也就是pad上,这怎么玩

所以我的方案是,他正好有一个桌面程序展示菜单的

上图是本项目用到的所有技术栈

所以我在桌面程序监听了扫码枪,然后通过传给了App这样就行了

扫码枪要扫三个东西

小程序的会员码付款码商品码直接扫商品的条码就能新增进去

上图是本项目用到的所有技术栈

小票机对接难度指数()

客户买的小票机无法通过网络编程,也就是直接提供好API就可以调用的那种,他只能通过串口去对接,这就很麻烦了。

我知道Node可以掉串口,node-ffi 技术

经过各种重重难关终于可以打印,但是没有字,不然就是无限切纸,浪费了很多纸,后来放弃了这个方案。

他官方提供了SDK 不过是C#的,没办法自学了C# 也就是 C sharp语言,跟TS类似

发现很简单,非常好用

上图是本项目用到的所有技术栈

上图是本项目用到的所有技术栈

上图是本项目用到的所有技术栈

所以我用C#提供了一个API 给 去调用,只需要把要打印的数据传过来就可以了

但是问题又出现了 C# 的这个服务只能在局域网调用啊,因为小票机要连接他的本地电脑,不可能放到服务器啊,这怎么办???????

如果用户下单的时候用的是流量或者用户在家用小程序预约下单,那就不可能打出票啊,所以我想到了内网穿透技术

自学了FRPC免费的内网穿透技术

上图是本项目用到的所有技术栈

搭建完成还提供一个可视化面板这个就是打印机的内网穿透服务

但是又产生另一个问题,客户不懂技术啊,他每次打开电脑还要执行一下内网穿透的服务启动,他也会觉得烦,并且很麻烦,所以我想着做成开机自启,并且需要有守护进程,断掉了自动帮我重启这个服务,所以我发现了NSSM技术专门搞这种事情的太完美了要什么有什么所以我自学了NSSM做成了开机自启哈哈

上图是本项目用到的所有技术栈

第三个难题,因为他要打三张小票,小票机的服务是我在里面用axios调用的,但是如果两个人或多个人同时下单呢??? 这样打印的票不就乱了吗,第一个用户的接口快打印了一张,然后第二个用户的接口快打印了一张,这样就乱掉了,所哟我接入了消息队列先进先出, 这样的话就会按顺序执行了不会出现用户1用户2同时打印的情况了,并且还解决了微服务通讯的问题

上图是本项目用到的所有技术栈

项目演示

整体UI 都是我自己设计的甲方没有UI 只有一张纸

上图是本项目用到的所有技术栈

我参考了 霸王茶姬 美团 汉堡王 京东 的设计综合起来

上图是本项目用到的所有技术栈

上图是本项目用到的所有技术栈

上图是本项目用到的所有技术栈

上图是本项目用到的所有技术栈

上图是本项目用到的所有技术栈

上图是本项目用到的所有技术栈

店内实物 店长买票邀请我过去品尝,顺便玩了一周

店铺位置 山西省/长治市/潞州区/太行东街2号天空之城西1门北侧

上图是本项目用到的所有技术栈

上图是本项目用到的所有技术栈

加载中~

你可能感兴趣的