123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- <?php
- namespace addons\shopro\library\express\provider;
- use addons\shopro\library\express\contract\ExpressInterface;
- use app\admin\model\shopro\order\Express;
- use app\admin\model\shopro\order\ExpressLog;
- use app\admin\model\shopro\order\Aftersale;
- use app\admin\model\shopro\order\AftersaleExpressLog;
- class Base implements ExpressInterface
- {
- public function __construct()
- {
- }
- /**
- * 快递查询
- *
- * @param array $data
- * @param mixed $order_express_id
- * @return array
- */
- public function search(array $data, $orderExpress = 0)
- {
- return null;
- }
- /**
- * 物流信息订阅
- *
- * @param array $data
- * @return void
- */
- public function subscribe(array $data)
- {
- error_stop('当前快递驱动不支持物流信息订阅');
- }
- /**
- * 物流信息推送
- *
- * @param array $data
- * @return array
- */
- public function push(array $data)
- {
- error_stop('当前快递驱动不支持接受推送');
- }
- /**
- * 电子面单
- *
- * @param array $data
- * @param array $items
- * @return array
- */
- public function eOrder(array $data, $items)
- {
- error_stop('当前快递驱动不支持电子面单');
- }
- /**
- * 更新包裹信息
- *
- * @param array $data
- * @param mixed $orderExpress
- * @return array
- */
- protected function updateExpress(array $data, $orderExpress)
- {
- // 更新包裹状态
- if (is_numeric($orderExpress)) {
- $orderExpress = Express::find($orderExpress);
- }
- if ($orderExpress) {
- $orderExpress->status = $data['status'];
- $orderExpress->save();
- $this->syncTraces($data['traces'], $orderExpress);
- }
- }
- protected function updateAftersale(array $data, $orderExpress)
- {
- // 更新包裹状态
- if (is_numeric($orderExpress)) {
- $orderExpress = Aftersale::find($orderExpress);
- }
- if ($orderExpress) {
- $orderExpress->express_status = $data['status'];
- $orderExpress->save();
- $this->syncTracesAftersale($data['traces'], $orderExpress);
- }
- }
- /**
- * 更新物流信息
- *
- * @param array $traces
- * @param mixed $orderExpress
- * @return void
- */
- protected function syncTraces($traces, $orderExpress)
- {
- // 查询现有轨迹记录
- $orderExpressLog = ExpressLog::where('order_express_id', $orderExpress->id)->select();
- $log_count = count($orderExpressLog);
- if ($log_count > 0) {
- // 移除已经存在的记录
- array_splice($traces, 0, $log_count);
- }
- // 增加包裹记录
- foreach ($traces as $k => $trace) {
- $orderExpressLog = new ExpressLog();
- $orderExpressLog->user_id = $orderExpress['user_id'];
- $orderExpressLog->order_id = $orderExpress['order_id'];
- $orderExpressLog->order_express_id = $orderExpress['id'];
- $orderExpressLog->content = $trace['content'];
- $orderExpressLog->change_date = $trace['change_date'];
- $orderExpressLog->status = $trace['status'];
- $orderExpressLog->save();
- }
- }
- protected function syncTracesAftersale($traces, $orderExpress)
- {
- // 查询现有轨迹记录
- $orderExpressLog = AftersaleExpressLog::where('order_aftersale_id', $orderExpress->id)->select();
- $log_count = count($orderExpressLog);
- if ($log_count > 0) {
- // 移除已经存在的记录
- array_splice($traces, 0, $log_count);
- }
- // 增加包裹记录
- foreach ($traces as $k => $trace) {
- $orderExpressLog = new AftersaleExpressLog();
- $orderExpressLog->user_id = $orderExpress['user_id'];
- $orderExpressLog->order_id = $orderExpress['order_id'];
- $orderExpressLog->order_aftersale_id = $orderExpress['id'];
- $orderExpressLog->content = $trace['content'];
- $orderExpressLog->change_date = $trace['change_date'];
- $orderExpressLog->status = $trace['status'];
- $orderExpressLog->save();
- }
- }
- }
|