From 6557baac627dce769c2b05ab482e4daf262a88ac Mon Sep 17 00:00:00 2001
From: houruijun <411269194@kidgrow.com>
Date: Wed, 17 Jun 2020 17:34:01 +0800
Subject: [PATCH] 1.增加工具类 MultipartFileUtils ,支持将MultipartFile类型转换为file类型 2.增加缩略图相关全局配置变量:宽高和生成缩略图的暂存目录(缩略图上传成功后会删除) 3.修改文件上传中心的上传代码,将生成目录和aliyun上传方法抽离独立 4.增加医院logo上传支持接口(可返回缩略图地址) 5.修改登录后回去用户信息不完整bug

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java |  154 +++++++++++++++++++++++++++++++++------------------
 1 files changed, 100 insertions(+), 54 deletions(-)

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 23d5af5..4b67902 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
@@ -16,15 +16,15 @@
 import com.kidgrow.common.model.*;
 import com.kidgrow.common.service.impl.SuperServiceImpl;
 import com.kidgrow.common.utils.DateUtils;
+import com.kidgrow.common.utils.Pinyin4jUtil;
 import com.kidgrow.redis.util.RedisUtils;
 import com.kidgrow.sms.feign.SmsChuangLanService;
 import com.kidgrow.sms.model.ConstantSMS;
-import com.kidgrow.usercenter.mapper.SysDoctorMapper;
-import com.kidgrow.usercenter.mapper.SysRoleMenuMapper;
-import com.kidgrow.usercenter.mapper.SysUserMapper;
+import com.kidgrow.usercenter.mapper.*;
 import com.kidgrow.usercenter.model.SysDoctor;
 import com.kidgrow.usercenter.model.*;
 import com.kidgrow.usercenter.service.*;
+import com.kidgrow.usercenter.vo.HospitalDoctorListVo;
 import com.kidgrow.usercenter.vo.UserRegVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
@@ -82,6 +82,13 @@
     @Autowired
     private SysDoctorMapper sysDoctorMapper;
 
+    @Autowired
+    private SysRoleMapper sysRoleMapper;
+    @Autowired
+    private SysUserRoleMapper sysUserRoleMapper;
+
+    private final String HOSPITAL_ADMIN="hospital_admin";
+
     @Override
     public LoginAppUser findByUsername(String username) {
         SysUser sysUser = this.selectByUsername(username);
@@ -132,11 +139,12 @@
             //是否医院管理员
             com.kidgrow.usercenter.model.SysDoctor sysDoctor = findDoctorByUserId(sysUser.getId());
             if (sysDoctor.getIsAdminUser() != null) {
-                sysUser.setHAdminUser(sysDoctor.getIsAdminUser());
+                loginAppUser.setHAdminUser(sysDoctor.getIsAdminUser());
             }
             //医院信息 只有H端要返回的信息
-            if (sysUser.getTenantId() == CommonConstant.H_TENANT) {
-                sysUser.setDoctorUserAllVO(baseMapper.findDoctorUserAllData(sysUser.getId()));
+            if (sysUser.getTenantId().toLowerCase().equals(CommonConstant.H_TENANT.toLowerCase())) {
+                DoctorUserAll doctorUserAllVo=baseMapper.findDoctorUserAllData(sysUser.getId());
+                loginAppUser.setDoctorUserAllVO(doctorUserAllVo);
             }
         }
         return loginAppUser;
@@ -622,7 +630,6 @@
 
     /**
      * H端用户注册  管理员添加用户
-     *
      * @param userRegVo
      * @return
      */
@@ -633,27 +640,31 @@
             return ResultBody.failed("该手机号已经注册");
         }
         //检查判断是注册 还是添加用户,注册用户先走基本数据建设
