123
This commit is contained in:
@@ -15,5 +15,13 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
*/
|
*/
|
||||||
public interface UserVisitorMapper extends BaseMapper<UserVisitor> {
|
public interface UserVisitorMapper extends BaseMapper<UserVisitor> {
|
||||||
|
|
||||||
Page<UserStarOrVisitorList> pageApp(@Param("build") Page<Object> build, @Param("query") VisitorQuery query);
|
/**
|
||||||
|
* 我的足迹
|
||||||
|
*/
|
||||||
|
Page<UserStarOrVisitorList> pageMyZhuJi(@Param("build") Page<Object> build, @Param("query") VisitorQuery query);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 我的访客
|
||||||
|
*/
|
||||||
|
Page<UserStarOrVisitorList> pageMyFanKe(@Param("build") Page<Object> build, @Param("query") VisitorQuery query);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,19 @@
|
|||||||
package com.ruoyi.cai.service.impl;
|
package com.ruoyi.cai.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.ruoyi.cai.domain.User;
|
import com.ruoyi.cai.domain.User;
|
||||||
|
import com.ruoyi.cai.domain.UserFollow;
|
||||||
import com.ruoyi.cai.domain.UserVisitor;
|
import com.ruoyi.cai.domain.UserVisitor;
|
||||||
import com.ruoyi.cai.dto.app.query.StarOrVisitorReq;
|
import com.ruoyi.cai.dto.app.query.StarOrVisitorReq;
|
||||||
import com.ruoyi.cai.dto.app.query.VisitorQuery;
|
import com.ruoyi.cai.dto.app.query.VisitorQuery;
|
||||||
|
import com.ruoyi.cai.dto.app.vo.user.UserBaseVo;
|
||||||
import com.ruoyi.cai.dto.app.vo.user.UserStarOrVisitorList;
|
import com.ruoyi.cai.dto.app.vo.user.UserStarOrVisitorList;
|
||||||
import com.ruoyi.cai.mapper.UserVisitorMapper;
|
import com.ruoyi.cai.mapper.UserVisitorMapper;
|
||||||
import com.ruoyi.cai.service.UserCountService;
|
import com.ruoyi.cai.service.UserCountService;
|
||||||
|
import com.ruoyi.cai.service.UserFollowService;
|
||||||
import com.ruoyi.cai.service.UserService;
|
import com.ruoyi.cai.service.UserService;
|
||||||
import com.ruoyi.cai.service.UserVisitorService;
|
import com.ruoyi.cai.service.UserVisitorService;
|
||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
@@ -20,6 +24,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户来访记录Service业务层处理
|
* 用户来访记录Service业务层处理
|
||||||
@@ -34,6 +41,8 @@ public class UserVisitorServiceImpl extends ServiceImpl<UserVisitorMapper, UserV
|
|||||||
private UserCountService userCountService;
|
private UserCountService userCountService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
@Autowired
|
||||||
|
private UserFollowService userFollowService;
|
||||||
@Override
|
@Override
|
||||||
public boolean visitor(StarOrVisitorReq starOrVisitorReq) {
|
public boolean visitor(StarOrVisitorReq starOrVisitorReq) {
|
||||||
User user = userService.getById(starOrVisitorReq.getToUserId());
|
User user = userService.getById(starOrVisitorReq.getToUserId());
|
||||||
@@ -63,6 +72,52 @@ public class UserVisitorServiceImpl extends ServiceImpl<UserVisitorMapper, UserV
|
|||||||
throw new ServiceException("参数异常");
|
throw new ServiceException("参数异常");
|
||||||
}
|
}
|
||||||
query.setUserId(LoginHelper.getUserId());
|
query.setUserId(LoginHelper.getUserId());
|
||||||
return baseMapper.pageApp(pageQuery.build(),query);
|
if(query.getType().equals(1)){ // 我的足迹
|
||||||
|
return pageMyZhuJi(pageQuery, query);
|
||||||
|
}else{
|
||||||
|
return pageMyFanKe(pageQuery, query);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Page<UserStarOrVisitorList> pageMyFanKe(PageQuery pageQuery, VisitorQuery query){
|
||||||
|
Page<UserStarOrVisitorList> page = baseMapper.pageMyFanKe(pageQuery.build(), query);
|
||||||
|
List<UserStarOrVisitorList> records = page.getRecords();
|
||||||
|
if(CollectionUtils.isEmpty(records)){
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
List<Long> userIds = records.stream().map(UserBaseVo::getUserId).collect(Collectors.toList());
|
||||||
|
if(!CollectionUtils.isEmpty(userIds)){
|
||||||
|
List<UserFollow> list = userFollowService.list(Wrappers.lambdaQuery(UserFollow.class)
|
||||||
|
.select(UserFollow::getUserId,UserFollow::getFollowUser)
|
||||||
|
.eq(UserFollow::getUserId, query.getUserId())
|
||||||
|
.in(UserFollow::getFollowUser, userIds));
|
||||||
|
Set<Long> callBackUserIds = list.stream().map(UserFollow::getFollowUser).collect(Collectors.toSet());
|
||||||
|
for (UserStarOrVisitorList record : records) {
|
||||||
|
record.setCallBackStar(callBackUserIds.contains(record.getUserId())?1:0);
|
||||||
|
record.setIsVip(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Page<UserStarOrVisitorList> pageMyZhuJi(PageQuery pageQuery, VisitorQuery query){
|
||||||
|
Page<UserStarOrVisitorList> page = baseMapper.pageMyZhuJi(pageQuery.build(), query);
|
||||||
|
List<UserStarOrVisitorList> records = page.getRecords();
|
||||||
|
if(CollectionUtils.isEmpty(records)){
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
List<Long> userIds = records.stream().map(UserBaseVo::getUserId).collect(Collectors.toList());
|
||||||
|
if(!CollectionUtils.isEmpty(userIds)){
|
||||||
|
List<UserFollow> list = userFollowService.list(Wrappers.lambdaQuery(UserFollow.class)
|
||||||
|
.select(UserFollow::getUserId,UserFollow::getFollowUser)
|
||||||
|
.eq(UserFollow::getUserId, query.getUserId())
|
||||||
|
.in(UserFollow::getFollowUser, userIds));
|
||||||
|
Set<Long> callBackUserIds = list.stream().map(UserFollow::getFollowUser).collect(Collectors.toSet());
|
||||||
|
for (UserStarOrVisitorList record : records) {
|
||||||
|
record.setCallBackStar(callBackUserIds.contains(record.getUserId())?1:0);
|
||||||
|
record.setIsVip(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return page;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import java.util.Base64;
|
|||||||
public class AES {
|
public class AES {
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
String jsonData ="YRdHX2hqWMGguxfvSXfHzK5kuljBah5luDUo/YcmoQVKtSSAtEY2ndScZIi2dgLvjJ6noUDcIctq653wt83OCgj3P4+jgnopMps12RY1DnxHtLUd2Rnv3TCCKf+Br5+iGi9ruuq27JimqOYOjT+K8CWVESSQsoTN6knQA69s2kctSaHkmpirf4N3gJxp84BW4xi+hyayuKFe5/jva0X/Cg==";
|
String jsonData ="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";
|
||||||
String key = "UCEfSKns45SWjHov";
|
String key = "UPsfSES4456W8ILv";
|
||||||
System.out.println(decrypt(jsonData,key));
|
System.out.println(decrypt(jsonData,key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,28 +4,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.ruoyi.cai.mapper.UserVisitorMapper">
|
<mapper namespace="com.ruoyi.cai.mapper.UserVisitorMapper">
|
||||||
|
|
||||||
<resultMap type="com.ruoyi.cai.domain.UserVisitor" id="CaiUserVisitorResult">
|
<select id="pageMyFanKe" resultType="com.ruoyi.cai.dto.app.vo.user.UserStarOrVisitorList">
|
||||||
<result property="id" column="id"/>
|
|
||||||
<result property="userId" column="user_id"/>
|
|
||||||
<result property="visitorId" column="visitor_id"/>
|
|
||||||
<result property="isWatch" column="is_watch"/>
|
|
||||||
<result property="createTime" column="create_time"/>
|
|
||||||
</resultMap>
|
|
||||||
<select id="pageApp" resultType="com.ruoyi.cai.dto.app.vo.user.UserStarOrVisitorList">
|
|
||||||
select
|
select
|
||||||
t1.create_time as happen_time,t1.is_watch,
|
t1.create_time as happen_time,t1.is_watch,
|
||||||
t2.id as user_id,
|
t2.id as user_id,t2.avatar,t2.gender,t2.city_id,t2.city,t2.nickname,t2.usercode,t2.age
|
||||||
t2.avatar,t2.gender,t2.city_id,t2.city,t2.nickname,t2.usercode,t2.age
|
from cai_user_visitor t1
|
||||||
|
join cai_user t2 on t1.visitor_id = t2.id
|
||||||
|
where t1.user_id = #{query.userId}
|
||||||
|
order by t1.create_time desc
|
||||||
|
</select>
|
||||||
|
<select id="pageMyZhuJi" resultType="com.ruoyi.cai.dto.app.vo.user.UserStarOrVisitorList">
|
||||||
|
select
|
||||||
|
t1.create_time as happen_time,t1.is_watch,
|
||||||
|
t2.id as user_id,t2.avatar,t2.gender,t2.city_id,t2.city,t2.nickname,t2.usercode,t2.age
|
||||||
from cai_user_visitor t1
|
from cai_user_visitor t1
|
||||||
join cai_user t2 on t1.user_id = t2.id
|
join cai_user t2 on t1.user_id = t2.id
|
||||||
<where>
|
where t1.visitor_id = #{query.userId}
|
||||||
<if test="query.type == 1">
|
|
||||||
and t1.visitor_id = #{query.userId}
|
|
||||||
</if>
|
|
||||||
<if test="query.type == 2">
|
|
||||||
and t1.user_id = #{query.userId}
|
|
||||||
</if>
|
|
||||||
</where>
|
|
||||||
order by t1.create_time desc
|
order by t1.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user