From 79810458e869450fcdfa96b92f79e5c78cb46c04 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Thu, 30 Jul 2020 16:37:55 +0800
Subject: [PATCH] 去掉 组织新增的按钮,修改添加医院的bug,添加Python 获取加密码的接口

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java |  140 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 113 insertions(+), 27 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 454522a..9478ffe 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
@@ -15,6 +15,7 @@
 import com.kidgrow.common.model.SysUser;
 import com.kidgrow.common.model.*;
 import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.common.utils.AesUtils;
 import com.kidgrow.common.utils.DateUtils;
 import com.kidgrow.common.utils.Pinyin4jUtil;
 import com.kidgrow.redis.util.RedisUtils;
@@ -86,7 +87,6 @@
     private SysRoleMapper sysRoleMapper;
     @Autowired
     private SysUserRoleMapper sysUserRoleMapper;
-
     @Override
     public LoginAppUser findByUsername(String username) {
         SysUser sysUser = this.selectByUsername(username);
@@ -114,6 +114,7 @@
     @Override
     public LoginAppUser getLoginAppUser(SysUser sysUser) {
         LoginAppUser loginAppUser = new LoginAppUser();
+        SysUser sysUserNew = this.baseMapper.selectById(sysUser);
         if (sysUser != null) {
             //返回的数据为什么要把密码也返回?清空!!
             loginAppUser.setPassword("");
@@ -122,6 +123,7 @@
 
             BeanUtils.copyProperties(sysUser, loginAppUser);
             //获取用户所属组织机构列表
+            loginAppUser.setDefaultAuth(sysUserNew.getDefaultAuth());
             List<SysOrganization> sysOrganizations = organizationService.findListByUserId(sysUser.getId());
             //设置组织机构集合
             loginAppUser.setOrganizations(sysOrganizations);
@@ -164,7 +166,8 @@
     public SysUser selectByUsername(String username) {
         String clientId = ClientContextHolder.getClient();
         List<SysUser> users = baseMapper.selectList(
-                new QueryWrapper<SysUser>().eq("username", username).eq("tenant_id", clientId)
+                //new QueryWrapper<SysUser>().eq("username", username).eq("tenant_id", clientId)
+                new QueryWrapper<SysUser>().eq("username", username)
         );
         return getUser(users);
     }
@@ -226,21 +229,27 @@
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public ResultBody updatePassword(Long id, String oldPassword, String newPassword, Boolean isdefault) {
+    public ResultBody updatePassword(Long id, String oldPassword, String newPassword, Boolean isdefault) throws Exception {
+
         SysUser sysUser = baseMapper.selectById(id);
         if (StrUtil.isNotBlank(oldPassword)) {
+            oldPassword=AesUtils.desEncrypt(oldPassword).trim();
             if (!passwordEncoder.matches(oldPassword, sysUser.getPassword())) {
                 return ResultBody.failed("旧密码错误!");
             }
         }
         if (StrUtil.isBlank(newPassword)) {
             newPassword = com.kidgrow.common.utils.RandomValueUtils.getRandom(6);
+        }else {
+            newPassword=AesUtils.desEncrypt(newPassword).trim();
         }
         SysUser user = new SysUser();
         user.setId(id);
         user.setPassword(passwordEncoder.encode(newPassword));
         if (isdefault) {
             user.setDefaultAuth(true);
+        }else {
+            user.setDefaultAuth(false);
         }
         baseMapper.updateById(user);
         if (isdefault) {
@@ -252,12 +261,12 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResultBody updateUserTel(Map<String, Object> params) {
+    public ResultBody updateUserTel(Map<String, Object> params) throws Exception  {
         Long id = MapUtils.getLong(params, "id");
         String oldTel = MapUtils.getString(params, "oldTel");
-        String newTel = MapUtils.getString(params, "newTel");
-        String authCode = MapUtils.getString(params, "authCode");
-        String userPassword = MapUtils.getString(params, "userPassword");
+        String newTel = AesUtils.desEncrypt(MapUtils.getString(params, "newTel")).trim();
+        String authCode = AesUtils.desEncrypt(MapUtils.getString(params, "authCode")).trim();
+        String userPassword = AesUtils.desEncrypt(MapUtils.getString(params, "userPassword")).trim();
 
         if (id > 0 && StringUtils.isNotBlank(oldTel) && StringUtils.isNotBlank(newTel) && StringUtils.isNotBlank(authCode) && StringUtils.isNotBlank(userPassword)) {
             //检查验证码
@@ -271,6 +280,7 @@
                 } else {
                     //验证旧手机号和密码
                     SysUser sysUser = baseMapper.selectById(id);
+                    userPassword = AesUtils.desEncrypt(userPassword);
                     if (passwordEncoder.matches(userPassword, sysUser.getPassword()) && sysUser.getMobile().equals((oldTel))) {
                         //验证通过,修改手机号
                         SysUser user = new SysUser();
@@ -490,7 +500,7 @@
      * @return
      */
     @Override
-    public ResultBody passwordByPhone(Map<String, Object> map) {
+    public ResultBody passwordByPhone(Map<String, Object> map) throws Exception {
         //手机号,type,验证码,新密码
         String phone = MapUtils.getString(map, "phone");
         if (phone == null || "".equals(phone.trim())) {
@@ -504,7 +514,10 @@
         if (newPass == null || "".equals(newPass.trim())) {
             return ResultBody.failed("请输入正确的密码");
         }
-        if (CheckVerificationCode(ConstantSMS.PASSWORD_SMS, map.get("phone").toString(), verificationCode)) {
+        phone= AesUtils.desEncrypt(phone.trim());
+        verificationCode= AesUtils.desEncrypt(verificationCode.trim());
+        newPass= AesUtils.desEncrypt(newPass.trim());
+        if (CheckVerificationCode(ConstantSMS.PASSWORD_SMS, phone, verificationCode)) {
             //查询表
             Map<String, Object> selectMap = new HashMap<>();
             selectMap.put("mobile", phone);
@@ -638,15 +651,20 @@
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public ResultBody doctorUserReg(UserRegVo userRegVo, SysUser sysUserd) {
+    public ResultBody doctorUserReg(UserRegVo userRegVo, SysUser sysUserd) throws Exception {
+        if(sysUserd.getId()==null){
+            sysUserd = this.baseMapper.selectById(userRegVo.getUserId());
+        }
+        userRegVo.setPassword(AesUtils.desEncrypt(userRegVo.getPassword()).trim());
+        userRegVo.setUsername(AesUtils.desEncrypt(userRegVo.getUsername()).trim());
         //检查手机号是否已经注册 H端登录名和手机号存一样的值
         if (phoneIsUsed(userRegVo.getMobile())) {
             return ResultBody.failed("该手机号已经注册");
         }
         //创建人id
-        Long createUserId = 0L;
-        //创建人id
-        String createUserName = "自动创建";
+        Long createUserId = CommonConstant.CREATE_USER_ID;
+        //创建人名称
+        String createUserName = CommonConstant.CREATE_USER_NAME;
         //是否注册用户
         Boolean isReg = false;
         //业务成功
@@ -722,11 +740,9 @@
         if (StringUtils.isBlank(userRegVo.getPassword())) {
             defaultPassWord = com.kidgrow.common.utils.RandomValueUtils.getRandom(6);
             sysUser.setPassword(passwordEncoder.encode(defaultPassWord));
-            sysUser.setDefaultAuth(false);
             userRegVo.setPassword(defaultPassWord);
         } else {
             sysUser.setPassword(passwordEncoder.encode(userRegVo.getPassword()));
-            sysUser.setDefaultAuth(false);
         }
         sysUser.setNickname(userRegVo.getNickname());
         sysUser.setSex(userRegVo.getSex());
@@ -737,6 +753,7 @@
             sysUser.setType(UserType.DOCTOR.name());
         }
         sysUser.setHAdminUser(false);
+        sysUser.setDefaultAuth(false);
         sysUser.setOpenId(userRegVo.getOpenId());
         sysUser.setDel(false);
         sysUser.setTenantId("hospital");
@@ -790,12 +807,16 @@
 
                             sysUserOrgH.setUserId(sysUser.getId());
                             sysUserOrgH.setOrgId(organizationHos);
+                            sysUserOrgH.setFromLevel(CommonConstant.SYSTEM_ORG_HOS_LEVEL);
+                            sysUserOrgH.setFromId(userRegVo.getHospitalId());
                             sysUserOrgH.setCreateUserId(isReg ? createUserId : sysUserd.getId());
                             sysUserOrgH.setCreateUserName(isReg ? createUserName : sysUserd.getUsername());
                             sysUserOrgList.add(sysUserOrgH);
 
                             sysUserOrgD.setUserId(sysUser.getId());
                             sysUserOrgD.setOrgId(organizationDep);
+                            sysUserOrgD.setFromId(userRegVo.getDepartmentId());
+                            sysUserOrgD.setFromLevel(CommonConstant.SYSTEM_ORG_DEP_LEVEL);
                             sysUserOrgD.setCreateUserId(isReg ? createUserId : sysUserd.getId());
                             sysUserOrgD.setCreateUserName(isReg ? createUserName : sysUserd.getUsername());
                             sysUserOrgList.add(sysUserOrgD);
@@ -809,13 +830,22 @@
                                 sysDoctor.setDepartmentName(userRegVo.getDepartmentName());
                                 sysDoctor.setDoctorRank(userRegVo.getDoctorRank());
                                 sysDoctor.setDoctorRankId(userRegVo.getDoctorRankId());
+                                sysDoctor.setDoctorType(CommonConstant.H_DOCTOR_TYPE);
                                 sysDoctor.setCreateUserId(isReg ? createUserId : sysUserd.getId());
                                 sysDoctor.setCreateUserName(isReg ? createUserName : sysUserd.getUsername());
-                                sysDoctor.setDoctorState(userRegVo.getDoctorState());
+                                if (isReg) {
+                                    sysDoctor.setDoctorState(false);
+                                }
+                                else
+                                {
+                                    sysDoctor.setDoctorState(true);
+                                }
                                 sysDoctor.setDoctorTel(userRegVo.getMobile());
                                 sysDoctor.setDoctorName(userRegVo.getNickname());
                                 sysDoctor.setServerUserId(isReg ? createUserId : sysUserd.getId());
                                 sysDoctor.setServerUserName(isReg ? createUserName : sysUserd.getUsername());
+                                sysDoctor.setIsAdminUser(false);
+                                sysDoctor.setEnabled(false);
                                 if (sysDoctorMapper.insert(sysDoctor) == 1) {
                                     //非自主注册的 返回信息带密码
                                     if (!isReg) {
@@ -904,16 +934,21 @@
     }
 
     /**
-     * 获取医院科室下的所有有效的医生
+     * 获取医院科室下的所有H端有效的医生
      *
      * @param hospitalId
      * @param departmentId
      * @return
      */
     @Override
-    public ResultBody hospitalDoctorList(Long hospitalId, Long departmentId) {
+    public ResultBody hospitalDoctorList(Long hospitalId, Long departmentId,Boolean isIncluddel) {
         if (hospitalId > 0 && departmentId > 0) {
-            List<HospitalDoctorListVo> listVoList = baseMapper.hospitalDoctorList(hospitalId, departmentId);
+            List<HospitalDoctorListVo> listVoList;
+            if(isIncluddel){
+                listVoList= baseMapper.hospitalDoctorListAndDel(hospitalId, departmentId,CommonConstant.HOSPITAL_DOCTOR_ID,CommonConstant.HOSPITAL_ADMIN_ID);
+            }else {
+                listVoList=baseMapper.hospitalDoctorList(hospitalId, departmentId,CommonConstant.HOSPITAL_DOCTOR_ID,CommonConstant.HOSPITAL_ADMIN_ID);
+            }
             return ResultBody.ok().data(listVoList);
         } else {
             return ResultBody.failed("医院数据有误");
@@ -926,9 +961,10 @@
      * @param phone
      * @return
      */
-    private boolean phoneIsUsed(String phone) {
+    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);
     }
@@ -939,17 +975,14 @@
      * @param depatmentId
      * @return
      */
-    private Integer departmetAccountsCount(Long depatmentId) {
+    public Integer departmetAccountsCount(Long depatmentId) {
         SysDepartment sysDepartment = departmentService.getById(depatmentId);
         if (sysDepartment == null) {
             return 0;
         } else {
-            Map<String, Object> selectMap = new HashMap<>();
-            selectMap.put("departmentId", depatmentId);
-            selectMap.put("enabled", 1);
-            List<SysDoctor> sysDoctorList = sysDoctorMapper.selectByMap(selectMap);
-            if (sysDoctorList == null) {
-                int doctorCount = sysDoctorList.size();
+            List<HospitalDoctorListVo> hospitalDoctorListVos = baseMapper.hospitalDoctorList(sysDepartment.getHospitalId(), depatmentId, CommonConstant.HOSPITAL_DOCTOR_ID, CommonConstant.HOSPITAL_ADMIN_ID);
+            if (hospitalDoctorListVos != null) {
+                int doctorCount = hospitalDoctorListVos.size();
                 int accountCount = sysDepartment.getAccountsCount();
                 return (accountCount - doctorCount);
             } else {
@@ -957,6 +990,24 @@
             }
         }
     }
+//    private Integer departmetAccountsCount(Long depatmentId) {
+//        SysDepartment sysDepartment = departmentService.getById(depatmentId);
+//        if (sysDepartment == null) {
+//            return 0;
+//        } else {
+//            Map<String, Object> selectMap = new HashMap<>();
+//            selectMap.put("department_id", depatmentId);
+//            selectMap.put("enabled", 1);
+//            List<SysDoctor> sysDoctorList = sysDoctorMapper.selectByMap(selectMap);
+//            if (sysDoctorList != null) {
+//                int doctorCount = sysDoctorList.size();
+//                int accountCount = sysDepartment.getAccountsCount();
+//                return (accountCount - doctorCount);
+//            } else {
+//                return 0;
+//            }
+//        }
+//    }
 
     /**
      * 检查用户登录名是否已经注册 true存在  false不存在
@@ -982,4 +1033,39 @@
         }
         return new com.kidgrow.usercenter.model.SysDoctor();
     }
+
+    /**
+     * 检查手机号是注册用户还是正式用户
+     * @param userTel
+     * @return
+     */
+    public ResultBody isRegUser(String userTel)
+    {
+        if (StringUtils.isNotBlank(userTel)) {
+            List<SysUser> users = baseMapper.selectList(
+                    new QueryWrapper<SysUser>().eq("username", userTel)
+            );
+            if (users != null&&users.size()==1) {
+                SysUser sysUser=users.get(0);
+                if (sysUser.getCreateUserId()==CommonConstant.CREATE_USER_ID&&sysUser.getCreateUserName().equals(CommonConstant.CREATE_USER_NAME)) {
+                    return ResultBody.ok().data(true);
+                }
+                return ResultBody.ok().data(false);
+            }
+            else
+            {
+                return ResultBody.failed("用户数据有误!");
+            }
+        }
+        else
+        {
+            return ResultBody.failed("必要参数有误!");
+        }
+    }
+
+    @Override
+    public ResultBody jiaMipython(String password) {
+        String encode = passwordEncoder.encode(password);
+        return ResultBody.ok().data(encode);
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0