package com.dg.core.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dg.core.ResultData; import com.dg.core.db.gen.entity.AutomessageSysUserRecord; import com.dg.core.db.gen.entity.SysUser; import com.dg.core.db.gen.mapper.AutomessageSysUserRecordMapper; import com.dg.core.db.gen.mapper.SysUserMapper; import com.dg.core.service.ISysUserRecordService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; @Service public class SysUserRecordServiceImpl extends ServiceImpl implements ISysUserRecordService { @Resource private SysUserMapper sysUserMapper; @Override public ResultData add(SysUser sysUser){ if (sysUser!=null){ LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0); LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59); AutomessageSysUserRecord automessageSysUserRecord = baseMapper.selectOne(new QueryWrapper() .lambda().eq(AutomessageSysUserRecord::getUserId, sysUser.getUserId()) .orderByDesc(AutomessageSysUserRecord::getCreateTime) .last("limit 1")); //判断上次访问时间是不是今天 如果是今天不增加浏览次数 if (automessageSysUserRecord==null||(!(automessageSysUserRecord.getCreateTime().isAfter(startTime)&&automessageSysUserRecord.getCreateTime().isBefore(endTime)))) { AutomessageSysUserRecord automessageSysUserRecordNew = new AutomessageSysUserRecord(); automessageSysUserRecordNew.setUserId(sysUser.getUserId()); automessageSysUserRecordNew.setCreateTime(LocalDateTime.now()); sysUser.setLoginDate(LocalDateTime.now()); sysUserMapper.updateById(sysUser); return ResultData.success(baseMapper.insert(automessageSysUserRecordNew)); } } return null; } @Override public ResultData selectUserRecordCount() { return ResultData.success(baseMapper.selectUserRecordCount()); } @Override public ResultData selectByDateType(Integer dateType) { if (dateType.equals(1)) return ResultData.success(baseMapper.selectByDay()); if (dateType.equals(2)) return ResultData.success(baseMapper.selectByMonth()); if (dateType.equals(3)) return ResultData.success(baseMapper.selectByYear()); return null; } @Override public Integer deleteDistinct() { return baseMapper.deleteDistinct(); } }