MoreRSS

site iconSunZhongWei | 孙仲维 修改

博客名「大象笔记」,全干程序员一名,曾在金山,DNSPod,腾讯云,常驻烟台。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

SunZhongWei | 孙仲维 的 RSS 预览

七牛 CDN 域名免费证书续费报错:[400600] 前置订单未完成,请稍后重试

2026-06-19 22:51:07

今天在进行七牛 CDN 域名免费 SSL 证书续期时,发现不能直接续费了。会报错:

[400600] 前置订单未完成,请稍后重试

这个提示也太抽象了,咱能做个正常点的提示吗?

看了一下文档:

https://developer.qiniu.com/fusion/3905/ssl-certificate-faq

Q8: 免费证书到期后,续费报错:[400600] 前置订单未完成,请稍后重试点击查看 ,如何处理?

免费证书到期后,不需要续费,您重新申请购买新的免费证书即可。

Q7: 证书到期了可以自动续费吗?

证书到期现在不支持自动续费,需要重新购买新的证书,完成验证,证书签发后部署到CDN进行替换即可。

真是折腾,操作越来越麻烦。只能新建一个免费的证书了。

入职轮胎厂的培训周,day 3

2026-06-18 07:06:55

入厂培训的第三日,主要学习了厂规厂纪,及安全生产相关的规范。确实做的比较细致,而且各种真实案例。看来平时总结到位,且每次事故都有复盘和原因分析,这个难能可贵。至少比上家公司天天鼓吹自己管理先进,实则从来没有深入一线进行经验总结,都是假大空的战略规划。

每堂课都有一张笔答的试卷。这个形式很有效,可以避免培训课程变成走过场,而且手写一遍会加深记忆。类似于我记录笔记的过程。最后答完试题后,每张试题我都拍照留念,以备后续复习😅。

员工手册翻了一遍,学到了不少。

PCR 与 TBR

在轮胎行业,PCR 和 TBR 是两种最重要的轮胎分类,分别代表乘用车轮胎和商用车轮胎。

  • PCR (Passenger Car Radial):乘用子午线轮胎。主要用于轿车、SUV、MPV等。特点是舒适静音、燃油经济性好,通常为半钢结构(胎体有钢丝带束层,胎帘是纤维)。
  • TBR (Truck and Bus Radial):卡客车子午线轮胎。主要用于卡车、客车等重型商用车辆。特点是承载能力强、坚固耐用,通常为全钢结构(胎体和带束层均为钢丝)。

radial 是什么意思

在轮胎术语中,Radial(子午线)指的是一种轮胎内部帘布层的结构方式。你可以把它理解为轮胎的“骨架”排列技术。

  • 结构特点(像地球经线):帘布层的帘线从轮胎一侧胎圈笔直地延伸到另一侧胎圈,方向与胎面中心线呈90度排列。这就像地球的子午线(经线),因此得名。
  • 关键支撑(加“腰带”):因为帘线是竖着的,胎面容易变形,所以会在胎面下方紧紧包裹上几层高强度钢丝带束层(像腰带一样箍住),保证胎面平整。

相比老式的“斜交轮胎(Bias)”:

  • 更耐用:高速行驶时发热小,不易爆胎,寿命更长。
  • 更省油:胎面接地更平稳,滚动阻力小。
  • 更舒适:胎壁相对柔软,能缓冲路面颠簸。

比如轮胎规格 205/55R16 里的“R”,就是指这条轮胎是“子午线结构”。现在市面上98%以上的轿车和卡车轮胎都是这种结构。😊

BPM

BPM 指的是 Business Process Management(业务流程管理)。

简单来说,它是一套软件系统,专门用来把公司的各种审批(如请假、报销、采购)搬到线上,实现自动化流转。你可以把它想象成一个“数字交通指挥官”:

  • 画流程:管理员在系统里画好流程图(如:员工申请 → 主管审批 → 财务打款)。
  • 自动推:申请人提交后,系统会自动把待办任务推送到当前审批人的账号或App上。
  • 防遗漏:如果审批人忘了处理,系统会自动发出催办提醒;遇上紧急情况,还能一键“转交”或“加签”。
  • 留痕迹:所有审批步骤、操作时间和修改记录都会被完整保存,方便事后追溯。

市面上常见的钉钉审批、企业微信等,底层核心都是BPM引擎在工作。

入职轮胎厂的培训周,翌日

2026-06-17 06:40:25

又填写了一版在线版的个人信息,这个微信小程序做的一言难尽。可能是为了省文件存储成本,上传文件必须通过微信文件助手转存一下😅,而且毕业证还需要 pdf 版本,二次打开信息就消失了。猜测是提交后,没有服务端缓存信息,直接转发给飞书之类的多维表格接口了。其实这里可以做一下小程序本地缓存,或者服务端以身份证为唯一标识缓存信息。体验就能好很多。图片转 pdf 也没有引导提示,很多年纪大的完全没有概念。我都差点被 wps 诱导开会员,其实使用在线工具就能免费将图片转为 pdf。

