diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index f38cd684b..3ce29a51f 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -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 diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/po/MyReadVlog.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/po/MyReadVlog.java new file mode 100644 index 000000000..61ae7e55d --- /dev/null +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/domain/po/MyReadVlog.java @@ -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; + + + +} diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/mapper/MyReadVlogMapper.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/mapper/MyReadVlogMapper.java new file mode 100644 index 000000000..9e5110b04 --- /dev/null +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/mapper/MyReadVlogMapper.java @@ -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 { +} diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogPullServiceImpl.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogPullServiceImpl.java index a28e1c54a..351c2247c 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogPullServiceImpl.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogPullServiceImpl.java @@ -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 pullFromMq(Page page) { @@ -64,6 +67,9 @@ public class VlogPullServiceImpl implements IVlogPullService { VlogBO vlogBO = new VlogBO(); vlogBO.setIds(ids); List 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 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 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 { diff --git a/ruoyi-modules/ruoyi-content/src/main/resources/mapper/content/VlogMapper.xml b/ruoyi-modules/ruoyi-content/src/main/resources/mapper/content/VlogMapper.xml index 5a5655eaa..4ff5a8400 100644 --- a/ruoyi-modules/ruoyi-content/src/main/resources/mapper/content/VlogMapper.xml +++ b/ruoyi-modules/ruoyi-content/src/main/resources/mapper/content/VlogMapper.xml @@ -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 @@ - - insert into cms_vlog_member (vlog_id, member_id,status) values (#{vlogId}, #{memberId},1) - diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/listener/MemberCreateEventListener.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/listener/MemberCreateEventListener.java index 1f2ce60ba..93caf4a81 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/listener/MemberCreateEventListener.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/listener/MemberCreateEventListener.java @@ -57,6 +57,7 @@ public class MemberCreateEventListener { //解绑 member.setUserId(0l); memberService.updateById(member); + tencentIMService.updateMemberRole(member); }else{ //如果已经绑定过了 则不再更新 // return; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/IMCallbackServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/IMCallbackServiceImpl.java index e498605ef..23770c527 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/IMCallbackServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/IMCallbackServiceImpl.java @@ -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;