17 Commits

31 changed files with 716 additions and 967 deletions

View File

@@ -1,7 +1,7 @@
# Makefile for rest agent project
PROJECT = OMC
VERSION = 2.2311.7
VERSION = 2.2311.8
PLATFORM = amd64
ARMPLATFORM = aarch64
BUILDDIR = ../../build

View File

@@ -43,22 +43,22 @@ database:
name: omc_db
backup: /usr/local/omc/database
# Redis 缓存数据,数据源声明全小写
# Redis data cache
redis:
dataSource:
# OMC系统使用库
# OMC system db
default:
port: 6379 # Redis port
host: "127.0.0.1" # Redis host
password: ""
db: 10 # Redis db_num
# UDM网元用户库
# UDM sub/auth db
udmuser:
port: 6379 # Redis port
host: "127.0.0.1"
password: ""
db: 0 # Redis db_num
# 多个数据源时可以用这个指定默认的数据源
# used to specify the default data source for multiple data resourece
defaultDataSourceName: "default"
mml:
@@ -156,5 +156,5 @@ params:
rmuidregexp: "[0-9]{4}[A-Z]{2}[A-Z]{2}[0-9A-Z]{1}[0-9A-Z]{3}[0-9A-Z]{1,16}"
testConfig:
enabled: true
enabled: false
file: /usr/local/omc/etc/testconfig.yaml

View File

@@ -58,6 +58,7 @@ omc:
- operation: "dsp"
object: "licenseinfo"
display: "Display NE License Information"
status: "Inactive"
params:
- name: "netype"
alias: "neType"
@@ -77,6 +78,7 @@ omc:
- operation: "lst"
object: "license"
display: "List NE License Information"
status: "Inactive"
params:
- name: "netype"
alias: "ne_type"
@@ -97,6 +99,7 @@ omc:
- operation: "dep"
object: "license"
display: "Deployment NE License"
status: "Inactive"
params:
- name: "srcnetype"
alias: "ne_type"
@@ -138,6 +141,7 @@ omc:
- operation: "rel"
object: "license"
display: "Batch Release NE License"
status: "Inactive"
params:
- name: "netype"
alias: "ne_type"
@@ -169,6 +173,7 @@ omc:
- operation: "ins"
object: "license"
display: "Install NE License"
status: "Inactive"
params:
- name: "netype"
alias: "ne_type"
@@ -199,6 +204,7 @@ omc:
- operation: "adj"
object: "license"
display: "Adjustment NE License"
status: "Inactive"
params:
- name: "netype"
alias: "ne_type"
@@ -229,6 +235,7 @@ omc:
- operation: "exp"
object: "license"
display: "Export NE License"
status: "Inactive"
params:
- name: "netype"
alias: "ne_type"
@@ -249,6 +256,7 @@ omc:
- operation: "uni"
object: "license"
display: "Uninstall NE License"
status: "Inactive"
params:
- name: "netype"
alias: "ne_type"
@@ -269,6 +277,7 @@ omc:
- operation: "dsp"
object: "nelink"
display: "Display NE Interface Link Status"
status: "Inactive"
params:
- name: "netype"
alias: "ne_type"

View File

@@ -403,6 +403,7 @@ udm:
- operation: "upload"
object: "udmuser"
display: "Upload Subscriber Data"
status: "Inactive"
params:
- name: "path"
type: "string"

View File

@@ -216,7 +216,7 @@ amf:
display: "Weight"
comment: ""
guami:
display: "Guami List"
display: "GUAMI List"
array:
- name: "index"
type: "int"
@@ -230,7 +230,7 @@ amf:
value: '46000'
access: "read-write"
filter: '^[0-9]{5,6}$'
display: "Plmn Id"
display: "PLMN ID"
comment: ""
- name: "regionId"
type: "int"
@@ -268,7 +268,7 @@ amf:
value: '46000'
access: "read-write"
filter: '^[0-9]{5,6}$'
display: "Plmn Id"
display: "PLMN ID"
comment: ""
- name: "tac"
type: "string"
@@ -292,19 +292,19 @@ amf:
value: '46000'
access: "read-write"
filter: '^[0-9]{5,6}$'
display: "Plmn Id"
display: "PLMN ID"
comment: ""
- name: "sst"
type: "int"
value: '1'
access: "read-write"
filter: '0~127'
display: "Sst"
display: "SST"
comment: ""
- name: "sd"
type: "regex"
value: '000001'
access: "read-write"
filter: ''
display: "Sd"
display: "SD"
comment: ""

View File

