|
@@ -19,8 +19,10 @@ import org.dromara.main.mapper.MainPositionMapper;
|
|
|
import org.dromara.main.service.IMainPositionService;
|
|
import org.dromara.main.service.IMainPositionService;
|
|
|
import org.dromara.main.service.IMainStudentDislikeService;
|
|
import org.dromara.main.service.IMainStudentDislikeService;
|
|
|
import org.dromara.system.domain.SysTenant;
|
|
import org.dromara.system.domain.SysTenant;
|
|
|
|
|
+import org.dromara.system.domain.SysUser;
|
|
|
import org.dromara.system.domain.vo.SysTenantVo;
|
|
import org.dromara.system.domain.vo.SysTenantVo;
|
|
|
import org.dromara.system.mapper.SysTenantMapper;
|
|
import org.dromara.system.mapper.SysTenantMapper;
|
|
|
|
|
+import org.dromara.system.mapper.SysUserMapper;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -36,11 +38,9 @@ public class MainPositionServiceImpl extends ServiceImpl<MainPositionMapper, Mai
|
|
|
private final MainPositionMapper baseMapper;
|
|
private final MainPositionMapper baseMapper;
|
|
|
|
|
|
|
|
private final SysTenantMapper tenantMapper;
|
|
private final SysTenantMapper tenantMapper;
|
|
|
-
|
|
|
|
|
|
|
+ private final SysUserMapper userMapper;
|
|
|
private final MainCompanyApplyMapper companyApplyMapper;
|
|
private final MainCompanyApplyMapper companyApplyMapper;
|
|
|
-
|
|
|
|
|
private final OssService ossService;
|
|
private final OssService ossService;
|
|
|
-
|
|
|
|
|
private final IMainStudentDislikeService studentDislikeService;
|
|
private final IMainStudentDislikeService studentDislikeService;
|
|
|
/**
|
|
/**
|
|
|
* 查询岗位分页列表
|
|
* 查询岗位分页列表
|
|
@@ -67,21 +67,31 @@ public class MainPositionServiceImpl extends ServiceImpl<MainPositionMapper, Mai
|
|
|
SysTenantVo tenant = tenantMapper.selectVoOne(new LambdaQueryWrapper<SysTenant>().eq(SysTenant::getTenantId, vo.getTenantId()));
|
|
SysTenantVo tenant = tenantMapper.selectVoOne(new LambdaQueryWrapper<SysTenant>().eq(SysTenant::getTenantId, vo.getTenantId()));
|
|
|
if (tenant != null) {
|
|
if (tenant != null) {
|
|
|
vo.setCompanyName(tenant.getCompanyName());
|
|
vo.setCompanyName(tenant.getCompanyName());
|
|
|
|
|
+ // 使用租户表的 logo 字段作为企业 Logo
|
|
|
|
|
+ if (tenant.getLogo() != null) {
|
|
|
|
|
+ vo.setCompanyAvatar(ossService.selectUrlByIds(tenant.getLogo().toString()));
|
|
|
|
|
+ }
|
|
|
|
|
+ // 1. 优先从 SysUser 中获取负责人头像(对应租户管理员头像)
|
|
|
|
|
+ SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .eq(SysUser::getTenantId, vo.getTenantId())
|
|
|
|
|
+ .eq(SysUser::getNickName, tenant.getContactUserName())
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (user != null && user.getAvatar() != null) {
|
|
|
|
|
+ vo.setHrAvatar(ossService.selectUrlByIds(user.getAvatar().toString()));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 2. 备选方案:从 MainCompanyApply 中获取
|
|
|
|
|
+ MainCompanyApply companyApply = companyApplyMapper.selectOne(new LambdaQueryWrapper<MainCompanyApply>()
|
|
|
|
|
+ .eq(MainCompanyApply::getTenantId, vo.getTenantId())
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (companyApply != null && companyApply.getAvatar() != null) {
|
|
|
|
|
+ vo.setHrAvatar(ossService.selectUrlByIds(companyApply.getAvatar().toString()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
} else if ("000000".equals(vo.getTenantId())) {
|
|
} else if ("000000".equals(vo.getTenantId())) {
|
|
|
vo.setCompanyName("平台推荐");
|
|
vo.setCompanyName("平台推荐");
|
|
|
} else {
|
|
} else {
|
|
|
vo.setCompanyName("未知企业");
|
|
vo.setCompanyName("未知企业");
|
|
|
}
|
|
}
|
|
|
- // 补全企业logo
|
|
|
|
|
- try {
|
|
|
|
|
- MainCompanyApply companyApply = companyApplyMapper.selectOne(
|
|
|
|
|
- new LambdaQueryWrapper<MainCompanyApply>().eq(MainCompanyApply::getTenantId, vo.getTenantId()).last("LIMIT 1"));
|
|
|
|
|
- if (companyApply != null && companyApply.getAvatar() != null) {
|
|
|
|
|
- vo.setCompanyAvatar(ossService.selectUrlByIds(companyApply.getAvatar().toString()));
|
|
|
|
|
- }
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.warn("获取企业logo失败, tenantId={}: {}", vo.getTenantId(), e.getMessage());
|
|
|
|
|
- }
|
|
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
return result;
|
|
return result;
|
|
@@ -100,21 +110,40 @@ public class MainPositionServiceImpl extends ServiceImpl<MainPositionMapper, Mai
|
|
|
vo.setCompanyName(tenant.getCompanyName());
|
|
vo.setCompanyName(tenant.getCompanyName());
|
|
|
vo.setLongitude(tenant.getLongitude());
|
|
vo.setLongitude(tenant.getLongitude());
|
|
|
vo.setLatitude(tenant.getLatitude());
|
|
vo.setLatitude(tenant.getLatitude());
|
|
|
|
|
+ // 使用租户表的 logo 字段
|
|
|
|
|
+ if (tenant.getLogo() != null) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ vo.setCompanyAvatar(ossService.selectUrlByIds(tenant.getLogo().toString()));
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.warn("获取企业logo失败: {}", e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 获取真正的负责人头像
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 1. 优先从 SysUser 中获取负责人头像
|
|
|
|
|
+ SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
|
|
|
|
+ .eq(SysUser::getTenantId, vo.getTenantId())
|
|
|
|
|
+ .eq(SysUser::getNickName, tenant.getContactUserName())
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (user != null && user.getAvatar() != null) {
|
|
|
|
|
+ vo.setHrAvatar(ossService.selectUrlByIds(user.getAvatar().toString()));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 2. 备选方案:从 MainCompanyApply 中获取
|
|
|
|
|
+ MainCompanyApply companyApply = companyApplyMapper.selectOne(new LambdaQueryWrapper<MainCompanyApply>()
|
|
|
|
|
+ .eq(MainCompanyApply::getTenantId, vo.getTenantId())
|
|
|
|
|
+ .last("limit 1"));
|
|
|
|
|
+ if (companyApply != null && companyApply.getAvatar() != null) {
|
|
|
|
|
+ vo.setHrAvatar(ossService.selectUrlByIds(companyApply.getAvatar().toString()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.warn("获取负责人头像失败: {}", e.getMessage());
|
|
|
|
|
+ }
|
|
|
} else if ("000000".equals(vo.getTenantId())) {
|
|
} else if ("000000".equals(vo.getTenantId())) {
|
|
|
vo.setCompanyName("平台推荐");
|
|
vo.setCompanyName("平台推荐");
|
|
|
} else {
|
|
} else {
|
|
|
vo.setCompanyName("未知企业");
|
|
vo.setCompanyName("未知企业");
|
|
|
}
|
|
}
|
|
|
- // 查询企业logo
|
|
|
|
|
- MainCompanyApply companyApply = companyApplyMapper.selectOne(
|
|
|
|
|
- new LambdaQueryWrapper<MainCompanyApply>().eq(MainCompanyApply::getTenantId, vo.getTenantId()).last("LIMIT 1"));
|
|
|
|
|
- if (companyApply != null && companyApply.getAvatar() != null) {
|
|
|
|
|
- try {
|
|
|
|
|
- vo.setCompanyAvatar(ossService.selectUrlByIds(companyApply.getAvatar().toString()));
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.warn("获取企业logo失败: {}", e.getMessage());
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
return vo;
|
|
return vo;
|
|
|
}
|
|
}
|