From 03f4f6946461026ed63580556c17664d37833c75 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Wed, 01 Jul 2020 21:23:23 +0800
Subject: [PATCH] 修改  添加医生的接口

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysRoleService.java           |    6 ++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleController.java   |   10 +++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java         |    2 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java   |    3 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleServiceImpl.java   |    6 ++
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html                                                   |   57 ++++++++++++++++--
 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml                                                        |    2 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java |    9 --
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java |   69 ++++++++++++++++++----
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml                               |    2 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js                                                             |    4 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java                   |    3 +
 12 files changed, 139 insertions(+), 34 deletions(-)

diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java
index b8900fe..d12312f 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/SysDoctorDto.java
@@ -2,8 +2,11 @@
 
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class SysDoctorDto extends  SysDoctorVo {
     private String username;
     private String password;
+    private List<Long> roles;
 }
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 616b200..fe8bada 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
@@ -40,7 +40,7 @@
 
     ResultBody enable(Map<String, Object> params);
 
-    boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request,SysUser user);
+    ResultBody 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/ISysRoleService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysRoleService.java
index 587d490..065f752 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysRoleService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysRoleService.java
@@ -47,4 +47,10 @@
 	 * @return
 	 */
 	ResultBody updateEnabled(Map<String, Object> params);
+
+	/**
+	 * 用户管理根据条件查询角色
+	 * @return
+	 */
+    List<SysRole> findByMap(Map<String, Object> params);
 }
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 2eb93eb..5c1eed2 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
@@ -29,6 +29,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -62,8 +63,10 @@
     private SysRoleMapper sysRoleMapper;
     @Autowired
     private SysUserRoleMapper sysUserRoleMapper;
+    @Autowired
+    private SysUserServiceImpl sysUserServiceImpl;
 
-    private final String HOSPITAL_ADMIN="hospital_admin";
+//    private final String HOSPITAL_ADMIN="hospital_admin";
 
     @Override
     public PageResult<SysDoctorVo> findList(Map<String, Object> params, SysUser user) {
@@ -146,11 +149,51 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request,SysUser user) {
+    public ResultBody saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request,SysUser user) {
         String id = request.getHeader(SecurityConstants.USER_ID_HEADER);
         if(null==sysDoctor){
-           return  false;
+           return  ResultBody.failed("请填写信息");
         }else {
+            if(sysDoctor.getRoles()==null||sysDoctor.getRoles().size()<=0){
+                return  ResultBody.failed("选择一个角色");
+            }
+            /**
+             * 限制管理员只有一个
+             */
+
+            Boolean flag=false;
+            if(sysDoctor.getRoles().contains(CommonConstant.HOSPITAL_ADMIN_ID)){
+                //查询一个部门下的所有医生
+                QueryWrapper wrapper=new QueryWrapper();
+                wrapper.eq("is_del",0);
+                wrapper.eq("enabled",1);
+                wrapper.eq("department_id",sysDoctor.getDepartmentId());
+                List<SysDoctor> doctoerList = this.baseMapper.selectList(wrapper);
+                if(doctoerList.size()>0){
+                    //查询role——user
+                    List<Long> collect = doctoerList.stream().map(e -> e.getUserId()).collect(Collectors.toList());
+                    wrapper=new QueryWrapper();
+                    wrapper.in("user_id",collect);
+                    List<SysRoleUser>  list= this.sysUserRoleMapper.selectList(wrapper);
+
+                    for (SysRoleUser sysRoleUser : list) {
+                        if(sysRoleUser.getRoleId()==CommonConstant.HOSPITAL_ADMIN_ID){
+                            flag=true;
+                        }
+                    }
+                }
+            }
+            if(flag){
+                return  ResultBody.failed("该部门已经有管理员");
+            }
+            /**
+             * 限制只有创建医生的个数
+             *
+             */
+         if(sysUserServiceImpl.departmetAccountsCount(sysDoctor.getDepartmentId())<=0){
+             return ResultBody.failed("该部门创建人数已经达到上限");
+         }
+            Long departmentId = sysDoctor.getDepartmentId();
             if (sysDoctor.getId()==null) {
                 //保存
                 SysUser sysUser=new SysUser();
@@ -169,19 +212,19 @@
                 }
                 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){
+//                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);
+                sysDoctor.getRoles().forEach(e->{
                     SysRoleUser sysRoleUser=new SysRoleUser();
-                    sysRoleUser.setRoleId(sysRole.getId());
+                    sysRoleUser.setRoleId(e);
                     sysRoleUser.setUserId(sysUser.getId());
                     int insert = sysUserRoleMapper.insert(sysRoleUser);
-                }
+                });
                 //保存doctor的数据
                 SysDoctor sysDoc=new SysDoctor();
                 BeanCopier beanCopier = BeanCopier.create(SysDoctorDto.class, SysDoctor.class, false);
@@ -229,7 +272,7 @@
                 redisUtils.hset(RedisConstant.USER_ORGANIZATION, getOne.getUserId().toString(), sysUserOrg);
             }
         }
