user commit1
This commit is contained in:
801
services/dev/mastermenuuser.services.go
Normal file
801
services/dev/mastermenuuser.services.go
Normal file
@@ -0,0 +1,801 @@
|
||||
package dev_services
|
||||
|
||||
import (
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
"fmt"
|
||||
|
||||
dbx "cpone/package/database"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func NewServicesMasterMenuUser(uStore db.AppStore) *ServicesMasterMenuUser {
|
||||
|
||||
return &ServicesMasterMenuUser{
|
||||
|
||||
MasterMenuUserStore: uStore,
|
||||
}
|
||||
}
|
||||
|
||||
type ServicesMasterMenuUser struct {
|
||||
MasterMenuUserStore db.AppStore
|
||||
}
|
||||
|
||||
func (su *ServicesMasterMenuUser) GetMasterMenus() ([]MasterMenu, error) {
|
||||
|
||||
// dummyBreadcrumb := []Breadcrumb{
|
||||
// {
|
||||
// Name: "Dashboard",
|
||||
// Url: "/client/dashboard",
|
||||
// },
|
||||
// {
|
||||
// Name: "Front Office",
|
||||
// Url: "/client/usermanagement",
|
||||
// },
|
||||
// }
|
||||
|
||||
dummyMenu := []MasterMenu{
|
||||
// 1. Dashboard
|
||||
{
|
||||
ID: "1",
|
||||
ParentMenuID: "0",
|
||||
ParentMenuName: "Dashboard",
|
||||
ParentUrl: "/client/md/dashboard",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "1",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Master User",
|
||||
ChildrenMenuURL: "/client/md/user",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 2. Front Office
|
||||
{
|
||||
ID: "2",
|
||||
ParentMenuID: "1",
|
||||
ParentMenuName: "Front Office",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "1",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Registrasi",
|
||||
ChildrenMenuURL: "/fo/registrasi",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 3. Station
|
||||
{
|
||||
ID: "3",
|
||||
ParentMenuID: "2",
|
||||
ParentMenuName: "Station",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "2",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Sample Station",
|
||||
ChildrenMenuURL: "/station/sample",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 4. Management MCU
|
||||
{
|
||||
ID: "4",
|
||||
ParentMenuID: "3",
|
||||
ParentMenuName: "Management MCU",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "3",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Setup MCU",
|
||||
ChildrenMenuURL: "/mcu/setup",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
{
|
||||
ChildrenParentID: "3",
|
||||
ChildrenMenuID: "2",
|
||||
ChildrenMenuName: "Pre-Registrasi",
|
||||
ChildrenMenuURL: "/mcu/preregister",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 5. Master Data
|
||||
{
|
||||
ID: "5",
|
||||
ParentMenuID: "4",
|
||||
ParentMenuName: "Master Data",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
// * Master User
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Master User",
|
||||
ChildrenMenuURL: "/client/md/user",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Master User Group
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "2",
|
||||
ChildrenMenuName: "Master User Group",
|
||||
ChildrenMenuURL: "/client/md/usergroup",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Master Corporate
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "3",
|
||||
ChildrenMenuName: "Corporate",
|
||||
ChildrenMenuURL: "/client/md/corp",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Test
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "4",
|
||||
ChildrenMenuName: "Test",
|
||||
ChildrenMenuURL: "/client/md/test",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Bahan
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "5",
|
||||
ChildrenMenuName: "Bahan",
|
||||
ChildrenMenuURL: "/client/md/bahan",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Sample Type
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "6",
|
||||
ChildrenMenuName: "Sample Type",
|
||||
ChildrenMenuURL: "/client/sample/type",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Sample Station
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "7",
|
||||
ChildrenMenuName: "Sample Station",
|
||||
ChildrenMenuURL: "/station/sample",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Result Non Lab
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "8",
|
||||
ChildrenMenuName: "Result Non Lab",
|
||||
ChildrenMenuURL: "/client/md/resultnonlab",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Template Fisik
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "9",
|
||||
ChildrenMenuName: "Template Fisik",
|
||||
ChildrenMenuURL: "/client/md/template-fisik",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Pasien
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "10",
|
||||
ChildrenMenuName: "Pasien",
|
||||
ChildrenMenuURL: "/client/md/pasien",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Dokter
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "11",
|
||||
ChildrenMenuName: "Dokter",
|
||||
ChildrenMenuURL: "/client/md/dokter",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Paket
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "12",
|
||||
ChildrenMenuName: "Paket",
|
||||
ChildrenMenuURL: "/client/md/paket",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Harga Single
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "13",
|
||||
ChildrenMenuName: "Harga Single",
|
||||
ChildrenMenuURL: "/client/md/hargasingle",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return dummyMenu, nil
|
||||
}
|
||||
|
||||
func (ug *ServicesMasterMenuUser) GetUserGroup() ([]models.UserGroup, error) {
|
||||
data := []models.UserGroup{
|
||||
{UserGroupID: 1, UserGroupKode: "A", UserGroupName: "UG1"},
|
||||
{UserGroupID: 2, UserGroupKode: "B", UserGroupName: "UG2"},
|
||||
{UserGroupID: 3, UserGroupKode: "C", UserGroupName: "UG3"},
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
func (su *ServicesMasterMenuUser) GetListBreadCrumb(title string) (models.BreadCrumbV1, error) {
|
||||
var ret models.BreadCrumbV1
|
||||
|
||||
dummyBreadcrumb := []models.BreadCrumbV1{
|
||||
{
|
||||
Title: "Master User Group",
|
||||
Item: []models.ItemBreadCrumbV1{
|
||||
{
|
||||
Item: "Dashboard",
|
||||
Url: "/dev/dashboard",
|
||||
},
|
||||
{
|
||||
Item: "Master",
|
||||
Url: "/dev/master",
|
||||
},
|
||||
{
|
||||
Item: "User Group",
|
||||
Url: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
Title: "Master User",
|
||||
Item: []models.ItemBreadCrumbV1{
|
||||
{
|
||||
Item: "Dashboard",
|
||||
Url: "/dev/dashboard",
|
||||
},
|
||||
{
|
||||
Item: "Master",
|
||||
Url: "/dev/master",
|
||||
},
|
||||
{
|
||||
Item: "User",
|
||||
Url: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, breadcrumb := range dummyBreadcrumb {
|
||||
// if utils.Contains(breadcrumb.Title, title) {
|
||||
// ret = breadcrumb
|
||||
// return ret, nil
|
||||
// }
|
||||
if breadcrumb.Title == title {
|
||||
ret = breadcrumb
|
||||
return ret, nil
|
||||
}
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
// try
|
||||
func (su *ServicesMasterMenuUser) GetListMasterUser() ([]models.MasterUser, error) {
|
||||
var userList []models.MasterUser
|
||||
|
||||
query := `
|
||||
SELECT
|
||||
ROW_NUMBER() OVER () AS nomor,
|
||||
IFNULL(M_UserEmail, '') AS M_UserEmail,
|
||||
IFNULL(M_UserFullName, '') AS M_UserFullName,
|
||||
IFNULL(M_UserLastAccess, '') AS M_UserLastAccess,
|
||||
IFNULL(M_UserIsLoggedIn, '') AS M_UserIsLoggedIn,
|
||||
IFNULL(M_UserActiveToken, '') AS M_UserActiveToken,
|
||||
IFNULL(M_UserExpiredToken, '') AS M_UserExpiredToken,
|
||||
IFNULL(M_UserIsActive, '') AS M_UserIsActive,
|
||||
IFNULL(M_UserCreated, '') AS M_UserCreated,
|
||||
IFNULL(M_UserCreatedUserID, '') AS M_UserCreatedUserID,
|
||||
IFNULL(M_UserLastUpdated, '') AS M_UserLastUpdated,
|
||||
IFNULL(M_UserLastUpdatedUserID, '') AS M_UserLastUpdatedUserID,
|
||||
IFNULL(M_UserDeletedUserID, '') AS M_UserDeletedUserID,
|
||||
IFNULL(M_UserDeleted, '') AS M_UserDeleted,
|
||||
IFNULL(M_UserGroupCode, '') AS M_UserGroupCode,
|
||||
IFNULL(M_UserGroupName, '') AS M_UserGroupName,
|
||||
IFNULL(M_UserM_UserGroupID, '') AS M_UserM_UserGroupID,
|
||||
IFNULL(M_UserGroupID, '') AS M_UserGroupID
|
||||
FROM
|
||||
m_user
|
||||
JOIN m_usergroup
|
||||
ON M_UserM_UserGroupID = M_UserGroupID
|
||||
AND M_UserIsActive = 'Y'
|
||||
AND M_UserGroupIsActive = 'Y'
|
||||
ORDER BY M_UserGroupID ASC
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&userList, query); err != nil {
|
||||
return nil, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
|
||||
return userList, nil
|
||||
}
|
||||
|
||||
func (su *ServicesMasterMenuUser) GetListMasterUserFilteredBySearch(search string) ([]models.MasterUser, error) {
|
||||
var userList []models.MasterUser
|
||||
|
||||
query := `
|
||||
SELECT
|
||||
ROW_NUMBER() OVER () AS nomor,
|
||||
M_UserID,
|
||||
IFNULL(M_UserEmail, '') AS M_UserEmail,
|
||||
IFNULL(M_UserFullName, '') AS M_UserFullName,
|
||||
IFNULL(M_UserLastAccess, '') AS M_UserLastAccess,
|
||||
IFNULL(M_UserIsLoggedIn, '') AS M_UserIsLoggedIn,
|
||||
IFNULL(M_UserActiveToken, '') AS M_UserActiveToken,
|
||||
IFNULL(M_UserExpiredToken, '') AS M_UserExpiredToken,
|
||||
IFNULL(M_UserIsActive, '') AS M_UserIsActive,
|
||||
IFNULL(M_UserCreated, '') AS M_UserCreated,
|
||||
IFNULL(M_UserCreatedUserID, '') AS M_UserCreatedUserID,
|
||||
IFNULL(M_UserLastUpdated, '') AS M_UserLastUpdated,
|
||||
IFNULL(M_UserLastUpdatedUserID, '') AS M_UserLastUpdatedUserID,
|
||||
IFNULL(M_UserDeletedUserID, '') AS M_UserDeletedUserID,
|
||||
IFNULL(M_UserDeleted, '') AS M_UserDeleted,
|
||||
IFNULL(M_UserGroupCode, '') AS M_UserGroupCode,
|
||||
IFNULL(M_UserGroupName, '') AS M_UserGroupName,
|
||||
IFNULL(M_UserM_UserGroupID, '') AS M_UserM_UserGroupID,
|
||||
IFNULL(M_UserGroupID, '') AS M_UserGroupID
|
||||
FROM
|
||||
m_user
|
||||
JOIN m_usergroup
|
||||
ON M_UserM_UserGroupID = M_UserGroupID
|
||||
AND M_UserIsActive = 'Y'
|
||||
AND M_UserGroupIsActive = 'Y'
|
||||
`
|
||||
|
||||
// check jika parameter search nya tidak kosong
|
||||
if search != "" {
|
||||
query += fmt.Sprintf(" AND (M_UserFullName LIKE '%%%s%%' OR M_UserEmail LIKE '%%%s%%')", search, search)
|
||||
} else {
|
||||
search = "%%"
|
||||
}
|
||||
|
||||
query += fmt.Sprintf(" ORDER BY M_UserGroupID ASC")
|
||||
|
||||
logger, _ := zap.NewProduction()
|
||||
defer logger.Sync()
|
||||
logger.Info("QUERY SEARCH ONlY FOR COUNT TOTAL PAGES PAGINATION",
|
||||
zap.String("query search", query),
|
||||
)
|
||||
|
||||
if err := dbx.Handlex.Select(&userList, query); err != nil {
|
||||
return nil, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
|
||||
return userList, nil
|
||||
}
|
||||
|
||||
func (su *ServicesMasterMenuUser) GetListMasterUserBySearch(search string) ([]models.MasterUser, error) {
|
||||
var userList []models.MasterUser
|
||||
|
||||
query := `
|
||||
SELECT
|
||||
ROW_NUMBER() OVER () AS nomor,
|
||||
M_UserID,
|
||||
IFNULL(M_UserEmail, '') AS M_UserEmail,
|
||||
IFNULL(M_UserFullName, '') AS M_UserFullName,
|
||||
IFNULL(M_UserLastAccess, '') AS M_UserLastAccess,
|
||||
IFNULL(M_UserIsLoggedIn, '') AS M_UserIsLoggedIn,
|
||||
IFNULL(M_UserActiveToken, '') AS M_UserActiveToken,
|
||||
IFNULL(M_UserExpiredToken, '') AS M_UserExpiredToken,
|
||||
IFNULL(M_UserIsActive, '') AS M_UserIsActive,
|
||||
IFNULL(M_UserCreated, '') AS M_UserCreated,
|
||||
IFNULL(M_UserCreatedUserID, '') AS M_UserCreatedUserID,
|
||||
IFNULL(M_UserLastUpdated, '') AS M_UserLastUpdated,
|
||||
IFNULL(M_UserLastUpdatedUserID, '') AS M_UserLastUpdatedUserID,
|
||||
IFNULL(M_UserDeletedUserID, '') AS M_UserDeletedUserID,
|
||||
IFNULL(M_UserDeleted, '') AS M_UserDeleted,
|
||||
IFNULL(M_UserGroupCode, '') AS M_UserGroupCode,
|
||||
IFNULL(M_UserGroupName, '') AS M_UserGroupName,
|
||||
IFNULL(M_UserM_UserGroupID, '') AS M_UserM_UserGroupID,
|
||||
IFNULL(M_UserGroupID, '') AS M_UserGroupID
|
||||
FROM
|
||||
m_user
|
||||
JOIN m_usergroup
|
||||
ON M_UserM_UserGroupID = M_UserGroupID
|
||||
AND M_UserIsActive = 'Y'
|
||||
AND M_UserGroupIsActive = 'Y'
|
||||
`
|
||||
|
||||
// fmt.Errorf(search)
|
||||
rowPerPage := 2
|
||||
offset := 0
|
||||
|
||||
// check jika parameter search nya tidak kosong
|
||||
if search != "" {
|
||||
query += fmt.Sprintf(" AND (M_UserFullName LIKE '%%%s%%' OR M_UserEmail LIKE '%%%s%%')", search, search)
|
||||
} else {
|
||||
search = "%%"
|
||||
}
|
||||
|
||||
// query += " ORDER BY M_UserGroupID ASC"
|
||||
query += fmt.Sprintf(" ORDER BY M_UserGroupID ASC LIMIT %d OFFSET %d", rowPerPage, offset)
|
||||
|
||||
logger, _ := zap.NewProduction()
|
||||
defer logger.Sync()
|
||||
logger.Info("QUERY SEARCH ONlY AND SETTING LIMIT",
|
||||
zap.String("query search", query),
|
||||
)
|
||||
|
||||
if err := dbx.Handlex.Select(&userList, query); err != nil {
|
||||
return nil, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
|
||||
return userList, nil
|
||||
}
|
||||
|
||||
func (su *ServicesMasterMenuUser) GetListMasterUserPagination(search string, currentPage int, rowPerPage int) ([]models.MasterUser, error) {
|
||||
var userList []models.MasterUser
|
||||
|
||||
query := `
|
||||
SELECT
|
||||
ROW_NUMBER() OVER () AS nomor,
|
||||
M_UserID,
|
||||
IFNULL(M_UserEmail, '') AS M_UserEmail,
|
||||
IFNULL(M_UserFullName, '') AS M_UserFullName,
|
||||
IFNULL(M_UserLastAccess, '') AS M_UserLastAccess,
|
||||
IFNULL(M_UserIsLoggedIn, '') AS M_UserIsLoggedIn,
|
||||
IFNULL(M_UserActiveToken, '') AS M_UserActiveToken,
|
||||
IFNULL(M_UserExpiredToken, '') AS M_UserExpiredToken,
|
||||
IFNULL(M_UserIsActive, '') AS M_UserIsActive,
|
||||
IFNULL(M_UserCreated, '') AS M_UserCreated,
|
||||
IFNULL(M_UserCreatedUserID, '') AS M_UserCreatedUserID,
|
||||
IFNULL(M_UserLastUpdated, '') AS M_UserLastUpdated,
|
||||
IFNULL(M_UserLastUpdatedUserID, '') AS M_UserLastUpdatedUserID,
|
||||
IFNULL(M_UserDeletedUserID, '') AS M_UserDeletedUserID,
|
||||
IFNULL(M_UserDeleted, '') AS M_UserDeleted,
|
||||
IFNULL(M_UserGroupCode, '') AS M_UserGroupCode,
|
||||
IFNULL(M_UserGroupName, '') AS M_UserGroupName,
|
||||
IFNULL(M_UserM_UserGroupID, '') AS M_UserM_UserGroupID,
|
||||
IFNULL(M_UserGroupID, '') AS M_UserGroupID
|
||||
FROM
|
||||
m_user
|
||||
JOIN m_usergroup
|
||||
ON M_UserM_UserGroupID = M_UserGroupID
|
||||
AND M_UserIsActive = 'Y'
|
||||
AND M_UserGroupIsActive = 'Y'
|
||||
`
|
||||
|
||||
// rmaxPerPage := 2
|
||||
// rpage := (currentPage - 1) * rmaxPerPage
|
||||
|
||||
offset := (currentPage - 1) * rowPerPage
|
||||
// offset := currentPage
|
||||
|
||||
if search != "" {
|
||||
query += fmt.Sprintf(" AND (M_UserEmail LIKE '%%%s%%' OR M_UserFullName LIKE '%%%s%%')", search, search)
|
||||
} else {
|
||||
search = "%%"
|
||||
}
|
||||
|
||||
query += fmt.Sprintf(" ORDER BY M_UserGroupID ASC LIMIT %d OFFSET %d", rowPerPage, offset)
|
||||
|
||||
logger, _ := zap.NewProduction()
|
||||
defer logger.Sync()
|
||||
logger.Info("QUERY SEARCH WITH PAGINATION",
|
||||
zap.String("query search", query),
|
||||
)
|
||||
|
||||
if err := dbx.Handlex.Select(&userList, query); err != nil {
|
||||
return nil, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
|
||||
return userList, nil
|
||||
}
|
||||
Reference in New Issue
Block a user