开发实例丨仅需5分钟,解决电商开发大问题,速来学习!
时间:2023-05-26 23:27:01 | 来源:网站运营
时间:2023-05-26 23:27:01 来源:网站运营
开发实例丨仅需5分钟,解决电商开发大问题,速来学习!:
01实例介绍
日常生活中,我们经常需要使用到电商平台,例如淘宝、京东、拼多多等,在这些交易场景下的订单一般会设置一个支付时间,若超过这个支付时间,该订单将会自动取消并删除(或订单状态变为已过期)。
超时订单,一般情况下需要手动删除,既费时间,又费人力,更甚者还会影响业务成交,尤其是在重大活动的时候,订单超时自动删除功能的重要性则被体现的淋漓尽致。
本节实例,我们将使用飞算SoFlu软件机器人的全自动开发平台实现订单超时自动删除功能。相对于传统开发,利用全自动开发平台可视化开发模式,将功能的实现逻辑在流程图中展示,开发过程变得更加简洁。
02效果展示
在全自动开发平台中,执行“订单超时自动删除”定时任务,系统将弹出调用成功的详情页面,其中data输出“0”说明没有需要删除的订单, data输出1说明删除了1条超时订单,以此类推data输出3即说明删除了3条超时订单,如图2-1所示。此时数据库中的订单表有如下变化:未支付且超过规定支付时间的订单将会自动删除,如图2-2、2-3所示。
说明:本实例仅针对后端程序开发,若与前端页面联调可实现如图2-4、2-5所展示的效果,此处以淘宝平台为例。图2‑1 定时任务调用详情页面
图2‑2 调用定时任务前订单表数据
图2‑3 调用定时任务后订单表数据
图2‑4 执行前前端页面效果
图2‑5 执行后前端页面效果
03准备工作
提前准备一张数据表:订单表 order_info(用于存储订单信息),表结构设计及相关数据如下图所示。
订单表 order_info:图3-1订单表数据
说明:订单表中的数据可以自行配置,其中pay_status(支付状态)为1时代表订单已支付,为0时代表未支付。04流程图设计概览
图4‑1 定时任务流程图
逻辑描述:1.将“需删除的未支付且超过支付时间的订单数目”初始化设置为0 ;
2.在<订单表>查询未支付订单信息;
3.获取<订单表>中未支付订单的总数;
4.遍历查询到的未支付订单信息,若当前计数器索引值小于未支付订单总数,则开始遍历流程;若当前计数器索引值大于等于未支付订单总数,则进行遍历完成流程。
5.开始遍历流程:
(1)获取当前计数器索引值指向未支付订单的最后支付时间(即订单创建时间加上30分钟)
(2)获取当前系统时间
(3)判断当前未支付订单是否支付超时,若支付超时,即当前未支付订单的最后支付时间小于等于当前系统时间,则进行支付超时流程;若支付未超时,即当前未支付订单的最后支付时间大于当前系统时间,继续遍历下一条数据
(4)支付超时流程:删除当前未支付订单
(5)支付超时流程:需删除的未支付且超过支付时间的订单数目加1,继续遍历下一条数据
6.遍历完成流程:输出需删除的未支付且超过支付时间的订单数目,结束流程
05全自动开发平台具体操作过程
一、新增实体模型Count
进入全自动开发平台“实体模型”功能模块,新增一个实体模型Count,用于记录“需删除的未支付且超过支付时间的订单数目”,如下图所示。
图5‑1 实体模型模块
图5‑2 新增实体模型
二、新增定时任务-订单超时自动删除
1.进入全自动开发平台“定时任务”功能模块,新增一个定时任务,填写定时任务的基本信息并设置Cron表达式,如下图所示。
说明:本实例设置该定时任务5分钟执行一次,所以Cron表达式中秒指定为0即可,如图5-2所示,分钟设置为从0开始,每5分钟执行一次,您可以预览最近10次的执行时间,如图5-3所示,您也可以根据实际需求设置Cron表达式。
图5‑3 定时任务模块
图5‑4 新增定时任务
图5‑5 设置Cron表达式
图5‑6 设置Cron表达式
2.因本实例不需要配置入口参数,直接单击“提交”,进入下一步模型编辑即可。
图5‑7 参数列表
三、定时任务模型编辑
通过拖拽左侧组件列表中所需的组件进行模型编辑。
图5‑8 进入模型编辑
图5‑9 窗体视图
四、组件的具体配置(按逻辑描述展示)
1.使用赋值组件将“需删除的未支付且超过支付时间的订单数目”初始化设置为0。
图5‑10 赋值组件
【初始化“需删除的未支付且超过支付时间的订单数目”】
图5‑11 选择数据模型
图5‑12 设置参数值
2.使用单SQL组件在<订单表>查询所有订单未支付的信息,具体SQL内容如5-15所示。
图5‑13 单SQL组件【查询未支付订单】
图5‑14 组件配置
图5‑15 SQL内容
注意:若对于如何新增SQL语句不清晰,可参见飞算云智官网文档中心
https://www.feisuanyz.com/support/helpCenter(全自动开发平台 / 快速入门 / 新增SQL)
3.使用单函数组件调用函数listSize(List sourceList),用于获取<订单表>中未支付订单List的大小,需传入上一步单SQL组件【查询未支付订单】的执行结果,如下图所示。
图5‑16 单函数组件【获取未支付订单总数】
图5‑17 组件配置
4.使用计数器组件和互斥条件组件遍历查询到的未支付订单信息,若当前计数器索引值小于未支付订单总数,则开始遍历流程;若当前计数器索引值大于等于未支付订单总数,则进行遍历完成流程。
说明:计数器组件【遍历未支付订单】的循环流程变量引用单函数组件【获取未支付订单总数】的执行结果,操作符选择递增,如图5-19所示。注意:计数器索引值从0开始。
图5‑18 遍历查询到的未支付订单信息
图5‑19 计数器组件【遍历未支付订单】配置
图5‑20 开始遍历流转条件
图5‑21 遍历完成流转条件
5.开始遍历流程:
(1)使用单函数组件调用函数addMinute(Date sourceDate,int addValue),获取当前计数器索引值指向未支付订单的最后支付时间,需传入当前计数器索引值指向未支付订单的创建时间以及支付超时时间,本实例的支付超时时间设置为30分钟,如图5-23所示。
说明:在设置参数“当前计数器索引值指向未支付订单的创建时间”时需进行多次选择,首先选中“查询未支付订单”页签中查询结果单条记录“选择流程变量”选项,如图5-24所示,进入下一个参数选择页面,选择“遍历未支付订单”页签下的当前计数器索引,如图5-25所示,最后回到“查询未支付订单”页签,选择createTime(创建时间)即可,如图5-26所示。
图5‑22 单函数组件
【获取未支付订单的最后支付时间】
图5‑23 组件配置
图5‑24 选择流程变量
图5‑25 选择当前计数器索引值
图5‑26 选择创建时间字段
(2)使用单函数组件调用函数getCurrDateTime()获取当前系统时间。
图5‑27 单函数组件
【获取当前系统时间】
图5‑28 组件配置
(3)使用互斥条件组件判断当前未支付订单是否支付超时,若支付超时,即当前未支付订单的最后支付时间小于等于当前系统时间,则进行支付超时流程;若支付未超时,即当前未支付订单的最后支付时间大于当前系统时间,继续遍历下一条数据。
图5‑29 判断当前未支付订单是否支付超时流程
图5‑30 支付超时流转条件
图5‑31 支付未超时流转条件
(4)支付超时流程:使用单SQL组件删除当前未支付订单,需传入当前计数器索引值指向的未支付订单,具体SQL内容如图5-34所示。
说明:在设置参数“当前计数器索引值指向的未支付订单”时同样需要进行多次选择,首先选中“查询未支付订单”页签中查询结果单条记录“选择流程变量”选项,如图5-35所示,进入下一个参数选择页面,选择“遍历未支付订单”页签下的当前计数器索引,如图5-36所示,最后回到“查询未支付订单”页签,选择当前单条SQL记录即可,如图5-37所示。
图5‑32 单SQL组件
【删除当前未支付订单】
图5‑33 组件配置
图5‑34 删除当前未支付订单的SQL内容
图5‑35 选择流程变量
图5‑36 选择当前计数器索引值
图5‑37 选择当前计数器索引值指向的未支付订单记录
(5)支付超时流程:再次使用赋值组件将“需删除的未支付且超过支付时间的订单数目”加1,继续遍历下一条数据。
图5‑38 赋值组件
【需删除的未支付且超过支付时间的订单数目+1】
图5‑39 选择数据模型
图5‑40 组件配置
6.遍历完成流程:输出需删除的未支付且超过支付时间的订单数目,结束流程。
说明:输出结果组件的参数直接选择赋值组件【初始化“需删除的未支付且超过支付时间的订单数目”】中数据模型Count即可,如图5-43所示。
图5‑41 输出结果组件
【输出删除的未支付订单数】
图5‑42 组件配置
图5‑43 参数选择
五、退出窗体视图
流程图设计完成后,保存并退出窗体视图。
图5‑44 保存流程图
六、提交定时任务
图5‑45 提交定时任务
七、执行定时任务
1.单击“执行任务”,检验该定时任务是否可以实现预期功能。
说明:若点击启动任务,则该定时任务将会根据Cron表达式的设置每五分钟执行一次。
图5‑46 执行定时任务
2.通过测试用例响应内容查看定时任务的执行结果,同时查看数据库中订单表的数据是否发生了变化。
图5‑47 查看响应内容
3.若定时任务的执行结果出现错误或数据库中订单表中的数据未出现预期变化,您也可以通过查看可视化日志进行调试。
图5‑48 查看可视化日志
体验入口网址:
https://feisuanyz.com/复制此链接至PC浏览器,点击右上角【申请试用】,开始产品体验旅程。