2026-09-27 21:52:41
前两天偶然发现,我一直关注的一个博客,连搜索引擎都搜索不到了。我从快 20 年前就开始关注这个博客,没事就看看,Python 编程也是从那里学的。现在居然都没有了踪影。很多大佬的博客也不更新了,即便域名和网站还在,公众号也不怎么更新了。一种莫名的失落感。取而代之的是,大量的 AI 生成内容,看似合理,但毫无灵魂,没有共鸣。
最近几个月,我自己博客更新的也少了很多。似乎没有什么好记录的,大部分知识和代码都能通过 AI 轻松获取到,而且比 99.99% 的人类要整理的好。再去手动整理这些编程技巧,或者知识点,似乎没有了价值。估计也没有人会去看了。所以,索性也就不更新了。同时,博客流量少了,也更加没有动力去更新了。
但是最近一周开始,我又开始强迫自己记录。虽然对其他人来说,没有什么阅读的价值。但是对我而言,记录的过程,其实就是放松的过程。否则,每天就是一个没有灵魂的 AI 操作工,面对无穷无尽流水线上运送过来的需求,一个个解决,看不到尽头在哪里。
敲下每个文字时,感觉自己还活着,不是一个已经麻木的流水线键盘工。
AI 再强大,我觉得自己还是需要一个知识库,把自己感兴趣的,或者重复用到的东西整理成笔记。方便再次用到时,查阅。
也许,哪天自己从地球上消失了,至少还有一个地方能证明我存在过。
2026-09-26 20:04:41
服务器上的运维操作,还是用 Python 实现比较方便,因为可以随意在服务器上修改 Python 脚本,方便调试。
定期将多个网站后台的数据库中的文章表和产品表导出。每个数据库一个文件。
导出到一个临时目录,然后将每个文件生成一个独立的 zip 压缩包。然后移动到指定的目录下。这个目录是 linode bucket 挂载在 linux 系统中的目录。因为导出的数据库文件很大,所以需要生成 zip 压缩包,才移动过来。
请使用 Python 脚本实现(Python 3.12.3),尽量不要依赖三方库。方便我部署在 ubuntu server 服务器上,并且以系统 crontab 计划任务执行,每日凌晨 3 点执行。
是否需要导出,通过判断目标目录下的 export_time.txt 文件,里面列出了每个数据库的最后一次导出时间,如果不存在,则代表需要导出一次。然后把导出时间写入。
判断当前数据库昨日是否有新增的产品或者文章,如果有,则导出全部产品和文章;如果没有,则不需要导出。
在导出之后,在 linode bucket 中,更新文件 export_time.txt 把最近一次的数据库导出时间写进去。每个数据库一个时间。
因为 mysql 是安装在 docker 中,需要使用 docker compose 命令进行导出。示例:
cd /var/docker_compose_xxx
docker compose exec mysql /usr/bin/mysqldump -u root --password=my_password database_name > database_name.sql
列出需求之后,基本 AI 一次性就能把 Python 脚本写好。
一个 3G 的 SQL 数据库文件,zip 压缩后也就 300M,真的厉害,节省了 90% 的数据传输时间。
2026-09-25 08:56:18
二手电子设备发货仓小程序管理后台的报价管理,有个排序功能,但是变更排序时遇到了体验问题。没想到中秋节还没起床,就遇到了新需求。不过看起来确实很合理,有优化的必要。
编辑这个报价管理的时候,新增型号可以中间穿插吗?现在只能在最后一行新增。
目前这里可以通过排序值来设置排序顺序。例如,如果想把新增的调到中间,可以把一些型号的这个排序值调大,把这个新增的排序值调到中间即可。
那个想在中间穿插,可以直接穿插吗?这样改排序值有点太麻烦了。
于是我想,是否可以增加一个在插入的按钮,点击后,选择在上方插入,还是下方插入。插入后,自动更新排序值。
表格加载/保存时会按「型号」聚拢分组(同型号的行相邻、组内按排序值升序)。所以在某个型号的几行中间插入并填入一个全新型号名时,保存后该型号会整体落到这个型号组的后面(型号组不能被拆开)——插在两个型号组之间、或在同一型号内插新容量都不会出现该现象。既然新增的型号会整体落到这个型号组的后面,那我们就把这个型号组的排序值调大,把这个新增的型号组的排序值调到中间即可。
已在后台「报价管理 → 编辑 → 型号规格」表格落地「按钮插入」:
- 每行操作列新增「插入」下拉,可选择「在上方插入」「在下方插入」;只读态与编辑态均可使用,插入后新行自动进入编辑态。
- 插入后按表格当前显示顺序整表重排排序值(步长 100,即 100/200/300…),不再需要手工调排序值。这个非常方便,步长 100 可以方便在同组型号下继续插入同型号产品
- 底部「新增型号规格」按钮行为不变(追加到末尾,排序值取当前最大值 +100)。
- 仅前端改动 frontend/src/pages/Quote/components/SkuForm.tsx,后端与报价列表页未改动。

