add exceed cdr remove

This commit is contained in:
Donghuang 2021-09-23 19:11:34 +08:00
parent a73078221f
commit 1229783050
2 changed files with 44 additions and 2 deletions

View File

@ -1,8 +1,15 @@
package com.pudonghot.yo.fsagent.service.impl;
import lombok.val;
import java.util.Date;
import java.util.Calendar;
import lombok.extern.slf4j.Slf4j;
import me.chyxion.tigon.mybatis.Search;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.stereotype.Service;
import com.pudonghot.yo.mapper.CallDetailRecordMapper;
import com.pudonghot.yo.model.domain.CallDetailRecord;
import com.pudonghot.yo.model.domain.CallDetailRecordAll;
import com.pudonghot.yo.mapper.CallDetailRecordAllMapper;
import com.pudonghot.yo.model.domain.CallDetailRecordBase;
import org.springframework.beans.factory.annotation.Autowired;
@ -28,7 +35,30 @@ public class CallDetailRecordServiceImpl
@Override
public void insert(final CallDetailRecordBase req) {
log.debug("Insert call detail [{}].", req);
callDetailRecordAllMapper.insert(req);
callDetailRecordMapper.insert(req);
if (req.getDialType() == CallDetailRecordBase.DialType.CAMPAIGN) {
val calledNumber = req.getCalledNumber();
val today = DateUtils.truncate(new Date(), Calendar.HOUR);
val search = new Search(CallDetailRecord.CALLED_NUMBER, calledNumber)
.between(CallDetailRecord.START_STAMP,
DateUtils.addDays(today, -2),
DateUtils.addDays(today, -1))
.eq(CallDetailRecord.DIAL_TYPE, CallDetailRecordBase.DialType.CAMPAIGN);
if (req.getAnswerStamp() == null) {
if (callDetailRecordMapper.exists(search)) {
log.info("Ignore exceed CDR [{}].", req.getConnId());
req.setDeleted(Boolean.TRUE);
}
}
else {
callDetailRecordAllMapper.update(
CallDetailRecordBase.DELETED, Boolean.TRUE,
search.isNull(CallDetailRecordAll.ANSWER_STAMP));
}
}
callDetailRecordAllMapper.insert(req);
}
}

View File

@ -1,8 +1,11 @@
package com.pudonghot.yo.state;
import org.junit.Test;
import java.util.Date;
import java.util.UUID;
import org.junit.Test;
import java.util.Calendar;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateUtils;
/**
* @author Donghuang <br>
@ -19,4 +22,13 @@ public class TestDriver {
log.info("Original UUID: {}", uuid);
log.info("UUID: {}", id);
}
@Test
public void testDate() {
log.info("Before Yesterday [{}].", DateUtils.addDays(
DateUtils.truncate(new Date(), Calendar.HOUR), -2));
log.info("Yesterday [{}].", DateUtils.addDays(
DateUtils.truncate(new Date(), Calendar.HOUR), -1));
}
}