From cba67280f021ea732581829c472a703a1e303824 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Fri, 10 Apr 2020 11:00:11 +0800
Subject: [PATCH] 添加    医生的功能

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java   |    6 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml                                           |    2 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html                                                       |  711 +++++++++++++++++++++++++++++++++++++++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java                       |   19 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html                                                     |    6 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java |   10 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java                        |    9 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java           |    3 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java   |    7 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml                                   |    4 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java |   42 ++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java       |    7 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java             |   12 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java       |   37 ++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java               |    4 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java     |   33 +
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java         |    5 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java     |  125 ++++++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java                       |    9 
 19 files changed, 1,025 insertions(+), 26 deletions(-)

diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java
index 1927292..e738e58 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java
@@ -1,5 +1,6 @@
 package com.kidgrow.usercenter.model;
 
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.kidgrow.common.model.SuperModel;
 import lombok.AllArgsConstructor;
@@ -7,6 +8,8 @@
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 import org.hibernate.validator.constraints.NotEmpty;
+
+import javax.validation.constraints.NotNull;
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -32,7 +35,7 @@
     /**
      * 所属医院ID
      */
-    @NotEmpty(message = "所属医院ID不能为空")
+    @NotNull(message = "所属医院ID不能为空")
     private Long hospitalId;
     /**
      * 医院名称
@@ -42,12 +45,10 @@
     /**
      * 科室ID
      */
-    @NotEmpty(message = "科室ID不能为空")
     private Long departmentId;
     /**
      * 科室名称
      */
-    @NotEmpty(message = "科室名称不能为空")
     private String departmentName;
     /**
      * 医生姓名
@@ -98,14 +99,24 @@
     /**
      * 是否删除,1删除,0未删除
      */
+    @TableLogic
     private Boolean isDel;
     /**
      * 医生状态 1正常 0试用
      */
-    @NotEmpty(message = "医生状态 1正常 0试用不能为空")
+    @NotNull(message = "医生状态 1正常 0试用不能为空")
     private Boolean doctorState;
     /**
      * 启用禁用状态,1启用,0停用
      */
     private Boolean enabled;
+
+    /**
+     * 销售代表的id
+     */
+    private String serverUserId;
+    /**
+     * 销售代表名称
+     */
+    private String serverUserName;
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java
new file mode 100644
index 0000000..b8900fe
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java
@@ -0,0 +1,9 @@
+package com.kidgrow.usercenter.vo;
+
+import lombok.Data;
+
+@Data
+public class SysDoctorDto extends  SysDoctorVo {
+    private String username;
+    private String password;
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java
new file mode 100644
index 0000000..562f388
--- /dev/null
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java
@@ -0,0 +1,9 @@
+package com.kidgrow.usercenter.vo;
+
+import com.kidgrow.usercenter.model.SysDoctor;
+import lombok.Data;
+
+@Data
+public class SysDoctorVo extends SysDoctor {
+    private String username;
+}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java
index c90eea9..9775fca 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java
@@ -1,5 +1,6 @@
 package com.kidgrow.usercenter.service;
 
+import com.kidgrow.common.model.ResultBody;
 import com.kidgrow.usercenter.model.SysDepartment;
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.service.ISuperService;
@@ -29,5 +30,9 @@
     * @return SysDepartment对象
     */
     SysDepartment findByObject(SysDepartment sysDepartment);
+
+    ResultBody findAll(Map<String, Object> params);
+
+    ResultBody findListByHospitalId(Map<String, Object> params);
 }
 
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
index ec3e4b7..988ccbb 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
@@ -1,9 +1,13 @@
 package com.kidgrow.usercenter.service;
 
+import com.kidgrow.common.model.ResultBody;
 import com.kidgrow.usercenter.model.SysDoctor;
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.service.ISuperService;
+import com.kidgrow.usercenter.vo.SysDoctorDto;
+import com.kidgrow.usercenter.vo.SysDoctorVo;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
 /**
@@ -20,7 +24,7 @@
      * @param params
      * @return
      */
-    PageResult<SysDoctor> findList(Map<String, Object> params);
+    PageResult<SysDoctorVo> findList(Map<String, Object> params);
 
 
     /**
@@ -29,5 +33,11 @@
     * @return SysDoctor对象
     */
     SysDoctor findByObject(SysDoctor sysDoctor);
+
+    boolean delete(Long id);
+
+    ResultBody enable(Map<String, Object> params);
+
+    boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request);
 }
 
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
index 42b2137..2c44889 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
@@ -1,5 +1,6 @@
 package com.kidgrow.usercenter.service;
 
+import com.kidgrow.common.model.ResultBody;
 import com.kidgrow.usercenter.model.SysHospital;
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.service.ISuperService;
@@ -29,5 +30,7 @@
     * @return SysHospital对象
     */
     SysHospital findByObject(SysHospital sysHospital);
+
+    ResultBody<SysHospital> findAll(Map<String, Object> params);
 }
 
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
index 8792cdd..28c445c 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
@@ -3,7 +3,9 @@
 import com.kidgrow.common.model.*;
 import com.kidgrow.common.service.ISuperService;
 import com.kidgrow.usercenter.model.SysUserExcel;
+import org.springframework.web.bind.annotation.RequestBody;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -107,4 +109,6 @@
 	boolean delUser(Long id);
 
 	ResultBody findAll(Map<String, Object> map);
+
+	ResultBody getThisUserOrganizationUser(HttpServletRequest request);
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java
index 7095637..f0c9c3b 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java
@@ -1,12 +1,24 @@
 package com.kidgrow.usercenter.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysOrganization;
+import com.kidgrow.usercenter.model.SysHospital;
+import com.kidgrow.usercenter.service.ISysHospitalService;
+import com.kidgrow.usercenter.service.ISysOrganizationService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.kidgrow.common.model.PageResult;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kidgrow.common.service.impl.SuperServiceImpl;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+
 import org.apache.commons.collections4.MapUtils;
 import lombok.extern.slf4j.Slf4j;
 