培训正式开始,一听要考试,还要 80 分及格。而且是每堂课都有一张独立的考卷🥲 我就不敢懈怠了,一边听一边答题,回到了上学时边听课边赶作业的状态。

下午的保险课程就太枯燥了,困得睁不开眼。但是社保和医保的培训倒是学到不少东西。
一是社保的跨省转移年龄限制问题,二是医保的报销规则。由于我户口不在省内,我之前还不知道跨省转移有 50岁的年龄限制。回头得抓紧办理一下转移。

这个课结束后,咨询的人最多。估计培训的目的也是减轻平时的人事咨询压力,每月发工作时,扣除保险金额估计很多新人和上年纪的人不理解。确实一个两万人的公司,有1%的人有疑问,也是很大的回复工作量。

两个小程序

培训填表期间用到了两个小程序

  • 二寸照片生成。培训老师还挺贴心,逐步指导如何操作,甚至怎么关闭广告。怪不得这周小程序用户量这么大。
  • BMI小程序。我之前写过一个BMI的小程序计算功能,我一直不太理解为何有人会主动查这个,这次培训才知道原来入职体检要判断 BMI 是否超标。

自动化在轮胎行业的必要性

人力成本越来越高,加之上游车厂的压价,只能通过自动化来降低成本。看来我还是能做出贡献的。另外听说内部系统要换成飞书,这个非常棒,说明决策层有懂行的。

入职轮胎厂的培训周,首日

2026-06-16 08:17:34

早上五点就起床洗漱,六点搭顺风车到了招远总部招工培训中心,耗时大概一个半小时。巨大的烟囱,很强的视觉震撼,感觉更像一座发电厂。

由于早到了半小时,只能在冷风中哆嗦,这里体感温度比开发区要低。看到有几位大哥进去了,我也跟着进了招工报道处,有点像人力资源公司的小门头😅。提交了一堆材料,再次填写个人信息表,这里的体验可以优化,毕竟面试时已经填写过一份了,要是做成在线录入就能节省大量时间。

然后就去附近的医院做入职体检。同行的刚毕业小哥估计没有经验,忘了带体检支付凭证,又赶回报到处领取。比较有趣的一条是 BMI 肥胖指数超标的算作体检不合格,看来减肥是一项长期的任务。

搞定体检就办理入住宿舍了。宿舍跟上大学时的八人宿舍有的一拼。不过倒是挺干净的,还有独立的卫生间,可以洗浴,超出预期。还领了个带公司 logo 的洗脸盆,要是换成大桶就好了,提桶进厂。

中午没啥事,就去办理建行的工资卡,及购买洗漱用品之类。我原来有张建行的储蓄卡,没想到在 app 上看已经 23 年过期了,我还是第一次知道银行卡还能过期。不过过期了并不影响线上支付,只是不能使用 ATM 取钱。换卡还得线下网点取卡,需要等两周左右。于是换了家附近的网点线上预约。而同行的刚毕业小伙由于没有公司的办理名单通知,导致银行无法办理一类卡,只能办理日限额很低的二类卡,所以作罢,等通知了。我印象中自己毕业时,工资卡都是公司代办理的,不需要自己本人去银行。问了一下大堂经理,确实如此,现在管的严格了,必须本人到网点现场办理,不允许代持身份证开卡了。奇怪的知识又增加了。

离开银行,又去胶东知名超市家家悦买了一堆洗漱用品。本来为了给背包减重,啥也没带,现在看还是不妥。牙膏还是提前买好旅行装比较省事。

然后下午回宿舍宅了一下午,几个人默默地刷了一下午手机🥱后悔没有带电脑。出发前担心宿舍不安全,就没带。不过,也确实不太安全,因为宿舍门没办法锁上,大家都没有钥匙。

晚上太无聊,不到九点就睡了。睡眠质量还可以,就是翻身时,床板嘎嘎响,搞得我不好意思频繁翻身。不到五点就起床了。一直惦记着周末服务器上没有跑完的程序😂

中年失业,最近两周在烟台找软件开发工作有感

2026-06-13 11:00:38

非常意外上了公司裁员名单,然后历经内部子公司转岗失败(薪资砍一半无法接受)。顿时有点慌,毕竟之前都两份工作都是别人主动找我,无缝衔接。还是第一次遇到被裁员,异常被动。

在跟人事明确了离职之后,我就开始投简历了。历时两周,实际大概一周时间,面了六家,拿到4个offer,一个是发挥太随意,也没准备,大概是挂了。虽然结果比预期的顺利,也没想到40多岁还能找到开发的工作。但是,过程还是很坎坷。期间心态还有点崩,焦虑异常,凌晨三四点就醒了。收获也颇多,所以记录一下,作为打工人的下半场参考。

面试过程也是学习的过程

