@ -17,8 +17,8 @@ import (
"github.com/mozillazg/go-pinyin"
"github.com/mozillazg/go-pinyin"
)
)
//全局函数处理
// 全局函数处理
//编号,纯数字
// 编号,纯数字
func TableNumber ( class ... string ) ( number int64 ) {
func TableNumber ( class ... string ) ( number int64 ) {
result , _ := rand . Int ( rand . Reader , big . NewInt ( 8999 ) )
result , _ := rand . Int ( rand . Reader , big . NewInt ( 8999 ) )
numberTeam := result . Int64 ( ) + 1000
numberTeam := result . Int64 ( ) + 1000
@ -32,7 +32,7 @@ func TableNumber(class ...string) (number int64) {
return
return
}
}
//初始化map
// 初始化map
func MapOut ( ) ( data map [ string ] interface { } ) {
func MapOut ( ) ( data map [ string ] interface { } ) {
data = make ( map [ string ] interface { } ) //必可不少,分配内存
data = make ( map [ string ] interface { } ) //必可不少,分配内存
return data
return data
@ -131,7 +131,7 @@ func DateToTimeStamp(dataStr string) (timeStamp int64, isTrue bool) {
return
return
}
}
//数据库查询翻页
// 数据库查询翻页
func LimitPage ( page , pageSize int ) ( offSet int ) {
func LimitPage ( page , pageSize int ) ( offSet int ) {
if page < 1 {
if page < 1 {
page = 1
page = 1
@ -143,7 +143,7 @@ func LimitPage(page, pageSize int) (offSet int) {
return
return
}
}
//中文首字母大写
// 中文首字母大写
func ChineseFirstWordCapitalize ( wordStr string ) ( firstWord string ) {
func ChineseFirstWordCapitalize ( wordStr string ) ( firstWord string ) {
pinYinSub := pinyin . NewArgs ( )
pinYinSub := pinyin . NewArgs ( )
rows := pinyin . Pinyin ( wordStr , pinYinSub )
rows := pinyin . Pinyin ( wordStr , pinYinSub )
@ -180,7 +180,7 @@ func GetGovFirstWords(govName, abbreviation, govClass, parentId string) (firstWo
return
return
}
}
//获取行政级别公司
// 获取行政级别公司
func GetCompany ( id [ ] int64 ) ( firstWord string ) {
func GetCompany ( id [ ] int64 ) ( firstWord string ) {
var govClass [ ] outGovToClass
var govClass [ ] outGovToClass
err := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Select ( "administrative_organization.name,administrative_organization.abbreviation,aot.level" ) . Joins ( "left join administrative_organization_type as aot on aot.id = administrative_organization.organization_type" ) . Where ( "administrative_organization.state IN ? AND administrative_organization.id IN ?" , [ ] int { 1 , 2 } , id ) . Find ( & govClass ) . Error
err := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Select ( "administrative_organization.name,administrative_organization.abbreviation,aot.level" ) . Joins ( "left join administrative_organization_type as aot on aot.id = administrative_organization.organization_type" ) . Where ( "administrative_organization.state IN ? AND administrative_organization.id IN ?" , [ ] int { 1 , 2 } , id ) . Find ( & govClass ) . Error
@ -215,7 +215,7 @@ func GetCompany(id []int64) (firstWord string) {
return
return
}
}
//获取架构
// 获取架构
func GetGroupFramework ( parentId string , father [ ] int64 ) [ ] int64 {
func GetGroupFramework ( parentId string , father [ ] int64 ) [ ] int64 {
var id int64
var id int64
err := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Select ( "`id`" ) . Where ( "`superior` = ?" , parentId ) . First ( & id )
err := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Select ( "`id`" ) . Where ( "`superior` = ?" , parentId ) . First ( & id )
@ -227,7 +227,7 @@ func GetGroupFramework(parentId string, father []int64) []int64 {
return father
return father
}
}
//获取集团或第一实权部门
// 获取集团或第一实权部门
func GetGroupOrDepartPower ( parentId int64 , departId ... int64 ) int64 {
func GetGroupOrDepartPower ( parentId int64 , departId ... int64 ) int64 {
var orgCont models . AdministrativeOrganization
var orgCont models . AdministrativeOrganization
err := orgCont . GetCont ( map [ string ] interface { } { "id" : parentId } , "id" , "organization_type" , "superior" , "ispower" )
err := orgCont . GetCont ( map [ string ] interface { } { "id" : parentId } , "id" , "organization_type" , "superior" , "ispower" )
@ -260,14 +260,12 @@ func GetGroupOrDepartPower(parentId int64, departId ...int64) int64 {
return orgCont . Id
return orgCont . Id
}
}
//
// ZeroFillByStr
// ZeroFillByStr
// @Description: 字符串补零
// @Description: 字符串补零
// @param str :需要操作的字符串
// @param str :需要操作的字符串
// @param resultLen 结果字符串的长度
// @param resultLen 结果字符串的长度
// @param reverse true 为前置补零,false 为后置补零
// @param reverse true 为前置补零,false 为后置补零
// @return string
// @return string
//
func ZeroFillByStr ( str string , resultLen int , reverse bool ) string {
func ZeroFillByStr ( str string , resultLen int , reverse bool ) string {
if len ( str ) > resultLen || resultLen <= 0 {
if len ( str ) > resultLen || resultLen <= 0 {
return str
return str
@ -282,7 +280,7 @@ func ZeroFillByStr(str string, resultLen int, reverse bool) string {
return result
return result
}
}
//生成编号
// 生成编号
func CreateNumber ( firstWords , govClass string ) ( numberStr string ) {
func CreateNumber ( firstWords , govClass string ) ( numberStr string ) {
var orgCont models . AdministrativeOrganization
var orgCont models . AdministrativeOrganization
var orgClass models . AdministrativeOrganizationType
var orgClass models . AdministrativeOrganizationType
@ -316,7 +314,7 @@ func CreateNumber(firstWords, govClass string) (numberStr string) {
type MenuList [ ] OutGovCont
type MenuList [ ] OutGovCont
//行政组织递归
// 行政组织递归
func ( g * MenuList ) GovRecursion ( parentId , level int64 ) [ ] govThree {
func ( g * MenuList ) GovRecursion ( parentId , level int64 ) [ ] govThree {
var govMap [ ] govThree
var govMap [ ] govThree
@ -332,7 +330,7 @@ func (g *MenuList) GovRecursion(parentId, level int64) []govThree {
return govMap
return govMap
}
}
//获取子集
// 获取子集
func ( g * MenuList ) findChildren ( parentId int64 ) [ ] OutGovCont {
func ( g * MenuList ) findChildren ( parentId int64 ) [ ] OutGovCont {
child := [ ] OutGovCont { }
child := [ ] OutGovCont { }
@ -360,7 +358,7 @@ func GovThreeList(parentId int64, govAry []OutGovCont) []govThree {
return govMap
return govMap
}
}
//菜单权限递归
// 菜单权限递归
func MenuThreePermit ( parentId int64 , menuAry [ ] models . SystemMenuOperation ) [ ] MenuPermitThree {
func MenuThreePermit ( parentId int64 , menuAry [ ] models . SystemMenuOperation ) [ ] MenuPermitThree {
var menuThree [ ] MenuPermitThree
var menuThree [ ] MenuPermitThree
for _ , v := range menuAry {
for _ , v := range menuAry {
@ -479,13 +477,13 @@ func (m *Md5Encryption) Md5EncryptionAlgorithmFj() (md5Val string, outlog []stri
return
return
}
}
//初始化程序
// 初始化程序
func ( m * Md5Encryption ) Md5EncryptionInit ( code string ) {
func ( m * Md5Encryption ) Md5EncryptionInit ( code string ) {
m . AppKey = overall . CONSTANT_CONFIG . Appsetup . AppKey
m . AppKey = overall . CONSTANT_CONFIG . Appsetup . AppKey
m . Code = code
m . Code = code
}
}
//sha1算法
// sha1算法
func Sha1Encryption ( str string ) string {
func Sha1Encryption ( str string ) string {
sha1 := sha1 . New ( )
sha1 := sha1 . New ( )
sha1 . Write ( [ ] byte ( str ) )
sha1 . Write ( [ ] byte ( str ) )
@ -513,7 +511,7 @@ func GetFutureMonthTime(timeStamp int64, futureTime, class int) (dateStr int64)
return
return
}
}
//判断字符串是否在切片中
// 判断字符串是否在切片中
func StringIsInMap ( str string , strAry [ ] string ) bool {
func StringIsInMap ( str string , strAry [ ] string ) bool {
if len ( strAry ) > 0 {
if len ( strAry ) > 0 {
for _ , v := range strAry {
for _ , v := range strAry {
@ -526,7 +524,7 @@ func StringIsInMap(str string, strAry []string) bool {
return false
return false
}
}
//判断值是否在数组中
// 判断值是否在数组中
func JudeInArray ( id int64 , ary [ ] string ) ( isTrue bool ) {
func JudeInArray ( id int64 , ary [ ] string ) ( isTrue bool ) {
// isTrue = false
// isTrue = false
// for _, val := range ary {
// for _, val := range ary {
@ -553,7 +551,7 @@ func JudgeInMap(id int64, ary []int64) bool {
return false
return false
}
}
//判断元素是否在切片中
// 判断元素是否在切片中
func IsInTrue [ T GenericityVariable ] ( key T , keyAry [ ] T ) ( isTrue bool ) {
func IsInTrue [ T GenericityVariable ] ( key T , keyAry [ ] T ) ( isTrue bool ) {
isTrue = false
isTrue = false
for _ , v := range keyAry {
for _ , v := range keyAry {
@ -564,7 +562,7 @@ func IsInTrue[T GenericityVariable](key T, keyAry []T) (isTrue bool) {
return
return
}
}
//获取两个切片得差集
// 获取两个切片得差集
func DifferenceSet [ T GenericityVariable ] ( one , two [ ] T ) [ ] T {
func DifferenceSet [ T GenericityVariable ] ( one , two [ ] T ) [ ] T {
var three [ ] T
var three [ ] T
temp := map [ T ] struct { } { }
temp := map [ T ] struct { } { }
@ -651,7 +649,7 @@ func PolitiToString(emp int) string {
}
}
}
}
//递归查找
// 递归查找
func RecursionOrgLeve ( superior int64 , leve int64 ) ( groupId int64 ) {
func RecursionOrgLeve ( superior int64 , leve int64 ) ( groupId int64 ) {
if leve == 0 {
if leve == 0 {
leve = 1
leve = 1
@ -670,7 +668,7 @@ func RecursionOrgLeve(superior int64, leve int64) (groupId int64) {
return
return
}
}
//获取集团、公司、部门、二级部门、工段
// 获取集团、公司、部门、二级部门、工段
func GetOrgStructure ( orgId int64 ) ( groupId , companyId , departmentId , sunDepartId , workShopId int64 ) {
func GetOrgStructure ( orgId int64 ) ( groupId , companyId , departmentId , sunDepartId , workShopId int64 ) {
var orgContTypeInfo models . OrgContType
var orgContTypeInfo models . OrgContType
err := orgContTypeInfo . GetCont ( map [ string ] interface { } { "`id`" : orgId } )
err := orgContTypeInfo . GetCont ( map [ string ] interface { } { "`id`" : orgId } )
@ -709,15 +707,18 @@ func GetOrgStructure(orgId int64) (groupId, companyId, departmentId, sunDepartId
return
return
}
}
//获取指定行政组织id,所有子类
// 获取指定行政组织id,所有子类
func GetDepartmentSun ( superior int64 , idary [ ] int64 ) ( orgIdAry [ ] int64 ) {
func GetDepartmentSun ( superior int64 , idary [ ] int64 ) ( orgIdAry [ ] int64 ) {
// if superior != 0 && IsInTrue[int64](superior, orgIdAry) == false {
// orgIdAry = append(orgIdAry, superior)
// }
var orgAry [ ] models . AdministrativeOrganization
var orgAry [ ] models . AdministrativeOrganization
err := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Select ( "`id`" ) . Where ( "`state` = 1 AND `superior` = ?" , superior ) . Find ( & orgAry ) . Error
err := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Select ( "`id`" ) . Where ( "`state` = 1 AND `superior` = ?" , superior ) . Find ( & orgAry ) . Error
if err != nil {
if err != nil {
return
return
}
}
for _ , v := range orgAry {
for _ , v := range orgAry {
if IsInTrue [ int64 ] ( v . Id , orgIdAry ) == false {
if superior != 0 && IsInTrue [ int64 ] ( v . Id , orgIdAry ) == false {
orgIdAry = append ( orgIdAry , v . Id )
orgIdAry = append ( orgIdAry , v . Id )
GetDepartmentSun ( v . Id , orgIdAry )
GetDepartmentSun ( v . Id , orgIdAry )
} else {
} else {