diff --git a/app/api/controller/StoreKeeper.php b/app/api/controller/StoreKeeper.php index d37b7a8a..a109bc63 100644 --- a/app/api/controller/StoreKeeper.php +++ b/app/api/controller/StoreKeeper.php @@ -12,26 +12,23 @@ declare (strict_types=1); namespace app\api\controller; -use app\api\service\User as UserService; use app\common\enum\RecoveryStatusEnum; +use app\common\model\UploadFile; +use app\store\model\Article as ArticleModel; use app\store\model\article\Category as CategoryModel; +use app\store\model\dealer\Order as DealerOrderModel; use app\store\model\Express as ExpressModel; +use app\store\model\Goods as GoodsModel; +use app\store\model\goods\GoodsPrice as GoodsPriceModel; +use app\store\model\Order as OrderModel; +use app\store\model\OrderRefund as OrderRefundModel; use app\store\model\store\Address as AddressModel; use app\store\model\store\shop\Clerk as ClerkModel; use app\store\service\order\Delivery as DeliveryService; use cores\exception\BaseException; use think\App; -use think\response\Json; -use app\api\service\Store as StoreService; -use think\db\exception\DataNotFoundException; use think\db\exception\DbException; -use think\db\exception\ModelNotFoundException; -use app\store\model\Goods as GoodsModel; -use app\store\model\Order as OrderModel; -use app\store\model\OrderRefund as OrderRefundModel; -use app\store\model\dealer\Order as DealerOrderModel; -use app\store\model\Article as ArticleModel; -use app\store\model\goods\GoodsPrice as GoodsPriceModel; +use think\response\Json; /** * 店主管理 @@ -197,6 +194,26 @@ class StoreKeeper extends Controller } else { $model = new OrderModel; $list = $model->getNewList($params); + if (!empty($list)) { + foreach ($list as $value) { + if (!empty($value->transfer) && !empty($value->transfer->chat_image_id)) { + if (!empty($value->transfer->chat_image_id)) { + $chat_image_ids = UploadFile::whereIn('file_id', explode(",", $value->transfer->chat_image_id))->field('file_id,file_path,file_type,storage,domain')->select(); + foreach ($chat_image_ids as &$chat_image_id) { + $chat_image_id['file_path'] = getUrl($chat_image_id['file_path'], $chat_image_id['domain']); + } + $value->transfer->chat_image_ids = $chat_image_ids; + } + if (!empty($value->transfer->transfer_image_id)) { + $transfer_image_ids = UploadFile::whereIn('file_id', explode(",", $value->transfer->transfer_image_id))->field('file_id,file_path,file_type,storage,domain')->select(); + foreach ($transfer_image_ids as &$transfer_image_id) { + $transfer_image_id['file_path'] = getUrl($transfer_image_id['file_path'], $transfer_image_id['domain']); + } + $value->transfer->transfer_image_ids = $transfer_image_ids; + } + } + } + } return $this->renderSuccess(compact('dataType', 'list')); } @@ -569,7 +586,8 @@ class StoreKeeper extends Controller * @return Json * @throws \Exception */ - public function editGoodsSeckillPrice() { + public function editGoodsSeckillPrice() + { $model = new \app\api\model\Goods(); if (!$model->editGoodsSeckillPrice($this->request->param())) { return $this->renderError($model->getError() ?: '编辑失败'); diff --git a/app/common/model/Order.php b/app/common/model/Order.php index a8082a41..288fd7c7 100644 --- a/app/common/model/Order.php +++ b/app/common/model/Order.php @@ -12,23 +12,23 @@ declare (strict_types=1); namespace app\common\model; +use app\common\enum\order\DeliveryStatus as DeliveryStatusEnum; use app\common\enum\order\DeliveryType; +use app\common\enum\order\DeliveryType as DeliveryTypeEnum; +use app\common\enum\order\OrderStatus as OrderStatusEnum; +use app\common\enum\order\PayStatus as PayStatusEnum; +use app\common\enum\order\ReceiptStatus as ReceiptStatusEnum; use app\common\enum\payment\Method; -use cores\BaseModel; +use app\common\library\helper; use app\common\model\store\shop\Order as ShopOrder; use app\common\service\Order as OrderService; -use app\common\service\order\Shipping as ShippingService; use app\common\service\order\Complete as OrderCompleteService; +use app\common\service\order\Shipping as ShippingService; use app\common\service\order\source\Factory as OrderSourceFactory; -use app\common\enum\order\PayStatus as PayStatusEnum; -use app\common\enum\order\OrderStatus as OrderStatusEnum; -use app\common\enum\order\DeliveryType as DeliveryTypeEnum; -use app\common\enum\order\ReceiptStatus as ReceiptStatusEnum; -use app\common\enum\order\DeliveryStatus as DeliveryStatusEnum; -use app\common\library\helper; -use think\model\relation\HasOne; -use think\model\relation\HasMany; +use cores\BaseModel; use think\model\relation\BelongsTo; +use think\model\relation\HasMany; +use think\model\relation\HasOne; /** * 订单模型 @@ -111,6 +111,12 @@ class Order extends BaseModel return $this->belongsTo("app\\{$module}\\model\\store\\Shop", 'extract_shop_id'); } + //TransferRecordModel + public function transfer(): HasOne + { + return $this->hasOne(TransferRecord::class, 'order_id'); + } + /** * 关联门店店员表 * @return BelongsTo @@ -399,19 +405,19 @@ class Order extends BaseModel } - public function getPayMethodTextAttr($value,$data): string + public function getPayMethodTextAttr($value, $data): string { - return !empty(Method::data()[$data['pay_method']])?Method::data()[$data['pay_method']]['name']:'';//支付方式 + return !empty(Method::data()[$data['pay_method']]) ? Method::data()[$data['pay_method']]['name'] : '';//支付方式 } - public function getDeliveryTypeTextAttr($value,$data): string + public function getDeliveryTypeTextAttr($value, $data): string { - return !empty(DeliveryType::data()[$data['delivery_type']])? DeliveryType::data()[$data['delivery_type']]['name']: '';//配送方式 + return !empty(DeliveryType::data()[$data['delivery_type']]) ? DeliveryType::data()[$data['delivery_type']]['name'] : '';//配送方式 } - public function getTimeTextAttr($value, $data) : int + public function getTimeTextAttr($value, $data): int { - $diffTime = 60*60*24;//24小时倒计时 + $diffTime = 60 * 60 * 24;//24小时倒计时 // 付款状态 if ($data['pay_status'] == PayStatusEnum::PENDING) { return (($data['create_time'] + $diffTime) - time()) * 1000; @@ -424,7 +430,8 @@ class Order extends BaseModel return 0; } - public function getStorePhoneAttr($value,$data) { + public function getStorePhoneAttr($value, $data) + { return Store::get($data['store_id'])->phone ?: ''; } } diff --git a/app/common/model/server/Order.php b/app/common/model/server/Order.php index e5e52b10..2646097b 100644 --- a/app/common/model/server/Order.php +++ b/app/common/model/server/Order.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace app\common\model\server; +use app\common\enum\payment\Method; use app\common\enum\ServerEnum; use app\common\model\UploadFile; use cores\BaseModel; @@ -24,12 +25,23 @@ class Order extends BaseModel */ protected $append = [ 'order_status_text', // 订单状态文字描述 + 'pay_method_text', //支付方式 ]; public function serve(): BelongsTo { - return $this->belongsTo(Server::class, 'id', 'server_id'); + return $this->belongsTo(Server::class, 'server_id', 'server_id'); + } + + public function getPayMethodTextAttr($value, $data): string + { + // 订单状态 + $result = Method::data(); + if (!empty($result[$data['pay_method']]['name'])) { + return $result[$data['pay_method']]['name']; + } + return '未知'; } /** diff --git a/app/store/controller/Server.php b/app/store/controller/Server.php index 93bcd74e..eda8636c 100644 --- a/app/store/controller/Server.php +++ b/app/store/controller/Server.php @@ -165,8 +165,7 @@ class Server extends Controller */ public function deleteServer(array $serverId): Json { - $model = new ServerModel; - if ($model->remove($serverId)) { + if (ServerModel::destroy($serverId)) { return $this->renderSuccess('删除成功'); } return $this->renderError('删除失败'); @@ -235,6 +234,22 @@ class Server extends Controller return $this->renderSuccess($data); } + /** + * @notes:订单详情 + * @return Json + * @author: wanghousheng + */ + public function orderDetail(): Json + { + $orderId = intval($this->request->post('orderId')); + $data = \app\common\model\server\Order::detail(['order_id' => $orderId], ['user', 'dealer', 'image']); + $data['server_info'] = null; + if (!empty($data['server_id'])) { + $data['server_info'] = ServerModel::detail($data['server_id'], ['category']); + } + return $this->renderSuccess(['detail' => $data]); + } + /** * @notes:订单状态 * @return Json @@ -297,16 +312,18 @@ class Server extends Controller /** * 服务配置 */ - public function configList() { + public function configList() + { $model = new StoreServerConfig(); - $list = $model->with(['iconImage'])->hidden(['iconImage'])->order(['sort'=>'desc','create_time'=>'desc'])->paginate(10); + $list = $model->with(['iconImage'])->hidden(['iconImage'])->order(['sort' => 'desc', 'create_time' => 'desc'])->paginate(10); return $this->renderSuccess(compact('list')); } /** * 服务配置添加 */ - public function configAdd() { + public function configAdd() + { $model = new StoreServerConfig(); if ($model->save(array_merge(['store_id' => $this->storeId], $this->postForm()))) { return $this->renderSuccess('新增成功'); @@ -317,7 +334,8 @@ class Server extends Controller /** * 服务配置编辑 */ - public function configEdit(int $id) { + public function configEdit(int $id) + { $detail = StoreServerConfig::get($id); if ($detail) { if ($detail->save($this->postForm())) { @@ -330,9 +348,10 @@ class Server extends Controller /** * 删除服务配置 */ - public function configDel(int $id) { + public function configDel(int $id) + { $detail = StoreServerConfig::get($id); - if($detail->delete()) { + if ($detail->delete()) { return $this->renderSuccess('删除成功'); } return $this->renderError('删除失败'); diff --git a/app/store/model/Order.php b/app/store/model/Order.php index 0177190a..3a4ead57 100644 --- a/app/store/model/Order.php +++ b/app/store/model/Order.php @@ -13,18 +13,17 @@ declare (strict_types=1); namespace app\store\model; use app\api\service\User as UserService; -use app\common\enum\payment\Method; -use app\common\model\Order as OrderModel; -use app\common\service\Order as OrderService; -use app\common\service\order\Refund as RefundService; -use app\common\service\order\Printer as PrinterService; use app\common\enum\order\{DataType as DataTypeEnum, + DeliveryStatus as DeliveryStatusEnum, DeliveryType, - PayStatus as PayStatusEnum, OrderStatus as OrderStatusEnum, - ReceiptStatus as ReceiptStatusEnum, - DeliveryStatus as DeliveryStatusEnum}; + PayStatus as PayStatusEnum, + ReceiptStatus as ReceiptStatusEnum}; use app\common\library\helper; +use app\common\model\Order as OrderModel; +use app\common\service\Order as OrderService; +use app\common\service\order\Printer as PrinterService; +use app\common\service\order\Refund as RefundService; use cores\exception\BaseException; /** @@ -102,16 +101,16 @@ class Order extends OrderModel // 检索查询条件 $filter = $this->getQueryFilter($param); //不是店长查询当前用户订单 - if(!UserService::isStore()) { - $filter[] = ['user.user_id' ,'=', UserService::getCurrentLoginUserId() ]; - } - //普通会员和plus会员查询条件 - if (!empty($param['user_id'])) { - $filter[] = ['user.user_id' ,'=', $param['user_id']]; - } - if (!empty($param['delivery_type'])) { - $filter[] = ['order.delivery_type', '=', DeliveryType::EXPRESS]; - } + if (!UserService::isStore()) { + $filter[] = ['user.user_id', '=', UserService::getCurrentLoginUserId()]; + } + //普通会员和plus会员查询条件 + if (!empty($param['user_id'])) { + $filter[] = ['user.user_id', '=', $param['user_id']]; + } + if (!empty($param['delivery_type'])) { + $filter[] = ['order.delivery_type', '=', DeliveryType::EXPRESS]; + } $filterOr = []; if (!empty($param['searchValue']) && $param['searchType'] == 'all') { // $filterOr = [ @@ -135,6 +134,7 @@ class Order extends OrderModel ->leftJoin('order_address address', 'address.order_id = order.order_id') ->where($dataTypeFilter) ->where($filter) + ->with(['transfer']) ->where('order.is_delete', '=', 0); if (!empty($filterOr)) { // $query = $query->whereOr($filterOr); diff --git a/app/store/model/server/Server.php b/app/store/model/server/Server.php index ef844260..6dc7b553 100644 --- a/app/store/model/server/Server.php +++ b/app/store/model/server/Server.php @@ -36,12 +36,12 @@ class Server extends ServerModel /** * @notes:删除 * @param array $serverId - * @return bool * @author: wanghousheng */ - public function remove(array $serverId): bool + public function remove(array $serverId) { - return static::whereIn('server_id', $serverId)->delete(); + + return $this->whereIn('server_id', $serverId)->delete(); } /**