Jay
2025-01-22 af72d8716cf20bfcb3fdf2cc67b5ee8c58966780
提交 | 用户 | 时间
af72d8 1 package com.iailab.module.model.mpk.service.impl;
J 2
3 import com.alibaba.nacos.common.utils.CollectionUtils;
4 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 import com.baomidou.mybatisplus.core.metadata.IPage;
6 import com.iailab.framework.common.page.PageData;
7 import com.iailab.framework.common.service.impl.BaseServiceImpl;
8 import com.iailab.framework.common.util.date.DateUtils;
9 import com.iailab.framework.common.util.object.ConvertUtils;
10 import com.iailab.module.model.api.mcs.dto.ElectricityPriceSegmentedDTO;
11 import com.iailab.module.model.mpk.dao.ElectricityPriceSegmentedDao;
12 import com.iailab.module.model.mpk.entity.ElectricityPriceSegmentedEntity;
13 import com.iailab.module.model.mpk.service.ElectricityPriceSegmentedService;
14 import lombok.extern.slf4j.Slf4j;
15 import org.apache.commons.lang3.StringUtils;
16 import org.springframework.stereotype.Service;
17
18 import java.util.*;
19
20 /**
21  * @description:
22  * @author: dzd 
23  * @date: 2024/11/5 11:21
24  **/
25 @Slf4j
26 @Service
27 public class ElectricityPriceSegmentedServiceImpl extends BaseServiceImpl<ElectricityPriceSegmentedDao, ElectricityPriceSegmentedEntity> implements ElectricityPriceSegmentedService {
28
29     @Override
30     public PageData<ElectricityPriceSegmentedDTO> page(Map<String, Object> params) {
31         IPage<ElectricityPriceSegmentedEntity> page = baseDao.selectPage(
32                 getPage(params, "create_time", false),
33                 getWrapper(params)
34         );
35
36         return getPageData(page, ElectricityPriceSegmentedDTO.class);
37     }
38
39     @Override
40     public void create(ElectricityPriceSegmentedDTO dto) {
41         List<ElectricityPriceSegmentedDTO> list =  getElectricityPriceListByTime(dto);
42         if (CollectionUtils.isEmpty(list)){
43             ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class);
44             entity.setId(UUID.randomUUID().toString());
45             entity.setCreateTime(new Date());
46             baseDao.insert(entity);
47         }
48     }
49
50     @Override
51     public void update(ElectricityPriceSegmentedEntity dto) {
52         ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class);
53         entity.setUpdateTime(new Date());
54         baseDao.updateById(entity);
55     }
56
57     @Override
58     public ElectricityPriceSegmentedEntity get(String id) {
59         return baseDao.selectById(id);
60     }
61
62
63     @Override
64     public void delete(String id) {
65         baseDao.deleteById(id);
66     }
67
68     @Override
69     public List<ElectricityPriceSegmentedDTO> getElectricityPriceList() {
70         return ConvertUtils.sourceToTarget(baseDao.selectList(new QueryWrapper<>()), ElectricityPriceSegmentedDTO.class);
71     }
72
73     @Override
74     public List<ElectricityPriceSegmentedDTO> getElectricityPriceListByTime(ElectricityPriceSegmentedDTO dto) {
75         String startTime = DateUtils.format(dto.getStartTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
76         String endTime = DateUtils.format(dto.getEndTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
77         Map<String, Object> params = new HashMap<>();
78         params.put("startTime", startTime);
79         params.put("endTime", endTime);
80         List<ElectricityPriceSegmentedEntity> list = baseDao.selectList(getWrapper(params));
81         return ConvertUtils.sourceToTarget(list, ElectricityPriceSegmentedDTO.class);
82     }
83
84     private QueryWrapper<ElectricityPriceSegmentedEntity> getWrapper(Map<String, Object> params) {
85         String startTime = (String) params.get("startTime");
86         String endTime = (String) params.get("endTime");
87
88         QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>();
89         wrapper.eq(StringUtils.isNotBlank(startTime), "start_time", startTime)
90                 .eq(StringUtils.isNotBlank(endTime), "end_time", endTime);
91         return wrapper;
92     }
93 }