diff --git a/app/Service/Admin/Catering/Option/CateringService.php b/app/Service/Admin/Catering/Option/CateringService.php index 59869dd..40755fa 100644 --- a/app/Service/Admin/Catering/Option/CateringService.php +++ b/app/Service/Admin/Catering/Option/CateringService.php @@ -24,6 +24,7 @@ use App\Model\User; use App\Service\Admin\Catering\CateringBaseService; use App\Service\Admin\Catering\Print\PrintOrderFactory; use App\Service\ServiceTrait\Admin\Catering\PrintTrait; +use App\Service\ServiceTrait\Common\PickupCodeTrait; use Exception; use Hyperf\DbConnection\Db; use Hyperf\Di\Annotation\Inject; @@ -33,6 +34,7 @@ use Psr\Container\NotFoundExceptionInterface; class CateringService extends CateringBaseService { use PrintTrait; + use PickupCodeTrait; /** * @var OrderOptionCateringLog @@ -418,35 +420,35 @@ class CateringService extends CateringBaseService return $result; } - /** - * @param array $data - * @return array - */ - private function buildPickupCodeListData(array $data): array - { - $result = []; - foreach ($data as $item) { - // 提取关键字段 - $orderId = $item["order_id"]; - $copies = $item["copies"]; - $pickupCode = $item["pickup_code"]; - $heapsort = $item["heapsort"]; - - // 按层级构建数组结构 - if (!isset($result[$orderId])) { - $result[$orderId] = []; - } - - if (!isset($result[$orderId][$copies])) { - $result[$orderId][$copies] = [ - 'pickup_code' => $pickupCode, - 'heapsort' => $heapsort, - ]; - } - } - - return $result; - } +// /** +// * @param array $data +// * @return array +// */ +// private function buildPickupCodeListData(array $data): array +// { +// $result = []; +// foreach ($data as $item) { +// // 提取关键字段 +// $orderId = $item["order_id"]; +// $copies = $item["copies"]; +// $pickupCode = $item["pickup_code"]; +// $heapsort = $item["heapsort"]; +// +// // 按层级构建数组结构 +// if (!isset($result[$orderId])) { +// $result[$orderId] = []; +// } +// +// if (!isset($result[$orderId][$copies])) { +// $result[$orderId][$copies] = [ +// 'pickup_code' => $pickupCode, +// 'heapsort' => $heapsort, +// ]; +// } +// } +// +// return $result; +// } /** * 打印置灰和截单 diff --git a/app/Service/Api/Order/OrderInfoService.php b/app/Service/Api/Order/OrderInfoService.php index aa30669..27b1b35 100644 --- a/app/Service/Api/Order/OrderInfoService.php +++ b/app/Service/Api/Order/OrderInfoService.php @@ -18,10 +18,12 @@ use App\Model\AdminUser; use App\Model\Chef; use App\Model\Order; use App\Model\OrderGood; +use App\Model\PickupCode; use App\Model\Sku; use App\Model\Spu; use App\Service\Api\BaseService; use App\Service\ServiceTrait\Common\OssTrait; +use App\Service\ServiceTrait\Common\PickupCodeTrait; use Hyperf\Di\Annotation\Inject; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; @@ -29,6 +31,7 @@ use Psr\Container\NotFoundExceptionInterface; class OrderInfoService extends BaseService { use OssTrait; + use PickupCodeTrait; /** * @var Order @@ -85,6 +88,13 @@ class OrderInfoService extends BaseService return $this->return->success('success', $orderInfo); } + /** + * @var PickupCode + */ + #[Inject] + protected PickupCode $pickupCodeModel; + + /** * @param array $orderInfo * @return void @@ -118,6 +128,11 @@ class OrderInfoService extends BaseService $chefList = $this->adminUserModel->getDataArrByIds($chefId); $chefList = array_column($chefList, null,'id'); + $pickupCodeList = $this->pickupCodeModel + ->where('order_id',$orderInfo['id']) + ->pluck('pickup_code','copies') + ->toArray(); + $orderCopiesList = []; $addStapleFood = []; if ($orderInfo['type'] == OrderCode::ORDER_TYPE_MEAL) { @@ -125,7 +140,7 @@ class OrderInfoService extends BaseService 'total_price' => '0.00', 'total_quantity' => 0, 'sku_list' => [], - 'take_food_code' => '', //取餐码 + 'pickup_code' => '', //取餐码 'url' => '', 'is_add_staple_food' => GoodCode::IS_ADD_STAPLE_FOOD, ]; @@ -136,7 +151,7 @@ class OrderInfoService extends BaseService 'total_price' => '0.00', 'total_quantity' => 0, 'sku_list' => [], - 'take_food_code' => '', //todo 取餐码 + 'pickup_code' => $pickupCodeList[$i] ?? '', //取餐码 'is_add_staple_food' => GoodCode::IS_NOT_ADD_STAPLE_FOOD, ]; diff --git a/app/Service/Api/Order/OrderListService.php b/app/Service/Api/Order/OrderListService.php index dd4aa77..7892630 100644 --- a/app/Service/Api/Order/OrderListService.php +++ b/app/Service/Api/Order/OrderListService.php @@ -15,9 +15,11 @@ use App\Constants\Common\GoodCode; use App\Constants\Common\OrderCode; use App\Model\Order; use App\Model\OrderGood; +use App\Model\PickupCode; use App\Model\Sku; use App\Service\Api\BaseService; use App\Service\ServiceTrait\Common\OssTrait; +use App\Service\ServiceTrait\Common\PickupCodeTrait; use Hyperf\Di\Annotation\Inject; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; @@ -26,13 +28,14 @@ class OrderListService extends BaseService { use OssTrait; + use PickupCodeTrait; /** * @var int 当前订单/历史订单 */ - CONST CURRENT_ORDER = 1; + CONST int CURRENT_ORDER = 1; - CONST HISTORY_ORDER = 2; + CONST int HISTORY_ORDER = 2; /** * @var Order @@ -102,6 +105,13 @@ class OrderListService extends BaseService return $this->return->success('success', ['list' => $orderList]); } + /** + * @var PickupCode + */ + #[Inject] + protected PickupCode $pickupCodeModel; + + /** * 构建订单列表数据 * @param array $orderList @@ -139,6 +149,13 @@ class OrderListService extends BaseService $imageIds = array_unique(explode(',',implode(',',$imageIdArr))); $imageList = $this->getOssObjects($imageIds); + $pickupCodeList = $this->pickupCodeModel + ->whereIn('order_id',$orderIds) + ->get(['pickup_code', 'order_id', 'copies', 'heapsort', 'id']) + ->toArray(); + + $pickupCodeArrList = $this->buildPickupCodeListData($pickupCodeList); + foreach ($orderList as &$order) { $orderCopiesList = []; $addStapleFood = []; @@ -146,7 +163,7 @@ class OrderListService extends BaseService $addStapleFood = [ 'total_price' => '0.00', 'total_quantity' => 0, - 'take_food_code' => '', //这个没有取餐码 + 'pickup_code' => '', //这个没有取餐码 'image_list' => [], 'is_add_staple_food' => GoodCode::IS_ADD_STAPLE_FOOD, ]; @@ -158,7 +175,7 @@ class OrderListService extends BaseService 'total_price' => '0.00', 'total_quantity' => 0, 'image_list' => [], - 'take_food_code' => '', //todo 取餐码 + 'pickup_code' => $pickupCodeArrList[$order['id']][$i]['pickup_code'] ?? '', // 取餐码 'is_add_staple_food' => GoodCode::IS_NOT_ADD_STAPLE_FOOD, ]; diff --git a/app/Service/ServiceTrait/Common/PickupCodeTrait.php b/app/Service/ServiceTrait/Common/PickupCodeTrait.php new file mode 100644 index 0000000..5a17754 --- /dev/null +++ b/app/Service/ServiceTrait/Common/PickupCodeTrait.php @@ -0,0 +1,36 @@ + $pickupCode, + 'heapsort' => $heapsort, + ]; + } + } + + return $result; + } +} \ No newline at end of file