request->isPost()){ return $this->fail('请求方式错误'); } $params=$this->request->post(['page_no','page_size','type','check_status']); $where = []; if (isset($params['check_status']) && $params['check_status'] != '') { $where[] = ['check_status', '=', $params['check_status']]; } if (isset($params['type']) && $params['type'] != '') { $where[] = ['type', 'in', $params['type']]; } $pageNo = !empty($params['page_no']) ? $params['page_no'] : 1; $pageSize = !empty($params['page_size']) ? $params['page_size'] : 20; $data = Approve::where($where) ->with('task') ->field('*') ->append(['area_manager', 'company_name'], true) ->page($pageNo, $pageSize) ->order(['id' => 'desc']) ->select() ->withAttr('area_manager',function($value,$data){ return Admin::where(['id' => $data['check_admin_ids']])->value('name'); }) ->withAttr('company_name',function($value,$data){ $task = Task::where('id', $data['task_id'])->find(); return Company::where(['id' => $task['company_id'] ?? 0])->value('company_name'); }) ->toArray(); $count = Approve::where($where)->count(); $result = [ 'lists' => $data, 'count' => $count, 'page_no' => $pageNo, 'page_size' => $pageSize ]; return $this->success('请求成功',$result); } public function audit() { try { $params = $this->request->param(); if(empty($params['id'])){ return $this->fail('缺少必要参数id'); } if(empty($params['check_status'])){ return $this->fail('缺少必要参数审核状态'); } $approve = Approve::find($params['id']); if (!$approve) { $this->fail('数据不存在'); } Db::startTrans(); // 拒绝通过 要让用户今天可以继续做任务 if ($params['check_status'] == 3) { $this->refuse($params, $approve); } // 修改任务完成状态 if ($params['check_status'] == 2) { if ($approve->type == Approve::APPROVE_TYPE_7) { $taskTemplate = TaskTemplate::where(['id'=>$approve->business_id])->find(); // 提前完成 if ($taskTemplate['day_count'] < $taskTemplate['stage_day_one']) { if (bccomp($params['amount'], 300000, 2) == -1) { $this->fail('该任务提前完成条件:销售总额必须达到30万元及以上'); } else { // 提前完成标识 $extend = json_decode($taskTemplate['extend'], true); $extend['early_finish'] = 1; $taskTemplate->extend = json_encode($extend); $taskTemplate->save(); $this->pass($approve, $params); } } else { $this->pass($approve, $params); } } else { $this->pass($approve); } } Db::commit(); return $this->success('审核成功'); } catch (\Exception $e) { Db::rollback(); return $this->fail($e->getFile().$e->getLine().$e->getMessage()); } } // 通过 private function pass($approve, $params=[]) { $approve->check_status = 2; $approve->update_time = time(); $approve->save(); // 任务 $task = Task::find($approve['task_id']); if ($task['status'] == 2) { $task->status = 3; $task->save(); } // 镇农科公司任务-数字农贸宣传业务、加工业务的建设和招商工作任务 结算 if ($approve->type == Approve::APPROVE_TYPE_4) { $taskSchedulePlan = TaskSchedulingPlan::where('la_task_scheduling_plan.id', $task['scheduling_plan_id']) ->where('is_pay',0) ->with(['template_info']) ->withJoin(['scheduling'], 'left') ->where('scheduling.company_type', 41) ->find() ->toArray(); TaskLogic::dealTaskMarketingDirector10($taskSchedulePlan, $approve); } if ($approve->type == Approve::APPROVE_TYPE_5) { $taskSchedulePlan = TaskSchedulingPlan::where('la_task_scheduling_plan.id', $task['scheduling_plan_id']) ->where('is_pay',0) ->with(['template_info']) ->withJoin(['scheduling'], 'left') ->where('scheduling.company_type', 17) ->find() ->toArray(); TaskLogic::dealVillageTask6($taskSchedulePlan); } if ($approve->type == Approve::APPROVE_TYPE_6) { $taskSchedulePlan = TaskSchedulingPlan::where('la_task_scheduling_plan.id', $task['scheduling_plan_id']) ->where('is_pay',0) ->with(['template_info']) ->withJoin(['scheduling'], 'left') ->where('scheduling.company_type', 17) ->find() ->toArray(); TaskLogic::dealVillageTask8($taskSchedulePlan); } if ($approve->type == Approve::APPROVE_TYPE_7) { // 需要手动输入销售总额 $approve->amount = $params['amount']; $approve->save(); } if ($approve->type == Approve::APPROVE_TYPE_8) { // 需要手动输入申请的政策补贴金额 $approve->amount = $params['amount']; $approve->save(); } if ($approve->type == Approve::APPROVE_TYPE_9) { $taskSchedulePlan = TaskSchedulingPlan::where('la_task_scheduling_plan.id', $task['scheduling_plan_id']) ->where('is_pay',0) ->with(['template_info']) ->withJoin(['scheduling'], 'left') ->where('scheduling.company_type', 17) ->find() ->toArray(); TaskLogic::masterTask8Settlement($taskSchedulePlan); } } // 拒绝 private function refuse($params, $approve) { $approve->check_status = $params['check_status']; $approve->remark = $params['remark']; $approve->update_time = time(); $approve->save(); // 更新schedule_plan时间和task的时间为今天依旧可提交 $schedulePlan = TaskSchedulingPlan::find(['tast_id' => $approve['task_id']]); if (empty($schedule_plan)) { return $this->fail('数据异常,任务计划不存在'); } $time = strtotime(date('Y-m-d')); TaskSchedulingPlan::where(['id' => $schedulePlan['id']])->update([ 'start_time'=>$time, 'end_time'=>$time + 86399 ]); Task::where('id', $approve['task_id'])->update([ 'start_time'=>$time, 'end_time'=>$time + 86399 ]); } }