Browse Source

Merge branch 'feature/1229-tenant' into develop-new

yuanliang 1 year ago
parent
commit
f338f57eb3

+ 2 - 6
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TenantInfoController.java

@@ -8,13 +8,10 @@ import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
 import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
-import com.yonge.cooleshow.biz.dal.service.EmployeeService;
 import com.yonge.cooleshow.biz.dal.service.SmsCodeService;
-import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;
-import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.security.SecurityConstants;
@@ -35,11 +32,9 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
 import java.time.LocalDateTime;
-import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
-import java.util.Optional;
-import java.util.stream.Collectors;
 
 /**
  * @Author:haonan
@@ -231,6 +226,7 @@ public class TenantInfoController extends BaseController {
                 .eq(TenantInfo::getId, staff.getTenantId())
                 .set(StringUtils.isNotEmpty(sysUser.getUsername()), TenantInfo::getUsername, sysUser.getUsername())
                 .set(StringUtils.isNotEmpty(sysUser.getPhone()), TenantInfo::getPhone, sysUser.getPhone())
+                .set(TenantInfo::getUpdateTime, new Date())
                 .update();
         return HttpResponseResult.succeed(true);
     }

+ 14 - 11
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTenantController.java

@@ -107,7 +107,7 @@ public class OpenTenantController {
             }
             // 判断当前账号是否锁定
             if (UserLockFlag.LOCKED.equals(staff.getStatus())) {
-                throw new BizException("当前账号已锁定");
+                throw new BizException(5005, "当前账号已锁定");
             }
         }
 
@@ -124,21 +124,24 @@ public class OpenTenantController {
                 throw new BizException(5003, "请等待审核完成");
             }
         } else {
+            Long tenantId = tenantStaff.getTenantId();
+            TenantInfo tenantInfo = tenantInfoService.getById(tenantId);
+            if(tenantInfo == null){
+                throw new BizException("机构不存在");
+            }
+            if (Boolean.FALSE.equals(tenantInfo.getEnableFlag())) {
+                // 机构冻结
+                throw new BizException(5004, openId);
+            }
+            // 判断当前账号是否锁定
+            if (UserLockFlag.LOCKED.equals(tenantStaff.getStatus())) {
+                throw new BizException(5005, "当前账号已锁定");
+            }
             // 判断当前账号是否已绑定
             if (StringUtils.isNotBlank(tenantStaff.getWxOpenid()) && !openId.equals(tenantStaff.getWxOpenid())) {
                 throw new BizException("请登录您所绑定的机构");
             }
         }
-
-        Long tenantId = tenantStaff.getTenantId();
-        TenantInfo tenantInfo = tenantInfoService.getById(tenantId);
-        if(tenantInfo == null){
-            throw new BizException("机构不存在");
-        }
-        if (Boolean.FALSE.equals(tenantInfo.getEnableFlag())) {
-            // 机构冻结
-            throw new BizException(5004, openId);
-        }
         tenantStaff.setWxOpenid(openId);
         tenantStaffService.updateById(tenantStaff);
         return HttpResponseResult.succeed();

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

@@ -100,14 +100,14 @@ public class DefaultUserDetailsService implements UserDetailsService {
             if (tenantStaff == null) {
                 throw new UsernameNotFoundException("账户不存在");
             }
-            if (UserLockFlag.LOCKED.name().equals(tenantStaff.getStatus())) {
-                // 账号被锁定
-                throw new UsernameNotFoundException("MA:5005:" + openid);
-            }
             if (Boolean.FALSE.equals(tenantStaff.getTenantEnableFlag())) {
                 // 机构锁定
                 throw new UsernameNotFoundException("MA:5004:" + openid);
             }
+            if (UserLockFlag.LOCKED.name().equals(tenantStaff.getStatus())) {
+                // 账号被锁定
+                throw new UsernameNotFoundException("MA:5005:" + openid);
+            }
         }
 
         List<GrantedAuthority> authorities = null;

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

@@ -489,7 +489,13 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             String userType = sysUser.getUserType();
             List<String> userTypes = Arrays.stream(userType.split(",")).collect(Collectors.toList());
             if (userTypes.contains(ClientEnum.TEACHER.getCode())) {
-                throw new BizException("该手机号已经注册老师账号");
+                Teacher teacher = this.getById(sysUser.getId());
+                // 机构邀请平台老师注册
+                if(Optional.ofNullable(teacher.getTenantId()).orElse(-1L) == -1 && Optional.ofNullable(teacherSubmitReq.getTenantId()).orElse(-1L)>-1){
+                    teacherSubmitReq.setSettlementFrom(ESettlementFrom.TENANT);
+                }else {
+                    throw new BizException("该手机号已经注册老师账号");
+                }
             }
             teacherSubmitReq.setUserId(sysUser.getId());
             updateSysUser(teacherSubmitReq);

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

@@ -401,8 +401,20 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
         }
 
         if (!updateStatus.getEnableFlag()) {
+            // 账号退出登录
+            QueryWrapper<TenantStaff> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda()
+                    .eq(TenantStaff::getTenantId, updateStatus.getId());
+            List<TenantStaff> tenantStaffs = tenantStaffMapper.selectList(queryWrapper);
+            List<Long> userIdList = tenantStaffs.stream().map(TenantStaff::getUserId).collect(Collectors.toList());
+            Map<Long, String> idPhoneMap = sysUserMapper.selectBatchIds(userIdList).stream().collect(Collectors.toMap(SysUser::getId, SysUser::getPhone));
+            tenantStaffs.stream().filter(next -> StringUtils.isNotEmpty(next.getWxOpenid()))
+                    .forEach(staff -> sysUserFeignService.exitByPhoneAndOpenId(ClientEnum.ORGANIZATION.getCode().toLowerCase(),
+                            idPhoneMap.get(staff.getUserId()), staff.getWxOpenid()));
+
             tenantStaffMapper.update(null, Wrappers.<TenantStaff>lambdaUpdate()
                     .set(TenantStaff::getStatus, UserLockFlag.LOCKED)
+                    .set(TenantStaff::getWxOpenid, null)
                     .eq(TenantStaff::getTenantId, updateStatus.getId()));
         } else {
             tenantStaffMapper.update(null, Wrappers.<TenantStaff>lambdaUpdate()