hrjy 3 years ago
parent
commit
72db39beba

+ 31 - 8
app/admin/controller/diagnosis/DiagnosisOrder.php

@@ -37,13 +37,35 @@ class DiagnosisOrder extends AuthController
      */
     public function index()
     {
-        $count['djd'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', 0)->where('paid', 1)->count();
-        $count['yjd'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', 1)->count();
-        $count['dqd'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', 2)->count();
-        $count['ywc'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', 3)->count();
-        $count['sh'] = \app\admin\model\diagnosis\DiagnosisOrder::where('after_sales', 1)->count();
-        $count['qx'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', -1)->where('refund_status',0)->count();
-        $count['gq'] = \app\admin\model\diagnosis\DiagnosisOrder::where('status', -2)->where('refund_status',0)->count();
+        $admin = $this->adminInfo;
+        $where  = [];
+        if ($admin['roles'] > 1){
+            if ($admin['roles'] == 2){
+                $where[] = ['d.province', 'like', '%'.$admin['province'].'%'];
+            }
+            if ($admin['roles'] == 3){
+                $city = explode(',', $admin['city']);
+                $where[] = ['d.city', 'like', '%'.$city[1].'%'];
+            }
+            if ($admin['roles'] == 4){
+                $where[] = ['d.hospital_id', '=', $admin['hospital_id']];
+            }
+        }
+
+        $count['djd'] = \app\admin\model\diagnosis\DiagnosisOrder::alias('a')
+            ->leftJoin('diagnosis_order_attr d', 'd.oid = a.id')->where('a.status', 0)->where($where)->where('a.paid', 1)->count();
+        $count['yjd'] = \app\admin\model\diagnosis\DiagnosisOrder::alias('a')
+            ->leftJoin('diagnosis_order_attr d', 'd.oid = a.id')->where('a.status', 1)->count();
+        $count['dqd'] = \app\admin\model\diagnosis\DiagnosisOrder::alias('a')
+            ->leftJoin('diagnosis_order_attr d', 'd.oid = a.id')->where('a.status', 2)->count();
+        $count['ywc'] = \app\admin\model\diagnosis\DiagnosisOrder::alias('a')
+            ->leftJoin('diagnosis_order_attr d', 'd.oid = a.id')->where('a.status', 3)->count();
+        $count['sh'] = \app\admin\model\diagnosis\DiagnosisOrder::alias('a')
+            ->leftJoin('diagnosis_order_attr d', 'd.oid = a.id')->where('a.after_sales', 1)->count();
+        $count['qx'] = \app\admin\model\diagnosis\DiagnosisOrder::alias('a')
+            ->leftJoin('diagnosis_order_attr d', 'd.oid = a.id')->where('a.status', -1)->where('refund_status',0)->count();
+        $count['gq'] = \app\admin\model\diagnosis\DiagnosisOrder::alias('a')
+            ->leftJoin('diagnosis_order_attr d', 'd.oid = a.id')->where('a.status', -2)->where('refund_status',0)->count();
 
         $this->assign([
             'year' => get_month(),
@@ -66,8 +88,9 @@ class DiagnosisOrder extends AuthController
             ['data', ''],
             ['status', ''],
         ]);
+        $admin = $this->adminInfo;
 
-        return Json::successlayui(model::list($where));
+        return Json::successlayui(model::list($where, $admin));
     }
 
     /**

+ 61 - 6
app/admin/controller/setting/SystemAdmin.php

@@ -46,14 +46,34 @@ class SystemAdmin extends AuthController
         $f[] = Form::input('pwd', '管理员密码')->type('password');
         $f[] = Form::input('conf_pwd', '确认密码')->type('password');
         $f[] = Form::input('real_name', '管理员姓名');
-        $f[] = Form::select('roles', '管理员身份')->setOptions(function () use ($admin) {
+        $f[] = Form::selectOne('roles', '管理员身份')->setOptions(function () use ($admin) {
             $list = SystemRole::getRole(bcadd($admin->level, 1, 0));
             $options = [];
             foreach ($list as $id => $roleName) {
                 $options[] = ['label' => $roleName, 'value' => $id];
             }
             return $options;
-        })->multiple(1);
+        })->filterable(true);
+        $f[] = Form::selectOne('hospital_id', '绑定医院')->setOptions(function () use ($admin) {
+            $list = do_request('http://doctortest.igxys.com/api/index/getHospitalList', []);
+            $list = json_decode($list)->data->list;
+
+            $options = [];
+            foreach ($list as $id => $roleName) {
+                $options[] = ['label' => $roleName->name, 'value' => $roleName->id];
+            }
+            return $options;
+        })->filterable(true);
+        $province = \app\admin\model\system\SystemCity::where('level', 0)->select();
+        $table = [];
+        foreach ($province as $item){
+            $table[] = ['value' => $item['name'], 'label' => $item['name']];
+        }
+
+        $f[] = Form::cascader('province', '绑定省', [])->setProps([
+           'data' => $table,
+        ]);
+        $f[] = Form::city('city', '绑定市');
         $f[] = Form::radio('status', '状态', 1)->options([['label' => '开启', 'value' => 1], ['label' => '关闭', 'value' => 0]]);
         $form = Form::make_post_form('添加管理员', $f, Url::buildUrl('save'));
         $this->assign(compact('form'));
@@ -73,7 +93,10 @@ class SystemAdmin extends AuthController
             'conf_pwd',
             'pwd',
             'real_name',
-            ['roles', []],
+            'hospital_id',
+            ['province', []],
+            ['city', []],
+            ['roles', ''],
             ['status', 0]
         ]);
         if (!$data['account']) return Json::fail('请输入管理员账号');
@@ -82,6 +105,10 @@ class SystemAdmin extends AuthController
         if ($data['pwd'] != $data['conf_pwd']) return Json::fail('两次输入密码不想同');
         if (AdminModel::be($data['account'], 'account')) return Json::fail('管理员账号已存在');
         $salt = substr(md5(rand(1, 999999)), 0, 6);
+        if ($data['province'])
+            $data['province'] = implode(',', $data['province']);
+        if ($data['city'])
+            $data['city'] = implode(',', $data['city']);
         $data['pwd'] = md5(md5($data['pwd']) . md5($salt));
         $data['salt'] = $salt;
         $data['add_time'] = time();
@@ -108,14 +135,33 @@ class SystemAdmin extends AuthController
         $f[] = Form::input('pwd', '管理员密码')->type('password');
         $f[] = Form::input('conf_pwd', '确认密码')->type('password');
         $f[] = Form::input('real_name', '管理员姓名', $admin->real_name);
-        $f[] = Form::select('roles', '管理员身份', explode(',', $admin->roles))->setOptions(function () use ($admin) {
+        $f[] = Form::selectOne('roles', '管理员身份', $admin->roles)->setOptions(function () use ($admin) {
             $list = SystemRole::getRole($admin->level);
             $options = [];
             foreach ($list as $id => $roleName) {
                 $options[] = ['label' => $roleName, 'value' => $id];
             }
             return $options;
-        })->multiple(1);
+        })->filterable(true);
+        $f[] = Form::selectOne('hospital_id', '绑定医院', (string)$admin->hospital_id)->setOptions(function () use ($admin) {
+            $list = do_request('http://doctortest.igxys.com/api/index/getHospitalList', []);
+            $list = json_decode($list)->data->list;
+            $options = [];
+            foreach ($list as $id => $roleName) {
+                $options[] = ['label' => $roleName->name, 'value' => $roleName->id];
+            }
+            return $options;
+        })->filterable(true);
+        $province = \app\admin\model\system\SystemCity::where('level', 0)->select();
+        $table = [];
+        foreach ($province as $item){
+            $table[] = ['value' => $item['name'], 'label' => $item['name']];
+        }
+
+        $f[] = Form::cascader('province', '绑定省', [$admin->province])->setProps([
+            'data' => $table,
+        ]);
+        $f[] = Form::city('city', '绑定市',explode(',', $admin->city));
         $f[] = Form::radio('status', '状态', 1)->options([['label' => '开启', 'value' => 1], ['label' => '关闭', 'value' => 0]]);
         $form = Form::make_post_form('编辑管理员', $f, Url::buildUrl('update', compact('id')));
         $this->assign(compact('form'));
@@ -136,9 +182,18 @@ class SystemAdmin extends AuthController
             'conf_pwd',
             'pwd',
             'real_name',
-            ['roles', []],
+            'hospital_id',
+            ['province'],
+            ['city'],
+            ['roles', ''],
             ['status', 0]
         ]);
+        if ($data['province'])
+            $data['province'] = implode(',', $data['province']);
+        if ($data['city']){
+            $data['city'] = implode(',', $data['city']);
+        }
+
         if (!$data['account']) return Json::fail('请输入管理员账号');
         if (!$data['roles']) return Json::fail('请选择至少一个管理员身份');
         if (!$data['pwd'])

+ 17 - 2
app/admin/model/diagnosis/DiagnosisOrder.php

@@ -36,12 +36,13 @@ class DiagnosisOrder extends BaseModel
     use SoftDelete;
     protected $deleteTime = 'delete_time';
 
-    public static function list($where)
+    public static function list($where, $admin)
     {
         $model = self::alias('a')
             ->field('a.*,b.nickname,c.nickname as re_nickname')
             ->leftJoin('user b', 'a.uid = b.uid')
             ->leftJoin('user c', 'a.order_receiving = c.uid')
+            ->leftJoin('diagnosis_order_attr d', 'd.oid = a.id')
             ->order('a.id DESC');
 
         if ($where['name'])$model->where('a.uid|b.nickname' , 'like', '%'.$where['name'].'%');
@@ -49,6 +50,20 @@ class DiagnosisOrder extends BaseModel
         if ($where['rece'])$model->where('a.order_receiving|c.nickname' , 'like', '%'.$where['rece'].'%');
         if ($where['type'])$model->where('a.type' , $where['type']);
         if ($where['pay_type']) $model->where('a.pay_type', $where['pay_type']);
+        if ($admin['roles'] > 0){
+            if ($admin['roles'] == 2){
+                $model->where('d.province', 'like', '%'.$admin['province'].'%');
+            }
+            if ($admin['roles'] == 3){
+                $city = explode(',', $admin['city']);
+                $model->where('d.city', 'like', '%'.$city[1].'%');
+            }
+            if ($admin['roles'] == 4){
+                $model->where('d.hospital_id', $admin['hospital_id']);
+            }
+        }
+
+
         if ($where['status'] == 0 && $where['status'] != ''){
 
             $model->where('a.status', 0)->where('paid', 1);
@@ -87,7 +102,7 @@ class DiagnosisOrder extends BaseModel
         }
 
 
-        $list = $model->select()->toArray();
+        $list = $model->select();
         foreach ($list as &$item)
         {
             if ($item['paid'] == 0){

+ 35 - 35
app/admin/view/index/index.php

@@ -94,41 +94,41 @@
             <a href="javascript:void(0);" class="roll-nav roll-right J_tabReply" title="返回"><i class="fa fa-reply"></i> </a>
             <a href="javascript:void(0);" class="roll-nav roll-right J_tabRefresh" title="刷新"><i class="fa fa-refresh"></i> </a>
             <a href="javascript:void(0);" class="roll-nav roll-right J_tabFullScreen" title="全屏"><i class="fa fa-arrows"></i> </a>
-            <a href="javascript:void(0);" class="roll-nav roll-right J_notice" data-toggle="dropdown" aria-expanded="true" title="消息"><i class="fa fa-bell"></i> <span class="badge badge-danger" id="msgcount">0</span></a>
-            <ul class="dropdown-menu dropdown-alerts dropdown-menu-right" >
-                <li>
-                    <a class="J_menuItem" href="{:Url('order.store_order/index')}">
-                        <div>
-                            <i class="fa fa-building-o"></i> 待发货
-                            <span class="pull-right text-muted small" id="ordernum">0个</span>
-                        </div>
-                    </a>
-                </li>
-                <li class="divider"></li>
-                <li>
-                    <a class="J_menuItem" href="{:Url('store.store_product/index',array('type'=>5))}">
-                        <div>
-                            <i class="fa fa-pagelines"></i> 库存预警 <span class="pull-right text-muted small" id="inventory">0个</span>
-                        </div>
-                    </a>
-                </li>
-                <li class="divider"></li>
-                <li>
-                    <a class="J_menuItem" href="{:Url('store.store_product_reply/index')}">
-                        <div>
-                            <i class="fa fa-comments-o"></i> 新评论 <span class="pull-right text-muted small" id="commentnum">0个</span>
-                        </div>
-                    </a>
-                </li>
-                <li class="divider"></li>
-                <li>
-                    <a class="J_menuItem" href="{:Url('finance.user_extract/index')}">
-                        <div>
-                            <i class="fa fa-cny"></i> 申请提现 <span class="pull-right text-muted small" id="reflectnum">0个</span>
-                        </div>
-                    </a>
-                </li>
-            </ul>
+<!--            <a href="javascript:void(0);" class="roll-nav roll-right J_notice" data-toggle="dropdown" aria-expanded="true" title="消息"><i class="fa fa-bell"></i> <span class="badge badge-danger" id="msgcount">0</span></a>-->
+<!--            <ul class="dropdown-menu dropdown-alerts dropdown-menu-right" >-->
+<!--                <li>-->
+<!--                    <a class="J_menuItem" href="{:Url('order.store_order/index')}">-->
+<!--                        <div>-->
+<!--                            <i class="fa fa-building-o"></i> 待发货-->
+<!--                            <span class="pull-right text-muted small" id="ordernum">0个</span>-->
+<!--                        </div>-->
+<!--                    </a>-->
+<!--                </li>-->
+<!--                <li class="divider"></li>-->
+<!--                <li>-->
+<!--                    <a class="J_menuItem" href="{:Url('store.store_product/index',array('type'=>5))}">-->
+<!--                        <div>-->
+<!--                            <i class="fa fa-pagelines"></i> 库存预警 <span class="pull-right text-muted small" id="inventory">0个</span>-->
+<!--                        </div>-->
+<!--                    </a>-->
+<!--                </li>-->
+<!--                <li class="divider"></li>-->
+<!--                <li>-->
+<!--                    <a class="J_menuItem" href="{:Url('store.store_product_reply/index')}">-->
+<!--                        <div>-->
+<!--                            <i class="fa fa-comments-o"></i> 新评论 <span class="pull-right text-muted small" id="commentnum">0个</span>-->
+<!--                        </div>-->
+<!--                    </a>-->
+<!--                </li>-->
+<!--                <li class="divider"></li>-->
+<!--                <li>-->
+<!--                    <a class="J_menuItem" href="{:Url('finance.user_extract/index')}">-->
+<!--                        <div>-->
+<!--                            <i class="fa fa-cny"></i> 申请提现 <span class="pull-right text-muted small" id="reflectnum">0个</span>-->
+<!--                        </div>-->
+<!--                    </a>-->
+<!--                </li>-->
+<!--            </ul>-->
             <a href="javascript:void(0);" class="roll-nav roll-right J_tabSetting right-sidebar-toggle" title="更多"><i class="fa fa-tasks"></i></a>
             <div class="btn-group roll-nav roll-right">
                 <button class="dropdown J_tabClose" data-toggle="dropdown">关闭<span class="caret"></span>

+ 6 - 0
app/api/controller/diagnosis/DiagnosisOrderController.php

@@ -50,6 +50,9 @@ class DiagnosisOrderController
             ['urgent_phone'],
             ['transfer_address'],
             ['remarks'],
+            ['hospital_id'],
+            ['province'],
+            ['city'],
         ]);
 
         if (empty($data['type'])) return app('json')->fail('传入type');
@@ -118,6 +121,9 @@ class DiagnosisOrderController
             'urgent_phone' => $data['urgent_phone'],
             'transfer_address' => $data['transfer_address'],
             'remarks' => $data['remarks'],
+            'hospital_id' => $data['hospital_id'],
+            'province' => $data['province'],
+            'city' => $data['city'],
         ];
         list($msec, $sec) = explode(' ', microtime());
         $msectime = number_format((floatval($msec) + floatval($sec)) * 1000, 0, '', '');