由于烟台招聘 golang 开发的岗位非常少,唯一一家在开发区的 golang 岗位还是杭州远程面试,我感觉自己只要是远程面试,就容易紧张,不如现场发挥稳定。加之好多年没面试了,一些问题虽然解决过,但是回答的并不是面试官关注的,面试官态度也比较恶劣,也许是传说中的压力面试吧,总之挂了。后面我就开始投开发区 Android 和 mes 开发的岗位,没想到转投这两个方向之后,成功率奇高。这两个方向虽然不如 golang 熟悉,但是好在在之前做不少相关项目,看来工作中多挑战还是有好处的。而且面试中,及准备面试中,也学到了很多其他公司的技术方案及技术选型,技术应用场景。收获颇多。还因此认识了多位大佬,面试之后耶保持着联系,即便没有入职,还是有合作的机会。

每年定期面试,发现新机会

这次给我的体会是,即便不准备换工作,也要经常关注一下招聘信息,了解现实中的岗位需求,及应用场景和方向。不但可以学习到具体业务中使用的技术选型,也能降低被裁员时的慌乱,毕竟很多时候适合你的岗位,并不会在你离职时才会招人。很多时候还是要主动发现。

可以提前面试

从收到裁员消息,到开始走离职流程,大概历时一个多月。由于公司请假流程繁琐,需要三层审批,请假异常麻烦,我担心由于流程审批没完成,就去面试,容易变成旷工,连打折的裁员补偿都拿不到,所以就没有频繁出去面试。这个实际是我多虑了。该请假还是要请假,毕竟这么多年假。否则等到离职后再去面试,漫长的等待过程容易让你心态失衡。有一个非常合适的岗位,我感觉非常稳了,但是依旧面试了七轮。耗时一个多周,最终还是因为单休,加没有年假没去。即便薪资高点还是感觉会扛不住。

入职

不上班的这两周还是感觉无法适应,即便在家期间也是在写代码,甚至解决前公司的问题,可是没有任何成就感。好在下周一就入职了,终于可以结束这荒诞的失业状态。

感谢

最后还得感谢前同事,在离职前的一周没想到恰巧收到了前同事的邀请,想内推我去他们公司,而且那个公司居然有四位前同事,其他人也建议我过去😏。虽然考虑再三没有去面试,还是得感谢前同事,本来想这周当面吃个饭感谢一下,没想到前同事出差了,再约吧。同时,我还厚脸皮的找了另一位前同事,大概意思就是,如果投一轮没有合适工作就先去大佬那边苟着,没想到大佬也同意了,总之给了我莫大的信心。虽然都没有去成,还是感谢各位前同事的热心帮助。

基于 CRM 实现外贸站的在线客服组件

2026-06-08 17:32:17

需求

实现一个外贸网站的在线客服功能,访客可以通过网站右下角的在线聊天窗口与客服人员进行沟通。
这里使用的是 Whatsapp 作为在线客服的工具,客服人员通过 whatsapp 与访客进行沟通。

Whatsapp 客服账号清单从 CRM 用户表中获取,用户表需要增加 whatsapp 相关字段,包括 whatsapp 账号、whatsapp 头像、客服在线状态、客服显示顺序等字段。账号管理部分已实现,只需要从数据库中获取这些信息,并在前端展示出来即可。

当前后台只负责管理 whatsapp 客服账号的信息,具体的前端组件,其他域名的网站可以通过引入这个组件的 js 文件来使用这个在线客服功能。

本地调试

实现一个 html 的测试页面,放在 public/whatsapp_test.html,页面中引入在线客服组件的 js 文件,测试在线客服功能是否正常工作。

目前返回的 whatsapp avatar 头像链接是 /api/public/uploads/avatar.jpg 这样的格式。
判断,如果是 debug 模式,就把这个链接替换成 http://localhost:9031/api/public/uploads/avatar.jpg 这样的格式,如果是非 debug 模式,则返回 https://www.sunzhongwei.com/api/public/uploads/avatar.jpg 这样的格式。

测试点

  • 默认头像设置
  • 职位显示是否正确。如果后台未设置职位,前端显示默认值“Sales Representative”
    • 用户增加一个新字段职位
    • 后台可以编辑这个字段,前端显示这个字段的值
  • 前端的 PersonalInfo 页面,及用户编辑界面都需要岗位字段
  • 多账号时,插件是否限高
  • 排序是否正确
  • 离线账号是否不显示
  • 先更新一个网站,方便测试 whatsapp 的账号设置是否正确。通过数据库直接修改

CORS 的作用

r.Use(Cors()) gin 这行代码的作用,为 Gin 服务注册一个处理跨域资源共享(CORS)的中间件,从而让部署在其他域名的前端应用可以正常请求你的 API。

引入客服组件

<script src="http://localhost:9031/api/public/js/whatsapp-widget.js?v=2"></script>
<script src="https://www.sunzhongwei.com/api/public/js/whatsapp-widget.js?v=2"></script>