|
|
@@ -6,11 +6,9 @@ import com.izouma.walkchina.domain.TeamMember;
|
|
|
import com.izouma.walkchina.domain.UserCoinRecord;
|
|
|
import com.izouma.walkchina.domain.UserInfo;
|
|
|
import com.izouma.walkchina.constant.AppConstants;
|
|
|
+import com.izouma.walkchina.dto.UserTeamMember;
|
|
|
import com.izouma.walkchina.exception.ServiceException;
|
|
|
-import com.izouma.walkchina.repo.MessageRepository;
|
|
|
-import com.izouma.walkchina.repo.TeamMemberRepository;
|
|
|
-import com.izouma.walkchina.repo.UserCoinRecordRepository;
|
|
|
-import com.izouma.walkchina.repo.UserInfoRepository;
|
|
|
+import com.izouma.walkchina.repo.*;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.time.DateUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -18,6 +16,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
import java.util.Optional;
|
|
|
|
|
|
@Service
|
|
|
@@ -31,6 +30,8 @@ public class TeamService {
|
|
|
private UserCoinRecordRepository userCoinRecordRepository;
|
|
|
@Autowired
|
|
|
private MessageRepository messageRepository;
|
|
|
+ @Autowired
|
|
|
+ private WalkDataRepository walkDataRepository;
|
|
|
|
|
|
public void hire(Long userId, Long target) {
|
|
|
Date now = new Date();
|
|
|
@@ -38,6 +39,10 @@ public class TeamService {
|
|
|
UserInfo targetUserInfo = userInfoRepository.findById(target).orElseThrow(new ServiceException("用户不存在"));
|
|
|
TeamMember teamMember = teamMemberRepository.findActive(target, now);
|
|
|
if (teamMember != null) {
|
|
|
+ if (teamMember.getLeader().equals(userId)) {
|
|
|
+ throw new ServiceException("Ta已经是你的队员");
|
|
|
+ }
|
|
|
+
|
|
|
teamMember.setEndDate(now);
|
|
|
teamMemberRepository.save(teamMember);
|
|
|
Message grabMsg = Message.builder()
|
|
|
@@ -105,4 +110,22 @@ public class TeamService {
|
|
|
.build();
|
|
|
messageRepository.save(beHireMsg);
|
|
|
}
|
|
|
+
|
|
|
+ public boolean canHire(Long userId, Long target) {
|
|
|
+ Date now = new Date();
|
|
|
+ TeamMember teamMember = teamMemberRepository.findActive(target, now);
|
|
|
+ if (teamMember != null) {
|
|
|
+ return !teamMember.getLeader().equals(userId);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<UserTeamMember> userTeam(Long userId) {
|
|
|
+ List<UserTeamMember> list = teamMemberRepository.findUserTeam(userId);
|
|
|
+ Date now = new Date();
|
|
|
+ for (UserTeamMember userTeamMember : list) {
|
|
|
+ userTeamMember.setTodaySteps(walkDataRepository.sumUserWalkSteps(userTeamMember.getUserId(), now, now).orElse(0L));
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
}
|