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; } 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); 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); } 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 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) { 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; 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} 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); } } 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); } /** * 角色新增或者更新 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
@@ -264,7 +264,7 @@ - kidgrow renew: #是否开启token自动续签(目前只有redis实现) enable: false enable: true #白名单 includeClientIds: - webApp 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/'; 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>  <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" />  </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) {