视频版【我是节目王】。
00-1010 1.项目构成2。开发者3。项目背景4。小程序终端5。后端系统的最后一个源代码数据共享。
项目构成
基本系统构成:原生微信小程序的PC后台硬件。
安装命令
目录
开发周期:60天;开发商数量:2人;总费用:10万元(不含维修费用);华为云服务器维护费用:一年项目总金额的10%。
开发人员以及费用情况
这是一个公益项目,鼓励大家自觉进行垃圾分类。事实上,所有较大的城市都已经对垃圾进行了分类。为了进一步鼓励居民进行垃圾分类,我们项目采用积分奖励制,有点类似银行卡的积分,赚到的积分可以用来购买商品。
对于
项目背景
这样的回收项目,程序王也在github上找到了一波,但是没有找到合适的开源,于是他就去某宝花钱买了一套回收的小程序系统PC端后台(别问我为什么没有从零开始开发出这么搞笑的问题),拿起外包的项目重新开始也比较快。
ta-track="39">
硬件改造(难点)
这块其实是硬件兄弟出的解决方案,去某宝花40元左右买的电子秤,然后自己开发的控制板跟电子秤对接,读取它的具体数据,通过MQTT协议把数据同步到阿里云IOT上,然后通过HTTP2.0把数据同步到Java后端服务
电子秤摆摊商用小型台秤30kg公斤计价称重卖菜精准厨房电子称家用
数据流
程序汪提着1公斤西瓜皮->手机二维码扫->绑定身份信息->打开垃圾桶盖丢到对应垃圾桶内->电子秤返回重量->控制板->阿里云IOT->后端服务->积分增加
消息链路设计的知识
- MQTT 消息传输协议
- 阿里云IOT
- http2.0
MQTT消息传输协议
MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于此:
- 网络代价昂贵,带宽低、不可靠。
- 在嵌入设备中运行,处理器和内存资源有限。
采用springboot实现http2.0
1、java的配置tomcat实现http2.0。
2、http2.0升级协议添加到Tomcat的连接器。您可以通过自定义嵌入式Tomcat容器来实现。
文章最下方有参考资料,大家可以具体看看用springboot怎么实现http2.0
@Beanpublic EmbeddedServletContainerCustomizer tomcatCustomizer() { return (container) -> { if (container instanceof TomcatEmbeddedServletContainerFactory) { ((TomcatEmbeddedServletContainerFactory) container) .addConnectorCustomizers((connector) -> { connector.addUpgradeProtocol(new Http2Protocol()); }); } };}
下图是测试机,电子秤已经被硬件小哥大卸八块了
这是部分硬件负责通讯,太细节到原理程序汪也不会分析来
后端系统
PC端后台主要是这些功能
DB的设计我分享一个订单表出
支持以下语言种类:
-- ------------------------------ Table structure for ims_cjdc_order-- ----------------------------DROP TABLE IF EXISTS `ims_cjdc_order`;CREATE TABLE `ims_cjdc_order` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL COMMENT '用户id', `order_num` varchar(20) NOT NULL COMMENT '订单号', `state` int(11) NOT NULL COMMENT '1.待付款2.待结单3.等待送达4.完成5.已评价6.取消7.拒绝8.退款中9.已退款10.退款拒绝', `time` varchar(20) NOT NULL COMMENT '下单时间', `pay_time` varchar(20) NOT NULL COMMENT '支付时间', `jd_time` varchar(20) NOT NULL COMMENT '接单时间', `cancel_time` varchar(20) NOT NULL COMMENT '取消时间', `complete_time` varchar(20) NOT NULL COMMENT '完成时间', `money` decimal(10,2) NOT NULL COMMENT '付款金额', `box_money` decimal(10,2) NOT NULL COMMENT '餐盒费', `ps_money` decimal(10,2) NOT NULL COMMENT '配送费', `mj_money` decimal(10,2) NOT NULL COMMENT '满减优惠', `xyh_money` decimal(10,2) NOT NULL COMMENT '新用户立减', `tel` varchar(20) NOT NULL COMMENT '电话', `name` varchar(20) NOT NULL COMMENT '姓名', `address` varchar(200) NOT NULL COMMENT '地址', `type` int(11) NOT NULL COMMENT '1.外卖2.店内3.预定4.当面付', `store_id` int(11) NOT NULL COMMENT '商家id', `note` varchar(50) NOT NULL COMMENT '备注', `jj_note` varchar(50) NOT NULL COMMENT '拒绝理由', `area` varchar(20) NOT NULL COMMENT '区域', `lat` varchar(20) NOT NULL COMMENT '经度', `lng` varchar(20) NOT NULL COMMENT '纬度', `del` int(11) NOT NULL DEFAULT '2' COMMENT '1.删除 2.未删除', `pay_type` int(11) NOT NULL COMMENT '1.微信支付2.余额支付3.积分支付4.货到付款', `form_id` varchar(50) NOT NULL COMMENT '模板消息form_id', `form_id2` varchar(50) NOT NULL COMMENT '发货formid', `code` varchar(100) NOT NULL COMMENT '支付code', `order_type` int(11) NOT NULL COMMENT '1.配送2.到店自取', `delivery_time` varchar(20) NOT NULL COMMENT '送达时间', `sex` int(11) NOT NULL, `discount` decimal(10,2) NOT NULL, `tableware` int(11) NOT NULL COMMENT '餐具', `dd_info` text NOT NULL COMMENT '达达信息', `uniacid` int(11) NOT NULL, `yhq_money` decimal(10,2) NOT NULL, `coupon_id` int(11) NOT NULL, `yhq_money2` decimal(10,2) NOT NULL, `coupon_id2` int(11) NOT NULL, `table_id` int(11) NOT NULL, `dn_state` int(11) NOT NULL, `dm_state` int(4) NOT NULL, `yy_state` int(11) NOT NULL, `deposit` decimal(10,2) NOT NULL, `ship_id` varchar(30) NOT NULL, `zk_money` decimal(10,2) NOT NULL, `is_dd` int(11) NOT NULL DEFAULT '2', `pt_info` text NOT NULL, `kfw_info` text NOT NULL, `hb_type` int(4) NOT NULL DEFAULT '1', `original_money` decimal(10,2) NOT NULL, `oid` int(11) NOT NULL, `sss_peisong_id` varchar(32) NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `store_id` (`store_id`), KEY `state` (`state`), KEY `order_type` (`order_type`), KEY `uniacid` (`uniacid`), KEY `user_id_2` (`user_id`), KEY `store_id_2` (`store_id`), KEY `state_2` (`state`), KEY `order_type_2` (`order_type`), KEY `uniacid_2` (`uniacid`), KEY `user_id_3` (`user_id`), KEY `store_id_3` (`store_id`), KEY `state_3` (`state`), KEY `order_type_3` (`order_type`), KEY `uniacid_3` (`uniacid`), KEY `user_id_4` (`user_id`), KEY `store_id_4` (`store_id`), KEY `state_4` (`state`), KEY `order_type_4` (`order_type`), KEY `uniacid_4` (`uniacid`), KEY `user_id_5` (`user_id`), KEY `store_id_5` (`store_id`), KEY `state_5` (`state`), KEY `order_type_5` (`order_type`), KEY `uniacid_5` (`uniacid`)) ENGINE=InnoDB AUTO_INCREMENT=90 DEFAULT CHARSET=utf8;
如果想要更换代码主题,可在上方挑选,不支持代码主题自定义。
小程序源码和后端SQL分享给大家参考学习下
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50989.html