定时任务说明文档

概述


1、定时任务按启动时间分为三类:每月任务,每天任务,每小时任务。每月任务在每月1日0:10进行,每天任务是每天23:30分进行,每小时任务在每小时00分进行。 按任务逻辑分为四大类,由一些小任务组成:订单任务,结算任务,售后任务,会员任务。 定时任务时间配置文件是timerContext.xml,包含在javashop-web工程里,其中用cron表达式定义了任务时间,每月任务(0 10 0 1 ?),每天任务(0 30 23 ?),每小时任务(0 0 0/1 * ?)。

2、定时任务逻辑起始于任务执行器类IJobExecuter,其中调用了任务执行器插件类JobExecutePluginsBundle,插件桩中调用了各个定时任务插件,以下为各个插件实现类:

售后任务


1、售后任务的查询退款进度插件RefundQueryPlugin,
2、任务时间:每小时任务;
3、数据来源:es_refund表
4、数据处理:

从es\_refund表里获取退款未完成的退款单,然后更新退款状态,具体处理如下: 

按退款状态(refund\_status)获取所有退款方式(refund\_way)为原路退回(original)的退款单,  

然后根据账号类型(account\_type),获取相应的插件,例如微信插件,将退款单状态在插件中进行更新,再将更新后的退款单存储进数据库。

4、数据处理结束:存储在es_refund

订单任务


订单任务的订单状态定时任务插件OrderStatusCheckPlugin,

任务时间:每天任务;

插件中包含5个任务,执行这5个任务前,会先查询后台管理员设置的执行任务的时间,这5个任务分别是:

一、自动取消订单,新订单规定时间内未支付,则会自动取消订单。

数据来源:es_order表

具体处理如下:

根据订单状态(order_status),支付类型(payment_type),下单时间(create_time)获取超时未支付的非货到付款订单。

然后将订单状态更新为已取消。

数据处理结束:存储在es_order

二、自动确认收货,已发货订单规定时间内买家未点击已收货,则自动确认收货。

数据来源:es_order表

具体处理如下:
根据订单状态(order_status),支付类型(payment_type),送货时间(ship_time)获取超时未收货的非货到付款订单。
然后将订单状态更新为已收货。
数据处理结束:存储在es_order

三、自动完成订单,已收货订单在规定时间过后,会自动将订单状态更改为已完成。

数据来源:es_order表
具体处理如下:
根据签收时间(signing_time),货运状态(ship_status),支付类型(payment_type),订单状态(order_status)获取所有非货到付款的且已收货的未完成订单。
然后根据签收时间(signing_time),支付状态(pay_status),支付类型(payment_type),订单状态(order_status)获取所有货到付款的且已支付的未完成订单。
然后将查询出的订单,更新为已完成。
数据处理结束:存储在es_order

四、自动标记售后过期,已完成订单规定时间内没有申请售后,则标记为售后已过期,即不能再申请售后。

数据来源:es_order表
具体处理如下:
根据完成时间(complete_time),订单状态(order_status),支付类型(payment_type),售后状态(service_status)获取所有已完成的非货到付款的售后未失效的订单。
然后将所有订单的售后状态更新为已失效。
数据处理结束:存储在es_order

五、自动评价订单,已收货订单如果超过规定时间未评价,则添加默认评价。

数据来源:es_order表,es_member_order_item表
具体处理如下:
根据签收时间(signing_time),评论状态(comment_status)获取所有规定时间之前签收的未评论订单。
然后根据上一步查询出的订单id(order_id)和货品id(product_id)获取es_member_order_item表中未评论过的订单。
最后向查询出的订单添加默认的评价信息,再存储到数据库中。
数据处理结束:存储在es_order,es_member_order_item,es_member_comment,es_member_comment_gallery几个表中。

结算任务


结算任务的店铺结算单生成任务插件CreateBillPlugin,
任务时间:每月任务;
数据来源:es_bill_item,es_shop,es_shop_detail
具体处理如下:
平台会向店铺收取一定的佣金,佣金每月自动结算一次,并生成相应的结算单。
根据es_bill_item中存储的商家id获取每个商家的店铺名,店铺id,银行账号等相关信息,进行每个店铺的结算单的生成,并将结算单状态(status)更新为已出账。
数据处理结束:存储在es_bill,es_bill_item

会员任务


会员任务的会员每月登录次数清零任务插件TimeOutMemberPlugin,

任务时间:每月任务。

数据来源:无

具体处理如下:

更新es_member表中的所有logincount为0。

数据处理结束:存储在es_member表中。

results matching ""

    No results matching ""