dengzedong
2025-02-27 3e61b6d86d6a98214e56c652a36a2290d471a695
提交 | 用户 | 时间
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) {
e63c53 41         ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class);
J 42         entity.setId(UUID.randomUUID().toString());
43         entity.setCreateTime(new Date());
44         baseDao.insert(entity);
af72d8 45     }
J 46
47     @Override
48     public void update(ElectricityPriceSegmentedEntity dto) {
49         ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class);
50         entity.setUpdateTime(new Date());
51         baseDao.updateById(entity);
52     }
53
54     @Override
55     public ElectricityPriceSegmentedEntity get(String id) {
56         return baseDao.selectById(id);
57     }
58
59
60     @Override
61     public void delete(String id) {
62         baseDao.deleteById(id);
63     }
64
65     @Override
e63c53 66     public void deleteByITimeId(String iTimeId) {
af9c8a 67         QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>();
e63c53 68         wrapper.eq(StringUtils.isNotBlank(iTimeId), "i_time_id", iTimeId);
J 69         baseDao.delete(wrapper);
70     }
71
72     @Override
1eec62 73     public List<ElectricityPriceSegmentedDTO> getElectricityPriceList(String year, String time) {
e63c53 74         List<ElectricityPriceSegmentedDTO> result = new ArrayList<>();
J 75         QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>();
76         wrapper.eq(StringUtils.isNotBlank(year), "year", year)
77                 .orderByDesc( "create_time");
78         List<ElectricityPriceSegmentedEntity> list = baseDao.selectList(wrapper);
79         if(CollectionUtils.isNotEmpty(list)){
80             String itimeId = list.get(0).getITimeId();
81             QueryWrapper<ElectricityPriceSegmentedEntity> wrapper1 = new QueryWrapper<>();
bd6495 82             wrapper1.eq(StringUtils.isNotBlank(itimeId), "i_time_id", itimeId)
D 83                     .apply(StringUtils.isNotBlank(time),"TIME(start_time) <= TIME({0})", time)
84                     .apply(StringUtils.isNotBlank(time),"TIME(end_time) > TIME({0})", time)
e63c53 85                     .orderByDesc( "create_time");
J 86             result = ConvertUtils.sourceToTarget(baseDao.selectList(wrapper1), ElectricityPriceSegmentedDTO.class);
87         }
88         return result;
af72d8 89     }
J 90
91     @Override
92     public List<ElectricityPriceSegmentedDTO> getElectricityPriceListByTime(ElectricityPriceSegmentedDTO dto) {
93         String startTime = DateUtils.format(dto.getStartTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
94         String endTime = DateUtils.format(dto.getEndTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
95         Map<String, Object> params = new HashMap<>();
96         params.put("startTime", startTime);
97         params.put("endTime", endTime);
98         List<ElectricityPriceSegmentedEntity> list = baseDao.selectList(getWrapper(params));
99         return ConvertUtils.sourceToTarget(list, ElectricityPriceSegmentedDTO.class);
100     }
101
102     private QueryWrapper<ElectricityPriceSegmentedEntity> getWrapper(Map<String, Object> params) {
103         String startTime = (String) params.get("startTime");
104         String endTime = (String) params.get("endTime");
105
106         QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>();
107         wrapper.eq(StringUtils.isNotBlank(startTime), "start_time", startTime)
108                 .eq(StringUtils.isNotBlank(endTime), "end_time", endTime);
109         return wrapper;
110     }
111 }