@@ -25,6 +37,11 @@
 @Slf4j
 @Service
 public class SysDepartmentServiceImpl extends SuperServiceImpl<SysDepartmentMapper, SysDepartment> implements ISysDepartmentService {
+
+    @Autowired
+    private ISysOrganizationService iSysOrganizationService;
+    @Autowired
+    private ISysHospitalService iSysHospitalService;
     /**
      * 列表
      * @param params
@@ -46,4 +63,29 @@
     public SysDepartment findByObject(SysDepartment sysDepartment){
         return baseMapper.findByObject(sysDepartment);
     }
+
+    @Override
+    public ResultBody findAll(Map<String, Object> params) {
+        return  ResultBody.ok().data(baseMapper.selectByMap(params));
+    }
+
+    @Override
+    public ResultBody findListByHospitalId(Map<String, Object> params) {
+        //查询组织
+        Long id = MapUtils.getLong(params, "id");
+        List<SysDepartment> sysDepartments=new ArrayList<>();
+        SysHospital byId = iSysHospitalService.getById(id);
+        if(byId!=null){
+            params=new HashMap<>();
+            params.put("org_parent_id",byId.getOrgId());
+            List<SysOrganization> sysOrganizations = iSysOrganizationService.listByMap(params);
+            if (sysOrganizations.size()>0) {
+                List<Long> collect = sysOrganizations.stream().map(e -> e.getId()).collect(Collectors.toList());
+                QueryWrapper<SysDepartment> queryWrapper=new QueryWrapper();
+                queryWrapper.in("org_id",collect );
+                sysDepartments= baseMapper.selectList(queryWrapper);
+            }
+        }
+        return ResultBody.ok().data(sysDepartments);
+    }
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
index 8566373..4fcd9b5 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
@@ -1,49 +1,156 @@
 package com.kidgrow.usercenter.service.impl;
 
+import com.kidgrow.common.constant.SecurityConstants;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysUser;
+import com.kidgrow.usercenter.service.ISysUserService;
+import com.kidgrow.usercenter.vo.SysDoctorDto;
+import com.kidgrow.usercenter.vo.SysDoctorVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cglib.beans.BeanCopier;
+import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 import com.kidgrow.common.model.PageResult;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kidgrow.common.service.impl.SuperServiceImpl;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
+
 import org.apache.commons.collections4.MapUtils;
 import lombok.extern.slf4j.Slf4j;
 
 import com.kidgrow.usercenter.model.SysDoctor;
 import com.kidgrow.usercenter.mapper.SysDoctorMapper;
 import com.kidgrow.usercenter.service.ISysDoctorService;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @version 1.0
  * @Description: <br>
  * @Project: 用户中心<br>
  * @CreateDate: Created in 2020-04-02 14:02:50 <br>
  * @Author: <a href="4345453@kidgrow.com">liuke</a>
- * @version 1.0
  */
 @Slf4j
 @Service
 public class SysDoctorServiceImpl extends SuperServiceImpl<SysDoctorMapper, SysDoctor> implements ISysDoctorService {
     /**
      * 列表
+     *
      * @param params
      * @return
      */
+    @Autowired
+    private ISysUserService iSysUserService;
+    @Autowired
+    private PasswordEncoder passwordEncoder;
+
     @Override
-    public PageResult<SysDoctor> findList(Map<String, Object> params){
+    public PageResult<SysDoctorVo> findList(Map<String, Object> params) {
         Page<SysDoctor> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
-        List<SysDoctor> list  =  baseMapper.findList(page, params);
-        return PageResult.<SysDoctor>builder().data(list).code(0).count(page.getTotal()).build();
+        List<SysDoctor> list = baseMapper.findList(page, params);
+        List<SysDoctorVo> listvo = new ArrayList<>();
+        list.forEach(e -> {
+            SysDoctorVo vo = new SysDoctorVo();
+            BeanCopier beanCopier = BeanCopier.create(SysDoctor.class, SysDoctorVo.class, false);
+            beanCopier.copy(e, vo, null);
+            //查询用户的登录账号;
+            if (e.getUserId() != null) {
+                SysUser sysUser = iSysUserService.getById(e.getUserId());
+                if (sysUser != null) {
+                    vo.setUsername(sysUser.getUsername());
+                }
+            }
+            listvo.add(vo);
+        });
+        return PageResult.<SysDoctorVo>builder().data(listvo).code(0).count(page.getTotal()).build();
     }
 
     /**
-   * 根据SysDoctor对象当做查询条件进行查询
-   * @param sysDoctor
-   * @return SysDoctor
-   */
+     * 根据SysDoctor对象当做查询条件进行查询
+     *
+     * @param sysDoctor
+     * @return SysDoctor
+     */
     @Override
-    public SysDoctor findByObject(SysDoctor sysDoctor){
+    public SysDoctor findByObject(SysDoctor sysDoctor) {
         return baseMapper.findByObject(sysDoctor);
     }
+
+    @Override
+    public boolean delete(Long id) {
+        //查询user表
+        SysDoctor sysDoctor = baseMapper.selectById(id);
+        if (sysDoctor != null && sysDoctor.getUserId() != null) {
+            boolean b = iSysUserService.delUser(sysDoctor.getUserId());
+        }
+        sysDoctor.setIsDel(true);
+        int i = baseMapper.deleteById(id);
+        return true;
+    }
+
+    @Override
+    public ResultBody enable(Map<String, Object> params) {
+        Long aLong = MapUtils.getLong(params,"id");
+        SysDoctor sysDoctor = baseMapper.selectById(aLong);
+        if (sysDoctor != null && sysDoctor.getUserId() != null) {
+            SysUser byId = iSysUserService.getById(sysDoctor.getUserId());
+            if(byId!=null){
+                byId.setEnabled(true);
+                iSysUserService.updateById(byId);
+            }
+        }
+        if(sysDoctor!=null){
+            sysDoctor.setEnabled(true);
+            baseMapper.updateById(sysDoctor);
+        }else {
+            return ResultBody.failed("禁用失败");
+        }
+        return ResultBody.ok(0,"禁用成功");
+    }
+
+    @Override
+    @Transactional
+    public boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request) {
+        String id = request.getHeader(SecurityConstants.USER_ID_HEADER);
+        if(null==sysDoctor){
+           return  false;
+        }else {
+            if (sysDoctor.getId()==null) {
+                //保存
+                SysUser sysUser=new SysUser();
+                sysUser.setUsername(sysDoctor.getUsername());
+                sysUser.setPassword(passwordEncoder.encode(sysDoctor.getPassword()));
+                sysUser.setNickname(sysDoctor.getHospitalName());
+                sysUser.setHeadImgUrl(sysDoctor.getDoctorLogo());
+                sysUser.setMobile(sysDoctor.getDoctorTel());
+                sysUser.setType("doctor");
+                sysUser.setTenantId("hospital");
+                sysUser.setCreateTime(new Date());
+                SysUser byId = iSysUserService.getById(id);
+                if(byId!=null){
+                    sysUser.setCreateUserId(byId.getId());
+                    sysUser.setCreateUserName(byId.getUsername());
+                }
+                iSysUserService.save(sysUser);
+                //保存doctor的数据
+                SysDoctor sysDoc=new SysDoctor();
+                BeanCopier beanCopier = BeanCopier.create(SysDoctorDto.class, SysDoctor.class, false);
+                beanCopier.copy(sysDoctor,sysDoc,null);
+                sysDoc.setUserId(sysUser.getId());
+                baseMapper.insert(sysDoc);
+            }else {
+                //更新
+                baseMapper.updateById(sysDoctor);
+            }
+        }
+        return true;
+    }
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
index 949389f..accdf78 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
@@ -1,5 +1,6 @@
 package com.kidgrow.usercenter.service.impl;
 
+import com.kidgrow.common.model.ResultBody;
 import org.springframework.stereotype.Service;
 import com.kidgrow.common.model.PageResult;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -46,4 +47,10 @@
     public SysHospital findByObject(SysHospital sysHospital){
         return baseMapper.findByObject(sysHospital);
     }
+
+    @Override
+    public ResultBody<SysHospital> findAll(Map<String, Object> params) {
+        List<SysHospital> sysHospitals = baseMapper.selectByMap(params);
+        return  ResultBody.ok().data(sysHospitals).msg("查询成功");
+    }
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
index bcb4b7c..94f1dad 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kidgrow.common.constant.CommonConstant;
+import com.kidgrow.common.constant.SecurityConstants;
 import com.kidgrow.common.context.ClientContextHolder;
 import com.kidgrow.common.lock.DistributedLock;
 import com.kidgrow.common.model.*;
@@ -14,11 +15,13 @@
 import com.kidgrow.usercenter.model.SysUserExcel;
 import com.kidgrow.usercenter.service.ISysOrganizationService;
 import com.kidgrow.usercenter.service.ISysRoleUserService;
+import com.kidgrow.usercenter.service.ISysUserOrgService;
 import com.kidgrow.usercenter.service.ISysUserService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.hibernate.validator.constraints.NotBlank;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.password.PasswordEncoder;
@@ -27,6 +30,7 @@
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -54,6 +58,8 @@
 
     @Autowired
     private ISysOrganizationService organizationService;
+    @Autowired
+    private ISysUserOrgService iSysUserOrgService;
 
 
 
@@ -285,4 +291,35 @@
         List<SysUser> sysUsers = baseMapper.selectByMap(map);
         return ResultBody.ok().data(sysUsers).msg("操作成功");
     }
+
+    /**
+     * 获取当前用的 组织下的所有人员
+     * @param request
+     * @return
+     */
+    @Override
+    public ResultBody getThisUserOrganizationUser(HttpServletRequest request) {
+        String id = request.getHeader(SecurityConstants.USER_ID_HEADER);
+        List<SysUser> sysUsers=new ArrayList<>();
+        if(StringUtils.isNotBlank(id)){
+            QueryWrapper<SysUserOrg> queryWrapper=new QueryWrapper();
+            queryWrapper.eq("user_id",id);
+            List<SysUserOrg> list = iSysUserOrgService.list(queryWrapper);
+            if(list.size()>0){
+                List<Long> collect = list.stream().map(e -> e.getOrgId()).collect(Collectors.toList());
+                if (collect.size()>0) {
+                    queryWrapper=new QueryWrapper<>();
+                    queryWrapper.in("org_id",collect);
+                    List<SysUserOrg> sysUserOrgs = iSysUserOrgService.list(queryWrapper);
+                    List<Long> userIds = sysUserOrgs.stream().map(e -> e.getUserId()).collect(Collectors.toList());
+                    QueryWrapper<SysUser> sysUserQueryWrapper=new QueryWrapper();
+                    sysUserQueryWrapper.in("id",userIds);
+                    sysUsers= baseMapper.selectList(sysUserQueryWrapper);
+                }
+            }
+        }else {
+            return ResultBody.failed("暂无数据");
+        }
+        return ResultBody.ok().data(sysUsers);
+    }
 }
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
index 04087be..e9af41f 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
@@ -31,13 +31,13 @@
                 and department_name = #{p.departmentName}
             </if>
             <if test="p.doctorName != null and p.doctorName !=''">
-                and doctor_name = #{p.doctorName}
+                and doctor_name like '%${p.doctorName}%'
             </if>
             <if test="p.doctorLogo != null and p.doctorLogo !=''">
                 and doctor_logo = #{p.doctorLogo}
             </if>
             <if test="p.doctorTel != null and p.doctorTel !=''">
-                and doctor_tel = #{p.doctorTel}
+                and doctor_tel like '%${p.doctorTel}%'
             </if>
             <if test="p.doctorRankId != null and p.doctorRankId !=''">
                 and doctor_rank_id = #{p.doctorRankId}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
index 4f68ff7..157e44f 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
@@ -115,4 +115,14 @@
             return ResultBody.failed().msg("删除失败");
         }
     }
