feat:预览bug
This commit is contained in:
1 parent
75be4d0f73
commit
acfd9b7bc3
12 files changed
+189
-218
No files matched your search
+4
-25
@@ -1,12 +1,12 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin.recent.vo;
|
||||
|
||||
import cn.iocoder.yudao.module.member.service.user.BO.MemberExtBO;
|
||||
import cn.iocoder.yudao.module.member.service.user.BO.MemberTagExtBO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.alibaba.excel.annotation.*;
|
||||
@@ -75,29 +75,8 @@ public class OperationRespVO {
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private MemberVo member;
|
||||
private MemberExtBO member;
|
||||
|
||||
/**
|
||||
* 用户相关
|
||||
*/
|
||||
@Data
|
||||
public static class MemberVo {
|
||||
|
||||
@Schema(description = "用户编号")
|
||||
private Long memberId;
|
||||
|
||||
@Schema(description = "用户头像")
|
||||
private String memberAvatar;
|
||||
|
||||
@Schema(description = "用户昵称")
|
||||
private String memberNickname;
|
||||
|
||||
@Schema(description = "用户年龄")
|
||||
private String memberAge;
|
||||
|
||||
@Schema(description = "用户职业")
|
||||
private String memberOcc;
|
||||
|
||||
}
|
||||
private List<MemberTagExtBO> memberTagList;
|
||||
|
||||
}
|
||||
+5
-71
@@ -1,10 +1,11 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin.recent.vo;
|
||||
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.recent.RecentDO;
|
||||
import cn.iocoder.yudao.module.member.service.user.BO.MemberExtBO;
|
||||
import cn.iocoder.yudao.module.member.service.user.BO.MemberTagExtBO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@@ -14,10 +15,10 @@ public class RecentPageResVo extends RecentDO {
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "用户相关")
|
||||
private MemberVo member;
|
||||
private MemberExtBO member;
|
||||
|
||||
@Schema(description = "操作统计相关")
|
||||
private OperationTotal operationTotal;
|
||||
private OperationTotalGroupRecentRespVO operationTotal;
|
||||
|
||||
@Schema(description = "操作相关状态")
|
||||
private OperationStatusVo userOperationStatus;
|
||||
@@ -26,7 +27,7 @@ public class RecentPageResVo extends RecentDO {
|
||||
private OperationStatusVo recentOperationStatus;
|
||||
|
||||
@Schema(description = "用户tag")
|
||||
private List<MemberTag> memberTagList;
|
||||
private List<MemberTagExtBO> memberTagList;
|
||||
|
||||
@Schema(description = "用户相册")
|
||||
private List<RecentPageResVo.MemberPhoto> MemberPhotoList;
|
||||
@@ -34,73 +35,6 @@ public class RecentPageResVo extends RecentDO {
|
||||
@Schema(description = "距离(km)")
|
||||
private Double distance;
|
||||
|
||||
@Data
|
||||
public static class MemberVo {
|
||||
|
||||
@Schema(description = "用户编号")
|
||||
private Long memberId;
|
||||
|
||||
@Schema(description = "用户性别")
|
||||
private Integer memberSex;
|
||||
|
||||
@Schema(description = "用户头像")
|
||||
private String memberAvatar;
|
||||
|
||||
@Schema(description = "用户昵称")
|
||||
private String memberNickname;
|
||||
|
||||
@Schema(description = "用户年龄")
|
||||
private String memberAge;
|
||||
|
||||
@Schema(description = "用户职业")
|
||||
private String memberOcc;
|
||||
|
||||
@Schema(description = "身高(cm)")
|
||||
private Double memberHeight;
|
||||
|
||||
@Schema(description = "体重(kg)")
|
||||
private String memberWeight;
|
||||
|
||||
@Schema(description = "城市")
|
||||
private String memberCity;
|
||||
|
||||
@Schema(description = "经度")
|
||||
private Double memberLat;
|
||||
|
||||
@Schema(description = "纬度")
|
||||
private Double memberLng;
|
||||
|
||||
@Schema(description = "最近登录时间")
|
||||
private LocalDateTime appRefreshDate;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class OperationTotal {
|
||||
|
||||
@Schema(description = "朋友圈点赞总数")
|
||||
private Integer recentLikeTotal = 0;
|
||||
|
||||
@Schema(description = "朋友圈举报总数")
|
||||
private Integer recentReportTotal = 0;
|
||||
|
||||
@Schema(description = "朋友圈屏蔽总数")
|
||||
private Integer recentShieldTotal = 0;
|
||||
|
||||
@Schema(description = "用户点赞总数")
|
||||
private Integer userLikeTotal = 0;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class MemberTag {
|
||||
|
||||
@Schema(description = "tag标题")
|
||||
private String tagTitle;
|
||||
|
||||
@Schema(description = "tag业务类型")
|
||||
private String tagBizType;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class MemberPhoto {
|
||||
|
||||
|
||||
+3
-1
@@ -3,11 +3,13 @@ package cn.iocoder.yudao.module.member.controller.app.recent.vo;
|
||||
import cn.iocoder.yudao.module.member.enums.MemberRecentViewRecordEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Data
|
||||
public class AppRecentViewRecordReqVo {
|
||||
|
||||
|
||||
-3
@@ -10,8 +10,6 @@ import cn.iocoder.yudao.module.member.controller.admin.photo.vo.*;
|
||||
|
||||
/**
|
||||
* 用户相册 Mapper
|
||||
*
|
||||
* @author 聊天交友
|
||||
*/
|
||||
@Mapper
|
||||
public interface PhotoMapper extends BaseMapperX<PhotoDO> {
|
||||
@@ -33,5 +31,4 @@ public interface PhotoMapper extends BaseMapperX<PhotoDO> {
|
||||
.orderByAsc(PhotoDO::getId));
|
||||
}
|
||||
|
||||
void getByUserId(RecentPageResVo.MemberVo member);
|
||||
}
|
||||
+38
-115
@@ -13,7 +13,6 @@ import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentQuickPag
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.location.LocationDO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.photo.PhotoDO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.recent.OperationDO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberRecentTagDO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||
import cn.iocoder.yudao.module.member.dal.mysql.recent.OperationMapper;
|
||||
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberRecentTagMapper;
|
||||
@@ -24,6 +23,9 @@ import cn.iocoder.yudao.module.member.enums.tag.MemberRecentTagEnum;
|
||||
import cn.iocoder.yudao.module.member.service.location.LocationService;
|
||||
import cn.iocoder.yudao.module.member.client.service.ThirdAuthService;
|
||||
import cn.iocoder.yudao.module.member.service.photo.PhotoService;
|
||||
import cn.iocoder.yudao.module.member.service.user.BO.MemberExtBO;
|
||||
import cn.iocoder.yudao.module.member.service.user.BO.MemberTagExtBO;
|
||||
import cn.iocoder.yudao.module.member.service.user.MemberRecentTagService;
|
||||
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
|
||||
import cn.iocoder.yudao.module.system.enums.common.SexEnum;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
@@ -82,6 +84,8 @@ public class RecentServiceImpl implements RecentService {
|
||||
private PhotoService photoService;
|
||||
@Resource
|
||||
private OperationService operationService;
|
||||
@Resource
|
||||
private MemberRecentTagService memberRecentTagService;
|
||||
|
||||
/**
|
||||
* 创建朋友圈
|
||||
@@ -365,6 +369,7 @@ public class RecentServiceImpl implements RecentService {
|
||||
List<OperationRespVO> resultList = BeanUtils.toBean(list, OperationRespVO.class);
|
||||
// 为OperationRespVO设置Member信息
|
||||
convertOperationRespVOSetupMember(resultList);
|
||||
convertOperationRespVOSetupTagList(resultList);
|
||||
resultPageList.setList(resultList);
|
||||
resultPageList.setTotal(pageList.getTotal());
|
||||
return resultPageList;
|
||||
@@ -388,6 +393,7 @@ public class RecentServiceImpl implements RecentService {
|
||||
List<OperationRespVO> resultList = BeanUtils.toBean(list, OperationRespVO.class);
|
||||
// 为OperationRespVO设置Member信息
|
||||
convertOperationRespVOSetupMember(resultList);
|
||||
convertOperationRespVOSetupTagList(resultList);
|
||||
return new PageResult<>(resultList, pageList.getTotal());
|
||||
}
|
||||
|
||||
@@ -426,6 +432,7 @@ public class RecentServiceImpl implements RecentService {
|
||||
|
||||
// 为OperationRespVO设置Member信息
|
||||
convertOperationRespVOSetupMember(resultList);
|
||||
convertOperationRespVOSetupTagList(resultList);
|
||||
|
||||
return new PageResult<>(resultList, pageList.getTotal());
|
||||
}
|
||||
@@ -489,28 +496,11 @@ public class RecentServiceImpl implements RecentService {
|
||||
private void convertRecentPageResVoSetupMember(List<RecentPageResVo> list) {
|
||||
if (ObjectUtil.isEmpty(list)) return;
|
||||
List<Long> memberIds = list.stream().map(RecentPageResVo::getMemberId).collect(Collectors.toList());
|
||||
List<MemberUserDO> memberList = memberUserService.getUserList(memberIds);
|
||||
Map<Long, MemberUserDO> memberMap = IterUtil.toMap(memberList, MemberUserDO::getId);
|
||||
List<MemberExtBO> memberList = memberUserService.getUserExtList(memberIds);
|
||||
Map<Long, MemberExtBO> memberMap = IterUtil.toMap(memberList, MemberExtBO::getMemberId);
|
||||
for (RecentPageResVo entity : list) {
|
||||
// 用户相关
|
||||
if (ObjectUtil.isNotEmpty(memberMap)) {
|
||||
MemberUserDO member = memberMap.get(entity.getMemberId());
|
||||
if (ObjectUtil.isNotEmpty(member)) {
|
||||
RecentPageResVo.MemberVo memberVO = new RecentPageResVo.MemberVo();
|
||||
memberVO.setMemberId(member.getId());
|
||||
memberVO.setMemberAvatar(member.getAvatar());
|
||||
memberVO.setMemberNickname(member.getNickname());
|
||||
memberVO.setMemberAge(member.getAge());
|
||||
memberVO.setMemberOcc(member.getOcc());
|
||||
memberVO.setMemberHeight(member.getHeight());
|
||||
memberVO.setMemberWeight(member.getWeight());
|
||||
memberVO.setMemberSex(member.getSex());
|
||||
memberVO.setAppRefreshDate(member.getAppRefreshDate());
|
||||
memberVO.setMemberLat(member.getLat());
|
||||
memberVO.setMemberLng(member.getLng());
|
||||
entity.setMember(memberVO);
|
||||
}
|
||||
}
|
||||
MemberExtBO member = memberMap.get(entity.getMemberId());
|
||||
entity.setMember(member);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -530,37 +520,14 @@ public class RecentServiceImpl implements RecentService {
|
||||
for (RecentPageResVo entity : list) {
|
||||
// 操作统计相关
|
||||
OperationTotalGroupRecentRespVO total = totalMap.get(entity.getId());
|
||||
if (ObjectUtil.isNotEmpty(total)) {
|
||||
RecentPageResVo.OperationTotal operationTotal = new RecentPageResVo.OperationTotal();
|
||||
operationTotal.setRecentLikeTotal(total.getLikeTotal());
|
||||
operationTotal.setRecentReportTotal(total.getReportTotal());
|
||||
operationTotal.setRecentShieldTotal(total.getShieldTotal());
|
||||
operationTotal.setUserLikeTotal(total.getUserLikeTotal());
|
||||
entity.setOperationTotal(operationTotal);
|
||||
} else {
|
||||
entity.setOperationTotal(new RecentPageResVo.OperationTotal());
|
||||
}
|
||||
entity.setOperationTotal(total);
|
||||
}
|
||||
}
|
||||
|
||||
private void convertRecentPageResVoSetupMember(RecentPageResVo detail) {
|
||||
if (ObjectUtil.isEmpty(detail)) return;
|
||||
MemberUserDO member = memberUserService.getUser(detail.getMemberId());
|
||||
if (ObjectUtil.isNotEmpty(member)) {
|
||||
RecentPageResVo.MemberVo memberVO = new RecentPageResVo.MemberVo();
|
||||
memberVO.setMemberId(member.getId());
|
||||
memberVO.setMemberAvatar(member.getAvatar());
|
||||
memberVO.setMemberNickname(member.getNickname());
|
||||
memberVO.setMemberAge(member.getAge());
|
||||
memberVO.setMemberOcc(member.getOcc());
|
||||
memberVO.setMemberHeight(member.getHeight());
|
||||
memberVO.setMemberWeight(member.getWeight());
|
||||
memberVO.setMemberSex(member.getSex());
|
||||
memberVO.setAppRefreshDate(member.getAppRefreshDate());
|
||||
memberVO.setMemberLat(member.getLat());
|
||||
memberVO.setMemberLng(member.getLng());
|
||||
detail.setMember(memberVO);
|
||||
}
|
||||
MemberExtBO member = memberUserService.getUserExt(detail.getMemberId());
|
||||
detail.setMember(member);
|
||||
}
|
||||
|
||||
// 为RecentPageResVo设置userOperationStatus信息
|
||||
@@ -601,71 +568,27 @@ public class RecentServiceImpl implements RecentService {
|
||||
private void convertRecentPageResVoSetupTag(List<RecentPageResVo> list) {
|
||||
if (ObjectUtil.isEmpty(list)) return;
|
||||
List<Long> memberIds = list.stream().map(RecentPageResVo::getMemberId).collect(Collectors.toList());
|
||||
if (ObjectUtil.isNotEmpty(memberIds)) {
|
||||
List<MemberRecentTagDO> memberRecentTagList = memberRecentTagMapper.selectList(new LambdaQueryWrapperX<MemberRecentTagDO>()
|
||||
.in(MemberRecentTagDO::getMemberId, memberIds)
|
||||
);
|
||||
if (ObjectUtil.isNotEmpty(memberRecentTagList)) {
|
||||
for (RecentPageResVo entity : list) {
|
||||
List<MemberRecentTagDO> targetList = memberRecentTagList.stream().filter(v -> ObjectUtil.equals(v.getMemberId(), entity.getMemberId())).collect(Collectors.toList());
|
||||
if (ObjectUtil.isEmpty(targetList)) {
|
||||
entity.setMemberTagList(new ArrayList<>());
|
||||
continue;
|
||||
}
|
||||
List<RecentPageResVo.MemberTag> tagList = targetList.stream().map(v -> {
|
||||
RecentPageResVo.MemberTag tag = new RecentPageResVo.MemberTag();
|
||||
tag.setTagTitle(v.getTagTitle());
|
||||
tag.setTagBizType(v.getTagBizType());
|
||||
return tag;
|
||||
}).collect(Collectors.toList());
|
||||
entity.setMemberTagList(tagList);
|
||||
}
|
||||
}
|
||||
List<MemberTagExtBO> memberList = memberRecentTagService.getUserTagExtList(memberIds);
|
||||
Map<Long, List<MemberTagExtBO>> memberMap = IterUtil.toListMap(memberList, MemberTagExtBO::getMemberId);
|
||||
for (RecentPageResVo entity : list) {
|
||||
List<MemberTagExtBO> tags = memberMap.get(entity.getMemberId());
|
||||
entity.setMemberTagList(tags);
|
||||
}
|
||||
}
|
||||
|
||||
private void convertRecentPageResVoSetupTag(RecentPageResVo entity) {
|
||||
if (ObjectUtil.isEmpty(entity)) return;
|
||||
List<MemberRecentTagDO> memberRecentTagList = memberRecentTagMapper.selectList(new LambdaQueryWrapperX<MemberRecentTagDO>()
|
||||
.in(MemberRecentTagDO::getMemberId, entity.getMemberId())
|
||||
);
|
||||
if (ObjectUtil.isNotEmpty(memberRecentTagList)) {
|
||||
List<MemberRecentTagDO> targetList = memberRecentTagList.stream().filter(v -> ObjectUtil.equals(v.getMemberId(), entity.getMemberId())).collect(Collectors.toList());
|
||||
if (ObjectUtil.isEmpty(targetList)) {
|
||||
entity.setMemberTagList(new ArrayList<>());
|
||||
} else {
|
||||
List<RecentPageResVo.MemberTag> tagList = targetList.stream().map(v -> {
|
||||
RecentPageResVo.MemberTag tag = new RecentPageResVo.MemberTag();
|
||||
tag.setTagTitle(v.getTagTitle());
|
||||
tag.setTagBizType(v.getTagBizType());
|
||||
return tag;
|
||||
}).collect(Collectors.toList());
|
||||
entity.setMemberTagList(tagList);
|
||||
}
|
||||
}
|
||||
List<MemberTagExtBO> memberList = memberRecentTagService.getUserTagExtList(entity.getMemberId());
|
||||
entity.setMemberTagList(memberList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 为RecentPageResVo设置Location信息
|
||||
*/
|
||||
private void convertRecentPageResVoSetupLocation(List<RecentPageResVo> list, LocationDO selfLocation) {
|
||||
if (ObjectUtil.isEmpty(list)) return;
|
||||
for (RecentPageResVo entity : list) {
|
||||
RecentPageResVo.MemberVo targetLocation = entity.getMember();
|
||||
if (ObjectUtil.isAllNotEmpty(targetLocation.getMemberLat(), targetLocation.getMemberLng())) {
|
||||
continue;
|
||||
}
|
||||
double distance = NumberUtils.getDistance(targetLocation.getMemberLat(), targetLocation.getMemberLng(), selfLocation.getLat(), selfLocation.getLon());
|
||||
entity.setDistance(distance);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 为RecentPageResVo设置Location信息
|
||||
*/
|
||||
private void convertRecentPageResVoSetupLocation(RecentPageResVo detail, LocationDO selfLocation) {
|
||||
if (ObjectUtil.isEmpty(detail)) return;
|
||||
RecentPageResVo.MemberVo member = detail.getMember();
|
||||
MemberExtBO member = detail.getMember();
|
||||
if (ObjectUtil.isAllNotEmpty(member.getMemberLng(), member.getMemberLat())) {
|
||||
double distance = NumberUtils.getDistance(member.getMemberLat(), member.getMemberLng(), selfLocation.getLat(), selfLocation.getLon());
|
||||
detail.setDistance(distance);
|
||||
@@ -694,22 +617,22 @@ public class RecentServiceImpl implements RecentService {
|
||||
private void convertOperationRespVOSetupMember(List<OperationRespVO> list) {
|
||||
if (ObjectUtil.isEmpty(list)) return;
|
||||
List<Long> memberIds = list.stream().map(OperationRespVO::getMemberId).collect(Collectors.toList());
|
||||
List<MemberUserDO> memberList = memberUserService.getUserList(memberIds);
|
||||
Map<Long, MemberUserDO> memberMap = IterUtil.toMap(memberList, MemberUserDO::getId);
|
||||
List<MemberExtBO> memberList = memberUserService.getUserExtList(memberIds);
|
||||
Map<Long, MemberExtBO> memberMap = IterUtil.toMap(memberList, MemberExtBO::getMemberId);
|
||||
for (OperationRespVO entity : list) {
|
||||
// 用户相关
|
||||
if (ObjectUtil.isNotEmpty(memberMap)) {
|
||||
MemberUserDO member = memberMap.get(entity.getMemberId());
|
||||
if (ObjectUtil.isNotEmpty(member)) {
|
||||
OperationRespVO.MemberVo memberVO = new OperationRespVO.MemberVo();
|
||||
memberVO.setMemberId(member.getId());
|
||||
memberVO.setMemberAvatar(member.getAvatar());
|
||||
memberVO.setMemberNickname(member.getNickname());
|
||||
memberVO.setMemberAge(member.getAge());
|
||||
memberVO.setMemberOcc(member.getOcc());
|
||||
entity.setMember(memberVO);
|
||||
}
|
||||
}
|
||||
MemberExtBO member = memberMap.get(entity.getMemberId());
|
||||
entity.setMember(member);
|
||||
}
|
||||
}
|
||||
|
||||
private void convertOperationRespVOSetupTagList(List<OperationRespVO> list) {
|
||||
if (ObjectUtil.isEmpty(list)) return;
|
||||
List<Long> memberIds = list.stream().map(OperationRespVO::getMemberId).collect(Collectors.toList());
|
||||
List<MemberTagExtBO> memberList = memberRecentTagService.getUserTagExtList(memberIds);
|
||||
Map<Long, List<MemberTagExtBO>> memberMap = IterUtil.toListMap(memberList, MemberTagExtBO::getMemberId);
|
||||
for (OperationRespVO entity : list) {
|
||||
List<MemberTagExtBO> tags = memberMap.get(entity.getMemberId());
|
||||
entity.setMemberTagList(tags);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
@@ -49,6 +49,7 @@ public class ViewRecordServiceImpl implements ViewRecordService {
|
||||
// 插入
|
||||
ViewRecordDO viewRecord = BeanUtils.toBean(dto, ViewRecordDO.class);
|
||||
viewRecord.setViewSecond((dto.getViewEndTime().getSecond() - dto.getViewStartTime().getSecond()));
|
||||
viewRecord.setBizType(dto.getBizType().getType());
|
||||
if (ObjectUtil.equals(viewRecord.getBizType(), MemberRecentViewRecordEnum.RECENT.getType())) {
|
||||
viewRecord.setTitle("访问朋友圈");
|
||||
}
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.member.service.user.BO;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class MemberExtBO {
|
||||
|
||||
@Schema(description = "用户编号")
|
||||
private Long memberId;
|
||||
|
||||
@Schema(description = "用户性别")
|
||||
private Integer memberSex;
|
||||
|
||||
@Schema(description = "用户头像")
|
||||
private String memberAvatar;
|
||||
|
||||
@Schema(description = "用户昵称")
|
||||
private String memberNickname;
|
||||
|
||||
@Schema(description = "用户年龄")
|
||||
private String memberAge;
|
||||
|
||||
@Schema(description = "用户职业")
|
||||
private String memberOcc;
|
||||
|
||||
@Schema(description = "身高(cm)")
|
||||
private Double memberHeight;
|
||||
|
||||
@Schema(description = "体重(kg)")
|
||||
private String memberWeight;
|
||||
|
||||
@Schema(description = "城市")
|
||||
private String memberCity;
|
||||
|
||||
@Schema(description = "经度")
|
||||
private Double memberLat;
|
||||
|
||||
@Schema(description = "纬度")
|
||||
private Double memberLng;
|
||||
|
||||
@Schema(description = "最近登录时间")
|
||||
private LocalDateTime appRefreshDate;
|
||||
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package cn.iocoder.yudao.module.member.service.user.BO;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MemberTagExtBO {
|
||||
|
||||
@Schema(description = "会员id")
|
||||
private Long memberId;
|
||||
|
||||
@Schema(description = "tag标题")
|
||||
private String tagTitle;
|
||||
|
||||
@Schema(description = "tag业务类型")
|
||||
private String tagBizType;
|
||||
|
||||
}
|
||||
+8
@@ -1,6 +1,7 @@
|
||||
package cn.iocoder.yudao.module.member.service.user;
|
||||
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberRecentTagDO;
|
||||
import cn.iocoder.yudao.module.member.service.user.BO.MemberTagExtBO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -18,4 +19,11 @@ public interface MemberRecentTagService {
|
||||
* 获取用户tag
|
||||
*/
|
||||
List<MemberRecentTagDO> getByMemberId(Long memberId);
|
||||
|
||||
/**
|
||||
* 获取用户tag信息
|
||||
*/
|
||||
List<MemberTagExtBO> getUserTagExtList(List<Long> memberIds);
|
||||
|
||||
List<MemberTagExtBO> getUserTagExtList(Long memberId);
|
||||
}
|
||||
+27
@@ -6,13 +6,16 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberRecentTagDO;
|
||||
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberRecentTagMapper;
|
||||
import cn.iocoder.yudao.module.member.enums.tag.MemberRecentTagEnum;
|
||||
import cn.iocoder.yudao.module.member.service.user.BO.MemberTagExtBO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Valid
|
||||
@@ -54,4 +57,28 @@ public class MemberRecentTagServiceImp implements MemberRecentTagService {
|
||||
public List<MemberRecentTagDO> getByMemberId(Long memberId) {
|
||||
return memberRecentTagMapper.getByMemberId(memberId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户tag信息
|
||||
*/
|
||||
@Override
|
||||
public List<MemberTagExtBO> getUserTagExtList(List<Long> memberIds) {
|
||||
List<MemberRecentTagDO> list = memberRecentTagMapper.selectList(new LambdaQueryWrapperX<MemberRecentTagDO>()
|
||||
.in(MemberRecentTagDO::getMemberId, memberIds)
|
||||
);
|
||||
if (ObjectUtil.isEmpty(list)) return Collections.emptyList();
|
||||
return list.stream().map(item -> {
|
||||
MemberTagExtBO entity = new MemberTagExtBO();
|
||||
entity.setMemberId(item.getMemberId());
|
||||
entity.setTagBizType(item.getTagBizType());
|
||||
entity.setTagTitle(item.getTagTitle());
|
||||
return entity;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MemberTagExtBO> getUserTagExtList(Long memberId) {
|
||||
return getUserTagExtList(Arrays.asList(memberId));
|
||||
}
|
||||
|
||||
}
|
||||
+5
-3
@@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReq
|
||||
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.*;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||
import cn.iocoder.yudao.module.member.service.user.BO.MemberExtBO;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.Collection;
|
||||
@@ -76,12 +77,13 @@ public interface MemberUserService {
|
||||
|
||||
/**
|
||||
* 通过用户 ID 查询用户们
|
||||
*
|
||||
* @param ids 用户 ID
|
||||
* @return 用户对象信息数组
|
||||
*/
|
||||
List<MemberUserDO> getUserList(Collection<Long> ids);
|
||||
|
||||
List<MemberExtBO> getUserExtList(Collection<Long> ids);
|
||||
|
||||
MemberExtBO getUserExt(Long userId);
|
||||
|
||||
/**
|
||||
* 【会员】修改基本信息
|
||||
*
|
||||
|
||||
+33
@@ -25,6 +25,7 @@ import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
|
||||
import cn.iocoder.yudao.module.member.enums.photo.PhotoBizTypeEnum;
|
||||
import cn.iocoder.yudao.module.member.enums.tag.MemberRecentTagEnum;
|
||||
import cn.iocoder.yudao.module.member.mq.producer.user.MemberUserProducer;
|
||||
import cn.iocoder.yudao.module.member.service.user.BO.MemberExtBO;
|
||||
import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
|
||||
import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
|
||||
import cn.iocoder.yudao.module.system.api.social.SocialClientApi;
|
||||
@@ -41,7 +42,9 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -158,6 +161,36 @@ public class MemberUserServiceImpl implements MemberUserService {
|
||||
return memberUserMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MemberExtBO> getUserExtList(Collection<Long> ids) {
|
||||
if (CollUtil.isEmpty(ids)) {
|
||||
return ListUtil.empty();
|
||||
}
|
||||
List<MemberUserDO> memberUserDOS = memberUserMapper.selectBatchIds(ids);
|
||||
return memberUserDOS.stream().map(member -> {
|
||||
MemberExtBO entity = new MemberExtBO();
|
||||
entity.setMemberId(member.getId());
|
||||
entity.setMemberAvatar(member.getAvatar());
|
||||
entity.setMemberNickname(member.getNickname());
|
||||
entity.setMemberAge(member.getAge());
|
||||
entity.setMemberOcc(member.getOcc());
|
||||
entity.setMemberHeight(member.getHeight());
|
||||
entity.setMemberWeight(member.getWeight());
|
||||
entity.setMemberSex(member.getSex());
|
||||
entity.setAppRefreshDate(member.getAppRefreshDate());
|
||||
entity.setMemberLat(member.getLat());
|
||||
entity.setMemberLng(member.getLng());
|
||||
return entity;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public MemberExtBO getUserExt(Long userId) {
|
||||
List<MemberExtBO> list = getUserExtList(Arrays.asList(userId));
|
||||
if (ObjectUtil.isEmpty(list)) return null;
|
||||
return list.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateUser(Long userId, AppMemberUserUpdateReqVO reqVO) {
|
||||
MemberUserDO updateObj = BeanUtils.toBean(reqVO, MemberUserDO.class).setId(userId);
|
||||
|
||||
Reference in new issue
Block a user