zoujiajian 1 rok temu
rodzic
commit
0f4b1cad75

+ 14 - 11
netflix-web/src/main/java/com/cyksj/web/controller/user/UserBenefitsFrontController.java

@@ -73,19 +73,22 @@ public class UserBenefitsFrontController {
 	 * 权益分类
 	 */
 	@GetMapping("/get/classification")
-	public Result<Map<UserBenefits.Type, List<UserBenefits>>> getUserBenefitsClassification() {
+	public Result<Map<UserBenefits.Type, List<UserBenefitsFrontView>>> getUserBenefitsClassification(Boolean mobile) {
 		String key = RedisService.key.USER_BENEFITS_KEY.getName() + ":cfc";
+		long userId = StpUserUtil.getLoginIdAsLong();
 		Object o = redisService.get(key);
-		Map<UserBenefits.Type, List<UserBenefits>> classifications = null;
+		Map<UserBenefits.Type, List<UserBenefitsFrontView>> classifications = null;
+		List<UserBenefitsFrontView> userBenefitsFrontViews;
 		if (o == null) {
-			List<UserBenefits> userBenefits = userBenefitsMapper.selectList(Wrappers.lambdaQuery(UserBenefits.class)
-					.eq(UserBenefits::getStatus, true)
-					.orderByAsc(UserBenefits::getSorted)
-					.select(UserBenefits::getId, UserBenefits::getType, UserBenefits::getDescription));
-			classifications = userBenefits.stream().collect(Collectors.groupingBy(UserBenefits::getType));
+			userBenefitsFrontViews = beanSearcher.searchAll(UserBenefitsFrontView.class, MapUtils.builder().onlySelect(UserBenefitsFrontView::getId, UserBenefitsFrontView::getType, UserBenefitsFrontView::getDescription).build());
+			classifications = userBenefitsFrontViews.stream().collect(Collectors.groupingBy(UserBenefitsFrontView::getType));
 			redisService.set(key, classifications, RedisService.key.USER_BENEFITS_KEY.getTimeout() + RandomUtil.randomInt(1800));
 		} else {
-			classifications = (Map<UserBenefits.Type, List<UserBenefits>>) o;
+			classifications = (Map<UserBenefits.Type, List<UserBenefitsFrontView>>) o;
+		}
+		if (mobile != null && mobile) {
+			List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+			classifications.values().forEach(list -> setDataInfo(list, null, userIdList, true));
 		}
 		return GatewayResponse.SUCCESS.newBuilder().toResult(classifications);
 	}
@@ -116,14 +119,14 @@ public class UserBenefitsFrontController {
 			userBenefitsFrontViews = (List<UserBenefitsFrontView>) o;
 		}
 		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
-		setDataInfo(userBenefitsFrontViews, type, userIdList);
+		setDataInfo(userBenefitsFrontViews, type, userIdList, false);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(userBenefitsFrontViews);
 	}
 
 
-	public void setDataInfo(List<UserBenefitsFrontView> userBenefitsFrontViews, UserBenefits.Type type, List<Long> userIdList) {
+	public void setDataInfo(List<UserBenefitsFrontView> userBenefitsFrontViews, UserBenefits.Type type, List<Long> userIdList, Boolean isAll) {
 		for (UserBenefitsFrontView data : userBenefitsFrontViews) {
-			if (type == null) {
+			if (isAll || type == null) {
 				type = data.getType();
 			}
 			Integer fhCount = 0;