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 implements ElectricityPriceSegmentedService { @Override public PageData page(Map params) { IPage page = baseDao.selectPage( getPage(params, "create_time", false), getWrapper(params) ); return getPageData(page, ElectricityPriceSegmentedDTO.class); } @Override public void create(ElectricityPriceSegmentedDTO dto) { List 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 getElectricityPriceList() { return ConvertUtils.sourceToTarget(baseDao.selectList(new QueryWrapper<>()), ElectricityPriceSegmentedDTO.class); } @Override public List 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 params = new HashMap<>(); params.put("startTime", startTime); params.put("endTime", endTime); List list = baseDao.selectList(getWrapper(params)); return ConvertUtils.sourceToTarget(list, ElectricityPriceSegmentedDTO.class); } private QueryWrapper getWrapper(Map params) { String startTime = (String) params.get("startTime"); String endTime = (String) params.get("endTime"); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(startTime), "start_time", startTime) .eq(StringUtils.isNotBlank(endTime), "end_time", endTime); return wrapper; } }