// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\store\controller\order; use think\response\Json; use app\store\controller\Controller; use app\store\model\Order as OrderModel; use app\common\model\MerchantRemarks as MerchantRemarksModel; use app\common\service\store\User as StoreUserService; use app\common\model\UploadFile; /** * 订单事件控制器 * Class Event * @package app\store\controller\order */ class Event extends Controller { /** * 修改订单价格 * @param int $orderId * @return Json */ public function updatePrice(int $orderId): Json { // 订单详情 $model = OrderModel::detail($orderId); if ($model->updatePrice($this->postForm())) { return $this->renderSuccess('操作成功'); } return $this->renderError($model->getError() ?: '操作失败'); } /** * 修改商家备注 * @param int $orderId * @return Json */ public function updateRemark(int $orderId): Json { // 订单详情 $model = OrderModel::detail($orderId); if ($model->updateRemark($this->postForm())) { return $this->renderSuccess('操作成功'); } return $this->renderError($model->getError() ?: '操作失败'); } /** * 小票打印 * @param int $orderId * @return Json * @throws \cores\exception\BaseException */ public function printer(int $orderId): Json { // 订单详情 $model = OrderModel::detail($orderId); if ($model->printer($this->postForm())) { return $this->renderSuccess('操作成功'); } return $this->renderError($model->getError() ?: '操作失败'); } /** * 审核:用户取消订单 * @param $orderId * @return Json */ public function confirmCancel($orderId): Json { // 订单详情 $model = OrderModel::detail($orderId); if ($model->confirmCancel($this->postForm())) { return $this->renderSuccess('操作成功'); } return $this->renderError($model->getError() ?: '操作失败'); } /** * 门店自提核销 * @param int $orderId * @return Json */ public function extract(int $orderId): Json { // 订单详情 $model = OrderModel::detail($orderId); if ($model->extractEvent($this->postForm())) { return $this->renderSuccess('核销成功'); } return $this->renderError($model->getError() ?: '核销失败'); } /** * 删除订单记录 * @param int $orderId * @return Json */ public function delete(int $orderId): Json { // 订单详情 $model = OrderModel::detail($orderId); // 确认核销 if ($model->setDelete()) { return $this->renderSuccess('删除成功'); } return $this->renderError($model->getError() ?: '操作失败'); } /** * 添加商家备注 * @param int $orderId */ public function addRemark(int $orderId): Json { $data = $this->postForm(); $data['store_id'] = $this->store['store_id']; $storeUser = StoreUserService::getLoginInfo(); $data['user_id'] = $storeUser['user']['store_user_id']; $data['order_id'] = $orderId; $model = new MerchantRemarksModel; if(isset($data['image_id']) && !empty($data['image_id'])){ $image_ids = $data['image_id']; $image = array( "image_id" => $image_ids ); $data['image_id'] = json_encode($image); } if ($model->add($data)) { return $this->renderSuccess('操作成功'); } return $this->renderError($model->getError() ?: '操作失败'); } /** * 查看商家备注 * @param int $orderId * @return Json */ public function getRemark(int $orderId): Json { $model = new MerchantRemarksModel; // 备注详情 $list = $model->orderRemarkList($orderId); if (!$list) { return $this->renderError('暂无备注'); } foreach ($list as $key => $value) { if (isset($value['image_id'])) { // 解码 JSON 字符串并确保返回的是数组 $decodedImageId = json_decode($value['image_id'], true); if (is_array($decodedImageId) && isset($decodedImageId['image_id'])) { $value['image_id'] = $decodedImageId['image_id']; $value['image_url'] = UploadFile::getFileList($value['image_id']); } } } return $this->renderSuccess(compact('list')); } /** * 修改商家备注 * @param int $MerchantRemarkId * @return Json */ public function modifyRemark(int $MerchantRemarkId): Json { // 订单详情 $model = MerchantRemarksModel::detail($MerchantRemarkId); // 确认核销 if ($model->setRemarks($this->postForm())) { return $this->renderSuccess('操作成功'); } return $this->renderError($model->getError() ?: '操作失败'); } public function deleteRemark(int $MerchantRemarkId): Json { $model = new MerchantRemarksModel; // 确认核销 if ($model->setDelete($MerchantRemarkId)) { return $this->renderSuccess('删除成功'); } return $this->renderError($model->getError() ?: '操作失败'); } }