「小程序JAVA實戰」小程序的個人信息作品,收藏,關注(66)
个人信息页面有一个tab(作品,收藏,关注)源码:https://github.com/limingios/wxProgram.git 中No.15和springboot
作品,收藏,关注的列表
VideoController.java
package com.idig8.controller;import java.io.File;import java.util.Date;import java.util.UUID;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;import com.idig8.pojo.Bgm;import com.idig8.pojo.Videos;import com.idig8.service.BgmService;import com.idig8.service.VideoService;import com.idig8.utils.FetchVideoCover;import com.idig8.utils.JSONResult;import com.idig8.utils.MergeVideoMp3;import com.idig8.utils.PagedResult;import com.idig8.utils.enums.VideoStatusEnum;import com.idig8.utils.file.FileUtil;import io.swagger.annotations.Api;import io.swagger.annotations.ApiImplicitParam;import io.swagger.annotations.ApiImplicitParams;import io.swagger.annotations.ApiOperation;import io.swagger.annotations.ApiParam;@RestController@Api(value="视频相关业务的接口", tags= {"视频相关业务的controller"})@RequestMapping("/video")public class VideoController extends BasicController {
@Autowired
private BgmService bgmService;
@Autowired
private VideoService videosService;
@Value("${server.file.path}") private String fileSpace;
@Value("${server.ffmpeg.path}") private String ffmpegexe;
@ApiOperation(value="上传视频", notes="上传视频的接口") @ApiImplicitParams({ @ApiImplicitParam(name="userId", value="用户id", required=true,
dataType="String", paramType="form"), @ApiImplicitParam(name="bgmId", value="背景音乐id", required=false,
dataType="String", paramType="form"), @ApiImplicitParam(name="videoSeconds", value="背景音乐播放长度", required=true,
dataType="String", paramType="form"), @ApiImplicitParam(name="videoWidth", value="视频宽度", required=true,
dataType="String", paramType="form"), @ApiImplicitParam(name="videoHeight", value="视频高度", required=true,
dataType="String", paramType="form"), @ApiImplicitParam(name="desc", value="视频描述", required=false,
dataType="String", paramType="form")
}) @PostMapping(value="/upload", headers="content-type=multipart/form-data") public JSONResult upload(String userId,
String bgmId, double videoSeconds,
int videoWidth, int videoHeight,
String desc,
@ApiParam(value="短视频", required=true)
MultipartFile file) throws Exception {
if (StringUtils.isBlank(userId)) { return JSONResult.errorMsg("用户id不能为空...");
} // 文件保存的命名空间
String fileName = file.getOriginalFilename(); // 保存到数据库中的相对路径
String path = "";
String videOutPath = "";
String ImagePath = ""; try {
path = FileUtil.uploadFile(file.getBytes(), fileSpace, fileName);
} catch (Exception e) {
e.getStackTrace(); return JSONResult.errorMsg(e.getMessage());
}
if(StringUtils.isNotBlank(bgmId)){
Bgm bgm = bgmService.queryBgmById(bgmId);
String mp3BgmPath = fileSpace + bgm.getPath();
MergeVideoMp3 mergeVideoMp3 = new MergeVideoMp3(ffmpegexe);
String videOutPathName = UUID.randomUUID().toString()+".mp4";
File targetFile = new File(fileSpace + userId); if (!targetFile.exists()) {
targetFile.mkdirs();
}
videOutPath = "/"+userId+"/"+videOutPathName;
String videoInput = fileSpace +path;
mergeVideoMp3.convertor(videoInput, mp3BgmPath, videoSeconds, fileSpace +videOutPath);
}else{
videOutPath = path;
}
ImagePath = "/"+userId+"/"+UUID.randomUUID().toString()+".jpg";;
FetchVideoCover fetchVideoCover = new FetchVideoCover(ffmpegexe);
fetchVideoCover.getCover(fileSpace +videOutPath, fileSpace +ImagePath);
Videos videos = new Videos();
videos.setAudioId(bgmId);
videos.setCreateTime(new Date());
videos.setVideoDesc(desc);
videos.setId(UUID.randomUUID().toString());
videos.setUserId(userId);
videos.setVideoHeight(videoHeight);
videos.setVideoWidth(videoWidth);
videos.setVideoPath(videOutPath);
videos.setCoverPath(ImagePath);
videos.setStatus(VideoStatusEnum.SUCCESS.value);
videosService.saveVideo(videos);
return JSONResult.ok(path);
}
@PostMapping(value="/showAll") @ApiOperation(value="视频列表", notes="分页的视频列表") public JSONResult showAll(@RequestBody Videos video,Integer isSaveRecord,
Integer page) throws Exception { if(page == null){
page = 1;
}
PagedResult result = videosService.getAllVideos(video,isSaveRecord,page, PAGE_SIZE);
return JSONResult.ok(result);
}
@PostMapping(value="/userLike") @ApiOperation(value="热搜词列表", notes="热搜词列表") public JSONResult userLike(String userId,String videoId,String videoCreaterId) throws Exception {
videosService.userLikeVideo(userId, videoId, videoCreaterId); return JSONResult.ok();
}
@PostMapping(value="/userUnLike") public JSONResult userUnLike(String userId,String videoId,String videoCreaterId) throws Exception {
videosService.userUnLikeVideo(userId, videoId, videoCreaterId); return JSONResult.ok();
}
@PostMapping(value="/hot") public JSONResult upload() throws Exception {
return JSONResult.ok(videosService.gethostList());
}
@PostMapping(value="/showMyLike") public JSONResult showMyLike(String userId,Integer page,Integer pageSize) throws Exception { if(StringUtils.isBlank(userId)){ return JSONResult.ok();
}
if(page == null){
page = 1;
}
if(pageSize == null){
pageSize = PAGE_SIZE;
}
PagedResult videoList = videosService.queryMyLikeVideos(userId,page,pageSize);
return JSONResult.ok(videoList);
}
@PostMapping(value="/showMyFollow") public JSONResult showMyFollow(String userId,Integer page,Integer pageSize) throws Exception { if(StringUtils.isBlank(userId)){ return JSONResult.ok();
}
if(page == null){
page = 1;
}
if(pageSize == null){
pageSize = PAGE_SIZE;
}
PagedResult videoList = videosService.queryMyFollowVideos(userId,page,pageSize);
return JSONResult.ok(videoList);
}
}VideoService.java
package com.idig8.service;import java.util.List;import com.idig8.pojo.Videos;import com.idig8.utils.PagedResult;public interface VideoService {
/**
* 保存视频信息
* @param Id
* @return
*/
public String saveVideo(Videos video);
/**
* 分析查询视频列表
* @param video
* @param isSaveRecord
* @param page
* @param pageSize
* @return
*/
public PagedResult getAllVideos(Videos video,Integer isSaveRecord,Integer page,Integer pageSize);
/**
* 获取热搜词列表
* @return
*/
public List<String> gethostList();
public void userLikeVideo(String userId,String videoId,String videoCreaterId);
public void userUnLikeVideo(String userId,String videoId,String videoCreaterId);
public PagedResult queryMyLikeVideos(String userId,Integer page,Integer pageSize);
public PagedResult queryMyFollowVideos(String userId,Integer page,Integer pageSize);
}VideoServiceImpl.java
package com.idig8.service.Impl;import java.util.List;import org.n3r.idworker.Sid;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Propagation;import org.springframework.transaction.annotation.Transactional;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import com.idig8.mapper.SearchRecordsMapper;import com.idig8.mapper.UsersLikeVideosMapper;import com.idig8.mapper.UsersMapper;import com.idig8.mapper.VideosMapper;import com.idig8.mapper.VideosUsersMapper;import com.idig8.pojo.SearchRecords;import com.idig8.pojo.UsersLikeVideos;import com.idig8.pojo.Videos;import com.idig8.pojo.vo.VideosVO;import com.idig8.service.VideoService;import com.idig8.utils.PagedResult;import tk.mybatis.mapper.entity.Example;import tk.mybatis.mapper.entity.Example.Criteria;@Servicepublic class VideoServiceImpl implements VideoService { @Autowired
private VideosMapper videosMapper; @Autowired
private UsersMapper usersMapper; @Autowired
private VideosUsersMapper videosUsersMapper; @Autowired
private SearchRecordsMapper searchRecordsMapper; @Autowired
private UsersLikeVideosMapper usersLikeVideosMapper; @Autowired
private Sid sid; @Transactional(propagation = Propagation.REQUIRED) public String saveVideo(Videos video) {
String id = sid.nextShort();
video.setId(id);
videosMapper.insertSelective(video); return id;
} @Override
@Transactional(propagation = Propagation.REQUIRED) public PagedResult getAllVideos(Videos video, Integer isSaveRecord, Integer page, Integer pageSize) {
String desc = video.getVideoDesc();
String userId = video.getUserId(); if (isSaveRecord != null && isSaveRecord == 1) {
SearchRecords record = new SearchRecords();
String recordId = sid.nextShort();
record.setId(recordId);
record.setContent(desc);
searchRecordsMapper.insert(record);
}
PageHelper.startPage(page, pageSize);
List<VideosVO> list = videosUsersMapper.queryAllVideos(desc,userId);
PageInfo<VideosVO> pageList = new PageInfo<>(list);
PagedResult result = new PagedResult();
result.setPage(page);
result.setTotal(pageList.getPages());
result.setRows(list);
result.setRecords(pageList.getTotal()); return result;
} @Transactional(propagation = Propagation.SUPPORTS) @Override
public List<String> gethostList() { return searchRecordsMapper.gethotList();
} @Override
public void userLikeVideo(String userId, String videoId, String videoCreaterId) { // 1.保存用戶和视频的关联关系
String likeId = sid.nextShort();
UsersLikeVideos usersLikeVideos = new UsersLikeVideos();
usersLikeVideos.setId(likeId);
usersLikeVideos.setUserId(userId);
usersLikeVideos.setVideoId(videoId);
usersLikeVideosMapper.insert(usersLikeVideos); // 2.视频喜欢的累加
videosUsersMapper.addVideoLikeCount(videoId); // 3. 用户喜欢的累加
usersMapper.addReceiveLikeCount(userId);
} @Override
public void userUnLikeVideo(String userId, String videoId, String videoCreaterId) {
Example example = new Example(UsersLikeVideos.class);
Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId", userId);
criteria.andEqualTo("videoId", videoId);
usersLikeVideosMapper.deleteByExample(example); // 2.视频喜欢的累减
videosUsersMapper.reduceVideoLikeCount(videoId); // 3. 用户喜欢的累减
usersMapper.reduceReceiveLikeCount(userId);
} @Override
public PagedResult queryMyLikeVideos(String userId, Integer page, Integer pageSize) {
PageHelper.startPage(page,pageSize);
List<VideosVO> list = videosUsersMapper.queryMyLikeVideos(userId);
PageInfo<VideosVO> pageList = new PageInfo<>(list);
PagedResult pagedResult = new PagedResult();
pagedResult.setTotal(pageList.getPages());
pagedResult.setRows(list);
pagedResult.setPage(page);
pagedResult.setRecords(pageList.getTotal());
return pagedResult;
} @Override
public PagedResult queryMyFollowVideos(String userId, Integer page, Integer pageSize) {
PageHelper.startPage(page,pageSize);
List<VideosVO> list = videosUsersMapper.queryMyFollowVideos(userId);
PageInfo<VideosVO> pageList = new PageInfo<>(list);
PagedResult pagedResult = new PagedResult();
pagedResult.setTotal(pageList.getPages());
pagedResult.setRows(list);
pagedResult.setPage(page);
pagedResult.setRecords(pageList.getTotal());
return pagedResult;
}
}VideosUsersMapper.java
package com.idig8.mapper;import java.util.List;import org.apache.ibatis.annotations.Param;import com.idig8.pojo.vo.VideosVO;import com.idig8.utils.MyMapper;public interface VideosUsersMapper extends MyMapper<VideosVO> {
public List<VideosVO> queryAllVideos(@Param("videoDesc") String videoDesc,@Param("userId")String userId);
public void addVideoLikeCount(String videoId);
public void reduceVideoLikeCount(String videoId);
public List<VideosVO> queryMyLikeVideos(String userId);
public List<VideosVO> queryMyFollowVideos(String userId);
}VideosUserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.idig8.mapper.VideosUsersMapper" >
<resultMap id="BaseResultMap" type="com.idig8.pojo.vo.VideosVO" >
<!--
WARNING - @mbg.generated
-->
<id column="id" property="id" jdbcType="VARCHAR" />
<result column="user_id" property="userId" jdbcType="VARCHAR" />
<result column="audio_id" property="audioId" jdbcType="VARCHAR" />
<result column="video_desc" property="videoDesc" jdbcType="VARCHAR" />
<result column="video_path" property="videoPath" jdbcType="VARCHAR" />
<result column="video_seconds" property="videoSeconds" jdbcType="REAL" />
<result column="video_width" property="videoWidth" jdbcType="INTEGER" />
<result column="video_height" property="videoHeight" jdbcType="INTEGER" />
<result column="cover_path" property="coverPath" jdbcType="VARCHAR" />
<result column="like_counts" property="likeCounts" jdbcType="BIGINT" />
<result column="status" property="status" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="username" property="username" jdbcType="VARCHAR" />
<result column="face_image" property="faceImage" jdbcType="VARCHAR" />
<result column="nickname" property="nickname" jdbcType="VARCHAR" />
</resultMap>
<select id="queryAllVideos" resultMap="BaseResultMap" parameterType="String">
select v.*,u.face_image,u.username,u.nickname from videos v
left join users u on v.user_id = u.id
where
1 = 1 <if test="videoDesc !=null and videoDesc != '' ">
and v.video_desc like '%${videoDesc}%' </if>
<if test="userId !=null and userId != '' ">
and v.user_id = #{userId} </if>
and v.status = 1
order by v.create_time
</select>
<update id="addVideoLikeCount" parameterType="String">
update videos set like_counts=like_counts+1 where id=#{videoId} </update>
<update id="reduceVideoLikeCount" parameterType="String">
update videos set like_counts=like_counts-1 where id=#{videoId} </update>
<select id="queryMyLikeVideos" resultMap="BaseResultMap" parameterType="String">
select v.*,u.face_image as face_image,u.nickname as nickname from videos v
left join users u on v.user_id = u.id
where
v.id in (select ulv.video_id from users_like_videos ulv where ulv.user_id = #{userId})
and v.status = 1
order by v.create_time desc </select>
<select id="queryMyFollowVideos" resultMap="BaseResultMap" parameterType="String">
select v.*,u.face_image as face_image,u.nickname as nickname from videos v
left join users u on v.user_id = u.id
where
v.id in (select uf.user_id from users_fans uf where uf.fan_id = #{userId})
and v.status = 1
order by v.create_time desc </select></mapper>小程序开发
mine.js
// pages/mine/mine.jsconst app = getApp()var videoUtils = require('../../utils/videoUtils.js')
Page({ /**
* 页面的初始数据
*/
data: { faceImage: "../../resource/images/noneface.png", nickname: "昵称", fansCounts: 0, followCounts: 0, receiveLikeCounts: 0, isMe:true, isFollow:false, publisherId: '', videoSelClass: "video-info", isSelectedWork: "video-info-selected", isSelectedLike: "", isSelectedFollow: "", myVideoList: [], myVideoPage: 1, myVideoTotal: 1, likeVideoList: [], likeVideoPage: 1, likeVideoTotal: 1, followVideoList: [], followVideoPage: 1, followVideoTotal: 1, myWorkFalg: false, myLikesFalg: true, myFollowFalg: true
}, /**
* 用户注销
*/
logout: function(e) { var user = app.getGlobalUserInfo();
wx.showLoading({ title: '正在注销中。。。'
});
wx.request({ url: app.serverUrl + "/logout?userId=" + user.id, method: "POST", header: { 'content-type': 'application/json' // 默认值
}, success: function(res) { console.log(res.data); var status = res.data.status;
wx.hideLoading(); if (status == 200) {
wx.showToast({ title: "用户注销成功~!", icon: 'none', duration: 3000
}) // app.userInfo = null;
wx.removeStorageSync("userInfo");
wx.redirectTo({ url: '../userRegister/userRegister',
})
} else if (status == 500) {
wx.showToast({ title: res.data.msg, icon: 'none', duration: 3000
})
}
}
})
}, followMe: function (e) { var me = this; var user = app.getGlobalUserInfo(); var userId = user.id; var publisherId = me.data.publisherId; var followType = e.currentTarget.dataset.followtype; // 1:关注 0:取消关注
var url = ''; if (followType == '1') {
url = '/user/beyourfans?userId=' + publisherId + '&fanId=' + userId;
} else {
url = '/user/dontbeyourfans?userId=' + publisherId + '&fanId=' + userId;
}
wx.showLoading();
wx.request({ url: app.serverUrl + url, method: 'POST', header: { 'content-type': 'application/json', // 默认值
'headerUserId': user.id, 'headerUserToken': user.userToken
}, success: function () {
wx.hideLoading(); if (followType == '1') {
me.setData({ isFollow: true, fansCounts: ++me.data.fansCounts
})
} else {
me.setData({ isFollow: false, fansCounts: --me.data.fansCounts
})
}
}
})
}, /**
* 头像上传
*/
uploadFace: function(e) { // var user = app.userInfo;
var user = app.getGlobalUserInfo(); var me = this;
wx.chooseImage({ count: 1, // 默认9
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function(res) { // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
var tempFilePaths = res.tempFilePaths if (tempFilePaths.length > 0) { console.log(tempFilePaths[0]);
wx.uploadFile({ url: app.serverUrl + "/user/uploadFace?userId=" + user.id, //仅为示例,非真实的接口地址
filePath: tempFilePaths[0], name: 'file', success: function(res) { var data = JSON.parse(res.data); console.log(data);
wx.hideLoading(); if (data.status == 200) {
wx.showToast({ title: "用户上传成功~!", icon: 'none', duration: 3000
})
me.setData({ faceUrl: app.serverUrl + data.data
})
} else if (data.status == 500) {
wx.showToast({ title: data.msg, icon: 'none', duration: 3000
})
}
}
})
}
}
})
}, /**
* 生命周期函数--监听页面加载
*/
onLoad: function(params) { var me = this; var userInfo = app.getGlobalUserInfo(); var publisherId = params.publisherId; var userId = userInfo.id; if (publisherId != null && publisherId != '' && publisherId!=undefined){
userId = publisherId;
me.setData({ isMe:false, publisherId: publisherId,
})
}
wx.showLoading({ title: '正在获取用户信息。。。'
});
wx.request({ url: app.serverUrl + "/user/queryByUserId?userId=" + userId + "&fanId" + userInfo.id, method: "POST", header: { 'content-type': 'application/json', // 默认值
'headerUserId': userInfo.id, 'headerUserToken': userInfo.userToken
}, success: function(res) { console.log(res.data); var status = res.data.status; if (status == 200) { var userInfo = res.data.data;
wx.hideLoading(); var faceImage = me.data.faceUrl; if (userInfo.faceImage != null && userInfo.faceImage != '' && userInfo.faceImage != undefined) {
faceImage = app.serverUrl + userInfo.faceImage;
}
me.setData({ faceImage: faceImage, fansCounts: userInfo.fansCounts, followCounts: userInfo.followCounts, receiveLikeCounts: userInfo.receiveLikeCounts, nickname: userInfo.nickname, isFollow: userInfo.follow
})
me.getMyVideoList(1)
} else if (status == 502){
wx.showToast({ title: res.data.msg, duration:3000, icon:'none', complete:function(){
wx.removeStorageSync("userInfo");
wx.navigateTo({ url: '../userLogin/userLogin',
})
}
})
}
}
})
}, uploadVideo: function(e) {
videoUtils.uploadVideo();
}, doSelectWork: function () { this.setData({ isSelectedWork: "video-info-selected", isSelectedLike: "", isSelectedFollow: "", myWorkFalg: false, myLikesFalg: true, myFollowFalg: true, myVideoList: [], myVideoPage: 1, myVideoTotal: 1, likeVideoList: [], likeVideoPage: 1, likeVideoTotal: 1, followVideoList: [], followVideoPage: 1, followVideoTotal: 1
}); this.getMyVideoList(1);
}, doSelectLike: function () { this.setData({ isSelectedWork: "", isSelectedLike: "video-info-selected", isSelectedFollow: "", myWorkFalg: true, myLikesFalg: false, myFollowFalg: true, myVideoList: [], myVideoPage: 1, myVideoTotal: 1, likeVideoList: [], likeVideoPage: 1, likeVideoTotal: 1, followVideoList: [], followVideoPage: 1, followVideoTotal: 1
}); this.getMyLikesList(1);
}, doSelectFollow: function () { this.setData({ isSelectedWork: "", isSelectedLike: "", isSelectedFollow: "video-info-selected", myWorkFalg: true, myLikesFalg: true, myFollowFalg: false, myVideoList: [], myVideoPage: 1, myVideoTotal: 1, likeVideoList: [], likeVideoPage: 1, likeVideoTotal: 1, followVideoList: [], followVideoPage: 1, followVideoTotal: 1
}); this.getMyFollowList(1)
}, getMyVideoList: function (page) { var me = this; // 查询视频信息
wx.showLoading(); // 调用后端
var serverUrl = app.serverUrl;
wx.request({ url: serverUrl + '/video/showAll/?page=' + page + '&pageSize=6', method: "POST", data: { userId: me.data.userId
}, header: { 'content-type': 'application/json' // 默认值
}, success: function (res) { console.log(res.data); var myVideoList = res.data.data.rows;
wx.hideLoading(); var newVideoList = me.data.myVideoList;
me.setData({ myVideoPage: page, myVideoList: newVideoList.concat(myVideoList), myVideoTotal: res.data.data.total, serverUrl: app.serverUrl
});
}
})
}, getMyLikesList: function (page) { var me = this; var userId = me.data.userId; // 查询视频信息
wx.showLoading(); // 调用后端
var serverUrl = app.serverUrl;
wx.request({ url: serverUrl + '/video/showMyLike/?userId=' + userId + '&page=' + page + '&pageSize=6', method: "POST", header: { 'content-type': 'application/json' // 默认值
}, success: function (res) { console.log(res.data); var likeVideoList = res.data.data.rows;
wx.hideLoading(); var newVideoList = me.data.likeVideoList;
me.setData({ likeVideoPage: page, likeVideoList: newVideoList.concat(likeVideoList), likeVideoTotal: res.data.data.total, serverUrl: app.serverUrl
});
}
})
}, getMyFollowList: function (page) { var me = this; var userId = me.data.userId; // 查询视频信息
wx.showLoading(); // 调用后端
var serverUrl = app.serverUrl;
wx.request({ url: serverUrl + '/video/showMyFollow/?userId=' + userId + '&page=' + page + '&pageSize=6', method: "POST", header: { 'content-type': 'application/json' // 默认值
}, success: function (res) { console.log(res.data); var followVideoList = res.data.data.rows;
wx.hideLoading(); var newVideoList = me.data.followVideoList;
me.setData({ followVideoPage: page, followVideoList: newVideoList.concat(followVideoList), followVideoTotal: res.data.data.total, serverUrl: app.serverUrl
});
}
})
}, // 点击跳转到视频详情页面
showVideo: function (e) { console.log(e); var myWorkFalg = this.data.myWorkFalg; var myLikesFalg = this.data.myLikesFalg; var myFollowFalg = this.data.myFollowFalg; if (!myWorkFalg) { var videoList = this.data.myVideoList;
} else if (!myLikesFalg) { var videoList = this.data.likeVideoList;
} else if (!myFollowFalg) { var videoList = this.data.followVideoList;
} var arrindex = e.target.dataset.arrindex; var videoInfo = JSON.stringify(videoList[arrindex]);
wx.redirectTo({ url: '../videoinfo/videoinfo?videoInfo=' + videoInfo
})
}, // 到底部后触发加载
onReachBottom: function () { var myWorkFalg = this.data.myWorkFalg; var myLikesFalg = this.data.myLikesFalg; var myFollowFalg = this.data.myFollowFalg; if (!myWorkFalg) { var currentPage = this.data.myVideoPage; var totalPage = this.data.myVideoTotal; // 获取总页数进行判断,如果当前页数和总页数相等,则不分页
if (currentPage === totalPage) {
wx.showToast({ title: '已经没有视频啦...', icon: "none"
}); return;
} var page = currentPage + 1; this.getMyVideoList(page);
} else if (!myLikesFalg) { var currentPage = this.data.likeVideoPage; var totalPage = this.data.myLikesTotal; // 获取总页数进行判断,如果当前页数和总页数相等,则不分页
if (currentPage === totalPage) {
wx.showToast({ title: '已经没有视频啦...', icon: "none"
}); return;
} var page = currentPage + 1; this.getMyLikesList(page);
} else if (!myFollowFalg) { var currentPage = this.data.followVideoPage; var totalPage = this.data.followVideoTotal; // 获取总页数进行判断,如果当前页数和总页数相等,则不分页
if (currentPage === totalPage) {
wx.showToast({ title: '已经没有视频啦...', icon: "none"
}); return;
} var page = currentPage + 1; this.getMyFollowList(page);
}
}
})mine.wxml
<view>
<view class='container'>
<image class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="{{faceImage}}" class="face" bindtap='uploadFace'></image>
<label class='nickname'>{{nickname}}</label>
<block wx:if='{{isMe}}'>
<button size='mini' class='primary' bindtap='uploadVideo'> 上传作品</button>
<button size='mini' type='' class='logout' bindtap='logout'>注销</button>
</block>
<block wx:if='{{!isMe}}'>
<block wx:if='{{isFollow}}'>
<button size='mini' type='' class='follow' data-followType='0' bindtap='followMe'>已关注</button>
</block>
<block wx:if='{{!isFollow}}'>
<button size='mini' type='primary' class='follow' data-followType='1' bindtap='followMe'>关注我</button>
</block>
</block>
<view class='container-row'>
<label class='info-items'>{{fansCounts}} 粉丝</label>
<label class='info-items'>{{followCounts}} 关注</label>
<label class='info-items'>{{receiveLikeCounts}} 获赞</label>
</view>
</view></view><view class="line"></view><view class='container-video'>
<!-- 发布过的作品 -->
<view class='{{videoSelClass}} {{isSelectedWork}}' bindtap='doSelectWork'>作品</view>
<!-- 收藏的点赞的视频 -->
<view class='{{videoSelClass}} {{isSelectedLike}}' bindtap='doSelectLike'>收藏</view>
<!-- 用户关注过人发表的视频 -->
<view class='{{videoSelClass}} {{isSelectedFollow}}' bindtap='doSelectFollow'>关注</view></view><view class='container-video-list'>
<view hidden='{{myWorkFalg}}'>
<block wx:for="{{myVideoList}}">
<image src='{{serverUrl}}{{item.coverPath}}' class='videoImage' mode="aspectFill" bindtap='showVideo' data-arrindex='{{index}}'></image>
</block>
</view>
<view hidden='{{myLikesFalg}}'>
<block wx:for="{{likeVideoList}}">
<image src='{{serverUrl}}{{item.coverPath}}' class='videoImage' mode="aspectFill" bindtap='showVideo' data-arrindex='{{index}}'></image>
</block>
</view>
<view hidden='{{myFollowFalg}}'>
<block wx:for="{{followVideoList}}">
<image src='{{serverUrl}}{{item.coverPath}}' class='videoImage' mode="aspectFill" bindtap='showVideo' data-arrindex='{{index}}'></image>
</block>
</view></view>PS:基本操作,获取作品列表,关注列表,收藏列表
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
