This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
k18-ntcs-web-argus-service/src/main/java/com/nis/web/service/restful/DnsResponseStrategyService.java

220 lines
6.2 KiB
Java
Raw Normal View History

2017-12-19 14:55:52 +08:00
/**
*@Title: DnsResponseStrategy.java
*@Package com.nis.web.controller.restful
*@Description TODO
*@author dell
*@date 2016年9月5日 下午3:37:54
*@version 1.0
*/
package com.nis.web.service.restful;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.nis.domain.Page;
import com.nis.domain.restful.DnsResponseStrategy;
import com.nis.restful.RestBusinessCode;
import com.nis.restful.RestServiceException;
import com.nis.util.Constants;
import com.nis.web.dao.DnsResponseStrategyDao;
import com.nis.web.service.CrudService;
import com.nis.web.service.SaveRequestLogThread;
/**
* @ClassName: DnsResponseStrategy.java
* @Description: TODO
* @author (dell)
* @date 2016年9月5日 下午3:37:54
* @version V1.0
*/
@Service
public class DnsResponseStrategyService extends CrudService<DnsResponseStrategyDao, DnsResponseStrategy> {
@Autowired
public DnsResponseStrategyDao dnsResponseStrategyDao;
public Page<DnsResponseStrategy> getDnsResponseStrategy(Page<DnsResponseStrategy> page, DnsResponseStrategy dnsResponseStrategy) {
return findPage(page, dnsResponseStrategy);
}
public DnsResponseStrategy findById(long id) {
return get(id);
}
/**
*
* saveDnsResponseStrategyBatch(多条插入)
* (这里描述这个方法适用条件 可选)
* @param entity
*void
* @exception
* @since 1.0.0
*/
public void saveDnsResponseStrategyBatch(List<DnsResponseStrategy> entity) {
// TODO Auto-generated method stub
super.saveBatch(entity,DnsResponseStrategyDao.class);
}
/**
*
* saveDnsResponseStrategyBatch(多条插入)
* (这里描述这个方法适用条件 可选)
* @param entity
*void
* @exception
* @since 1.0.0
*/
public void saveDnsResponseStrategyBatch(SaveRequestLogThread thread,long start,List<DnsResponseStrategy> entity) {
// TODO Auto-generated method stub
List idsList=new ArrayList<>();
for(DnsResponseStrategy e:entity){
if(e.getReqStrateId()!=null)
idsList.add(e.getReqStrateId());
}
if(idsList.size()>0){
boolean uinque=this.reqStrateIdValidation(idsList);
if(!uinque){
throw new RestServiceException(thread, System.currentTimeMillis(), "请求策略号不唯一", RestBusinessCode.not_unique.getValue());
}
}
super.saveBatch(entity,DnsResponseStrategyDao.class);
}
/**
*
* updateDnsResponseStrategyBatch(多条更新)
* (这里描述这个方法适用条件 可选)
* @param entity
*void
* @exception
* @since 1.0.0
*/
public void updateDnsResponseStrategyBatch(List<DnsResponseStrategy> entity) {
// TODO Auto-generated method stub
super.updateBatch(entity, DnsResponseStrategyDao.class);
}
/**
*
* updateDnsResponseStrategyBatch(多条更新)
* (这里描述这个方法适用条件 可选)
* @param entity
*void
* @exception
* @since 1.0.0
*/
public void updateDnsResponseStrategyBatch(SaveRequestLogThread thread,long start,List<DnsResponseStrategy> entity) {
// List idsList=new ArrayList<>();
// for(DnsResponseStrategy e:entity){
// if(e.getReqStrateId()!=null)
// idsList.add(e.getReqStrateId());
// }
// if(idsList.size()>0){
// boolean uinque=this.reqStrateIdValidation(idsList);
// if(!uinque){
// throw new RestServiceException(thread, System.currentTimeMillis(), "请求策略号不唯一", RestBusinessCode.not_unique.getValue());
// }
// }
// TODO Auto-generated method stub
super.updateBatch(entity, DnsResponseStrategyDao.class);
}
/**
*
* removeDnsResponseStrategy(单条删除)
* (这里描述这个方法适用条件 可选)
* @param id
*void
* @exception
* @since 1.0.0
*/
public void removeDnsResponseStrategy(long id) {
dnsResponseStrategyDao.delete(id);
}
/**
*
* removeDnsResponseStrategyBatch(多条删除)
* (这里描述这个方法适用条件 可选)
* @param entity
*void
* @exception
* @since 1.0.0
*/
public void removeDnsResponseStrategyBatch(List<DnsResponseStrategy> entity) {
super.deleteBatch(entity, DnsResponseStrategyDao.class);
}
/**
*
* isValid(单条有效验证)
* (这里描述这个方法适用条件 可选)
* @param id
* @return
*boolean
* @exception
* @since 1.0.0
*/
public boolean isValid(long id){
return dnsResponseStrategyDao.isValid(id)==Integer.parseInt(Constants.YES);
}
/**
*
* isValid(多条有效验证)
* (这里描述这个方法适用条件 可选)
* @param entity
* @return
*boolean
* @exception
* @since 1.0.0
*/
public boolean isValid(List<DnsResponseStrategy> entity){
boolean vaild=false;
List<Long> idsList=new ArrayList<Long>();
for(DnsResponseStrategy dnsResponseStrategy : entity){
idsList.add(dnsResponseStrategy.getId());
if(idsList.size()%1000==0&&idsList.size()!=0){
int count=dnsResponseStrategyDao.isValidBatch(idsList,Integer.parseInt(Constants.YES));
idsList.clear();
if(count>0){
vaild=true;
break;
}
}
}
if(idsList.size()>0){
int count=dnsResponseStrategyDao.isValidBatch(idsList,Integer.parseInt(Constants.YES));
idsList.clear();
if(count>0)vaild=true;
}
return vaild;
}
/**
* 验证字段唯一性
* reqStrateIdValidation(这里用一句话描述这个方法的作用)
* (这里描述这个方法适用条件 可选)
* @return
*boolean
* @exception
* @since 1.0.0
*/
public boolean reqStrateIdValidation(List<Integer> idsList){
int count=0;
if(idsList.size()>=1000){
int i=0;
for(;i<idsList.size()/1000;i++){
List<Integer> subList=idsList.subList(i*1000,(i+1)*1000);
count=dnsResponseStrategyDao.isReqStrateIdUnique(subList);
if(count>0){
return false;
}
}
if(idsList.size()>(i*1000)){
List<Integer> subList=idsList.subList(i*1000,idsList.size());
count=dnsResponseStrategyDao.isReqStrateIdUnique(subList);
}
}else{
count=dnsResponseStrategyDao.isReqStrateIdUnique(idsList);
}
return count==0;
}
}