|
|
@@ -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;
|