|
@@ -1,18 +1,22 @@
|
|
|
package com.xyzc.start.service.impl;
|
|
|
|
|
|
-import com.xyzc.start.domain.vo.AppVo;
|
|
|
-import com.xyzc.start.domain.vo.CareerVo;
|
|
|
-import com.xyzc.start.domain.vo.IndustryVo;
|
|
|
-import com.xyzc.start.domain.vo.WebAppGroupVo;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.xyzc.common.web.security.user.SecurityUser;
|
|
|
+import com.xyzc.start.domain.WebAppGroup;
|
|
|
+import com.xyzc.start.domain.query.AppQuery;
|
|
|
+import com.xyzc.start.domain.vo.*;
|
|
|
import com.xyzc.start.mapper.AppMapper;
|
|
|
import com.xyzc.start.mapper.CareerMapper;
|
|
|
import com.xyzc.start.mapper.IndustryMapper;
|
|
|
import com.xyzc.start.mapper.WebAppGroupMapper;
|
|
|
import com.xyzc.start.service.IAppPageService;
|
|
|
+import jakarta.annotation.PostConstruct;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -29,26 +33,36 @@ public class AppPageServiceImpl implements IAppPageService {
|
|
|
private final AppMapper appMapper;
|
|
|
|
|
|
/**
|
|
|
+ * 将所有的行业分类的和职业分类存储起来
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Map<Long, List<CareerVo>> industryMap;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化数据
|
|
|
+ */
|
|
|
+ @PostConstruct
|
|
|
+ public void init() {
|
|
|
+ // 先获取所有的职业
|
|
|
+ List<CareerVo> careerVos = careerMapper.selectVoList();
|
|
|
+
|
|
|
+ // 按照行业id分组
|
|
|
+ industryMap = careerVos.stream().collect(
|
|
|
+ Collectors.groupingBy(CareerVo::getIndustryId)
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 类型查询
|
|
|
*
|
|
|
* @return List<WebAppGroupVo>
|
|
|
*/
|
|
|
@Override
|
|
|
public List<WebAppGroupVo> queryByType() {
|
|
|
- List<WebAppGroupVo> appGroupList = webAppGroupMapper.selectVoList(null);
|
|
|
- //再获取app
|
|
|
- List<AppVo> appList = appMapper.selectVoList(null);
|
|
|
-
|
|
|
- //遍历appGroupList与appList,让appList中的值通过appGroupList中的id关联
|
|
|
- for (WebAppGroupVo appGroupVo : appGroupList) {
|
|
|
- appGroupVo.setAppList(appList.stream()
|
|
|
- .filter(
|
|
|
- appVo -> appVo.getAppGroupId().equals(appGroupVo.getId())
|
|
|
- ).toList()
|
|
|
- );
|
|
|
- }
|
|
|
|
|
|
- return appGroupList;
|
|
|
+ return webAppGroupMapper.selectVoList(new LambdaQueryWrapper<WebAppGroup>()
|
|
|
+ .orderByDesc(WebAppGroup::getSort));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -73,19 +87,29 @@ public class AppPageServiceImpl implements IAppPageService {
|
|
|
).toList()
|
|
|
);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return industryVoList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 根据行业id查询所有所属的app列表
|
|
|
*
|
|
|
- * @param industryId
|
|
|
+ * @param careerId
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<WebAppGroupVo> queryByIndustryId(Long industryId) {
|
|
|
+ public AppPageCareerVo queryByIndustryId(Long careerId, Long appId) {
|
|
|
+ List<AppPageVo> appPageVos = careerMapper.queryAppPageVoByCareerId(SecurityUser.getUserId(), careerId, appId);
|
|
|
+ AppPageCareerVo appPageCareerVo = new AppPageCareerVo();
|
|
|
+ //为空跳出
|
|
|
+ if(appPageVos==null || appPageVos.isEmpty()){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
- return List.of();
|
|
|
+ appPageCareerVo.setCareerName(appPageVos.get(0).getCareerName());
|
|
|
+ appPageCareerVo.setAppPageList(appPageVos);
|
|
|
+
|
|
|
+ return appPageCareerVo;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -97,5 +121,15 @@ public class AppPageServiceImpl implements IAppPageService {
|
|
|
return List.of();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * app模糊查询
|
|
|
+ *
|
|
|
+ * @param appQuery
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<BaseUserSelectAppVo> queryAppByQuery(AppQuery appQuery) {
|
|
|
|
|
|
+ return appMapper.queryAppQuery(SecurityUser.getUserId(), appQuery);
|
|
|
+ }
|
|
|
}
|