package com.mindskip.xzs.service.impl; import com.mindskip.xzs.domain.UserEventLog; import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.repository.UserEventLogMapper; import com.mindskip.xzs.service.UserEventLogService; import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.viewmodel.admin.user.UserEventPageRequestVM; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Service public class UserEventLogServiceImpl extends BaseServiceImpl implements UserEventLogService { private final UserEventLogMapper userEventLogMapper; @Autowired public UserEventLogServiceImpl(UserEventLogMapper userEventLogMapper) { super(userEventLogMapper); this.userEventLogMapper = userEventLogMapper; } @Override public List getUserEventLogByUserId(Integer id) { return userEventLogMapper.getUserEventLogByUserId(id); } @Override public PageInfo page(UserEventPageRequestVM requestVM) { return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() -> userEventLogMapper.page(requestVM) ); } @Override public List selectMothCount() { Date startTime = DateTimeUtil.getMonthStartDay(); Date endTime = DateTimeUtil.getMonthEndDay(); List mouthCount = userEventLogMapper.selectCountByDate(startTime, endTime); List mothStartToNowFormat = DateTimeUtil.MothStartToNowFormat(); return mothStartToNowFormat.stream().map(md -> { KeyValue keyValue = mouthCount.stream().filter(kv -> kv.getName().equals(md)).findAny().orElse(null); return null == keyValue ? 0 : keyValue.getValue(); }).collect(Collectors.toList()); } }