220 lines
6.2 KiB
Java
220 lines
6.2 KiB
Java
/**
|
||
*@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;
|
||
}
|
||
}
|