shikeying
2022-10-28 e75364c0d66fff66432bce505c136d51034ba408
添加视频推荐api
2个文件已添加
3个文件已修改
232 ■■■■■ 已修改文件
deploy-jar-template/src/main/resources/application-dev.yml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
deploy-jar-template/src/main/resources/sftp.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
recommend-video/src/main/java/com/iplatform/recvideo/ResponseValue.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
recommend-video/src/main/java/com/iplatform/recvideo/api/ShowResultApi.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
recommend-video/src/main/java/com/iplatform/recvideo/service/VideoShowServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
deploy-jar-template/src/main/resources/application-dev.yml
@@ -75,7 +75,7 @@
  # 调度器模块,是否启用
  scheduler:
    enabled: true
    enabled: false
  # 数据采集模块
  gather:
@@ -102,7 +102,8 @@
    test-mode: false
    #业务视频所在数据库信息
    business-datasource-url: 116.198.40.76
#    business-datasource-url: 116.198.40.76
    business-datasource-url: 127.0.0.1
    business-datasource-port: 3306
    business-datasource-service: train_zs
    business-datasource-authentication: root
deploy-jar-template/src/main/resources/sftp.properties
@@ -1,4 +1,4 @@
sftp.host=124.70.39.177
sftp.host=116.198.40.76
sftp.port=22
sftp.user=mysftp
sftp.pass=Bjjmy_2020
recommend-video/src/main/java/com/iplatform/recvideo/ResponseValue.java
New file
@@ -0,0 +1,150 @@
package com.iplatform.recvideo;
import java.io.Serializable;
import java.util.List;
/**
 * 描述:响应web请求对象定义。
 * @author 时克英
 * @date 2020年6月30日 上午10:42:18
 */
public class ResponseValue<T> implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = -3530568444640938940L;
    public static final int CODE_SUCCESS = 1;
    public static final int CODE_ERROR = 0;
    public static final int CODE_RELOGIN = 10;
    public static final String TEXT_SUCCESS = "success";
    public static final String TEXT_ERROR = "failed";
    public static final String TEXT_RELOGIN = "超时,请重新登录";
    private boolean state = false;
    private int code = CODE_ERROR;
    private String msg;
    private T data = null;
    // 为适配若依前端增加属性,2022-10-10
    private long total = 0;
