康付健康

我要开发同款
新大梦想家2023年02月07日
336阅读
所属分类备忘录提醒、资讯、会员、社区

作品详情

描述:在线购药平台,载体app、小程序搜索药康付、公众号搜索药康付。系统从0-1在项目中我作为核心功能的开发人员参与全程开发独立设计了相关功能的表结构、功能实现,主要负责的功能有福利资讯、社区(患者交流)、药品福利(享有优惠折扣)、会员加购、基础数据配置以及相关功能的管理后台。
技术:springcloud(zuul、feign、hystrix、nacos、eureka前期使用)、redis、rocketmq、xxl-job、nginx、iview、elk、go、pulsar
工具:idea、navicat、git、Jenkins、xshell、Win10 Ubuntu子系统、
内容:(1)独立设计实现福利咨询功能(类似新闻列表)、其中包含点赞和浏览量功能,并采用行锁解决并发访问接口时,点赞数和浏览量修改丢失问题。采用redis增量记录每个用户一天浏览量只能记录十次。实现更具人性化的查询筛选展示先展示置顶资讯、再展示14天内用户喜欢关注的资讯。

    (2)设计社区模块表结构涉及帖子(病友圈、话题圈、我的发布)、评论(采用类似树形结果的表结构设计每行记录包含自身id以及父级评论id)、话题(类似微博超话)及其实现、点赞采用行所解决并发请求时丢失问题。对于用户发布的帖子会被评论、点赞,评论被回复、删除会有对应的动态(类似微信朋友圈),考虑到这几个操作对应的接口调用量会比较大采用了rocketmq消息中间件做异步处理

(3)会员加购订单,购买会员后可以加购保险单,下单时候通过setnx解决下单重复问题,通过pulsar异步处理过程中会调用保司投保接口,在消息发送mq前对消息设置了自定义的msgid,采用了雪花算法生成,在消息处理时考虑幂等性通过redis缓存对应的每条消息的msgid,在消费时判断对应的msgid是否已存在、若不存在再从数据库对应的消息时间表查,还不存在就录入动态消息,采用默认消息重发次数,结合消息可能在发送前broke异常、消费时异常导致消息未成功消费记录消息事件表,采用了xxl-job定时轮训,超过失败次数进行人工干预,后台根据时间表记录的请求记录,可以人为操作继续生成加购订单、处理投保失败加购单。

(4)采用了redis的分布式锁setnx来处理每天同个帖子每个用户的uv只统计一次

(5)实现了为了增加用户的体验度、在展示对应的药品福利列表时对药品对应的福利列表采用redis的hset结构作为缓存,直接采用缓存读取。

(6)采用了nacos的动态配置处理了诸如社区动态的生产消费者名称、社区动态app推送开关设置等

(7)实现了对应的系统阈值参数处理类通过继承ApplicationRunner、在初始化时将对应的数据库初始值写入redis的缓存、在话题数量上限值时有通过获取对应值控制话题显示数。

(8)敏感词过滤采用了百度的接口由于之前是采用试用账号消息次数满了不能调用服务,采用了hystix熔断降级后对内容做本地敏感词处理避免系统直接提示报错。

(9)通过go语言的gin框架实现药品信息接口,实现ocr识别接口可以根据上传的证件识别内容、人脸识别动态验真接口,通过feign组件实现异构接口调用,保证接口并发度。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论