一、业务和功能介绍
立项背景与目标
在数字化办公与社交商务深度融合的今天,传统纸质名片成本高、信息单一、管理困难,且难以追踪传播效果。企业亟需一套既能彰显个人品牌,又能统一企业形象的数字化解决方案。本项目旨在开发一套“智能数字名片”系统,包含微信小程序端与后台管理端。目标是为企业提供一个从“公司-部门-员工”多层级管理,到“名片-模版-数据”全链路闭环的工具,实现名片的高效分发、个性化定制与数据洞察,助力企业提升商务连接效率与品牌一致性。
核心功能模块
后台管理系统(Web端):支持公司、部门、企业架构管理;提供名片模版库(颜色、版式、信息字段可配);支持对员工名片的生成、审核、上下架操作;集成数据看板,展示名片的访问、转发、保存等行为数据。
小程序端:员工一键领取/激活企业分配的名片,支持基于模版的私人定制(更换头像、背景、个性签名等)。名片展示包含电话、微信、公司官网等入口,支持一键保存至手机通讯录、微信分享、生成海报。访客可收藏、留言或发起会话。
业务流程与功能路径
企业管理员登录后台 → 创建公司及部门结构 → 设计或选用名片模版 → 批量或单个为员工生成数字名片。员工登录小程序 → 获取分配的名片 → 进入“个性化定制”调整个人元素 → 保存并发布。员工对外分享名片(微信/海报)→ 访客扫码或点击进入 → 浏览名片信息、保存联系人、留言 → 数据实时回传后台 → 管理员查看分析报表。
二、项目实现文案
1. 整体架构与设计思路
采用前后端分离架构。前端:小程序端使用uni-app (Vue.js),实现跨平台;后台管理端使用Vue3 + Element Plus,负责复杂交互与数据可视化。后端基于NestJS构建模块化服务,使用MySQL存储企业架构、用户、名片模版等结构化数据,使用Redis缓存热点数据(如名片访问量、会话状态)及实现分布式锁。文件存储(头像、背景图)采用云对象存储。核心思路:以“租户(公司)”隔离数据,通过RBAC控制权限;名片生成采用“基础模版+个性化覆盖”模式,减少冗余。
2. “我”的负责模块与量化结果
我负责后端名片核心模块与小程序端定制交互的开发。具体成果:
设计并实现了支持动态表单的名片模版引擎,使后台可配置超过15种信息字段,模版复用率提升70%。
开发了名片数据追踪接口,记录每一次访问、转发行为,日均处理请求峰值约2万次,响应时间控制在200ms以内。
实现了基于Redis的每日访问量统计与热门名片排行榜,缓存命中率达92%。
小程序端完成了10个定制化交互组件,用户修改名片样式(主题、头像、签名)的操作路径从5步缩短至3步,定制完成率提高40%。
3. 遇到的难点、坑与解决方案
难点一:个性化定制与模版更新的冲突。当管理员在后台更新了某个模版的公共样式(如企业Logo),已基于旧模版定制过的员工名片需要同步还是保留?直接覆盖会丢失员工个性设置,不同步则导致品牌不统一。
解决方案:引入“样式版本控制与继承策略”。名片存储采用 templateId + overrideConfig 结构。管理员更新模版时,生成新版本号。员工名片可选择“跟随模版更新”(重置个性部分)或“保留个性覆盖”。后台提供“批量通知”功能,由员工自主决定是否同步。代码上,通过深度合并算法(lodash.merge)处理默认样式与个性配置。
难点二:高并发下名片码生成与短链的唯一性。在企业批量导入员工时,需快速生成唯一且不重复的名片码(短链)。若使用数据库自增ID + 哈希,并发下可能出现重复或性能瓶颈。
解决方案:采用Redis原子自增生成全局唯一数字ID,再通过自定义Base62编码转换为6位短码。同时利用Redis的SET NX做短码唯一性校验,如果碰撞则递归+1重试(概率极低)。此方案单机可支持每秒5000+的生成速度,避免了数据库锁竞争。同时将短码与名片信息的映射缓存在Redis中,访问时先读缓存,极大提升了扫码跳转性能。