$params['id']])->select()->toArray(); foreach ($order_goods as $goods) { $after_sale = AfterSale::where(['order_goods_id' => $goods['id'], 'order_id' => $goods['order_id'],'status'=>[AfterSaleEnum::STATUS_ING,AfterSaleEnum::STATUS_SUCCESS]])->findOrEmpty(); if (!$after_sale->isEmpty()) { return ['msg'=>'有商品处于售后中或已售后成功,请谨慎操作']; } } } $order = Order::find($params['id']); //添加核销记录 $snapshot = [ 'sn' => $params['admin_info']['account'], 'name' => $params['admin_info']['name'] ]; $verification = new Verification; $verification->order_id = $params['id']; $verification->selffetch_shop_id = $order['selffetch_shop_id']; $verification->handle_id = $params['admin_info']['admin_id']; $verification->verification_scene = VerificationEnum::TYPE_ADMIN; $verification->snapshot = json_encode($snapshot); $verification->save(); //更新订单状态 $order->order_status = OrderEnum::STATUS_FINISH; $order->verification_status = OrderEnum::WRITTEN_OFF; $order->confirm_take_time = time(); $order->after_sale_deadline = self::getAfterSaleDeadline(); $order->save(); //订单日志 (new OrderLog())->record([ 'type' => OrderLogEnum::TYPE_SHOP, 'channel' => OrderLogEnum::SHOP_VERIFICATION, 'order_id' => $params['id'], 'operator_id' => $params['admin_info']['admin_id'], ]); return true; } catch (\Exception $e) { //错误 self::$error = $e->getMessage(); return false; } } /** * @notes 获取当前售后 * @return float|int * @author ljj * @date 2021/9/1 3:09 下午 */ public static function getAfterSaleDeadline() { //是否关闭维权 $afterSale = ConfigService::get('transaction', 'after_sales'); //可维权时间 $afterSaleDays = ConfigService::get('transaction', 'after_sales_days'); if ($afterSale == YesNoEnum::NO) { $afterSaleDeadline = time(); } else { $afterSaleDeadline = ($afterSaleDays * 24 * 60 * 60) + time(); } return $afterSaleDeadline; } /** * @notes 核销查询 * @param $params * @return mixed * @author ljj * @date 2021/8/27 10:27 上午 */ public function verificationQuery($params) { $result = Order::alias('o') ->join('selffetch_shop ss', 'ss.id = o.selffetch_shop_id') ->join('verification v', 'o.id = v.order_id') ->with(['order_goods' => function($query){ $query->field('order_id,goods_snap,goods_name,goods_price,goods_num,total_pay_price')->append(['goods_image','spec_value_str'])->hidden(['goods_snap']); }]) ->where('o.id',$params['id']) ->field('o.id,o.address,ss.name as shop_name,v.snapshot,v.create_time as verification_time') ->json(['snapshot','address'],true) ->find() ->toArray(); $result['verification_time'] = date('Y-m-d H:i:s',$result['verification_time']); $result['contact'] = $result['address']['contact']; $result['mobile'] = $result['address']['mobile']; $result['verifier_sn'] = $result['snapshot']['sn']; $result['verifier_name'] = $result['snapshot']['name']; unset($result['snapshot'],$result['address']); return $result; } /** * @notes 查看核销详情 * @param $params * @return mixed * @author ljj * @date 2021/8/27 10:47 上午 */ public function verificationDetail($params) { $result = Order::alias('o') ->join('selffetch_shop ss', 'ss.id = o.selffetch_shop_id') ->with(['order_goods' => function($query){ $query->field('order_id,goods_snap,goods_name,goods_price,goods_num,total_pay_price')->append(['goods_image','spec_value_str'])->hidden(['goods_snap']); }]) ->where('o.id',$params['id']) ->field('o.id,o.address,ss.name as shop_name,o.pickup_code') ->json(['address'],true) ->find() ->toArray(); $result['contact'] = $result['address']['contact']; $result['mobile'] = $result['address']['mobile']; unset($result['address']); return $result; } }