123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- // +----------------------------------------------------------------------
- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
- // +----------------------------------------------------------------------
- // | Author: 萤火科技 <admin@yiovo.com>
- // +----------------------------------------------------------------------
- declare (strict_types=1);
- namespace app\console\service;
- use app\console\library\Tools;
- use app\common\service\BaseService;
- use app\store\model\Express as ExpressModel;
- use app\store\model\Order;
- use app\store\model\OrderAddressSimple;
- use app\store\model\OrderGoods;
- use app\store\model\User;
- use app\store\service\wxApi\WxOrderLogistics;
- /**
- * 服务类:每日计算店内职员的当月的业绩
- * Class UserGrade
- * @package app\console\service
- */
- class WxDelivery extends BaseService
- {
- /**
- * 每日计算店内职员的当月的业绩v.1.3.6
- * @param int $storeId
- * @return array|bool
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function pullOrderStatus(int $storeId)
- {
- // 获取店内员工的预计佣金
- $data = [];
- $orderGoodsModel = new OrderGoods();
- $orderGoodses = $orderGoodsModel->getNeedToWxDelivery();
- $orderIds = array_column($orderGoodses, 'order_id');
- $orderModel = new Order();
- $orders = $orderModel->getListByIds($orderIds);
- $express = ExpressModel::getAllList();
- $expressIndexById = array_column($express, null, 'express_id');
- $orderAddressModel = new OrderAddressSimple();
- $orderAddress = $orderAddressModel->batchByOrderIds($orderIds);
- $orderAddressIndexByOrderId = array_column($orderAddress,'phone','order_id');
- $userIds = array_column($orderGoodses, 'user_id');
- $users = User::getByUserIds($userIds);
- $userToOpenId = array_column($users, 'open_id', 'user_id');
- // 遍历整理数据
- foreach ($orderGoodses as $orderGoods) {
- $res = WxOrderLogistics::getOrderStatusByTransId($orders[$orderGoods['order_id']]['transaction_id']);
- //$res = ['errcode' => 0, 'errmsg' => 'ok', 'order' => ['order_state' => 1]];
- if ($res['errcode'] == 0 && $res['errmsg'] == 'ok') {
- if ($res['order']['order_state'] == 1) {//订单状态枚举:(1) 待发货;(2) 已发货;(3) 确认收货;(4) 交易完成;(5) 已退款。
- //$orderAddress = $orderAddressModel->findByOrderId($orderGoods['order_id']);
- $a = WxOrderLogistics::orderDeliveryByTransId($orders[$orderGoods['order_id']]['transaction_id'],
- $expressIndexById[$orderGoods['express_id']]['wx_delivery_id'], $orderGoods['express_no'], $orderGoods['goods_name'], $userToOpenId[$orderGoods['user_id']], '', $orderAddressIndexByOrderId[$orderGoods['order_id']]);
- //$a = ['errcode' => 0, 'errmsg' => 'ok'];
- if ($a['errcode'] == 0 && $a['errmsg'] == 'ok') {
- OrderGoods::update(['wx_delivery_status' => 20], ['order_goods_id' => $orderGoods['order_goods_id']]);
- }
- }
- }else{
- dd(json_encode($res));
- }
- }
- // 记录日志
- Tools::taskLogs('WxDelivery', 'pullOrderStatus', [
- 'storeId' => $storeId,
- 'data' => $data
- ]);
- return true;
- }
- //对于微信已发货的订单,如果订单状态是已签收,
- }
|