package com.punchsettle.server.atomic.service.impl; import java.util.List; import java.util.Objects; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import com.punchsettle.server.atomic.StatPiTask; import com.punchsettle.server.atomic.entity.StatPiTaskWeek; import com.punchsettle.server.atomic.mapper.StatPiTaskWeekMapper; import com.punchsettle.server.atomic.service.IStatPiTaskWeekService; import com.punchsettle.server.common.utils.Assert; import com.punchsettle.server.pojo.stat.StatPiTaskQuery; import com.punchsettle.server.utiis.WeekendUtils; import lombok.extern.slf4j.Slf4j; import tk.mybatis.mapper.weekend.Weekend; import tk.mybatis.mapper.weekend.WeekendCriteria; /** * @author tyuio * @version 1.0.0 * @date 2025/4/15 17:09 * @description 打卡任务周数据统计 service */ @Slf4j @Service public class StatPiTaskWeekServiceImpl implements IStatPiTaskWeekService { @Autowired private StatPiTaskWeekMapper statPiTaskWeekMapper; @Override public StatPiTask queryOneByCondition(StatPiTaskQuery query) { Assert.isNull(query); StatPiTaskWeek statPiTaskWeekQuery = new StatPiTaskWeek(); statPiTaskWeekQuery.setUserId(query.getUserId()); statPiTaskWeekQuery.setStatTime(query.getStatTime()); statPiTaskWeekQuery.setTaskUniqueId(query.getTaskUniqueId()); return statPiTaskWeekMapper.selectOne(statPiTaskWeekQuery); } @Override public List queryByCondition(StatPiTaskQuery statPiTaskQuery) { Assert.isNull(statPiTaskQuery); Weekend weekend = WeekendUtils.createExcludeAuditFields(StatPiTaskWeek.class); WeekendCriteria criteria = weekend.weekendCriteria(); if (!CollectionUtils.isEmpty(statPiTaskQuery.getTaskUniqueIds())) { criteria.andIn(StatPiTaskWeek::getTaskUniqueId, statPiTaskQuery.getTaskUniqueIds()); } if (Objects.nonNull(statPiTaskQuery.getStatTime())) { criteria.andEqualTo(StatPiTaskWeek::getStatTime, statPiTaskQuery.getStatTime()); } if (!CollectionUtils.isEmpty(statPiTaskQuery.getUserIds())) { criteria.andIn(StatPiTaskWeek::getUserId, statPiTaskQuery.getUserIds()); } return (List) statPiTaskWeekMapper.selectByExample(weekend); } @Override public void insertList(List statPiTaskList) { Assert.notEmpty(statPiTaskList); statPiTaskWeekMapper.insertList(statPiTaskList); } @Override public void batchUpdate(List statPiTaskList) { Assert.notEmpty(statPiTaskList); statPiTaskWeekMapper.batchUpdateSelective(statPiTaskList); } }