-        if (StringUtils.isBlank(userRegVo.getHospitalId().toString())) {
+        if (userRegVo.getHospitalId()==null) {
             userRegVo.setDoctorState(true);
             //添加医院组织结构数据
-            List<SysOrganization> sysOrganizationList = new ArrayList<SysOrganization>();
-            SysOrganization sysOrganizationHos = new SysOrganization();
+            List<SysOrganization> sysOrganizationList=new ArrayList<SysOrganization>();
+            SysOrganization sysOrganizationHos=new SysOrganization();
             sysOrganizationHos.setOrgAttr(1);
             sysOrganizationHos.setOrgLevel(1);
             sysOrganizationHos.setOrgName(userRegVo.getHospitalName());
+            sysOrganizationHos.setCreateUserName("自主注册");
+            sysOrganizationHos.setCreateUserId(0L);
             sysOrganizationList.add(sysOrganizationHos);
 
             //添加科室组织数据
-            SysOrganization sysOrganizationDe = new SysOrganization();
+            SysOrganization sysOrganizationDe=new SysOrganization();
             sysOrganizationDe.setOrgAttr(2);
             sysOrganizationDe.setOrgLevel(2);
             sysOrganizationDe.setOrgName(userRegVo.getDepartmentName());
+            sysOrganizationDe.setCreateUserName("自主注册");
+            sysOrganizationDe.setCreateUserId(0L);
             sysOrganizationList.add(sysOrganizationDe);
             //批量写入
-            boolean orgRe = organizationService.saveBatch(sysOrganizationList);
+            boolean orgRe= organizationService.saveBatch(sysOrganizationList);
             if (orgRe) {
                 //写医院数据
-                SysHospital sysHospital = new SysHospital();
+                SysHospital sysHospital=new SysHospital();
                 sysHospital.setHospitalName(userRegVo.getHospitalName());
                 sysHospital.setOrgId(sysOrganizationHos.getId());
                 sysHospital.setAccountsCount(1);
@@ -661,11 +672,11 @@
                 sysHospital.setCreateUserId(0L);
                 sysHospital.setCreateUserName("自主注册");
 
-                boolean h = hospitalService.save(sysHospital);
+                boolean h=hospitalService.save(sysHospital);
                 if (h) {
                     userRegVo.setHospitalId(sysHospital.getId());
                     //保存科室数据
-                    SysDepartment sysDepartment = new SysDepartment();
+                    SysDepartment sysDepartment=new SysDepartment();
                     sysDepartment.setHospitalId(sysHospital.getId());
                     sysDepartment.setOrgId(sysOrganizationDe.getId());
                     sysDepartment.setDepartmentName(userRegVo.getDepartmentName());
@@ -674,30 +685,38 @@
                     sysDepartment.setSaleUserTel("0");
                     sysDepartment.setServerUserId(0L);
                     sysDepartment.setServerUserTel("0");
-                    boolean d = departmentService.save(sysDepartment);
+                    sysDepartment.setServerUserName("自主注册");
+                    boolean d=departmentService.save(sysDepartment);
                     if (!d) {
                         return ResultBody.failed("科室数据写入失败");
-                    } else {
+                    }
+                    else
+                    {
                         userRegVo.setDepartmentId(sysDepartment.getId());
                     }
-                } else {
+                }
+                else
+                {
                     return ResultBody.failed("医院数据写入失败");
                 }
-            } else {
+            }
+            else
+            {
                 return ResultBody.failed("组织数据写入失败");
             }
         }
         //添加用户数据  如果没有输入密码,将会创建一个默认密码返回
-        String defaultPassWord = "";
-        SysUser sysUser = new SysUser();
+        String defaultPassWord="";
+        SysUser sysUser=new SysUser();
         sysUser.setUsername(userRegVo.getUsername());
         sysUser.setMobile(userRegVo.getMobile());
         if (StringUtils.isBlank(userRegVo.getPassword())) {
-            defaultPassWord = com.kidgrow.common.utils.RandomValueUtils.getRandom(6);
+            defaultPassWord=com.kidgrow.common.utils.RandomValueUtils.getRandom(6);
             sysUser.setPassword(passwordEncoder.encode(defaultPassWord));
             sysUser.setDefaultAuth(true);
             userRegVo.setPassword(defaultPassWord);
-        } else {
+        }
+        else {
             sysUser.setPassword(passwordEncoder.encode(userRegVo.getPassword()));
             sysUser.setDefaultAuth(false);
         }
@@ -706,45 +725,66 @@
         sysUser.setEnabled(true);
         if (StringUtils.isNotBlank(userRegVo.getType())) {
             sysUser.setType(userRegVo.getType());
-        } else {
+        }
+        else
+        {
             sysUser.setType(UserType.DOCTOR.name());
         }
         sysUser.setHAdminUser(false);
         sysUser.setOpenId(userRegVo.getOpenId());
         sysUser.setDel(false);
-        boolean u = this.save(sysUser);
-        if (u) {
+        sysUser.setTenantId("hospital");
+        boolean u=this.save(sysUser);
+        if(u)
+        {
+            //保存  角色信息
+            Map<String,Object> map= new HashMap<>();
+            map.put("code",HOSPITAL_ADMIN);
+            map.put("enabled",1);
+            map.put("is_del",0);
+            List<SysRole> sysRoles = sysRoleMapper.selectByMap(map);
+            if(sysRoles.size()>0){
+                //保存一个角色
+                SysRole sysRole = sysRoles.get(0);
+                SysRoleUser sysRoleUser=new SysRoleUser();
+                sysRoleUser.setRoleId(sysRole.getId());
+                sysRoleUser.setUserId(sysUser.getId());
+                int insert = sysUserRoleMapper.insert(sysRoleUser);
+            }
             //写入职务数据
             if (StringUtils.isNotBlank(userRegVo.getDoctorRank())) {
                 //检查医生职务是否存在
                 Map<String, Object> selectMap = new HashMap<>();
                 selectMap.put("dictionaries_name", userRegVo.getDoctorRank());
-                List<SysDictionaries> dictionariesList = sysDictionariesService.findAll(selectMap);
-                if (dictionariesList.size() > 0) {
+                List<SysDictionaries> dictionariesList=sysDictionariesService.findAll(selectMap);
+                if (dictionariesList.size()>0) {
                     for (int i = dictionariesList.size() - 1; i >= 0; i--) {
                         if (dictionariesList.get(i).getDictionariesName().equals(userRegVo.getDoctorRank())) {
                             userRegVo.setDoctorRankId(dictionariesList.get(i).getId());
                             break;
                         }
                     }
-                } else {
+                }
+                else
+                {
                     //创建字典数据
-                    SysDictionaries sysDictionaries = new SysDictionaries();
+                    SysDictionaries sysDictionaries=new SysDictionaries();
                     sysDictionaries.setDictionariesKey(DictionariesConstants.DOCTOR_RANK);
                     sysDictionaries.setDictionariesClassId(DictionariesConstants.DOCTOR_RANK_ID.toString());
                     //将名称汉字转为拼音
-                    sysDictionaries.setDictionariesKey("temp");
+
+                    sysDictionaries.setDictionariesKey(Pinyin4jUtil.makeStringByStringSet(Pinyin4jUtil.getPinyin(userRegVo.getDoctorRank(),true)));
                     sysDictionaries.setDictionariesName(userRegVo.getDoctorRank());
                     sysDictionaries.setCreateUserId(0L);
                     sysDictionaries.setCreateUserName("自动创建");
-                    boolean d = sysDictionariesService.save(sysDictionaries);
+                    boolean d=sysDictionariesService.save(sysDictionaries);
                     if (d) {
                         userRegVo.setDoctorRankId(sysDictionaries.getId());
                     }
                 }
             }
             //写入医生数据
-            SysDoctor sysDoctor = new SysDoctor();
+            SysDoctor sysDoctor=new SysDoctor();
             sysDoctor.setUserId(sysUser.getId());
             sysDoctor.setHospitalId(userRegVo.getHospitalId());
             sysDoctor.setHospitalName(userRegVo.getHospitalName());
@@ -759,21 +799,36 @@
             sysDoctor.setDoctorName(userRegVo.getNickname());
             sysDoctor.setServerUserId(0L);
             sysDoctor.setServerUserName("自主注册");
-            if (sysDoctorMapper.insert(sysDoctor) == 1) {
-                if (StringUtils.isNotBlank(defaultPassWord)) {
-                    //默认密码需要返回
-                    sysUser.setPassword(defaultPassWord);
-                }
-                else
-                {
-                    sysUser.setPassword("");
-                }
-                return ResultBody.ok(200, "注册成功").data(sysUser);
-            } else {
+            if (sysDoctorMapper.insert(sysDoctor)==1) {
+                sysUser.setPassword(userRegVo.getPassword());
+                return ResultBody.ok().data(sysUser);
+//                return ResultBody.ok(200,"注册成功").data(sysUser);
+            }
+            else
+            {
                 return ResultBody.failed("医生数据写入失败");
             }
-        } else {
+        }
+        else
+        {
             return ResultBody.failed("用户数据写入失败");
+        }
+    }
+    /**
+     * 获取医院科室下的所有有效的医生
+     * @param hospitalId
+     * @param departmentId
+     * @return
+     */
+    @Override
+    public ResultBody hospitalDoctorList(Long hospitalId, Long departmentId) {
+        if (hospitalId>0&&departmentId>0) {
+            List<HospitalDoctorListVo> listVoList=baseMapper.hospitalDoctorList(hospitalId,departmentId);
+            return ResultBody.ok().data(listVoList);
+        }
+        else
+        {
+            return ResultBody.failed("医院数据有误");
         }
     }
 
@@ -813,14 +868,5 @@
             return sysDoctorList.get(0);
         }
         return new com.kidgrow.usercenter.model.SysDoctor();
-    }
-
-    public ResultBody userIsAdmin(String userName) {
-
-        Map<String, Object> selectMap = new HashMap<>();
-        selectMap.put("username", userName);
-        List<SysUser> sysUsers = baseMapper.selectByMap(selectMap);
-
-        return null;
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0