Merge branch 'master' of http://47.115.223.229:8888/yangjun/hldy_yunwei_java
This commit is contained in:
commit
2927e92e02
|
@ -0,0 +1,136 @@
|
|||
package com.nu.modules.nuBaseInfo.utils;
|
||||
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
import com.google.zxing.EncodeHintType;
|
||||
import com.google.zxing.common.BitMatrix;
|
||||
import com.google.zxing.qrcode.QRCodeWriter;
|
||||
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.*;
|
||||
import java.awt.geom.Ellipse2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 生成带logo的二维码工具类
|
||||
*/
|
||||
public class QRCodeUtil {
|
||||
|
||||
/**
|
||||
* 工具类入口
|
||||
* @param content 二维码内容,如带参数的网址
|
||||
* @param size 二维码图像尺寸,数值越大尺寸越大
|
||||
* @param margin 二维码边距
|
||||
* @param logoPath Logo文件路径
|
||||
* @param outputPath 输出文件路径
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void generateQRCodeWithLogo(String content, int size, int margin,
|
||||
String logoPath, String outputPath) throws Exception {
|
||||
// 1. 生成基础二维码
|
||||
Map<EncodeHintType, Object> hints = new EnumMap<>(EncodeHintType.class);
|
||||
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 高容错
|
||||
hints.put(EncodeHintType.MARGIN, margin);
|
||||
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
|
||||
|
||||
QRCodeWriter qrCodeWriter = new QRCodeWriter();
|
||||
BitMatrix bitMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, size, size, hints);
|
||||
|
||||
// 创建二维码图像
|
||||
BufferedImage qrImage = new BufferedImage(size, size, BufferedImage.TYPE_INT_RGB);
|
||||
Graphics2D qrGraphics = qrImage.createGraphics();
|
||||
|
||||
// 填充白色背景
|
||||
qrGraphics.setColor(Color.WHITE);
|
||||
qrGraphics.fillRect(0, 0, size, size);
|
||||
|
||||
// 绘制黑色模块
|
||||
qrGraphics.setColor(Color.BLACK);
|
||||
for (int x = 0; x < size; x++) {
|
||||
for (int y = 0; y < size; y++) {
|
||||
if (bitMatrix.get(x, y)) {
|
||||
qrGraphics.fillRect(x, y, 1, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 2. 添加Logo到中心
|
||||
BufferedImage logo = null;
|
||||
try {
|
||||
logo = ImageIO.read(new File(logoPath));
|
||||
} catch (Exception e) {
|
||||
System.err.println("无法加载Logo图片: " + e.getMessage());
|
||||
// 如果无法加载Logo,则直接保存二维码
|
||||
qrGraphics.dispose();
|
||||
ImageIO.write(qrImage, "PNG", new File(outputPath));
|
||||
return;
|
||||
}
|
||||
|
||||
// 计算Logo尺寸(最大不能超过二维码宽度的25%)
|
||||
int logoSize = Math.min(size / 5, Math.min(logo.getWidth(), logo.getHeight()));
|
||||
int logoX = (size - logoSize) / 2;
|
||||
int logoY = (size - logoSize) / 2;
|
||||
|
||||
// 处理Logo为圆形(可选)
|
||||
if (!logoPath.toLowerCase().endsWith(".png")) {
|
||||
// 对于非透明格式的图片,添加白色背景
|
||||
qrGraphics.setColor(Color.WHITE);
|
||||
qrGraphics.fillRect(logoX - 3, logoY - 3, logoSize + 6, logoSize + 6);
|
||||
}
|
||||
|
||||
// 创建圆形Logo
|
||||
BufferedImage circularLogo = createCircularImage(logo, logoSize);
|
||||
|
||||
// 添加Logo到二维码
|
||||
qrGraphics.drawImage(circularLogo, logoX, logoY, null);
|
||||
|
||||
qrGraphics.dispose();
|
||||
|
||||
// 3. 保存最终图像
|
||||
ImageIO.write(qrImage, "PNG", new File(outputPath));
|
||||
}
|
||||
|
||||
// 创建圆形Logo图片
|
||||
private static BufferedImage createCircularImage(BufferedImage source, int diameter) {
|
||||
BufferedImage output = new BufferedImage(diameter, diameter, BufferedImage.TYPE_INT_ARGB);
|
||||
Graphics2D g2d = output.createGraphics();
|
||||
|
||||
// 设置圆形剪裁区域
|
||||
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
||||
Ellipse2D.Double circle = new Ellipse2D.Double(0, 0, diameter, diameter);
|
||||
g2d.setClip(circle);
|
||||
|
||||
// 缩放并绘制Logo
|
||||
Image scaledLogo = source.getScaledInstance(diameter, diameter, Image.SCALE_SMOOTH);
|
||||
g2d.drawImage(scaledLogo, 0, 0, null);
|
||||
|
||||
// 添加白色边框
|
||||
g2d.setClip(null);
|
||||
g2d.setColor(Color.WHITE);
|
||||
g2d.setStroke(new BasicStroke(3));
|
||||
g2d.drawOval(0, 0, diameter, diameter);
|
||||
|
||||
g2d.dispose();
|
||||
return output;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
// 生成带Logo的二维码
|
||||
generateQRCodeWithLogo(
|
||||
"https://www.focusnu.com/devops", // 二维码内容
|
||||
400, // 图像尺寸
|
||||
5, // 二维码边距
|
||||
"D:\\logo.png", // Logo文件路径
|
||||
"D:\\qr_with_logo.png" // 输出文件路径
|
||||
);
|
||||
System.out.println("带Logo的二维码已生成: qr_with_logo.png");
|
||||
} catch (Exception e) {
|
||||
System.err.println("二维码生成失败: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -120,6 +120,17 @@ public class CameraInfoController extends JeecgController<CameraInfo, ICameraInf
|
|||
return Result.OK("重启成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步所有监控设备
|
||||
*
|
||||
* @param cameraInfo
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/syncAllDevices")
|
||||
public Result<String> syncAllDevices(CameraInfo cameraInfo) {
|
||||
return service.syncAllDevices(cameraInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步此项目下的IPC设备
|
||||
*
|
||||
|
|
|
@ -301,6 +301,10 @@ public class CameraInfo implements Serializable {
|
|||
@ApiModelProperty(value = "球机移动速度")
|
||||
@TableField(exist = false)
|
||||
private String speed;
|
||||
@TableField(exist = false)
|
||||
private String orgCode;
|
||||
|
||||
private String ftpIp; //回放视频转FTP上传IP
|
||||
private String ftpPort; //回放视频转FTP上传端口
|
||||
private String ftpUsername; //回放视频转FTP上传用户
|
||||
private String ftpPassword; //回放视频转FTP上传密码
|
||||
private String ftpUploadpath; //回放视频转FTP上传路径
|
||||
}
|
||||
|
|
|
@ -28,7 +28,12 @@
|
|||
record_plan_id as recordPlanId,
|
||||
a.nu_id as nuId,
|
||||
b.nu_name as nuName,
|
||||
ifnull(c.multitrans,0) as multitrans
|
||||
ifnull(c.multitrans,0) as multitrans,
|
||||
a.ftp_ip as ftpIp,
|
||||
a.ftp_port as ftpPort,
|
||||
a.ftp_username as ftpUsername,
|
||||
a.ftp_password as ftpPassword,
|
||||
a.ftp_uploadpath as ftpUploadpath
|
||||
from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id
|
||||
left join nu_iot_tplink_camera_capability c on a.device_index = c.device_index
|
||||
<where>
|
||||
|
@ -61,30 +66,35 @@
|
|||
|
||||
<select id="findList" parameterType="com.nu.modules.tplink.camera.entity.CameraInfo" resultType="com.nu.modules.tplink.camera.entity.CameraInfo">
|
||||
select a.id,
|
||||
a.device_index as deviceIndex,
|
||||
device_name as deviceName,
|
||||
device_type as deviceType,
|
||||
device_status as deviceStatus,
|
||||
device_model as deviceModel,
|
||||
ip as ip,
|
||||
mac as mac,
|
||||
region_id as regionId,
|
||||
region_name as regionName,
|
||||
parent_id as parentId,
|
||||
parent_device_name as parentDeviceName,
|
||||
project_id as projectId,
|
||||
project_name as projectName,
|
||||
firmware_ver as firmwareVer,
|
||||
hardware_ver as hardwareVer,
|
||||
manager_auth_type as managerAuthType,
|
||||
msg_auth_type as msgAuthType,
|
||||
sip_code as sipCode,
|
||||
location_name as locationName,
|
||||
system_type as systemType,
|
||||
protocol as protocol,
|
||||
record_plan_id as recordPlanId,
|
||||
a.nu_id as nuId,
|
||||
b.nu_name as nuName
|
||||
a.device_index as deviceIndex,
|
||||
device_name as deviceName,
|
||||
device_type as deviceType,
|
||||
device_status as deviceStatus,
|
||||
device_model as deviceModel,
|
||||
ip as ip,
|
||||
mac as mac,
|
||||
region_id as regionId,
|
||||
region_name as regionName,
|
||||
parent_id as parentId,
|
||||
parent_device_name as parentDeviceName,
|
||||
project_id as projectId,
|
||||
project_name as projectName,
|
||||
firmware_ver as firmwareVer,
|
||||
hardware_ver as hardwareVer,
|
||||
manager_auth_type as managerAuthType,
|
||||
msg_auth_type as msgAuthType,
|
||||
sip_code as sipCode,
|
||||
location_name as locationName,
|
||||
system_type as systemType,
|
||||
protocol as protocol,
|
||||
record_plan_id as recordPlanId,
|
||||
a.nu_id as nuId,
|
||||
b.nu_name as nuName,
|
||||
a.ftp_ip as ftpIp,
|
||||
a.ftp_port as ftpPort,
|
||||
a.ftp_username as ftpUsername,
|
||||
a.ftp_password as ftpPassword,
|
||||
a.ftp_uploadpath as ftpUploadpath
|
||||
from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id
|
||||
<where>
|
||||
<if test="projectId != null and projectId != ''">
|
||||
|
@ -123,7 +133,12 @@
|
|||
system_type as systemType,
|
||||
protocol as protocol,
|
||||
record_plan_id as recordPlanId,
|
||||
nu_id as nuId
|
||||
nu_id as nuId,
|
||||
ftp_ip as ftpIp,
|
||||
ftp_port as ftpPort,
|
||||
ftp_username as ftpUsername,
|
||||
ftp_password as ftpPassword,
|
||||
ftp_uploadpath as ftpUploadpath
|
||||
from nu_iot_tplink_camera a
|
||||
</select>
|
||||
|
||||
|
@ -166,7 +181,12 @@
|
|||
system_type as systemType,
|
||||
protocol as protocol,
|
||||
a.nu_id as nuId,
|
||||
b.nu_name as nuName
|
||||
b.nu_name as nuName,
|
||||
a.ftp_ip as ftpIp,
|
||||
a.ftp_port as ftpPort,
|
||||
a.ftp_username as ftpUsername,
|
||||
a.ftp_password as ftpPassword,
|
||||
a.ftp_uploadpath as ftpUploadpath
|
||||
from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.id
|
||||
where device_index = #{deviceIndex}
|
||||
</select>
|
||||
|
|
|
@ -27,6 +27,7 @@ public interface ICameraInfoService extends IService<CameraInfo> {
|
|||
void rebootDevice(CameraInfo cameraInfo);
|
||||
void sync(String jsonResponse);
|
||||
void syncCapability(String deviceIndex,String jsonResponse);
|
||||
Result<String> syncAllDevices(CameraInfo cameraInfo);
|
||||
Result<String> syncProjectIpcDevice(CameraInfo cameraInfo);
|
||||
Result<JSONObject> getIpcCapability(CameraInfo cameraInfo);
|
||||
Result<JSONObject> getImageCommon(Map<String,Object> map);
|
||||
|
|
|
@ -10,6 +10,10 @@ import com.nu.modules.tplink.camera.entity.NuBaseInfo;
|
|||
import com.nu.modules.tplink.camera.model.CameraTreeModel;
|
||||
import com.nu.modules.tplink.common.entity.TumsConfig;
|
||||
import com.nu.modules.tplink.common.mapper.TumsConfigMapper;
|
||||
import com.nu.modules.tplink.project.entity.ProjectInfo;
|
||||
import com.nu.modules.tplink.project.mapper.ProjectInfoMapper;
|
||||
import com.nu.modules.tplink.region.entity.RegionInfo;
|
||||
import com.nu.modules.tplink.region.mapper.RegionInfoMapper;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
|
@ -46,6 +50,10 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
private IErrorCodeService errorCodeService;
|
||||
@Autowired
|
||||
private TumsConfigMapper tumsConfigMapper;
|
||||
@Autowired
|
||||
private ProjectInfoMapper projectMapper;
|
||||
@Autowired
|
||||
private RegionInfoMapper regionMapper;
|
||||
|
||||
/**
|
||||
* 获取摄像头信息-分页
|
||||
|
@ -225,6 +233,57 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步所有监控设备
|
||||
*
|
||||
* @param cameraInfo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Result<String> syncAllDevices(CameraInfo cameraInfo){
|
||||
String errMsg = "";
|
||||
ProjectInfo pi = new ProjectInfo();
|
||||
pi.setStatus(1);//正常状态
|
||||
List<ProjectInfo> projectList = projectMapper.findList(pi);
|
||||
if(projectList!=null&&projectList.size()>0){
|
||||
for(int i=0;i< projectList.size();i++){
|
||||
ProjectInfo projectInfo = projectList.get(i);
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"start\"").append(":0").append(",");
|
||||
sb.append("\"limit\"").append(":1000").append(",");
|
||||
sb.append("\"filterAnd\"").append(":").append("{");
|
||||
sb.append("\"deviceTypeList\"").append(":[").append("\"SURVEILLANCECAMERA\"").append("],");
|
||||
sb.append("\"projectId\"").append(":").append("\"").append(projectInfo.getProjectId()).append("\"");
|
||||
sb.append("},");
|
||||
sb.append("\"sort\"").append(":").append("[{");
|
||||
sb.append("\"key\"").append(":").append("\"deviceIndex\"").append(",");
|
||||
sb.append("\"value\"").append(":").append("\"asc\"");
|
||||
sb.append("}]");
|
||||
sb.append("}");
|
||||
String jsonResponse = tumsApi.getDeviceList(sb.toString());
|
||||
JSONObject jsonObject = new JSONObject(jsonResponse);
|
||||
String errorCode = jsonObject.getStr("error_code");
|
||||
if(errorCode.equals("0")){
|
||||
syncProjectIpc(jsonResponse);
|
||||
}else{
|
||||
try{
|
||||
ErrorCode errVo = errorCodeService.getByCode(errorCode);
|
||||
errMsg += errVo.getErrorMsg();
|
||||
}catch (Exception e){
|
||||
errMsg += errorCode;
|
||||
}
|
||||
log.info("getImageCommon:{}",errMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(errMsg.equals("")){
|
||||
return Result.OK("同步设备成功!");
|
||||
}else{
|
||||
return Result.error(errMsg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步此项目下的IPC设备
|
||||
*
|
||||
|
@ -1033,10 +1092,26 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
*/
|
||||
@Override
|
||||
public Result getStorageDevice(CameraInfo cameraInfo) throws Exception{
|
||||
String projectId = "";
|
||||
String regionId = "";
|
||||
if(cameraInfo.getProjectId()==null||cameraInfo.getProjectId().equals("")){
|
||||
ProjectInfo pi = new ProjectInfo();
|
||||
pi.setStatus(1);//正常状态
|
||||
List<ProjectInfo> projectList = projectMapper.findList(pi);
|
||||
ProjectInfo projectInfo = projectList.get(0);
|
||||
projectId = projectInfo.getProjectId();
|
||||
}
|
||||
if(cameraInfo.getRegionId()==null||cameraInfo.getRegionId().equals("")){
|
||||
RegionInfo ri = new RegionInfo();
|
||||
ri.setProjectId(projectId);
|
||||
List<RegionInfo> regionList = regionMapper.findList(ri);
|
||||
RegionInfo regionInfo = regionList.get(0);
|
||||
regionId = regionInfo.getRegionId();
|
||||
}
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"projectId\"").append(":").append("\"").append(cameraInfo.getProjectId()).append("\",");
|
||||
sb.append("\"regionId\"").append(":").append("\"").append(cameraInfo.getRegionId()).append("\"");
|
||||
sb.append("\"projectId\"").append(":").append("\"").append(projectId).append("\",");
|
||||
sb.append("\"regionId\"").append(":").append("\"").append(regionId).append("\"");
|
||||
sb.append("}");
|
||||
String res = tumsApi.getStorageDevice(sb.toString());
|
||||
JSONObject jsonObject = new JSONObject(res);
|
||||
|
@ -1242,19 +1317,29 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
IPage<CameraInfo> page = new Page<>();
|
||||
page.setSize(pageSize);
|
||||
page.setCurrent(pageNo);
|
||||
String projectId = "";
|
||||
String regionId = "";
|
||||
if(cameraInfo.getProjectId()==null||cameraInfo.getProjectId().equals("")){
|
||||
return page;
|
||||
ProjectInfo pi = new ProjectInfo();
|
||||
pi.setStatus(1);//正常状态
|
||||
List<ProjectInfo> projectList = projectMapper.findList(pi);
|
||||
ProjectInfo projectInfo = projectList.get(0);
|
||||
projectId = projectInfo.getProjectId();
|
||||
}
|
||||
if(cameraInfo.getRegionId()==null||cameraInfo.getRegionId().equals("")){
|
||||
return page;
|
||||
RegionInfo ri = new RegionInfo();
|
||||
ri.setProjectId(projectId);
|
||||
List<RegionInfo> regionList = regionMapper.findList(ri);
|
||||
RegionInfo regionInfo = regionList.get(0);
|
||||
regionId = regionInfo.getRegionId();
|
||||
}
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"start\"").append(":").append((pageNo-1)*pageSize).append(",");
|
||||
sb.append("\"limit\"").append(":").append(pageSize).append(",");
|
||||
sb.append("\"filterAnd\"").append(":").append("{");
|
||||
sb.append("\"projectId\"").append(":").append("\"").append(cameraInfo.getProjectId()).append("\",");
|
||||
sb.append("\"regionId\"").append(":").append("\"").append(cameraInfo.getRegionId()).append("\"");
|
||||
sb.append("\"projectId\"").append(":").append("\"").append(projectId).append("\",");
|
||||
sb.append("\"regionId\"").append(":").append("\"").append(regionId).append("\"");
|
||||
sb.append("},");
|
||||
sb.append("\"sort\"").append(":").append("[{");
|
||||
sb.append("\"key\"").append(":").append("\"ip\",");
|
||||
|
@ -2172,8 +2257,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
if(chnError.equals("0")){
|
||||
List<CameraInfo> chnList = (List)chnMap.get("data");
|
||||
if(chnList!=null&&chnList.size()>0){
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
TumsConfig tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode());
|
||||
TumsConfig tumsConfig = tumsConfigMapper.getByCode();
|
||||
for(int j=0;j<chnList.size();j++){
|
||||
CameraInfo chn = chnList.get(j);
|
||||
Map<String,Object> playbackMap = getPlaybackUrl(chn,1);
|
||||
|
@ -2353,8 +2437,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
Map<String,Object> multitransMap = getMultitransUrl(cameraInfo,1);
|
||||
String multitransError = multitransMap.get("error").toString();
|
||||
if(multitransError.equals("0")){
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
TumsConfig tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode());
|
||||
TumsConfig tumsConfig = tumsConfigMapper.getByCode();
|
||||
CameraInfo entity = (CameraInfo)multitransMap.get("data");
|
||||
entity.setQueryAddress(tumsConfig.getTumsUrl());
|
||||
return Result.OK(entity);
|
||||
|
@ -2373,8 +2456,26 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
*/
|
||||
@Override
|
||||
public Result uploadToServer(CameraInfo cameraInfo){
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
TumsConfig tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode());
|
||||
String ftpUsername = "";
|
||||
String ftpPassword = "";
|
||||
String ftpUploadpath = "";
|
||||
String ftpIp = "";
|
||||
String ftpPort = "";
|
||||
CameraInfo entity = baseMapper.getByDeviceId(cameraInfo);
|
||||
if(entity.getFtpIp()!=null&&!entity.getFtpIp().equals("")){
|
||||
ftpIp = entity.getFtpIp();
|
||||
ftpPort = entity.getFtpPort();
|
||||
ftpUsername = entity.getFtpUsername();
|
||||
ftpPassword = entity.getFtpPassword();
|
||||
ftpUploadpath = entity.getFtpUploadpath();
|
||||
}else{
|
||||
TumsConfig tumsConfig = tumsConfigMapper.getByCode();
|
||||
ftpIp = tumsConfig.getFtpIp();
|
||||
ftpPort = tumsConfig.getFtpPort();
|
||||
ftpUsername = tumsConfig.getFtpUsername();
|
||||
ftpPassword = tumsConfig.getFtpPassword();
|
||||
ftpUploadpath = tumsConfig.getFtpUploadpath();
|
||||
}
|
||||
String deviceIndex = cameraInfo.getDeviceIndex();
|
||||
String parentId = cameraInfo.getParentId();
|
||||
String fileName = cameraInfo.getFileName();
|
||||
|
@ -2397,11 +2498,11 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
sb.append("\"startTime\"").append(":").append(cameraInfo.getStartTime()).append(",");
|
||||
sb.append("\"endTime\"").append(":").append(cameraInfo.getEndTime()).append(",");
|
||||
sb.append("\"downloadInfo\"").append(":{");
|
||||
sb.append("\"username\"").append(":").append("\"").append(tumsConfig.getFtpUsername()).append("\",");
|
||||
sb.append("\"password\"").append(":").append("\"").append(tumsConfig.getFtpPassword()).append("\",");
|
||||
sb.append("\"path\"").append(":").append("\"").append(tumsConfig.getFtpUploadpath()).append("\",");
|
||||
sb.append("\"ftpIp\"").append(":").append("\"").append(tumsConfig.getFtpIp()).append("\",");
|
||||
sb.append("\"ftpPort\"").append(":").append(tumsConfig.getFtpPort());
|
||||
sb.append("\"username\"").append(":").append("\"").append(ftpUsername).append("\",");
|
||||
sb.append("\"password\"").append(":").append("\"").append(ftpPassword).append("\",");
|
||||
sb.append("\"path\"").append(":").append("\"").append(ftpUploadpath).append("\",");
|
||||
sb.append("\"ftpIp\"").append(":").append("\"").append(ftpIp).append("\",");
|
||||
sb.append("\"ftpPort\"").append(":").append(ftpPort);
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
String res = tumsApi.uploadToServer(sb.toString());
|
||||
|
|
|
@ -30,8 +30,7 @@ public class TpLinkController {
|
|||
*/
|
||||
@GetMapping(value = "/login")
|
||||
public Result<Map<String,String>> login() {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
TumsConfig tumsConfig = tumsConfigService.getByCode(sysUser.getOrgCode());
|
||||
TumsConfig tumsConfig = tumsConfigService.getByCode();
|
||||
Map<String,String> map = new HashMap<>();
|
||||
map.put("cookie","");
|
||||
map.put("serverUrl",tumsConfig.getTumsUrl());
|
||||
|
@ -52,22 +51,4 @@ public class TpLinkController {
|
|||
return Result.OK();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取图门系统用户
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/getUser")
|
||||
public Result<?> getUser(TumsConfig tumsConfig) {
|
||||
return tumsConfigService.getUser(tumsConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加和编辑图门系统用户
|
||||
* @return
|
||||
*/
|
||||
@PostMapping(value = "/saveUser")
|
||||
public Result<String> saveUser(@RequestBody TumsConfig tumsConfig) {
|
||||
return tumsConfigService.saveUser(tumsConfig);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -42,5 +42,4 @@ public class TumsConfig implements Serializable {
|
|||
private String ftpUsername; //回放视频转FTP上传用户
|
||||
private String ftpPassword; //回放视频转FTP上传密码
|
||||
private String ftpUploadpath; //回放视频转FTP上传路径
|
||||
private String orgCode; //机构编码
|
||||
}
|
||||
|
|
|
@ -15,8 +15,6 @@ import java.util.Map;
|
|||
|
||||
@Mapper
|
||||
public interface TumsConfigMapper extends BaseMapper<TumsConfig> {
|
||||
TumsConfig getByCode(String orgCode);
|
||||
TumsConfig getByCode();
|
||||
TumsConfig findProjectByCodeOrId(TumsConfig tumsConfig);
|
||||
void addUser(Map<String, String> map);
|
||||
void updateUser(Map<String, String> map);
|
||||
}
|
||||
|
|
|
@ -15,17 +15,8 @@
|
|||
ftp_port as ftpPort,
|
||||
ftp_username as ftpUsername,
|
||||
ftp_password as ftpPassword,
|
||||
ftp_uploadpath as ftpUploadpath,
|
||||
org_code as orgCode
|
||||
ftp_uploadpath as ftpUploadpath
|
||||
from nu_iot_tplink_tums_base
|
||||
<where>
|
||||
<if test="orgCode != null and orgCode != ''">
|
||||
AND org_code = #{orgCode}
|
||||
</if>
|
||||
<if test="orgCode == null or orgCode == ''">
|
||||
AND ifnull(org_code,'') = ''
|
||||
</if>
|
||||
</where>
|
||||
order by id desc
|
||||
limit 1
|
||||
</select>
|
||||
|
@ -34,131 +25,12 @@
|
|||
select p.project_id as tumsProjectId,
|
||||
p.project_name as tumsProjectName
|
||||
from nu_iot_tplink_project p
|
||||
inner join sys_depart d on p.institution_id = d.id
|
||||
<where>
|
||||
<if test="tumsProjectId != null and tumsProjectId != ''">
|
||||
AND p.project_id = #{tumsProjectId}
|
||||
</if>
|
||||
<if test="tumsProjectId == null or tumsProjectId == ''">
|
||||
AND d.org_code = #{orgCode}
|
||||
</if>
|
||||
</where>
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
<insert id="addUser">
|
||||
insert into nu_iot_tplink_tums_base(
|
||||
<if test="tumsUrl != null and tumsUrl != ''">
|
||||
tums_url,
|
||||
</if>
|
||||
<if test="tumsProjectId != null and tumsProjectId != ''">
|
||||
tums_project_id,
|
||||
</if>
|
||||
<if test="tumsUserId != null and tumsUserId != ''">
|
||||
tums_userId,
|
||||
</if>
|
||||
<if test="tumsUsername != null and tumsUsername != ''">
|
||||
tums_username,
|
||||
</if>
|
||||
<if test="tumsPassword != null and tumsPassword != ''">
|
||||
tums_password,
|
||||
</if>
|
||||
<if test="tumsRoleId != null and tumsRoleId != ''">
|
||||
tums_roleId,
|
||||
</if>
|
||||
<if test="ftpIp != null and ftpIp != ''">
|
||||
ftp_ip,
|
||||
</if>
|
||||
<if test="ftpPort != null and ftpPort != ''">
|
||||
ftp_port,
|
||||
</if>
|
||||
<if test="ftpUsername != null and ftpUsername != ''">
|
||||
ftp_username,
|
||||
</if>
|
||||
<if test="ftpPassword != null and ftpPassword != ''">
|
||||
ftp_password,
|
||||
</if>
|
||||
<if test="ftpUploadpath != null and ftpUploadpath != ''">
|
||||
ftp_uploadpath,
|
||||
</if>
|
||||
org_code
|
||||
)
|
||||
values(
|
||||
<if test="tumsUrl != null and tumsUrl != ''">
|
||||
#{tumsUrl},
|
||||
</if>
|
||||
<if test="tumsProjectId != null and tumsProjectId != ''">
|
||||
#{tumsProjectId},
|
||||
</if>
|
||||
<if test="tumsUserId != null and tumsUserId != ''">
|
||||
#{tumsUserId},
|
||||
</if>
|
||||
<if test="tumsUsername != null and tumsUsername != ''">
|
||||
#{tumsUsername},
|
||||
</if>
|
||||
<if test="tumsPassword != null and tumsPassword != ''">
|
||||
#{tumsPassword},
|
||||
</if>
|
||||
<if test="tumsRoleId != null and tumsRoleId != ''">
|
||||
#{tumsRoleId},
|
||||
</if>
|
||||
<if test="ftpIp != null and ftpIp != ''">
|
||||
#{ftpIp},
|
||||
</if>
|
||||
<if test="ftpPort != null and ftpPort != ''">
|
||||
#{ftpPort},
|
||||
</if>
|
||||
<if test="ftpUsername != null and ftpUsername != ''">
|
||||
#{ftpUsername},
|
||||
</if>
|
||||
<if test="ftpPassword != null and ftpPassword != ''">
|
||||
#{ftpPassword},
|
||||
</if>
|
||||
<if test="ftpUploadpath != null and ftpUploadpath != ''">
|
||||
#{ftpUploadpath},
|
||||
</if>
|
||||
#{orgCode}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateUser">
|
||||
update nu_iot_tplink_tums_base
|
||||
set
|
||||
<if test="tumsUrl != null and tumsUrl != ''">
|
||||
tums_url = #{tumsUrl},
|
||||
</if>
|
||||
<if test="tumsProjectId != null and tumsProjectId != ''">
|
||||
tums_project_id = #{tumsProjectId},
|
||||
</if>
|
||||
<if test="tumsUserId != null and tumsUserId != ''">
|
||||
tums_userId = #{tumsUserId},
|
||||
</if>
|
||||
<if test="tumsUsername != null and tumsUsername != ''">
|
||||
tums_username = #{tumsUsername},
|
||||
</if>
|
||||
<if test="tumsPassword != null and tumsPassword != ''">
|
||||
tums_password = #{tumsPassword},
|
||||
</if>
|
||||
<if test="tumsRoleId != null and tumsRoleId != ''">
|
||||
tums_roleId = #{tumsRoleId},
|
||||
</if>
|
||||
<if test="ftpIp != null and ftpIp != ''">
|
||||
ftp_ip = #{ftpIp},
|
||||
</if>
|
||||
<if test="ftpPort != null and ftpPort != ''">
|
||||
ftp_port = #{ftpPort},
|
||||
</if>
|
||||
<if test="ftpUsername != null and ftpUsername != ''">
|
||||
ftp_username = #{ftpUsername},
|
||||
</if>
|
||||
<if test="ftpPassword != null and ftpPassword != ''">
|
||||
ftp_password = #{ftpPassword},
|
||||
</if>
|
||||
<if test="ftpUploadpath != null and ftpUploadpath != ''">
|
||||
ftp_uploadpath = #{ftpUploadpath},
|
||||
</if>
|
||||
org_code = #{orgCode}
|
||||
where org_code = #{orgCode}
|
||||
</update>
|
||||
|
||||
</mapper>
|
|
@ -11,7 +11,5 @@ import org.jeecg.common.api.vo.Result;
|
|||
* @Version: V1.0
|
||||
*/
|
||||
public interface ITumsConfigService extends IService<TumsConfig> {
|
||||
TumsConfig getByCode(String orgCode);
|
||||
Result<?> getUser(TumsConfig tumsConfig);
|
||||
Result<String> saveUser(TumsConfig tumsConfig);
|
||||
TumsConfig getByCode();
|
||||
}
|
||||
|
|
|
@ -22,157 +22,9 @@ import java.util.Map;
|
|||
@Service
|
||||
public class TumsConfigServiceImpl extends ServiceImpl<TumsConfigMapper, TumsConfig> implements ITumsConfigService {
|
||||
|
||||
@Autowired
|
||||
private TumsApi tumsApi;
|
||||
|
||||
@Override
|
||||
public TumsConfig getByCode(String orgCode){
|
||||
return baseMapper.getByCode(orgCode);
|
||||
public TumsConfig getByCode(){
|
||||
return baseMapper.getByCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<?> getUser(TumsConfig tumsConfig){
|
||||
TumsConfig entity = baseMapper.getByCode(tumsConfig.getOrgCode());
|
||||
if(entity == null){
|
||||
entity = new TumsConfig();
|
||||
entity.setOrgCode(tumsConfig.getOrgCode());
|
||||
}
|
||||
TumsConfig project = baseMapper.findProjectByCodeOrId(entity);
|
||||
if(project!=null){
|
||||
entity.setTumsProjectId(project.getTumsProjectId());
|
||||
entity.setTumsProjectName(project.getTumsProjectName());
|
||||
}
|
||||
return Result.OK(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<String> saveUser(TumsConfig tumsConfig){
|
||||
TumsConfig entity = baseMapper.getByCode(tumsConfig.getOrgCode());
|
||||
if(entity!=null){
|
||||
String errorMsg = "";
|
||||
Map<String, String> map = new HashMap<>();
|
||||
if(!entity.getTumsPassword().equals(tumsConfig.getTumsPassword())){
|
||||
//调用修改密码接口
|
||||
StringBuffer sbp = new StringBuffer();
|
||||
sbp.append("{");
|
||||
sbp.append("\"userId\"").append(":").append("\"").append(tumsConfig.getTumsUserId()).append("\",");
|
||||
sbp.append("\"oldPassword\"").append(":").append("\"").append(entity.getTumsPassword()).append("\",");
|
||||
sbp.append("\"newPassword\"").append(":").append("\"").append(tumsConfig.getTumsPassword()).append("\"");
|
||||
sbp.append("}");
|
||||
String jsonResponsep = tumsApi.changePassword(sbp.toString());
|
||||
JSONObject jsonObjectp = new JSONObject(jsonResponsep);
|
||||
String errorCodep = jsonObjectp.getStr("error_code");
|
||||
if(errorCodep.equals("0")){
|
||||
map.put("tumsPassword",tumsConfig.getTumsPassword());
|
||||
}else{
|
||||
if(errorCodep.equals("-82400")){
|
||||
errorMsg = "修改密码:密码格式错误!";
|
||||
}else{
|
||||
errorMsg = "修改密码:"+jsonObjectp.getStr("msg");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!entity.getTumsRoleId().equals(tumsConfig.getTumsRoleId())){
|
||||
//调用修改角色接口
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"userId\"").append(":").append("\"").append(tumsConfig.getTumsUserId()).append("\",");
|
||||
sb.append("\"roleList\"").append(":[").append(tumsConfig.getTumsRoleId()).append("]");
|
||||
sb.append("}");
|
||||
String jsonResponse = tumsApi.editUser(sb.toString());
|
||||
JSONObject jsonObject = new JSONObject(jsonResponse);
|
||||
String errorCode = jsonObject.getStr("error_code");
|
||||
if(errorCode.equals("0")){
|
||||
map.put("tumsRoleId",tumsConfig.getTumsRoleId());
|
||||
}else{
|
||||
if(!errorMsg.equals("")){
|
||||
errorMsg = errorMsg + "\n" + "修改角色:"+jsonObject.getStr("msg");
|
||||
}else{
|
||||
errorMsg = "修改角色:"+jsonObject.getStr("msg");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(tumsConfig.getTumsUrl()!=null&&!tumsConfig.getTumsUrl().equals("")){
|
||||
map.put("tumsUrl",tumsConfig.getTumsUrl());
|
||||
}
|
||||
if(tumsConfig.getTumsProjectId()!=null&&!tumsConfig.getTumsProjectId().equals("")){
|
||||
map.put("tumsProjectId",tumsConfig.getTumsProjectId());
|
||||
}
|
||||
if(tumsConfig.getFtpIp()!=null&&!tumsConfig.getFtpIp().equals("")){
|
||||
map.put("ftpIp",tumsConfig.getFtpIp());
|
||||
}
|
||||
if(tumsConfig.getFtpPort()!=null&&!tumsConfig.getFtpPort().equals("")){
|
||||
map.put("ftpPort",tumsConfig.getFtpPort());
|
||||
}
|
||||
if(tumsConfig.getFtpUsername()!=null&&!tumsConfig.getFtpUsername().equals("")){
|
||||
map.put("ftpUsername",tumsConfig.getFtpUsername());
|
||||
}
|
||||
if(tumsConfig.getFtpPassword()!=null&&!tumsConfig.getFtpPassword().equals("")){
|
||||
map.put("ftpPassword",tumsConfig.getFtpPassword());
|
||||
}
|
||||
if(tumsConfig.getFtpUploadpath()!=null&&!tumsConfig.getFtpUploadpath().equals("")){
|
||||
map.put("ftpUploadpath",tumsConfig.getFtpUploadpath());
|
||||
}
|
||||
if(tumsConfig.getOrgCode()!=null&&!tumsConfig.getOrgCode().equals("")){
|
||||
map.put("orgCode",tumsConfig.getOrgCode());
|
||||
}
|
||||
baseMapper.updateUser(map);
|
||||
if(!errorMsg.equals("")){
|
||||
return Result.error(errorMsg);
|
||||
}else{
|
||||
return Result.OK("编辑用户成功!");
|
||||
}
|
||||
}else {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"projectId\"").append(":").append("\"").append(tumsConfig.getTumsProjectId()).append("\",");
|
||||
sb.append("\"username\"").append(":").append("\"").append(tumsConfig.getTumsUsername()).append("\",");
|
||||
sb.append("\"password\"").append(":").append("\"").append(tumsConfig.getTumsPassword()).append("\",");
|
||||
sb.append("\"roleList\"").append(":[").append(tumsConfig.getTumsRoleId()).append("]");
|
||||
sb.append("}");
|
||||
String jsonResponse = tumsApi.addUser(sb.toString());
|
||||
JSONObject jsonObject = new JSONObject(jsonResponse);
|
||||
String errorCode = jsonObject.getStr("error_code");
|
||||
if(errorCode.equals("0")){
|
||||
JSONObject result = (JSONObject)jsonObject.get("result");
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("tumsUserId",result.getStr("userId"));
|
||||
map.put("tumsUsername",result.getStr("username"));
|
||||
map.put("tumsPassword",tumsConfig.getTumsPassword());
|
||||
map.put("tumsRoleId",tumsConfig.getTumsRoleId());
|
||||
if(tumsConfig.getTumsUrl()!=null&&!tumsConfig.getTumsUrl().equals("")){
|
||||
map.put("tumsUrl",tumsConfig.getTumsUrl());
|
||||
}
|
||||
if(tumsConfig.getTumsProjectId()!=null&&!tumsConfig.getTumsProjectId().equals("")){
|
||||
map.put("tumsProjectId",tumsConfig.getTumsProjectId());
|
||||
}
|
||||
if(tumsConfig.getFtpIp()!=null&&!tumsConfig.getFtpIp().equals("")){
|
||||
map.put("ftpIp",tumsConfig.getFtpIp());
|
||||
}
|
||||
if(tumsConfig.getFtpPort()!=null&&!tumsConfig.getFtpPort().equals("")){
|
||||
map.put("ftpPort",tumsConfig.getFtpPort());
|
||||
}
|
||||
if(tumsConfig.getFtpUsername()!=null&&!tumsConfig.getFtpUsername().equals("")){
|
||||
map.put("ftpUsername",tumsConfig.getFtpUsername());
|
||||
}
|
||||
if(tumsConfig.getFtpPassword()!=null&&!tumsConfig.getFtpPassword().equals("")){
|
||||
map.put("ftpPassword",tumsConfig.getFtpPassword());
|
||||
}
|
||||
if(tumsConfig.getFtpUploadpath()!=null&&!tumsConfig.getFtpUploadpath().equals("")){
|
||||
map.put("ftpUploadpath",tumsConfig.getFtpUploadpath());
|
||||
}
|
||||
if(tumsConfig.getOrgCode()!=null&&!tumsConfig.getOrgCode().equals("")){
|
||||
map.put("orgCode",tumsConfig.getOrgCode());
|
||||
}
|
||||
baseMapper.addUser(map);
|
||||
return Result.OK("添加用户成功!");
|
||||
}else{
|
||||
if(errorCode.equals("-82400")){
|
||||
return Result.error("密码格式错误");
|
||||
}else{
|
||||
return Result.error(jsonObject.getStr("msg"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ import java.util.List;
|
|||
* @Author: jeecg-boot
|
||||
* @Date: 2025-01-22
|
||||
* @Version: V1.0
|
||||
* 停用 2025-7-8 数据库设置好之后不再变更
|
||||
*/
|
||||
@Api(tags="护理单元-物联管理-TPLINK项目信息")
|
||||
@RestController
|
||||
|
|
|
@ -26,6 +26,7 @@ import java.util.List;
|
|||
* @Author: jeecg-boot
|
||||
* @Date: 2025-02-20
|
||||
* @Version: V1.0
|
||||
* 停用 2025-7-8 数据库设置好之后不再变更
|
||||
*/
|
||||
@Api(tags="护理单元-物联管理-TPLINK分组信息")
|
||||
@RestController
|
||||
|
|
|
@ -44,8 +44,7 @@ public class TumsApi {
|
|||
|
||||
private void initTumsConfig(){
|
||||
if(tumsConfig==null){
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode());
|
||||
tumsConfig = tumsConfigMapper.getByCode();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue