mirror of
https://gitee.com/hzchunfen/erp.git
synced 2025-11-30 22:20:45 +00:00
京东打印
This commit is contained in:
parent
2019a88fb9
commit
0cd78ff136
@ -10,6 +10,9 @@ class BusinessOrderFilter extends Filters
|
||||
{
|
||||
protected function ids($value)
|
||||
{
|
||||
if(is_string($value)){
|
||||
$value = explode(",", $value);
|
||||
}
|
||||
return $this->builder->whereIn('id', $value);
|
||||
}
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Resources\BusinessOrderResource;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
|
||||
class BusinessOrderController extends Controller
|
||||
@ -28,12 +29,20 @@ class BusinessOrderController extends Controller
|
||||
$builder = BusinessOrder::query()
|
||||
->with([
|
||||
'shop:id,name',
|
||||
'items:id,business_order_id,goods_name,goods_number,external_sku_id'
|
||||
'items:id,business_order_id,goods_name,goods_number,external_sku_id',
|
||||
"waybill"
|
||||
])
|
||||
->whereIn('shop_id', $shopIds)
|
||||
->filter();
|
||||
$externalSkuIds = $request->get('external_sku_ids');
|
||||
$externalSkuId = $request->get('external_sku_id');
|
||||
if (!empty($externalSkuId)) {
|
||||
$externalSkuIds = $externalSkuId;
|
||||
}
|
||||
if ($externalSkuIds) {
|
||||
if (is_string($externalSkuIds)) {
|
||||
$externalSkuIds = explode(",", $externalSkuIds);
|
||||
}
|
||||
$ids = BusinessOrderItem::query()->whereIn('external_sku_id', $externalSkuIds)->pluck('business_order_id');
|
||||
$builder->whereIn('id', $ids);
|
||||
}
|
||||
@ -170,6 +179,7 @@ class BusinessOrderController extends Controller
|
||||
|
||||
public function print(Request $request)
|
||||
{
|
||||
|
||||
$shopIds = Shop::query()
|
||||
->where('plat_id', Shop::$PLAT_KTT)
|
||||
->pluck('id');
|
||||
@ -178,11 +188,15 @@ class BusinessOrderController extends Controller
|
||||
->whereIn('shop_id', $shopIds)
|
||||
->filter();
|
||||
$externalSkuIds = $request->get('external_sku_ids');
|
||||
|
||||
if ($externalSkuIds) {
|
||||
$ids = BusinessOrderItem::query()->whereIn('external_sku_id', $externalSkuIds)->pluck('business_order_id');
|
||||
$builder->whereIn('id', $ids);
|
||||
}
|
||||
if ($ids = $request->input('ids')) {
|
||||
if (is_string($ids)) {
|
||||
$ids = explode(",", $ids);
|
||||
}
|
||||
$builder->whereIn('id', $ids);
|
||||
}
|
||||
$businessOrders = $builder->get();
|
||||
@ -250,9 +264,9 @@ class BusinessOrderController extends Controller
|
||||
$orderIds = explode(',', $orderIds);
|
||||
BusinessOrder::query()
|
||||
->whereIn('id', $orderIds)
|
||||
->increment('print_status');
|
||||
->update(['print_status' => 1]);
|
||||
Waybill::query()
|
||||
->where('order', $orderIds)
|
||||
->where('order_id', $orderIds)
|
||||
->update(['status' => Waybill::$STATUS_PRINT_SUCCESS]);
|
||||
return response(['message' => 'success']);
|
||||
}
|
||||
|
||||
38
app/Http/Controllers/Business/WaybillController.php
Normal file
38
app/Http/Controllers/Business/WaybillController.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Business;
|
||||
|
||||
use App\Exports\BusinessOrderExport;
|
||||
use App\Exports\OrderBlankExport;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\BusinessOrder;
|
||||
use App\Models\BusinessOrderItem;
|
||||
use App\Models\GoodsSku;
|
||||
use App\Models\Shop;
|
||||
use App\Models\Waybill;
|
||||
use App\Services\WayBill\JingDong\JingDongService;
|
||||
use App\Services\WayBill\JingDong\WayBillService;
|
||||
use App\Utils\DateTimeUtils;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Resources\BusinessOrderResource;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
|
||||
class WaybillController extends Controller
|
||||
{
|
||||
public function queryTrace(Request $request)
|
||||
{
|
||||
$params = $request->validate([
|
||||
'order_id' => 'required',
|
||||
], [
|
||||
'order_id.required' => '订单id',
|
||||
]);
|
||||
$waybill = Waybill::query()->where("order_id", $params['order_id'])->firstOrFail();
|
||||
$jingDongService = new JingDongService();
|
||||
return $jingDongService->queryTrace($waybill);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -3,6 +3,7 @@
|
||||
namespace App\Listeners;
|
||||
|
||||
use App\Events\CreateLogisticEvent;
|
||||
use App\Models\BusinessOrder;
|
||||
use App\Models\Shop;
|
||||
use App\Services\Business\BusinessFactory;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
@ -27,13 +28,13 @@ class CreateLogisticListener implements ShouldQueue
|
||||
/**
|
||||
* Handle the event.
|
||||
*
|
||||
* @param CreateLogisticEvent $event
|
||||
* @param CreateLogisticEvent $event
|
||||
* @return void
|
||||
*/
|
||||
public function handle(CreateLogisticEvent $event)
|
||||
{
|
||||
$shop = Shop::query()->findOrFail($event->shopId);
|
||||
$shop = Shop::query()->findOrFail($event->shopId);;
|
||||
$client = BusinessFactory::init()->make($shop['plat_id'])->setShop($shop);
|
||||
$client->createLogistic($event->orderSn, $event->waybillNo);
|
||||
//$client->createLogistic($event->orderSn, $event->waybillNo);
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,6 +23,8 @@ class BusinessOrder extends Model
|
||||
'print_status',
|
||||
'ids',
|
||||
'pno',
|
||||
'order_sn',
|
||||
'id',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
@ -72,4 +74,9 @@ class BusinessOrder extends Model
|
||||
{
|
||||
return $this->belongsTo(Shop::class, 'shop_id', 'id');
|
||||
}
|
||||
|
||||
public function waybill()
|
||||
{
|
||||
return $this->belongsTo(Waybill::class, 'id', 'order_id');
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ class JingDongService
|
||||
$response = json_decode($response->getBody(), true);
|
||||
Log::info("京东返回请求response", [$response]);
|
||||
if (!isset($response['code']) || ($response['code'] != 0 && $response['code'] != 1 && $response['code'] != 1000)) {
|
||||
throw new \Exception($response['msg'] ?? "code异常");
|
||||
throw new \Exception($response['message'] ?? "code异常");
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
@ -226,5 +226,19 @@ class JingDongService
|
||||
return $response['data'];
|
||||
}
|
||||
|
||||
public function queryTrace(Waybill $pickup)
|
||||
{
|
||||
$path = "/freshmedicinedelivery/delivery/query/waybill/gis/v1";
|
||||
$pickupData = $pickup->toArray();
|
||||
$body = [
|
||||
"waybillNo" => $pickupData['waybill_code'] ?? '',
|
||||
"customerCode" => $this->customerCode,
|
||||
];
|
||||
$response = $this->request($body, $path);
|
||||
|
||||
return $response['data'];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@ class WayBillService
|
||||
$waybill->waybill_code = $resp['waybillNo'];
|
||||
$waybill->save();
|
||||
//物流发货
|
||||
event(new CreateLogisticEvent($order->shop_id, $waybill->order_sn, $waybill->waybill_code));
|
||||
event(new CreateLogisticEvent($waybill->shop_id, $waybill->order_sn, $waybill->waybill_code));
|
||||
}
|
||||
}
|
||||
//返回面单待打印数据
|
||||
@ -239,6 +239,7 @@ class WayBillService
|
||||
'note' => $order['business_note'] ? $order['business_note'] . ',' . $order['buyer_memo'] : $order['buyer_memo'],
|
||||
'items' => []
|
||||
];
|
||||
$note = "";
|
||||
foreach ($order['items'] as $item) {
|
||||
$count = $item['goods_number'] - $item['already_cancel_number'];
|
||||
$info['items'][] = [
|
||||
@ -248,8 +249,10 @@ class WayBillService
|
||||
'count' => $count,
|
||||
'external_sku_id' => $item['external_sku_id'],
|
||||
];
|
||||
|
||||
$note .= $item['goods_name'] . " " . $count . "件,";
|
||||
}
|
||||
$note .= "[备注:" . $info['note'] . "]";
|
||||
$info['note'] = $note;
|
||||
$this->orders[$order['shop_id']][] = $info;
|
||||
}
|
||||
|
||||
|
||||
@ -72,6 +72,7 @@ Route::middleware(['auth:api', 'check.permissions'])->group(function () {
|
||||
Route::get('shop/ship', [ShipController::class, 'index'])->name('shop_ship.index');
|
||||
Route::get('print/orders', [BusinessOrderController::class, 'print'])->name('order.print');
|
||||
Route::put('print/success', [BusinessOrderController::class, 'printSuccess'])->name('order.printSuccess');
|
||||
Route::get('waybill/queryTrace', [\App\Http\Controllers\Business\WaybillController::class, 'queryTrace']);
|
||||
// 发货信息
|
||||
Route::get('shop/ship/senders', [ShipController::class, 'getSenders'])->name('shop_ship.senders.get');
|
||||
Route::post('shop/ship/senders', [ShipController::class, 'saveSenders'])->name('shop_ship.senders.save');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user