-        return true;
+        return ResultBody.ok();
     }
 
     @Override
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleServiceImpl.java
index 6fbe510..f6c2c54 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleServiceImpl.java
@@ -85,6 +85,12 @@
         return baseMapper.findAll();
     }
 
+    @Override
+    public List<SysRole> findByMap(Map<String, Object> params) {
+        params.put("is_del",0);
+        params.put("enabled",1);
+        return baseMapper.selectByMap(params);
+    }
 
     @Override
     public ResultBody updateEnabled(Map<String, Object> params) {
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
index dd955aa..9724248 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -940,6 +940,7 @@
     public boolean phoneIsUsed(String phone) {
         Map<String, Object> selectMap = new HashMap<>();
         selectMap.put("mobile", phone);
+        selectMap.put("is_del", 0);
         List<SysUser> sysUsers = baseMapper.selectByMap(selectMap);
         return (sysUsers.size() > 0);
     }
@@ -950,7 +951,7 @@
      * @param depatmentId
      * @return
      */
-    private Integer departmetAccountsCount(Long depatmentId) {
+    public Integer departmetAccountsCount(Long depatmentId) {
         SysDepartment sysDepartment = departmentService.getById(depatmentId);
         if (sysDepartment == null) {
             return 0;
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
index 9a55190..26d1d51 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
@@ -22,7 +22,7 @@
                 and hospital_id = #{p.hospitalId}
             </if>
             <if test="p.hospitalName != null and p.hospitalName !=''">
-                and hospital_name = #{p.hospitalName}
+                and hospital_name like '%${p.hospitalName}%'
             </if>
             <if test="p.departmentId != null and p.departmentId !=''">
                 and department_id = #{p.departmentId}
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 c3c62d7..8095b82 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
@@ -110,14 +110,7 @@
             }
             return ResultBody.failed().msg(errMsg.toString());
         } else {
-            boolean v= sysDoctorService.saveOrUpdateSer(sysDoctor,request,user);
-
-            if(v) {
-                return ResultBody.ok().data(sysDoctor).msg("保存成功");
-            }
-            else {
-                return ResultBody.failed().msg("保存失败");
-            }
+            return sysDoctorService.saveOrUpdateSer(sysDoctor,request,user);
         }
     }
 
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleController.java
index 16f9b80..65168fa 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleController.java
@@ -71,6 +71,16 @@
         List<SysRole> result = sysRoleService.findAll();
         return ResultBody.ok().data(result);
     }
