Skip to content

Commit

Permalink
Merge pull request #85 from yanyanho/main
Browse files Browse the repository at this point in the history
Refactor the team service code
  • Loading branch information
yanyanho committed Dec 13, 2023
2 parents 2bbaa26 + eb59e62 commit d8eca6e
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 24 deletions.
10 changes: 5 additions & 5 deletions src/main/java/com/dl/officialsite/aave/Schedule.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.dl.officialsite.member.Member;
import com.dl.officialsite.team.TeamService;
import com.dl.officialsite.team.vo.TeamQueryVo;
import com.dl.officialsite.team.vo.TeamsMembersVo;
import com.dl.officialsite.team.vo.TeamsWithMembers;
import java.math.BigInteger;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
Expand Down Expand Up @@ -42,9 +42,9 @@ public void monitorPrice() throws Exception {
//查找team0 memeber获取地址
TeamQueryVo teamQueryVo = new TeamQueryVo();
teamQueryVo.setTeamName("Dapp-Learning DAO core founders");
List<TeamsMembersVo> teamAndMembers = teamService.getTeamAndMembers(teamQueryVo);
List<TeamsWithMembers> teamAndMembers = teamService.getTeamWithMembersByTeamNameAndStatus(teamQueryVo);
if (teamAndMembers.size() != 0) {
for (TeamsMembersVo teamAndMember : teamAndMembers) {
for (TeamsWithMembers teamAndMember : teamAndMembers) {
for (Member member : teamAndMember.getMembers()) {
String email = member.getEmail();
HealthInfo healthInfo = aaveService.getHealthInfo(member.getAddress());
Expand All @@ -65,9 +65,9 @@ public void monitorHealth() {
//查找team0 memeber获取地址
TeamQueryVo teamQueryVo = new TeamQueryVo();
teamQueryVo.setTeamName("Dapp-Learning DAO core founders");
List<TeamsMembersVo> teamAndMembers = teamService.getTeamAndMembers(teamQueryVo);
List<TeamsWithMembers> teamAndMembers = teamService.getTeamWithMembersByTeamNameAndStatus(teamQueryVo);
if (teamAndMembers.size() != 0) {
for (TeamsMembersVo teamAndMember : teamAndMembers) {
for (TeamsWithMembers teamAndMember : teamAndMembers) {
for (Member member : teamAndMember.getMembers()) {
String email = member.getEmail();
HealthInfo healthInfo = aaveService.getHealthInfo(member.getAddress());
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/dl/officialsite/common/enums/CodeEnums.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@ public enum CodeEnums {
TEAM_NOT_EXIST("1005", "team not exist"),
LOGIN_IN("2001", "please login"),
TEAM_ADMIN_NOT_EXIST("1006", "team admin not exist"),

MEMBER_ALREADY_REQUEST_TEAM("1007", "member already request team"),

NOT_FOUND_JD("1008", "not found jd"),
NOT_FOUND_MEMBER("1009", "not found user"),
NOT_THE_ADMIN("1010", "user not the admin"),
TEAM_JOIN_APPLICATION_NOT_EXIST("1011", "team join application not exist"),
//Sharing
SHARING_NOT_FOUND("5001", "Sharing not found"),
SHARING_NOT_OWNER("5002", "You are no sharing user"),
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/dl/officialsite/sponsor/Sponsor.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,6 @@ public class Sponsor {

private String icon;

private String remark;

}
6 changes: 3 additions & 3 deletions src/main/java/com/dl/officialsite/team/TeamController.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import com.dl.officialsite.team.vo.TeamMemberJoinVO;
import com.dl.officialsite.team.vo.TeamQueryVo;
import com.dl.officialsite.team.vo.TeamVO;
import com.dl.officialsite.team.vo.TeamsMembersVo;
import com.dl.officialsite.team.vo.TeamsWithMembers;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
Expand Down Expand Up @@ -87,13 +87,13 @@ BaseResponse approve(@RequestBody TeamMemberApproveVO teamMemberApproveVO, @Requ
*/
@PostMapping("/all")
BaseResponse getTeams(@RequestBody TeamQueryVo teamQueryVo, @RequestParam String address) {
List<TeamsMembersVo> teamAndMembers = teamService.getTeamAndMembers(teamQueryVo);
List<TeamsWithMembers> teamAndMembers = teamService.getTeamWithMembersByTeamNameAndStatus(teamQueryVo);
return BaseResponse.successWithData(teamAndMembers);
}

@GetMapping("/id")
BaseResponse getTeamById(@RequestParam Long teamId, @RequestParam String address) {
TeamsMembersVo teamAndMembers = teamService.getTeamById(teamId);
TeamsWithMembers teamAndMembers = teamService.getTeamById(teamId);
return BaseResponse.successWithData(teamAndMembers);
}

Expand Down
48 changes: 33 additions & 15 deletions src/main/java/com/dl/officialsite/team/TeamService.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import com.dl.officialsite.team.vo.TeamMemberJoinVO;
import com.dl.officialsite.team.vo.TeamQueryVo;
import com.dl.officialsite.team.vo.TeamVO;
import com.dl.officialsite.team.vo.TeamsMembersVo;
import com.dl.officialsite.team.vo.TeamsWithMembers;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
Expand Down Expand Up @@ -57,13 +57,14 @@ public class TeamService {
private MemberService memberService;

@Transactional
//todo only in DAO core founder team
public Team add(TeamVO teamVO) {
Team team = new Team();
BeanUtils.copyProperties(teamVO, team);
return teamRepository.save(team);
}

public List<TeamsMembersVo> getTeamAndMembers(TeamQueryVo teamQueryVo) {
public List<TeamsWithMembers> getTeamWithMembersByTeamNameAndStatus(TeamQueryVo teamQueryVo) {
Specification<Team> queryParam = new Specification<Team>() {
@Override
public javax.persistence.criteria.Predicate toPredicate(
Expand All @@ -80,10 +81,12 @@ public javax.persistence.criteria.Predicate toPredicate(
}
};

List<TeamsMembersVo> teamsMembersVos = new ArrayList<>();

//optimise todo
List<TeamsWithMembers> teamsWithMembers = new ArrayList<>();
List<Team> teams = teamRepository.findAll(queryParam);
teams.stream().forEach(team -> {
TeamsMembersVo teamsMembersVo = new TeamsMembersVo();
TeamsWithMembers teamsMembersVo = new TeamsWithMembers();
BeanUtils.copyProperties(team, teamsMembersVo);
List<Member> members = new ArrayList<>();
List<Long> memberIds = teamMemberRepository.findByTeamIdStatus(team.getId(),
Expand All @@ -93,23 +96,27 @@ public javax.persistence.criteria.Predicate toPredicate(
members.add(member);
});
teamsMembersVo.setMembers(members);
teamsMembersVos.add(teamsMembersVo);
teamsWithMembers.add(teamsMembersVo);
});
return teamsMembersVos;
return teamsWithMembers;
}

@Transactional(rollbackOn = Exception.class)
public void join(TeamMemberJoinVO teamMember) {

Member member = memberRepository.findById(teamMember.getMemberId()).get();

//todo
/* if (ObjectUtils.isEmpty(member.getTelegramId()) || ObjectUtils.isEmpty(
member.getWechatId())) {
throw new BizException(CodeEnums.TELEGRAM_WECHAT_NOT_BIND.getCode(),
CodeEnums.TELEGRAM_WECHAT_NOT_BIND.getMsg());
}*/
//判断是否已经退出过团队
Optional<TeamMember> optional = teamMemberRepository.findByTeamAndMember(
teamMember.getTeamId()
, teamMember.getMemberId());
teamMember.getTeamId(), teamMember.getMemberId());

// refactor
if (optional.isPresent()) {
TeamMember teamMember2 = optional.get();
if (teamMember2.getStatus() == Constants.REQUEST_TEAM) {
Expand Down Expand Up @@ -175,6 +182,8 @@ public void join(TeamMemberJoinVO teamMember) {

@Transactional(rollbackOn = Exception.class)
public void approve(TeamMemberApproveVO teamMemberApproveVO) {

//todo check team admin
List<Long> memberIds = teamMemberApproveVO.getMemberIds();
List<TeamMember> teamMembers = new ArrayList<>();
memberIds.stream().forEach(memberId -> {
Expand All @@ -184,18 +193,24 @@ public void approve(TeamMemberApproveVO teamMemberApproveVO) {
TeamMember teamMember = optional.get();
teamMember.setStatus(Constants.APPROVE_TEAM);
teamMembers.add(teamMember);
} else {
throw new BizException(CodeEnums.TEAM_ADMIN_NOT_EXIST.getCode(),
CodeEnums.TEAM_ADMIN_NOT_EXIST.getMsg());
}
});
teamMemberRepository.saveAll(teamMembers);
}


public void exit(TeamMemberJoinVO teamMember) {
//todo check team admin or self
teamMemberRepository.findByTeamAndMember(teamMember.getTeamId(),
teamMember.getMemberId()).ifPresent(teamMember2 -> {
teamMember2.setStatus(Constants.EXIT_TEAM);
teamMemberRepository.save(teamMember2);
});
}); // no exist case ?
// todo

Team team = teamRepository.findById(teamMember.getTeamId()).get();
Member member = memberRepository.findById(teamMember.getMemberId()).get();
String subject = team.getTeamName() + "团队成员退出";
Expand Down Expand Up @@ -251,10 +266,10 @@ public boolean checkMemberIsAdmin(String address) {
}


public TeamsMembersVo getTeamById(Long teamId) {
public TeamsWithMembers getTeamById(Long teamId) {
Optional<Team> optional = teamRepository.findById(teamId);
if (optional.isPresent()) {
TeamsMembersVo teamsMembersVo = new TeamsMembersVo();
TeamsWithMembers teamsMembersVo = new TeamsWithMembers();
Team team = optional.get();
List<Member> members = new ArrayList<>();
List<Long> memberIds = teamMemberRepository.findByTeamIdStatus(team.getId(), Constants.APPROVE_TEAM);
Expand All @@ -273,15 +288,18 @@ public TeamsMembersVo getTeamById(Long teamId) {

public void batchJoin(TeamMemberBatchJoinVO teamMembers) {


// for admin interface
// todo batch insert ?
teamMembers.getMemberIds().forEach(memberId -> {
Optional<TeamMember> optional = teamMemberRepository.findByTeamAndMember(
teamMembers.getTeamId(), memberId);
if (optional.isPresent()) {
TeamMember teamMember2 = optional.get();
if (teamMember2.getStatus() == Constants.REQUEST_TEAM) {
throw new BizException(CodeEnums.MEMBER_ALREADY_REQUEST_TEAM.getCode(),
CodeEnums.MEMBER_ALREADY_REQUEST_TEAM.getMsg());
}
// if (teamMember2.getStatus() == Constants.REQUEST_TEAM) {
// throw new BizException(CodeEnums.MEMBER_ALREADY_REQUEST_TEAM.getCode(),
// CodeEnums.MEMBER_ALREADY_REQUEST_TEAM.getMsg());
// } // ignore existence
teamMember2.setStatus(Constants.APPROVE_TEAM);
teamMemberRepository.save(teamMember2);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* @Description TeamsMembersVo
**/
@Data
public class TeamsMembersVo {
public class TeamsWithMembers {

private Long id;

Expand Down

0 comments on commit d8eca6e

Please sign in to comment.