+
+    /**
+     * 根据医院获取  组织,通过组织,获取科室;
+     * @param params
+     * @return
+     */
+    @GetMapping("findListByHospitalId")
+    public ResultBody findListByHospitalId(@RequestParam Map<String, Object> params) {
+        return sysDepartmentService.findListByHospitalId(params);
+    }
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
index 51be1e4..0a589ab 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
@@ -2,6 +2,9 @@
 
 import java.util.Map;
 import com.kidgrow.common.controller.BaseController;
+import com.kidgrow.usercenter.vo.SysDoctorVo;
+import com.kidgrow.usercenter.vo.SysDoctorDto;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.ObjectError;
 import org.springframework.web.bind.annotation.*;
@@ -16,13 +19,11 @@
 import com.kidgrow.common.model.*;
 
 import org.springframework.validation.BindingResult;
+
+import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 
 /**
@@ -50,12 +51,12 @@
             @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
     })
     @GetMapping
-    public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) {
+    public PageResult<SysDoctorVo> list(@RequestParam Map<String, Object> params) {
         if(params.size()==0){
             params.put("page",1);
             params.put("limit",10);
         }
-        return ResultBody.ok().data(sysDoctorService.findList(params));
+        return sysDoctorService.findList(params);
     }
 
     /**
@@ -83,7 +84,7 @@
      */
     @ApiOperation(value = "保存")
     @PostMapping
