You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
5.9 KiB
209 lines
5.9 KiB
<?php
|
|
|
|
namespace app\services\system\crontab;
|
|
|
|
use app\services\activity\combination\StorePinkServices;
|
|
use app\services\activity\live\LiveGoodsServices;
|
|
use app\services\activity\live\LiveRoomServices;
|
|
use app\services\agent\AgentManageServices;
|
|
use app\services\order\StoreOrderServices;
|
|
use app\services\order\StoreOrderTakeServices;
|
|
use app\services\product\product\StoreProductServices;
|
|
use app\services\system\attachment\SystemAttachmentServices;
|
|
use think\facade\Log;
|
|
|
|
/**
|
|
* 执行定时任务
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
class CrontabRunServices
|
|
{
|
|
/**
|
|
* 定时任务类型 每一个定义的类型会对应CrontabRunServices类中的一个方法
|
|
* @var string[]
|
|
*/
|
|
public $markList = [
|
|
'orderCancel' => '未支付自动取消订单',
|
|
'pinkExpiration' => '拼团到期订单处理',
|
|
'agentUnbind' => '到期自动解绑上级',
|
|
'liveProductStatus' => '自动更新直播商品状态',
|
|
'liveRoomStatus' => '自动更新直播间状态',
|
|
'takeDelivery' => '订单自动收货',
|
|
'advanceOff' => '预售商品到期自动下架',
|
|
'productReplay' => '订单商品自动好评',
|
|
'clearPoster' => '清除昨日海报',
|
|
];
|
|
|
|
/**
|
|
* 调用不存在的方法
|
|
* @param $name
|
|
* @param $arguments
|
|
* @return mixed|void
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
public function __call($name, $arguments)
|
|
{
|
|
$this->crontabLog($name . '方法不存在');
|
|
}
|
|
|
|
/**
|
|
* 定时任务日志
|
|
* @param $msg
|
|
*/
|
|
protected function crontabLog($msg)
|
|
{
|
|
$timer_log_open = config("log.timer_log", false);
|
|
if ($timer_log_open) {
|
|
$date = date('Y-m-d H:i:s', time());
|
|
Log::write($date . $msg, 'crontab');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 未支付自动取消订单
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
public function orderCancel()
|
|
{
|
|
try {
|
|
app()->make(StoreOrderServices::class)->orderUnpaidCancel();
|
|
$this->crontabLog(' 执行未支付自动取消订单');
|
|
} catch (\Throwable $e) {
|
|
$this->crontabLog('自动取消订单失败,失败原因:' . $e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 拼团到期订单处理
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
public function pinkExpiration()
|
|
{
|
|
try {
|
|
app()->make(StorePinkServices::class)->statusPink();
|
|
$this->crontabLog(' 执行拼团到期订单处理');
|
|
} catch (\Throwable $e) {
|
|
$this->crontabLog('拼团到期订单处理失败,失败原因:' . $e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 自动解除上级绑定
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
public function agentUnbind()
|
|
{
|
|
try {
|
|
app()->make(AgentManageServices::class)->removeSpread();
|
|
$this->crontabLog(' 执行自动解绑上级绑定');
|
|
} catch (\Throwable $e) {
|
|
$this->crontabLog('自动解除上级绑定失败,失败原因:' . $e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 更新直播商品状态
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
public function liveProductStatus()
|
|
{
|
|
try {
|
|
app()->make(LiveGoodsServices::class)->syncGoodStatus();
|
|
$this->crontabLog(' 执行更新直播商品状态');
|
|
} catch (\Throwable $e) {
|
|
$this->crontabLog('更新直播商品状态失败,失败原因:' . $e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 更新直播间状态
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
public function liveRoomStatus()
|
|
{
|
|
try {
|
|
app()->make(LiveRoomServices::class)->syncRoomStatus();
|
|
$this->crontabLog(' 执行更新直播间状态');
|
|
} catch (\Throwable $e) {
|
|
$this->crontabLog('更新直播间状态失败,失败原因:' . $e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 自动收货
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
public function takeDelivery()
|
|
{
|
|
try {
|
|
app()->make(StoreOrderTakeServices::class)->autoTakeOrder();
|
|
$this->crontabLog(' 执行自动收货');
|
|
} catch (\Throwable $e) {
|
|
$this->crontabLog('自动收货失败,失败原因:' . $e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 预售到期商品自动下架
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
public function advanceOff()
|
|
{
|
|
try {
|
|
app()->make(StoreProductServices::class)->downAdvance();
|
|
$this->crontabLog(' 执行预售到期商品自动下架');
|
|
} catch (\Throwable $e) {
|
|
$this->crontabLog('预售到期商品自动下架失败,失败原因:' . $e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 自动好评
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
public function productReplay()
|
|
{
|
|
try {
|
|
app()->make(StoreOrderServices::class)->autoComment();
|
|
$this->crontabLog(' 执行自动好评');
|
|
} catch (\Throwable $e) {
|
|
$this->crontabLog('自动好评失败,失败原因:' . $e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 清除昨日海报
|
|
* @author 吴汐
|
|
* @email 442384644@qq.com
|
|
* @date 2023/03/01
|
|
*/
|
|
public function clearPoster()
|
|
{
|
|
try {
|
|
app()->make(SystemAttachmentServices::class)->emptyYesterdayAttachment();
|
|
$this->crontabLog(' 执行清除昨日海报');
|
|
} catch (\Throwable $e) {
|
|
$this->crontabLog('清除昨日海报失败,失败原因:' . $e->getMessage());
|
|
}
|
|
}
|
|
}
|
|
|