model = new Student(); } /** * 获取学员列表 * @param array $where * @return array */ public function getPage(array $where = []) { $field = 'id,user_id,campus_id,class_id,name,gender,age,birthday,member_label,emergency_contact,contact_phone,note,status,created_at,updated_at,deleted_at'; $order = 'id asc'; $search_model = $this->model->withSearch(["campus_id","name","emergency_contact","contact_phone","created_at","member_label"], $where)->with(['customerResources','campus','classGrade'])->field($field)->order($order); return $this->pageQuery($search_model, function ($item, $key) { $item = $this->makeUp($item); }); } /** * 获取学员信息 * @param int $id * @return array */ public function getInfo(int $id) { $field = 'id,user_id,campus_id,class_id,name,gender,age,birthday,emergency_contact,member_label,contact_phone,note,status,created_at,updated_at,deleted_at'; $info = $this->makeUp($this->model->field($field)->where([['id', "=", $id]])->with(['customerResources','campus','classGrade'])->findOrEmpty()->toArray()); return $info; } /** * 组合整理数据 * @param $data */ public function makeUp($data){ //会员标签 if(!empty($data['member_label'])){ $data['member_label_array'] = (new StudentLabelService())->getMemberLabelListByLabelIds($data['member_label']); } return $data; } /** * 添加学员 * @param array $data * @return mixed */ public function add(array $data) { $res = $this->model->create($data); return $res->id; } /** * 学员编辑 * @param int $id * @param array $data * @return bool */ public function edit(int $id, array $data) { $this->model->where([['id', '=', $id]])->update($data); return true; } /** * 删除学员 * @param int $id * @return bool */ public function del(int $id) { $model = $this->model->where([['id', '=', $id]])->find(); $res = $model->delete(); return $res; } public function getCustomerResourcesAll(){ $customerResourcesModel = new CustomerResources(); return $customerResourcesModel->select()->toArray(); } public function getCampusAll(){ $campusModel = new Campus(); return $campusModel->select()->toArray(); } public function getClassGradeAll(){ $classGradeModel = new ClassGrade(); return $classGradeModel->select()->toArray(); } public function label_all(){ $field = 'label_id, label_name'; return (new StudentLabel())->where([ ['label_id', '>', 0] ])->field($field)->order('sort desc,create_time desc')->select()->toArray(); } }