@@ -0,0 +1,250 @@
mme:
system:
display: "System Config"
list:
- name: "csfbEnabled"
type: "bool"
value: "0"
access: "read-write"
filter: '{"0":"false","1":"true"}'
display: "CSFB Enabled"
comment: ""
- name: "volteEnabled"
type: "bool"
value: "0"
access: "read-write"
filter: '{"0":"false","1":"true"}'
display: "VoLTE Enabled"
comment: ""
- name: "s1MmeIp"
type: "string"
value: "192.168.1.179"
access: "read-write"
filter: '0~64'
display: "S1 MME IP"
comment: ""
- name: "s1MmePort"
type: "int"
value: "36412"
access: "read-write"
filter: "0~65535"
display: "S1 MME Port"
comment: "0~65535"
- name: "s11MmeIp"
type: "string"
value: "192.168.1.179"
access: "read-write"
filter: '0~64'
display: "S11 MME IP"
comment: ""
- name: "s11MmePort"
type: "int"
value: "2123"
access: "read-write"
filter: "0~65535"
display: "S11 MME Port"
comment: "0~65535"
- name: "s10MmeIp"
type: "string"
value: "192.168.1.178"
access: "read-write"
filter: '0~64'
display: "S10 MME IP"
comment: ""
- name: "s10MmePort"
type: "int"
value: "2123"
access: "read-write"
filter: "0~65535"
display: "S10 MME Port"
comment: "0~65535"
- name: "sgsMmeIp"
type: "string"
value: "192.168.1.179"
access: "read-write"
filter: '0~64'
display: "SGs MME IP"
comment: ""
- name: "sgsMmePort"
type: "int"
value: "29118"
access: "read-write"
filter: "0~65535"
display: "SGs MME Port"
comment: "0~65535"
gummei:
display: "Gummei List"
array:
- name: "index"
type: "int"
value: "0"
access: "read-write"
filter: '0~15'
display: "Index"
comment: "0~15"
- name: "plmnId"
type: "regex"
value: '46000'
access: "read-write"
filter: '^[0-9]{5,6}$'
display: "Plmn Id"
comment: ""
- name: "groupId"
type: "int"
value: '4'
access: "read-write"
filter: '0~65535'
display: "Group ID"
comment: "0~65535"
- name: "code"
type: "int"
value: '1'
access: "read-write"
filter: '0~255'
display: "Code"
comment: ""
tai:
display: "TAI List"
array:
- name: "index"
type: "int"
value: "0"
access: "read-write"
filter: '0~15'
display: "Index"
comment: "0~15"
- name: "plmnId"
type: "regex"
value: '46000'
access: "read-write"
filter: '^[0-9]{5,6}$'
display: "Plmn Id"
comment: ""
- name: "tac"
type: "int"
value: "1"
access: "read-write"
filter: '0~65535'
display: "TAC"
comment: "0~65535"
hss:
display: "HSS List"
array:
- name: "index"
type: "int"
value: "0"
access: "read-write"
filter: '0~15'
display: "Index"
comment: "0~15"
- name: "imsiPre"
type: "regex"
value: '46000'
access: "read-write"
filter: '^[0-9]{1,15}$'
display: "IMSI Prefix"
comment: ""
- name: "hssHostname"
type: "string"
value: "hss.mnc000.mcc460.3gppnetwork.org"
access: "read-write"
filter: '0~128'
display: "HSS Hostname"
comment: ""
- name: "protocol"
type: "string"
value: "SCTP"
access: "read-write"
filter: '0~8'
display: "Protocol"
comment: ""
- name: "hssPort"
type: "int"
value: "3868"
access: "read-write"
filter: "0~65535"
display: "HSS Port"
comment: "0~65535"
sgw:
display: "SGW List"
array:
- name: "index"
type: "int"
value: "0"
access: "read-write"
filter: '0~15'
display: "Index"
comment: "0~15"
- name: "plmnId"
type: "regex"
value: '46000'
access: "read-write"
filter: '^[0-9]{5,6}$'
display: "Plmn Id"
comment: ""
- name: "tac"
type: "int"
value: "1"
access: "read-write"
filter: '0~65535'
display: "TAC"
comment: "0~65535"
- name: "sgwIp"
type: "string"
value: "192.168.1.180"
access: "read-write"
filter: '0~64'
display: "SGW IP"
comment: ""
amf:
display: "AMF List"
array:
- name: "index"
type: "int"
value: "0"
access: "read-write"
filter: '0~15'
display: "Index"
comment: "0~15"
- name: "plmnId"
type: "regex"
value: '46000'
access: "read-write"
filter: '^[0-9]{5,6}$'
display: "Plmn Id"
comment: ""
- name: "tac"
type: "int"
value: "1"
access: "read-write"
filter: '0~16777215'
display: "TAC"
comment: "0~16777215"
- name: "regionId"
type: "int"
value: "1"
access: "read-write"
filter: '0~255'
display: "Region ID"
comment: "0~255"
- name: "setId"
type: "int"
value: "1"
access: "read-write"
filter: '0~1023'
display: "Set ID"
comment: "0~1023"
- name: "pointer"
type: "int"
value: "1"
access: "read-write"
filter: '0~63'
display: "Pointer"
comment: "0~63"
- name: "amfIp"
type: "string"
value: "192.168.1.188"
access: "read-write"
filter: '0~64'
display: "AMF IP"
comment: ""

View File

