forked from kidgrow-microservices-platform

zhaoxiaohao
2020-04-27 b5d80f607c87f04a70d09a16f456612dab69aff9
添加获取真实姓名,修改医生的bug
3 files added
7 files modified
360 ■■■■ changed files
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java 3 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java 40 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java 10 ●●●●● patch | view | raw | blame | history
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysDoctor.java 125 ●●●●● patch | view | raw | blame | history
kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/SysDoctorService.java 32 ●●●●● patch | view | raw | blame | history
kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/fallback/SysDoctorServiceFallbackFactory.java 35 ●●●●● patch | view | raw | blame | history
kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java 34 ●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/company.html 2 ●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html 75 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctorTemplete.html 4 ●●●● patch | view | raw | blame | history
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);
}
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);
    }
}
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当做查询条件进行查询
     */
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysDoctor.java
New file
@@ -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;
}
kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/SysDoctorService.java
New file
@@ -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);
}
kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/feign/fallback/SysDoctorServiceFallbackFactory.java
New file
@@ -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("获取医生姓名失败");
            }
        };
    }
}
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());
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>
<!-- 表单弹窗 -->
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');
                });
            }
        });
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>