1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- declare (strict_types=1);
- namespace app\console\service;
- use app\console\model\Order as OrderModel;
- use app\console\model\OrderGoods as OrderGoodsModel;
- use app\common\service\BaseService;
- use app\common\library\helper;
- use app\console\library\Tools;
- /**
- * 服务类:订单商品模块
- * Class OrderGood
- * @package app\console\service
- */
- class OrderGood extends BaseService
- {
- /**
- * 已发货订单商品自动确认收货
- * @param int $storeId
- * @param int $receiveDays 自动收货天数
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function receiveEvent(int $storeId, int $receiveDays)
- {
- // 截止时间
- $deadlineTime = time() - ((int)$receiveDays * 86400);
- // 查询截止时间未确认收货的订单ID集
- $model = new OrderGoodsModel();
- $list = $model->getOrderGoodsListByReceive($storeId, $deadlineTime);
- $orderGoodsIds = helper::getArrayColumn($list,'order_goods_id');
- $orderIds = helper::getArrayColumn($list,'order_id');
- // 更新订单商品收货状态
- if (!empty($orderGoodsIds)) {
- // 批量更新订单商品状态为已收货
- $model->onUpdateReceived($orderGoodsIds);
- // 批量更新订单状态为已收货
- (new OrderModel())->onUpdateReceived(array_unique($orderIds));
- }
- // 记录日志
- Tools::taskLogs('OrderGoods', 'receiveEvent', [
- 'storeId' => $storeId,
- 'receiveDays' => $receiveDays,
- 'deadlineTime' => $deadlineTime,
- 'orderGoodsIds' => helper::jsonEncode($orderGoodsIds)
- ]);
- }
- }
|