package com.izouma.nineth.service; import com.izouma.nineth.config.Constants; import com.izouma.nineth.domain.Asset; import com.izouma.nineth.domain.MetaPlayerRoleClassify; import com.izouma.nineth.dto.MetaPlayerRole; import com.izouma.nineth.dto.PageQuery; import com.izouma.nineth.enums.UserHoldTypeEnum; import com.izouma.nineth.exception.BusinessException; import com.izouma.nineth.repo.AssetRepo; import com.izouma.nineth.repo.MetaPlayerRoleClassifyRepo; import com.izouma.nineth.utils.JpaUtils; import lombok.AllArgsConstructor; import org.apache.commons.collections.CollectionUtils; import org.springframework.data.domain.Page; import org.springframework.stereotype.Service; import java.util.List; @Service @AllArgsConstructor public class MetaPlayerRoleClassifyService { private AssetRepo assetRepo; private MetaPlayerRoleClassifyRepo metaPlayerRoleClassifyRepo; public Page all(PageQuery pageQuery) { return metaPlayerRoleClassifyRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaPlayerRoleClassify.class), JpaUtils.toPageRequest(pageQuery)); } public List metaPlayerRole(Long userId) { List metaPlayerRoleClassifies = metaPlayerRoleClassifyRepo.findAllByDel(false); if (CollectionUtils.isEmpty(metaPlayerRoleClassifies)) { throw new BusinessException("缺少角色配置"); } metaPlayerRoleClassifies.forEach(metaPlayerRoleClassify -> { metaPlayerRoleClassify.setMetaPlayerRoleList(build(userId, metaPlayerRoleClassify.getMetaPlayerRoleList())); }); return metaPlayerRoleClassifies; } private List build(Long userId, List metaPlayerRoleList) { metaPlayerRoleList.forEach(metaPlayerRole -> { metaPlayerRole.setType(UserHoldTypeEnum.ASSET); metaPlayerRole.setAddress("https://www.raex.vip/9th/productSearch?search=" + metaPlayerRole .getName() + "&source=TRANSFER"); List assets = assetRepo .findAllByUserIdAndStatusInAndNameLike(userId, Constants.META_NORMAL_STATUS, "%" + metaPlayerRole .getName() + "%"); metaPlayerRole.setHold(CollectionUtils.isNotEmpty(assets)); }); return metaPlayerRoleList; } }