从零开始编写会员管理系统

先说说为什么有这个念头要从零开始编写会员管理系统,当你进行维护七八种系统,各自系统上面都有会员,也做过顶层设计,通过各种接口进行连接。就如同手指一样,各自实现的参差不齐。又涉及到多方系统,互相扯皮的事情经常有,接口实现的效果很差。但是多业态会员系统,又没有一家提供完整的解决方案。即使是现在也是,只有PC端,没有手机移动端。即使花几百万上了他们的全面解决方案也是用各种厂商拼凑的,效果一样很差。也就是说酒店业没有一家能够完整提供全面解决方案,即使提供了也是功能薄弱,没有后劲儿。和纯餐饮业没有办法比,餐饮业软件想找全面解决方案很好找到。酒店业,就不点名了。虽然是上市公司,也有很多财力进行收购,但是研发能力确实不够呀。

说是会员管理系统,也可以说不是打着做会员管理系统的方向做的,单独运转肯定无法融入。说白了就是一个结算系统,逐步侵入式实现各种支付结算。也就是不仅仅是会员卡支付了,微信、支付宝、银联、QQ等多种支付渠道进行支付,类似支付网关。同时也要加强与业务系统的联动,最终要替代绝大部分业务系统,从而统一起来。

下面是一些零散的笔记内容了

多业态消费,也需要单独的表单去记录:
如:客房,需要记录房间信息,主要还是主单信息。
温泉,记录门票信息,也是主单信息。
餐饮也一样,都需要记录主单信息。

前期消费上传消费主单截图就好。(强提示进行截图+自动截图)

下一步可以通过会员消费界面进行勾选房间、门票、桌台、零售信息等,但仍然需要在原有结算系统进行操作结算。
会员卡消费界面只是用来结算会员卡内余额,以及计算折扣使用。

最终实现通过会员消费界面可以进行结算客房、餐饮、温泉、零售等业态,然后反写回原有业务系统。

可以通过网页方式,并且通过账号绑定消费点,或者勾选消费点。以及根据消费类型自动勾稽消费点。
如:温泉酒店可能存在餐饮、温泉、客房,三种业态情况,又是在一个地方进行结算,所以需要自动勾稽。

如果使用electron开发的客户端,可以获取PC名称、MAC地址、IP地址等信息。
也就是说会员结算系统需要逐步实现各业态业务系统的功能。不过只是单纯结算并反写回原有业务系统,也无需完整实现业态业务系统。

还是需要使用electron开发的客户端,这样通过内网进行连接业务系统的数据库,不然需要通过WG vpn进行连接数据库。
其他零散业态,在没有业务系统的情况下,可以直接使用会员系统进行结算,同时支持现金结算。

这是一个寄生类系统,前期寄生于sjkl系统、xr、jxd、hq。
然后逐步统一各类业务系统。
现在使用的系统软件有:(这些涉及会员卡结算问题)
酒店类:
sjkl、xr、jxd
票务:
hq、pft
其他:
yz

如果只是单纯的快速扣减卡内余额,这个只需要一个小工具就好,但是为了后期数据分析,这样就需要准确获取主单信息。目前各个业务系统是通过昆仑API进行扣减,并上传消费情况。但很多信息不够完整,需要进行二次通过业务系统进行获取并整理。

实现了会员卡多业态并可以勾选各类主单信息(勾选主单信息就是完整的开发了一个收银系统)
基本上就完成了一期,就是一个典型的寄生系统。

如果向对外开放,就需要继续逐步替代各类业务系统完整功能,包括各类硬件的连接。

技术栈

因属于个人项目,尽量保持单一语言进行开发,且能够兼容web、pc、H5、app

  • 后端:node.js midway.js egg.js mysql sqlite typescript
  • 前端:vue.js element-ui jsx electron-vite vuex vue-router

Typescript的语法和java、php类似。

为毛要用js系列解决方案,首先可以在多种平台运行,最主要是颜值呀。其他编程语言颜值搞起来有点费劲儿。js就随便cv吧。毕竟颜值即正义

https://github.com/cool-team-official

https://admin.cool-js.com/

https://show.cool-admin.com/

  • cool-admin(midway版)一个很酷的后台权限管理框架,模块化、插件化、CRUD极速开发,永久开源免费,基于midway.js 3.x、typescript、typeorm、mysql、jwt、vue3、vite、element-ui等构建。
  • cool-admin一个很酷的后台权限管理框架,模块化、插件化、CRUD极速开发,永久开源免费,基于midway.js 3.0、typeorm、mysql、jwt、element-ui、vuex、vue-router、vue等构建。

image-20230531155338545

下一篇继续研究js系列,至于业务系统账单数据,数据库在本地的可以通过主单单号进行获取。数据库不在的只能通过截图OCR识别了。