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
zhangdongxu 13acafd43d 上传代码
2017-12-19 14:55:52 +08:00

220 lines
6.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
*@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;
}
}