/*
|
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
|
*
|
* Redistribution and use in source and binary forms, with or without
|
* modification, are permitted provided that the following conditions are met:
|
*
|
* Redistributions of source code must retain the above copyright notice,
|
* this list of conditions and the following disclaimer.
|
* Redistributions in binary form must reproduce the above copyright
|
* notice, this list of conditions and the following disclaimer in the
|
* documentation and/or other materials provided with the distribution.
|
* Neither the name of the dreamlu.net developer nor the names of its
|
* contributors may be used to endorse or promote products derived from
|
* this software without specific prior written permission.
|
* Author: Chill 庄骞 (smallchill@163.com)
|
*/
|
package cn.gistack.by.waterdata.service.impl;
|
|
import cn.gistack.by.waterdata.mapper.DistanceRecordMapper;
|
import cn.gistack.by.waterdata.pojo.entity.DistanceRecord;
|
import cn.gistack.by.waterdata.pojo.entity.SelectPageParam;
|
import cn.gistack.by.waterdata.pojo.vo.DistanceRecordVO;
|
import cn.gistack.by.waterdata.pojo.wrapper.DistanceRecordWrapper;
|
import cn.gistack.by.waterdata.service.api.IDistanceRecordService;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springframework.stereotype.Service;
|
|
import java.text.DecimalFormat;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 新闻 服务实现类
|
*
|
* @author BladeX
|
* @since 2023-12-06
|
*/
|
@Service
|
public class DistanceRecordServiceImpl extends ServiceImpl<DistanceRecordMapper, DistanceRecord>
|
implements IDistanceRecordService {
|
/**
|
* 自定义分页逻辑
|
*
|
* @param param {@link SelectPageParam}
|
* @return
|
*/
|
public IPage<DistanceRecordVO> selectPage(SelectPageParam param) {
|
List<DistanceRecord> distanceRecords = this.baseMapper.selectPage(param);
|
int subTableRecordsCount = this.baseMapper.getSubTableCount4Page(param);
|
|
List<DistanceRecordVO> recordVOList = new ArrayList<>(distanceRecords.size());
|
for (DistanceRecord distanceRecord : distanceRecords) {
|
DistanceRecordVO distanceRecordVO = DistanceRecordWrapper.build().entityVO(distanceRecord);
|
distanceRecordVO.setInitDistance(new DecimalFormat("#.##").format(param.getInitDistance()));
|
distanceRecordVO.setDistanceOffset(new DecimalFormat("#.##")
|
.format(distanceRecordVO.getDistance() - param.getInitDistance()));
|
recordVOList.add(distanceRecordVO);
|
}
|
|
Page page = new Page();
|
page.setCurrent(param.getCurrentPageIndex());
|
page.setSize(param.getPageSize());
|
page.setRecords(recordVOList);
|
page.setTotal(subTableRecordsCount);
|
return page;
|
}
|
|
@Override
|
public IPage<DistanceRecordVO> selectDistanceRecordPage(IPage<DistanceRecordVO> page, DistanceRecordVO distanceRecordVO) {
|
return page.setRecords(baseMapper.selectDistanceRecordPage(page, distanceRecordVO));
|
}
|
|
@Override
|
public DistanceRecord selectOneById(int id) {
|
return baseMapper.selectOneById(id);
|
}
|
}
|