|
@@ -1,7 +1,9 @@
|
|
|
package com.xyzc.start.service.impl;
|
|
|
|
|
|
import com.xyzc.common.web.security.user.SecurityUser;
|
|
|
+import com.xyzc.start.constant.BaseUserConst;
|
|
|
import com.xyzc.start.constant.MoreTypeConst;
|
|
|
+import com.xyzc.start.domain.BaseUserCollect;
|
|
|
import com.xyzc.start.domain.bo.BaseUserCollectQueryBo;
|
|
|
import com.xyzc.start.domain.vo.*;
|
|
|
import com.xyzc.start.mapper.BaseUserCollectMapper;
|
|
@@ -12,6 +14,9 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
@RequiredArgsConstructor
|
|
@@ -24,79 +29,106 @@ public class HomePageServiceImpl implements IHomePageService {
|
|
|
/**
|
|
|
* 当前用户获取所有的历史应用和用户收藏的应用
|
|
|
*
|
|
|
- * @return
|
|
|
+ * @return WebHomePageVo
|
|
|
*/
|
|
|
@Override
|
|
|
public WebHomePageVo getHomePage() {
|
|
|
- //拿到用户id
|
|
|
- Long userId = SecurityUser.getUserId();
|
|
|
- //获取当前用户的历史应用
|
|
|
-// List<CarefulSelectVo> historyApps = abilityMapper.queryCollectApps(IsCollectConst.NOT_COLLECT, false, userId);
|
|
|
-//
|
|
|
-// //获取当前用户的收藏应用
|
|
|
-// List<CarefulSelectVo> colletApps = abilityMapper.queryCollectApps(IsCollectConst.COLLECTED, false, userId);
|
|
|
-//
|
|
|
-// //TODO:后期优化,系统启动就将精选应用存储到redis,让用户优先从redis读取
|
|
|
-// //获取精选应用
|
|
|
-// List<CarefulSelectVo> carefulSelectApps = abilityMapper.queryCarefulSelectApps(null);
|
|
|
-
|
|
|
- //todo: 先试用假数据测试,然后查数据库真数据
|
|
|
- List<BaseUserCollectVo> historyApps = new ArrayList<>() {
|
|
|
- {
|
|
|
- add(new BaseUserCollectVo());
|
|
|
- add(new BaseUserCollectVo());
|
|
|
- add(new BaseUserCollectVo());
|
|
|
- }
|
|
|
- };
|
|
|
- List<BaseUserCollectVo> colletApps = new ArrayList<>() {
|
|
|
- {
|
|
|
- add(new BaseUserCollectVo());
|
|
|
- add(new BaseUserCollectVo());
|
|
|
- add(new BaseUserCollectVo());
|
|
|
- }
|
|
|
- };
|
|
|
- List<BaseUserCollectVo> carefulSelectApps = new ArrayList<>() {
|
|
|
- {
|
|
|
- add(new BaseUserCollectVo());
|
|
|
- add(new BaseUserCollectVo());
|
|
|
- add(new BaseUserCollectVo());
|
|
|
- }
|
|
|
-
|
|
|
- ;
|
|
|
- };
|
|
|
|
|
|
+ // 获取用户收藏应用 前8个
|
|
|
+ List<BaseUserCollectAppVo> collectAppList = baseUserCollectMapper.queryCollectAppBy(SecurityUser.getUserId());
|
|
|
+
|
|
|
+ // 获取用户历史应用 前8个
|
|
|
+ List<BaseUserCollectAppVo> historyAppList = baseUserCollectMapper.queryHistoryAppBy(SecurityUser.getUserId());
|
|
|
+
|
|
|
+ // 获取精选应用 前4个
|
|
|
+ List<BaseUserSelectAppVo> carefulSelectAppList = baseUserCollectMapper.queryCarefulSelectAppBy(null, 4);
|
|
|
+ // 以精选应用id未key,精选应用为value,生成一个map,并且去重
|
|
|
+ Map<Long, BaseUserSelectAppVo> collect = carefulSelectAppList
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(BaseUserSelectAppVo::getAppId, Function.identity(), (k1, k2) -> k1));
|
|
|
+
|
|
|
+ // 将map的id值转换为list
|
|
|
+ List<Long> appIdList = new ArrayList<>(collect.keySet());
|
|
|
+ List<BaseUserCollect> baseUserCollect = baseUserCollectMapper.queryCollectAppByUserIdAndAppId(SecurityUser.getUserId(), appIdList, BaseUserConst.COLLECT_APP);
|
|
|
+ for (BaseUserCollect app : baseUserCollect){
|
|
|
+ collect.get(app.getCollectId()).setIsCollect(app.getIsCollect());
|
|
|
+ }
|
|
|
|
|
|
//生成数据返回给视图
|
|
|
WebHomePageVo webHomePageVo = new WebHomePageVo();
|
|
|
- webHomePageVo.setHistoryApps(historyApps);
|
|
|
- webHomePageVo.setColletApps(colletApps);
|
|
|
- webHomePageVo.setCarefullSelectApps(carefulSelectApps);
|
|
|
+ webHomePageVo.setHistoryApps(historyAppList);
|
|
|
+ webHomePageVo.setColletApps(collectAppList);
|
|
|
+ webHomePageVo.setCarefullSelectApps(carefulSelectAppList);
|
|
|
+
|
|
|
return webHomePageVo;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 获取最近使用的应用
|
|
|
+ * 获取更多最近使用的应用
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<AppVo> getRecentlyUsed() {
|
|
|
+ public List<BaseUserCollectAppVo> getRecentlyUsed(Long appId) {
|
|
|
+ // 获取最近使用应用
|
|
|
|
|
|
- return List.of();
|
|
|
+ return baseUserCollectMapper.queryHistoryAppBy(SecurityUser.getUserId());
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取联系信息
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
@Override
|
|
|
public MerchantCancatVo getContact() {
|
|
|
-
|
|
|
+
|
|
|
return merchantMapper.queryMerchantCancatById(SecurityUser.getUserId());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 获取所有的收藏应用
|
|
|
+ * 获取更多的收藏应用
|
|
|
*
|
|
|
+ * @param appId 应用id
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
+ public List<BaseUserCollectAppVo> getMoreCollect(Long appId) {
|
|
|
+ // 获取跟多用户收藏应用
|
|
|
+ return baseUserCollectMapper.queryCollectAppBy(SecurityUser.getUserId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取更多精选应用
|
|
|
+ *
|
|
|
+ * @param appId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<BaseUserSelectAppVo> getMoreSelector(Long appId) {
|
|
|
+ // 获取更多精选应用
|
|
|
+ List<BaseUserSelectAppVo> baseUserSelectAppVos = baseUserCollectMapper.queryCarefulSelectAppBy(appId, 10);
|
|
|
+
|
|
|
+ // 以精选应用id未key,精选应用为value,生成一个map,并且去重
|
|
|
+ Map<Long, BaseUserSelectAppVo> collect = baseUserSelectAppVos.stream().collect(Collectors.toMap(BaseUserSelectAppVo::getAppId, Function.identity(), (k1, k2) -> k1));
|
|
|
+
|
|
|
+ // 将map的id值转换为list
|
|
|
+ List<Long> ids = new ArrayList<>(collect.keySet());
|
|
|
+ List<BaseUserCollect> baseUserCollect = baseUserCollectMapper.queryCollectAppByUserIdAndAppId(SecurityUser.getUserId(), ids, BaseUserConst.COLLECT_APP);
|
|
|
+ for (BaseUserCollect app : baseUserCollect){
|
|
|
+ collect.get(app.getCollectId()).setIsCollect(app.getIsCollect());
|
|
|
+ }
|
|
|
+
|
|
|
+ return baseUserSelectAppVos;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取更多收藏
|
|
|
+ *
|
|
|
+ * @return List<BaseUserCollectVo>
|
|
|
+ */
|
|
|
+ @Override
|
|
|
public List<BaseUserCollectVo> getMoreApps(BaseUserCollectQueryBo collectBo) {
|
|
|
//todo : 需要获取当前用户信息
|
|
|
Long userId = 123L;
|