From b5d80f607c87f04a70d09a16f456612dab69aff9 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Mon, 27 Apr 2020 16:54:02 +0800
Subject: [PATCH] 添加获取真实姓名,修改医生的bug

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java         |    3 
 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/fallback/SysDoctorServiceFallbackFactory.java        |   35 +++++
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html                                                   |   75 +++++++-----
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java |   10 +
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/company.html                                                  |    2 
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysDoctor.java                               |  125 ++++++++++++++++++++
 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java                           |   34 ++++-
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctorTemplete.html                                           |    4 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java |   40 +++++-
 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/SysDoctorService.java                                |   32 +++++
 10 files changed, 311 insertions(+), 49 deletions(-)

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 a60f8c9..2eceddb 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
@@ -9,6 +9,7 @@
 import com.kidgrow.usercenter.vo.SysDoctorVo;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -40,5 +41,7 @@
     ResultBody enable(Map<String, Object> params);
 
     boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request,SysUser user);
+
+    List<SysDoctor> findByMap(Map<String, Object> map);
 }
 
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 ddb172a..938e2b0 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
@@ -8,7 +8,9 @@
 import com.kidgrow.redis.util.RedisUtils;
 import com.kidgrow.usercenter.mapper.SysRoleMapper;
 import com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper;
+import com.kidgrow.usercenter.mapper.SysUserRoleMapper;
 import com.kidgrow.usercenter.model.SysRoleOrganization;
+import com.kidgrow.usercenter.model.SysRoleUser;
 import com.kidgrow.usercenter.service.ISysRoleOrganizationService;
 import com.kidgrow.usercenter.service.ISysUserOrgService;
 import com.kidgrow.usercenter.service.ISysUserService;
@@ -61,7 +63,12 @@
     private RedisUtils redisUtils;
     @Autowired
     private SysRoleOrganizationServiceImpl SysRoleOrganizationServiceImpl;
+    @Autowired
+    private SysRoleMapper sysRoleMapper;
+    @Autowired
+    private SysUserRoleMapper sysUserRoleMapper;
 
+    private final String HOSPITAL_ADMIN="hospital_admin";
 
     @Override
     public PageResult<SysDoctorVo> findList(Map<String, Object> params, SysUser user) {
@@ -113,15 +120,17 @@
     public ResultBody enable(Map<String, Object> params) {
         Long aLong = MapUtils.getLong(params,"id");
         SysDoctor sysDoctor = baseMapper.selectById(aLong);
+        Boolean enabled = MapUtils.getBoolean(params, "enabled");
         if (sysDoctor != null && sysDoctor.getUserId() != null) {
             SysUser byId = iSysUserService.getById(sysDoctor.getUserId());
             if(byId!=null){
-                byId.setEnabled(true);
+                byId.setEnabled(enabled);
                 iSysUserService.updateById(byId);
             }
         }
         if(sysDoctor!=null){
-            sysDoctor.setEnabled(true);
+
+            sysDoctor.setEnabled(enabled);
             baseMapper.updateById(sysDoctor);
         }else {
             return ResultBody.failed("禁用失败");
@@ -153,6 +162,20 @@
                     sysUser.setCreateUserName(byId.getUsername());
                 }
                 iSysUserService.save(sysUser);
+                //保存  角色信息
+                Map<String,Object> map= new HashMap<>();
+                map.put("code",HOSPITAL_ADMIN);
+                map.put("enabled",1);
+                map.put("is_del",0);
+                List<SysRole> sysRoles = sysRoleMapper.selectByMap(map);
+                if(sysRoles.size()>0){
+                    //保存一个角色
+                    SysRole sysRole = sysRoles.get(0);
+                    SysRoleUser sysRoleUser=new SysRoleUser();
+                    sysRoleUser.setRoleId(sysRole.getId());
+                    sysRoleUser.setUserId(sysUser.getId());
+                    int insert = sysUserRoleMapper.insert(sysRoleUser);
+                }
                 //保存doctor的数据
                 SysDoctor sysDoc=new SysDoctor();
                 BeanCopier beanCopier = BeanCopier.create(SysDoctorDto.class, SysDoctor.class, false);
@@ -167,17 +190,13 @@
                 //保存将sys_user_org 保存部门
                 SysUserOrg sysUserOrg=new SysUserOrg();
                 sysUserOrg.setUserId(sysUser.getId());
-                sysUserOrg.setEnabled(false);
                 sysUserOrg.setOrgId(sysDoctor.getDepartmentId());
-                sysUserOrg.setCreateTime(new Date());
                 //保存公司
                 sysUserOrgService.saveOrUpdate(sysUserOrg);
                 SysUserOrg sysGongsi=new SysUserOrg();
                 sysGongsi.setUserId(sysUser.getId());
-//                sysUser.setEnabled(false);
                 sysGongsi.setOrgId(sysDoctor.getHospitalId());
-//                sysUser.setCreateTime(new Date());
-                sysUserOrgService.saveOrUpdate(sysUserOrg);
+                sysUserOrgService.saveOrUpdate(sysGongsi);
                 //保存到Redis
                 boolean hset = redisUtils.hset(RedisConstant.USER_ORGANIZATION, sysUserOrg.getUserId().toString(), sysUserOrg);
             }else {
@@ -205,4 +224,11 @@
         }
         return true;
     }
