Просмотр исходного кода

Merge branch 'feature/0721-tenant' into develop

yuanliang 1 год назад
Родитель
Сommit
bffd0de782

+ 5 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/PhoneAuthenticationProvider.java

@@ -225,6 +225,11 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
                 sysUserService.update(user);
             }
 
+            // 学生账号修改隐藏为显示
+            if (StringUtils.equalsIgnoreCase(loginUserType, "STUDENT")) {
+                sysUserService.updateStudentHideFlag(userInfo.getSysUser().getId(), 0);
+            }
+
         }
 
         return login(username);

+ 3 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/core/provider/service/DefaultUserDetailsService.java

@@ -116,6 +116,9 @@ public class DefaultUserDetailsService implements UserDetailsService {
 
         if (userType.contains("SYSTEM")) {
             authorities = AuthorityUtils.createAuthorityList(userInfo.getPermissions());
+
+            // 学生账号修改隐藏为显示
+            sysUserService.updateStudentHideFlag(userInfo.getSysUser().getId(), 0);
         }
 
         if (authorities == null) {

+ 3 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java

@@ -181,4 +181,7 @@ public interface SysUserDao extends BaseDAO<Long, SysUser> {
     void updateLockStatusByPhone(@Param("phone") String phone);
 
     int countByPhone(@Param("phone") String phone);
+
+    void updateStudentHideFlag(@Param("userId") Long userId, @Param("hideFlag") int hideFlag);
+
 }

+ 3 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/SysUserService.java

@@ -225,4 +225,7 @@ public interface SysUserService extends BaseService<Long, SysUser> {
     SysUser getSysUserByOpenId(String openId, String clientId);
 
     void logoffByPhone(String phone);
+
+
+    void updateStudentHideFlag(Long userId, int hideFlag);
 }

+ 5 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java

@@ -435,4 +435,9 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
         //退出登录
         tokenService.revokeTokenByPhone(phone);
     }
+
+    @Override
+    public void updateStudentHideFlag(Long userId, int hideFlag) {
+        sysUserDao.updateStudentHideFlag(userId, hideFlag);
+    }
 }

+ 3 - 0
cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -366,4 +366,7 @@
         WHERE t1.del_flag_ = 0 and t2.wx_openid_ = #{openId} LIMIT 1
     </select>
 
+    <update id="updateStudentHideFlag">
+        update student set hide_flag_ = #{hideFlag} where user_id_ = #{userId}
+    </update>
 </mapper>

+ 32 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -10,6 +10,7 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.microsvc.toolkit.common.webportal.exception.BizException;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dao.EmployeeDao;
 import com.yonge.cooleshow.biz.dal.dao.StudentDao;
 import com.yonge.cooleshow.biz.dal.dao.SubjectDao;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
@@ -121,6 +122,9 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     @Autowired
     private TenantAlbumPurchaseMapper tenantAlbumPurchaseMapper;
 
