[fix]增加视频已读

This commit is contained in:
王庆祥 2025-09-29 20:39:05 +08:00
parent ec715206ef
commit 49e52a9a55
8 changed files with 78 additions and 6 deletions

View File

@ -190,6 +190,7 @@ tenant:
- trans_divide_rule
- trans_divide_rule_detail
- trans_pay_order
- cont_vlog_member
- aws_system_statistics
- act_integral_history
- sys_version

View File

@ -0,0 +1,33 @@
package com.wzj.soopin.content.domain.po;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.dromara.common.core.domain.model.BaseAudit;
/**
* 我的已读视频
*
* @author Chopper
* @since 2023-12-20 16:00
*/
@Data
@TableName("cont_vlog_member")
public class MyReadVlog extends BaseAudit {
/**
* 主键
*/
private Long id;
/**
* 视频id
*/
private String vlogId;
/**
* 会员id
*/
private Long memberId;
}

View File

@ -0,0 +1,17 @@
package com.wzj.soopin.content.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wzj.soopin.content.domain.po.MyReadVlog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* 我的已读视频Mapper接口
*
* @author Chopper
* @since 2023-12-20 16:00
*/
@Repository
@Mapper
public interface MyReadVlogMapper extends BaseMapper<MyReadVlog> {
}

View File

@ -6,6 +6,8 @@ import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.vod.v20180717.VodClient;
import com.tencentcloudapi.vod.v20180717.models.*;
import com.wzj.soopin.content.domain.bo.VlogBO;
import com.wzj.soopin.content.domain.po.MyReadVlog;
import com.wzj.soopin.content.mapper.MyReadVlogMapper;
import com.wzj.soopin.content.service.IVlogPullService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -42,6 +44,7 @@ public class VlogPullServiceImpl implements IVlogPullService {
private final VlogService vlogService;
private final ApplicationEventPublisher eventPublisher;
private final TencentCloudUtil tencentCloudUtil;
private final MyReadVlogMapper myReadVlogMapper;
@Override
public Page<IndexVlogVO> pullFromMq(Page<IndexVlogVO> page) {
@ -64,6 +67,9 @@ public class VlogPullServiceImpl implements IVlogPullService {
VlogBO vlogBO = new VlogBO();
vlogBO.setIds(ids);
List<IndexVlogVO> vlogVOList = vlogService.getIndexVlogList(vlogBO);
//标记已读
saveMyReadVlog(vlogVOList, loginUser.getUserId());
return page.setRecords(vlogVOList);
} else {
if (loginUser != null) {
@ -75,6 +81,8 @@ public class VlogPullServiceImpl implements IVlogPullService {
//发出事件
//先临时取10条数据
Page<IndexVlogVO> indexVlogVOPage = vlogService.getIndexVlogList(null, page);
//标记已读
saveMyReadVlog(indexVlogVOPage.getRecords(), loginUser.getUserId());
//直接获取数据库数据并要求push类推送数据
return indexVlogVOPage;
}
@ -86,6 +94,17 @@ public class VlogPullServiceImpl implements IVlogPullService {
}
private void saveMyReadVlog(List<IndexVlogVO> myReadVlog,Long memberId) {
if(CollectionUtil.isNotEmpty(myReadVlog)){
myReadVlog.forEach(indexVlogVO -> {
MyReadVlog myReadVlog1 = new MyReadVlog();
myReadVlog1.setVlogId(indexVlogVO.getId());
myReadVlog1.setMemberId(memberId);
myReadVlogMapper.insert(myReadVlog1);
});
}
}
@Override
public void pullFromTencentCloud(VlogBO vlogBO) {
try {

View File

@ -289,7 +289,7 @@
cont_vlog v
WHERE
NOT EXISTS (
SELECT 1 FROM cms_vlog_member m
SELECT 1 FROM cont_vlog_member m
WHERE m.vlog_id = v.id AND m.member_id = ${memberId}
)
AND NOT EXISTS (
@ -301,9 +301,6 @@
</select>
<update id="readVlog">
insert into cms_vlog_member (vlog_id, member_id,status) values (#{vlogId}, #{memberId},1)
</update>
<select id="selectUserLikeVlogList" resultType="com.wzj.soopin.content.domain.vo.IndexVlogVO">
SELECT

View File

@ -188,7 +188,7 @@
LEFT JOIN ums_fans f ON v.member_id = f.vlogger_id
LEFT JOIN ums_member m ON v.member_id = m.id
WHERE
NOT EXISTS ( SELECT 1 FROM cms_vlog_member vm WHERE v.id = vm.vlog_id AND vm.member_id = #{paramMap.myId} )
NOT EXISTS ( SELECT 1 FROM cont_vlog_member vm WHERE v.id = vm.vlog_id AND vm.member_id = #{paramMap.myId} )
AND v.is_private = 0
AND v.STATUS = 1
AND v.first_frame_img IS NOT NULL
@ -230,7 +230,7 @@
AND v.first_frame_img IS NOT NULL
AND f.fan_id = #{paramMap.myId}
AND f.friend_flag = 1
AND NOT EXISTS ( SELECT 1 FROM cms_vlog_member vm WHERE v.id = vm.vlog_id AND vm.member_id= #{paramMap.myId} )
AND NOT EXISTS ( SELECT 1 FROM cont_vlog_member vm WHERE v.id = vm.vlog_id AND vm.member_id= #{paramMap.myId} )
ORDER BY
v.create_time DESC
</select>

View File

@ -57,6 +57,7 @@ public class MemberCreateEventListener {
//解绑
member.setUserId(0l);
memberService.updateById(member);
tencentIMService.updateMemberRole(member);
}else{
//如果已经绑定过了 则不再更新
// return;

View File

@ -251,6 +251,10 @@ public class IMCallbackServiceImpl implements IMCallbackService {
// 例如使用上海时区Asia/Shanghai
LocalDate localDate = instant.atZone(ZoneId.of("Asia/Shanghai")).toLocalDate();
member.setBirthday(localDate);
break;
case "Tag_Profile_IM_Image":
member.setAvatar(value.toString());
break;
default:
log.debug("未处理的用户资料字段: tag={}, value={}", tag, value);
break;