增加ai办公,考勤管理
This commit is contained in:
1 parent
eb9b7beff5
commit
31ae07175d
46 files changed
+9250
-296
No files matched your search
@@ -843,20 +843,25 @@ func (c *BackendOaSchedulingController) MyBoard() {
|
||||
}
|
||||
|
||||
// scFindSelfEmployee 把登录身份映射到本租户的员工档案。
|
||||
func (c *BackendOaSchedulingController) scFindSelfEmployee(tid, identityID uint64, username string) (models.BackendEmployee, bool) {
|
||||
return findSelfEmployee(tid, identityID, username)
|
||||
}
|
||||
|
||||
// findSelfEmployee 把登录身份映射到本租户的员工档案(包级函数,排班与考勤共用)。
|
||||
// 优先取认证中心「身份+租户」绑定记录里的账号(与 /auth/userinfo 同源,最可靠),
|
||||
// 其次用令牌 username 按「账号 → 姓名」匹配。
|
||||
func (c *BackendOaSchedulingController) scFindSelfEmployee(tid, identityID uint64, username string) (models.BackendEmployee, bool) {
|
||||
func findSelfEmployee(tid, identityID uint64, username string) (models.BackendEmployee, bool) {
|
||||
var employee models.BackendEmployee
|
||||
|
||||
if identityID > 0 {
|
||||
if bind, err := authSvc.GetTenantUser(identityID, tid); err == nil && bind != nil {
|
||||
if v := authBindValue(bind.Account); v != "" {
|
||||
if emp, found := c.scEmployeeByField(tid, "account", v); found {
|
||||
if emp, found := findEmployeeByField(tid, "account", v); found {
|
||||
return emp, true
|
||||
}
|
||||
}
|
||||
if v := authBindValue(bind.Name); v != "" {
|
||||
if emp, found := c.scEmployeeByField(tid, "name", v); found {
|
||||
if emp, found := findEmployeeByField(tid, "name", v); found {
|
||||
return emp, true
|
||||
}
|
||||
}
|
||||
@@ -866,7 +871,7 @@ func (c *BackendOaSchedulingController) scFindSelfEmployee(tid, identityID uint6
|
||||
username = strings.TrimSpace(username)
|
||||
if username != "" {
|
||||
for _, field := range []string{"account", "name"} {
|
||||
if emp, found := c.scEmployeeByField(tid, field, username); found {
|
||||
if emp, found := findEmployeeByField(tid, field, username); found {
|
||||
return emp, true
|
||||
}
|
||||
}
|
||||
@@ -876,8 +881,13 @@ func (c *BackendOaSchedulingController) scFindSelfEmployee(tid, identityID uint6
|
||||
|
||||
// scEmployeeByField 在本租户员工档案中按指定字段匹配,取第一条有效记录
|
||||
func (c *BackendOaSchedulingController) scEmployeeByField(tid uint64, field, value string) (models.BackendEmployee, bool) {
|
||||
return findEmployeeByField(tid, field, value)
|
||||
}
|
||||
|
||||
// findEmployeeByField 包级实现:本租户员工档案按指定字段匹配,取第一条有效记录。
|
||||
func findEmployeeByField(tid uint64, field, value string) (models.BackendEmployee, bool) {
|
||||
var rows []models.BackendEmployee
|
||||
if _, err := c.scBaseEmployeeQuery(tid).
|
||||
if _, err := employeeBaseQuery(tid).
|
||||
Filter(field, value).
|
||||
OrderBy("id").
|
||||
Limit(1).
|
||||
|
||||
Reference in new issue
Block a user