@@ -14,7 +14,7 @@ nssf:
value: ""
access: "read-write"
filter: ''
display: "Nrf Uri"
display: "NRF URI"
comment: ""
- name: "logLevel"
type: "string"
@@ -28,17 +28,17 @@ nssf:
value: ""
access: "read-write"
filter: ''
display: "NF Id"
display: "NF ID"
comment: ""
- name: "systemId"
type: "int"
value: "0"
access: "read-write"
filter: ''
display: "System Id"
display: "System ID"
comment: ""
omc:
display: "Omc"
display: "OMC"
list:
- name: "enabled"
type: "bool"
@@ -52,21 +52,21 @@ nssf:
value: "ipv4"
access: "read-write"
filter: ''
display: "Ip Type"
display: "IP Type"
comment: "ipv4|ipv6|ipv46"
- name: "localIpv4"
type: "string"
value: "0.0.0.0"
access: "read-write"
filter: ''
display: "Local Ipv4"
display: "Local IPv4"
comment: ""
- name: "localIpv6"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "Local Ipv6"
display: "Local IPv6"
comment: ""
- name: "localSeverPort"
type: "int"
@@ -80,14 +80,14 @@ nssf:
value: "0.0.0.0"
access: "read-write"
filter: ''
display: "OMC Ipv4"
display: "OMC IPv4"
comment: ""
- name: "omcIpv6"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "OMC Ipv6"
display: "OMC IPv6"
comment: ""
- name: "omcPort"
type: "int"
@@ -101,14 +101,14 @@ nssf:
value: "http"
access: "read-write"
filter: ''
display: "Http Scheme"
display: "HTTP Scheme"
comment: "http|https"
- name: "kpiStatisticInterval"
type: "int"
value: "1"
access: "read-write"
filter: '0~255'
display: "Kpi Statistic Interval"
display: "KPI Statistic Interval"
comment: "0~255"
- name: "objectName"
type: "string"
@@ -122,21 +122,21 @@ nssf:
value: ""
access: "read-write"
filter: ''
display: "Ne Id"
display: "NE ID"
comment: ""
- name: "rmUid"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "Rm Uid"
display: "RM UID"
comment: ""
- name: "neName"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "Ne Name"
display: "NE Name"
comment: ""
- name: "pvFlag"
type: "string"
@@ -164,10 +164,10 @@ nssf:
value: ""
access: "read-write"
filter: ''
display: "Dn"
display: "DN"
comment: ""
sbi:
display: "Sbi"
display: "SBI"
list:
- name: "scheme"
type: "string"
@@ -181,29 +181,29 @@ nssf:
value: ""
access: "read-write"
filter: ''
display: "Register Ipv4"
comment: "Register Ipv4"
display: "Register IPv4"
comment: "Register IPv4"
- name: "bindingIpv4"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "Binding Ipv4"
comment: "Binding Ipv4"
display: "Binding IPv4"
comment: "Binding IPv4"
- name: "registerIpv6"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "Register Ipv6"
comment: "Register Ipv6"
display: "Register IPv6"
comment: "Register IPv6"
- name: "bindingIpv6"
type: "string"
value: ""
access: "read-write"
filter: '0~65535'
display: "Binding Ipv6"
comment: "Binding Ipv6"
display: "Binding IPv6"
comment: "Binding IPv6"
- name: "ipType"
type: "string"
value: "ipv4"
@@ -223,15 +223,15 @@ nssf:
value: ""
access: "read-write"
filter: ''
display: "Telnet Ipv4"
comment: "Telnet Ipv4"
display: "Telnet IPv4"
comment: "Telnet IPv4"
- name: "telnetIpv6"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "Telnet Ipv6"
comment: "Telnet Ipv6"
display: "Telnet IPv6"
comment: "Telnet IPv6"
- name: "telnetPort"
type: "int"
value: "4100"
@@ -254,64 +254,64 @@ nssf:
value: ""
access: "read-only"
filter: ''
display: "Mcc"
comment: "Mcc"
display: "MCC"
comment: "MCC"
- name: "mnc"
type: "string"
value: ""
access: "read-only"
filter: ''
display: "Mnc"
comment: "Mnc"
display: "MNC"
comment: "MNC"
- name: "tac"
type: "string"
value: ""
access: "read-only"
filter: ''
display: "Tac"
comment: "Tac"
display: "TAC"
comment: "TAC"
- name: "supportedSst"
type: "int"
value: ""
access: "read-only"
filter: ''
display: "Supported Sst"
comment: "Supported Sst"
display: "Supported SST"
comment: "Supported SST"
- name: "supportedSd"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "Supported Sd"
comment: "Supported Sd"
display: "Supported SD"
comment: "Supported SD"
- name: "restrictedSst"
type: "int"
value: ""
access: "read-only"
filter: ''
display: "Restricted Sst"
comment: "Restricted Sst"
display: "Restricted SST"
comment: "Restricted SST"
- name: "restrictedSd"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "Restricted Sd"
comment: "Restricted Sd"
display: "Restricted SD"
comment: "Restricted SD"
- name: "nrfId"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "Nrf Id"
comment: "Nrf Id"
display: "NRF ID"
comment: "NRF ID"
- name: "nsiId"
type: "string"
value: ""
access: "read-write"
filter: ''
display: "Nsi Id"
comment: "Nsi Id"
display: "NSI ID"
comment: "NSI ID"
- name: "accessType"
type: "string"
value: ""
@@ -324,10 +324,10 @@ nssf:
value: ""
access: "read-write"
filter: ''
display: "Amf Set Id"
comment: "Amf Set Id"
display: "AMF Set ID"
comment: "AMF Set ID"
plmnMappingList:
display: "Plmn Mapping List"
display: "PLMN Mapping List"
array:
- name: "index"
type: "int"
@@ -348,40 +348,40 @@ nssf:
value: ""
access: "read-only"
filter: ''
display: "Mcc"
comment: "Mcc"
display: "MCC"
comment: "MCC"
- name: "mnc"
type: "string"
value: ""
access: "read-only"
filter: ''
display: "Mnc"
comment: "Mnc"
display: "MNC"
comment: "MNC"
- name: "servingSnssaiSst"
type: "int"
value: "1"
access: "read-only"
filter: ''
display: "Serving Snssai Sst"
comment: "Serving Snssai Sst"
display: "Serving SNSSAI SST"
comment: "Serving SNSSAI SST"
- name: "servingSnssaiSd"
type: "string"
value: "1"
access: "read-write"
filter: ''
display: "Serving Snssai Sd"
comment: "Serving Snssai Sd"
display: "Serving SNSSAI SD"
comment: "Serving SNSSAI SD"
- name: "homeSnssaiSst"
type: "int"
value: "1"
access: "read-only"
filter: ''
display: "Home Snssai Sst"
comment: "Home Snssai Sst"
display: "Home SNSSAI SST"
comment: "Home SNSSAI SST"
- name: "homeSnssaiSd"
type: "string"
value: "1"
access: "read-write"
filter: ''
display: "Home Snssai Sd"
comment: "Home Snssai Sd"
display: "Home SNSSAI SD"
comment: "Home SNSSAI SD"

View File

