package com.cloudroam.service.impl;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloudroam.common.LocalUser;
import com.cloudroam.common.enumeration.CalendarTypeEnum;
import com.cloudroam.common.enumeration.DeletedEnum;
import com.cloudroam.dto.calendarHoliday.CalendarHolidayPageDTO;
import com.cloudroam.dto.calendarHoliday.CreateCalendarHolidayDTO;
import com.cloudroam.dto.calendarHoliday.UpdateCalendarHolidayDTO;
import com.cloudroam.mapper.CalCalendarHolidayMapperCustom;
import com.cloudroam.mapper.CalCalendarMapperCustom;
import com.cloudroam.model.CalCalendarHolidayDO;
import com.cloudroam.mapper.CalCalendarHolidayMapper;
import com.cloudroam.model.MeetingDO;
import com.cloudroam.model.UserDO;
import com.cloudroam.service.CalCalendarHolidayService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author generator@TaoJie
* @since 2024-07-25
*/
@Service
public class CalCalendarHolidayServiceImpl extends ServiceImpl implements CalCalendarHolidayService {
@Autowired
private CalCalendarHolidayMapperCustom calCalendarHolidayMapperCustom;
@Autowired
private CalCalendarMapperCustom calCalendarMapperCustom;
@Transactional
@Override
public boolean insertCalendarHoliday(CreateCalendarHolidayDTO validator) {
UserDO user = LocalUser.getLocalUser();
CalCalendarHolidayDO calCalendarHolidayDO=new CalCalendarHolidayDO();
BeanUtils.copyProperties(validator,calCalendarHolidayDO);
calCalendarHolidayDO.setId(IdUtil.simpleUUID());
calCalendarHolidayDO.setCreateTime(new Date());
calCalendarHolidayDO.setCreateUserId(String.valueOf(user.getId()));
calCalendarHolidayDO.setCreateUserName(user.getNickname());
calCalendarHolidayDO.setUpdateTime(new Date());
calCalendarHolidayDO.setUpdateUserId(String.valueOf(user.getId()));
calCalendarHolidayDO.setUpdateUserName(user.getNickname());
calCalendarHolidayDO.setIsDeleted(DeletedEnum.DELETED_NO.getCode());
// 更新日志的类型
calCalendarMapperCustom.updateCalCalendarType(calCalendarHolidayDO);
return baseMapper.insert(calCalendarHolidayDO)>0;
}
@Transactional
@Override
public boolean updateCalendarHoliday(UpdateCalendarHolidayDTO validator) {
UserDO user = LocalUser.getLocalUser();
CalCalendarHolidayDO calCalendarHolidayDO=new CalCalendarHolidayDO();
BeanUtils.copyProperties(validator,calCalendarHolidayDO);
calCalendarHolidayDO.setUpdateTime(new Date());
calCalendarHolidayDO.setUpdateUserId(String.valueOf(user.getId()));
calCalendarHolidayDO.setUpdateUserName(user.getNickname());
// 先获取之前的日历
final CalCalendarHolidayDO beforeCalendarHolidayDO = baseMapper.selectById(validator.getId());
// 将之前日历的数据类型替换成null
beforeCalendarHolidayDO.setType(CalendarTypeEnum.NONE.getCode());
calCalendarMapperCustom.updateCalCalendarType(beforeCalendarHolidayDO);
// 更新日历之后的类型
calCalendarMapperCustom.updateCalCalendarType(calCalendarHolidayDO);
return baseMapper.updateById(calCalendarHolidayDO)>0;
}
@Override
@Transactional
public boolean deleteCalendarHolidayById(String id) {
UserDO user = LocalUser.getLocalUser();
final CalCalendarHolidayDO calCalendarHolidayDO = baseMapper.selectById(id);
calCalendarHolidayDO.setIsDeleted(DeletedEnum.DELETED_YES.getCode());
calCalendarHolidayDO.setDeleteTime(new Date());
calCalendarHolidayDO.setDeleteUserName(user.getNickname());
calCalendarHolidayDO.setDeleteUserId(String.valueOf(user.getId()));
// 将要删除的日历记事关联的日历数据设置为无(0)
CalCalendarHolidayDO deleteCalCalendarHolidayDO=new CalCalendarHolidayDO();
deleteCalCalendarHolidayDO.setType(CalendarTypeEnum.NONE.getCode());
deleteCalCalendarHolidayDO.setStartDate(calCalendarHolidayDO.getStartDate());
deleteCalCalendarHolidayDO.setEndDate(calCalendarHolidayDO.getEndDate());
calCalendarMapperCustom.updateCalCalendarType(deleteCalCalendarHolidayDO);
return baseMapper.updateById(calCalendarHolidayDO)>0;
}
@Override
public IPage getCalendarHolidayPage(CalendarHolidayPageDTO dto) {
Page page=new Page(dto.getPage(),dto.getCount());
return calCalendarHolidayMapperCustom.getCalendarHolidayPage(page,dto);
}
@Override
public List getCalendarHolidayList(CalendarHolidayPageDTO dto) {
return calCalendarHolidayMapperCustom.getCalendarHolidayList(dto);
}
}