package com.iailab.module.model.mpk.service.impl;
|
|
import com.alibaba.nacos.common.utils.CollectionUtils;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.iailab.framework.common.page.PageData;
|
import com.iailab.framework.common.service.impl.BaseServiceImpl;
|
import com.iailab.framework.common.util.date.DateUtils;
|
import com.iailab.framework.common.util.object.ConvertUtils;
|
import com.iailab.module.model.api.mcs.dto.ElectricityPriceSegmentedDTO;
|
import com.iailab.module.model.mpk.dao.ElectricityPriceSegmentedDao;
|
import com.iailab.module.model.mpk.entity.ElectricityPriceSegmentedEntity;
|
import com.iailab.module.model.mpk.service.ElectricityPriceSegmentedService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.stereotype.Service;
|
|
import java.util.*;
|
|
/**
|
* @description:
|
* @author: dzd
|
* @date: 2024/11/5 11:21
|
**/
|
@Slf4j
|
@Service
|
public class ElectricityPriceSegmentedServiceImpl extends BaseServiceImpl<ElectricityPriceSegmentedDao, ElectricityPriceSegmentedEntity> implements ElectricityPriceSegmentedService {
|
|
@Override
|
public PageData<ElectricityPriceSegmentedDTO> page(Map<String, Object> params) {
|
IPage<ElectricityPriceSegmentedEntity> page = baseDao.selectPage(
|
getPage(params, "create_time", false),
|
getWrapper(params)
|
);
|
|
return getPageData(page, ElectricityPriceSegmentedDTO.class);
|
}
|
|
@Override
|
public void create(ElectricityPriceSegmentedDTO dto) {
|
List<ElectricityPriceSegmentedDTO> list = getElectricityPriceListByTime(dto);
|
if (CollectionUtils.isEmpty(list)){
|
ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class);
|
entity.setId(UUID.randomUUID().toString());
|
entity.setCreateTime(new Date());
|
baseDao.insert(entity);
|
}
|
}
|
|
@Override
|
public void update(ElectricityPriceSegmentedEntity dto) {
|
ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class);
|
entity.setUpdateTime(new Date());
|
baseDao.updateById(entity);
|
}
|
|
@Override
|
public ElectricityPriceSegmentedEntity get(String id) {
|
return baseDao.selectById(id);
|
}
|
|
|
@Override
|
public void delete(String id) {
|
baseDao.deleteById(id);
|
}
|
|
@Override
|
public List<ElectricityPriceSegmentedDTO> getElectricityPriceList(String year) {
|
QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>();
|
wrapper.eq(StringUtils.isNotBlank(year), "year", year);
|
return ConvertUtils.sourceToTarget(baseDao.selectList(wrapper), ElectricityPriceSegmentedDTO.class);
|
}
|
|
@Override
|
public List<ElectricityPriceSegmentedDTO> getElectricityPriceListByTime(ElectricityPriceSegmentedDTO dto) {
|
String startTime = DateUtils.format(dto.getStartTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
|
String endTime = DateUtils.format(dto.getEndTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
|
Map<String, Object> params = new HashMap<>();
|
params.put("startTime", startTime);
|
params.put("endTime", endTime);
|
List<ElectricityPriceSegmentedEntity> list = baseDao.selectList(getWrapper(params));
|
return ConvertUtils.sourceToTarget(list, ElectricityPriceSegmentedDTO.class);
|
}
|
|
private QueryWrapper<ElectricityPriceSegmentedEntity> getWrapper(Map<String, Object> params) {
|
String startTime = (String) params.get("startTime");
|
String endTime = (String) params.get("endTime");
|
|
QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>();
|
wrapper.eq(StringUtils.isNotBlank(startTime), "start_time", startTime)
|
.eq(StringUtils.isNotBlank(endTime), "end_time", endTime);
|
return wrapper;
|
}
|
}
|