diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppUserController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppUserController.java index 316fac6..a174d03 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppUserController.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppUserController.java @@ -120,4 +120,11 @@ public class AppUserController extends BaseController { return toAjax(appUserService.deleteAppUserByIds(ids)); } + + @PostMapping("/userNetData") + @ApiOperation(value = "好友圈", notes = "好友圈", httpMethod = "POST") + public AjaxResult userNetData(@RequestBody AppUser appUser) + { + return AjaxResult.success(appUserService.userNetData(appUser)); + } } diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppUser.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppUser.java index f5db5fd..b64375e 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppUser.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppUser.java @@ -153,6 +153,14 @@ public class AppUser extends BaseEntity private Integer isMember; + private Integer limit; + + private List ids; + + private List friendIds; + + private Long appId; + /** 订单记录 */ @Excel(name = "订单记录") private Long orderId; diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/vo/AppUserDataVo.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/vo/AppUserDataVo.java new file mode 100644 index 0000000..4be21f5 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/vo/AppUserDataVo.java @@ -0,0 +1,41 @@ +package com.ruoyi.app.domain.vo; + +import com.ruoyi.app.domain.AppUser; +import com.ruoyi.app.domain.UserSkill; +import com.ruoyi.common.core.annotation.Excel; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.List; + +/** + * app用户对象 app_user + * + * @author wyh + * @date 2024-04-23 + */ +@Data +public class AppUserDataVo +{ + private static final long serialVersionUID = 1L; + + private String username; + + private String avatarUrl; + + @Excel(name = "学历") + private String education; + + @Excel(name = "学校") + private String schoolName; + + @Excel(name = "专业") + private String major; + + @Excel(name = "公司名称") + private String companyName; + + @Excel(name = "行业") + private String industry; +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/vo/AppUserNetVo.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/vo/AppUserNetVo.java new file mode 100644 index 0000000..165d7e5 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/vo/AppUserNetVo.java @@ -0,0 +1,24 @@ +package com.ruoyi.app.domain.vo; + +import com.ruoyi.common.core.annotation.Excel; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * App用户动态对象 app_user_dynamic + * + * @author wyh + * @date 2024-04-23 + */ +@Data +public class AppUserNetVo { + private static final long serialVersionUID = 1L; + + List schoolUserList = new ArrayList<>(); + + List companyUserList = new ArrayList<>(); + + List friendUserList = new ArrayList<>(); +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppUserFriendMapper.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppUserFriendMapper.java index ec4e42b..f525aa5 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppUserFriendMapper.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppUserFriendMapper.java @@ -3,6 +3,7 @@ package com.ruoyi.app.mapper; import java.util.List; import com.ruoyi.app.domain.AppUserFriend; import com.ruoyi.app.domain.vo.AppUserFriendVo; +import org.apache.ibatis.annotations.Param; /** * 用户好友Mapper接口 @@ -27,6 +28,7 @@ public interface AppUserFriendMapper * @return 用户好友集合 */ public List selectAppUserFriendList(AppUserFriend appUserFriend); + public List selectByFriendId(@Param("ids")List ids); public List selectFriendList(AppUserFriend appUserFriend); /** diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppUserMapper.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppUserMapper.java index 7e32e38..7a34a0e 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppUserMapper.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/mapper/AppUserMapper.java @@ -2,6 +2,8 @@ package com.ruoyi.app.mapper; import java.util.List; import com.ruoyi.app.domain.AppUser; +import com.ruoyi.app.domain.vo.AppUserDataVo; +import com.ruoyi.app.domain.vo.AppUserNetVo; import com.ruoyi.app.domain.vo.AppUserVo; import org.apache.ibatis.annotations.Param; @@ -62,4 +64,5 @@ public interface AppUserMapper public int deleteAppUserByIds(Long[] ids); AppUser selectAppUserByPhone(@Param("phoneNumber") String phoneNumber); + List selectList(AppUser appUser); } diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppUserService.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppUserService.java index 08a75f7..ef5793e 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppUserService.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/IAppUserService.java @@ -2,6 +2,7 @@ package com.ruoyi.app.service; import java.util.List; import com.ruoyi.app.domain.AppUser; +import com.ruoyi.app.domain.vo.AppUserNetVo; import com.ruoyi.app.domain.vo.AppUserVo; /** @@ -61,4 +62,6 @@ public interface IAppUserService public int deleteAppUserById(Long id); AppUser selectAppUserByPhone(String phoneNumber); + + public AppUserNetVo userNetData(AppUser appUser); } diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppUserServiceImpl.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppUserServiceImpl.java index 924cbb3..8a0cc4e 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppUserServiceImpl.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppUserServiceImpl.java @@ -2,10 +2,16 @@ package com.ruoyi.app.service.impl; import java.security.Security; import java.util.Arrays; +import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; +import com.ruoyi.app.domain.AppUserFriend; import com.ruoyi.app.domain.UserSkill; +import com.ruoyi.app.domain.vo.AppUserDataVo; +import com.ruoyi.app.domain.vo.AppUserNetVo; import com.ruoyi.app.domain.vo.AppUserVo; +import com.ruoyi.app.mapper.AppUserFriendMapper; import com.ruoyi.app.mapper.UserSkillMapper; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.security.utils.SecurityUtils; @@ -31,6 +37,9 @@ public class AppUserServiceImpl implements IAppUserService @Autowired private UserSkillMapper userSkillMapper; + @Autowired + private AppUserFriendMapper appUserFriendMapper; + /** * 查询app用户 * @@ -127,4 +136,59 @@ public class AppUserServiceImpl implements IAppUserService public AppUser selectAppUserByPhone(String phoneNumber) { return appUserMapper.selectAppUserByPhone(phoneNumber); } + + @Override + public AppUserNetVo userNetData(AppUser appUser) { + Integer limit = appUser.getLimit() == null ? 10 : appUser.getLimit(); + AppUserNetVo appUserNetVo = new AppUserNetVo(); + if (appUser.getAppId() == null) { + return appUserNetVo; + } + // 查询我的用户列表 + AppUserFriend appUserFriend = new AppUserFriend(); + appUserFriend.setUserId(appUser.getAppId()); + List appUserFriends = appUserFriendMapper.selectAppUserFriendList(appUserFriend); + List ids = appUserFriends.stream().map(x->x.getFriendId()).collect(Collectors.toList()); + + AppUser entity = new AppUser(); + entity.setIds(ids); + entity.setIsMember(appUser.getIsMember()); + entity.setAppId(appUser.getAppId()); + entity.setSchool(appUser.getSchool()); + // 学校 + List schoolList = appUserMapper.selectList(entity); + Collections.shuffle(schoolList); + if (schoolList.size() > limit) { + schoolList = schoolList.subList(0, limit); + } + + entity.setSchool(null); + entity.setCompanyName(appUser.getCompanyName()); + // 公司 + List companylList = appUserMapper.selectList(entity); + Collections.shuffle(companylList); + if (companylList.size() > limit) { + companylList = companylList.subList(0, limit); + } + + // 好友的好友 + List friendIds = appUserFriendMapper.selectByFriendId(ids); + entity.setCompanyName(null); + entity.setFriendIds(friendIds); + List friendList = appUserMapper.selectList(entity); + if (friendList == null || friendList.size() == 0) { + entity.setFriendIds(null); + friendList = appUserMapper.selectList(entity); + } + Collections.shuffle(friendList); + if (friendList.size() > limit) { + friendList = friendList.subList(0, limit); + } + appUserNetVo.setFriendUserList(friendList); + appUserNetVo.setSchoolUserList(schoolList); + appUserNetVo.setCompanyUserList(companylList); + + // unfollowedUsers.sort(Comparator.comparingInt(User::getFollowersCount).reversed()); + return appUserNetVo; + } } diff --git a/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppUserFriendMapper.xml b/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppUserFriendMapper.xml index b1bc2b9..c816dc4 100644 --- a/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppUserFriendMapper.xml +++ b/gan-modules/ruoyi-gan/src/main/resources/mapper/app/AppUserFriendMapper.xml @@ -30,6 +30,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + insert into app_user