如果要支持拖拽,就更好了,但是用的是现成组件,不确定改动成本。
先把按钮插入实现,再考虑拖拽。
当前 pro-table 版本无内建拖拽,需额外引入拖拽库。我担心这个报价单过长,即便加入拖拽,操作体验也不一定好。
2026-09-24 18:38:26
之前为了图方便,把 mes 系统的问题反馈功能用飞书多维表格的方式实现。但是遇到了一个问题,虽然多维表格的统计看板能方便的查看统计数据,但是却没有接口可以查询到看板的数据。例如,我想统计总问题数,及已经解决的问题数,然后自动显示在 mes 系统里,目的是让 mes 的使用者知道,开发者还活着,还在继续改 bug。
DeepSeek 的建议是通过 api 拉取所有表格记录,再分析一遍,🥲 这个方案也太粗糙了。折腾了一下午,我想到一个方案,就是新建一个统计表,在这个表里面创建多维表格的公式来统计另一张原始数据表的数据。基于 counta 和 countif 可以实现我的统计需求。然后,再用基础的多维表格查询 api 来拉取这行统计数据就行了。
虽然实现了功能,但是太绕了😵💫。手动写表格公式,效率太低,而且枯燥。但是我也实在想不出什么更好的方案了。感觉还不如当初直接在 mes 系统里自己实现方便,但是飞书的消息推送确实好用,真是鱼与熊掌不可兼得。
另外,没想到这个多维表格的案例也入围了公司内部飞书 ai 先锋的优秀案例。但是感觉有点拿不出手,还不如这两天做的消息卡片效果好(实时更新卡片状态,确实有创意)😂 就这样吧,不能为了炫酷加一些无用的功能,实用最重要。
这两天集中体验了飞书的接口开发,整体上还是很惊艳的,特别是一些审批流程,完全可以用消息卡片实现。甚至能在机器人内部,实现基于对话的工作流。配合工作台,还能吸引一批内部的流量,很是惊喜。要不是微信的基数太大,以后还真可能是飞书的天下。唯一一点不足是,ai 对消息卡片的设计不太在乎,还是要人工去调整布局。
2026-09-23 21:35:33
目前的二手电子设备发货仓小程序,虽然支持分类,但是是写死的列表,只区分了苹果,android 这样的,但是客户的需求更细一些。
管理后台的上货管理,支持分类。例如:
苹果精品、苹果通货、安卓、配件、平板区
麻烦在上一个配件区 能不能分类的更详细一点就像内存一样的分一类区。其实就是支持二级分类。概括一下:

把首页的 N 元机区域,改成一级分类的图标。小程序首页宫格保持原有卡片式排布与圆角、阴影质感,图标改为真实分类图片,加载态、空态、售罄数量展示清晰,点击有按压反馈。此外:
分类页支持一级分类下钻二级分类筛选,二级分类作为筛选条件继续影响品牌/型号列表与商品列表;员工扫码上货页的分类选择同步改为一级、二级联动,与后台归类口径完全一致。

沿用现有技术栈,不引入新框架:
2026-09-21 20:51:50
今天客户提了一个需求,希望能给每个二手设备分配一个唯一的编号,方便后续查询。
想问下,上货管理这边,新增手机商品时,能不能给每台机器分配唯一编号,方便后续查机器。
我不是很理解,直接用 IMEI 查询不可以吗?用数字是否可以,还是必须要用数字和字母混合的形式,长度要比 IMEI 短这种形式吗?
客户说,上架新增机器自动生成编号,编码:前4位当日日期,后4位当日入库序列号,示例09210001。每新增一台,序号自动+1,IMEI 单独保存用于验机查询。
我又不理解了,为啥不加上年份呢?例如:
2609210001
如果第二年同一天有机器上架,也是从 0001 开始吗,还是需要接着去年的顺延序号
客户的回复很有意思:
机器要是一年卖不出去,就赔大发了,老弟
那就按此实现吧。看起来是没法加唯一索引了。
管理后台的上货管理功能,需要增加一个字段,代表每台设备唯一编号。
这个编号,靠后台生成,格式如下:
前4位当日日期,后4位当日入库序列号,示例 09210001。每新增一台,序号自动+1。
不需要唯一索引。同时需要支持搜索查询。
需要给已上架的机器生成唯一编号,日期部分以创建时间为准。在管理后台的上货管理功能,增加一个按钮,点击后,给所有未生成唯一编号的机器,生成唯一编号。
