|
|
@ -58,28 +58,9 @@ public class UserBadgeServiceImpl implements UserBadgeService { |
|
|
|
public List<UserBadgeListResultDTO> selectBadgeList(UserBadgeListFormDTO userBadgeListFormDTO) { |
|
|
|
Object userBadge = userBadgeRedis.getCustomerBadge(userBadgeListFormDTO.getCustomerId()); |
|
|
|
if (null == userBadge){ |
|
|
|
List<UserBadgeListResultDTO> resultUserBadge = new ArrayList<>(); |
|
|
|
List<UserBadgeListResultDTO> userBadgeListResultDTOS = userBadgeDao.selectAllBadge(userBadgeListFormDTO); |
|
|
|
if (!CollectionUtils.isEmpty(userBadgeListResultDTOS)){ |
|
|
|
Map<String, List<UserBadgeListResultDTO>> groupByCustomer = userBadgeListResultDTOS.stream().collect(Collectors.groupingBy(UserBadgeListResultDTO::getCustomerId)); |
|
|
|
resultUserBadge.addAll(groupByCustomer.get(BadgeConstant.DEFAULT_CUSTOMER)); |
|
|
|
List<UserBadgeListResultDTO> badgeByCustomer = groupByCustomer.get(userBadgeListFormDTO.getCustomerId()); |
|
|
|
if (!CollectionUtils.isEmpty(badgeByCustomer)) { |
|
|
|
resultUserBadge.forEach(r -> { |
|
|
|
badgeByCustomer.forEach(b -> { |
|
|
|
if (r.getBadgeId().equals(b.getBadgeId())) { |
|
|
|
BeanUtils.copyProperties(b, r); |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
userBadgeRedis.setCustomerBadge(resultUserBadge, userBadgeListFormDTO.getCustomerId()); |
|
|
|
userBadge = userBadgeRedis.getCustomerBadge(userBadgeListFormDTO.getCustomerId()); |
|
|
|
}else { |
|
|
|
userBadgeRedis.setCustomerBadge(resultUserBadge, userBadgeListFormDTO.getCustomerId()); |
|
|
|
this.reloadCustomerBadge(userBadgeListFormDTO.getCustomerId()); |
|
|
|
userBadge = userBadgeRedis.getCustomerBadge(userBadgeListFormDTO.getCustomerId()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
List<UserBadgeListResultDTO> redisUserBadgeList = JSON.parseArray(userBadge.toString(), UserBadgeListResultDTO.class); |
|
|
|
List<UserBadgeListResultDTO> userBadgeListResultDTOS = userBadgeDao.selectBadgeList(userBadgeListFormDTO); |
|
|
|
if (CollectionUtils.isEmpty(userBadgeListResultDTOS)){ |
|
|
@ -241,4 +222,32 @@ public class UserBadgeServiceImpl implements UserBadgeService { |
|
|
|
userBadgeDao.updateIsOpen(openedOrClosedFormDTO); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 客户徽章缓存初始化 |
|
|
|
* @Param customerId |
|
|
|
* @author zxc |
|
|
|
* @date 2020/11/5 3:12 下午 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void reloadCustomerBadge(String customerId){ |
|
|
|
userBadgeRedis.delCustomerBadge(customerId); |
|
|
|
List<UserBadgeListResultDTO> resultUserBadge = new ArrayList<>(); |
|
|
|
List<UserBadgeListResultDTO> userBadgeListResultDTOS = userBadgeDao.selectAllBadge(customerId); |
|
|
|
if (!CollectionUtils.isEmpty(userBadgeListResultDTOS)){ |
|
|
|
Map<String, List<UserBadgeListResultDTO>> groupByCustomer = userBadgeListResultDTOS.stream().collect(Collectors.groupingBy(UserBadgeListResultDTO::getCustomerId)); |
|
|
|
resultUserBadge.addAll(groupByCustomer.get(BadgeConstant.DEFAULT_CUSTOMER)); |
|
|
|
List<UserBadgeListResultDTO> badgeByCustomer = groupByCustomer.get(customerId); |
|
|
|
if (!CollectionUtils.isEmpty(badgeByCustomer)) { |
|
|
|
resultUserBadge.forEach(r -> { |
|
|
|
badgeByCustomer.forEach(b -> { |
|
|
|
if (r.getBadgeId().equals(b.getBadgeId())) { |
|
|
|
BeanUtils.copyProperties(b, r); |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
userBadgeRedis.setCustomerBadge(resultUserBadge, customerId); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|