程序汪3万10天开发的口罩外包小项目(半外包)
本项目来自程序汪背后的私活小团队,开发了一个口罩项目,给粉丝分享一下解决方案,希望给想接私活的朋友一些经验参考
视频版本 在 B站【我是程序汪】
另一个口罩项目的案例,他是蓝牙直接跟硬件对接,本项目是通过MQTT中转对接硬件
目录
一、项目构成
二、开发人员
三、项目背景
四、小程序端
五、后端系统
最后 源码资料分享
项目构成
系统基本构成:APP内嵌H5+ springBoot后台
阿波罗Apache Apollo (MQTT消息中转站)
vue
mysql
安装命令
开发人员以及费用情况
开发周期10天
开发人数 1人
整体费用是3万(不包含维护费)
走的公司合同
云服务器1台 4核16G配置 数据盘500G
维护费用:项目总款的10% 一年
项目背景
疫情的原因导致口罩需求一直很旺盛,甲方爸爸打算开发一套口罩售卖机器(类似自助售卖机),这种项目其实也不新鲜了,程序汪以前就接到过这种口罩项目,别问我这个项目的意义啊,拿钱干活(程序汪属于干活型),整个口罩项目,我们只做软件部分,硬件和APP部分是另外的团队开发的,这是一个部分外包的项目
核心流程
APP扫自助售卖机二维码 -> 打开H5领取页面 -> 如没有领取记录,则选择领取商品的类型(口罩) -> 后台接收领取请求 -> 发送MQTT请求到服务端 -> MQTT服务端分发请求给售卖机终端 -> 对应售卖机接收请求执行指令(出货)
APP(H5页面)
APP甲方提供了,我们只需要把开发好的H5页面 嵌套到APP里即可,一期功能非常简单,可以免费领取一只口罩
亮点(比较复杂的)
本项目其实是基于电商项目的二开,口罩也是一种商品,下单购买一个典型的购物流程,CRUD的功能我就不废话了,主意是和硬件接口的对接,我们采取的方案是利用Apache Apollo当MQTT的消息中转站
1.Apollo下载
下载地址:http://activemq.apache.org/apollo/download.html
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议
Apollo是一个多协议代理,支持STOMP,AMQP,MQTT,Openwire,SSL和WebSockets。就是在服务器端创建一个唯一订阅号,发送者可以向这个订阅号中发东西,然后接受者(即订阅了这个订阅号的人)都会收到这个订阅号发出来的消息。以此来完成消息的推送。服务器其实是一个消息中转站。
MQTT接口文档说明
MQ 接口说明书
注意接口消息格式都是json
第三种:报文例子
topicName=ZHZN/869300032840849
&message={"c":2,
"f":"SZTEST001",
"t":"869300032840849",
"s":"AD1 23567",
"m":"1","mi":2}
MQTT口罩接口文档,也分享给大家学习参考下(网盘地址)
链接: https://pan.baidu.com/s/1z7H4sRS5ujCo84-j9DZejQ
密码: fshp
硬件部分
硬件部分不是程序汪这边负责的,硬件兄弟负责定制烧录,其实这种自动售卖机有市面上已经很多了。
货道式售货机
后端系统
开源系统上新增了一些CRUD功能
基础对功能都是现成的 比如用户管理 权限 商品 订单等
运营管理
订单管理
设备管理
补货记录
领取记录
设备出库明细
统计报表
商品管理
商品列表
类目管理
用户管理
用户管理
系统管理
系统配置
后台管理用户
角色管理
PC端是参考的这个开源项目
Java版本 unimall 小程序 + App + 公众号H5
这里我把maven配置分享出来
com.squareup.okhttp3
okhttp
3.10.0
com.github.qcloudsms
qcloudsms
1.0.5
com.aliyun
aliyun-java-sdk-core
4.1.1
com.aliyun.oss
aliyun-sdk-oss
2.8.3
com.baomidou
mybatis-plus-boot-starter
3.3.1
com.baomidou
mybatis-plus-annotation
3.3.1
compile
mysql
mysql-connector-java
8.0.15
com.alibaba
druid
1.1.8
org.projectlombok
lombok
1.18.4
provided
com.alibaba
fastjson
1.2.31
com.aliyun.opensearch
aliyun-sdk-opensearch
3.2.0
com.github.binarywang
weixin-java-pay
3.3.0
qrcode-utils
com.github.binarywang
xml-apis
xml-apis
1.4.01
常见的数据库表分享
-- ----------------------------
-- Table structure for hm_user_operate_log_copy
-- ----------------------------
DROP TABLE IF EXISTS `hm_user_operate_log_copy`;
CREATE TABLE `hm_user_operate_log_copy` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) DEFAULT NULL,
`phone` varchar(255) DEFAULT NULL,
`imei` varchar(255) DEFAULT NULL,
`equip_no` varchar(15) DEFAULT NULL,
`type` varchar(20) DEFAULT '' COMMENT '商品的分类,对应分类表',
`receive_type` int(11) DEFAULT '0' COMMENT '0-免费领取、1-积分兑换、2-购买',
`del_status` int(11) DEFAULT '0' COMMENT '0-正常;1-逻辑删除',
`gmt_update` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`gmt_create` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20183 DEFAULT CHARSET=utf8mb4 COMMENT='用户领取记录';
-- ----------------------------
-- Table structure for pay_callback_log
-- ----------------------------
DROP TABLE IF EXISTS `pay_callback_log`;
CREATE TABLE `pay_callback_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`response_body` text,
`gmt_create` datetime DEFAULT NULL,
`gmt_update` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='支付回调日志记录';
-- ----------------------------
-- Table structure for service_apply
-- ----------------------------
DROP TABLE IF EXISTS `service_apply`;
CREATE TABLE `service_apply` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`service_provider` varchar(100) DEFAULT NULL COMMENT '服务商名称',
`phone` varchar(15) DEFAULT NULL COMMENT '联系电话',
`suc_desc` text COMMENT '成功案例描述',
`idcard_front` varchar(1000) DEFAULT NULL COMMENT '身份证正面图片URL',
`idcard_back` varchar(1000) DEFAULT NULL COMMENT '身份证反面图片URL',
`bust_photo` varchar(1000) DEFAULT NULL COMMENT '半身照URL',
`audit_status` varchar(5) DEFAULT '0' COMMENT '审核状态 0-待审核,1-审核通过,2-驳回',
`user_id` bigint(20) DEFAULT NULL,
`open_id` varchar(255) DEFAULT NULL,
`del_status` int(11) DEFAULT '0' COMMENT '0-正常;1-逻辑删除',
`gmt_create` datetime DEFAULT NULL,
`gmt_update` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='服务商申请表';
此项目参考资料:
MQTT https://www.runoob.com/w3cnote/mqtt-intro.html
阿波罗
http://activemq.apache.org/apollo/download.html
Vue
https://cn.vuejs.org/
程序汪个人微信 itwang009 欢迎添加 围观朋友圈或进粉丝群
资源分享
MQTT口罩接口文档,也分享给大家学习参考下(网盘地址)
链接: https://pan.baidu.com/s/1z7H4sRS5ujCo84-j9DZejQ
密码: fshp
PC端的开源项目源码地址
Java版本 unimall 小程序 + App + 公众号H5
点下方原文链接观看B站视频版本