whyclxw
2024-07-30 ed04733e15a5304c68ac16c121fd2989c851a57b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.dto.Response;
import com.whyc.mapper.HolidaysMapper;
import com.whyc.pojo.Holidays;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
 
@Service
public class HolidaysService {
 
    @Resource
    private HolidaysMapper mapper;
 
    public List<Holidays> getListByYear(int year){
        QueryWrapper<Holidays> query = Wrappers.query();
        query.eq("year",year);
        return mapper.selectList(query);
    }
 
    public Response addListByYear(List<Holidays> list) {
        //校验
        //不允许多个年度一起提交
        //不允许年度重复节假日
        //提交的节假日如果数据库中存在则去重
        List<Integer> yearList = list.stream().map(Holidays::getYear).distinct().collect(Collectors.toList());
        List<String> dayList = list.stream().map(holidays -> holidays.getDay().toString()).distinct().collect(Collectors.toList());
        if(list.size()==0){
            return new Response().set(1,false,"未提交任何节假日数据");
        }
        if (yearList.size()>1){
            return new Response().set(1,false,"不允许多个年度节假日一起提交");
        }
        if(dayList.size()!=list.size()){
            return new Response().set(1,false,"不允许一次提交重复的节假日");
        }
        List<Holidays> listByYear = getListByYear(list.get(0).getYear());
        for (int i = list.size()-1; i >= 0; i--) {
            Holidays holiday = list.get(i);
            for (Holidays dayInDB : listByYear) {
                if(dayInDB.getDay().compareTo(holiday.getDay())==0){
                    //存在一样的,去重提交
                    list.remove(i);
                    break;
                }
            }
        }
        if(list.size()>0){
            mapper.insertBatchSomeColumn(list);
        }
        return new Response().set(1,true,"添加完成");
    }
 
    public Response deleteListByYear(int year) {
        UpdateWrapper<Holidays> update = Wrappers.update();
        update.eq("year",year);
        mapper.delete(update);
        return new Response().setII(1,"删除完成");
    }
 
    @Transactional
    public Response deleteListByIds(List<Integer> ids) {
        mapper.deleteBatchIds(ids);
        return new Response().setII(1,"删除完成");
    }
}