-    public ResultBody save(@Valid @RequestBody SysDoctor sysDoctor, BindingResult bindingResult) {
+    public ResultBody save(@Valid @RequestBody SysDoctorDto sysDoctor, BindingResult bindingResult, HttpServletRequest request) {
         List<String> errMsg= new ArrayList<>();
         if (bindingResult.hasErrors()) {
             for (ObjectError error : bindingResult.getAllErrors()) {
@@ -91,7 +92,8 @@
             }
             return ResultBody.failed().msg(errMsg.toString());
         } else {
-            boolean v= sysDoctorService.saveOrUpdate(sysDoctor);
+            boolean v= sysDoctorService.saveOrUpdateSer(sysDoctor,request);
+
             if(v) {
                 return ResultBody.ok().data(sysDoctor).msg("保存成功");
             }
@@ -107,7 +109,7 @@
     @ApiOperation(value = "删除")
     @DeleteMapping("/{id}")
     public ResultBody delete(@PathVariable Long id) {
-        boolean v= sysDoctorService.removeById(id);
+        boolean v= sysDoctorService.delete(id);
         if(v) {
             return ResultBody.ok().msg("删除成功");
         }
@@ -115,4 +117,17 @@
             return ResultBody.failed().msg("删除失败");
         }
     }
+    /**
+     * 状态
+     */
+    @ApiOperation(value = "修改状态")
+    @PostMapping("enable")
+    public ResultBody enable(@RequestBody Map<String, Object> params) {
+        Long id = MapUtils.getLong(params, "id");
+        if (id==null) {
+            return ResultBody.failed("请选择一条数据");
+        }
+            return sysDoctorService.enable(params);
+    }
+
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
index c138a17..7b1e22b 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
@@ -57,7 +57,11 @@
         }
         return sysHospitalService.findList(params);
     }
-
+    @PostMapping("findAll")
+    @ApiOperation(value = "查询所有列表")
+    public ResultBody<SysHospital> findAll(@RequestBody Map<String, Object> params) {
+        return sysHospitalService.findAll(params);
+    }
     /**
      * 查询
      */
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
index 7e38efd..0bd18d0 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
@@ -336,4 +336,11 @@
     public ResultBody findAll(@RequestParam Map<String,Object> map) {
         return appUserService.findAll(map);
     }
+    /**
+     * 获取当前用的 组织下的所有人员
+     */
+    @GetMapping("users/getThisUserOrganizationUser")
+    public ResultBody getThisUserOrganizationUser(HttpServletRequest request){
+        return appUserService.getThisUserOrganizationUser(request);
+    }
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
index cafec56..563d935 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
@@ -67,6 +67,8 @@
       - sys_user_org
       - sys_dictionaries
       - sys_hospital
