This commit is contained in:
1378012178@qq.com 2025-07-09 15:48:30 +08:00
commit 2927e92e02
15 changed files with 328 additions and 354 deletions

View File

@ -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();
}
}
}

View File

@ -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设备
*

View File

@ -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上传路径
}

View File

@ -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>

View File

@ -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);

View File

@ -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());

View File

@ -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);
}
}

View File

@ -42,5 +42,4 @@ public class TumsConfig implements Serializable {
private String ftpUsername; //回放视频转FTP上传用户
private String ftpPassword; //回放视频转FTP上传密码
private String ftpUploadpath; //回放视频转FTP上传路径
private String orgCode; //机构编码
}

View File

@ -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);
}

View File

@ -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>

View File

@ -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();
}

View File

@ -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"));
}
}
}
}
}

View File

@ -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

View File

@ -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

View File

@ -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();
}
}