Authored by mali

视频优化

  1 +package com.yoho.order.dal;
  2 +
  3 +import com.yoho.order.model.PhoneUidCamera;
  4 +
  5 +public interface PhoneUidCameraMapper {
  6 + int insert(PhoneUidCamera record);
  7 +
  8 + PhoneUidCamera selectByphoneUid(String phoneUid);
  9 +
  10 + int updateByphoneUid(PhoneUidCamera record);
  11 +}
@@ -118,4 +118,6 @@ public class BuyerOrderReq extends PageRequestBO{ @@ -118,4 +118,6 @@ public class BuyerOrderReq extends PageRequestBO{
118 private Integer sellerDeliveryStatus ; 118 private Integer sellerDeliveryStatus ;
119 119
120 private Integer currentSecondMinus24Hours; 120 private Integer currentSecondMinus24Hours;
  121 +
  122 + private String phoneUid;
121 } 123 }
  1 +package com.yoho.order.model;
  2 +
  3 +import lombok.Data;
  4 +
  5 +/**
  6 + * 手机唯一标识与摄像头编号的关系
  7 + */
  8 +@Data
  9 +public class PhoneUidCamera {
  10 + private Integer id;
  11 +
  12 + private Integer cameraCode;
  13 +
  14 + private String phoneUid;
  15 +}
