Explorar o código

修改学校管理

jun hai 4 meses
pai
achega
30e4972c4a

+ 51 - 0
app/Http/Controllers/Api/School.php

@@ -0,0 +1,51 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+use App\Http\Controllers\Api\Api;
+use App\Models\School as Model;
+use App\Models\Custom;
+
+/**
+ * 区域 学校 年级 班级数据
+ *
+ * @author jun
+ *
+ * */
+class School extends Api{
+
+
+    /**
+     * 获取学校列表(区域 学校 年级 班级数据)			/api/School/get_list
+     *
+     * @param	string		$code		授权码
+     *
+     * */
+    public function get_list(Model $Model,Custom $Custom){
+        // 接口验签
+        // $this->verify_sign();
+        // 检查登录
+        $uid							= $this->getUid();
+        // 学校列表
+        $schoolList			            = $Model->getList();
+        //学校区域列表
+        $areaList			            = $Model->getAreaList();
+        //学校年级列表
+        $gradeList			            = $Model->getGradeList();
+        //学校班级列表
+        $classList			            = $Model->getClassList();
+        // 最终列表
+        $list							= [];
+        // 循环处理数据
+        foreach ( $schoolList as $value ) {
+            $list[$value['area']][]		= $value;
+        }
+        $data['area_list']               = $areaList;
+        $data['school_list']             = $schoolList;
+        $data['grade_list']              = $gradeList;
+        $data['class_list']              = $classList;
+        // 返回结果
+        return							json_send(['code'=>'success','msg'=>'获取成功','data'=>$data]);
+    }
+
+}

+ 52 - 0
app/Http/Requests/Admin/School.php

@@ -0,0 +1,52 @@
+<?php namespace App\Http\Requests\Admin;
+
+use App\Http\Requests\BaseRequest;
+use Illuminate\Validation\Rule;
+
+/**
+ * 学校验证器
+ * 
+ */
+class School extends BaseRequest
+{
+    /**
+     * 获取应用于请求的规则
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        // 返回结果
+        return      [
+            // 有时候我们希望某个字段在第一次验证失败后就停止运行验证规则,只需要将 bail 添加到规则中:
+            // 验证字段,验证规则,提示信息
+	        'name' 			    => 'required|unique:school,name,'.request('id',0),
+	        'id'                => 'required|integer|gt:0',
+        ];
+    }
+
+    
+    // 场景列表
+    protected   $scenes         = [
+		'add'  		            => ['name'],
+        'edit'  		        => ['id','name'],
+        'set_status'  		    => ['id'],
+	];
+
+    /**
+     * 获取已定义验证规则的错误消息
+     *
+     * @return array
+     */
+    public function messages()
+    {
+        return [
+            'name.required'     => '学校名称必填',
+            'name.unique'	    => '学校名称已经存在',
+            'id.required'       => 'ID未知',
+            'id.integer'        => 'ID格式错误',
+            'id.gt'   		    => 'ID格式错误',
+        ];
+    }
+    
+}

+ 152 - 0
app/Models/School.php