+
+    @Override
+    public List<SysDoctor> findByMap(Map<String, Object> map) {
+        map.put("enabled",1);
+        map.put("is_del",0);
+        return baseMapper.selectByMap(map);
+    }
 }
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 1c70d53..b30291d 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
@@ -71,7 +71,15 @@
         SysDoctor model = sysDoctorService.getById(id);
         return ResultBody.ok().data(model).msg("查询成功");
     }
-
+    /**
+     * 根据 Map 查询
+     */
+    @ApiOperation(value = "查询")
+    @PostMapping("/findByMap")
+    public ResultBody findByMap(@RequestBody Map<String,Object> map) {
+        List<SysDoctor> models = sysDoctorService.findByMap(map);
+        return ResultBody.ok().data(models).msg("查询成功");
+    }
     /**
      * 根据SysDoctor当做查询条件进行查询
      */
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysDoctor.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysDoctor.java
new file mode 100644
index 0000000..b575c8e
--- /dev/null
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysDoctor.java
@@ -0,0 +1,125 @@
+package com.kidgrow.common.model;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.NotEmpty;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © 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>
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("sys_doctor")
+public class SysDoctor extends SuperModel {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 关联的登录帐号ID
+     */
+    private Long userId;
+    /**
+     * 所属医院ID
+     */
+    @NotNull(message = "所属医院ID不能为空")
+    private Long hospitalId;
+    /**
+     * 医院名称
+     */
+    @NotEmpty(message = "医院名称不能为空")
+    private String hospitalName;
+    /**
+     * 科室ID
+     */
+    private Long departmentId;
+    /**
+     * 科室名称
+     */
+    private String departmentName;
+    /**
+     * 医生姓名
+     */
+    @NotEmpty(message = "医生姓名不能为空")
+    private String doctorName;
+    /**
+     * 医生的头像
+     */
+    private String doctorLogo;
+    /**
+     * 医生联系方式
+     */
+    @NotEmpty(message = "医生联系方式不能为空")
+    private String doctorTel;
+    /**
+     * 职称ID
+     */
+    private Long doctorRankId;
+    /**
+     * 职称
+     */
+    private String doctorRank;
+    /**
+     * 医生其它联系方式
+     */
+    private String doctorOtherLink;
+    /**
+     * 医生的email
+     */
+    private String doctorEmail;
+    /**
+     * 医生简介
+     */
+    private String doctorAbout;
+    /**
+     * 是否医答医生 0否1是
+     */
+    private Boolean isAnswer;
+    /**
+     * 是否签约医生 0否1是
+     */
+    private Boolean isSigning;
+    /**
+     * 是否置顶 0否1是
+     */
+    private Boolean isTop;
+    /**
+     * 是否删除,1删除,0未删除
+     */
+    @TableLogic
+    private Boolean isDel;
+    /**
+     * 医生状态 1正常 0试用
+     */
+    @NotNull(message = "医生状态 1正常 0试用不能为空")
+    private Boolean doctorState;
+    /**
+     * 启用禁用状态,1启用,0停用
+     */
+    private Boolean enabled;
+
+    /**
+     * 销售代表的id
+     */
+    private String serverUserId;
+    /**
+     * 销售代表名称
+     */
+    private String serverUserName;
+    /**
+     * 创建者的部门
+     */
+    private String createUserOrgCode;
+}
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/SysDoctorService.java b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/SysDoctorService.java
new file mode 100644
index 0000000..37c5b1b
--- /dev/null
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/SysDoctorService.java
@@ -0,0 +1,32 @@
+package com.kidgrow.zuul.feign;
+
+import com.kidgrow.common.constant.ServiceNameConstants;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysUserOrg;
+import com.kidgrow.zuul.feign.fallback.SysDoctorServiceFallbackFactory;
+import com.kidgrow.zuul.feign.fallback.SysUserOrgServiceFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: <br>
+ * @Project: <br>
+ * @CreateDate: Created in 2020/2/22 14:33 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ */
+@FeignClient(name = ServiceNameConstants.USER_SERVICE, fallbackFactory = SysDoctorServiceFallbackFactory.class, decode404 = true)
+public interface SysDoctorService {
+    /**
+     * 根据条件查询
+     * @param map
+     */
+    @PostMapping(value = "/sysdoctor/findByMap")
+    ResultBody getListByMap(@RequestBody Map<String, Object> map);
+}
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/fallback/SysDoctorServiceFallbackFactory.java b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/fallback/SysDoctorServiceFallbackFactory.java
new file mode 100644
index 0000000..36b7800
--- /dev/null
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/fallback/SysDoctorServiceFallbackFactory.java
@@ -0,0 +1,35 @@
+package com.kidgrow.zuul.feign.fallback;
+
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysUserOrg;
+import com.kidgrow.zuul.feign.SysDoctorService;
+import com.kidgrow.zuul.feign.SysOrganizationService;
+import feign.hystrix.FallbackFactory;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: <br>
+ * @Project: <br>
+ * @CreateDate: Created in 2020/2/22 14:33 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ */
+@Slf4j
+@Component
+public class SysDoctorServiceFallbackFactory implements FallbackFactory<SysDoctorService> {
+
+    @Override
+    public SysDoctorService create(Throwable throwable) {
+        return  new SysDoctorService() {
+            @Override
+            public ResultBody getListByMap(Map<String, Object> map) {
+                return ResultBody.failed("获取医生姓名失败");
+            }
+        };
+    }
+}
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java
index 121789a..7d7bb36 100644
--- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java
@@ -5,14 +5,17 @@
 import com.kidgrow.common.constant.CommonConstant;
 import com.kidgrow.common.constant.SecurityConstants;
 import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysDoctor;
 import com.kidgrow.common.model.SysOrganization;
 import com.kidgrow.common.model.SysUser;
 import com.kidgrow.common.utils.AddrUtil;
