package com.yeshi.buwan.service.imp.search;
|
|
import com.yeshi.buwan.dao.search.SearchSpecialDao;
|
import com.yeshi.buwan.domain.special.SearchSpecial;
|
import com.yeshi.buwan.service.inter.search.SearchSpecialService;
|
import com.yeshi.buwan.util.StringUtil;
|
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Query;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class SearchSpecialServiceImpl implements SearchSpecialService {
|
|
@Resource
|
private SearchSpecialDao searchSpecialDao;
|
|
|
@Override
|
public SearchSpecial selectByKey(String key) {
|
SearchSpecialDao.DaoQuery daoQuery = new SearchSpecialDao.DaoQuery();
|
daoQuery.key = key;
|
daoQuery.count = 1;
|
List<SearchSpecial> list = searchSpecialDao.list(daoQuery);
|
if (list != null && list.size() > 0) {
|
return list.get(0);
|
}
|
return null;
|
}
|
|
@Override
|
public SearchSpecial selectByPrimaryKey(String id) {
|
return searchSpecialDao.get(id);
|
}
|
|
@Override
|
public List<SearchSpecial> listSpecial(String key, String systemId, int page, int pageSize) {
|
SearchSpecialDao.DaoQuery daoQuery = new SearchSpecialDao.DaoQuery();
|
daoQuery.regexName = key;
|
daoQuery.systemId = systemId;
|
daoQuery.count = pageSize;
|
daoQuery.start = (page - 1) * pageSize;
|
return searchSpecialDao.list(daoQuery);
|
}
|
|
@Override
|
public List<SearchSpecial> listByIds(List<String> ids) {
|
Query query = new Query();
|
Criteria[] ors = new Criteria[ids.size()];
|
for (int i = 0; i < ids.size(); i++) {
|
ors[i] = Criteria.where("_id").is(ids.get(i));
|
}
|
query.addCriteria(new Criteria().orOperator(ors));
|
return searchSpecialDao.findList(query);
|
}
|
|
@Override
|
public long countSpecial(String key, String systemId) {
|
SearchSpecialDao.DaoQuery daoQuery = new SearchSpecialDao.DaoQuery();
|
daoQuery.regexName = key;
|
daoQuery.systemId = systemId;
|
return searchSpecialDao.count(daoQuery);
|
}
|
|
@Override
|
public void updateSelective(SearchSpecial special) {
|
if (special.getUpdateTime() == null) {
|
special.setUpdateTime(new Date());
|
}
|
searchSpecialDao.updateSelective(special);
|
}
|
|
@Override
|
public void save(SearchSpecial special) throws Exception {
|
if (special == null || StringUtil.isNullOrEmpty(special.getKey())) {
|
throw new Exception("参数不完整");
|
}
|
|
if (special.getContainerList() == null || special.getContainerList().size() == 0) {
|
throw new Exception("搜索条件不能都为空");
|
}
|
|
if (special.getCreateTime() == null) {
|
special.setCreateTime(new Date());
|
}
|
|
if (special.getId() == null) {
|
special.setId(SearchSpecial.createId(special.getKey(), special.getSystemId()));
|
}
|
|
if (special.getUpdateTime() == null) {
|
special.setUpdateTime(new Date());
|
}
|
searchSpecialDao.save(special);
|
}
|
|
@Override
|
public void deleteByPrimaryKey(String id) {
|
searchSpecialDao.deleteByPrimaryKey(id);
|
}
|
}
|