From d904f50d481f5e52aae756aadb96c4677258b8bc Mon Sep 17 00:00:00 2001 From: Aseubel <166096144+Aseubel@users.noreply.github.com> Date: Thu, 28 Nov 2024 22:19:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E7=82=B9=E8=B5=9E?= =?UTF-8?q?=E7=8A=B6=E6=80=81=EF=BC=8C=E8=A1=A5=E5=85=85=E5=88=B0=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E4=BF=A1=E6=81=AF=E5=92=8C=E6=88=90=E5=91=98=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=B8=AD=20(#73)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 调整点赞状态,补充到个人信息和成员信息中 * feat: 一行判断likestatus --- .../resources/mybatis/mapper/LikeMapper.xml | 2 +- .../adapter/repository/IMemberRepository.java | 3 +- .../domain/team/service/IMemberService.java | 3 +- .../service/member/DefaultMemberService.java | 18 ++++---- .../adapter/repository/LikeRepository.java | 10 ++++- .../adapter/repository/MemberRepository.java | 45 +++++-------------- .../adapter/repository/UserRepository.java | 6 ++- .../infrastructure/dao/LikeMapper.java | 2 +- .../achobeta/trigger/http/TeamController.java | 2 +- 9 files changed, 41 insertions(+), 50 deletions(-) diff --git a/polaris-app/src/main/resources/mybatis/mapper/LikeMapper.xml b/polaris-app/src/main/resources/mybatis/mapper/LikeMapper.xml index 89cf238d..82b492fb 100644 --- a/polaris-app/src/main/resources/mybatis/mapper/LikeMapper.xml +++ b/polaris-app/src/main/resources/mybatis/mapper/LikeMapper.xml @@ -17,7 +17,7 @@ - select is_liked from `like` where user_id = #{fromId} and to_Id = #{toId} diff --git a/polaris-domain/src/main/java/com/achobeta/domain/team/adapter/repository/IMemberRepository.java b/polaris-domain/src/main/java/com/achobeta/domain/team/adapter/repository/IMemberRepository.java index 0f3b1f02..748406d9 100644 --- a/polaris-domain/src/main/java/com/achobeta/domain/team/adapter/repository/IMemberRepository.java +++ b/polaris-domain/src/main/java/com/achobeta/domain/team/adapter/repository/IMemberRepository.java @@ -47,10 +47,11 @@ public interface IMemberRepository { * 查询团队成员信息详情 * @author yangzhiyao * @date 2024/11/19 + * @param userId 用户ID * @param memberId 成员ID * @return 查询到的成员信息 */ - UserEntity queryMemberInfo(String memberId); + UserEntity queryMemberInfo(String userId, String memberId); /** * 查询团队成员列表 diff --git a/polaris-domain/src/main/java/com/achobeta/domain/team/service/IMemberService.java b/polaris-domain/src/main/java/com/achobeta/domain/team/service/IMemberService.java index 32bb68f8..2f3e7d9c 100644 --- a/polaris-domain/src/main/java/com/achobeta/domain/team/service/IMemberService.java +++ b/polaris-domain/src/main/java/com/achobeta/domain/team/service/IMemberService.java @@ -43,10 +43,11 @@ public interface IMemberService { * 查询成员信息详情 * @author yangzhiyao * @date 2024/11/19 + * @param userId 用户ID * @param memberId 成员ID * @return 查询到的成员信息 */ - UserEntity queryMemberInfo(String memberId); + UserEntity queryMemberInfo(String userId, String memberId); /** * 查看团队成员列表 diff --git a/polaris-domain/src/main/java/com/achobeta/domain/team/service/member/DefaultMemberService.java b/polaris-domain/src/main/java/com/achobeta/domain/team/service/member/DefaultMemberService.java index 0c768720..aa9dbd79 100644 --- a/polaris-domain/src/main/java/com/achobeta/domain/team/service/member/DefaultMemberService.java +++ b/polaris-domain/src/main/java/com/achobeta/domain/team/service/member/DefaultMemberService.java @@ -111,24 +111,24 @@ public PostContext doMainProcessor(PostContext postContext) { } @Override - public UserEntity queryMemberInfo(String memberId) { + public UserEntity queryMemberInfo(String userId, String memberId) { PostContext postContext = buildPostContext(memberId); postContext = super.doPostProcessor(postContext, AddMemberPostProcessor.class, new AbstractPostProcessorOperation() { @Override public PostContext doMainProcessor(PostContext postContext) { - TeamBO userBO = postContext.getBizData(); + TeamBO teamBO = postContext.getBizData(); log.info("开始查询团队成员信息,userId:{},memberId:{}, teamId:{}", - userBO.getUserId(), - userBO.getUserEntity().getUserId(), - userBO.getTeamId()); + teamBO.getUserId(), + teamBO.getUserEntity().getUserId(), + teamBO.getTeamId()); - UserEntity userEntity = memberRepository.queryMemberInfo(userBO.getUserEntity().getUserId()); + UserEntity userEntity = memberRepository.queryMemberInfo(teamBO.getUserId(), teamBO.getUserEntity().getUserId()); log.info("查询团队成员信息成功,userId:{},memberId:{}, teamId:{}", - userBO.getUserId(), - userBO.getUserEntity().getUserId(), - userBO.getTeamId()); + teamBO.getUserId(), + teamBO.getUserEntity().getUserId(), + teamBO.getTeamId()); postContext.setBizData(TeamBO.builder().userEntity(userEntity).build()); return postContext; } diff --git a/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/LikeRepository.java b/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/LikeRepository.java index 5c03cac5..4bbd1ede 100644 --- a/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/LikeRepository.java +++ b/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/LikeRepository.java @@ -9,6 +9,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Optional; /** * @author huangwenxing @@ -27,7 +28,7 @@ public class LikeRepository implements ILikeRepository { /**键过期时间500ms*/ private long expired = 500; @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void like(String fromId, String toId, boolean liked) { /**更新点赞状态*/ Integer row = mapper.updateLiked(fromId, toId, liked); @@ -53,7 +54,12 @@ public String getLikeValue(String fromId, String toId) { @Override public boolean queryLikedById(String fromId, String toId) { - return mapper.queryLikedById(fromId, toId); +// Integer liked = mapper.queryLikedById(fromId, toId); +// if(liked==null){ +// return false; +// } +// return liked == 1; + return Optional.ofNullable(mapper.queryLikedById(fromId, toId)).map(i -> i == 1).orElse(false); } @Override diff --git a/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/MemberRepository.java b/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/MemberRepository.java index a93ad5a7..07a4074b 100644 --- a/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/MemberRepository.java +++ b/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/MemberRepository.java @@ -1,42 +1,23 @@ package com.achobeta.infrastructure.adapter.repository; -import com.achobeta.domain.team.adapter.repository.IMemberRepository; -import com.achobeta.infrastructure.dao.UserMapper; -import com.achobeta.infrastructure.redis.RedissonService; import cn.hutool.core.collection.CollectionUtil; import com.achobeta.domain.team.adapter.repository.IMemberRepository; import com.achobeta.domain.user.model.entity.UserEntity; +import com.achobeta.infrastructure.dao.LikeMapper; import com.achobeta.infrastructure.dao.PositionMapper; import com.achobeta.infrastructure.dao.UserMapper; import com.achobeta.infrastructure.dao.po.PositionPO; import com.achobeta.infrastructure.dao.po.UserPO; import com.achobeta.infrastructure.redis.IRedisService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import com.achobeta.infrastructure.dao.po.UserPO; -import com.achobeta.infrastructure.redis.IRedisService; -import com.achobeta.types.common.RedisKey; -import com.achobeta.types.enums.GlobalServiceStatusCode; -import com.achobeta.types.exception.AppException; -import com.achobeta.infrastructure.dao.po.PositionPO; -import com.achobeta.infrastructure.dao.po.UserPO; -import com.achobeta.infrastructure.redis.IRedisService; -import com.achobeta.types.common.Constants; import com.achobeta.types.common.RedisKey; import com.achobeta.types.enums.GlobalServiceStatusCode; import com.achobeta.types.exception.AppException; -import com.achobeta.infrastructure.redis.RedissonService; -import com.achobeta.types.common.RedisKey; import jodd.util.StringUtil; - import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; - import java.util.ArrayList; import java.util.List; @@ -55,6 +36,9 @@ public class MemberRepository implements IMemberRepository { @Resource private PositionMapper positionMapper; + @Resource + private LikeMapper likeMapper; + @Resource private IRedisService redisService; @@ -197,24 +181,22 @@ public UserEntity modifyMemberInfo(UserEntity userEntity, String teamId, List> positionPOList = new ArrayList<>(); - List listPositions = positionMapper.listPositionByUserId(userId); + List listPositions = positionMapper.listPositionByUserId(memberId); for(PositionPO rootPosition : listPositions) { List tempList = new ArrayList<>(); tempList.add(rootPosition); @@ -247,7 +229,6 @@ public UserEntity queryMemberInfo(String userId) { } positionNames.add(tempList); } - log.info("从数据库中查询用户信息成功,userId: {}",userId); // TODO:待添加获取用户点赞状态 UserEntity userEntity = UserEntity.builder() .userId(userPO.getUserId()) @@ -263,13 +244,11 @@ public UserEntity queryMemberInfo(String userId) { .currentStatus(userPO.getCurrentStatus()) .entryTime(userPO.getEntryTime()) .likeCount(userPO.getLikeCount()) - .liked(false) + .liked(likeMapper.queryLikedById(userId, memberId)==1) .positions(positionNames) .build(); - log.info("将用户信息缓存到redis,userId: {}",userId); - redisService.setValue(RedisKey.USER_INFO + userId,userEntity); - log.info("将用户信息缓存到redis成功,userId: {}",userId); + redisService.setValue(RedisKey.USER_INFO + memberId,userEntity); return userEntity; } diff --git a/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/UserRepository.java b/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/UserRepository.java index a8b999e6..8d62c560 100644 --- a/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/UserRepository.java +++ b/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/adapter/repository/UserRepository.java @@ -2,6 +2,7 @@ import cn.hutool.core.collection.CollectionUtil; import com.achobeta.domain.user.model.entity.UserEntity; +import com.achobeta.infrastructure.dao.LikeMapper; import com.achobeta.infrastructure.dao.PositionMapper; import com.achobeta.infrastructure.dao.UserMapper; import com.achobeta.infrastructure.dao.po.PositionPO; @@ -33,6 +34,9 @@ public class UserRepository implements com.achobeta.domain.user.adapter.reposito @Resource private PositionMapper positionMapper; + @Resource + private LikeMapper likeMapper; + @Resource private IRedisService redisService; @@ -153,7 +157,7 @@ public UserEntity queryUserInfo(String userId) { .currentStatus(userPO.getCurrentStatus()) .entryTime(userPO.getEntryTime()) .likeCount(userPO.getLikeCount()) - .liked(false) + .liked(likeMapper.queryLikedById(userId,userId)==1) .positions(positionNames) .build(); diff --git a/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/dao/LikeMapper.java b/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/dao/LikeMapper.java index e54faa88..3d997d11 100644 --- a/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/dao/LikeMapper.java +++ b/polaris-infrastructure/src/main/java/com/achobeta/infrastructure/dao/LikeMapper.java @@ -16,7 +16,7 @@ public interface LikeMapper { /**插入用户点赞状态*/ Integer insertLiked(String fromId, String toId, boolean liked); /**查询用户点赞状态*/ - boolean queryLikedById(String fromId, String toId); + Integer queryLikedById(String fromId, String toId); /**查询用户是否存在*/ Integer queryUserById(String userId); } diff --git a/polaris-trigger/src/main/java/com/achobeta/trigger/http/TeamController.java b/polaris-trigger/src/main/java/com/achobeta/trigger/http/TeamController.java index e4ab081c..9af5afa0 100644 --- a/polaris-trigger/src/main/java/com/achobeta/trigger/http/TeamController.java +++ b/polaris-trigger/src/main/java/com/achobeta/trigger/http/TeamController.java @@ -166,7 +166,7 @@ public Response queryMemberInfo(@Valid QueryMemberIn try { log.info("用户访问团队成员信息详情服务开始,{}", requestDTO); - UserEntity userEntity = memberService.queryMemberInfo(requestDTO.getMemberId()); + UserEntity userEntity = memberService.queryMemberInfo(requestDTO.getUserId(), requestDTO.getMemberId()); log.info("用户访问团队成员信息详情服务结束,{}", requestDTO); return Response.SYSTEM_SUCCESS(QueryMemberInfoResponseDTO.builder()