|
|
@@ -58,7 +58,7 @@ public class TeamService {
|
|
|
Date now = new Date();
|
|
|
UserInfo userInfo = userInfoRepository.findById(userId).orElseThrow(new ServiceException("用户不存在"));
|
|
|
UserInfo targetUserInfo = userInfoRepository.findById(target).orElseThrow(new ServiceException("用户不存在"));
|
|
|
- TeamMember teamMember = teamMemberRepository.findActive(target, now);
|
|
|
+ TeamMember teamMember = teamMemberRepository.findCurrent(target, now);
|
|
|
if (teamMember != null) {
|
|
|
if (teamMember.getLeader().equals(userId)) {
|
|
|
throw new ServiceException("Ta已经是你的队员");
|
|
|
@@ -89,8 +89,7 @@ public class TeamService {
|
|
|
throw new ServiceException("雇佣失败,商城币不足");
|
|
|
}
|
|
|
|
|
|
- coinService.balanceChange(userInfo, price.negate(), AppConstants.CoinRecordType.HIRE, Strings.REMARK_HIRE,
|
|
|
- String.format(Strings.MSG_HIRE, price, targetUserInfo.getNickname()));
|
|
|
+ coinService.balanceChange(userInfo, price.negate(), AppConstants.CoinRecordType.HIRE, Strings.REMARK_HIRE, null);
|
|
|
|
|
|
coinService.balanceChange(targetUserInfo, price, AppConstants.CoinRecordType.BE_HIRED, Strings.REMARK_BE_HIRED,
|
|
|
String.format(Strings.MSG_HIRED, userInfo.getNickname(), price));
|
|
|
@@ -111,7 +110,7 @@ public class TeamService {
|
|
|
return false;
|
|
|
}
|
|
|
Date now = new Date();
|
|
|
- TeamMember teamMember = teamMemberRepository.findActive(target, now);
|
|
|
+ TeamMember teamMember = teamMemberRepository.findCurrent(target, now);
|
|
|
if (teamMember != null) {
|
|
|
return !teamMember.getLeader().equals(userId);
|
|
|
}
|
|
|
@@ -237,4 +236,32 @@ public class TeamService {
|
|
|
null, formId, templateData, null);
|
|
|
wxMaService.getMsgService().sendTemplateMsg(msg);
|
|
|
}
|
|
|
+
|
|
|
+ public void recruit(Long userId, Long target) {
|
|
|
+ Date now = new Date();
|
|
|
+ UserInfo userInfo = userInfoRepository.findById(userId).orElseThrow(new ServiceException("用户不存在"));
|
|
|
+ UserInfo targetUserInfo = userInfoRepository.findById(target).orElseThrow(new ServiceException("用户不存在"));
|
|
|
+ TeamMember teamMember = teamMemberRepository.findCurrent(target, now);
|
|
|
+ if (teamMember != null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal price = BigDecimal.valueOf(Optional.ofNullable(targetUserInfo.getTotalSteps()).orElse(0L))
|
|
|
+ .multiply(BigDecimal.valueOf(AppConstants.HIRE_PRICE_RATE))
|
|
|
+ .setScale(1, RoundingMode.FLOOR);
|
|
|
+
|
|
|
+ if (price.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ TeamMember newTeamMember = TeamMember.builder()
|
|
|
+ .userId(target)
|
|
|
+ .leader(userId)
|
|
|
+ .hireDate(now)
|
|
|
+ .startDate(DateUtils.addDays(now, 1))
|
|
|
+ .endDate(AppConstants.FOREVER)
|
|
|
+ .active(true)
|
|
|
+ .build();
|
|
|
+ teamMemberRepository.save(newTeamMember);
|
|
|
+ }
|
|
|
}
|