package com.sinata.modular.system.service.impl;
|
|
import com.sinata.modular.system.model.TNoticeMessage;
|
import com.sinata.modular.system.dao.TNoticeMessageMapper;
|
import com.sinata.modular.system.service.ITNoticeMessageService;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import io.swagger.models.auth.In;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 公告消息 服务实现类
|
* </p>
|
*
|
* @author goku
|
* @since 2023-03-28
|
*/
|
@Service
|
public class TNoticeMessageServiceImpl extends ServiceImpl<TNoticeMessageMapper, TNoticeMessage> implements ITNoticeMessageService {
|
|
@Override
|
public void insertList(List<TNoticeMessage> tNoticeMessages) {
|
// 每次最大5000千条
|
Integer maxNum = 5000;
|
// 需要循环的次数
|
Integer forNum = 0;
|
// 最条数的余数
|
Integer userSpare = 0;
|
if (tNoticeMessages.size() > maxNum) {
|
// 单次添加数据超过指定数量
|
forNum = tNoticeMessages.size() / maxNum;
|
// 单次最多数据,超过判断是否有余数
|
userSpare = tNoticeMessages.size() % maxNum;
|
if (userSpare > 0) {
|
// 有余数
|
forNum += 1;
|
}
|
for (int i = 0; i < forNum; i++) {
|
// 数据游标
|
Integer cursor = 0;
|
if (i != 0) {
|
cursor = i * maxNum - 1;
|
}
|
if (userSpare > 0 && i == (forNum - 1)) {
|
// 最后一次
|
this.baseMapper.insertList(tNoticeMessages.subList(cursor, tNoticeMessages.size()));
|
} else {
|
// 其它情况都是最大条数
|
this.baseMapper.insertList(tNoticeMessages.subList(cursor, (i + 1) * maxNum - 1));
|
}
|
}
|
} else {
|
this.baseMapper.insertList(tNoticeMessages);
|
}
|
}
|
}
|