+    /**
+     * 用户管理根据条件查询角色
+     * @return
+     */
+    @ApiOperation(value = "后台管理查询角色")
+    @GetMapping("/findByMap")
+    public ResultBody<List<SysRole>> findByMap(@RequestParam Map<String, Object> params) {
+        List<SysRole> result = sysRoleService.findByMap(params);
+        return ResultBody.ok().data(result);
+    }
 
     /**
      * 角色新增或者更新
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
index 21c1f92..1b4e921 100644
--- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
@@ -264,7 +264,7 @@
           - kidgrow
       renew:
         #是否开启token自动续签(目前只有redis实现)
-        enable: false
+        enable: true
         #白名单
         includeClientIds:
           - webApp
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js
index 6834f25..953b73e 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js
@@ -1,4 +1,4 @@
 // var my_api_server_url = 'http://zuul.kidgrow.com/';
-var my_api_server_url = 'http://192.168.2.240:8888/';
-// var my_api_server_url = 'http://127.0.0.1:8888/';
+// var my_api_server_url = 'http://192.168.2.240:8888/';
+var my_api_server_url = 'http://127.0.0.1:8888/';
 
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 d26f60e..15ea8b3 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
@@ -17,7 +17,7 @@
                         <option value="true">正常</option>
                         <option value="false">试用</option>
                     </select>&emsp;
-                    <input name="hospitalName-seach" id="hospitalName-seach" placeholder="请输入医院名称" type="text"
+                    <input name="hospitalName" id="hospitalName-seach" placeholder="请输入医院名称" type="text"
                         class="layui-input search-input" maxlength="50" autocomplete="off" />&emsp;
                 </div>
                 <button id="app-btn-search" class="layui-btn icon-btn permissions" layt="abc"
@@ -298,13 +298,13 @@
         <div class="layui-form-item">
             <label class="layui-form-label" >登录密码</label>
             <div class="layui-input-block">
-                <input name="password"  type="text" lay-verify="required" class="layui-input" maxlength="15" lay-verify="required" required/>
+                <input name="password"  type="password" lay-verify="required" class="layui-input" maxlength="15" 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="passwordSure"  type="text" lay-verify="required|confirmPass" class="layui-input" maxlength="15"/>
+                <input name="passwordSure"  type="password" lay-verify="required|confirmPass" class="layui-input" maxlength="15"/>
             </div>
         </div>
     </div>
@@ -322,6 +322,13 @@
                 </blockquote>
             </div>
         </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label" >角色</label>
+            <div class="layui-input-block">
+                <select name="roleId" xm-select="roleId" lay-verify="required">
+                </select>
+            </div>
+        </div>
     </div>
     
         <div class="layui-form-item model-form-footer">
@@ -333,7 +340,7 @@
 
 
 <script>
-    layui.use(['form', 'table', 'laydate', 'util', 'config', 'upload', 'admin', 'autocomplete'], function () {
+    layui.use(['form', 'table', 'laydate', 'util', 'config', 'upload', 'admin', 'autocomplete','formSelects'], function () {
         var form = layui.form;
         var table = layui.table;
         var config = layui.config;
@@ -342,6 +349,7 @@
         var admin = layui.admin;
         var upload = layui.upload;
         var autocomplete = layui.autocomplete;
+        var formSelects = layui.formSelects;
         var $ = layui.jquery;
         form.verify({ confirmPass: function (value) { if ($('input[name=password]').val() !== value) return '两次密码输入不一致!'; } });
 
@@ -537,12 +545,41 @@
                 $("#hospitalId").val("");
             }
             var doctorState = $('#doctorState').val();
-            var hospitalName = $("#hospitalId").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 } });
+            table.reload('app-table', { where: { doctorState: doctorState, hospitalName: hospitalName, doctorTel: doctorTel, doctorName: doctorName } });
         });
-       
+        //获取角色
+        var get_role=function(){
+            admin.req('api-user/findByMap?tenant_id=hospital',{}, function (data) {
+            layer.closeAll('loading');
+            if (0 == data.code) {
+                // 渲染多选下拉框
+                var roleSelectData = new Array();
+                for (var i = 0; i < data.data.length; i++) {
+                    roleSelectData.push({name: data.data[i].name, value: data.data[i].id});
+                }
+                formSelects.data('roleId', 'local', {arr: roleSelectData});
+
+                // 回显user数据
+                var user = admin.getTempData('t_user');
+                $('#user-form').attr('method', 'POST');
+                if (user) {
+                    form.val('user-form', user);
+                    $('#user-form').attr('method', 'POST');
+                    var rds = new Array();
+                    for (var i = 0; i < user.roles.length; i++) {
+                        rds.push(user.roles[i].id);
+                    }
+                    formSelects.value('roleId', rds);
+                }
+            } else {
+                layer.msg('获取角色失败', {icon: 2, time: 500});
+            }
+        }, 'GET');
+        }
+        
         // 显示新增弹窗
         var showEditModel_add = function () {
             layer.open({
@@ -561,6 +598,8 @@
                     getZhiCheng();
                     //获取销售代表
                     getXiaoShouDaiBiao();
+                    //获取角色
+                    get_role();
                     var upload = layui.upload;
                     //执行实例
                     upload.render({
@@ -698,6 +737,10 @@
         form.on('submit(user-form-submit)', function (data) {
             layer.load(2);
             data.field.hospitalId = parseInt(data.field.hospitalId);
+            if(data.field.roleId!=null&&data.field.roleId!=""){
+                data.field.roles=data.field.roleId.split(',');
+            }
+            data.field.roleId=null;
             admin.req('api-user/sysdoctor', JSON.stringify(data.field), function (data) {
                 layer.closeAll('loading');
                 if (data.code == 0) {

--
Gitblit v1.8.0