assign('breadcrumb1','订单管理'); $this->assign('breadcrumb2','订单回执'); } /** * 首页列表 * * */ public function index(Model $Model){ // 接受参数 $orderCode = request('order_code',''); $orderId = 0; // 查询条件 $map = []; // 编码ID if( $orderId ) $map[] = ['order_id','=',$orderId]; // 查询数据 $list = $Model->query()->where($map)->orderByDesc('id')->paginate(request('limit',config('page_num',10)))->appends(request()->all()); // 循环处理数据 foreach ($list as $key => $value) { // id转编号 $value['image'] = $value['image'] ? path_compat($value['image']) : ''; // 重组 $list[$key] = $value; } // 分配数据 $this->assign('empty', '~~暂无数据'); $this->assign('list', $list); // 加载模板 return $this->fetch(); } /** * 通过 * * */ public function allow( Request $request, Model $Model,Orders $Orders,OrdersProduct $OrdersProduct,CustomScore $CustomScore ){ // 接收参数 $id = request('id',0); // 查询数据 $oldData = $Model->where(['id'=>$id])->first(); // 参数 if( request()->isMethod('post') ){ // 验证参数 $request->scene('allow')->validate(); $status = request('status',1); $giveScore = request('give_score',0); $remark = request('remark',''); $remark = $giveScore ? '已发放'.$giveScore.'积分' : ''; // 组合数据,写入订单表,子表 DB::beginTransaction(); // 判断结果 try { // 查询数据 $result = $Model->edit($id,['status'=>$status,'give_score'=>$giveScore,'remark'=>$remark]); // 提示新增失败 if( !$result ) return json_send(['code'=>'error','msg'=>'操作失败']); // 发放积分 if( $giveScore > 0 ) $CustomScore->trade($oldData['custom_uid'],$oldData['order_id'],$giveScore,8,1); // 完成订单 $result = $Orders->setOrderStatus($oldData['order_id'],8,$OrdersProduct); // 提示新增失败 if( isset($result['error']) ){ // 回退数据 DB::rollBack(); // 提示信息 return json_send(['code'=>'error','msg'=>'订单状态变更失败,请重试','data'=>['error'=>$result['error']]]); } // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,[],['status'=>$status,'remark'=>$remark]); // 提交事务 DB::commit(); // 告知结果 return json_send(['code'=>'success','msg'=>'操作成功','path'=>'']); } catch (\Throwable $th){ // 回滚 DB::rollBack(); // 添加失败 return json_send(['code'=>'error','msg'=>'操作失败','data'=>['error'=>$th->getMessage()]]); } } // 分配数据 $this->assign('oldData',$oldData); // 加载模板 return $this->fetch(); } /** * 状态 * * */ public function refuse( Request $request, Model $Model,Orders $Orders,OrdersProduct $OrdersProduct ){ // 接收参数 $id = request('id',0); // 查询数据 $oldData = $Model->where(['id'=>$id])->first(); // 参数 if( request()->isMethod('post') ){ // 验证参数 $request->scene('refuse')->validate(); $status = request('status',2); $remark = request('remark',''); // 组合数据,写入订单表,子表 DB::beginTransaction(); // 判断结果 try { // 查询数据 $result = $Model->edit($id,['status'=>$status,'remark'=>$remark]); // 提示新增失败 if( !$result ) return json_send(['code'=>'error','msg'=>'操作失败']); // 恢复订单进行中 $result = $Orders->setOrderStatus($oldData['order_id'],1,$OrdersProduct); // 提示新增失败 if( isset($result['error']) ){ // 回退数据 DB::rollBack(); // 提示信息 return json_send(['code'=>'error','msg'=>'订单状态变更失败,请重试','data'=>['error'=>$result['error']]]); } // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,[],['status'=>$status,'remark'=>$remark]); // 提交事务 DB::commit(); // 告知结果 return json_send(['code'=>'success','msg'=>'操作成功','path'=>'']); } catch (\Throwable $th){ // 回滚 DB::rollBack(); // 添加失败 return json_send(['code'=>'error','msg'=>'操作失败','data'=>['error'=>$th->getMessage()]]); } } // 分配数据 $this->assign('oldData',$oldData); // 加载模板 return $this->fetch(); } }