+import com.kidgrow.zuul.feign.SysDoctorService;
 import com.netflix.zuul.ZuulFilter;
 import com.netflix.zuul.context.RequestContext;
 import eu.bitwalker.useragentutils.UserAgent;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;
 import org.springframework.security.authentication.AnonymousAuthenticationToken;
 import org.springframework.security.core.Authentication;
@@ -23,7 +26,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.net.URLEncoder;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.FORM_BODY_WRAPPER_FILTER_ORDER;
 import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.PRE_DECORATION_FILTER_ORDER;
@@ -39,6 +44,8 @@
 @Slf4j
 @Component
 public class UserInfoHeaderFilter extends ZuulFilter {
+    @Autowired
+    SysDoctorService sysDoctorService;
     @Override
     public String filterType() {
         return FilterConstants.PRE_TYPE;
@@ -54,6 +61,8 @@
         return true;
     }
 
+
+
     @SneakyThrows
     @Override
     public Object run() {
@@ -66,18 +75,31 @@
             String tenantId = "";
             //客户端模式只返回一个clientId
             if (principal instanceof SysUser) {
+
                 SysUser user = (SysUser) authentication.getPrincipal();
+                Map<String,Object> map=new HashMap<>();
+                map.put("user_id",user.getId());
+                ResultBody listByMap = sysDoctorService.getListByMap(map);
+
+                List<SysDoctor> sysDoctors = JSON.parseArray(JSON.toJSONString(listByMap.getData()), SysDoctor.class);
+                String str="";
+                if(sysDoctors!=null&&sysDoctors.size()>0){
+                    str= sysDoctors.get(0).getDoctorName();
+                }
                 ctx.addZuulRequestHeader(SecurityConstants.USER_ID_HEADER, String.valueOf(user.getId()));
                 ctx.addZuulRequestHeader(SecurityConstants.USER_HEADER, user.getUsername());
-                ctx.addZuulRequestHeader(SecurityConstants.USER_REAL_NAME, "");//待完善
+
+                ctx.addZuulRequestHeader(SecurityConstants.USER_REAL_NAME,str);//待完善
                 List<SysOrganization> organizations = (List<SysOrganization>) user.getOrganizations();
                 //将组织数据 存到header 里面
                 organizations.sort((e1,e2)->e1.getOrgLevel().compareTo(e2.getOrgLevel()));
-                ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_ID_HEADER,String.valueOf(organizations.get(0).getId()));
-                ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_NAME_HEADER, URLEncoder.encode(organizations.get(0).getOrgName(),"UTF-8"));
-                ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_ID_HEADER,String.valueOf(organizations.get(organizations.size()-1).getId()));
-                ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_NAME_HEADER,URLEncoder.encode(organizations.get(organizations.size()-1).getOrgName(),"UTF-8"));
-                ctx.addZuulRequestHeader(SecurityConstants.USER_ORGS_HEADER,JSON.toJSONString(organizations));
+                if (organizations != null&&organizations.size()>0) {
+                    ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_ID_HEADER,String.valueOf(organizations.get(0).getId()));
+                    ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_NAME_HEADER, URLEncoder.encode(organizations.get(0).getOrgName(),"UTF-8"));
+                    ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_ID_HEADER,String.valueOf(organizations.get(organizations.size()-1).getId()));
+                    ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_NAME_HEADER,URLEncoder.encode(organizations.get(organizations.size()-1).getOrgName(),"UTF-8"));
+                    ctx.addZuulRequestHeader(SecurityConstants.USER_ORGS_HEADER,JSON.toJSONString(organizations));
+                }
                 //将角色放到header
                 ctx.addZuulRequestHeader(SecurityConstants.ROLE_HEADER, JSON.toJSONString(user.getRoles()));
                 tenantId=String.valueOf(organizations.get(0).getId());
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/company.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/company.html
index 10ed26f..24705db 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/company.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/company.html
@@ -26,7 +26,7 @@
 </script>
 <!-- 表格状态列 -->
 <script type="text/html" id="company-tpl-state">