@@ -43,6 +43,16 @@ public class QiniuLiveRecord { @@ -43,6 +43,16 @@ public class QiniuLiveRecord {
43 43
44 private String vedioUrl; // 新方式生成的视频文件链接 44 private String vedioUrl; // 新方式生成的视频文件链接
45 45
  46 + private String phoneUid; // 手机唯一标识
  47 +
  48 + public String getPhoneUid() {
  49 + return phoneUid;
  50 + }
  51 +
  52 + public void setPhoneUid(String phoneUid) {
  53 + this.phoneUid = phoneUid;
  54 + }
  55 +
46 public String getVedioUrl() { 56 public String getVedioUrl() {
47 return vedioUrl; 57 return vedioUrl;
48 } 58 }
@@ -243,6 +253,16 @@ public class QiniuLiveRecord { @@ -243,6 +253,16 @@ public class QiniuLiveRecord {
243 253
244 private Integer cameraCode; 254 private Integer cameraCode;
245 255
  256 + private String phoneUid; // 手机唯一标识
  257 +
  258 + public String getPhoneUid() {
  259 + return phoneUid;
  260 + }
  261 +
  262 + public void setPhoneUid(String phoneUid) {
  263 + this.phoneUid = phoneUid;
  264 + }
  265 +
246 public Integer getCameraCode() { 266 public Integer getCameraCode() {
247 return cameraCode; 267 return cameraCode;
248 } 268 }
@@ -435,6 +455,7 @@ public class QiniuLiveRecord { @@ -435,6 +455,7 @@ public class QiniuLiveRecord {
435 record.setShowFlag(this.getShowFlag()); 455 record.setShowFlag(this.getShowFlag());
436 record.setVedioFileUrl(this.getVedioFileUrl()); 456 record.setVedioFileUrl(this.getVedioFileUrl());
437 record.setUpdateTime(this.getUpdateTime()); 457 record.setUpdateTime(this.getUpdateTime());
  458 + record.setPhoneUid(this.getPhoneUid());
438 return record; 459 return record;
439 } 460 }
440 461
  1 +<?xml version="1.0" encoding="UTF-8" ?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3 +<mapper namespace="com.yoho.order.dal.PhoneUidCameraMapper" >
  4 + <resultMap id="BaseResultMap" type="com.yoho.order.model.PhoneUidCamera" >
  5 + <id column="id" property="id" jdbcType="INTEGER" />
  6 + <result column="camera_code" property="cameraCode" jdbcType="INTEGER" />
  7 + <result column="phone_uid" property="phoneUid" jdbcType="VARCHAR" />
  8 + </resultMap>
  9 + <sql id="Base_Column_List" >
  10 + id, camera_code, phone_uid
  11 + </sql>
  12 + <select id="selectByphoneUid" resultMap="BaseResultMap" parameterType="java.lang.String" >
  13 + select <include refid="Base_Column_List" /> from phone_uid_camera
  14 + where phone_uid = #{phoneUid,jdbcType=VARCHAR}
  15 + </select>
  16 +
  17 + <insert id="insert" parameterType="com.yohoufo.dal.order.model.PhoneUidCamera" >
  18 + insert into phone_uid_camera (camera_code, phone_uid) values (#{cameraCode,jdbcType=INTEGER}, #{phoneUid,jdbcType=VARCHAR})
  19 + </insert>
  20 +
  21 + <update id="updateByphoneUid" parameterType="com.yohoufo.dal.order.model.PhoneUidCamera" >
  22 + update phone_uid_camera set camera_code = #{cameraCode,jdbcType=INTEGER}
  23 + where phone_uid = #{phoneUid,jdbcType=VARCHAR}
  24 + </update>
  25 +</mapper>
@@ -4,8 +4,10 @@ import com.yoho.order.model.BuyerOrderReq; @@ -4,8 +4,10 @@ import com.yoho.order.model.BuyerOrderReq;
4 import com.yoho.order.model.QiniuLiveRecord; 4 import com.yoho.order.model.QiniuLiveRecord;
5 import com.yoho.ufo.exception.PlatformException; 5 import com.yoho.ufo.exception.PlatformException;
6 import com.yoho.ufo.order.service.impl.AsynVideoLiveService; 6 import com.yoho.ufo.order.service.impl.AsynVideoLiveService;
  7 +import com.yoho.ufo.order.service.impl.PhoneUidCameraService;
7 import com.yoho.ufo.order.service.impl.UfoLiveService; 8 import com.yoho.ufo.order.service.impl.UfoLiveService;
8 import com.yoho.ufo.service.model.ApiResponse; 9 import com.yoho.ufo.service.model.ApiResponse;
  10 +import com.yohobuy.ufo.model.order.bo.PhoneUidCameraBo;
9 import com.yohobuy.ufo.model.order.req.QNliveReq; 11 import com.yohobuy.ufo.model.order.req.QNliveReq;
10 import com.yohobuy.ufo.model.order.resp.CameraRecordResp; 12 import com.yohobuy.ufo.model.order.resp.CameraRecordResp;
11 import org.apache.commons.lang3.StringUtils; 13 import org.apache.commons.lang3.StringUtils;
@@ -31,6 +33,9 @@ public class UfoLiveController { @@ -31,6 +33,9 @@ public class UfoLiveController {
31 @Autowired 33 @Autowired
32 private AsynVideoLiveService asynVideoLiveService; 34 private AsynVideoLiveService asynVideoLiveService;
33 35
  36 + @Autowired
  37 + private PhoneUidCameraService phoneUidCameraService;
  38 +
34 @RequestMapping(value = "/generateMp4Vedio") 39 @RequestMapping(value = "/generateMp4Vedio")
35 public ApiResponse generateMp4Vedio(BuyerOrderReq req) { 40 public ApiResponse generateMp4Vedio(BuyerOrderReq req) {
36 LOGGER.info("generateMp4Vedio in. req is {}", req); 41 LOGGER.info("generateMp4Vedio in. req is {}", req);
@@ -158,4 +163,33 @@ public class UfoLiveController { @@ -158,4 +163,33 @@ public class UfoLiveController {
158 List<QiniuLiveRecord> result = ufoLiveService.queryVideoInfo(req.getStartTime(), req.getEndTime()); 163 List<QiniuLiveRecord> result = ufoLiveService.queryVideoInfo(req.getStartTime(), req.getEndTime());
159 return new ApiResponse.ApiResponseBuilder().code(200).data(result).build(); 164 return new ApiResponse.ApiResponseBuilder().code(200).data(result).build();
160 } 165 }
  166 +
  167 + /**
  168 + * 当前手机标识的摄像头
  169 + * @return
  170 + */
  171 + @RequestMapping(value = "/queryPhoneCurrentCamera")
  172 + public ApiResponse queryPhoneCurrentCamera(PhoneUidCameraBo phoneUidCameraBo) {
  173 + LOGGER.info("queryPhoneCurrentCamera in. ");
  174 + PhoneUidCameraBo reslut = phoneUidCameraService.selectByphoneUid(phoneUidCameraBo.getPhoneUid());
  175 + if(reslut == null){
  176 + return new ApiResponse.ApiResponseBuilder().code(400).data("").message("查询无摄像头信息").build();
  177 + }
  178 + return new ApiResponse.ApiResponseBuilder().code(200).data(reslut).message("查询成功").build();
  179 + }
  180 +
  181 + @RequestMapping(value = "/savePhoneCameraRecord")
  182 + public ApiResponse savePhoneCameraRecord(PhoneUidCameraBo phoneUidCameraBo) {
  183 + LOGGER.info("savePhoneCameraRecord in. phoneUidCameraBo is {}", phoneUidCameraBo);
  184 + Boolean reslut = phoneUidCameraService.insert(phoneUidCameraBo);
  185 + return new ApiResponse.ApiResponseBuilder().code(200).data(reslut).message("查询成功").build();
  186 + }
  187 +
  188 +
  189 + @RequestMapping(value = "/updatePhoneCameraRecord")
  190 + public ApiResponse updatePhoneCameraRecord(PhoneUidCameraBo phoneUidCameraBo) {
  191 + LOGGER.info("updatePhoneCameraRecord in. phoneUidCameraBo is {}", phoneUidCameraBo);
  192 + int reslut = phoneUidCameraService.updateByphoneUid(phoneUidCameraBo);
  193 + return new ApiResponse.ApiResponseBuilder().code(200).data(reslut).message("更新成功").build();
  194 + }
161 } 195 }
@@ -114,6 +114,7 @@ public class LiveEventsListener implements ApplicationListener<QiniuLiveRecordEv @@ -114,6 +114,7 @@ public class LiveEventsListener implements ApplicationListener<QiniuLiveRecordEv
114 result.setOrderCode(Long.valueOf(record.getOrderCode())); 114 result.setOrderCode(Long.valueOf(record.getOrderCode()));
115 result.setEndTime(null == record.getEndTime() ? DateUtil.getCurrentTimeSeconds() : record.getEndTime()); // 鉴定通过和不通过的时候,默认视频结束 115 result.setEndTime(null == record.getEndTime() ? DateUtil.getCurrentTimeSeconds() : record.getEndTime()); // 鉴定通过和不通过的时候,默认视频结束
116 result.setCameraCode(record.getCameraCode()); 116 result.setCameraCode(record.getCameraCode());
  117 + result.setPhoneUid(record.getPhoneUid());
117 return result; 118 return result;
118 } 119 }
119 } 120 }
  1 +package com.yoho.ufo.order.service.impl;
  2 +
  3 +import com.yoho.error.exception.ServiceException;
  4 +import com.yoho.order.dal.PhoneUidCameraMapper;
  5 +import com.yoho.order.model.PhoneUidCamera;
  6 +import com.yoho.ufo.exception.PlatformException;
  7 +import com.yohobuy.ufo.model.order.bo.PhoneUidCameraBo;
  8 +import org.apache.commons.beanutils.BeanUtils;
  9 +import org.apache.commons.lang3.StringUtils;
  10 +import org.slf4j.Logger;
  11 +import org.slf4j.LoggerFactory;
  12 +import org.springframework.beans.factory.annotation.Autowired;
  13 +import org.springframework.stereotype.Service;
  14 +import java.lang.reflect.InvocationTargetException;
  15 +
  16 +/**
  17 + * Created by li.ma on 2019/4/29.
  18 + */
  19 +@Service
  20 +public class PhoneUidCameraService {
  21 + private static final Logger LOGGER = LoggerFactory.getLogger(PhoneUidCameraService.class);
  22 +
  23 + @Autowired
  24 + private PhoneUidCameraMapper phoneUidCameraMapper;
  25 +
  26 + public boolean insert(PhoneUidCameraBo record) {
  27 + if (StringUtils.isEmpty(record.getPhoneUid()) || null == record.getCameraCode()) {
  28 + return false;
  29 + }
  30 +
  31 + PhoneUidCamera phoneUidCamera = new PhoneUidCamera();
  32 + try {
  33 + BeanUtils.copyProperties(phoneUidCamera, record);
  34 + } catch (Exception e) {
  35 + LOGGER.error("insert method copyProperties find wrong params is " + record, e);
  36 + throw new ServiceException(500, "更新失败");
  37 + }
  38 + return phoneUidCameraMapper.insert(phoneUidCamera) > 0 ? true : false;
  39 + }
  40 +
  41 + public PhoneUidCameraBo selectByphoneUid(String phoneUid) {
  42 + if (StringUtils.isEmpty(phoneUid)) {
  43 + return null;
  44 + }
  45 +
  46 + PhoneUidCamera phoneUidCamera = phoneUidCameraMapper.selectByphoneUid(phoneUid);
  47 +
  48 + if (null == phoneUidCamera) {
  49 + return null;
  50 + }
  51 +
  52 + PhoneUidCameraBo bo = new PhoneUidCameraBo();
  53 + bo.setCameraCode(phoneUidCamera.getCameraCode());
  54 + bo.setPhoneUid(phoneUidCamera.getPhoneUid());
  55 + return bo;
  56 + }
  57 +
  58 + public int updateByphoneUid(PhoneUidCameraBo record) {
  59 + if (StringUtils.isEmpty(record.getPhoneUid()) || null == record.getCameraCode()) {
  60 + return 0;
  61 + }
  62 +
  63 + PhoneUidCamera phoneUidCamera = new PhoneUidCamera();
  64 + try {
  65 + BeanUtils.copyProperties(phoneUidCamera, record);
  66 + } catch (Exception e) {
  67 + LOGGER.error("updateByphoneUid method copyProperties find wrong params is " + record, e);
  68 + throw new ServiceException(500, "更新失败");
  69 + }
  70 +
  71 + return phoneUidCameraMapper.updateByphoneUid(phoneUidCamera);
  72 + }
  73 +}
@@ -28,6 +28,7 @@ import com.yoho.ufo.service.impl.QNLiveUtilService; @@ -28,6 +28,7 @@ import com.yoho.ufo.service.impl.QNLiveUtilService;
28 import com.yoho.ufo.service.impl.UserHelper; 28 import com.yoho.ufo.service.impl.UserHelper;
29 import com.yoho.ufo.util.DateUtil; 29 import com.yoho.ufo.util.DateUtil;
30 import com.yoho.ufo.util.OrderVideoUrlUtil; 30 import com.yoho.ufo.util.OrderVideoUrlUtil;
  31 +import com.yohobuy.ufo.model.order.bo.PhoneUidCameraBo;
31 import com.yohobuy.ufo.model.order.constants.QNliveConstants; 32 import com.yohobuy.ufo.model.order.constants.QNliveConstants;
32 import com.yohobuy.ufo.model.order.req.QNliveReq; 33 import com.yohobuy.ufo.model.order.req.QNliveReq;
33 34
@@ -79,6 +80,9 @@ public class UfoLiveService { @@ -79,6 +80,9 @@ public class UfoLiveService {
79 @Autowired 80 @Autowired
80 private OrderConfigConstant orderConfigConstant; 81 private OrderConfigConstant orderConfigConstant;
81 82
  83 + @Autowired
  84 + private PhoneUidCameraService phoneUidCameraService;
  85 +
82 @Database(ForceMaster = true) 86 @Database(ForceMaster = true)
83 public void generateMp4(QiniuLiveRecord req) throws PlatformException { 87 public void generateMp4(QiniuLiveRecord req) throws PlatformException {
84 LOGGER.info("method UfoLiveService.generateMp4 in, QNliveReq is {}", req); 88 LOGGER.info("method UfoLiveService.generateMp4 in, QNliveReq is {}", req);
@@ -206,6 +210,13 @@ public class UfoLiveService { @@ -206,6 +210,13 @@ public class UfoLiveService {
206 // 查询当前登录用户默认的摄像头设备 210 // 查询当前登录用户默认的摄像头设备
207 public Integer queryInitCameraCode(QiniuLiveRecord req) { 211 public Integer queryInitCameraCode(QiniuLiveRecord req) {
208 // UserCameraRecord userCameraRecord = userCameraRecordMapper.selectUserCameraRecord(new UserHelper().getUserId()); 212 // UserCameraRecord userCameraRecord = userCameraRecordMapper.selectUserCameraRecord(new UserHelper().getUserId());
  213 + Optional<Integer> phoneCamera = Optional.ofNullable(req.getPhoneUid()).map(phoneUidCameraService::selectByphoneUid).map(PhoneUidCameraBo::getCameraCode);
  214 +
  215 + if (phoneCamera.isPresent()) { // 优先获取手机唯一标识对应的摄像头编号
  216 + return phoneCamera.get();
  217 + }
  218 +
  219 + LOGGER.info("method queryInitCameraCode from getRedisKey, req is {}", req);
209 220
210 String cameraCode = yhValueOperations.get(getRedisKey(req.getPid())); 221 String cameraCode = yhValueOperations.get(getRedisKey(req.getPid()));
211 222
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
22 <value>logout.do</value> 22 <value>logout.do</value>
23 <value>updateVideoUrl</value> 23 <value>updateVideoUrl</value>
24 <value>queryVideoInfo</value> 24 <value>queryVideoInfo</value>
  25 + <value>queryStoredSellerEx</value>
25 </list> 26 </list>
26 </property> 27 </property>
27 </bean> 28 </bean>
@@ -50,6 +50,7 @@ datasources: @@ -50,6 +50,7 @@ datasources:
50 - com.yoho.order.dal.LiveRecordTimeMapper 50 - com.yoho.order.dal.LiveRecordTimeMapper
51 - com.yoho.order.dal.SignForPackageMapper 51 - com.yoho.order.dal.SignForPackageMapper
52 - com.yoho.order.dal.OrderConfigMapper 52 - com.yoho.order.dal.OrderConfigMapper
  53 + - com.yoho.order.dal.PhoneUidCameraMapper
53 54
54 ufo_resource: 55 ufo_resource:
55 servers: 56 servers:
@@ -50,6 +50,7 @@ datasources: @@ -50,6 +50,7 @@ datasources:
50 - com.yoho.order.dal.LiveRecordTimeMapper 50 - com.yoho.order.dal.LiveRecordTimeMapper
51 - com.yoho.order.dal.SignForPackageMapper 51 - com.yoho.order.dal.SignForPackageMapper
52 - com.yoho.order.dal.OrderConfigMapper 52 - com.yoho.order.dal.OrderConfigMapper
  53 + - com.yoho.order.dal.PhoneUidCameraMapper
53 54
54 ufo_resource: 55 ufo_resource:
55 servers: 56 servers: