Appearance
当前版本1.0.0
更新索引,添加设备添加专用账号,增加离线锁机 较上版本更新方式: 增加表 user_settings user_device_add_account 全部表索引均有修改 需要同步索引 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data/static/mdm.html 更新 前端更新
当前版本1.0.1 表增加 device_ip_history user_add_user_relation 表新增记录 INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('disableQuitRemoteManage', '1', '1970-01-01 00:00:00', '2024-07-31 12:11:29', '禁止退出远程管理 1是 0否'); INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('wxAppid', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '微信小程序appid'); INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('wxAppSecret', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '微信小程序appSecret'); INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('wxWorkAesKey', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '企业微信AesKey'); INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('wxWorkAgentId', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '企业微信AgentId'); INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('wxWorkCorpId', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '企业微信CorpId'); INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('wxWorkSecret', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '企业微信Secret'); INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('wxWorkToken', '', '1970-01-01 00:00:00', '2024-07-31 19:42:25', '企业微信token');
功能: 增加
重置最新安全策略
历史活动区域 http://localhost:9528/doc.html#/mdm模块/设备历史活动区域/searchUsingGET_7
丢失模式状态更新增加2和3 分别为 待丢失 待解除
商户添加商户 http://localhost:9528/doc.html#/mdm模块/用户管理/userAddUserUsingPOST
获取商户添加商户列表 http://localhost:9528/doc.html#/mdm模块/用户管理/searchUserAddUserUsingGET
分配余额 http://localhost:9528/doc.html#/mdm模块/用户管理/allotAmountUsingPOST
mdm.html需要修改
可设置快速注册设备模式
代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data/static/mdm.html 更新 前端更新
当前版本1.0.1
数据库增加字段 https://admin.mdm.top/conf/http.pac 改成自己的域名 改完以后访问下这个链接看是不是正常 先添加再更新代码 INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('httpPac', 'https://admin.mdm.top/conf/http.pac', '1970-01-01 00:00:00', '2024-08-05 23:07:38', 'httpPac代理文件url'); 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启
当前版本1.0.2
更新内容: 优化任务机制 插入数据 INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('taskErrRetry', '300', '1970-01-01 00:00:00', '1970-01-01 00:00:00', '任务失败重试时间 /秒'); 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启
当前版本1.0.3
更新内容: 优化任务机制 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启
当前版本1.0.4
增加abm自动解绑 增加abm解绑 增加单独删除监管文件 修复添加余额bug 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启‘
前端编译更新 用户设置页面需要添加
angular2html
<div class="text item" >
首次开启激活锁后自动解绑ABM 1开启 0关闭 :<el-input style="width: 200px;margin-left: 20px;margin-bottom: 0px" v-model="settings.quickReg" ></el-input>
</div>
当前版本1.0.5 数据库添加 INSERT INTO mdmadmin
.sys_settings
(s_key
, s_value
, create_time
, update_time
, remark
) VALUES ('taskNoResErrRetry', '60', '1970-01-01 00:00:00', '2024-08-23 22:14:48', '命令发送未响应重试 /秒');
1.添加如果命令已发送未响应进行重试机制 2.检测命令优化卡在命令已发送 3.异步任务不在加入延迟队列 代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启
当前版本1.0.6
升级spring boot 版本
application-dev.yml文件更新
{
resources: static-locations: file:./data/web
改为
web: resources: static-locations: file:./data/web
}
添加
mvc: pathmatch: matching-strategy: ant_path_matcher
添加 management: endpoints: enabled-by-default: false
数据库更新 创建device_token_log表 CREATE TABLE device_token_log
( log_id
varchar(64) NOT NULL COMMENT 'logid', device_id
varchar(64) NOT NULL COMMENT '设备ip', device_token
varchar(255) NOT NULL COMMENT '设备token', create_time
datetime NOT NULL COMMENT '创建时间', device_magic
varchar(255) NOT NULL COMMENT '设备magic', PRIMARY KEY (log_id
), KEY device_id
(device_id
) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备token变动';
代码更新: mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启
当前版本1.0.7
数据库执行
ALTER TABLE device_access_auth_list ADD COLUMN auth_type INT(1) NOT NULL DEFAULT 1 COMMENT '权限类型_权限:1-配置:2';
ALTER TABLE device_access_auth_list ADD COLUMN auth_value VARCHAR(100) NOT NULL DEFAULT "" COMMENT '配置的权限值';
INSERT INTO `mdmadmin`.`device_access_auth_list` (`auth_id`, `auth_key`, `auth_name`, `remark`, `is_delete`, `disable_value`, `create_time`, `default_status`, `is_show`, `auth_type`, `auth_value`) VALUES ('13', 'safe_dns', '安全dns', '安全dns', 0, '无', '2024-08-28 11:26:25', 1, 1, 2, '{\"dnsUrl\": \"https://dns.alidns.com/dns-query\"}');
INSERT INTO `mdmadmin`.`device_access_auth_list` (`auth_id`, `auth_key`, `auth_name`, `remark`, `is_delete`, `disable_value`, `create_time`, `default_status`, `is_show`, `auth_type`, `auth_value`) VALUES ('14', 'wifi', '默认wifi', '默认wifi', 0, '无', '2024-08-28 11:26:25', 1, 1, 2, '{\"wifiName\": \"mdm.top\",\"wifiPassword\": \"123456789\"}');
INSERT INTO `mdmadmin`.`device_access_auth_list` (`auth_id`, `auth_key`, `auth_name`, `remark`, `is_delete`, `disable_value`, `create_time`, `default_status`, `is_show`, `auth_type`, `auth_value`) VALUES ('15', 'httpProxy', '禁用退出远程管理', '开启后用户无法退出远程管理', 0, '无', '2024-05-13 19:55:31', 1, 1, 2, '{\"pacUrl\": \"\"}');
ALTER TABLE device_mdm_profile CHANGE disable_erase disable_erase INT(1) NOT NULL COMMENT '是否开启远程管理按钮限制_是:1-否:0 字段弃用';
UPDATE sys_settings SET remark = 'httpPac代理文件url 弃用' WHERE s_key = 'httpPac';
ALTER TABLE user ADD COLUMN staff_device_auth INT(1) NOT NULL DEFAULT 1 COMMENT '员工设备权限_所有:1-仅自己:0';
功能变化
- 禁用退出远管理按钮弃用 合并至设备访问限制 使用 禁用退出元管理权限替代 device_mdm_profile表对应的 disable_erase 也弃用
- 追加两个三个权限 安全dns 默认wifi 禁用退出远程管理
- 安全dns 必须开启 用于限制某些app通过dns污染达到屏蔽监管锁指令的效果
- 禁用退出远程管理 原 禁用退出远管理按钮
- 默认wifi 建议开启 该功能开启以后用户可以直接连接到指定wifi 用于开启丢失模式以后 设备没有wifi也没有移动数据导致无法解锁的情况 在这种情况下 再寻找一个手机 开启热点 wifi名称和密码设置成一样即可自动连接上
接口改动
admin/updateAuthList 增加 authValue 字段 user/addStaff 增加 staffDeviceAuth 字段
前端改动(自定义ui需改动)
mdm_vue\src\views\admin\setting\authList.vue 添加 authValue 字段的修改和查询字段
mdm_vue\src\views\device\list\info\deviceInfo.vue 去除禁用退出远程管理按钮相关按钮 和 信息展示 src\views\staff\list.vue 增加字段staffDeviceAuth
代码更新:
mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data\web的前端需要更新覆盖
部署成功后操作 1.需要登录管理员账号 找到 管理设置->设备权限->权限名称为禁用退出远程管理 进行修改 修改权限值为 {"pacUrl": "你的pac文件地址 也就是oss地址"} 保存即可
2.需要登录管理员账号 找到 管理设置->设备权限->权限名称为安全DNS 进行修改 修改权限值为 {"dnsUrl": "https://你的域名/dns/query"} 保存即可 注意"你的域名" 要改成你现在的后台域名
nginx配置文件更新 追加dns配置
location = /dns/query { # 匹配 https://你的域名/dns/query
# 代理到上游 DoH 服务器
proxy_pass https://dns.alidns.com/dns-query;
# 设置请求头
proxy_set_header Host dns.alidns.com;
proxy_set_header Accept-Encoding "";
proxy_set_header Connection "keep-alive";
# 确保请求和响应不被缓存
proxy_buffering off;
proxy_request_buffering off;
# 传递客户端的请求头
proxy_pass_request_headers on;
# 设置正确的协议版本
proxy_http_version 1.1;
# SSL 配置,启用 SNI 支持
proxy_ssl_server_name on;
}
完整配置参考
server {
listen 80;
server_name mdm.ppgjx.com; # 域名
client_max_body_size 1024M;
add_header Strict-Transport-Security max-age=15768000;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl; # 老版本是ssl on;较新的为listen 443 ssl;
server_name mdm.ppgjx.com; # 域名
keepalive_timeout 10m;
client_max_body_size 1024M;
ssl_certificate /etc/nginx/cert/mdm.ppgjx.com.pem; # 申请的证书,把证书和秘钥上传到nginx.conf的同级目录cert的目录下
ssl_certificate_key /etc/nginx/cert/mdm.ppgjx.com.key; # 秘钥
ssl_session_timeout 24h;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location /_AMapService/ {
set $args "$args&jscode=db3c4ab14c402d6c9ce1e7d66d3c09f6"; #高德地图的jscode
proxy_pass https://restapi.amap.com/;
}
location = /dns/query {
# 代理到上游 DoH 服务器
proxy_pass https://dns.alidns.com/dns-query;
# 设置请求头
proxy_set_header Host dns.alidns.com;
proxy_set_header Accept-Encoding "";
proxy_set_header Connection "keep-alive";
# 确保请求和响应不被缓存
proxy_buffering off;
proxy_request_buffering off;
# 传递客户端的请求头
proxy_pass_request_headers on;
# 设置正确的协议版本
proxy_http_version 1.1;
# SSL 配置,启用 SNI 支持
proxy_ssl_server_name on;
}
location / {
proxy_pass http://127.0.0.1:34567;
proxy_redirect off;
root /opt/mdm/data/web; # 替换为你实际的web根目录路径
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
add_header Content-Security-Policy upgrade-insecure-requests;
}
}
更新后需要重启 nginx
systemctl restart nginx
更新systemctl 服务器 解决日志写入过大的问题
vim /usr/lib/systemd/system/mdm.service
[Unit]
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
WorkingDirectory=/home/mdm
User=mdm
Group=mdm
Type=simple
ExecStart=/home/mdm/xjar /usr/bin/java -jar /home/mdm/mdmadmin-0.0.1-SNAPSHOT.xjar --spring.config.location=/home/mdm/application-dev.yml
PrivateTmp=true
[Install]
WantedBy=multi-user.target
当前版本1.0.8
数据库执行
CREATE TABLE `auth_list` (
`auth_id` varchar(64) NOT NULL COMMENT '权限id',
`auth_name` varchar(64) NOT NULL COMMENT '权限名称_c_ss',
`create_time` datetime NOT NULL COMMENT '创建时间',
`api_path` varchar(255) NOT NULL COMMENT 'api路径_c_ss',
`classify` varchar(255) NOT NULL COMMENT '权限分类',
PRIMARY KEY (`auth_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限列表';
CREATE TABLE `role_list` (
`role_id` varchar(64) NOT NULL COMMENT '角色id_c',
`auth_list` text NOT NULL COMMENT '权限id列表[]_c',
`create_time` datetime NOT NULL COMMENT '创建时间_c',
`update_time` datetime NOT NULL COMMENT '更新时间',
`org_id` varchar(64) NOT NULL COMMENT '组织id_c',
`user_id` varchar(64) NOT NULL COMMENT '用户id_c',
`is_delete` int(1) NOT NULL COMMENT '是否删除_是:1-否:0',
`role_name` varchar(64) NOT NULL COMMENT '角色名称',
PRIMARY KEY (`role_id`),
KEY `org_id` (`org_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色列表';
CREATE TABLE `user_auth` (
`user_id` varchar(64) NOT NULL COMMENT '用户id_c',
`role_id` varchar(64) NOT NULL COMMENT '角色id_c',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '更新时间',
`org_id` varchar(64) NOT NULL COMMENT '组织id_c',
PRIMARY KEY (`user_id`) USING BTREE,
KEY `org_id` (`org_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户权限列表';
CREATE TABLE `user_api_token` (
`user_id` varchar(64) NOT NULL COMMENT '用户id',
`api_token` varchar(64) NOT NULL COMMENT 'token',
`create_time` datetime NOT NULL,
`update_time` datetime NOT NULL,
`org_id` varchar(64) NOT NULL COMMENT '组织id',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户apitoken\r\n';
CREATE TABLE `user_notify` (
`nt_id` varchar(64) NOT NULL COMMENT '通知id',
`user_id` varchar(64) NOT NULL COMMENT '用户id',
`title` varchar(255) NOT NULL COMMENT '标题',
`ass_title` varchar(255) NOT NULL COMMENT '副标题',
`content` varchar(1000) NOT NULL COMMENT '内容',
`email` varchar(100) NOT NULL COMMENT '邮箱',
`nt_status` int(1) NOT NULL COMMENT '通知_等待:0-已完成:1',
`is_read` int(1) NOT NULL COMMENT '用户是否已读_未读:0-已读:1',
`email_status` int(1) NOT NULL COMMENT '邮箱发送状态_等待:0-成功:1-失败:2',
`wx_status` int(1) NOT NULL COMMENT '微信群发送状态_等待:0-成功:1-失败:2',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '更新时间',
`email_err` varchar(255) NOT NULL COMMENT '邮箱发送失败原因',
`wx_err` varchar(255) NOT NULL COMMENT '微信群发送失败原因',
`wx_name` varchar(255) NOT NULL COMMENT '微信群名称',
`org_id` varchar(255) NOT NULL COMMENT '组织id',
PRIMARY KEY (`nt_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统通知';
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('accessAppList.add', '添加APP', '2024-09-25 22:34:20', 'accessAppList/add', 'APP管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('accessAppList.delete', '删除APP', '2024-09-25 22:34:20', 'accessAppList/delete', 'APP管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('accessAppList.search', '查询APP', '2024-09-25 22:34:20', 'accessAppList/search', 'APP管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('accessAppList.update', '修改APP', '2024-09-25 22:34:20', 'accessAppList/update', 'APP管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.abmClose', 'ABM解绑', '2024-09-25 22:34:20', 'deviceInfo/abmClose', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.allotDevice', '分配设备', '2024-09-25 22:34:20', 'deviceInfo/allotDevice', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.clearPasscode', '清除锁屏密码', '2024-09-25 22:34:20', 'deviceInfo/clearPasscode', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.controlClose', '一键删除监管', '2024-09-25 22:34:20', 'deviceInfo/controlClose', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.deviceActivateLockClose', '关闭激活锁', '2024-09-25 22:34:20', 'deviceInfo/deviceActivateLockClose', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.deviceActivateLockOpen', '开启激活锁', '2024-09-25 22:34:20', 'deviceInfo/deviceActivateLockOpen', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.disableLostMode', '关闭丢失模式', '2024-09-25 22:34:20', 'deviceInfo/disableLostMode', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.enableLostMode', '启用丢失模式', '2024-09-25 22:34:20', 'deviceInfo/enableLostMode', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.enableTimeLostMode', '启用定时丢失模式', '2024-09-25 22:34:20', 'deviceInfo/enableTimeLostMode', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.eraseDevice', '抹除设备', '2024-09-25 22:34:20', 'deviceInfo/eraseDevice', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.exportDevice', '导出设备', '2024-09-25 22:34:20', 'deviceInfo/exportDevice', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getActivationLockSkipCode', '获取激活密码', '2024-09-25 22:34:20', 'deviceInfo/getActivationLockSkipCode', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getDeviceInfo', '获取设备信息', '2024-09-25 22:34:20', 'deviceInfo/getDeviceInfo', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getHomeInfo', '获取主页统计', '2024-09-25 22:34:20', 'deviceInfo/getHomeInfo', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getLocation', '获取定位', '2024-09-25 22:34:20', 'deviceInfo/getLocation', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.lockMsgUpdate', '修改锁屏消息', '2024-09-25 22:34:20', 'deviceInfo/lockMsgUpdate', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.removeMobileFile', '删除监管文件', '2024-09-25 22:34:20', 'deviceInfo/removeMobileFile', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.resetAuth', '重置为最新安全策略', '2024-09-25 22:34:20', 'deviceInfo/resetAuth', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.search', '搜索设备', '2024-09-25 22:34:20', 'deviceInfo/search', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.setWp', '设置壁纸', '2024-09-25 22:34:20', 'deviceInfo/setWp', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.updateAccessAppAuth', '修改APP访问限制', '2024-09-25 22:34:20', 'deviceInfo/updateAccessAppAuth', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.updateAccessAuth', '修改设备访问限制', '2024-09-25 22:34:20', 'deviceInfo/updateAccessAuth', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.updateDevice', '更新设备', '2024-09-25 22:34:20', 'deviceInfo/updateDevice', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.updateDeviceInfo', '修改设备信息', '2024-09-25 22:34:20', 'deviceInfo/updateDeviceInfo', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.updateIos', '强制更新系统', '2024-09-25 22:34:20', 'deviceInfo/updateIos', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.deviceActivateLockClose', '关闭激活锁', '2024-09-25 22:34:20', 'deviceInfos/deviceActivateLockClose', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.deviceActivateLockOpen', '开启激活锁', '2024-09-25 22:34:20', 'deviceInfos/deviceActivateLockOpen', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.disableLostMode', '关闭丢失模式', '2024-09-25 22:34:20', 'deviceInfos/disableLostMode', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.enableLostMode', '启用丢失模式', '2024-09-25 22:34:20', 'deviceInfos/enableLostMode', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.resetAuth', '重置为最新安全策略', '2024-09-25 22:34:20', 'deviceInfos/resetAuth', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.updateDevice', '更新设备', '2024-09-25 22:34:20', 'deviceInfos/updateDevice', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.updateIos', '强制更新系统', '2024-09-25 22:34:20', 'deviceInfos/updateIos', '设备批量管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.addGroup', '添加分组', '2024-09-26 16:02:34', 'group/search', '设备分组');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.deleteGroup', '删除分组', '2024-09-26 16:02:34', 'group/deleteGroup', '设备分组');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.getMyGroupList', '获取自己分组', '2024-09-26 16:02:34', 'group/getMyGroupList', '设备分组');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.search', '设备分组搜索', '2024-09-26 16:02:34', 'group/search', '设备分组');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.updateGroup', '修改分组', '2024-09-26 16:02:34', 'group/updateGroup', '设备分组');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('lostMsgList.addLost', '丢失消息添加', '2024-09-25 22:34:20', 'lostMsgList/addLost', '丢失消息管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('lostMsgList.deleteLost', '丢失消息删除', '2024-09-25 22:34:20', 'lostMsgList/deleteLost', '丢失消息管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('lostMsgList.getMyLostList', '获取自己的所有丢失消息', '2024-09-25 22:34:20', 'lostMsgList/getMyLostList', '丢失消息管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('lostMsgList.search', '丢失消息获取', '2024-09-25 22:34:20', 'lostMsgList/search', '丢失消息管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('lostMsgList.updateLost', '丢失消息修改', '2024-09-25 22:34:20', 'lostMsgList/updateLost', '丢失消息管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('task.search', '操作记录查询', '2024-09-25 22:34:20', 'task/search', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('userAmountFlow.search', '流水信息查询', '2024-09-25 22:34:20', 'userAmountFlow/search', '系统管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('wallpaper.add', '添加壁纸', '2024-09-25 22:34:20', 'wallpaper/add', '壁纸管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('wallpaper.delete', '删除壁纸', '2024-09-25 22:34:20', 'wallpaper/delete', '壁纸管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('wallpaper.search', '查询壁纸', '2024-09-25 22:34:20', 'wallpaper/search', '壁纸管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('wallpaper.update', '修改壁纸', '2024-09-25 22:34:20', 'wallpaper/update', '壁纸管理');
更新功能 :
系统管理新增角色管理
已创建的员工账号需要设置默认权限后才使用
员工分配角色功能在账号管理->员工账号管理->修改
代码更新:
yml新增 is-read-cookie: false
mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data\web的前端需要更新覆盖
当前版本1.0.9
数据库执行
INSERT INTO `mdmadmin`.`sys_settings` (`s_key`, `s_value`, `create_time`, `update_time`, `remark`) VALUES ('workToolRotId', ' ', '1970-01-01 00:00:00', '1970-01-01 00:00:00', 'workTool机器人id');
CREATE TABLE `user_notify` (
`nt_id` varchar(64) NOT NULL COMMENT '通知id',
`user_id` varchar(64) NOT NULL COMMENT '用户id',
`title` varchar(255) NOT NULL COMMENT '标题',
`ass_title` varchar(255) NOT NULL COMMENT '副标题',
`content` varchar(1000) NOT NULL COMMENT '内容',
`email` varchar(100) NOT NULL COMMENT '邮箱',
`nt_status` int(1) NOT NULL COMMENT '通知_等待:0-已完成:1',
`is_read` int(1) NOT NULL COMMENT '用户是否已读_未读:0-已读:1',
`email_status` int(1) NOT NULL COMMENT '邮箱发送状态_等待:0-成功:1-失败:2',
`wx_status` int(1) NOT NULL COMMENT '微信群发送状态_等待:0-成功:1-失败:2',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '更新时间',
`email_err` varchar(255) NOT NULL COMMENT '邮箱发送失败原因',
`wx_err` varchar(255) NOT NULL COMMENT '微信群发送失败原因',
`wx_name` varchar(255) NOT NULL COMMENT '微信群名称',
`org_id` varchar(255) NOT NULL COMMENT '组织id',
PRIMARY KEY (`nt_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统通知';
CREATE TABLE `user_sub_device_status_notify` (
`user_id` varchar(64) NOT NULL COMMENT '用户id',
`org_id` varchar(64) NOT NULL COMMENT '组织id',
`sub_ids` varchar(255) NOT NULL COMMENT '订阅设备状态类型id数组[]',
`create_time` datetime NOT NULL,
`update_time` datetime NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户订阅设备状态通知';
新增微信机器人和邮箱通知 设备状态
使用微信机器人需要开通企业微信以及worktool微信机器400元/年
使用教程参考普通用户后台功能说明->设备状态订阅
mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data\web的前端需要更新覆盖
当前版本1.1.0
数据库执行
ALTER TABLE device_info ADD COLUMN mac_restore_password VARCHAR(64) NOT NULL DEFAULT "" COMMENT 'mac的恢复锁密码';
ALTER TABLE device_info ADD COLUMN mac_pin VARCHAR(64) NOT NULL DEFAULT "" COMMENT 'mac的pin密码';
ALTER TABLE device_info ADD COLUMN mac_is_apple_silicon INT(1) NOT NULL DEFAULT 0 COMMENT 'MAC是否是mac芯片_是:1-否:0';
ALTER TABLE device_info ADD COLUMN network_type INT(1) NOT NULL DEFAULT 0 COMMENT '网络类型_未知:0-数据:1-wifi:2';
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.lockMac', '锁定mac', '2024-09-25 22:34:20', 'deviceInfo/lockMac', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.enableRestoreLock', '启用恢复锁', '2024-09-25 22:34:20', 'deviceInfo/enableRestoreLock', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.disableRestoreLock', '关闭恢复锁', '2024-09-25 22:34:20', 'deviceInfo/disableRestoreLock', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getMacPin', '获取macpin密码', '2024-09-25 22:34:20', 'deviceInfo/getMacPin', '设备管理');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.getRestoreLockPassword', '获取恢复锁密码', '2024-09-25 22:34:20', 'deviceInfo/getRestoreLockPassword', '设备管理');
新增支持mac apple芯片的上锁
支持通过机器人锁机与查询
mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data\web的前端需要更新覆盖
当前版本1.1.1
数据库执行
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfos.updateAccessAuth', '修改设备访问限制', '2024-09-25 22:34:20', 'deviceInfos/updateAccessAuth', '设备批量管理');
新增批量修改设备访问限制
mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启 data\web的前端需要更新覆盖
当前版本1.1.2
功能新增:
最新技术可防止屏蔽监管锁 (禁止退出远程管理权限勾选的前提下)
可以关闭设备的网络: (禁止退出远程管理权限勾选的前提下)
数据库执行
ALTER TABLE device_info ADD COLUMN store VARCHAR(64) NOT NULL DEFAULT "" COMMENT '门店';
ALTER TABLE device_info ADD INDEX `idx_store_create_time`(`create_time`, `store`) USING BTREE;
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('group.searchStore', '搜索门店', '2024-09-25 22:34:20', 'group/searchStore', '设备分组');
ALTER TABLE device_info ADD COLUMN network_close int(1) NOT NULL DEFAULT 0 COMMENT '网络关闭_是:1-否:0';
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.networkClose', '关闭网络', '2024-09-25 22:34:20', 'deviceInfo/networkClose', '关闭网络');
INSERT INTO `mdmadmin`.`auth_list` (`auth_id`, `auth_name`, `create_time`, `api_path`, `classify`) VALUES ('deviceInfo.networkOpen', '开启网络', '2024-09-25 22:34:20', 'deviceInfo/networkOpen', '开启网络');
yml配置文件添加 isMain: true
nginx添加
location /mdm/pac/ {
proxy_pass http://127.0.0.1:34567; # 将请求转发到目标服务器
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
登录管理员账号 管理设置-设备权限-权限名称-禁用退出远程管理-修改pacUrl值为空
注意:pacUrl值为空以后 已经上锁的设备需要重置一下权限才能生效 pacUrl为空后服务器负载会增加 但是可以防止屏蔽监管锁(前提是设备的禁止退出远程管理权限勾选)
针对于pacUrl为空后服务器负载会增加的情况 可以再部署一台服务器 新部署的服务器 yml文件 isMain改成false
然后更改nginx配置
location /mdm/pac/ {
proxy_pass http://127.0.0.1:34567; # 将请求转发到目标服务器
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
改为(建议新服务器使用内网ip)
location /mdm/pac/ {
proxy_pass http://新服务器的ip:34567; # 将请求转发到目标服务器
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
当前版本1.1.3
数据库新增
ALTER TABLE device_info ADD COLUMN auto_close_auth INT(1) NOT NULL DEFAULT 1 COMMENT '自动关闭权限_是:1-否:0';
功能变化: 新增自动关闭权限白名单
mdmadmin-0.0.1-SNAPSHOT.xjar xjar 替换线上重启