我的信息頁面有一個tab(做品,收藏,關注)源碼:https://github.com/limingios/wxProgram.git 中No.15和springbootjava
VideoController.javaios
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.javagit
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.javagithub
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.javaweb
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.xmlspring
<?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.wxmlapache
<view> <view class='container'> <image src="{{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:基本操做,獲取做品列表,關注列表,收藏列表json