//    private List<T> datas = null;
//    public List<T> getDatas() {
//        return datas;
//    }
//    public void setDatas(List<T> datas) {
//        this.datas = datas;
//    }
    private ResponseValue(){}
    public boolean isState() {
        if(code == CODE_SUCCESS){
            return true;
        }
        return state;
    }
    public void setState(boolean state) {
        this.state = state;
    }
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {
        return this.msg;
    }
    public void setMsg(String text) {
        this.msg = text;
    }
    public T getData() {
        return data;
    }
    public void setData(T data) {
        if(data == null){
            return;
        }
        if(data instanceof List){
            List<?> list = (List<?>)data;
            this.total = list.size();
        }
        this.data = data;
    }
    public long getTotal() {
        return total;
    }
    public void setTotal(long total) {
        this.total = total;
    }
    public static <T> ResponseValue<T> success(T data){
        return success(TEXT_SUCCESS, data);
    }
    public static <T> ResponseValue<T> success(String text, T data){
        ResponseValue<T> rv = new ResponseValue<T>();
        rv.setState(true);
        rv.setCode(CODE_SUCCESS);
        rv.setMsg(text);
        rv.setData(data);
        return rv;
    }
    public static ResponseValue<List<?>> success(String text, List<?> data){
        ResponseValue<List<?>> rv = new ResponseValue<List<?>>();
        rv.setState(true);
        rv.setCode(CODE_SUCCESS);
        rv.setMsg(text);
        rv.setData(data);
        return rv;
    }
    public static ResponseValue<String> success(String text){
        ResponseValue<String> rv = new ResponseValue<String>();
        rv.setState(true);
        rv.setCode(CODE_SUCCESS);
        rv.setMsg(text);
        return rv;
    }
    public static ResponseValue<String> success(){
        return success(TEXT_SUCCESS);
    }
    public static ResponseValue<String> error(String text){
        ResponseValue<String> rv = new ResponseValue<String>();
        rv.setState(false);
        rv.setCode(CODE_ERROR);
        rv.setMsg(text);
        return rv;
    }
    public static ResponseValue<String> error(){
        return error(TEXT_ERROR);
    }
    public static ResponseValue<String> error(int code, String text){
        if(code == CODE_SUCCESS){
            throw new IllegalArgumentException("错误代码不能是 '成功代码'");
        }
        ResponseValue<String> rv = new ResponseValue<String>();
        rv.setState(false);
        rv.setCode(code);
        rv.setMsg(text);
        return rv;
    }
    public static ResponseValue<String> relogin(){
        ResponseValue<String> rv = new ResponseValue<String>();
        rv.setState(true);
        rv.setCode(CODE_RELOGIN);
        rv.setMsg(TEXT_RELOGIN);
        return rv;
    }
}
recommend-video/src/main/java/com/iplatform/recvideo/api/ShowResultApi.java
New file
@@ -0,0 +1,61 @@
package com.iplatform.recvideo.api;
import com.iplatform.model.po.Rc_video_user;
import com.iplatform.recvideo.ResponseValue;
import com.iplatform.recvideo.service.VideoShowServiceImpl;
import com.walker.infrastructure.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/api/video")
public class ShowResultApi {
    private VideoShowServiceImpl videoShowService;
    @Autowired
    public ShowResultApi(VideoShowServiceImpl videoShowService){
        this.videoShowService = videoShowService;
    }
    @RequestMapping("/rec_list")
    @ResponseBody
    public ResponseValue showUserRecommendList(String userId){
        if(StringUtils.isEmpty(userId)){
            return ResponseValue.error("参数错误");
        }
        long userIdValue = Long.parseLong(userId);
        List<Rc_video_user> data = this.videoShowService.queryRecommendList(userIdValue, 128);
        ResponseValue<List<Rc_video_user>> responseValue = ResponseValue.success(data);
        return responseValue;
    }
    @RequestMapping("/rec_list_test")
    @ResponseBody
    public ResponseValue testUserRecommendList(String userId){
        if(StringUtils.isEmpty(userId)){
            return ResponseValue.error("参数错误");
        }
        long userIdValue = Long.parseLong(userId);
//        List<Rc_video_user> data = this.videoShowService.queryRecommendList(userIdValue, 128);
        List<Rc_video_user> data = new ArrayList<>();
        data.add(this.testAcquireVideoUser(userIdValue, "test"));
        ResponseValue<List<Rc_video_user>> responseValue = ResponseValue.success(data);
        return responseValue;
    }
    private Rc_video_user testAcquireVideoUser(long userId, String videoId){
        Rc_video_user user = new Rc_video_user();
        user.setUser_id(userId);
        user.setVideo_id(videoId);
        user.setCreate_time(20221011164126L);
        user.setScore(0.8);
        user.setId(System.nanoTime());
        return user;
    }
}
recommend-video/src/main/java/com/iplatform/recvideo/service/VideoShowServiceImpl.java
@@ -2,6 +2,7 @@
import com.iplatform.model.po.Rc_video_batch;
import com.iplatform.model.po.Rc_video_t2;
import com.iplatform.model.po.Rc_video_user;
import com.walker.db.page.GenericPager;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.stereotype.Service;
@@ -12,6 +13,19 @@
public class VideoShowServiceImpl extends BaseServiceImpl {
    /**
     * 查询给定用户推荐的视频集合
     * @param userId
     * @param limit 限制返回几条
     * @return
     */
    public List<Rc_video_user> queryRecommendList(long userId, int limit){
        if(limit <= 0){
            limit = 128;
        }
        return this.select("select video_id, score from rc_video_user where user_id=? order by score desc limit ?", new Object[]{userId, limit}, new Rc_video_user());
    }
    /**
     * 返回部分原始视频集合,用于选择相似视频使用。
     * @return
     */