+    @Autowired
+    private EmployeeDao employeeDao;
+
     @Override
     public StudentDao getDao() {
         return baseMapper;
@@ -534,6 +538,33 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void addStudent(StudentWrapper.Student student) {
+        SysUser sysUser = employeeDao.querySysUserByPhone(student.getPhone());
+        if (sysUser == null) {
+            sysUser = new SysUser();
+            sysUser.setUserType(ClientEnum.STUDENT.getCode());
+            //设置默认头像
+            if (StringUtil.isEmpty(sysUser.getAvatar())) {
+                String defaultHeard = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD);
+                sysUser.setAvatar(defaultHeard);
+            }
+
+            sysUser.setUsername(student.getName());
+            sysUser.setPhone(student.getPhone());
+            //初始密码,手机号后6位
+            String password = sysUser.getPhone().substring(sysUser.getPhone().length() - 6);
+            sysUser.setPassword(new BCryptPasswordEncoder().encode(password));
+            //插入
+            employeeDao.insertSysUser(sysUser);
+        } else {
+            if (StringUtil.isEmpty(sysUser.getUserType())) {
+                sysUser.setUserType(ClientEnum.STUDENT.getCode());
+            } else if (!sysUser.getUserType().contains(ClientEnum.STUDENT.getCode())) {
+                sysUser.setUserType(sysUser.getUserType() + "," + ClientEnum.STUDENT.getCode());
+            }
+            employeeDao.updateSysUser(sysUser);
+        }
+
+        student.setId(sysUser.getId());
         Long tenantId = student.getTenantId();
         // 更新头像
         if (StringUtils.isEmpty(student.getAvatar())) {
@@ -556,7 +587,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             // 自动与机构老师成为好友
             List<Teacher> teacherList = teacherDao.selectList(Wrappers.<Teacher>lambdaQuery()
                     .eq(Teacher::getTenantId, tenantId));
-            if(!teacherList.isEmpty()){
+            if (!teacherList.isEmpty()) {
                 teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
                         new HashSet<>(ImmutableList.of(student.getId()))));
             }

+ 18 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java

@@ -20,6 +20,7 @@ import com.yonge.cooleshow.biz.dal.mapper.TenantInfoMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantStaffMapper;
 import com.yonge.cooleshow.biz.dal.service.SysAreaService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;
@@ -77,6 +78,10 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
     TenantApplyRecordMapper tenantApplyRecordMapper;
 
     @Autowired
+    TenantInfoService tenantInfoService;
+
+
+    @Autowired
     private TeacherDao teacherDao;
 
     @Autowired
@@ -201,7 +206,16 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean add(TenantInfo tenantInfo) {
-        SysUser sysUser = getOrCreateAccount(tenantInfo, null);
+        TenantInfo oldInfo =new TenantInfo();
+        //查询要新增的信息 是否存在机构
+        String phone = tenantInfo.getPhone();
+        if (StringUtils.isNotEmpty(phone)){
+            List<TenantInfo> list = tenantInfoService.lambdaQuery().eq(TenantInfo::getPhone, phone).list();
+            if (CollectionUtils.isNotEmpty(list)){
+                 oldInfo = list.get(0);
+            }
+        }
+        SysUser sysUser = getOrCreateAccount(tenantInfo, oldInfo);
         tenantInfo.setEnableFlag(true);
         if (StringUtils.isEmpty(tenantInfo.getLogo())) {
             // todo 设置默认logo
@@ -209,6 +223,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
         }
         tenantInfo.setEnableFlag(true);
         tenantInfo.setUserId(sysUser.getId());
+        tenantInfo.setUsername(sysUser.getUsername());
         tenantInfoMapper.insert(tenantInfo);
 
         TenantStaff tenantStaff = new TenantStaff();
@@ -231,8 +246,8 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
         if (!sysUsers.isEmpty()) {
             sysUser = sysUsers.get(0);
             TenantStaff tenantStaff = tenantStaffMapper.selectByUserId(sysUser.getId());
-            if (tenantStaff != null && oldTenantInfo != null &&
-                    !tenantStaff.getUserId().equals(oldTenantInfo.getUserId())) {
+            if ( !ObjectUtil.isEmpty(tenantStaff) && !ObjectUtil.isEmpty(oldTenantInfo) &&
+                    tenantStaff.getUserId().equals(oldTenantInfo.getUserId())) {
                 throw new BizException("手机号已经注册机构账号");
             }
             //获取当前账户的用户类型

+ 0 - 1
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java

@@ -103,7 +103,6 @@ public class OpenStudentController extends BaseController {
         if (studentId != null) {
             Student one = studentService.lambdaQuery()
                     .eq(Student::getUserId, studentId)
-                    .eq(Student::getHideFlag, 0)
                     .last("limit 1").one();
             if (one != null) {
                 if (one.getTenantId().equals(-1L)) {