package com.zksy.data.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zksy.data.annotation.XhDataLogRecord; import com.zksy.data.domain.po.XcrLiquidationMemberInfo; import com.zksy.data.domain.response.XcrLiquidationMemberInfoResponse; import com.zksy.data.mapper.XcrLiquidationMemberInfoMapper; import com.zksy.data.service.XcrLiquidationMemberInfoService; import com.zksy.data.utils.RedisService; import com.zksy.data.utils.XhRequestUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Vector; /** * @author 邵洋 * @description 针对表【xcr_liquidation_member_info(清算成员信息表)】的数据库操作Service实现 * @createDate 2024-10-21 13:47:50 */ @Service @Slf4j public class XcrLiquidationMemberInfoServiceImpl extends ServiceImpl implements XcrLiquidationMemberInfoService{ @Autowired private XhRequestUtil xhRequestUtil; @Autowired private RedisService redisService; @Override @Transactional(rollbackFor = Exception.class) @XhDataLogRecord("同步清算成员信息") public void saveDataByUniCode(String address) { //模拟从数据库中取数据大约为3000-4000条 List creditCodes = (List) redisService.getList("creditCodes").get(0); Vector toDatabaseList = new Vector<>(); creditCodes.parallelStream().forEach(creditCode -> { List list = xhRequestUtil.httpRequestByUniCode(creditCode, address, XcrLiquidationMemberInfoResponse.class, XcrLiquidationMemberInfo.class ); if(list != null){ toDatabaseList.addAll(list); } }); this.remove(null); this.saveBatch(toDatabaseList); log.info("清算成员信息同步完成"); } }