refactor(be): 文章内容从代码里移出,改为直接同步数据库
几百字的正文塞进 Go 源文件,既看不清 diff 也没法在后台改完再同步 回来——内容和代码本来就是两条生命周期。 - 删掉 articles_more.go(16 篇) - seed.go 只保留 seedAdmin,去掉 seedArticles / builtinArticles / backfillArticleContent(后者是给早期无正文文章补内容的一次性逻辑, 已无意义) 数据已经在库里,删代码不影响:预生产 20 篇文章原样在,小程序端照常 读得到。上线时手动同步这张表即可。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,501 +0,0 @@
|
||||
package database
|
||||
|
||||
import "github.com/sundynix/pets-be/internal/model"
|
||||
|
||||
// moreArticles 第二批新手文章。
|
||||
// 与 AI 助手同一套安全护栏:不做诊断、不给具体药物剂量,
|
||||
// 凡是可能延误病情的情况一律写清「什么时候必须去医院」。
|
||||
func moreArticles() []model.Article {
|
||||
return []model.Article{
|
||||
// ── 猫 ──
|
||||
{
|
||||
Icon: "🏠", Title: "新猫到家第一周该怎么过?",
|
||||
Description: "别急着抱、别急着换粮,头七天做对这几件事就够了。",
|
||||
Category: "care", RelatedSheetType: "poop", Published: true,
|
||||
Content: `换环境对猫来说是一次不小的应激。头一周的目标只有一个:让它觉得安全。
|
||||
|
||||
【第 1-2 天:只给一个小空间】
|
||||
· 一个房间就够,里面放好猫砂盆、食盆、水碗和一个能躲的窝或纸箱。
|
||||
· 猫砂盆和食盆分开放,猫不喜欢在吃饭的地方排泄。
|
||||
· 不要把它从躲藏的地方拽出来。它躲是在观察,不是在害怕你。
|
||||
|
||||
【第 3-4 天:让它主动出来】
|
||||
· 你坐在地上、不盯着它看,反而更容易让它靠近。
|
||||
· 用逗猫棒隔着距离玩,别用手直接逗,容易被当成玩具咬。
|
||||
|
||||
【第 5-7 天:逐步开放空间】
|
||||
· 确认它肯吃、肯喝、能正常排泄后再放开其它房间。
|
||||
|
||||
【粮先别换】
|
||||
先用它原来吃的粮。换环境已经够折腾了,再换粮很容易软便。要换也等适应之后按 7 天过渡。
|
||||
|
||||
【什么情况要就医】
|
||||
· 超过 24 小时完全不吃不喝
|
||||
· 软便或腹泻超过 3 天不见好转
|
||||
· 精神明显萎靡、一直躲着不动、呼吸急促
|
||||
这几种情况别再"观察观察",直接去医院。`,
|
||||
},
|
||||
{
|
||||
Icon: "💩", Title: "猫砂盆怎么放,猫才肯好好用?",
|
||||
Description: "乱尿十有八九不是脾气问题,是猫砂盆没配对。",
|
||||
Category: "poop", RelatedSheetType: "poop", Published: true,
|
||||
Content: `猫在盆外排泄,绝大多数时候是在表达"这个盆我不满意"或者身体不舒服,很少是"报复"。
|
||||
|
||||
【数量】
|
||||
经验做法是"猫数 + 1"。一只猫配两个盆,两只猫配三个。
|
||||
|
||||
【位置】
|
||||
· 安静、进出方便、不会被突然惊到的角落。
|
||||
· 别放在洗衣机、垃圾桶旁边,也别放在食盆边上。
|
||||
· 多层住宅每层至少一个。
|
||||
|
||||
【盆本身】
|
||||
· 大小至少是猫身长的 1.5 倍,很多猫不爱用是因为盆太小。
|
||||
· 幼猫和老年猫需要低边的盆,迈不进去它就不用了。
|
||||
· 封闭式猫砂盆气味积聚更快,如果猫开始在外面尿,先试试拿掉盖子。
|
||||
|
||||
【猫砂】
|
||||
· 多数猫偏好细颗粒、无香型的凝结砂。
|
||||
· 换砂要混着慢慢换,直接换一种新砂常引发拒用。
|
||||
· 铺 5-7 厘米厚,太薄猫刨不动。
|
||||
|
||||
【清理】
|
||||
每天至少铲一次。猫的嗅觉比人灵敏得多,你觉得还行的味道对它可能已经难以忍受。
|
||||
|
||||
【先排除疾病】
|
||||
突然开始乱尿、频繁进出猫砂盆却尿不出多少、排尿时叫唤——这些是泌尿道问题的典型表现,尤其公猫可能是尿闭,属于急症。先去医院,不要当成行为问题来纠正。`,
|
||||
},
|
||||
{
|
||||
Icon: "⚠️", Title: "公猫尿闭:24 小时内可能致命",
|
||||
Description: "所有养公猫的人都该知道的一个急症,早一小时都是命。",
|
||||
Category: "symptom", RelatedSheetType: "symptom", Published: true,
|
||||
Content: `这是养猫最需要提前知道的急症之一,尤其是绝育后的公猫。
|
||||
|
||||
【什么是尿闭】
|
||||
尿道被结晶、栓子或炎症堵住,尿排不出去。毒素在体内累积,可以在 24-48 小时内造成肾衰竭甚至死亡。
|
||||
|
||||
【怎么识别】
|
||||
· 频繁进出猫砂盆,蹲很久却只有几滴甚至没有
|
||||
· 排尿时叫唤、显得痛苦
|
||||
· 舔下腹部和生殖器异常频繁
|
||||
· 尿里带血
|
||||
· 后期精神萎靡、呕吐、腹部摸上去发硬发胀
|
||||
|
||||
很多铲屎官会把"频繁进猫砂盆"误认为便秘或拉肚子。区别在于:尿闭时猫是在努力排尿而不是排便,蹲的时间长、姿势紧张。
|
||||
|
||||
【怎么办】
|
||||
立刻去医院,不要等到第二天。这不是可以观察一晚上的情况。
|
||||
路上不要试图挤压它的腹部——膀胱过度充盈时有破裂风险。
|
||||
|
||||
【怎么预防】
|
||||
· 保证饮水量:湿粮、流动水、多点位放水碗都有帮助
|
||||
· 控制体重,肥胖是明确的风险因素
|
||||
· 减少应激,换环境、家里来人都可能诱发
|
||||
· 有过一次发作的猫复发率很高,遵医嘱使用处方粮
|
||||
|
||||
女猫尿道更短更粗,尿闭风险低很多,但也会有泌尿道炎症。`,
|
||||
},
|
||||
{
|
||||
Icon: "📖", Title: "猫一直掉毛、吐毛球,正常吗?",
|
||||
Description: "什么程度算正常,什么时候是身体在报警。",
|
||||
Category: "care", RelatedSheetType: "symptom", Published: true,
|
||||
Content: `【掉毛】
|
||||
猫常年掉毛,春秋换毛季更明显,这是正常的。可以做的是:
|
||||
· 每周梳 2-3 次,短毛猫也需要
|
||||
· 换毛季可以每天梳
|
||||
· 梳下来的毛比吞进肚子里的毛安全得多
|
||||
|
||||
不正常的掉毛长这样:局部秃斑、皮肤发红结痂、掉毛处对称分布、猫频繁舔同一个地方舔到秃。这些指向皮肤病、寄生虫、过敏或压力,需要看医生。
|
||||
|
||||
【毛球】
|
||||
猫理毛时吞进大量被毛,在胃里聚成团。偶尔吐出一条状毛球是正常现象,频率通常是每月一两次。
|
||||
|
||||
需要警惕的是:
|
||||
· 一周吐好几次
|
||||
· 干呕但吐不出东西
|
||||
· 伴随食欲下降、便秘或拉稀
|
||||
· 呕吐物里有血或者呈咖啡渣样
|
||||
|
||||
反复呕吐并不总是毛球,也可能是异物、炎症性肠病、胰腺炎甚至甲亢。频繁呕吐不要默认"又是毛球",把呕吐次数记下来给医生看。
|
||||
|
||||
【怎么减少】
|
||||
· 梳毛是最有效的
|
||||
· 保证饮水和纤维摄入
|
||||
· 化毛膏按产品说明使用,不要长期天天用
|
||||
· 有条件可以种一点猫草
|
||||
|
||||
顺手在 App 里记一条"异常观察",几次之后你自己就能看出规律。`,
|
||||
},
|
||||
{
|
||||
Icon: "🐱", Title: "老年猫的三个早期信号",
|
||||
Description: "7 岁以后,这三件事比食欲变化更早暴露问题。",
|
||||
Category: "symptom", RelatedSheetType: "weight", Published: true,
|
||||
Content: `猫非常擅长掩饰不适,等到"看起来不对劲"往往已经不早了。7 岁以后,盯住下面三项。
|
||||
|
||||
【一、体重】
|
||||
最容易被忽略也最有价值的指标。
|
||||
· 慢性肾病、甲亢、糖尿病、肿瘤,早期几乎都会先反映在体重上
|
||||
· 每两周称一次,用同一个秤
|
||||
· 半年内掉了 10% 以上,即使精神食欲都正常,也该做一次血检
|
||||
|
||||
【二、饮水量和尿量】
|
||||
· 突然变得很爱喝水、猫砂结块明显变大变多,是慢性肾病和糖尿病的典型早期表现
|
||||
· 这个变化常常比食欲下降早出现几个月
|
||||
· 记不住就在 App 里记一笔,一周下来趋势很明显
|
||||
|
||||
【三、活动方式的变化】
|
||||
· 不再跳上以前常待的高处
|
||||
· 理毛变少,毛发变得毛糙打绺
|
||||
· 睡觉姿势变化、不愿被摸后半身
|
||||
这些往往是关节炎,猫的关节炎非常普遍但很少被诊断出来,因为猫不会像狗那样明显跛行。
|
||||
|
||||
【建议的体检节奏】
|
||||
7 岁以上每 6-12 个月一次,项目包含血常规、生化和尿检。尿检很关键,肾病在血检出现异常之前尿液往往已经有变化。
|
||||
|
||||
这些不是要你紧张,而是让你在有选择的时候发现问题。`,
|
||||
},
|
||||
|
||||
// ── 狗 ──
|
||||
{
|
||||
Icon: "🐶", Title: "幼犬社会化:错过就补不回来的窗口",
|
||||
Description: "3-16 周龄决定它一辈子怕不怕人、怕不怕车。",
|
||||
Category: "care", RelatedSheetType: "", Published: true,
|
||||
Content: `幼犬 3-16 周龄是社会化的关键期。这段时间接触过的东西,它长大后大概率能坦然面对;没接触过的,之后要花十倍力气去脱敏,而且未必成功。
|
||||
|
||||
【要接触什么】
|
||||
· 人:不同年龄、性别、穿着(戴帽子的、拿伞的、坐轮椅的)
|
||||
· 声音:吸尘器、门铃、汽车、鞭炮录音(从小音量开始)
|
||||
· 地面:瓷砖、草地、金属格栅、楼梯
|
||||
· 场景:电梯、车里、宠物医院(只是进去待一会儿也算)
|
||||
· 身体接触:摸耳朵、摸爪子、看牙齿——为将来剪指甲和看病打基础
|
||||
|
||||
【疫苗没打全怎么办】
|
||||
这是最现实的矛盾:社会化窗口和免疫窗口重叠。折中做法:
|
||||
· 抱着它出门,不落地
|
||||
· 在自家院子或干净的室内环境接触
|
||||
· 只和确认已免疫、健康的狗接触
|
||||
· 不去公共遛狗区、宠物店、草地
|
||||
|
||||
【关键原则:质量比数量重要】
|
||||
每次接触都要是愉快的。一次被大狗扑倒的经历,可能造成长期的恐惧。观察它的状态:夹尾巴、耳朵后压、想躲,就说明超出承受范围了,退回去、降低强度。
|
||||
|
||||
【常见误区】
|
||||
· "让它自己适应适应就好了"——恐惧不会自愈,只会加深
|
||||
· "多和狗玩就行"——和人、和环境的社会化同样重要
|
||||
· "长大再训"——4 个月以后难度陡增
|
||||
|
||||
这段时间的投入,换来的是之后十几年不用天天和一只怕这怕那的狗较劲。`,
|
||||
},
|
||||
{
|
||||
Icon: "💩", Title: "定点排便训练:两周能学会",
|
||||
Description: "关键不是惩罚,是把成功的次数堆起来。",
|
||||
Category: "poop", RelatedSheetType: "poop", Published: true,
|
||||
Content: `幼犬控制不住是生理限制,不是不听话。月龄数 + 1 大约就是它能憋住的小时数——2 个月的狗大概 3 小时。
|
||||
|
||||
【核心方法】
|
||||
一、掌握时间点。幼犬最容易排泄的时刻是:睡醒后、吃完后 15-30 分钟、玩耍中途、每隔 1-2 小时。
|
||||
二、这几个时间点主动带它去指定位置。
|
||||
三、成功了立刻表扬 + 给零食。要在它排完的 3 秒内,晚了它就不知道你在奖励什么。
|
||||
四、失败了什么都不说,安静清理干净。
|
||||
|
||||
【为什么不能惩罚】
|
||||
事后惩罚它无法把"挨骂"和"几分钟前在客厅尿了"联系起来,只会得出"在主人面前排泄=挨骂"的结论,于是学会躲着你拉——问题从此更难解决。
|
||||
|
||||
【清理很重要】
|
||||
用含酶的清洁剂,普通清洁剂去不掉尿液里的信息素,残留的气味会持续吸引它回到同一个地方。氨水类清洁剂尤其不能用,气味和尿液相似。
|
||||
|
||||
【室内 vs 室外】
|
||||
如果打算最终在室外解决,越早开始越好,中间多一次"从尿垫过渡到室外"的转换会拖长整个周期。疫苗没打全之前可以先在自家院子或阳台固定一处。
|
||||
|
||||
【什么时候该怀疑是身体问题】
|
||||
· 已经学会了又突然频繁失禁
|
||||
· 排尿次数明显增多、每次量很少
|
||||
· 喝水量突然变大
|
||||
这些要去医院查泌尿系统,不是训练问题。`,
|
||||
},
|
||||
{
|
||||
Icon: "📅", Title: "遛狗到底遛多久才够?",
|
||||
Description: "拆家、乱叫、挖沙发,八成是运动量没到。",
|
||||
Category: "care", RelatedSheetType: "", Published: true,
|
||||
Content: `【一个大致的量】
|
||||
成年犬每天 2 次、合计 30-60 分钟是基础线。但品种差异很大:
|
||||
· 边牧、哈士奇、可卡这类工作犬和运动犬,1-2 小时可能还嫌少
|
||||
· 法斗、巴哥这类短鼻犬,反而要控制强度和时长,天热时更要小心
|
||||
· 幼犬遵循"月龄 × 5 分钟"的粗略上限,3 个月大约每次 15 分钟,过量运动伤关节
|
||||
· 老年犬缩短单次时长、增加次数,避免跳跃和长时间爬楼梯
|
||||
|
||||
【时长不是唯一维度】
|
||||
很多狗遛完还是精力过剩,是因为只是"走了一圈"。加进这几样效果完全不同:
|
||||
· 嗅闻:让它自由闻,嗅闻消耗的精力远超同样时间的行走
|
||||
· 训练:路上穿插几次坐下、召回、等待
|
||||
· 变化路线:新环境本身就是消耗
|
||||
|
||||
15 分钟的嗅闻散步,对多数狗比 30 分钟的匀速快走更解乏。
|
||||
|
||||
【什么时候不适合遛】
|
||||
· 地面烫手时——用手背贴地面 5 秒,你觉得烫,它的肉垫也烫
|
||||
· 高温高湿的正午,短鼻犬尤其容易中暑
|
||||
· 疫苗没打全的幼犬不要去公共遛狗区
|
||||
|
||||
【运动量不够的表现】
|
||||
拆家、无目标吠叫、在家里来回踱步、见人过度兴奋扑跳。这些常被当成"性格问题"来纠正,实际上先把运动量补够,一多半会自己消失。`,
|
||||
},
|
||||
{
|
||||
Icon: "📖", Title: "狗狗要刷牙吗?要,而且很关键",
|
||||
Description: "3 岁以上的狗多数已有牙周问题,代价不只是口臭。",
|
||||
Category: "care", RelatedSheetType: "", Published: true,
|
||||
Content: `【为什么必须重视】
|
||||
牙菌斑在 24-72 小时内会矿化成牙结石,刷牙就刷不掉了。牙周病不只是牙齿问题——细菌进入血液会影响心脏、肝脏和肾脏。狗不会喊牙疼,往往是长期忍着。
|
||||
|
||||
【怎么开始】
|
||||
不要一上来就撬开嘴。分几步:
|
||||
一、先用手指蘸一点狗用牙膏让它舔,建立"这是好事"的印象
|
||||
二、用手指隔着纱布轻轻擦外侧牙面,每次几秒
|
||||
三、换成指套刷,再换成软毛牙刷
|
||||
四、重点刷外侧——舌头能处理内侧的一部分
|
||||
|
||||
每次不用久,30 秒到 1 分钟,重要的是频率。每周 2-3 次是底线,能每天最好。
|
||||
|
||||
【一定要用狗专用牙膏】
|
||||
人的牙膏含氟,狗会吞下去,长期有害。有些无糖产品含木糖醇,对狗是剧毒。
|
||||
|
||||
【刷牙之外的辅助】
|
||||
· 洁牙棒、洁齿玩具有一定帮助,但替代不了刷牙
|
||||
· 生骨头风险大(碎骨、崩牙、细菌),不建议自行尝试
|
||||
· 干粮比湿粮略好,但差别没有很多人以为的那么大
|
||||
|
||||
【什么时候需要洗牙】
|
||||
· 明显的黄褐色牙结石
|
||||
· 牙龈红肿、碰一下出血
|
||||
· 持续口臭
|
||||
· 咀嚼时偏向一侧、突然不肯啃硬的东西
|
||||
宠物洗牙需要全身麻醉,所谓"免麻醉洁牙"只能清除肉眼可见的表面结石,龈下部分处理不了,那才是牙周病的重点。`,
|
||||
},
|
||||
{
|
||||
Icon: "⚠️", Title: "夏天中暑、冬天防护,都别大意",
|
||||
Description: "狗的散热方式和人完全不同,中暑死亡率很高。",
|
||||
Category: "symptom", RelatedSheetType: "symptom", Published: true,
|
||||
Content: `【夏天:中暑是真会致命的】
|
||||
狗几乎不靠皮肤排汗,主要靠喘气散热。环境闷热潮湿时这套系统效率极低。
|
||||
|
||||
高风险的情况:
|
||||
· 短鼻犬(法斗、巴哥、斗牛、波士顿㹴)——气道结构决定了散热能力差
|
||||
· 肥胖犬、老年犬、有心肺问题的犬
|
||||
· 密闭车内——哪怕开一条缝、哪怕只有 10 分钟
|
||||
|
||||
中暑的表现:剧烈喘气停不下来、流大量口水、牙龈发红或发紫、走路摇晃、呕吐腹泻、意识不清。
|
||||
|
||||
现场处理:
|
||||
· 立刻转移到阴凉通风处
|
||||
· 用常温水(不是冰水)打湿身体,重点是腹部、腋下、大腿内侧
|
||||
· 对着吹风
|
||||
· 同时联系医院,路上继续降温
|
||||
不要用冰水或冰袋,剧烈降温会导致血管收缩,反而妨碍散热。
|
||||
|
||||
即使现场缓过来了也要就医。中暑可能引发凝血障碍和多器官损伤,症状会延迟出现。
|
||||
|
||||
【冬天】
|
||||
· 短毛犬、小型犬、幼犬和老年犬需要保暖,长毛工作犬通常不用
|
||||
· 融雪剂对肉垫有腐蚀性,回家用温水擦干净爪子
|
||||
· 防冻液有甜味,对犬猫是剧毒,极少量就能致命,车库地面的积液要特别小心
|
||||
· 关节不好的老年犬冬天症状会加重,缩短单次遛狗时长
|
||||
|
||||
【全年】
|
||||
车内、阳台、封闭房间,这三个地方的温度变化都比你以为的快。`,
|
||||
},
|
||||
|
||||
// ── 通用 ──
|
||||
{
|
||||
Icon: "⚖️", Title: "体重怎么称、趋势怎么看?",
|
||||
Description: "单次数字没什么意义,一条曲线能救命。",
|
||||
Category: "weight", RelatedSheetType: "weight", Published: true,
|
||||
Content: `体重是家里能做的成本最低、信息量最大的健康监测。
|
||||
|
||||
【怎么称】
|
||||
· 小型犬猫:抱着一起站上体重秤,再减去你自己的体重。误差有限但足够看趋势
|
||||
· 中大型犬:宠物医院一般都有专用秤,去打疫苗时顺手称
|
||||
· 关键是每次条件一致:同一个秤、大致同一时间(比如都在早餐前)
|
||||
|
||||
【多久称一次】
|
||||
· 幼年期:每周 1-2 次,稳定增长是发育正常的直接证据
|
||||
· 成年期:每月一次
|
||||
· 老年期:每两周一次
|
||||
|
||||
【怎么判断胖瘦】
|
||||
比数字更实用的是体况评分:
|
||||
· 用手轻轻摸肋骨,能清楚摸到、但看不见明显轮廓——标准
|
||||
· 要用力按才摸得到——偏胖
|
||||
· 隔着皮就是骨头、腰部凹陷明显——偏瘦
|
||||
· 从上往下看有腰线,从侧面看腹部上收
|
||||
|
||||
【什么样的变化要在意】
|
||||
· 半年内体重变化超过 10%,无论增减
|
||||
· 吃得不少却在掉秤——查甲亢、糖尿病、寄生虫、肿瘤
|
||||
· 体重不变但腹部变大——可能是腹水或器官肿大
|
||||
|
||||
App 的体重趋势图点任意一个点都能看到当次备注。称完顺手写一句"换粮第三天"或者"最近运动少了",几个月后这些备注比数字本身更有用。`,
|
||||
},
|
||||
{
|
||||
Icon: "🛡️", Title: "驱虫:体内体外分别多久一次?",
|
||||
Description: "只在室内也要驱虫,这是最常见的误解。",
|
||||
Category: "medicine", RelatedSheetType: "medicine", Published: true,
|
||||
Content: `【体内驱虫】
|
||||
· 6 月龄前:每月一次
|
||||
· 6 月龄后:一般每 3 个月一次
|
||||
· 会接触生食、经常外出、家里有小孩的,可能需要更频繁,听医生的
|
||||
|
||||
【体外驱虫(跳蚤、蜱虫、螨虫)】
|
||||
· 通常每月一次
|
||||
· 蜱虫活跃的季节和地区(草地、灌木、郊外)不能省
|
||||
· 狗因为遛弯接触环境多,风险明显高于猫
|
||||
|
||||
【"我家猫从不出门也要驱虫吗"】
|
||||
要。跳蚤卵可以被你的鞋底、裤脚带回家;蚊子能进屋,而蚊子是心丝虫的传播媒介;家里其他宠物出门也会带回来。纯室内猫的驱虫频率可以和医生商量放宽,但不是不做。
|
||||
|
||||
【用药注意】
|
||||
· 剂量按体重,幼小动物必须用对应规格的产品
|
||||
· 犬用产品绝对不能给猫用——某些成分(如高浓度拟除虫菊酯)对猫有致命毒性,这是每年都在发生的事故
|
||||
· 滴剂滴在颈后舔不到的位置,用药后 48 小时内不洗澡
|
||||
· 具体产品和剂量请遵兽医处方,本文不提供用药建议
|
||||
|
||||
【记录很重要】
|
||||
驱虫是典型的"做完就忘"的事。在 App 里设好提醒,用药当天记一笔,下次到期自动提醒你。
|
||||
|
||||
【驱虫后的正常反应】
|
||||
少数动物会有短暂的食欲下降或软便。持续超过 2 天,或出现呕吐、抽搐、皮肤严重红肿,立刻联系医院。`,
|
||||
},
|
||||
{
|
||||
Icon: "💊", Title: "绝育:什么时候做、有什么影响?",
|
||||
Description: "一篇讲清收益、风险和时间点的实用参考。",
|
||||
Category: "care", RelatedSheetType: "", Published: true,
|
||||
Content: `【时间点】
|
||||
· 猫:通常 6-8 月龄,部分医院会更早
|
||||
· 小型犬:6-9 月龄
|
||||
· 大型犬:建议 12-18 月龄,等骨骼发育接近完成——过早绝育与部分大型犬的关节问题和某些肿瘤风险相关
|
||||
具体时间和你的医生商量,品种、体型和个体发育情况都会影响判断。
|
||||
|
||||
【明确的好处】
|
||||
· 母猫母犬:显著降低乳腺肿瘤风险(越早做降低越明显),杜绝子宫蓄脓——后者是中老年未绝育母犬的常见急症,会致命
|
||||
· 公猫:大幅减少喷尿标记、离家出走和打架,降低外伤和传染病风险
|
||||
· 公犬:消除睾丸肿瘤风险,减少前列腺问题
|
||||
|
||||
【要有心理准备的部分】
|
||||
· 代谢率下降,术后食量不调整很容易发胖。这是最普遍的副作用,也是最好控制的——减少 10-20% 的喂食量并保持运动
|
||||
· 极少数母犬可能出现激素相关的尿失禁,可治疗
|
||||
· 手术本身有麻醉风险,虽然在正规医院很低
|
||||
|
||||
【术后护理】
|
||||
· 伊丽莎白圈或术后服要戴满,舔舐是伤口感染和裂开的主要原因
|
||||
· 控制活动量,别让它跳上跳下
|
||||
· 每天看一眼伤口:红肿加重、渗液、有异味要马上回院
|
||||
· 按医嘱复诊拆线
|
||||
|
||||
【不绝育的选择】
|
||||
如果不打算绝育,需要更严格的管理:母猫的发情周期会反复、未生育的母犬子宫蓄脓风险随年龄上升、公犬公猫的走失和打架风险更高。这不是"顺其自然"就能省心的选项。`,
|
||||
},
|
||||
{
|
||||
Icon: "⚠️", Title: "什么情况必须立刻去医院?",
|
||||
Description: "把这张清单存下来,别在慌乱时才判断。",
|
||||
Category: "symptom", RelatedSheetType: "symptom", Published: true,
|
||||
Content: `下面这些情况不要"再观察观察",直接去医院,很多是以小时计的。
|
||||
|
||||
【呼吸和意识】
|
||||
· 呼吸困难:张口呼吸(猫张口呼吸几乎总是急症)、腹部用力起伏、牙龈发白发紫
|
||||
· 昏迷、抽搐、站不起来
|
||||
· 持续超过 2 分钟的抽搐,或短时间内反复抽搐
|
||||
|
||||
【排泄】
|
||||
· 公猫排不出尿(见《公猫尿闭》一文)
|
||||
· 持续呕吐或腹泻超过 24 小时,尤其伴随精神差
|
||||
· 呕吐物或粪便带血、呈黑色柏油样
|
||||
· 干呕但吐不出东西、腹部胀大——大型深胸犬要警惕胃扭转,这是几小时内致命的急症
|
||||
|
||||
【外伤和中毒】
|
||||
· 车祸、高处坠落——即使外表看不出伤也要检查内出血
|
||||
· 误食:巧克力、木糖醇、葡萄葡萄干、洋葱大蒜、百合(对猫致命)、防冻液、老鼠药、人用药物
|
||||
· 误食异物:绳线类尤其危险,猫吞线后不要试图往外拽
|
||||
|
||||
【体温和状态】
|
||||
· 中暑表现(见《夏天中暑》一文)
|
||||
· 体温过低、身体发凉、牙龈苍白
|
||||
· 难产:母犬母猫开始用力超过 30 分钟没有产出
|
||||
|
||||
【眼睛】
|
||||
· 眼球突出、角膜浑浊、眼睛突然睁不开或大量分泌物——眼科问题恶化很快
|
||||
|
||||
【去之前可以做的】
|
||||
· 先打电话,让医院准备
|
||||
· 记下发生时间、可能误食的东西及分量、异常持续多久
|
||||
· 用 App 的"就医前摘要"把体重、疫苗驱虫记录和近期异常一次带齐
|
||||
|
||||
本文只帮你判断"要不要立刻走",具体诊断和处理请交给医生。`,
|
||||
},
|
||||
{
|
||||
Icon: "📄", Title: "去医院前,先准备好这些",
|
||||
Description: "医生问的问题你答得上来,诊断效率完全不同。",
|
||||
Category: "care", RelatedSheetType: "", Published: true,
|
||||
Content: `一次高效的就诊,一半取决于你能提供多少信息。医生看不到过去一周发生了什么,只能靠你说。
|
||||
|
||||
【提前整理好的信息】
|
||||
· 品种、年龄、性别、是否绝育
|
||||
· 当前体重,以及最近的体重变化
|
||||
· 疫苗和驱虫记录:打了什么、什么时候打的
|
||||
· 长期用药:药名、剂量、用了多久
|
||||
· 既往病史和过敏史
|
||||
|
||||
【关于这次异常】
|
||||
· 什么时候开始的(具体到天,能到小时更好)
|
||||
· 频率:一天几次、有没有加重
|
||||
· 有没有诱因:换粮、搬家、家里来人、接触过什么
|
||||
· 食欲、饮水、排便排尿有没有变化
|
||||
· 精神状态和活动量的变化
|
||||
|
||||
【建议带上的东西】
|
||||
· 新鲜粪便样本(怀疑消化道或寄生虫问题时)——装在干净容器里,冷藏可保存几小时
|
||||
· 呕吐物、异常排泄物的照片——比描述准确得多
|
||||
· 视频:抽搐、跛行、异常呼吸这类间歇性症状,到了医院常常"表演不出来",视频是最有力的证据
|
||||
· 之前的化验单和病历
|
||||
|
||||
【携带方式】
|
||||
· 猫必须用航空箱,不要抱着或用牵引绳,医院环境陌生,受惊的猫窜出去很危险
|
||||
· 箱子里铺上它熟悉的毛巾,能减少应激
|
||||
· 盖一块布遮住视线,猫会安定很多
|
||||
|
||||
【在 App 里】
|
||||
"记录 → 摘要"能直接生成一份就医前摘要,把体重趋势、疫苗驱虫记录和近期异常整理成一段文字,出门前截图或复制给医生看。`,
|
||||
},
|
||||
{
|
||||
Icon: "💰", Title: "养一只宠物一年要花多少钱?",
|
||||
Description: "一份可以照着做预算的开销清单。",
|
||||
Category: "cost", RelatedSheetType: "cost", Published: true,
|
||||
Content: `具体金额因城市、品种和消费习惯差异很大,这里给的是结构和相对比例,帮你把预算搭起来。
|
||||
|
||||
【第一年:一次性支出比较集中】
|
||||
· 疫苗:猫三针 + 狂犬,犬 2-3 针联苗 + 狂犬
|
||||
· 驱虫:前 6 个月每月一次,之后每季一次
|
||||
· 绝育:单笔里较大的一项,母比公贵
|
||||
· 装备:猫砂盆、猫爬架、航空箱、牵引绳、食盆水碗、窝
|
||||
· 首次体检
|
||||
|
||||
【每年的固定支出】
|
||||
· 主粮:占日常开销的大头,按体重和品牌差异大
|
||||
· 猫砂(猫):仅次于粮的固定消耗
|
||||
· 驱虫:体内每季一次、体外每月一次
|
||||
· 年度疫苗加强
|
||||
· 零食、玩具、日用消耗品
|
||||
|
||||
【容易被低估的部分】
|
||||
· 医疗:这是方差最大的一项。一次肠胃炎、一次外伤、一次牙科处理,单次就可能超过全年粮费
|
||||
· 老年后的慢病管理:处方粮 + 长期用药 + 定期复查,是持续性支出
|
||||
· 寄养:出差和长假,按天计费
|
||||
· 洗澡美容:长毛犬猫是固定支出
|
||||
|
||||
【建议的做法】
|
||||
一、按月记账。App 的"消费"记录支持按类别统计,月底在成长报告里能看到钱花在了哪里。
|
||||
二、单独留一笔应急医疗金。多数人低估的不是日常开销,而是突发医疗。
|
||||
三、宠物保险可以考虑,但要看清条款:等待期、既往症除外、报销比例和年度上限。
|
||||
|
||||
真正的建议是:在决定养之前,把"一次三五千的突发医疗"当成必然会发生的事来做准备,而不是当成小概率事件。`,
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -8,16 +8,11 @@ import (
|
||||
"github.com/sundynix/pets-be/internal/model"
|
||||
)
|
||||
|
||||
// Seed 初始化种子数据:管理员账号 + 新手文章
|
||||
// Seed 初始化种子数据:只建管理员账号。
|
||||
// 文章这类内容数据不放代码里——正文几百字塞进 Go 源文件,既看不清也
|
||||
// 没法在后台改完再同步回来。上线时直接同步数据库。
|
||||
func Seed(db *gorm.DB, cfg *config.Config) error {
|
||||
if err := seedAdmin(db, cfg); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := seedArticles(db); err != nil {
|
||||
return err
|
||||
}
|
||||
// 早期版本 seed 出来的文章没有正文,这里补上(不覆盖已在后台编辑过的)
|
||||
return backfillArticleContent(db)
|
||||
return seedAdmin(db, cfg)
|
||||
}
|
||||
|
||||
func seedAdmin(db *gorm.DB, cfg *config.Config) error {
|
||||
@@ -38,174 +33,3 @@ func seedAdmin(db *gorm.DB, cfg *config.Config) error {
|
||||
Role: "admin",
|
||||
}).Error
|
||||
}
|
||||
|
||||
// 按标题补齐:库里没有的才插入。这样以后往内置清单里加文章,
|
||||
// 老库启动时也能自动拿到新的,而管理员改过或删掉的不会被复活……
|
||||
// 删掉的会被复活是这个做法的代价,所以只在标题完全不存在时插。
|
||||
func seedArticles(db *gorm.DB) error {
|
||||
all := append(builtinArticles(), moreArticles()...)
|
||||
var titles []string
|
||||
if err := db.Model(&model.Article{}).Pluck("title", &titles).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
exists := make(map[string]bool, len(titles))
|
||||
for _, t := range titles {
|
||||
exists[t] = true
|
||||
}
|
||||
var missing []model.Article
|
||||
for _, a := range all {
|
||||
if !exists[a.Title] {
|
||||
missing = append(missing, a)
|
||||
}
|
||||
}
|
||||
if len(missing) == 0 {
|
||||
return nil
|
||||
}
|
||||
return db.Create(&missing).Error
|
||||
}
|
||||
|
||||
// backfillArticleContent 给早期 seed 出来的空正文文章补内容(按标题匹配,只补空的,不覆盖已编辑过的)
|
||||
func backfillArticleContent(db *gorm.DB) error {
|
||||
for _, a := range builtinArticles() {
|
||||
if err := db.Model(&model.Article{}).
|
||||
Where("title = ? AND (content IS NULL OR content = '')", a.Title).
|
||||
Updates(map[string]any{"content": a.Content, "description": a.Description}).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// builtinArticles 内置新手文章。内容遵循与 AI 助手一致的安全护栏:
|
||||
// 不做诊断、不给药物剂量,异常一律说明何时就医。
|
||||
func builtinArticles() []model.Article {
|
||||
return []model.Article{
|
||||
{
|
||||
Icon: "💉", Title: "幼猫疫苗和驱虫怎么安排?",
|
||||
Description: "疫苗针次、驱虫间隔和常见误区,看完顺手设个提醒。",
|
||||
Category: "vaccine", RelatedSheetType: "vaccine", Published: true,
|
||||
Content: `刚接回家的猫,疫苗和驱虫是最容易漏掉、也最不能漏的两件事。
|
||||
|
||||
【核心疫苗:猫三联】
|
||||
· 一般从 8 周龄左右开始,共打 3 针,每针间隔 3-4 周。
|
||||
· 之后每年加强 1 针。
|
||||
· 狂犬疫苗按当地规定接种,多数地区建议满 3 月龄后接种。
|
||||
|
||||
【接种前后注意】
|
||||
· 只有健康的猫才能打疫苗。有腹泻、打喷嚏、精神差时先缓一缓。
|
||||
· 接种前后一周不要洗澡、不要换粮、不要长途出行,减少应激。
|
||||
· 打完在医院观察 20-30 分钟,回家后再留意 24 小时。
|
||||
· 少数猫会精神略差或轻微发热,通常一两天缓解。
|
||||
|
||||
【驱虫】
|
||||
· 体内驱虫:幼猫期约每月 1 次,成年后每 3 个月 1 次。
|
||||
· 体外驱虫:出门或家里有狗时更要做,按产品说明周期。
|
||||
· 完全室内、不接触其他动物的成年猫可适当拉长间隔,但不要长期不做。
|
||||
|
||||
【常见误区】
|
||||
· 「猫不出门就不用打疫苗」——你的鞋底、衣物都可能带病原回家。
|
||||
· 「三针打完就一劳永逸」——每年仍需加强。
|
||||
· 「驱虫药随便买」——务必按体重选择,剂量以医生或说明书为准。
|
||||
|
||||
【什么时候要去医院】
|
||||
接种后出现持续呕吐、面部肿胀、呼吸急促、精神明显萎靡,请立即就医。
|
||||
|
||||
小程序里可以直接把下一针疫苗和驱虫时间设成提醒,到期会通知你。`,
|
||||
},
|
||||
{
|
||||
Icon: "💩", Title: "猫咪软便要不要去医院?",
|
||||
Description: "先分清程度,学会记录观察,明确什么情况必须就医。",
|
||||
Category: "symptom", RelatedSheetType: "symptom", Published: true,
|
||||
Content: `软便很常见,但「常见」不等于「不用管」。关键是分清程度和持续时间。
|
||||
|
||||
【先看程度】
|
||||
· 成形但偏软、能捡起来:多数是饮食或轻微应激,可以先观察。
|
||||
· 糊状、不成形:需要留意,记录次数和颜色。
|
||||
· 水样、喷射状:脱水风险高,别拖。
|
||||
|
||||
【常见诱因】
|
||||
· 换粮太快(最常见):新旧粮要 7 天以上过渡。
|
||||
· 应激:刚到家、搬家、家里来客人。
|
||||
· 吃多了、吃了人食或零食过量。
|
||||
· 寄生虫:尤其是没做过驱虫的幼猫。
|
||||
· 着凉、毛球、食物不耐受。
|
||||
|
||||
【在家可以做的】
|
||||
· 记录:什么时候开始、一天几次、颜色形状、有没有带血或黏液。
|
||||
· 暂停新食物和零食,回到之前吃惯的粮。
|
||||
· 保证饮水,注意保暖。
|
||||
· 不要自行喂人用止泻药。
|
||||
|
||||
【出现这些情况,尽快就医】
|
||||
· 持续超过 24 小时没有好转;
|
||||
· 便中带血、发黑,或有大量黏液;
|
||||
· 伴随呕吐、不吃不喝、精神明显变差;
|
||||
· 幼猫、老年猫或本身有基础病的猫——它们脱水很快,标准要更严。
|
||||
|
||||
【就医时带上什么】
|
||||
排便照片、开始时间、次数、近期饮食变化、驱虫和疫苗记录。小程序里的「异常观察」可以直接生成一份就医前摘要。
|
||||
|
||||
本文只提供观察思路,不能替代医生诊断。`,
|
||||
},
|
||||
{
|
||||
Icon: "🍽️", Title: "7 天换粮计划怎么做?",
|
||||
Description: "按比例过渡,配合排便记录,把换粮的肠胃风险降到最低。",
|
||||
Category: "food", RelatedSheetType: "applyPlan", Published: true,
|
||||
Content: `直接换粮是软便的头号原因。正确做法是按比例、分阶段过渡。
|
||||
|
||||
【标准 7 天方案】
|
||||
· 第 1-2 天:新粮 25% + 旧粮 75%
|
||||
· 第 3-4 天:新粮 50% + 旧粮 50%
|
||||
· 第 5-6 天:新粮 75% + 旧粮 25%
|
||||
· 第 7 天起:新粮 100%
|
||||
|
||||
肠胃敏感、幼猫或老年猫,把周期拉长到 10-14 天更稳。
|
||||
|
||||
【过渡期要盯什么】
|
||||
· 每天记录排便状态:成形 / 软便 / 拉稀。
|
||||
· 食欲有没有下降,有没有呕吐。
|
||||
· 一旦出现软便:退回上一个比例,稳定 2-3 天再往前推,别硬推。
|
||||
|
||||
【几个细节】
|
||||
· 一次只换一种变量。别同时换粮又换猫砂、又带去洗澡。
|
||||
· 新旧粮要拌匀,不然它会挑出爱吃的。
|
||||
· 换粮期间别加新零食,否则出问题分不清是谁的锅。
|
||||
· 湿粮开封后冷藏并尽快吃完,别放到下一顿还常温摆着。
|
||||
|
||||
【什么时候暂停换粮去看医生】
|
||||
拉稀持续超过 24 小时、便中带血、频繁呕吐或精神变差,先就医,别继续过渡。
|
||||
|
||||
在小程序里每天记一次「饮食」和「便便」,7 天后能直接看到这次换粮顺不顺。`,
|
||||
},
|
||||
{
|
||||
Icon: "💰", Title: "一个月养猫大概花多少钱?",
|
||||
Description: "拆开算固定支出和一次性支出,重点是留出医疗备用金。",
|
||||
Category: "cost", RelatedSheetType: "cost", Published: true,
|
||||
Content: `养猫的花销差异很大,但结构是固定的。看清结构再决定预算。
|
||||
|
||||
【每月固定支出】
|
||||
· 猫粮:口粮占大头,按体重和粮的档次浮动。
|
||||
· 猫砂:用量比想象中大,膨润土和豆腐砂消耗速度不同。
|
||||
· 零食 / 营养品:可选,不是必需。
|
||||
|
||||
【周期性支出】
|
||||
· 驱虫:体内体外,按周期。
|
||||
· 疫苗:幼猫第一年针次多,之后每年一次。
|
||||
· 体检:成年猫每年 1 次,老年猫建议每半年 1 次。
|
||||
|
||||
【一次性支出(第一年)】
|
||||
猫砂盆、猫窝、food/水碗、猫爬架、航空箱、指甲剪、梳子;绝育是第一年最大的一笔。
|
||||
|
||||
【最容易被低估的一项:医疗】
|
||||
真正让预算失控的从来不是猫粮,是突发医疗。常见的口炎、尿闭、异物、肾病,一次就可能超过全年口粮开销。
|
||||
|
||||
建议:单独留一笔医疗备用金,或了解一下宠物医疗保险。这比省几十块钱的粮重要得多。
|
||||
|
||||
【怎么省得聪明】
|
||||
· 该省:花哨玩具、频繁换的网红零食。
|
||||
· 不该省:口粮质量、驱虫疫苗、该做的体检——省这些通常是把钱挪到医疗账单上。
|
||||
|
||||
在小程序里每次消费顺手记一笔,月底就能看到自己的真实结构,比拍脑袋估算准得多。`,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user