package com.fzzy.api.view.pr;
|
|
import com.bstek.dorado.annotation.DataProvider;
|
import com.bstek.dorado.annotation.DataResolver;
|
import com.bstek.dorado.annotation.Expose;
|
import com.bstek.dorado.data.provider.Page;
|
import com.fzzy.api.entity.*;
|
import com.fzzy.api.utils.ContextUtil;
|
import com.fzzy.api.view.repository.ApiLogRep;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.lang.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Sort;
|
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.stereotype.Component;
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
import javax.persistence.criteria.CriteriaQuery;
|
import javax.persistence.criteria.Predicate;
|
import javax.persistence.criteria.Root;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
*
|
* 接口上传记录
|
* @author he
|
*/
|
@Slf4j
|
@Component
|
public class ApiLogPR {
|
|
@Autowired
|
private ApiLogRep apiLogRep;
|
|
/**
|
* apiLogPR#listAll
|
*
|
* @return
|
*/
|
@DataProvider
|
public List<ApiLog> listAll() {
|
return apiLogRep.findAll();
|
}
|
|
/**
|
* apiLogPR#updateSave
|
*
|
* @param entity
|
*/
|
@DataResolver
|
public void updateSave(ApiLog entity) {
|
|
// 手动将doradoEntity对象转换为标准Bean对象
|
ApiLog data = new ApiLog();
|
BeanUtils.copyProperties(entity, data);
|
|
apiLogRep.save(data);
|
}
|
|
/**
|
* apiLogPR#delData
|
*
|
* @param data
|
*/
|
@Expose
|
public String delData(ApiLog data) {
|
|
apiLogRep.deleteById(data.getId());
|
|
return null;
|
}
|
|
/**
|
* apiLogPR#pageList
|
*
|
* @return
|
*/
|
@SuppressWarnings("serial")
|
@DataProvider
|
public void pageList(Page<ApiLog> page, Map<String, Object> param) {
|
//多参数分页查询
|
Pageable pageable = PageRequest.of(page.getPageNo() - 1, page.getPageSize(), Sort.Direction.DESC, "uploadTime");
|
|
if (null == param) {
|
org.springframework.data.domain.Page<ApiLog> japPage = apiLogRep.findAll(pageable);
|
page.setEntityCount((int) japPage.getTotalElements());
|
page.setEntities(japPage.getContent());
|
|
return;
|
}
|
|
Specification<ApiLog> specification = new Specification<ApiLog>() {
|
public Predicate toPredicate(Root<ApiLog> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
|
List<Predicate> predicates = new ArrayList<Predicate>(); //所有的断言
|
|
String str = (String) param.get("kqdm");
|
if (StringUtils.isNotBlank(str)) {
|
Predicate predicate1 = cb.equal(root.get("kqdm"), str);
|
predicates.add(predicate1);
|
}
|
str = (String) param.get("inteId");
|
if (StringUtils.isNotBlank(str)) {
|
Predicate predicate2 = cb.equal(root.get("inteId"),str);
|
predicates.add(predicate2);
|
}
|
str = (String) param.get("type");
|
if (StringUtils.isNotBlank(str)) {
|
Predicate predicate3 = cb.equal(root.get("type"),str);
|
predicates.add(predicate3);
|
}
|
Date start = (Date) param.get("start");
|
if (null != start) {
|
Predicate predicate3 = cb.greaterThan(root.<Date>get("uploadTime"), ContextUtil.getCurZero(start));
|
predicates.add(predicate3);
|
}
|
Date end = (Date) param.get("end");
|
if (null != end) {
|
Predicate predicate4 = cb.lessThan(root.<Date>get("uploadTime"), ContextUtil.getNextZero(end));
|
predicates.add(predicate4);
|
}
|
return cb.and(predicates.toArray(new Predicate[0]));
|
}
|
};
|
|
log.debug("---------分页参数查询----------{}", param.toString());
|
org.springframework.data.domain.Page<ApiLog> japPage = apiLogRep.findAll(specification, pageable);
|
page.setEntityCount((int) japPage.getTotalElements());
|
page.setEntities(japPage.getContent());
|
}
|
|
|
|
/**
|
* <p>
|
* ${dorado.getDataProvider("apiLogPR#triggerType").getResult()}
|
*
|
* @return
|
*/
|
@DataProvider
|
public List<ApiTrigger> triggerType(String parentCode) {
|
List<ApiTrigger> list = new ArrayList<>();
|
list.add(new ApiTrigger(ApiLog.TYPE_PUSH,"推送平台"));
|
list.add(new ApiTrigger(ApiLog.TYPE_SYNC,"库区同步"));
|
return list;
|
}
|
|
}
|