+      - sys_doctor
+      - sys_department
     ignoreSqls:
       - com.kidgrow.usercenter.mapper.SysRoleMapper.findAll
 
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
new file mode 100644
index 0000000..f9ba10b
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
@@ -0,0 +1,711 @@
+<div class="layui-card">
+    <div class="layui-card-header">
+        <h2 class="header-title">医生管理</h2>
+        <span class="layui-breadcrumb pull-right">
+            <a href="#!home_console">首页</a>
+            <a><cite>医生管理</cite></a>
+        </span>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-form toolbar">
+            <button id="doctor-btn-add" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>
+            <select placeholder="选择一个应用" id="doctorState" lay-filter="role_clients">
+                <option value="">-请选择-</option>
+                <option value="true">正常</option>
+                <option value="false">试用</option>
+            </select>
+            <select id="hospitalName-seach" placeholder="选择一个应用" lay-filter="role_clients">
+                <option value="">-请选择-</option>
+            </select>
+            <input id="doctorTel" class="layui-input search-input" type="text" placeholder="按手机号..." />&emsp;
+            <input id="doctorName" class="layui-input search-input" type="text" placeholder="按医生..." />&emsp;
+            <button id="app-btn-search" class="layui-btn icon-btn"><i class="layui-icon">&#xe615;</i>搜索</button>
+        </div>
+
+        <!-- 数据表格 -->
+        <table class="layui-table" id="app-table" lay-filter="app-table"></table>
+    </div>
+</div>
+
+<!-- 表格操作列 -->
+
+<script type="text/html" id="doctor-table-bar">
+    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a>
+    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="reset">重置密码</a>
+    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
+    <a class="layui-btn layui-btn-xs" lay-event="del">删除</a>
+    <a class="layui-btn layui-btn-xs" lay-event="enable">停用</a>
+</script>
+
+
+<!-- 表单弹窗 -->
+<script type="text/html" id="app-model">
+    <form id="app-form" lay-filter="app-form" class="layui-form model-form">
+        <input name="id" type="hidden"/>
+        <div class="layui-form-item">
+            <label class="layui-form-label">医院名称</label>
+            <div class="layui-input-block">
+                <input name="hospitalName" id="hospitalName" type="hidden" class="layui-input" maxlength="20"/>
+                       <select id="hospitalId" name="hospitalId" lay-filter="getdepartment"  placeholder="选择一个应用" lay-filter="role_clients">
+                        <option value="">-请选择-</option>
+                    </select>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">科室</label>
+            <div class="layui-input-block">
+                <input name="departmentName" id="departmentName"   placeholder="请输入应用名称" type="hidden" class="layui-input" maxlength="20"/>
+                <select id="departmentId" name="departmentId" lay-filter="departmentId"  placeholder="选择一个应用" lay-filter="role_clients">
+                    <option value="">-请选择-</option>
+                </select>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">医生姓名</label>
+            <div class="layui-input-block">
+                <input name="doctorName"  type="text" class="layui-input" maxlength="20"
+                       lay-verify="required" required />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">医生的头像</label>
+            <div class="layui-input-block">
+                <input name="doctorLogo"  type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">联系方式</label>
+            <div class="layui-input-block">
+                <input name="doctorTel"  type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">职称</label>
+            <div class="layui-input-block">
+                <input name="doctorRank"  type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">其它联系方式</label>
+            <div class="layui-input-block">
+                <input name="doctorOtherLink"  type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">医生的email</label>
+            <div class="layui-input-block">
+                <input name="doctorEmail"  type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">医生简介</label>
+            <div class="layui-input-block">
+                <input name="doctorAbout"  type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">是否医答</label>
+            <div class="layui-input-block">
+                <input name="isAnswer" id="isAnswer-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+                <input name="isAnswer" id="isAnswer-fou" type="radio"  value="false" title="否" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">是否签约医生</label>
+            <div class="layui-input-block">
+                <input name="isSigning" id="isSigning-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+                <input name="isSigning" id="isSigning-fou" type="radio"  value="false" title="否" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label"> 是否置顶</label>
+            <div class="layui-input-block">
+                <input name="isTop" id="isTop-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+                <input name="isTop" id="isTop-fou" type="radio"  value="false" title="否" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label"> 医生状态</label>
+            <div class="layui-input-block">
+                <input name="doctorState" id="doctorState-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+                <input name="doctorState" id="doctorState-fou" type="radio"  value="false" title="否" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label" >销售代表名称</label>
+            <div class="layui-input-block">
+                <input name="serverUserName"  type="text" class="layui-input" maxlength="15"/>
+            </div>
+        </div>
+        <div class="layui-form-item model-form-footer">
+            <button class="layui-btn layui-btn-primary"  ew-event="closeDialog" type="button">取消</button>
+            <button class="layui-btn" id="sure" lay-filter="user-form-submit" lay-submit>保存</button>
+        </div>
+    </form>
+</script>
+
+<!-- 表单弹窗 添加-->
+<script type="text/html" id="app-model-add">
+   
+    <form id="app-form-add" lay-filter="app-form-add" class="layui-form model-form">
+        <input name="id" type="hidden"/>
+        <div class="layui-form-item">
+            <label class="layui-form-label">医院名称</label>
+            <div class="layui-input-block">
+                <input name="hospitalName" id="hospitalId-add" type="hidden" class="layui-input" maxlength="20"/>
+                       <select  id="hospitalName-add" name="hospitalId" lay-filter="getdepartment-add"  placeholder="选择一个应用" lay-filter="role_clients">
+                        <option value="">-请选择-</option>
+                    </select>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">姓名</label>
+            <div class="layui-input-block">
+                <input name="doctorName"  type="text" class="layui-input" maxlength="20"
+                       lay-verify="required" required />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">科室</label>
+            <div class="layui-input-block">
+                <input name="departmentName" id="departmentName"   placeholder="请输入应用名称" type="hidden" class="layui-input" maxlength="20"/>
+                <select id="departmentId" name="departmentId" lay-filter="departmentId"  placeholder="选择一个应用" lay-filter="role_clients">
+                    <option value="">-请选择-</option>
+                </select>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">职称</label>
+            <div class="layui-input-block">
+                <select id="doctorRankId" name="doctorRankId"  lay-filter="doctorRankId" placeholder="选择一个职称" >
+                    <option value="">-请选择-</option>
+                </select>
+                <input name="doctorRank" id='doctorRank' type="hidden" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">联系电话</label>
+            <div class="layui-input-block">
+                <input name="doctorTel"  type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">其它联系方式</label>
+            <div class="layui-input-block">
+                <input name="doctorOtherLink"  type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">医生的email</label>
+            <div class="layui-input-block">
+                <input name="doctorEmail"  type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">医生简介</label>
+            <div class="layui-input-block">
+                <input name="doctorAbout"  type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">医生的头像</label>
+            <div class="layui-input-block" id="demo">
+                <button type="button" class="layui-btn" id="phonto">
+                    <i class="layui-icon">&#xe67c;</i>上传图片
+                  </button>
+                <input name="doctorLogo" id="doctorLogo-add"  type="hidden" class="layui-input" maxlength="20"/>
+                <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
+                    预览图:
+                    <div class="layui-upload-list" id="demo2"></div>
+                </blockquote>
+            </div>
+        </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label"> 是否置顶</label>
+        <div class="layui-input-block">
+            <input name="isTop" id="isTop-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+            <input name="isTop" id="isTop-fou" type="radio"  value="false" title="否" class="layui-input" maxlength="20"/>
+        </div>
+    </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">是否医答</label>
+            <div class="layui-input-block">
+                <input name="isAnswer" id="isAnswer-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+                <input name="isAnswer" id="isAnswer-fou" type="radio"  value="false" title="否" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">是否签约医生</label>
+            <div class="layui-input-block">
+                <input name="isSigning" id="isSigning-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+                <input name="isSigning" id="isSigning-fou" type="radio"  value="false" title="否" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+         <div class="layui-form-item">
+            <label class="layui-form-label"> 医生状态</label>
+            <div class="layui-input-block">
+                <input name="doctorState" id="doctorState-shi" type="radio" checked value="true" title="是" class="layui-input" maxlength="20"/>
+                <input name="doctorState" id="doctorState-fou" type="radio"  value="false" title="否" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label" >登录帐号</label>
+            <div class="layui-input-block">
+                <input name="username"  type="text" class="layui-input" maxlength="15"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label" >登录密码</label>
+            <div class="layui-input-block">
+                <input name="password"  type="text" class="layui-input" maxlength="15"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label" >确认密码</label>
+            <div class="layui-input-block">
+                <input name="passwordSure"  type="text" class="layui-input" maxlength="15"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label" >销售代表名称</label>
+            <div class="layui-input-block">
+                <input name="serverUserName" id="serverUserName-add"   type="hidden" class="layui-input" maxlength="15"/>
+                <select  id="serverUserId-add" name="serverUserId" lay-filter="serverUserId-add"  placeholder="选择一个应用" lay-filter="role_clients">
+                    <option value="">-请选择-</option>
+                </select>
+            </div>
+        </div>
+        <div class="layui-form-item model-form-footer">
+            <button class="layui-btn layui-btn-primary"  ew-event="closeDialog" type="button">取消</button>
+            <button class="layui-btn" id="sure" lay-filter="user-form-submit" lay-submit>保存</button>
+        </div> 
+    </form>
+</script>
+
+
+<script>
+    layui.use(['form', 'table', 'laydate', 'util', 'config', 'upload', 'admin'], function () {
+        var form = layui.form;
+        var table = layui.table;
+        var config = layui.config;
+        var layer = layui.layer;
+        var util = layui.util;
+        var admin = layui.admin;
+        var upload = layui.upload;
+
+
+        //执行实例
+        var uploadInst = upload.render({
+            elem: '#phonto' //绑定元素
+            , url: '/upload/' //上传接口
+            , done: function (res) {
+                //上传完毕回调
+            }
+            , error: function () {
+                //请求异常回调
+            }
+        });
+        //医院数据绑定在弹框里
+        var hospital = "";
+
+        var department = "";
+        //销售代表
+        var user = "";
+        //职称
+        var doctorRank="";
+        // 获取应用列表
+        // layer.load(2);
+        admin.req('api-user/syshospital/findAll', JSON.stringify({ is_del: 0 }), function (data) {
+            layer.closeAll('loading');
+            if (0 === data.code) {
+                let selected = false;
+                clientsAll = data.data;
+                hospital = data.data;
+                $.each(data.data, function (index, item) {
+                    if (config.clientId === item.clientId) {
+                        selected = true;
+                    } else {
+                        selected = false;
+                    }
+                    //往下拉菜单里添加元素
+                    $('#hospitalName-seach').append(new Option(item.hospitalName, item.id, false, selected));
+                    // $('#hospitalId').append(new Option(item.hospitalName, item.id, false, selected));
+                    form.render('select', 'app-form');
+                })
+                form.render();
+            } else {
+                layer.msg(data.msg, { icon: 2, time: 500 });
+            }
+        }, 'Post');
+        //职称添加数据
+        var getZhiCheng = function () {
+            admin.req('api-user/sysdictionaries/findAll', JSON.stringify({ dictionariesClassId: "1248150699682988034" }), function (data) {
+                layer.closeAll('loading');
+                if (0 === data.code) {
+                    let selected = false;
+                    doctorRank = data.data;
+                    $.each(data.data, function (index, item) {
+                        if (config.clientId === item.clientId) {
+                            selected = true;
+                        } else {
+                            selected = false;
+                        }
+                        //往下拉菜单里添加元素
+                        $('#doctorRankId').append(new Option(item.dictionariesName, item.id, false, selected));
+                    })
+                } else {
+                    layer.msg(data.msg, { icon: 2, time: 500 });
+                }
+            }, 'Post');
+        }
+        //获取销售代表
+        var getXiaoShouDaiBiao = function () {
+            admin.req('api-user/users/getThisUserOrganizationUser', {}, function (data) {
+                layer.closeAll('loading');
+                if (0 === data.code) {
+                    user = data.data;
+                    $.each(data.data, function (index, item) {
+                        //往下拉菜单里添加元素
+                        console.log(item.nickname)
+                        $('#serverUserId-add').append(new Option(item.nickname, item.id, false, false));
+                    })
+                } else {
+                    layer.msg(data.msg, { icon: 2, time: 500 });
+                }
+            }, 'get');
+        }
+
+        // 添加按钮点击事件
+        $('#doctor-btn-add').click(function () {
+            showEditModel_add(undefined, 2);
+        });
+        //时间格式
+        var laydate = layui.laydate;
+        //执行一个laydate实例
+        laydate.render({
+            elem: '#test1' //指定元素
+        });
+        laydate.render({
+            elem: '#test2' //指定元素
+        });
+
+        // 渲染表格
+        table.render({
+            elem: '#app-table',
+            url: config.base_server + 'api-user/sysdoctor',
+            method: 'GET',
+            headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
+            page: true,
+            cols: [[
+                { type: 'numbers' },
+                { field: 'hospitalName', width: 180, sort: true, title: '医院名称' },
+                { field: 'doctorName', width: 200, sort: true, title: '医生姓名' },
+                { field: 'doctorRank', width: 180, sort: true, title: '职称' },
+                { field: 'username', width: 300, sort: true, title: '登录帐号' },
+                { field: 'doctorTel', width: 300, sort: true, title: '联系方式' },
+                {
+                    field: 'doctorState', width: 300, sort: true, title: '状态', templet: function (d) {
+                        return d.doctorState ? "正式" : "试用"
+                    }
+                },
+                {
+                    field: 'isAnswer', width: 300, sort: true, title: '医答', templet: function (d) {
+                        return d.isAnswer ? "是" : "否"
+                    }
+                },
+                {
+                    field: 'isSigning', width: 300, sort: true, title: '签约', templet: function (d) {
+                        return d.isSigning ? "是" : "否"
+                    }
+                },
+                { field: 'createTime', width: 250, sort: true, title: '时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy年MM月dd日 HH:mm:ss')}}</div>" },
+                { field: 'serverUserName', width: 100, sort: true, title: '销售代表' },
+                { width: 200, width: 300, align: 'center', toolbar: '#doctor-table-bar', sort: true, title: '操作' },
+            ]]
+        });
+
+        // 工具条点击事件
+        table.on('tool(app-table)', function (obj) {
+            var data = obj.data;
+            var layEvent = obj.event;
+            if (layEvent === 'detail') { // 查看详情
+                showEditModel(data, 1);
+            } else if (layEvent === 'reset') {
+                layer.confirm('确定重置此用户的密码吗?', function (i) {
+                    layer.close(i);
+                    layer.load(2);
+                    admin.req('api-user/users/' + obj.data.userId + '/password', {}, function (data) {
+                        layer.closeAll('loading');
+                        if (data.code == 0) {
+                            layer.msg(data.msg, { icon: 1, time: 500 });
+                        } else {
+                            layer.msg(data.msg, { icon: 2, time: 500 });
+                        }
+                    }, 'PUT');
+                });
+            } else if (layEvent === 'edit') {
+                showEditModel(data, 3);
+            } else if (layEvent === 'del') {
+                layer.confirm('确定删除此用户吗?', function (i) {
+                    layer.close(i);
+                    layer.load(2);
+                    admin.req('api-user/sysdoctor/' + obj.data.id, {}, function (data) {
+                        layer.closeAll('loading');
+                        if (data.code == 0) {
+                            layer.msg(data.msg, { icon: 1, time: 500 });
+                            table.reload('app-table', {});
+                        } else {
+                            layer.msg(data.msg, { icon: 2, time: 500 });
+                        }
+                    }, 'delete');
+                });
+            } else if (layEvent === 'enable') {
+                layer.confirm('确定删除此用户吗?', function (i) {
+                    layer.close(i);
+                    layer.load(2);
+                    admin.req('api-user/sysdoctor/enable', JSON.stringify({ id: obj.data.id }), function (data) {
+                        layer.closeAll('loading');
+                        if (data.code == 0) {
+                            layer.msg(data.msg, { icon: 1, time: 500 });
+                            table.reload('app-table', {});
+                        } else {
+                            layer.msg(data.msg, { icon: 2, time: 500 });
+                        }
+                    }, 'post');
+                });
+            }
+        });
+
+        // 搜索按钮点击事件
+        $('#app-btn-search').click(function () {
+            var doctorState = $('#doctorState').val();
+            var hospitalName = $('#hospitalName-seach').val();
+            var doctorTel = $('#doctorTel').val();
+            var doctorName = $('#doctorName').val();
+            table.reload('app-table', { where: { doctorState: doctorState, hospitalId: hospitalName, doctorTel: doctorTel, doctorName: doctorName } });
+        });
+        // 显示新增弹窗
+        var showEditModel_add = function () {
+            layer.open({
+                type: 1,
+                title: '新增',
+                area: '450px',
+                offset: '120px',
+                content: $('#app-model-add').html(),
+                success: function () {
+                    $('#app-form-add')[0].reset();
+                    $('#app-form-add').attr('method', 'POST');
+                    $('.layui-layer-content').css('overflow','auto');
+                    //将医院的数据保存到下拉表
+                    let selected = false;
+                    //获取职称的
+                    getZhiCheng();
+                    //获取销售代表
+                    getXiaoShouDaiBiao();
+                    var upload = layui.upload;
+                    //执行实例
+                    upload.render({
+                        elem: '#phonto',
+                        url: config.base_server + 'api-file/files-anon',
+                        accept: 'file',
+                        auto: true,
+                        headers: { "Authorization": "Bearer " + config.getToken().access_token },
+                        before: function (obj) {
+                            layer.load(); //上传loading
+                            //预读本地文件示例,不支持ie8
+                            obj.preview(function (index, file, result) {
+                                $(".layui-upload-img").remove();
+                                $('#demo2').append('<img src="' + result + '" width="50px" height="50px" alt="' + file.name + '" class="layui-upload-img">')
+                            });
+                        },
+                        done: function (data) {
+                            layer.closeAll('loading');
+                            $("#doctorLogo-add").val(data.url);
+                        },
+                        error: function (data) {
+                            layer.closeAll('loading');
+                        }
+                    });
+                    $.each(hospital, function (index, item) {
+                        if (config.clientId === item.clientId) {
+                            selected = true;
+                        } else {
+                            selected = false;
+                        }
+                        console.log(item)
+                        $('#hospitalName-add').append(new Option(item.hospitalName, item.id, false, selected));
+                    })
+                    form.render();
+                }
+            });
+        };
+        // 显示编辑弹窗
+        var showEditModel = function (data, flag) {
+            var title = "";
+            if (flag == 1) {
+                title = "查看详情";
+            } else if (flag == 2) {
+                title = "新增";
+            } else if (flag == 3) {
+                title = "编辑";
+            }
+
+            layer.open({
+                type: 1,
+                title: title,
+                area: '450px',
+                offset: '120px',
+                content: $('#app-model').html(),
+                success: function () {
+                    $('#app-form')[0].reset();
+                    $('#app-form').attr('method', 'POST');
+                    //将医院的数据保存到下拉表
+                    let selected = false;
+                    $.each(hospital, function (index, item) {
+                        if (config.clientId === item.clientId) {
+                            selected = true;
+                        } else {
+                            selected = false;
+                        }
+                        //往下拉菜单里添加元素
+                        $('#hospitalId').append(new Option(item.hospitalName, item.id, false, selected));
+                    })
+                    //将科室的数据绑定到里面
+                    if (flag != 2) {
+                        getdepartment(data.hospitalId);
+                    }
+                    if (data) {
+                        if (data.isAnswer) {
+                            $("#isAnswer-shi").attr('checked', true);
+                        } else {
+                            $("#isAnswer-fou").attr('checked', true);
+                        }
+
+                        if (data.isSigning) {
+                            $("#isSigning-shi").attr('checked', true);
+                        } else {
+                            $("#isSigning-fou").attr('checked', true);
+                        }
+
+                        if (data.isTop) {
+                            $("#isTop-shi").attr('checked', true);
+                        } else {
+                            $("#isTop-fou").attr('checked', true);
+                        }
+
+                        if (data.doctorState) {
+                            $("#doctorState-shi").attr('checked', true);
+                        } else {
+                            $("#doctorState-fou").attr('checked', true);
+                        }
+                        form.val('app-form', data);
+                        if (flag == 1) {
+                            //将确定隐藏  doctorState-shi
+                            $("#sure").hide();
+                            //将所有的设置为只读
+                            $('#app-form').find('input').attr('readonly', true);
+                            $('#app-form').find('select,input[type="radio"]').attr('disabled', true);
+                        } else {
+                            $("#sure").show();
+                            $('#app-form').attr('method', 'POST');
+                        }
+                    }
+                }
+            });
+        };
+        // 表单提交事件
+        form.on('submit(user-form-submit)', function (data) {
+            layer.load(2);
+            data.field.hospitalId = parseInt(data.field.hospitalId);
+            admin.req('api-user/sysdoctor', JSON.stringify(data.field), function (data) {
+                layer.closeAll('loading');
+                if (data.code == 0) {
+                    // layer.msg(data.msg, { icon: 1, time: 500 });
+                    layer.closeAll();
+                    table.reload('app-table', {});
+                } else {
+                    layer.msg(data.msg, { icon: 2, time: 500 });
+                }
+            }, "POST");
+            return false;
+        });
+        //更新 点击医院触发的事件
+        form.on('select(getdepartment)', function (data) {
+            //将医院名称赋值
+            $.each(hospital, function (index, item) {
+                if (item.id == data.value) {
+                    $('#hospitalName').val(item.hospitalName);
+                }
+            })
+            //
+            getdepartment(data.value);
+        });
+        //新增----点击医院触发的事件   
+        form.on('select(getdepartment-add)', function (data) {
+            //将医院名称赋值
+            $.each(hospital, function (index, item) {
+                if (item.id == data.value) {
+                    $('#hospitalId-add').val(item.hospitalName);
+                    console.log($('#hospitalId-add').val())
+                }
+            })
+            //
+            getdepartment(data.value);
+        });
+        //将新增  中的 serverUserName 赋值
+        form.on('select(serverUserId-add)', function (data) {
+            //将医院名称赋值
+            $.each(user, function (index, item) {
+                if (item.id == data.value) {
+                    $('#serverUserName-add').val(item.nickname);
+                    console.log($('#serverUserName-add').val())
+                }
+            })
+            //
+        });
+        //新增   点击职称的触发事件
+        form.on('select(doctorRankId)', function (data) {
+            //将部门名称赋值
+           
+            $.each(doctorRank, function (index, item) {
+                if (item.id == data.value) {
+                    console.log(12312312312)
+                    $('#doctorRank').val(item.dictionariesName);
+                    console.log($('#doctorRank').val())
+                }
+            })
+        });
+        //新增 和  更新   科室触发的事件
+        form.on('select(departmentId)', function (data) {
+            //将部门名称赋值
+            $.each(department, function (index, item) {
+                if (item.id == data.value) {
+                    $('#departmentName').val(item.departmentName);
+                }
+            })
+            //
+            // getdepartment(data.value);
+        });
+        //获取科室
+        var getdepartment = function (data) {
+            admin.req('api-user/sysdepartment/findListByHospitalId', { id: data }, function (data) {
+                layer.closeAll('loading');
+                if (0 === data.code) {
+                    department = data.data;
+                    $('#departmentId').empty();
+                    if(data.data.length>0){
+                        $('#departmentName').val(data.data[0].departmentName);
+                    }
+                    $.each(data.data, function (index, item) {
+                        //往下拉菜单里添加元素
+                        $('#departmentId').append(new Option(item.departmentName, item.id, false, false));
+                        form.render('select', 'app-form');
+                    })
+                    form.render();
+                } else {
+                    layer.msg(data.msg, { icon: 2, time: 500 });
+                }
+            }, 'get');
+        }
+    });
+</script>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
index 8196658..6a3ac4b 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
@@ -24,7 +24,13 @@
 
 <!-- 表格操作列 -->
 <script type="text/html" id="businessRecords-table-bar">
+    <select>
+        <option></option
+    </select>
     <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a>
+    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
+    <a class="layui-btn layui-btn-xs" lay-event="reset">重置密码</a>
+    <a class="layui-btn layui-btn-xs" lay-event="del">删除</a>
 </script>
 
 <!-- 表单弹窗 -->

--
Gitblit v1.8.0