package system import ( "eta_gn/eta_api/global" "time" ) type SysGroupAddReq struct { DepartmentId int `description:"部门Id"` GroupName string `description:"分组名称,多个用英文逗号隔开"` } type SysGroup struct { GroupId int `gorm:"primaryKey"` DepartmentId int `description:"部门Id"` ParentId int `description:"父级Id"` GroupName string `description:"分组名称"` Sort int `description:"排序"` CreateTime time.Time `description:"创建时间"` } func GetSysGroupCount(departmentId int, groupName string) (count int, err error) { sql := `SELECT COUNT(1) AS count FROM sys_group WHERE department_id=? AND group_name=? ` // o := orm.NewOrm() //err = o.Raw(sql, departmentId, groupName).QueryRow(&count) err = global.DEFAULT_DmSQL.Raw(sql, departmentId, groupName).Scan(&count).Error return } func AddSysGroup(item *SysGroup) (lastId int64, err error) { // o := orm.NewOrm() //lastId, err = o.Insert(item) err = global.DEFAULT_DmSQL.Create(item).Error return } type SysGroupEditReq struct { GroupId int `description:"分组ID"` GroupName string `description:"分组名称"` } func GetSysGroupById(groupId int) (item *SysGroup, err error) { sql := `SELECT * FROM sys_group WHERE group_id=? ` // o := orm.NewOrm() //err = o.Raw(sql, groupId).QueryRow(&item) err = global.DEFAULT_DmSQL.Raw(sql, groupId).First(&item).Error return } func GetSysGroupByName(groupName string) (item *SysGroup, err error) { sql := `SELECT * FROM sys_group WHERE group_name=? ` // o := orm.NewOrm() //err = o.Raw(sql, groupName).QueryRow(&item) err = global.DEFAULT_DmSQL.Raw(sql, groupName).First(&item).Error return } func ModifySysGroup(groupName string, groupId int) (err error) { // o := orm.NewOrm() //to, err := o.Begin() //if err != nil { // return //} //defer func() { // if err != nil { // _ = to.Rollback() // } else { // _ = to.Commit() // } //}() //sql := `UPDATE sys_group SET group_name=? WHERE group_id=? ` //_, err = to.Raw(sql, groupName, groupId).Exec() //sql = `UPDATE admin SET group_name=? WHERE group_id=? ` //_, err = to.Raw(sql, groupName, groupId).Exec() tx := global.DEFAULT_DmSQL.Begin() defer func() { if err != nil { _ = tx.Rollback() return } _ = tx.Commit() }() sql := `UPDATE sys_group SET group_name=? WHERE group_id=? ` //_, err = to.Raw(sql, groupName, groupId).Exec() err = tx.Exec(sql, groupName, groupId).Error if err != nil { return } sql = `UPDATE admin SET group_name=? WHERE group_id=? ` //_, err = to.Raw(sql, groupName, groupId).Exec() err = tx.Exec(sql, groupName, groupId).Error return } type SysGroupDeleteReq struct { GroupId int `description:"分组ID"` } func DeleteSysGroup(groupId int) (err error) { sql := `DELETE FROM sys_group WHERE group_id=? ` // o := orm.NewOrm() //_, err = o.Raw(sql, groupId).Exec() err = global.DEFAULT_DmSQL.Exec(sql, groupId).Error return } // 因前端显示需要,TopId字段用来当做一级部门id,DepartmentId为当前分组id type SysGroupList struct { GroupId int `orm:"column(group_id);pk" json:"DepartmentId" description:"分组ID"` ParentId int `json:"ParentId" description:"父级ID"` DepartmentId int `json:"TopId" description:"部门Id"` GroupName string `json:"DepartmentName" description:"分组名称"` Child []*SysTeamList `gorm:"-" description:"小组"` CreateTime time.Time `description:"创建时间"` IsGroup bool `description:"是否为二级部门"` } func GetSysGroupByDepartmentId(departmentId int) (items []*SysGroupList, err error) { sql := `SELECT * FROM sys_group WHERE department_id=? AND parent_id=0 ORDER BY sort ASC, create_time ASC` // o := orm.NewOrm() //_, err = o.Raw(sql, departmentId).QueryRows(&items) err = global.DEFAULT_DmSQL.Raw(sql, departmentId).Find(&items).Error return } // GetSysGroupListByDepartmentId 获取该部门下的所有分组(包含大小分组,不包含 “无” 这个分组) func GetSysGroupListByDepartmentId(departmentId int) (items []*SysGroupList, err error) { sql := `SELECT * FROM sys_group WHERE department_id=? AND group_name<>'无' ORDER BY sort ASC, create_time ASC` // o := orm.NewOrm() //_, err = o.Raw(sql, departmentId).QueryRows(&items) err = global.DEFAULT_DmSQL.Raw(sql, departmentId).Find(&items).Error return } func ClearSysUserGroup(groupId int) (err error) { sql := `UPDATE admin SET group_id=0,group_name='' WHERE group_id=? ` // o := orm.NewOrm() //_, err = o.Raw(sql, groupId).Exec() err = global.DEFAULT_DmSQL.Exec(sql, groupId).Error return } func GetSysGroupByDirectorId(directorId int) (items []*SysGroupList, err error) { sql := `SELECT * FROM sys_group WHERE group_id=? ORDER BY sort ASC, create_time ASC` // o := orm.NewOrm() //_, err = o.Raw(sql, directorId).QueryRows(&items) err = global.DEFAULT_DmSQL.Raw(sql, directorId).Find(&items).Error return } // GetSysGroupByGroupId 销售主管用,查找销售主管所在大组的名称 func GetSysGroupByGroupId(groupId int) (items []*SysGroupList, err error) { sql := `SELECT * FROM sys_group WHERE department_id=2 AND parent_id=0 AND group_id=? ORDER BY sort ASC, create_time ASC` // o := orm.NewOrm() //_, err = o.Raw(sql, groupId).QueryRows(&items) err = global.DEFAULT_DmSQL.Raw(sql, groupId).Find(&items).Error return } // GetChildSysGroupByGroupId 通过上级分组id获取下级的分组id func GetChildSysGroupByGroupId(groupId int) (items []*SysGroup, err error) { sql := `SELECT * FROM sys_group WHERE parent_id=? ORDER BY sort ASC, create_time ASC` // o := orm.NewOrm() //_, err = o.Raw(sql, groupId).QueryRows(&items) err = global.DEFAULT_DmSQL.Raw(sql, groupId).Find(&items).Error return } type SysFullGroup struct { GroupId int `orm:"column(group_id);pk" description:"分组ID"` DepartmentId int `description:"部门Id"` ParentId int `description:"父级Id"` GroupName string `description:"分组名称"` ParentGroupName string `description:"父级分组名称"` DepartmentName string `description:"部门名称"` CreateTime time.Time `description:"创建时间"` } // GetFullGroup 获取完整的分组信息 func GetFullGroup() (list []*SysFullGroup, err error) { sql := `SELECT s.*,g.group_name as parent_group_name , d.department_name from sys_group s LEFT JOIN sys_group g on s.parent_id=g.group_id LEFT JOIN sys_department d on s.department_id=d.department_id ORDER BY s.sort ASC, s.create_time ASC` // o := orm.NewOrm() //_, err = o.Raw(sql).QueryRows(&list) err = global.DEFAULT_DmSQL.Raw(sql).Find(&list).Error return } type SysGroupSortReq struct { //ParentId int `description:"上级部门/分组ID"` DepartmentIds []int `description:"移动后的一级ID排序"` GroupIds []int `description:"移动后的二级ID排序"` TeamIds []int `description:"移动后的三级ID排序"` } type GroupSort struct { GroupId int Sort int } func MultiUpdateGroupSort(items []*GroupSort) (err error) { if len(items) == 0 { return } // o := orm.NewOrm() //p, err := o.Raw("UPDATE sys_group SET sort = ? WHERE group_id = ?").Prepare() //if err != nil { // return //} //defer func() { // _ = p.Close() //}() //for _, v := range items { // _, err = p.Exec(v.Sort, v.GroupId) // if err != nil { // return // } //} sql := "UPDATE sys_group SET sort = ? WHERE group_id = ?" for _, v := range items { err = global.DEFAULT_DmSQL.Exec(sql, v.Sort, v.GroupId).Error if err != nil { return } } return } //func GetGroupByDepartmentId(departmentId int) (list []*SysFullGroup, err error) { // sql := `SELECT // s.*, g.group_name AS parent_group_name, // d.department_name // FROM // sys_group s // LEFT JOIN sys_group g ON s.parent_id = g.group_id // LEFT JOIN sys_department d ON s.department_id = d.department_id // WHERE // s.department_id = ? // ORDER BY // s.sort ASC, // s.create_time ASC` // o := orm.NewOrm() // _, err = o.Raw(sql, departmentId).QueryRows(&list) // return //} type RoadshowGroupResp struct { List []RoadshowGroups } type RoadshowGroups struct { GroupId int `description:"分组ID"` GroupName string `description:"分组名称"` Child []RoadshowGroupSellers `description:"销售"` } type RoadshowGroupSellers struct { GroupId int `description:"大组ID"` TeamId int `description:"小组ID"` AdminId int `description:"销售ID"` AdminName string `description:"销售名称"` }