package com.hollywood.manage.service.impl;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.hollywood.common.basic.PageInfo;
|
import com.hollywood.common.model.*;
|
import com.hollywood.manage.dto.TPopularActivityDTO;
|
import com.hollywood.manage.mapper.TPopularActivityMapper;
|
import com.hollywood.manage.mapper.TPopularActivityUserMapper;
|
import com.hollywood.manage.query.TPopularActivityQuery;
|
import com.hollywood.manage.service.TPopularActivityService;
|
import com.hollywood.manage.vo.TPopularActivityVO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.time.LocalDateTime;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 热门活动 服务实现类
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2024-02-29
|
*/
|
@Service
|
public class TPopularActivityServiceImpl extends ServiceImpl<TPopularActivityMapper, TPopularActivity> implements TPopularActivityService {
|
|
@Autowired
|
private TPopularActivityUserMapper popularActivityUserMapper;
|
|
@Override
|
public int upAndDown(Long id, Integer status) {
|
TPopularActivity popularActivity = this.baseMapper.selectById(id);
|
popularActivity.setStatus(status);
|
return this.baseMapper.updateById(popularActivity);
|
}
|
|
@Override
|
public PageInfo<TPopularActivityVO> pageList(TPopularActivityQuery query) {
|
PageInfo<TPopularActivityVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TPopularActivityVO> list = this.baseMapper.pageList(query,pageInfo);
|
List<TPopularActivityUser> tPopularActivityUsers = popularActivityUserMapper.selectList(Wrappers.lambdaQuery(TPopularActivityUser.class));
|
for (TPopularActivityVO tPopularActivityVO : list) {
|
List<TPopularActivityUser> popularActivityUsers = tPopularActivityUsers.stream().filter(e -> e.getActivityId().equals(tPopularActivityVO.getId())).collect(Collectors.toList());
|
tPopularActivityVO.setApplicationCount(popularActivityUsers.size());
|
}
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
|
@Override
|
public void judgeActivityStatus(TPopularActivityDTO dto) {
|
// 判断活动开始时间
|
LocalDateTime startTime = dto.getStartTime();
|
LocalDateTime endTime = dto.getEndTime();
|
|
if(LocalDateTime.now().isAfter(startTime) && LocalDateTime.now().isBefore(endTime)){
|
dto.setActivityStatus(2);
|
}
|
if(LocalDateTime.now().isAfter(endTime)){
|
dto.setActivityStatus(3);
|
}
|
if(LocalDateTime.now().isBefore(startTime)){
|
dto.setActivityStatus(1);
|
}
|
}
|
|
@Override
|
public void updateActivityStatus() {
|
List<TPopularActivity> list = this.baseMapper.selectList(Wrappers.lambdaQuery());
|
list.forEach(item -> {
|
if(LocalDateTime.now().isAfter(item.getStartTime()) && LocalDateTime.now().isBefore(item.getEndTime())){
|
item.setActivityStatus(2);
|
}
|
if(LocalDateTime.now().isAfter(item.getEndTime())){
|
item.setActivityStatus(3);
|
}
|
});
|
this.updateBatchById(list);
|
}
|
}
|