use of com.baomidou.mybatisplus.extension.plugins.pagination.Page in project CSKY by SHU-Silence.
the class TeacherServiceImpl method getTeacherInfoBySId.
@Override
public ResultVO getTeacherInfoBySId(Integer sid, long currentPage) {
Page<Teachers> page = new Page<>(currentPage, 5, true);
QueryWrapper<Teachers> wrapper = new QueryWrapper<Teachers>().eq("schoolId", sid);
teachersMapper.selectPage(page, wrapper);
TeacherPageVo teacherPageVo = new TeacherPageVo();
BeanUtils.copyProperties(page, teacherPageVo);
List<TeacherVo> teacherVos = new ArrayList<>();
for (Teachers record : page.getRecords()) {
TeacherVo teacherVo = new TeacherVo(record.getId(), record.getTname(), record.getStudydir());
teacherVos.add(teacherVo);
}
teacherPageVo.setTeacherVoList(teacherVos);
return new ResultVO(ResStatus.OK, "老师分页信息查询成功", teacherPageVo);
}
use of com.baomidou.mybatisplus.extension.plugins.pagination.Page in project CSKY by SHU-Silence.
the class TeacherServiceImpl method fuzzyQueryTeacher.
@Override
public ResultVO fuzzyQueryTeacher(TeacherPageParam teacherPageParam) {
String text = teacherPageParam.getText();
Integer uid = teacherPageParam.getUid();
if (text == null)
return new ResultVO(ResStatus.OK, "text为空", null);
QueryWrapper<Teachers> wrapper = new QueryWrapper<>();
wrapper.eq("schoolId", teacherPageParam.getSid()).and(wr -> {
wr.like("tname", text).or().like("studydir", text).or().like("eduresume", text).or().like("proresume", text).or().like("tURL", text);
}).orderByAsc("id");
IPage<Teachers> teachersPage = new Page<>();
BeanUtils.copyProperties(teacherPageParam, teachersPage);
teachersMapper.selectPage(teachersPage, wrapper);
TeacherPageVo teacherPageVo = new TeacherPageVo();
BeanUtils.copyProperties(teachersPage, teacherPageVo);
ArrayList<TeacherVo> teacherVos = new ArrayList<>();
for (Teachers record : teachersPage.getRecords()) {
TeacherVo teacherVo = new TeacherVo();
BeanUtils.copyProperties(record, teacherVo);
teacherVos.add(teacherVo);
}
// 若查到数据,插入search表
if (!teacherVos.isEmpty() && (uid != null))
searchMapper.insert(new Search(0, uid, text));
teacherPageVo.setTeacherVoList(teacherVos);
return new ResultVO(ResStatus.OK, "教师模糊查询分页信息返回成功", teacherPageVo);
}
use of com.baomidou.mybatisplus.extension.plugins.pagination.Page in project pig by pig-mesh.
the class SqlFilterArgumentResolver method resolveArgument.
/**
* @param parameter 入参集合
* @param mavContainer model 和 view
* @param webRequest web相关
* @param binderFactory 入参解析
* @return 检查后新的page对象
* <p>
* page 只支持查询 GET .如需解析POST获取请求报文体处理
*/
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) {
HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
String[] ascs = request.getParameterValues("ascs");
String[] descs = request.getParameterValues("descs");
String current = request.getParameter("current");
String size = request.getParameter("size");
Page<?> page = new Page<>();
if (StrUtil.isNotBlank(current)) {
page.setCurrent(Long.parseLong(current));
}
if (StrUtil.isNotBlank(size)) {
page.setSize(Long.parseLong(size));
}
List<OrderItem> orderItemList = new ArrayList<>();
Optional.ofNullable(ascs).ifPresent(s -> orderItemList.addAll(Arrays.stream(s).filter(sqlInjectPredicate()).map(OrderItem::asc).collect(Collectors.toList())));
Optional.ofNullable(descs).ifPresent(s -> orderItemList.addAll(Arrays.stream(s).filter(sqlInjectPredicate()).map(OrderItem::desc).collect(Collectors.toList())));
page.addOrder(orderItemList);
return page;
}
use of com.baomidou.mybatisplus.extension.plugins.pagination.Page in project incubator-hugegraph-toolchain by apache.
the class JobManagerService method list.
public IPage<JobManager> list(int connId, int pageNo, int pageSize, String content) {
QueryWrapper<JobManager> query = Wrappers.query();
query.eq("conn_id", connId);
if (!content.isEmpty()) {
query.like("job_name", content);
}
query.orderByDesc("create_time");
Page<JobManager> page = new Page<>(pageNo, pageSize);
IPage<JobManager> list = this.mapper.selectPage(page, query);
list.getRecords().forEach(task -> {
if (task.getJobStatus() == JobStatus.LOADING) {
List<LoadTask> tasks = this.taskService.taskListByJob(task.getId());
JobStatus status = JobStatus.SUCCESS;
for (LoadTask loadTask : tasks) {
if (loadTask.getStatus().inRunning() || loadTask.getStatus() == LoadStatus.PAUSED || loadTask.getStatus() == LoadStatus.STOPPED) {
status = JobStatus.LOADING;
break;
}
if (loadTask.getStatus() == LoadStatus.FAILED) {
status = JobStatus.FAILED;
break;
}
}
if (status == JobStatus.SUCCESS || status == JobStatus.FAILED) {
task.setJobStatus(status);
this.update(task);
}
}
Date endDate = task.getJobStatus() == JobStatus.FAILED || task.getJobStatus() == JobStatus.SUCCESS ? task.getUpdateTime() : HubbleUtil.nowDate();
task.setJobDuration(endDate.getTime() - task.getCreateTime().getTime());
});
return list;
}
use of com.baomidou.mybatisplus.extension.plugins.pagination.Page in project plank by MistraR.
the class Barbarossa method sellStock.
/**
* 减仓或清仓股票
*
* @param date 日期
*/
private void sellStock(Date date) {
List<HoldShares> holdShares = holdSharesMapper.selectList(new QueryWrapper<>());
if (CollectionUtils.isNotEmpty(holdShares)) {
for (HoldShares holdShare : holdShares) {
if (!DateUtils.isSameDay(holdShare.getBuyTime(), date) && holdShare.getBuyTime().getTime() < date.getTime()) {
Page<DailyRecord> selectPage = dailyRecordMapper.selectPage(new Page<>(1, 25), new QueryWrapper<DailyRecord>().eq("code", holdShare.getCode()).ge("date", DateUtils.addDays(date, -plankConfig.getDeficitMovingAverage() - 9)).le("date", date).orderByDesc("date"));
// 今日数据明细
DailyRecord todayRecord = selectPage.getRecords().get(0);
List<DailyRecord> dailyRecords = selectPage.getRecords().size() >= plankConfig.getDeficitMovingAverage() ? selectPage.getRecords().subList(0, plankConfig.getDeficitMovingAverage() - 1) : selectPage.getRecords();
// 止损均线价格
OptionalDouble average = dailyRecords.stream().mapToDouble(dailyRecord -> dailyRecord.getClosePrice().doubleValue()).average();
if (average.isPresent() && (todayRecord.getLowest().doubleValue() <= average.getAsDouble())) {
// 跌破均线,清仓
this.clearanceStock(holdShare, ClearanceReasonEnum.BREAK_POSITION, date, average.getAsDouble());
continue;
}
// 盘中最低收益率
double profitLowRatio = todayRecord.getLowest().subtract(holdShare.getBuyPrice()).divide(holdShare.getBuyPrice(), 2, RoundingMode.HALF_UP).doubleValue();
if (profitLowRatio < plankConfig.getDeficitRatio().doubleValue()) {
// 跌破止损线,清仓
this.clearanceStock(holdShare, ClearanceReasonEnum.BREAK_LOSS_LINE, date, holdShare.getBuyPrice().doubleValue() * (1 + plankConfig.getDeficitRatio().doubleValue()));
continue;
}
if (holdShare.getFifteenProfit() && profitLowRatio <= plankConfig.getProfitClearanceRatio().doubleValue()) {
// 收益回撤到10个点止盈清仓
this.clearanceStock(holdShare, ClearanceReasonEnum.TAKE_PROFIT, date, holdShare.getBuyPrice().doubleValue() * 1.1);
continue;
}
// 盘中最高收益率
double profitHighRatio = todayRecord.getHighest().subtract(holdShare.getBuyPrice()).divide(holdShare.getBuyPrice(), 2, RoundingMode.HALF_UP).doubleValue();
if (profitHighRatio >= plankConfig.getProfitUpperRatio().doubleValue()) {
// 收益25% 清仓
this.clearanceStock(holdShare, ClearanceReasonEnum.PROFIT_UPPER, date, holdShare.getBuyPrice().doubleValue() * (1 + plankConfig.getProfitUpperRatio().doubleValue()));
} else if (profitHighRatio >= plankConfig.getProfitQuarterRatio().doubleValue()) {
// 收益20% 减至1/4仓
this.reduceStock(holdShare, ClearanceReasonEnum.POSITION_QUARTER, date, todayRecord, holdShare.getBuyPrice().doubleValue() * (1 + plankConfig.getProfitQuarterRatio().doubleValue()));
} else if (profitHighRatio >= plankConfig.getProfitHalfRatio().doubleValue()) {
// 收益15% 减半仓
this.reduceStock(holdShare, ClearanceReasonEnum.POSITION_HALF, date, todayRecord, holdShare.getBuyPrice().doubleValue() * (1 + plankConfig.getProfitHalfRatio().doubleValue()));
}
// 持股超过x天 并且 收益不到20% 清仓
if (Days.daysBetween(new LocalDate(holdShare.getBuyTime().getTime()), new LocalDate(date.getTime())).getDays() > plankConfig.getClearanceDay()) {
this.clearanceStock(holdShare, ClearanceReasonEnum.TEN_DAY, date, todayRecord.getOpenPrice().add(todayRecord.getClosePrice()).doubleValue() / 2);
}
}
}
}
}
Aggregations