@@ -1,13 +1,13 @@
smf:
smfSystem:
display: "SmfSystem"
display: "SMF System"
list:
- name: "sbiIpAddr"
type: "string"
value: "172.16.5.150"
access: "read-write"
filter: ''
display: "SBI IpAddr"
display: "SBI IP"
comment: ""
- name: "sbiPort"
type: "int"
@@ -35,7 +35,7 @@ smf:
value: ""
access: "read-write"
filter: ''
display: "N4 Ipv6"
display: "N4 IPv6"
comment: "N4 IPv6"
- name: "n4UIpv4"
type: "ipv4"
@@ -56,21 +56,21 @@ smf:
value: "http://172.16.5.120:8080"
access: "read-write"
filter: ''
display: "AMF Uri"
display: "AMF URI"
comment: ""
- name: "pcfUri"
type: "string"
value: "http://172.16.5.160:8080"
access: "read-write"
filter: ''
display: "PCF Uri"
display: "PCF URI"
comment: ""
- name: "udmUri"
type: "string"
value: "http://172.16.5.140:8080"
access: "read-write"
filter: ''
display: "UDM Uri"
display: "UDM URI"
comment: ""
- name: "nrfEnable"
type: "bool"
@@ -84,73 +84,73 @@ smf:
value: "http://172.16.5.180:8080"
access: "read-write"
filter: ''
display: "NRF Uri"
display: "NRF URI"
comment: ""
- name: "primaryDnsIpv4"
type: "ipv4"
value: "114.114.114.114"
access: "read-write"
filter: ""
display: "Primary Dns Ipv4"
display: "Primary DNS IPv4"
comment: ""
- name: "secondaryDnsIpv4"
type: "ipv4"
value: ""
access: "read-write"
filter: ""
display: "Secondary Dns Ipv4"
display: "Secondary DNS IPv4"
comment: ""
- name: "primaryDnsIpv6"
type: "ipv6"
value: ""
access: "read-write"
filter: ""
display: "Primary Dns Ipv6"
display: "Primary DNS IPv6"
comment: ""
- name: "secondaryDnsIpv6"
type: "ipv6"
value: ""
access: "read-write"
filter: ""
display: "Secondary Dns Ipv6"
display: "Secondary DNS IPv6"
comment: ""
- name: "primaryPcscfIpv4"
type: "ipv4"
value: "172.16.5.110"
access: "read-write"
filter: ""
display: "Primary Pcscf Ipv4"
display: "Primary PCSCF IPv4"
comment: ""
- name: "secondaryPcscfIpv4"
type: "ipv4"
value: ""
access: "read-write"
filter: ""
display: "Secondary Pcscf Ipv4"
display: "Secondary PCSCF IPv4"
comment: ""
- name: "primaryPcscfIpv6"
type: "ipv6"
value: ""
access: "read-write"
filter: ""
display: "Primary Pcscf Ipv6"
display: "Primary PCSCF IPv6"
comment: ""
- name: "secondaryPcscfIpv6"
type: "ipv6"
value: ""
access: "read-write"
filter: ""
display: "Secondary Pcscf Ipv6"
display: "Secondary PCSCF IPv6"
comment: ""
- name: "ueMtu"
type: "int"
value: ""
access: "read-write"
filter: "0~65535"
display: "Ue MTU"
display: "UE MTU"
comment: ""
upfConfig:
display: "UpfConfig"
display: "UPF Config"
array:
- name: "index"
type: "int"
@@ -164,73 +164,73 @@ smf:
value: ""
access: "read-write"
filter: '1~64'
display: "Upf Id"
display: "UPF Id"
comment: "upfId-1"
- name: "addr"
type: "string"
value: ""
access: "read-write"
filter: '7~45'
display: "Addr"
display: "Address"
comment: "ip:port"
- name: "ipv4Pools"
type: "string"
value: ""
access: "read-write"
filter: '10~256'
display: "Ipv4Pools"
display: "IPv4 Pools"
comment: "CIDR format, e.g. 192.168.1.0/24"
- name: "ipv6Pools"
type: "string"
value: ""
access: "read-write"
filter: '5~512'
display: "Ipv6Pools"
display: "IPv6 Pools"
comment: "CIDR format, e.g. fe80::20c:29ff:fee4:dab7/50"
- name: "staticIpv4Enable"
type: "bool"
value: ""
access: "read-write"
filter: "{\"0\":\"false\", \"1\":\"true\"}"
display: "StaticIpv4Enable"
display: "Static IPv4 Enable"
comment: ""
- name: "staticIpv4Start"
type: "ipv4"
value: ""
access: "read-write"
filter: ''
display: "StaticIpv4Start"
display: "Static IPv4 Start"
comment: "ipv4 format"
- name: "staticIpv4End"
type: "ipv4"
value: ""
access: "read-write"
filter: ''
display: "StaticIpv4End"
display: "Static IPv4 End"
comment: "ipv4 format"
- name: "staticIpv6Enable"
type: "bool"
value: ""
access: "read-write"
filter: "{\"0\":\"false\", \"1\":\"true\"}"
display: "StaticIpv6Enable"
display: "Static IPv6 Enable"
comment: ""
- name: "staticIpv6Start"
type: "ipv6"
value: ""
access: "read-write"
filter: ''
display: "StaticIpv6Start"
display: "Static IPv6 Start"
comment: "ipv6 format"
- name: "staticIpv6End"
type: "ipv6"
value: ""
access: "read-write"
filter: ''
display: "StaticIpv6End"
display: "Static IPv6 End"
comment: "ipv6 format"
dnnSelectUpf:
display: "DnnSelectUpf"
display: "DNN Select UPF"
array:
- name: "index"
type: "int"
@@ -244,17 +244,17 @@ smf:
value: ""
access: "read-write"
filter: '1~64'
display: "Dnn"
display: "DNN"
comment: ""
- name: "upfId"
type: "string"
value: ""
access: "read-write"
filter: '1~64'
display: "Upf Id"
comment: "upf Id"
display: "UPF Id"
comment: "UPF Id"
dnnTaiSelectUpf:
display: "DnnTaiSelectUpf"
display: "DNN TAI Select UPF"
array:
- name: "index"
type: "int"
@@ -268,19 +268,19 @@ smf:
value: ""
access: "read-write"
filter: '1~64'
display: "Dnn"
display: "DNN"
comment: ""
- name: "tai"
type: "string"
value: ""
access: "read-write"
filter: '1~64'
display: "Tai"
display: "TAI"
comment: "46000123456"
- name: "upfId"
type: "string"
value: "upf2-Id"
access: "read-write"
filter: '1~64'
display: "Upf Id"
comment: "upf Id"
display: "UPF Id"
comment: "UPF Id"

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# Makefile for OMC-OMC-crontask project
PROJECT = OMC
VERSION = 2.2311.7
VERSION = 2.2311.8
LIBDIR = ems.agt/lib
BINNAME = crontask

View File

@@ -1,7 +1,7 @@
# Makefile for rest agent project
PROJECT = OMC
VERSION = 2.2311.7
VERSION = 2.2311.8
RelDate = `date +%Y%m%d`
Release = $(RelDate)
RelVer = $(VERSION)-$(RelDate)

View File

