Skip to content

Commit

Permalink
Merge pull request #121 from dwusiq/dev
Browse files Browse the repository at this point in the history
The paging query interface for sharing returns a page object
  • Loading branch information
yanyanho authored Jan 14, 2024
2 parents f3e6807 + 4a5d07b commit f728c22
Show file tree
Hide file tree
Showing 11 changed files with 206 additions and 144 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,6 @@ README-Local.md
/dist
wallet/%
node/*
/gradleRepository
/bin/main
/.vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ public enum CodeEnums {

SHARING_LOCKED("5003", "Sharing locked, please contact admin to unlock"),

NOT_DELETE_TEAM("1019", "not delete admin team");
NOT_DELETE_TEAM("1019", "not delete admin team"),

INVALID_MEMBER("1023", "member is invalid");



Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package com.dl.officialsite.hiring.application;

import com.dl.officialsite.hiring.Hiring;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;


public interface ApplicationRepository extends JpaRepository<Application, Long>,
JpaSpecificationExecutor<Application> {
JpaSpecificationExecutor<Application> {

Application findByMemberIdAndHiringId(Long memberId, Long hireId);

@Modifying
@Query(value ="delete from application where memeber_id = :member_id", nativeQuery = true)
void deleteByMemberId(@Param("member_id")Long memberId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,14 @@ public BaseResponse updateMemberByAddress(@RequestParam String address, @Request
}
}


@DeleteMapping()
public BaseResponse deleteMember(@RequestParam String address) {
memberService.deleteMember(address);
return BaseResponse.success();
}


//todo query

// findByNickName
Expand Down
21 changes: 21 additions & 0 deletions src/main/java/com/dl/officialsite/member/MemberManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.dl.officialsite.member;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Optional;

@Service
public class MemberManager {

@Autowired
private MemberRepository memberRepository;

public Member getMemberByAddress(String address) {
Optional<Member> member = memberRepository.findByAddress(address);
if (member.isPresent()) {
return member.get();
}
return null;
}
}
82 changes: 55 additions & 27 deletions src/main/java/com/dl/officialsite/member/MemberService.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package com.dl.officialsite.member;

import com.dl.officialsite.common.base.BaseResponse;
import com.dl.officialsite.common.enums.CodeEnums;
import com.dl.officialsite.common.exception.BizException;
import com.dl.officialsite.common.utils.UserSecurityUtils;
import com.dl.officialsite.hiring.application.ApplicationRepository;
import com.dl.officialsite.team.Team;
import com.dl.officialsite.team.TeamRepository;
import com.dl.officialsite.team.TeamService;
import com.dl.officialsite.team.teammember.TeamMember;
import com.dl.officialsite.team.teammember.TeamMemberRepository;
import org.slf4j.Logger;
Expand All @@ -11,45 +16,45 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.persistence.PersistenceException;
import javax.transaction.Transactional;

import static com.dl.officialsite.common.enums.CodeEnums.INVALID_MEMBER;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;

@Service
public class MemberService {


@Autowired
private MemberRepository memberRepository;
@Autowired
private TeamMemberRepository teamMemberRepository;
@Autowired
private TeamRepository teamRepository;
@Autowired
private TeamService teamService;
@Autowired
private ApplicationRepository applicationRepository;
@Autowired
private MemberManager memberManager;

public static final Logger logger = LoggerFactory.getLogger(MemberController.class);

public Member getMemberByAddress(String address) {
Optional<Member> member = memberRepository.findByAddress(address);
if(member.isPresent()) {
return member.get();
}
return null;
}


public MemberWithTeam getMemberWithTeamInfoByAddress(String address) {
Optional<Member> member = memberRepository.findByAddress(address);

if(member.isPresent()) {
if (member.isPresent()) {
MemberWithTeam memberWithTeam = new MemberWithTeam();
BeanUtils.copyProperties(member.get(), memberWithTeam);
ArrayList teams = new ArrayList();
ArrayList teams = new ArrayList();
List<TeamMember> teamMembers = teamMemberRepository.findByMemberIdAndStatus(member.get().getId(), 0);

teamMembers.stream().forEach(teamMember -> {
Team team = teamRepository.findById(teamMember.getTeamId()).get();
if(team.getTeamName().equals("Dapp-Learning DAO co-founders")){
if (team.getTeamName().equals("Dapp-Learning DAO co-founders")) {
memberWithTeam.setAdmin(true);
}
teams.add(team);
Expand All @@ -61,10 +66,10 @@ public MemberWithTeam getMemberWithTeamInfoByAddress(String address) {
}

public MemberVo save(Member member) {
memberRepository.save(member);
MemberVo memberVo = new MemberVo();
memberRepository.save(member);
MemberVo memberVo = new MemberVo();
BeanUtils.copyProperties(member, memberVo);
return memberVo;
return memberVo;

}

Expand All @@ -76,17 +81,40 @@ public MemberVo getMemberPrivacyInfo(String address) {
MemberVo memberVo = new MemberVo();
BeanUtils.copyProperties(member.get(), memberVo);

return memberVo;
return memberVo;

}
// } catch (DataIntegrityViolationException e) {
//
// String mostSpecificCauseMessage = e.getMostSpecificCause().getMessage();
// if (e.getCause() instanceof ConstraintViolationException) {
// String name = ((ConstraintViolationException)
// e.getCause()).getConstraintName();
// logger.info("Encountered ConstraintViolationException, details: " +
// mostSpecificCauseMessage + "constraintName: "+ name);
// }
// return BaseResponse.failWithReason("1000", mostSpecificCauseMessage);
// }

@Transactional(rollbackOn = Exception.class)
public void deleteMember(String memberAddress) {
// check address
Member member = this.memberManager.getMemberByAddress(memberAddress);
if (Objects.isNull(member)) {
throw new BizException(INVALID_MEMBER.getCode(), INVALID_MEMBER.getMsg());
}

// check supper admin
String address = UserSecurityUtils.getUserLogin().getAddress();
if (!teamService.checkMemberIsSuperAdmin(address)) {
throw new BizException(CodeEnums.NOT_THE_ADMIN.getCode(),
CodeEnums.NOT_THE_ADMIN.getMsg());
}

// delete
teamMemberRepository.deleteByMemberId(member.getId());
applicationRepository.deleteByMemberId(member.getId());
memberRepository.deleteById(member.getId());
}
// } catch (DataIntegrityViolationException e) {
//
// String mostSpecificCauseMessage = e.getMostSpecificCause().getMessage();
// if (e.getCause() instanceof ConstraintViolationException) {
// String name = ((ConstraintViolationException) e.getCause()).getConstraintName();
// logger.info("Encountered ConstraintViolationException, details: " + mostSpecificCauseMessage + "constraintName: "+ name);
// }
// return BaseResponse.failWithReason("1000", mostSpecificCauseMessage);
// }

}
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,7 @@ public BaseResponse deleteSharing(@RequestParam("shareId") long shareId, @Reque
@GetMapping("all")
public BaseResponse loadSharing(@RequestParam(value = "pageNo",defaultValue = "1") int pageNo,
@RequestParam(value = "pageSize",defaultValue = "20") int pageSize){

Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by("date").descending().and(Sort.by("time").descending()).and(Sort.by("id").descending()));
return BaseResponse.successWithData(this.sharingService.findAll(pageable));
return BaseResponse.successWithData(this.sharingService.findAll(pageNo,pageSize));
}

/**
Expand All @@ -74,8 +72,7 @@ public BaseResponse<Share> querySharing(@RequestParam("shareId") long shareId){
}

/**
* 查看用户的分享
*/
*/
@GetMapping("user")
public BaseResponse loadSharingByUser(@RequestParam("memberAddress") String memberAddress,
@RequestParam(value = "pageNo",defaultValue = "1") int pageNo,
Expand Down
11 changes: 8 additions & 3 deletions src/main/java/com/dl/officialsite/sharing/SharingRepository.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.dl.officialsite.sharing;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
Expand All @@ -16,13 +18,16 @@ public interface SharingRepository extends JpaRepository<Share, Long>, JpaSpecif
int loadAllCount();

@Query(value = "select * from share where member_address = :memberAddress limit :offset, :limit", nativeQuery = true)
List<Share> findAllSharesByUidPaged(@Param("memberAddress") String memberAddress, @Param("offset") int offset, @Param("limit") int limit);
List<Share> findAllSharesByUidPaged(@Param("memberAddress") String memberAddress, @Param("offset") int offset,
@Param("limit") int limit);

@Query(value = "select count(*) from share where member_address = :memberAddress", nativeQuery = true)
int loadCountByUid(@Param("memberAddress") String memberAddress);


List<Share> findByIdInAndRewardStatus(List<Long> id, Integer rewardStatus);


// @Query(value = "SELECT * FROM share by STR_TO_DATE(date,'%Y/%m/%d') desc,time
// desc,id desc", countQuery = "SELECT count(*) FROM share", nativeQuery = true)
@Query(value = "SELECT * FROM share order by STR_TO_DATE(date,'%Y/%m/%d') desc,time desc,id desc", countQuery = "SELECT count(*) FROM share", nativeQuery = true)
Page<Share> findAllByPage(Pageable pageable);
}
7 changes: 5 additions & 2 deletions src/main/java/com/dl/officialsite/sharing/SharingService.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletRequest;
Expand Down Expand Up @@ -136,7 +138,8 @@ public PagedList loadSharingByUser(String memberAddress, int pageNo, int pageSiz
return resp;
}

public Page<Share> findAll(Pageable pageable) {
return sharingRepository.findAll(pageable);
public Page<Share> findAll(int pageNo, int pageSize) {
Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by("date").descending().and(Sort.by("time").descending()).and(Sort.by("id").descending()));
return this.sharingRepository.findAllByPage(pageable);
}
}
Loading

0 comments on commit f728c22

Please sign in to comment.