fix: ne type PSAP to MF
This commit is contained in:
@@ -2,9 +2,9 @@ SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for cdr_event_psap
|
||||
-- Table structure for cdr_event_mf
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `cdr_event_psap`;
|
||||
DROP TABLE IF EXISTS `cdr_event_mf`;
|
||||
CREATE TABLE `cdr_event_ims` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
|
||||
@@ -701,6 +701,6 @@ INSERT INTO `sys_dict_data` VALUES (2190, 2190, 'menu.dashboard.overview.smfUeNu
|
||||
INSERT INTO `sys_dict_data` VALUES (2191, 2191, 'menu.dashboard.overview.imsUeNum', '展示语音会话数', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2192, 2192, 'menu.dashboard.overview.gnbBase', '展示5G基站在线信息', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2193, 2193, 'menu.dashboard.overview.enbBase', '展示4G基站在线信息', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2194, 2194, 'log.operate.title.psapCDR', 'PSAP话单', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2194, 2194, 'log.operate.title.mfCDR', 'MF话单', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -701,6 +701,6 @@ INSERT INTO `sys_dict_data` VALUES (4190, 4190, 'menu.dashboard.overview.smfUeNu
|
||||
INSERT INTO `sys_dict_data` VALUES (4191, 4191, 'menu.dashboard.overview.imsUeNum', 'Display the number of voice sessions', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4192, 4192, 'menu.dashboard.overview.gnbBase', 'Display 5G base station online information', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4193, 4193, 'menu.dashboard.overview.enbBase', 'Display 4G base station online information', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4194, 4194, 'log.operate.title.psapCDR', 'PSAP call detail record', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4194, 4194, 'log.operate.title.mfCDR', 'MF call detail record', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -18,9 +18,9 @@ SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for cdr_event_psap
|
||||
-- Table structure for cdr_event_mf
|
||||
-- ----------------------------
|
||||
CREATE TABLE IF NOT EXISTS `cdr_event_psap` (
|
||||
CREATE TABLE IF NOT EXISTS `cdr_event_mf` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
|
||||
@@ -708,6 +708,6 @@ REPLACE INTO `sys_dict_data` VALUES (2190, 2190, 'menu.dashboard.overview.smfUeN
|
||||
REPLACE INTO `sys_dict_data` VALUES (2191, 2191, 'menu.dashboard.overview.imsUeNum', '展示语音会话数', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2192, 2192, 'menu.dashboard.overview.gnbBase', '展示5G基站在线信息', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2193, 2193, 'menu.dashboard.overview.enbBase', '展示4G基站在线信息', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2194, 2194, 'log.operate.title.psapCDR', 'PSAP话单', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2194, 2194, 'log.operate.title.mfCDR', 'MF话单', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -707,6 +707,6 @@ REPLACE INTO `sys_dict_data` VALUES (4190, 4190, 'menu.dashboard.overview.smfUeN
|
||||
REPLACE INTO `sys_dict_data` VALUES (4191, 4191, 'menu.dashboard.overview.imsUeNum', 'Display the number of voice sessions', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4192, 4192, 'menu.dashboard.overview.gnbBase', 'Display 5G base station online information', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4193, 4193, 'menu.dashboard.overview.enbBase', 'Display 4G base station online information', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4194, 4194, 'log.operate.title.psapCDR', 'PSAP call detail record', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4194, 4194, 'log.operate.title.mfCDR', 'MF call detail record', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -16,28 +16,28 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// 实例化控制层 PSAPController 结构体
|
||||
var NewPSAP = &PSAPController{
|
||||
// 实例化控制层 MFController 结构体
|
||||
var NewMF = &MFController{
|
||||
neInfoService: neService.NewNeInfo,
|
||||
cdrEventService: neDataService.NewCDREventPSAP,
|
||||
cdrEventService: neDataService.NewCDREventMF,
|
||||
}
|
||||
|
||||
// 网元PSAP
|
||||
// 网元MF
|
||||
//
|
||||
// PATH /psap
|
||||
type PSAPController struct {
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
cdrEventService *neDataService.CDREventPSAP // CDR会话事件服务
|
||||
// PATH /mf
|
||||
type MFController struct {
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
cdrEventService *neDataService.CDREventMF // CDR会话事件服务
|
||||
}
|
||||
|
||||
// CDR会话列表
|
||||
//
|
||||
// GET /cdr/list
|
||||
//
|
||||
// @Tags network_data/psap
|
||||
// @Tags network_data/mf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type only PSAP" Enums(PSAP)
|
||||
// @Param neType query string true "NE Type only MF" Enums(MF)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param callerParty query string false "callerParty"
|
||||
// @Param calledParty query string false "calledParty"
|
||||
@@ -47,10 +47,10 @@ type PSAPController struct {
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session List
|
||||
// @Description CDR Session List
|
||||
// @Router /neData/psap/cdr/list [get]
|
||||
func (s *PSAPController) CDRList(c *gin.Context) {
|
||||
// @Router /neData/mf/cdr/list [get]
|
||||
func (s *MFController) CDRList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys model.CDREventPSAPQuery
|
||||
var querys model.CDREventMFQuery
|
||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
@@ -73,7 +73,7 @@ func (s *PSAPController) CDRList(c *gin.Context) {
|
||||
//
|
||||
// DELETE /cdr/:cdrIds
|
||||
//
|
||||
// @Tags network_data/psap
|
||||
// @Tags network_data/mf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param cdrIds path string true "list data id, multiple separated by a , sign"
|
||||
@@ -81,8 +81,8 @@ func (s *PSAPController) CDRList(c *gin.Context) {
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session Delete
|
||||
// @Description CDR Session Delete
|
||||
// @Router /neData/psap/cdr/{cdrIds} [delete]
|
||||
func (s *PSAPController) CDRRemove(c *gin.Context) {
|
||||
// @Router /neData/mf/cdr/{cdrIds} [delete]
|
||||
func (s *MFController) CDRRemove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
cdrIds := c.Param("cdrIds")
|
||||
if cdrIds == "" {
|
||||
@@ -109,7 +109,7 @@ func (s *PSAPController) CDRRemove(c *gin.Context) {
|
||||
//
|
||||
// POST /cdr/export
|
||||
//
|
||||
// @Tags network_data/psap
|
||||
// @Tags network_data/mf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
@@ -117,11 +117,11 @@ func (s *PSAPController) CDRRemove(c *gin.Context) {
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session List Export
|
||||
// @Description CDR Session List Export
|
||||
// @Router /neData/psap/cdr/export [post]
|
||||
func (s *PSAPController) CDRExport(c *gin.Context) {
|
||||
// @Router /neData/mf/cdr/export [post]
|
||||
func (s *MFController) CDRExport(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 查询结果,根据查询条件结果,单页最大值限制
|
||||
var querys model.CDREventPSAPQuery
|
||||
var querys model.CDREventMFQuery
|
||||
if err := c.ShouldBindBodyWithJSON(&querys); err != nil {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
@@ -145,7 +145,7 @@ func (s *PSAPController) CDRExport(c *gin.Context) {
|
||||
}
|
||||
|
||||
// 导出文件名称
|
||||
fileName := fmt.Sprintf("psap_cdr_event_export_%d_%d.xlsx", len(rows), time.Now().UnixMilli())
|
||||
fileName := fmt.Sprintf("mf_cdr_event_export_%d_%d.xlsx", len(rows), time.Now().UnixMilli())
|
||||
// 导出数据表格
|
||||
saveFilePath, err := s.cdrEventService.ExportXlsx(rows, fileName, language)
|
||||
if err != nil {
|
||||
|
||||
@@ -2,8 +2,8 @@ package model
|
||||
|
||||
import "time"
|
||||
|
||||
// CDREventPSAP CDR会话对象PSAP cdr_event_psap
|
||||
type CDREventPSAP struct {
|
||||
// CDREventMF CDR会话对象MF cdr_event_mf
|
||||
type CDREventMF struct {
|
||||
ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
||||
NeType string `json:"neType" gorm:"column:ne_type"`
|
||||
NeName string `json:"neName" gorm:"column:ne_name"`
|
||||
@@ -14,13 +14,13 @@ type CDREventPSAP struct {
|
||||
}
|
||||
|
||||
// TableName 表名称
|
||||
func (*CDREventPSAP) TableName() string {
|
||||
return "cdr_event_psap"
|
||||
func (*CDREventMF) TableName() string {
|
||||
return "cdr_event_mf"
|
||||
}
|
||||
|
||||
// CDREventPSAPQuery CDR会话对象PSAP查询参数结构体
|
||||
type CDREventPSAPQuery struct {
|
||||
NeType string `json:"neType" form:"neType" binding:"required,oneof=PSAP"` // 网元类型PSAP
|
||||
// CDREventMFQuery CDR会话对象MF查询参数结构体
|
||||
type CDREventMFQuery struct {
|
||||
NeType string `json:"neType" form:"neType" binding:"required,oneof=MF"` // 网元类型MF
|
||||
NeID string `json:"neId" form:"neId" binding:"required"`
|
||||
RmUID string `json:"rmUID" form:"rmUID"`
|
||||
RecordType string `json:"recordType" form:"recordType"` // 记录行为 MOC MTC
|
||||
|
||||
@@ -59,22 +59,22 @@ func Setup(router *gin.Engine) {
|
||||
)
|
||||
}
|
||||
|
||||
// 网元PSAP
|
||||
psapGroup := neDataGroup.Group("/psap")
|
||||
// 网元MF
|
||||
mfGroup := neDataGroup.Group("/mf")
|
||||
{
|
||||
psapGroup.GET("/cdr/list",
|
||||
mfGroup.GET("/cdr/list",
|
||||
middleware.PreAuthorize(nil),
|
||||
controller.NewPSAP.CDRList,
|
||||
controller.NewMF.CDRList,
|
||||
)
|
||||
psapGroup.DELETE("/cdr/:cdrIds",
|
||||
mfGroup.DELETE("/cdr/:cdrIds",
|
||||
middleware.PreAuthorize(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.psapCDR", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewPSAP.CDRRemove,
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.mfCDR", collectlogs.BUSINESS_TYPE_DELETE)),
|
||||
controller.NewMF.CDRRemove,
|
||||
)
|
||||
psapGroup.POST("/cdr/export",
|
||||
mfGroup.POST("/cdr/export",
|
||||
middleware.PreAuthorize(nil),
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.psapCDR", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewPSAP.CDRExport,
|
||||
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.mfCDR", collectlogs.BUSINESS_TYPE_EXPORT)),
|
||||
controller.NewMF.CDRExport,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -9,15 +9,15 @@ import (
|
||||
"be.ems/src/modules/network_data/model"
|
||||
)
|
||||
|
||||
// 实例化数据层 CDREventPSAP 结构体
|
||||
var NewCDREventPSAP = &CDREventPSAP{}
|
||||
// 实例化数据层 CDREventMF 结构体
|
||||
var NewCDREventMF = &CDREventMF{}
|
||||
|
||||
// CDREventPSAP CDR会话事件 数据层处理
|
||||
type CDREventPSAP struct{}
|
||||
// CDREventMF CDR会话事件 数据层处理
|
||||
type CDREventMF struct{}
|
||||
|
||||
// SelectByPage 分页查询集合
|
||||
func (r CDREventPSAP) SelectByPage(querys model.CDREventPSAPQuery) ([]model.CDREventPSAP, int64) {
|
||||
tx := datasource.DB("").Model(&model.CDREventPSAP{})
|
||||
func (r CDREventMF) SelectByPage(querys model.CDREventMFQuery) ([]model.CDREventMF, int64) {
|
||||
tx := datasource.DB("").Model(&model.CDREventMF{})
|
||||
// 查询条件拼接
|
||||
if querys.NeType != "" {
|
||||
tx = tx.Where("ne_type = ?", querys.NeType)
|
||||
@@ -57,7 +57,7 @@ func (r CDREventPSAP) SelectByPage(querys model.CDREventPSAPQuery) ([]model.CDRE
|
||||
|
||||
// 查询结果
|
||||
var total int64 = 0
|
||||
rows := []model.CDREventPSAP{}
|
||||
rows := []model.CDREventMF{}
|
||||
|
||||
// 查询数量为0直接返回
|
||||
if err := tx.Count(&total).Error; err != nil || total <= 0 {
|
||||
@@ -85,12 +85,12 @@ func (r CDREventPSAP) SelectByPage(querys model.CDREventPSAPQuery) ([]model.CDRE
|
||||
}
|
||||
|
||||
// SelectByIds 通过ID查询
|
||||
func (r *CDREventPSAP) SelectByIds(ids []string) []model.CDREventPSAP {
|
||||
rows := []model.CDREventPSAP{}
|
||||
func (r *CDREventMF) SelectByIds(ids []string) []model.CDREventMF {
|
||||
rows := []model.CDREventMF{}
|
||||
if len(ids) <= 0 {
|
||||
return rows
|
||||
}
|
||||
tx := datasource.DB("").Model(&model.CDREventPSAP{})
|
||||
tx := datasource.DB("").Model(&model.CDREventMF{})
|
||||
// 构建查询条件
|
||||
tx = tx.Where("id in ?", ids)
|
||||
// 查询数据
|
||||
@@ -102,12 +102,12 @@ func (r *CDREventPSAP) SelectByIds(ids []string) []model.CDREventPSAP {
|
||||
}
|
||||
|
||||
// DeleteByIds 批量删除信息
|
||||
func (r *CDREventPSAP) DeleteByIds(ids []string) int64 {
|
||||
func (r *CDREventMF) DeleteByIds(ids []string) int64 {
|
||||
if len(ids) <= 0 {
|
||||
return 0
|
||||
}
|
||||
tx := datasource.DB("").Where("id in ?", ids)
|
||||
if err := tx.Delete(&model.CDREventPSAP{}).Error; err != nil {
|
||||
if err := tx.Delete(&model.CDREventMF{}).Error; err != nil {
|
||||
logger.Errorf("delete err => %v", err.Error())
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -15,31 +15,31 @@ import (
|
||||
sysService "be.ems/src/modules/system/service"
|
||||
)
|
||||
|
||||
// 实例化数据层 CDREventPSAP 结构体
|
||||
var NewCDREventPSAP = &CDREventPSAP{
|
||||
cdrEventPSAPRepository: repository.NewCDREventPSAP,
|
||||
// 实例化数据层 CDREventMF 结构体
|
||||
var NewCDREventMF = &CDREventMF{
|
||||
cdrEventMFRepository: repository.NewCDREventMF,
|
||||
}
|
||||
|
||||
// CDREventImpl CDR会话事件PSAP 服务层处理
|
||||
type CDREventPSAP struct {
|
||||
cdrEventPSAPRepository *repository.CDREventPSAP // CDR会话事件数据信息
|
||||
// CDREventImpl CDR会话事件MF 服务层处理
|
||||
type CDREventMF struct {
|
||||
cdrEventMFRepository *repository.CDREventMF // CDR会话事件数据信息
|
||||
}
|
||||
|
||||
// SelectPage 根据条件分页查询
|
||||
func (r *CDREventPSAP) SelectPage(querys model.CDREventPSAPQuery) ([]model.CDREventPSAP, int64) {
|
||||
return r.cdrEventPSAPRepository.SelectByPage(querys)
|
||||
func (r *CDREventMF) SelectPage(querys model.CDREventMFQuery) ([]model.CDREventMF, int64) {
|
||||
return r.cdrEventMFRepository.SelectByPage(querys)
|
||||
}
|
||||
|
||||
// DeleteByIds 批量删除信息
|
||||
func (r *CDREventPSAP) DeleteByIds(cdrIds []string) (int64, error) {
|
||||
func (r *CDREventMF) DeleteByIds(cdrIds []string) (int64, error) {
|
||||
// 检查是否存在
|
||||
ids := r.cdrEventPSAPRepository.SelectByIds(cdrIds)
|
||||
ids := r.cdrEventMFRepository.SelectByIds(cdrIds)
|
||||
if len(ids) <= 0 {
|
||||
return 0, fmt.Errorf("not data")
|
||||
}
|
||||
|
||||
if len(ids) == len(cdrIds) {
|
||||
rows := r.cdrEventPSAPRepository.DeleteByIds(cdrIds)
|
||||
rows := r.cdrEventMFRepository.DeleteByIds(cdrIds)
|
||||
return rows, nil
|
||||
}
|
||||
// 删除信息失败!
|
||||
@@ -47,7 +47,7 @@ func (r *CDREventPSAP) DeleteByIds(cdrIds []string) (int64, error) {
|
||||
}
|
||||
|
||||
// ExportXlsx 导出数据到 xlsx 文件
|
||||
func (r CDREventPSAP) ExportXlsx(rows []model.CDREventPSAP, fileName, language string) (string, error) {
|
||||
func (r CDREventMF) ExportXlsx(rows []model.CDREventMF, fileName, language string) (string, error) {
|
||||
// 第一行表头标题
|
||||
headerCells := map[string]string{
|
||||
"A1": "ID",
|
||||
|
||||
@@ -19,7 +19,7 @@ func (r NeInfo) neListSort(arr []model.NeInfo) []model.NeInfo {
|
||||
// neListSort 网元列表预设排序
|
||||
var list = []string{
|
||||
"OMC",
|
||||
"PSAP",
|
||||
"MF",
|
||||
}
|
||||
|
||||
// 创建优先级映射
|
||||
|
||||
Reference in New Issue
Block a user