-    <input type="checkbox" lay-filter="company-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="正常|以停用"
+    <input type="checkbox" lay-filter="company-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="正常|已停用"
            {{d.enabled==true?'checked':''}}/>
 </script>
 <!-- 表单弹窗 -->
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
index e2433f0..f63ed3f 100644
--- 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
@@ -34,10 +34,14 @@
     <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>
+    <!-- <a class="layui-btn layui-btn-xs" lay-event="enable">停用</a> -->
 </script>
 
-
+<!-- 表格状态列 -->
+<script type="text/html" id="doctor-tpl-state">
+    <input type="checkbox" lay-filter="doctor-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="正常|已停用"
+           {{d.enabled==true?'checked':''}}/>
+</script>
 <!-- 表单弹窗 -->
 <script type="text/html" id="app-model">
     <form id="app-form" lay-filter="app-form" class="layui-form model-form"   >
@@ -47,7 +51,7 @@
             <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">
+                       <select id="hospitalId" name="hospitalId" lay-filter="getdepartment"  placeholder="选择一个应用" lay-verify="required" required>
                         <option value="">-请选择-</option>
                     </select>
             </div>
@@ -56,7 +60,7 @@
             <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">
+                <select id="departmentId" name="departmentId" lay-filter="departmentId"  placeholder="选择一个应用" lay-verify="required" required>
                     <option value="">-请选择-</option>
                 </select>
             </div>
@@ -74,7 +78,7 @@
         <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"/>
+                <input name="serverUserName"  type="text" class="layui-input" maxlength="15" lay-verify="required" required/>
             </div>
         </div>
     </div>
@@ -82,13 +86,13 @@
         <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"/>
+                <input name="doctorTel"  type="text" class="layui-input" maxlength="20" lay-verify="required|phone" required/>
             </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"/>
+                <input name="doctorRank"  type="text" class="layui-input" maxlength="20" lay-verify="required" required/>
             </div>
         </div>
     </div>
@@ -96,13 +100,13 @@
         <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"/>
+                <input name="doctorOtherLink"  type="text" class="layui-input" maxlength="20" lay-verify="required" required/>
             </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"/>
+                <input name="doctorEmail"  type="text" class="layui-input" maxlength="20" lay-verify="required|email" required/>
             </div>
         </div>
     </div>  
@@ -175,7 +179,7 @@
             <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">
+                       <select  id="hospitalName-add" name="hospitalId" lay-filter="getdepartment-add"  placeholder="选择一个应用" lay-verify="required" required >
                         <option value="">-请选择-</option>
                     </select>
             </div>
@@ -193,7 +197,7 @@
             <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">
+                <select id="departmentId" name="departmentId" lay-filter="departmentId"  placeholder="选择一个应用" lay-verify="required" required>
                     <option value="">-请选择-</option>
                 </select>
             </div>
