| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package organize
- import (
- "dashoo.cn/business2/userRole"
- "fmt"
- "strconv"
- "strings"
- "dashoo.cn/utils"
- . "dashoo.cn/utils/db"
- "github.com/go-xorm/xorm"
- )
- type OrganizeService struct {
- ServiceBase
- }
- func GetOrganizeService(xormEngine *xorm.Engine) *OrganizeService {
- s := new(OrganizeService)
- s.DBE = xormEngine
- return s
- }
- //获得某节点的所有子节点(包括自身)
- func (s *OrganizeService) GetAllChildByTopId(topid, uid string) string {
- mod := new(Id_Str)
- s.DBE.Sql(`select fun_getOrganizechildlistuserid ('` + topid + `','` + uid + `') as Id`).Get(mod)
- return mod.Id
- }
- //获得某节点的所有父节点(包括自身)
- func (s *OrganizeService) GetAllParentByTopId(topid, uid string) string {
- mod := new(Id_Str)
- s.DBE.Sql(`select fun_getOrganizeparentlistuserid ('` + topid + `','` + uid + `') as Id`).Get(mod)
- return mod.Id
- }
- //根据AccCode获得某节点的所有父节点(包括自身)
- func (s *OrganizeService) GetAllParentByTopAccCode(topid, acccode string) string {
- mod := new(Id_Str)
- s.DBE.Sql(`select fun_getOrganizeparentlistuseracccode ('` + topid + `','` + acccode + `') as Id`).Get(mod)
- return mod.Id
- }
- //根据
- func (s *OrganizeService) GetCollectionDetailviewlist(where string) []Base_Organizebandparentname {
- var sql string
- sql = `select *
- from Base_Organize where ParentId = ( select id from Base_Organize where ParentId = 0 and AccCode = ` + where + `)`
- List := make([]Base_Organizebandparentname, 0)
- utils.DBE.Sql(sql).Find(&List)
- return List
- }
- //根据ID获得名称
- func (s *OrganizeService) GetNameById(id string) string {
- mod := new(Id_Str)
- s.DBE.Sql(`select Fullname Id from Base_Organize where Id = ` + id).Get(mod)
- return mod.Id
- }
- //判断是否有子节点
- func (s *OrganizeService) IsHaveChild(id string) bool {
- mod := new(Id_Int)
- s.DBE.Sql(`select count(1) Id from Base_Organize where ParentId = ` + id).Get(mod)
- return mod.Id > 0
- }
- //判断是否有用户使用
- func (s *OrganizeService) IsHaveUserUse(id string) bool {
- mod := new(Id_Int)
- s.DBE.Sql(`select count(1) Id from Base_User where DepartmentId = ` + id).Get(mod)
- return mod.Id > 0
- }
- //判断是否有设备使用
- func (s *OrganizeService) IsHaveEquiUse(id string) bool {
- mod := new(Id_Int)
- s.DBE.Sql(`select count(1) Id from Equipment where OrganizeId = ` + id).Get(mod)
- return mod.Id > 0
- }
- func (s *OrganizeService) GetListbandparentname(pageIndex, itemsPerPage int64, order, searchstring string) (int64, []Base_Organizebandparentname) {
- var err error
- var total int64
- //获取总记录数
- sqlCount := "select count(*) from Base_Organize a where " + searchstring + " "
- var sql, limitstr string = "", ""
- if pageIndex > 0 {
- limitstr = ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
- }
- sql = `select a.*,b.Fullname Parentname from Base_Organize a
- left join Base_Organize b on a.ParentId=b.Id
- where ` + searchstring + ` order by ` + order + limitstr
- List := make([]Base_Organizebandparentname, 0)
- utils.DBE.Sql(sql).Find(&List)
- resultsSlice, err := s.DBE.Query(sqlCount)
- LogError(err)
- if len(resultsSlice) > 0 {
- results := resultsSlice[0]
- for _, value := range results {
- total, err = strconv.ParseInt(string(value), 10, 64)
- LogError(err)
- break
- }
- }
- return total, List
- }
- func (s *OrganizeService) QueryEntity(where string) (entity Base_Organize) {
- sql := "select * from Base_Organize where " + where
- s.DBE.Sql(sql).Get(&entity)
- return
- }
- //根据
- func (s *OrganizeService) GetAllChildById(topid string) string {
- mod := new(Id_Str)
- s.DBE.Sql(`select fun_getOrganizechildlist ('` + topid + `') as Id`).Get(mod)
- return mod.Id
- }
- //根据 物质类
- func (s *OrganizeService) GetAllGoodsChildById(topid string) string {
- mod := new(Id_Str)
- s.DBE.Sql(`select fun_getOilGoodsAptitudeClasschildlist ('` + topid + `') as Id`).Get(mod)
- return mod.Id
- }
- //判断用户是否具有某角色
- func (s *OrganizeService) UserInRoleById(userId, RoleId string) bool {
- var roleList []userRole.UserRoleModel
- sqlcommand := fmt.Sprintf(`select * from Base_Role b where b.Id=%v `, RoleId)
- s.DBE.SQL(sqlcommand).Find(&roleList)
- if len(roleList) <1{
- return false
- }else{
- roleidlist:=utils.RBAC.GetRolesForUserInDomain("uid_" + userId, utils.DOMAIN)
- return strings.Contains(strings.Join(roleidlist, ","), "rid_" + strconv.Itoa(roleList[0].Id))
- }
- }
- //获得category为unit的父节点
- func (s *OrganizeService) GetMyUnitDepartmentId(topid string) string {
- var entity Base_Organize
- ids := s.GetAllParentByTopAccCode(topid, "")
- if len(ids) <= 0 { //没有父节点
- return topid
- }
- sql := "select * from Base_Organize where id in (" + ids + ") and Category='unit'"
- s.DBE.Sql(sql).Get(&entity)
- if &entity == nil || entity.Id <= 0 {//没有category为unit的父节点
- return topid
- }
- return strconv.Itoa( entity.Id )
- }
|