@@ -111,3 +111,23 @@ ADD
ALTER TABLE
`omc_db`.`sys_dict_data` MODIFY COLUMN `dict_label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典标签' AFTER `dict_sort`,
MODIFY COLUMN `dict_value` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典键值' AFTER `dict_label`;
ALTER TABLE
`omc_db`.`mml_command`
ADD
COLUMN IF NOT EXISTS `status` enum('Active', 'Inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'Active' COMMENT '激活: Active 未激活: Inactive' AFTER `param_json`;
UPDATE `omc_db`.`mml_command`
SET `status` = 'Inactive'
WHERE
`category` = 'licenseManagement';
ALTER TABLE
`omc_db`.`mml_subscriber`
ADD
COLUMN IF NOT EXISTS `status` enum('Active', 'Inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'Active' COMMENT '激活: Active 未激活: Inactive' AFTER `param_json`;
ALTER TABLE
`omc_db`.`mml_system`
ADD
COLUMN IF NOT EXISTS `status` enum('Active', 'Inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'Active' COMMENT '激活: Active 未激活: Inactive' AFTER `param_json`;

View File

@@ -111,3 +111,23 @@ ADD
ALTER TABLE
`omc_db`.`sys_dict_data` MODIFY COLUMN `dict_label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典标签' AFTER `dict_sort`,
MODIFY COLUMN `dict_value` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典键值' AFTER `dict_label`;
ALTER TABLE
`omc_db`.`mml_command`
ADD
COLUMN IF NOT EXISTS `status` enum('Active', 'Inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'Active' COMMENT '激活: Active 未激活: Inactive' AFTER `param_json`;
UPDATE `omc_db`.`mml_command`
SET `status` = 'Inactive'
WHERE
`category` = 'licenseManagement';
ALTER TABLE
`omc_db`.`mml_subscriber`
ADD
COLUMN IF NOT EXISTS `status` enum('Active', 'Inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'Active' COMMENT '激活: Active 未激活: Inactive' AFTER `param_json`;
ALTER TABLE
`omc_db`.`mml_system`
ADD
COLUMN IF NOT EXISTS `status` enum('Active', 'Inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'Active' COMMENT '激活: Active 未激活: Inactive' AFTER `param_json`;

View File

@@ -57,6 +57,19 @@ type ImsUEInfo struct {
Activetime string `json:"activeTime"`
}
// N3iwfUEInfo N3IWF在线用户信息
type N3iwfUEInfo struct {
IMSI string `json:"imsi"`
NAI string `json:"nai"`
RegState int `json:"regState"`
Activetime string `json:"activeTime"`
}
type N3iwfUEData struct {
Data []N3iwfUEInfo `json:"data"`
}
var (
UriNBInfo = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/nbInfo"
UriUEInfo = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueInfo"

View File

@@ -3,7 +3,7 @@
ProjectL = omc
ProjectU = OMC
PROJECT = $(ProjectL)
VERSION = 2.2311.7
VERSION = 2.2311.8
RelDate = `date +%Y%m%d`
Release = $(RelDate)
RelVer = $(VERSION)-$(RelDate)

View File

@@ -2,7 +2,7 @@
ProcList="restagent crontask sshsvc captrace data2html"
ProjectL=omc
VERSION=2.2311.7
VERSION=2.2311.8
RelDate=`date +%Y%m%d`
Release=$RelDate
RelVer=$VERSION-$RelDate

View File

@@ -1,7 +1,7 @@
# Makefile for rest agent project
PROJECT = OMC
VERSION = 2.2311.7
VERSION = 2.2311.8
PLATFORM = amd64
ARMPLATFORM = aarch64
BUILDDIR = ../../build

View File

@@ -3,5 +3,5 @@ package service
// 通用请求 服务层接口
type ICommont interface {
// SystemConfigInfo 系统配置信息
SystemConfigInfo() map[string]any
SystemConfigInfo() map[string]string
}

View File

@@ -19,8 +19,8 @@ type CommontImpl struct {
}
// SystemConfigInfo 系统配置信息
func (s *CommontImpl) SystemConfigInfo() map[string]any {
infoMap := map[string]any{}
func (s *CommontImpl) SystemConfigInfo() map[string]string {
infoMap := map[string]string{}
// 获取LOGO类型
logoType := s.sysConfigService.SelectConfigValueByKey("sys.logo.type")
infoMap["logoType"] = logoType

View File

@@ -1,127 +0,0 @@
package controller
import (
"fmt"
"strings"
"ems.agt/src/framework/utils/ctx"
"ems.agt/src/framework/utils/parse"
"ems.agt/src/framework/vo/result"
"ems.agt/src/modules/system/model"
"ems.agt/src/modules/system/service"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
)
// 实例化控制层 SysNoticeController 结构体
var NewSysNotice = &SysNoticeController{
sysNoticeService: service.NewSysNoticeImpl,
}
// 通知公告信息
//
// PATH /system/notice
type SysNoticeController struct {
// 公告服务
sysNoticeService service.ISysNotice
}
// 通知公告列表
//
// GET /list
func (s *SysNoticeController) List(c *gin.Context) {
querys := ctx.QueryMap(c)
data := s.sysNoticeService.SelectNoticePage(querys)
c.JSON(200, result.Ok(data))
}
// 通知公告信息
//
// GET /:noticeId
func (s *SysNoticeController) Info(c *gin.Context) {
noticeId := c.Param("noticeId")
if noticeId == "" {
c.JSON(400, result.CodeMsg(400, "parameter error"))
return
}
data := s.sysNoticeService.SelectNoticeById(noticeId)
if data.NoticeID == noticeId {
c.JSON(200, result.OkData(data))
return
}
c.JSON(200, result.Err(nil))
}
// 通知公告新增
//
// POST /
func (s *SysNoticeController) Add(c *gin.Context) {
var body model.SysNotice
err := c.ShouldBindBodyWith(&body, binding.JSON)
if err != nil || body.NoticeID != "" {
c.JSON(400, result.CodeMsg(400, "parameter error"))
return
}
body.CreateBy = ctx.LoginUserToUserName(c)
insertId := s.sysNoticeService.InsertNotice(body)
if insertId != "" {
c.JSON(200, result.Ok(nil))
return
}
c.JSON(200, result.Err(nil))
}
// 通知公告修改
//
// PUT /
func (s *SysNoticeController) Edit(c *gin.Context) {
var body model.SysNotice
err := c.ShouldBindBodyWith(&body, binding.JSON)
if err != nil || body.NoticeID == "" {
c.JSON(400, result.CodeMsg(400, "parameter error"))
return
}
// 检查是否存在
notice := s.sysNoticeService.SelectNoticeById(body.NoticeID)
if notice.NoticeID != body.NoticeID {
// 没有可访问公告信息数据!
c.JSON(200, result.ErrMsg("There is no accessible bulletin information data!"))
return
}
body.UpdateBy = ctx.LoginUserToUserName(c)
rows := s.sysNoticeService.UpdateNotice(body)
if rows > 0 {
c.JSON(200, result.Ok(nil))
return
}
c.JSON(200, result.Err(nil))
}
// 通知公告删除
//
// DELETE /:noticeIds
func (s *SysNoticeController) Remove(c *gin.Context) {
noticeIds := c.Param("noticeIds")
if noticeIds == "" {
c.JSON(400, result.CodeMsg(400, "parameter error"))
return
}
// 处理字符转id数组后去重
ids := strings.Split(noticeIds, ",")
uniqueIDs := parse.RemoveDuplicates(ids)
if len(uniqueIDs) <= 0 {
c.JSON(200, result.Err(nil))
return
}
rows, err := s.sysNoticeService.DeleteNoticeByIds(uniqueIDs)
if err != nil {
c.JSON(200, result.ErrMsg(err.Error()))
return
}
msg := fmt.Sprintf("Deleted successfully: %d", rows)
c.JSON(200, result.OkMsg(msg))
}

View File

@@ -314,18 +314,12 @@ func (r *SysDictDataImpl) UpdateDictData(sysDictData model.SysDictData) int64 {
if sysDictData.DictType != "" {
params["dict_type"] = sysDictData.DictType
}
if sysDictData.TagClass != "" {
params["tag_class"] = sysDictData.TagClass
}
if sysDictData.TagType != "" {
params["tag_type"] = sysDictData.TagType
}
if sysDictData.Status != "" {
params["status"] = sysDictData.Status
}
if sysDictData.Remark != "" {
params["tag_class"] = sysDictData.TagClass
params["tag_type"] = sysDictData.TagType
params["remark"] = sysDictData.Remark
}
if sysDictData.UpdateBy != "" {
params["update_by"] = sysDictData.UpdateBy
params["update_time"] = time.Now().UnixMilli()

View File

@@ -298,9 +298,7 @@ func (r *SysDictTypeImpl) UpdateDictType(sysDictType model.SysDictType) int64 {
if sysDictType.Status != "" {
params["status"] = sysDictType.Status
}
if sysDictType.Remark != "" {
params["remark"] = sysDictType.Remark
}
if sysDictType.UpdateBy != "" {
params["update_by"] = sysDictType.UpdateBy
params["update_time"] = time.Now().UnixMilli()

View File

@@ -1,24 +0,0 @@
package repository
import "ems.agt/src/modules/system/model"
// ISysNotice 通知公告表 数据层接口
type ISysNotice interface {
// SelectNoticePage 分页查询公告列表
SelectNoticePage(query map[string]any) map[string]any
// SelectNoticeList 查询公告列表
SelectNoticeList(sysNotice model.SysNotice) []model.SysNotice
// SelectNoticeById 查询公告信息
SelectNoticeByIds(noticeIds []string) []model.SysNotice
// InsertNotice 新增公告
InsertNotice(sysNotice model.SysNotice) string
// UpdateNotice 修改公告
UpdateNotice(sysNotice model.SysNotice) int64
// DeleteNoticeByIds 批量删除公告信息
DeleteNoticeByIds(noticeIds []string) int64
}

View File

@@ -1,297 +0,0 @@
package repository
import (
"strings"
"time"
"ems.agt/src/framework/datasource"
"ems.agt/src/framework/logger"
"ems.agt/src/framework/utils/date"
"ems.agt/src/framework/utils/parse"
"ems.agt/src/framework/utils/repo"
"ems.agt/src/modules/system/model"
)
// 实例化数据层 SysNoticeImpl 结构体
var NewSysNoticeImpl = &SysNoticeImpl{
selectSql: `select
notice_id, notice_title, notice_type, notice_content, status, del_flag,
create_by, create_time, update_by, update_time, remark from sys_notice`,
resultMap: map[string]string{
"notice_id": "NoticeID",
"notice_title": "NoticeTitle",
"notice_type": "NoticeType",
"notice_content": "NoticeContent",
"status": "Status",
"del_flag": "DelFlag",
"create_by": "CreateBy",
"create_time": "CreateTime",
"update_by": "UpdateBy",
"update_time": "UpdateTime",
"remark": "Remark",
},
}
// SysNoticeImpl 通知公告表 数据层处理
type SysNoticeImpl struct {
// 查询视图对象SQL
selectSql string
// 结果字段与实体映射
resultMap map[string]string
}
// convertResultRows 将结果记录转实体结果组
func (r *SysNoticeImpl) convertResultRows(rows []map[string]any) []model.SysNotice {
arr := make([]model.SysNotice, 0)
for _, row := range rows {
sysNotice := model.SysNotice{}
for key, value := range row {
if keyMapper, ok := r.resultMap[key]; ok {
repo.SetFieldValue(&sysNotice, keyMapper, value)
}
}
arr = append(arr, sysNotice)
}
return arr
}
// SelectNoticePage 分页查询公告列表
func (r *SysNoticeImpl) SelectNoticePage(query map[string]any) map[string]any {
// 查询条件拼接
var conditions []string
var params []any
if v, ok := query["noticeTitle"]; ok && v != "" {
conditions = append(conditions, "notice_title like concat(?, '%')")
params = append(params, v)
}
if v, ok := query["noticeType"]; ok && v != "" {
conditions = append(conditions, "notice_type = ?")
params = append(params, v)
}
if v, ok := query["createBy"]; ok && v != "" {
conditions = append(conditions, "create_by like concat(?, '%')")
params = append(params, v)
}
if v, ok := query["status"]; ok && v != "" {
conditions = append(conditions, "status = ?")
params = append(params, v)
}
beginTime, ok := query["beginTime"]
if !ok {
beginTime, ok = query["params[beginTime]"]
}
if ok && beginTime != "" {
conditions = append(conditions, "create_time >= ?")
beginDate := date.ParseStrToDate(beginTime.(string), date.YYYY_MM_DD)
params = append(params, beginDate.UnixMilli())
}
endTime, ok := query["endTime"]
if !ok {
endTime, ok = query["params[endTime]"]
}
if ok && endTime != "" {
conditions = append(conditions, "create_time <= ?")
endDate := date.ParseStrToDate(endTime.(string), date.YYYY_MM_DD)
params = append(params, endDate.UnixMilli())
}
// 构建查询条件语句
whereSql := " where del_flag = '0' "
if len(conditions) > 0 {
whereSql += " and " + strings.Join(conditions, " and ")
}
// 查询结果
result := map[string]any{
"total": 0,
"rows": []model.SysNotice{},
}
// 查询数量 长度为0直接返回
totalSql := "select count(1) as 'total' from sys_notice"
totalRows, err := datasource.RawDB("", totalSql+whereSql, params)
if err != nil {
logger.Errorf("total err => %v", err)
return result
}
total := parse.Number(totalRows[0]["total"])
if total == 0 {
return result
} else {
result["total"] = total
}
// 分页
pageNum, pageSize := repo.PageNumSize(query["pageNum"], query["pageSize"])
pageSql := " limit ?,? "
params = append(params, pageNum*pageSize)
params = append(params, pageSize)
// 查询数据
querySql := r.selectSql + whereSql + pageSql
results, err := datasource.RawDB("", querySql, params)
if err != nil {
logger.Errorf("query err => %v", err)
}
// 转换实体
result["rows"] = r.convertResultRows(results)
return result
}
// SelectNoticeList 查询公告列表
func (r *SysNoticeImpl) SelectNoticeList(sysNotice model.SysNotice) []model.SysNotice {
// 查询条件拼接
var conditions []string
var params []any
if sysNotice.NoticeTitle != "" {
conditions = append(conditions, "notice_title like concat(?, '%')")
params = append(params, sysNotice.NoticeTitle)
}
if sysNotice.NoticeType != "" {
conditions = append(conditions, "notice_type = ?")
params = append(params, sysNotice.NoticeType)
}
if sysNotice.CreateBy != "" {
conditions = append(conditions, "create_by like concat(?, '%')")
params = append(params, sysNotice.CreateBy)
}
if sysNotice.Status != "" {
conditions = append(conditions, "status = ?")
params = append(params, sysNotice.Status)
}
// 构建查询条件语句
whereSql := " where del_flag = '0' "
if len(conditions) > 0 {
whereSql += " and " + strings.Join(conditions, " and ")
}
// 查询数据
querySql := r.selectSql + whereSql
results, err := datasource.RawDB("", querySql, params)
if err != nil {
logger.Errorf("query err => %v", err)
return []model.SysNotice{}
}
// 转换实体
return r.convertResultRows(results)
}
// SelectNoticeByIds 查询公告信息
func (r *SysNoticeImpl) SelectNoticeByIds(noticeIds []string) []model.SysNotice {
placeholder := repo.KeyPlaceholderByQuery(len(noticeIds))
querySql := r.selectSql + " where notice_id in (" + placeholder + ")"
parameters := repo.ConvertIdsSlice(noticeIds)
results, err := datasource.RawDB("", querySql, parameters)
if err != nil {
logger.Errorf("query err => %v", err)
return []model.SysNotice{}
}
// 转换实体
return r.convertResultRows(results)
}
// InsertNotice 新增公告
func (r *SysNoticeImpl) InsertNotice(sysNotice model.SysNotice) string {
// 参数拼接
params := make(map[string]any)
if sysNotice.NoticeTitle != "" {
params["notice_title"] = sysNotice.NoticeTitle
}
if sysNotice.NoticeType != "" {
params["notice_type"] = sysNotice.NoticeType
}
if sysNotice.NoticeContent != "" {
params["notice_content"] = sysNotice.NoticeContent
}
if sysNotice.Status != "" {
params["status"] = sysNotice.Status
}
if sysNotice.Remark != "" {
params["remark"] = sysNotice.Remark
}
if sysNotice.CreateBy != "" {
params["create_by"] = sysNotice.CreateBy
params["create_time"] = time.Now().UnixMilli()
}
// 构建执行语句
keys, placeholder, values := repo.KeyPlaceholderValueByInsert(params)
sql := "insert into sys_notice (" + strings.Join(keys, ",") + ")values(" + placeholder + ")"
db := datasource.DefaultDB()
// 开启事务
tx := db.Begin()
// 执行插入
err := tx.Exec(sql, values...).Error
if err != nil {
logger.Errorf("insert row : %v", err.Error())
tx.Rollback()
return ""
}
// 获取生成的自增 ID
var insertedID string
err = tx.Raw("select last_insert_id()").Row().Scan(&insertedID)
if err != nil {
logger.Errorf("insert last id : %v", err.Error())
tx.Rollback()
return ""
}
// 提交事务
tx.Commit()
return insertedID
}
// UpdateNotice 修改公告
func (r *SysNoticeImpl) UpdateNotice(sysNotice model.SysNotice) int64 {
// 参数拼接
params := make(map[string]any)
if sysNotice.NoticeTitle != "" {
params["notice_title"] = sysNotice.NoticeTitle
}
if sysNotice.NoticeType != "" {
params["notice_type"] = sysNotice.NoticeType
}
if sysNotice.NoticeContent != "" {
params["notice_content"] = sysNotice.NoticeContent
}
if sysNotice.Status != "" {
params["status"] = sysNotice.Status
}
if sysNotice.Remark != "" {
params["remark"] = sysNotice.Remark
}
if sysNotice.UpdateBy != "" {
params["update_by"] = sysNotice.UpdateBy
params["update_time"] = time.Now().UnixMilli()
}
// 构建执行语句
keys, values := repo.KeyValueByUpdate(params)
sql := "update sys_notice set " + strings.Join(keys, ",") + " where notice_id = ?"
// 执行更新
values = append(values, sysNotice.NoticeID)
rows, err := datasource.ExecDB("", sql, values)
if err != nil {
logger.Errorf("update row : %v", err.Error())
return 0
}
return rows
}
// DeleteNoticeByIds 批量删除公告信息
func (r *SysNoticeImpl) DeleteNoticeByIds(noticeIds []string) int64 {
placeholder := repo.KeyPlaceholderByQuery(len(noticeIds))
sql := "update sys_notice set del_flag = '1' where notice_id in (" + placeholder + ")"
parameters := repo.ConvertIdsSlice(noticeIds)
results, err := datasource.ExecDB("", sql, parameters)
if err != nil {
logger.Errorf("update err => %v", err)
return 0
}
return results
}

View File

@@ -212,9 +212,7 @@ func (r *SysPostImpl) UpdatePost(sysPost model.SysPost) int64 {
if sysPost.Status != "" {
params["status"] = sysPost.Status
}
if sysPost.Remark != "" {
params["remark"] = sysPost.Remark
}
if sysPost.UpdateBy != "" {
params["update_by"] = sysPost.UpdateBy
params["update_time"] = time.Now().UnixMilli()

View File

@@ -296,9 +296,7 @@ func (r *SysRoleImpl) InsertRole(sysRole model.SysRole) string {
if sysRole.Status != "" {
params["status"] = sysRole.Status
}
if sysRole.Remark != "" {
params["remark"] = sysRole.Remark
}
if sysRole.CreateBy != "" {
params["create_by"] = sysRole.CreateBy
params["create_time"] = time.Now().UnixMilli()

View File

@@ -1,24 +0,0 @@
package service
import "ems.agt/src/modules/system/model"
// ISysNotice 公告 服务层接口
type ISysNotice interface {
// SelectNoticePage 分页查询公告列表
SelectNoticePage(query map[string]any) map[string]any
// SelectNoticeList 查询公告列表
SelectNoticeList(sysNotice model.SysNotice) []model.SysNotice
// SelectNoticeById 查询公告信息
SelectNoticeById(noticeId string) model.SysNotice
// InsertNotice 新增公告
InsertNotice(sysNotice model.SysNotice) string
// UpdateNotice 修改公告
UpdateNotice(sysNotice model.SysNotice) int64
// DeleteNoticeByIds 批量删除公告信息
DeleteNoticeByIds(noticeIds []string) (int64, error)
}

View File

@@ -1,73 +0,0 @@
package service
import (
"fmt"
"ems.agt/src/modules/system/model"
"ems.agt/src/modules/system/repository"
)
// 实例化服务层 SysNoticeImpl 结构体
var NewSysNoticeImpl = &SysNoticeImpl{
sysNoticeRepository: repository.NewSysNoticeImpl,
}
// SysNoticeImpl 公告 服务层处理
type SysNoticeImpl struct {
// 公告服务
sysNoticeRepository repository.ISysNotice
}
// SelectNoticePage 分页查询公告列表
func (r *SysNoticeImpl) SelectNoticePage(query map[string]any) map[string]any {
return r.sysNoticeRepository.SelectNoticePage(query)
}
// SelectNoticeList 查询公告列表
func (r *SysNoticeImpl) SelectNoticeList(sysNotice model.SysNotice) []model.SysNotice {
return r.sysNoticeRepository.SelectNoticeList(sysNotice)
}
// SelectNoticeById 查询公告信息
func (r *SysNoticeImpl) SelectNoticeById(noticeId string) model.SysNotice {
if noticeId == "" {
return model.SysNotice{}
}
configs := r.sysNoticeRepository.SelectNoticeByIds([]string{noticeId})
if len(configs) > 0 {
return configs[0]
}
return model.SysNotice{}
}
// InsertNotice 新增公告
func (r *SysNoticeImpl) InsertNotice(sysNotice model.SysNotice) string {
return r.sysNoticeRepository.InsertNotice(sysNotice)
}
// UpdateNotice 修改公告
func (r *SysNoticeImpl) UpdateNotice(sysNotice model.SysNotice) int64 {
return r.sysNoticeRepository.UpdateNotice(sysNotice)
}
// DeleteNoticeByIds 批量删除公告信息
func (r *SysNoticeImpl) DeleteNoticeByIds(noticeIds []string) (int64, error) {
// 检查是否存在
notices := r.sysNoticeRepository.SelectNoticeByIds(noticeIds)
if len(notices) <= 0 {
return 0, fmt.Errorf("there is no accessible bulletin information data")
}
for _, notice := range notices {
// 检查是否为已删除
if notice.DelFlag == "1" {
// 【%s】公告信息已经删除
return 0, fmt.Errorf("the [%s] announcement message has been deleted", notice.NoticeID)
}
}
if len(notices) == len(noticeIds) {
rows := r.sysNoticeRepository.DeleteNoticeByIds(noticeIds)
return rows, nil
}
// 删除公告信息失败!
return 0, fmt.Errorf("failed to delete the announcement message")
}

View File

@@ -218,34 +218,6 @@ func Setup(router *gin.Engine) {
)
}
// 通知公告信息
sysNoticeGroup := router.Group("/system/notice")
{
sysNoticeGroup.GET("/list",
middleware.PreAuthorize(map[string][]string{"hasPerms": {"system:notice:list"}}),
controller.NewSysNotice.List,
)
sysNoticeGroup.GET("/:noticeId",
middleware.PreAuthorize(map[string][]string{"hasPerms": {"system:notice:query"}}),
controller.NewSysNotice.Info,
)
sysNoticeGroup.POST("",
middleware.PreAuthorize(map[string][]string{"hasPerms": {"system:notice:add"}}),
collectlogs.OperateLog(collectlogs.OptionNew("Notice", collectlogs.BUSINESS_TYPE_INSERT)),
controller.NewSysNotice.Add,
)
sysNoticeGroup.PUT("",
middleware.PreAuthorize(map[string][]string{"hasPerms": {"system:notice:edit"}}),
collectlogs.OperateLog(collectlogs.OptionNew("Notice", collectlogs.BUSINESS_TYPE_UPDATE)),
controller.NewSysNotice.Edit,
)
sysNoticeGroup.DELETE("/:noticeIds",
middleware.PreAuthorize(map[string][]string{"hasPerms": {"system:notice:remove"}}),
collectlogs.OperateLog(collectlogs.OptionNew("Notice", collectlogs.BUSINESS_TYPE_DELETE)),
controller.NewSysNotice.Remove,
)
}
// 岗位信息
sysPostGroup := router.Group("/system/post")
{

View File

@@ -1,7 +1,7 @@
# Makefile for OMC-OMC-crontask project
PROJECT = OMC
VERSION = 2.2311.7
VERSION = 2.2311.8
LIBDIR = ems.agt/lib
BINNAME = sshsvc

21
tools/misc/insdeppkg.sh Normal file
View File

@@ -0,0 +1,21 @@
#!/bin/bash
DepPkgDir=/tmp/omc-dep-pkg
lines=22 #这个值是指这个脚本的行数加1指向程序所在开始行
tail +$lines $0 >/tmp/omc-dep-pkg.tar.gz # 利用tail命令把脚本指定行出到文件$0表示脚本本身名称$0是环境变量这个命令用来把从$lines开始的内容写入一个/tmp目录的tar.gz文件里。
echo -n "Decompressing omc depend package ..."
echo "done"
tar xvfz /tmp/omc-dep-pkg.tar.gz -C /tmp 1>/dev/null
if [ ! -e ${DepPkgDir} ]; then
echo "${DepPkgDir}: Not such file or directory"
exit 1
fi
echo -n "Installing omc depend package ..."
for pkgdir in ${DepPkgDir}/*; do
#echo "Installing ${pkgdir} depend package ..."
cd ${pkgdir};
dpkg -i --ignore-depends *.deb 1>/tmp/${pkgdir}.log 2>&1;
done
echo "done"
rm -rf /tmp/omc-dep-pkg*
exit 0