WxDelivery.php 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
  8. // +----------------------------------------------------------------------
  9. // | Author: 萤火科技 <admin@yiovo.com>
  10. // +----------------------------------------------------------------------
  11. declare (strict_types = 1);
  12. namespace app\console\service;
  13. use app\console\library\Tools;
  14. use app\common\service\BaseService;
  15. use app\console\model\User;
  16. use app\console\model\User as UserModel;
  17. use app\console\model\user\BonusHistory;
  18. use app\console\model\user\CommissionsDetail;
  19. use app\store\model\Express as ExpressModel;
  20. use app\store\model\Order;
  21. use app\store\model\OrderAddress;
  22. use app\store\model\OrderGoods;
  23. use app\store\service\wxApi\WxOrderLogistics;
  24. /**
  25. * 服务类:每日计算店内职员的当月的业绩
  26. * Class UserGrade
  27. * @package app\console\service
  28. */
  29. class WxDelivery extends BaseService
  30. {
  31. /**
  32. * 每日计算店内职员的当月的业绩v.1.3.6
  33. * @param int $storeId
  34. * @return array|bool
  35. * @throws \think\db\exception\DataNotFoundException
  36. * @throws \think\db\exception\DbException
  37. * @throws \think\db\exception\ModelNotFoundException
  38. */
  39. public function pullOrderStatus(int $storeId)
  40. {
  41. // 获取店内员工的预计佣金
  42. $data = [];
  43. $orderGoodsModel = new OrderGoods();
  44. $orderGoodses = $orderGoodsModel->getNeedToWxDelivery();
  45. $orderIds = array_column($orderGoodses,'order_id');
  46. $orderModel = new Order();
  47. $orders = $orderModel->getListByIds($orderIds);
  48. $express = ExpressModel::getAllList();
  49. $expressIndexById = array_column($express,null,'express_id');
  50. $orderAddressModel = new OrderAddress();
  51. $orderAddress = $orderAddressModel->batchByOrderIds($orderIds);
  52. $orderAddressIndexByOrderId = array_column($orderAddress,'phone','order_id');
  53. $userIds = array_column($orderGoodses,'user_id');
  54. $users = \app\store\model\User::getByUserIds($userIds);
  55. $userToOpenId = array_column($users,'open_id','user_id');
  56. // 遍历整理数据
  57. foreach ($orderGoodses as $orderGoods) {
  58. $res = WxOrderLogistics::getOrderStatusByTransId($orders[$orderGoods['order_id']]['transaction_id']);
  59. dd(json_encode($res));
  60. if ($res['code'] == 10060020){
  61. $a = WxOrderLogistics::orderDeliveryByTransId($orders[$orderGoods['order_id']]['transaction_id'],
  62. $expressIndexById[$orderGoods['express_id']]['wx_delivery_id'],$orderGoods['express_no'],$orderGoods['goods_name'],$userToOpenId[$orderGoods['user_id']],'',$orderAddressIndexByOrderId[$orderGoods['order_id']]);
  63. if ($a['code'] == 'ok'){
  64. OrderGoods::update(['wx_delivery_status'=>20],['order_goods_id'=>$orderGoods['order_goods_id']]);
  65. }
  66. dd($a);
  67. }
  68. }
  69. // 记录日志
  70. Tools::taskLogs('WxDelivery', 'pullOrderStatus', [
  71. 'storeId' => $storeId,
  72. 'data' => $data
  73. ]);
  74. return true;
  75. }
  76. }