forked from kidgrow-microservices-platform

zhaoxiaohao
2020-04-10 cba67280f021ea732581829c472a703a1e303824
添加    医生的功能
16 files modified
3 files added
1051 ■■■■■ changed files
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java 19 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java 9 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java 9 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java 5 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java 12 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java 3 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java 4 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java 42 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java 125 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java 7 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java 37 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml 4 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java 10 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java 33 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java 6 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java 7 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml 2 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html 711 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html 6 ●●●●● patch | view | raw | blame | history
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;
}
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java
New file
@@ -0,0 +1,9 @@
package com.kidgrow.usercenter.vo;
import lombok.Data;
@Data
public class SysDoctorDto extends  SysDoctorVo {
    private String username;
    private String password;
}
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorVo.java
New file
@@ -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;
}
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);
}
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);
}
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);
}
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);
}
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);
    }
}
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;
    }
}
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("查询成功");
    }
}
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);
    }
}
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}
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);
    }
}
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);
    }
}
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);
    }
    /**
     * 查询
     */
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);
    }
}
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
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
New file
@@ -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>
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>
<!-- 表单弹窗 -->