调整UDM用户函数导出CSV文件
This commit is contained in:
@@ -4,7 +4,9 @@ import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"ems.agt/features/udm_user/model"
|
||||
"ems.agt/features/udm_user/service"
|
||||
"ems.agt/lib/core/file"
|
||||
mmlclient "ems.agt/lib/core/mml_client"
|
||||
"ems.agt/lib/core/utils/ctx"
|
||||
"ems.agt/lib/core/vo/result"
|
||||
@@ -42,6 +44,12 @@ func Routers() []services.RouterItem {
|
||||
Handler: apis.UdmAuthUserInfo,
|
||||
Middleware: nil, //midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "POST",
|
||||
Pattern: "/auth/export",
|
||||
Handler: apis.UdmAuthUserExport,
|
||||
Middleware: nil, //midware.Authorize(nil),
|
||||
},
|
||||
// UDM签约用户
|
||||
{
|
||||
Method: "GET",
|
||||
@@ -101,7 +109,7 @@ type UdmUserApi struct {
|
||||
// GET /auths
|
||||
func (s *UdmUserApi) UdmAuthUserList(w http.ResponseWriter, r *http.Request) {
|
||||
querys := ctx.QueryMap(r)
|
||||
data := s.authUser.AuthUserList(querys)
|
||||
data := s.authUser.Page(querys)
|
||||
ctx.JSON(w, 200, result.Ok(data))
|
||||
}
|
||||
|
||||
@@ -109,7 +117,7 @@ func (s *UdmUserApi) UdmAuthUserList(w http.ResponseWriter, r *http.Request) {
|
||||
//
|
||||
// POST /auth/getSave
|
||||
func (s *UdmUserApi) UdmAuthUserSave(w http.ResponseWriter, r *http.Request) {
|
||||
data := s.authUser.AuthUserSave("")
|
||||
data := s.authUser.Save("")
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
}
|
||||
|
||||
@@ -141,12 +149,35 @@ func (s *UdmUserApi) UdmAuthUserInfo(w http.ResponseWriter, r *http.Request) {
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
}
|
||||
|
||||
// UDM鉴权用户-导出
|
||||
//
|
||||
// POST /auth/export
|
||||
func (s *UdmUserApi) UdmAuthUserExport(w http.ResponseWriter, r *http.Request) {
|
||||
list := s.authUser.List(model.UdmAuthUser{})
|
||||
// 文件名
|
||||
fileName := "OMC_AUTH_100.csv"
|
||||
filePath := "C:/AMP/Probject/ems_backend/restagent/OMC_AUTH_100.csv"
|
||||
// 转换数据
|
||||
data := [][]string{}
|
||||
data = append(data, []string{"ID", "Msisdn", "Imsi", "Amf", "Status", "Ki", "AlgoIndex", "Opc"})
|
||||
for _, v := range list {
|
||||
data = append(data, []string{v.ID, v.Msisdn, v.Imsi, v.Amf, v.Status, v.Ki, v.AlgoIndex, v.Opc})
|
||||
}
|
||||
// 输出到文件
|
||||
err := file.WriterCSVFile(data, filePath)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
ctx.FileAttachment(w, r, filePath, fileName)
|
||||
}
|
||||
|
||||
// UDM签约用户
|
||||
//
|
||||
// GET /subs
|
||||
func (s *UdmUserApi) UdmSubUserList(w http.ResponseWriter, r *http.Request) {
|
||||
querys := ctx.QueryMap(r)
|
||||
data := s.subUser.SubUserList(querys)
|
||||
data := s.subUser.Page(querys)
|
||||
ctx.JSON(w, 200, result.Ok(data))
|
||||
}
|
||||
|
||||
@@ -154,7 +185,7 @@ func (s *UdmUserApi) UdmSubUserList(w http.ResponseWriter, r *http.Request) {
|
||||
//
|
||||
// POST /sub/getSave
|
||||
func (s *UdmUserApi) UdmSubUserSave(w http.ResponseWriter, r *http.Request) {
|
||||
data := s.subUser.SubUserSave("")
|
||||
data := s.subUser.Save("")
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ func (r *RepoUdmAuthUser) convertResultRows(rows []map[string]any) []model.UdmAu
|
||||
return arr
|
||||
}
|
||||
|
||||
// SelectPage 根据条件分页查询字典类型
|
||||
// SelectPage 根据条件分页查询
|
||||
func (r *RepoUdmAuthUser) SelectPage(query map[string]any) map[string]any {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
@@ -105,3 +105,56 @@ func (r *RepoUdmAuthUser) SelectPage(query map[string]any) map[string]any {
|
||||
"rows": rows,
|
||||
}
|
||||
}
|
||||
|
||||
// SelectList 根据实体查询
|
||||
func (r *RepoUdmAuthUser) SelectList(auth model.UdmAuthUser) []model.UdmAuthUser {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if auth.Imsi != "" {
|
||||
conditions = append(conditions, "msisdn like concat(?, '%')")
|
||||
params = append(params, auth.Imsi)
|
||||
}
|
||||
if auth.NeID != "" {
|
||||
conditions = append(conditions, "ne_id = ?")
|
||||
params = append(params, auth.NeID)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
querySql := r.selectSql + whereSql
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// Insert 清空ne_id后新增实体
|
||||
func (r *RepoUdmAuthUser) Inserts(neID string, authArr []model.UdmAuthUser) int64 {
|
||||
var num int64 = 0
|
||||
|
||||
// 清空指定ne_id
|
||||
_, err := datasource.ExecDB("", "DELETE FROM u_auth_user WHERE ne_id = ?", []any{neID})
|
||||
if err != nil {
|
||||
log.Errorf("TRUNCATE err => %v", err)
|
||||
return num
|
||||
}
|
||||
|
||||
for _, u := range authArr {
|
||||
u.NeID = neID
|
||||
results, err := datasource.DefaultDB().Table("u_auth_user").Insert(u)
|
||||
if err != nil {
|
||||
return num
|
||||
}
|
||||
num += results
|
||||
}
|
||||
return num
|
||||
}
|
||||
|
||||
@@ -112,3 +112,56 @@ func (r *RepoUdmSubUser) SelectPage(query map[string]any) map[string]any {
|
||||
"rows": rows,
|
||||
}
|
||||
}
|
||||
|
||||
// SelectList 根据实体查询
|
||||
func (r *RepoUdmSubUser) SelectList(auth model.UdmSubUser) []model.UdmSubUser {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if auth.Imsi != "" {
|
||||
conditions = append(conditions, "msisdn like concat(?, '%')")
|
||||
params = append(params, auth.Imsi)
|
||||
}
|
||||
if auth.NeID != "" {
|
||||
conditions = append(conditions, "ne_id = ?")
|
||||
params = append(params, auth.NeID)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
querySql := r.selectSql + whereSql
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// Insert 清空ne_id后新增实体
|
||||
func (r *RepoUdmSubUser) Inserts(neID string, authArr []model.UdmSubUser) int64 {
|
||||
var num int64 = 0
|
||||
|
||||
// 清空指定ne_id
|
||||
// _, err := datasource.ExecDB("", "TRUNCATE TABLE u_sub_user", nil)
|
||||
_, err := datasource.ExecDB("", "DELETE FROM u_sub_user WHERE ne_id = ?", []any{neID})
|
||||
if err != nil {
|
||||
log.Errorf("TRUNCATE err => %v", err)
|
||||
}
|
||||
|
||||
for _, u := range authArr {
|
||||
u.NeID = neID
|
||||
results, err := datasource.DefaultDB().Table("u_sub_user").Insert(u)
|
||||
if err != nil {
|
||||
return num
|
||||
}
|
||||
num += results
|
||||
}
|
||||
return num
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"ems.agt/features/udm_user/model"
|
||||
"ems.agt/features/udm_user/repo"
|
||||
"ems.agt/lib/core/datasource"
|
||||
"ems.agt/lib/log"
|
||||
)
|
||||
|
||||
// 实例化服务层 ServiceUdmAuthUser 结构体
|
||||
@@ -16,32 +15,23 @@ type ServiceUdmAuthUser struct {
|
||||
repoAuthUser repo.RepoUdmAuthUser
|
||||
}
|
||||
|
||||
// AuthUserSave UDM鉴权用户-获取全部保存数据库
|
||||
func (r *ServiceUdmAuthUser) AuthUserSave(neID string) int64 {
|
||||
// Save UDM鉴权用户-获取全部保存数据库
|
||||
func (r *ServiceUdmAuthUser) Save(neID string) int64 {
|
||||
var num int64 = 0
|
||||
authArr := redisUdmAuthUserList()
|
||||
// 有数据才清空
|
||||
if len(authArr) == 0 {
|
||||
return num
|
||||
}
|
||||
|
||||
_, err := datasource.ExecDB("", "DELETE FROM u_auth_user WHERE ne_id = ?", []any{neID})
|
||||
if err != nil {
|
||||
log.Errorf("TRUNCATE err => %v", err)
|
||||
}
|
||||
|
||||
for _, u := range authArr {
|
||||
results, err := datasource.DefaultDB().Table("u_auth_user").Insert(u)
|
||||
if err != nil {
|
||||
log.Errorf("Insert err => %v", err)
|
||||
return 0
|
||||
}
|
||||
num += results
|
||||
}
|
||||
return num
|
||||
return r.repoAuthUser.Inserts(neID, authArr)
|
||||
}
|
||||
|
||||
// SubUserSave UDM签约用户-分页查询数据库
|
||||
func (r *ServiceUdmAuthUser) AuthUserList(query map[string]any) map[string]any {
|
||||
// Page UDM签约用户-分页查询数据库
|
||||
func (r *ServiceUdmAuthUser) Page(query map[string]any) map[string]any {
|
||||
return r.repoAuthUser.SelectPage(query)
|
||||
}
|
||||
|
||||
// List UDM签约用户-查询数据库
|
||||
func (r *ServiceUdmAuthUser) List(authUser model.UdmAuthUser) []model.UdmAuthUser {
|
||||
return r.repoAuthUser.SelectList(authUser)
|
||||
}
|
||||
|
||||
@@ -1,50 +1,37 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"ems.agt/features/udm_user/model"
|
||||
"ems.agt/features/udm_user/repo"
|
||||
"ems.agt/lib/core/datasource"
|
||||
"ems.agt/lib/log"
|
||||
)
|
||||
|
||||
// 实例化服务层 ServiceUdmSubUser 结构体
|
||||
var NewServiceUdmSubUser = &ServiceUdmSubUser{
|
||||
repoAuthUser: *repo.NewRepoUdmAuthUser,
|
||||
repoSunUser: *repo.NewRepoUdmSubUser,
|
||||
repoSunUser: *repo.NewRepoUdmSubUser,
|
||||
}
|
||||
|
||||
// ServiceUdmSubUser UDM签约用户 服务层处理
|
||||
type ServiceUdmSubUser struct {
|
||||
repoAuthUser repo.RepoUdmAuthUser
|
||||
repoSunUser repo.RepoUdmSubUser
|
||||
repoSunUser repo.RepoUdmSubUser
|
||||
}
|
||||
|
||||
// SubUserSave UDM签约用户-获取全部保存数据库
|
||||
func (r *ServiceUdmSubUser) SubUserSave(neID string) int64 {
|
||||
// Save UDM签约用户-获取全部保存数据库
|
||||
func (r *ServiceUdmSubUser) Save(neID string) int64 {
|
||||
var num int64 = 0
|
||||
subArr := redisUdmSubUserList()
|
||||
// 有数据才清空
|
||||
if len(subArr) == 0 {
|
||||
return num
|
||||
}
|
||||
|
||||
// _, err := datasource.ExecDB("", "TRUNCATE TABLE u_sub_user", nil)
|
||||
_, err := datasource.ExecDB("", "DELETE FROM u_sub_user WHERE ne_id = ?", []any{neID})
|
||||
if err != nil {
|
||||
log.Errorf("TRUNCATE err => %v", err)
|
||||
}
|
||||
|
||||
for _, u := range subArr {
|
||||
results, err := datasource.DefaultDB().Table("u_sub_user").Insert(u)
|
||||
if err != nil {
|
||||
log.Errorf("Insert err => %v", err)
|
||||
return 0
|
||||
}
|
||||
num += results
|
||||
}
|
||||
return num
|
||||
return r.repoSunUser.Inserts(neID, subArr)
|
||||
}
|
||||
|
||||
// SubUserSave UDM签约用户-分页查询数据库
|
||||
func (r *ServiceUdmSubUser) SubUserList(query map[string]any) map[string]any {
|
||||
// Page UDM签约用户-分页查询数据库
|
||||
func (r *ServiceUdmSubUser) Page(query map[string]any) map[string]any {
|
||||
return r.repoSunUser.SelectPage(query)
|
||||
}
|
||||
|
||||
// List UDM签约用户-查询数据库
|
||||
func (r *ServiceUdmSubUser) List(subUser model.UdmSubUser) []model.UdmSubUser {
|
||||
return r.repoSunUser.SelectList(subUser)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user