buyer-api/src/main/java/cn/lili/controller/lmk/VideoController.java
@@ -4,6 +4,7 @@ import cn.lili.group.Update; import cn.lili.group.Add; import cn.lili.modules.lmk.domain.form.VideoFootPrintForm; import cn.lili.modules.lmk.domain.form.VideoHomePageInfoForm; import cn.lili.modules.lmk.domain.query.AuthorVideoQuery; import cn.lili.modules.member.entity.dos.FootPrint; import org.springframework.validation.annotation.Validated; @@ -96,4 +97,10 @@ public Result getAuthorCollectVideoPage(AuthorVideoQuery query) { return videoService.getAuthorCollectVideoPage(query); } @PostMapping("/home-page-info-edit") @ApiOperation(value = "保存视频主页的个人信息修改", notes = "保存视频主页的个人信息修改") public Result homePageInfoEdit(@RequestBody @Validated VideoHomePageInfoForm form) { return videoService.homePageInfoEdit(form); } } framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoHomePageInfoForm.java
New file @@ -0,0 +1,28 @@ package cn.lili.modules.lmk.domain.form; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; /** * @author:xp * @date:2025/6/3 20:09 */ @Data @ApiModel("视频主页个人信息修改") public class VideoHomePageInfoForm { @ApiModelProperty("个性签名") private String motto; @NotBlank(message = "昵称不能为空") @ApiModelProperty("昵称") private String nickName; @NotBlank(message = "头像不能为空") @ApiModelProperty("头像") private String avatar; } framework/src/main/java/cn/lili/modules/lmk/domain/vo/WxVideoVO.java
@@ -35,6 +35,7 @@ /** 图片封面 */ @ApiModelProperty("图片封面") private String coverUrl; private String coverFileKey; /** 视频地址 */ @ApiModelProperty("视频地址") framework/src/main/java/cn/lili/modules/lmk/service/VideoService.java
@@ -167,4 +167,12 @@ * @return */ Result getAuthorCollectVideoPage(AuthorVideoQuery query); /** * 保存视频主页的个人信息修改 * * @param form * @return */ Result homePageInfoEdit(VideoHomePageInfoForm form); } framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java
@@ -1,9 +1,7 @@ package cn.lili.modules.lmk.service.impl; import cn.lili.common.security.context.UserContext; import cn.lili.modules.lmk.domain.entity.VideoAuditRecord; import cn.lili.modules.lmk.domain.entity.VideoTag; import cn.lili.modules.lmk.domain.entity.VideoTagRef; import cn.lili.modules.lmk.domain.entity.*; import cn.lili.modules.lmk.domain.form.*; import cn.lili.modules.lmk.domain.query.AuthorVideoQuery; import cn.lili.modules.lmk.domain.query.ManagerVideoQuery; @@ -13,10 +11,11 @@ import cn.lili.modules.lmk.enums.general.ViewTypeEnum; import cn.lili.modules.lmk.service.*; import cn.lili.modules.member.entity.dos.FootPrint; import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.service.FootprintService; import cn.lili.modules.member.service.MemberService; import cn.lili.utils.COSUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import cn.lili.modules.lmk.domain.entity.Video; import cn.lili.modules.lmk.mapper.VideoMapper; import cn.lili.base.Result; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; @@ -55,6 +54,8 @@ private final COSUtil cosUtil; private final FootprintService footprintService; private final MySubscribeService mySubscribeService; private final MemberService memberService; private final VideoAccountService videoAccountService; /** * 添加 @@ -295,6 +296,7 @@ v.setTagList(tagMap.get(v.getId())); v.setCollected(CollectionUtils.isNotEmpty(collectMap.get(v.getId()))); v.setVideoUrl(cosUtil.getPreviewUrl(v.getVideoFileKey())); v.setCoverUrl(cosUtil.getPreviewUrl(v.getCoverFileKey())); v.setSubscribeThisAuthor(subscribes.contains(v.getAuthorId())); }); } @@ -352,7 +354,7 @@ IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class); baseMapper.getAuthorVideoPage(page, query); for (WxVideoVO vo : page.getRecords()) { vo.setCoverUrl(cosUtil.getPreviewUrl(vo.getCoverUrl())); vo.setCoverUrl(cosUtil.getPreviewUrl(vo.getCoverFileKey())); vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoUrl())); } return Result.ok().data(page.getRecords()).total(page.getTotal()); @@ -363,10 +365,25 @@ IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class); baseMapper.getAuthorCollectVideoPage(page, query); for (WxVideoVO vo : page.getRecords()) { vo.setCoverUrl(cosUtil.getPreviewUrl(vo.getCoverUrl())); vo.setCoverUrl(cosUtil.getPreviewUrl(vo.getCoverFileKey())); vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoUrl())); vo.setCollected(Boolean.TRUE); } return Result.ok().data(page.getRecords()).total(page.getTotal()); } @Override @Transactional(rollbackFor = Exception.class) public Result homePageInfoEdit(VideoHomePageInfoForm form) { new LambdaUpdateChainWrapper<>(memberService.getBaseMapper()) .eq(Member::getId, UserContext.getCurrentUserId()) .set(Member::getNickName, form.getNickName()) .set(Member::getFace, form.getAvatar()) .update(); new LambdaUpdateChainWrapper<>(videoAccountService.getBaseMapper()) .eq(VideoAccount::getUserId, UserContext.getCurrentUserId()) .set(VideoAccount::getMotto, form.getMotto()) .update(); return Result.ok("保存成功"); } } framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java
@@ -70,33 +70,47 @@ * @since 2021-03-29 14:10:16 */ @Service @RequiredArgsConstructor public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> implements MemberService { /** * 会员token */ private final MemberTokenGenerate memberTokenGenerate; @Autowired private MemberTokenGenerate memberTokenGenerate; /** * 商家token */ private final StoreTokenGenerate storeTokenGenerate; @Autowired private StoreTokenGenerate storeTokenGenerate; /** * 联合登录 */ private final ConnectService connectService; @Autowired private ConnectService connectService; /** * 店铺 */ private final StoreService storeService; @Autowired private StoreService storeService; /** * RocketMQ 配置 */ private final RocketmqCustomProperties rocketmqCustomProperties; private final RocketMQTemplate rocketMQTemplate; private final ApplicationEventPublisher applicationEventPublisher; private final Cache cache; private final VideoAccountService videoAccountService; @Autowired private RocketmqCustomProperties rocketmqCustomProperties; @Autowired private RocketMQTemplate rocketMQTemplate; @Autowired private ApplicationEventPublisher applicationEventPublisher; /** * 缓存 */ @Autowired private Cache cache; @Autowired private VideoAccountService videoAccountService; @Override public Member findByUsername(String userName) { framework/src/main/resources/mapper/lmk/VideoMapper.xml
@@ -31,7 +31,7 @@ <result column="author_id" property="authorId" /> <result column="authorName" property="authorName" /> <result column="authorAvatar" property="authorAvatar" /> <result column="cover_url" property="coverUrl" /> <result column="cover_url" property="coverFileKey" /> <result column="video_file_key" property="videoFileKey" /> <result column="video_fit" property="videoFit" /> <result column="title" property="title" />