@@ -201,7 +205,7 @@
         <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="选择一个职称" >
+                <select id="doctorRankId" name="doctorRankId"  lay-filter="doctorRankId" placeholder="选择一个职称" lay-verify="required" required>
                     <option value="">-请选择-</option>
                 </select>
                 <input name="doctorRank" id='doctorRank' type="hidden" class="layui-input" maxlength="20"/>
@@ -212,7 +216,7 @@
         <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"/>
+                <input name="doctorTel"  type="text" class="layui-input" maxlength="20" lay-verify="required|phone" required/>
             </div>
         </div>
         <div class="layui-form-item">
@@ -226,7 +230,7 @@
         <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"/>
+                <input name="doctorEmail"  type="text" class="layui-input" maxlength="20" lay-verify="required|email" required/>
             </div>
         </div>
         <div class="layui-form-item">
@@ -242,7 +246,7 @@
             <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">
+                <select  id="serverUserId-add" name="serverUserId" lay-filter="serverUserId-add"  placeholder="选择一个应用" lay-verify="required" required>
                     <option value="">-请选择-</option>
                 </select>
             </div>
@@ -282,7 +286,7 @@
         <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"/>
+                <input name="username"  type="text" class="layui-input" maxlength="15" lay-verify="required" required/>
             </div>
         </div>
     </div>
@@ -290,13 +294,13 @@
         <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"/>
+                <input name="password"  type="text" lay-verify="required" class="layui-input" maxlength="15" lay-verify="required" required/>
             </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"/>
+                <input name="passwordSure"  type="text" lay-verify="required|confirmPass" class="layui-input" maxlength="15"/>
             </div>
         </div>
     </div>
@@ -333,6 +337,7 @@
         var util = layui.util;
         var admin = layui.admin;
         var upload = layui.upload;
+        form.verify({    confirmPass:function(value){        if($('input[name=password]').val() !== value)            return '两次密码输入不一致!';    }});
 
         //医院数据绑定在弹框里
         var hospital = "";
@@ -366,6 +371,25 @@
                 layer.msg(data.msg, { icon: 2, time: 500 });
             }
         }, 'Post');
+
+        // 修改company状态
+        form.on('switch(doctor-tpl-state)', function (obj) {
+            layer.load(2);
+            admin.req('api-user/sysdoctor/enable', JSON.stringify({
+                id: obj.elem.value,
+                enabled: obj.elem.checked ? true : false
+            }), function (data) {
+                layer.closeAll('loading');
+                if (data.code == 0) {
+                    layer.msg(data.msg, { icon: 1, time: 500 });
+                    //table.reload('table-user', {});
+                } else {
+                    layer.msg(data.msg, { icon: 2, time: 500 });
+                    $(obj.elem).prop('checked', !obj.elem.checked);
+                    form.render('checkbox');
+                }
+            }, 'POST');
+        });
         //职称添加数据
         var getZhiCheng = function () {
             admin.req('api-user/sysdictionaries/findAll', JSON.stringify({ dictionariesClassId: "1248150699682988034" }), function (data) {
@@ -447,6 +471,7 @@
                         return d.isSigning ? "是" : "否"
                     }
                 },
+                { field: 'enabled', width: 250, align: 'center', templet: '#doctor-tpl-state', sort: true, title: '状态' },
                 { 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: '操作' },
@@ -487,20 +512,6 @@
                             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');
                 });
             }
         });
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctorTemplete.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctorTemplete.html
index 51e9a55..0c53143 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctorTemplete.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctorTemplete.html
@@ -56,7 +56,7 @@
         <div class="layui-form-item">
             <label class="layui-form-label">话术类型</label>
             <div class="layui-input-block">
-                <select name="templeteType" placeholder="话术类型" >
+                <select name="templeteType" placeholder="话术类型" lay-verify="required" required>
                     <option value="">-请选择-</option>
                     <option value="0">结论</option>
                     <option value="1">建议</option>
@@ -67,7 +67,7 @@
         <div class="layui-form-item">
             <label class="layui-form-label">开放类型</label>
             <div class="layui-input-block">
-                <select id="publicType-add" name="publicType" placeholder="开放类型" >
+                <select id="publicType-add" name="publicType" placeholder="开放类型" lay-verify="required" required>
                     <option value="">-请选择-</option>
                     <option value="1">公开</option>
                     <option value="0">私有</option>

--
Gitblit v1.8.0