@@ -0,0 +1,152 @@
+<?php namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use App\Models\Traits\School\Area as SchoolArea;
+use App\Models\Traits\School\SchoolClass as SchoolClass;
+use App\Models\Traits\School\SchoolGrade as SchoolGrade;
+
+/**
+ * 商业公司模型
+ * 
+ */
+class School extends Model
+{
+    use HasFactory,SchoolArea,SchoolClass,SchoolGrade;
+
+    // 与模型关联的表名
+    protected $table = 'school';
+    // 是否主动维护时间戳
+    public $timestamps = false;
+    // 定义时间戳字段名
+    // const CREATED_AT = 'insert_time';
+    // const UPDATED_AT = 'update_time';
+
+    /**
+     * 添加数据
+     * 
+     */
+    public function add($data)
+    {
+        // 时间
+        $data['insert_time']				= time();
+        $data['update_time']				= time();
+        // 写入数据表
+        $id						            = $this->query()->insertGetId($data);
+        // 如果操作失败
+        if( !$id )                          return $id;
+        // 更新缓存
+        $this->getList(true);
+        // 返回结果
+        return                              $id;
+    }
+
+    /**
+     * 添加数据
+     * 
+     */
+    public function edit($id,$data)
+    {
+        // 更新时间
+        $data['update_time']                = time();
+        // 写入数据表
+        $result						        = $this->query()->where(['id'=>$id])->update($data);
+        // 如果操作失败
+        if( !$result )                      return $result;
+        // 更新缓存
+        $this->getList(true);
+        // 返回结果
+        return                              $result;
+    }
+
+    /**
+     * 获取列表
+     * @param   Bool    $force  是否强制更新
+     * 
+     */
+    public function getList($force = false)
+    {
+        // 结果数据
+        $list                  = $force ? [] : cache('admin:school:list');
+        // 不存在数据
+        if ( !$list ) {
+            // 从数据库获取数据
+            $data              = $this->query()->where(['status'=>0])->get();
+            // 是否有数据
+            $data              = $data ? $data->toArray() : [];
+            // 循环处理数据
+            $list              = [];
+            // 进行更新
+            foreach ($data as $value) {
+                // 重组数据
+                $list[$value['id']] = $value;
+            }
+            // 存起来
+            cache(['admin:school:list'=>$list]);
+        }
+        // 返回结果
+        return                  $list;
+    }
+
+    /**
+     * 获取配置平台对应的应用数据
+     * 
+     * @param   Array      用户ID
+     * @param   String     指定字段
+     * 
+     */
+    public function getOne($id,$field='')
+    {
+        // 获取列表数据
+        $list                   = $this->getList();
+        // 获取数据
+        $one                    = isset($list[$id]) ? $list[$id] : [];
+        // 返回值
+        return                  empty($field) ? $one : ( isset($one[$field]) ? $one[$field] : null);
+    }
+
+
+    /**
+     * 获取配置平台对应的应用数据
+     * 
+     * @param   Array      用户ID
+     * @param   String     指定字段
+     * 
+     */
+    public function getIdByName($name)
+    {
+        // 获取列表数据
+        $list                               = $this->getList();
+        // 获取数据
+        foreach ($list as $value) {
+            // 如果有名称
+            if( $name == $value['name'] )   return $value['id'];
+        }
+        // 写入数据表
+        $id						            = $this->add(['name'=>$name]);
+        // 返回结果
+        return                              $id;
+    }
+
+
+    /**
+     * 编码转id
+     * 
+     * @param  string $code 编码
+     * 
+     */
+    public function codeToId($code){
+        return intval(str_ireplace('klsj','',$code));
+    }
+ 
+    /**
+     * id转编码
+     * 
+     * @param  int  $id 编码
+     * 
+     */
+    public function idToCode($id){
+         return 'klsj'. str_pad($id, 9, '0', STR_PAD_LEFT);;
+    }
+
+}

+ 41 - 0
app/Models/Traits/School/Area.php

@@ -0,0 +1,41 @@
+<?php
+
+namespace App\Models\Traits\School;
+
+
+/**
+ *
+ * 学校区域
+ * 
+ */
+trait Area
+{
+
+    // 学校区域
+    private     $areaList       =   [
+                                '1'=>'罗湖区',
+                                '2'=>'福田区',
+                                '3'=>'南山区',
+                                '4'=>'宝安区',
+                                '5'=>'龙岗区',
+                                '6'=>'龙华区',
+                                '7'=>'盐田区',
+                                '8'=>'坪山区',
+                                '9'=>'光明区',
+                                '10'=>'大鹏新区',
+                                '11'=>'市直属中小学',
+                                '12'=>'其他',
+                            ];
+
+    /**
+     * 交易类型列表
+     * 
+     */
+    public function getAreaList(){
+        // 返回数据
+        return                  $this->areaList;
+    }
+
+
+
+}

+ 51 - 0
app/Models/Traits/School/SchoolClass.php

@@ -0,0 +1,51 @@
+<?php
+
+namespace App\Models\Traits\School;
+
+
+/**
+ * 学校班级
+ *
+ * 
+ */
+trait SchoolClass
+{
+
+    // 学校班级
+    private     $list       =   [
+                                '1'=>'1班',
+                                '2'=>'2班',
+                                '3'=>'3班',
+                                '4'=>'4班',
+                                '5'=>'5班',
+                                '6'=>'6班',
+                                '7'=>'7班',
+                                '8'=>'8班',
+                                '9'=>'9班',
+                                '10'=>'10班',
+                                '11'=>'11班',
+                                '12'=>'12班',
+                                '13'=>'13班',
+                                '14'=>'14班',
+                                '15'=>'15班',
+                                '16'=>'16班',
+                                '17'=>'17班',
+                                '18'=>'18班',
+                                '19'=>'A班',
+                                '20'=>'B班',
+                                '21'=>'C班',
+                                '22'=>'D班',
+                            ];
+
+    /**
+     * 交易类型列表
+     * 
+     */
+    public function getClassList(){
+        // 返回数据
+        return                  $this->list;
+    }
+
+
+
+}

+ 38 - 0
app/Models/Traits/School/SchoolGrade.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace App\Models\Traits\School;
+
+
+/**
+ * 学校年级
+ *
+ * 
+ */
+trait SchoolGrade
+{
+
+    // 学校年级
+    private     $list       =   [
+                                '1'=>'一年级',
+                                '2'=>'二年级',
+                                '3'=>'三年级',
+                                '4'=>'四年级',
+                                '5'=>'五年级',
+                                '6'=>'六年级',
+                                '7'=>'七年级',
+                                '8'=>'八年级',
+                                '9'=>'九年级',
+                            ];
+
+    /**
+     * 交易类型列表
+     * 
+     */
+    public function getGradeList(){
+        // 返回数据
+        return                  $this->list;
+    }
+
+
+
+}