fix: align workbench queries with current schema
This commit is contained in:
@@ -75,7 +75,7 @@ func (s *Store) Departments(ctx context.Context, userID int64, parentID, cursor
|
||||
var items []OrganizationDepartment
|
||||
query := `SELECT d.department_id,d.name,d.parent_id,
|
||||
(SELECT COUNT(*) FROM im_org_departments c WHERE c.parent_id=d.department_id) AS child_count,
|
||||
(SELECT COUNT(*) FROM im_org_members m WHERE m.department_id=d.department_id AND m.status='active') AS member_count,
|
||||
(SELECT COUNT(*) FROM im_org_members m WHERE m.department_id=d.department_id AND m.employment_state='active') AS member_count,
|
||||
d.version
|
||||
FROM im_org_departments d WHERE d.parent_id=?`
|
||||
args := []any{parentID}
|
||||
@@ -94,8 +94,8 @@ func (s *Store) Departments(ctx context.Context, userID int64, parentID, cursor
|
||||
func (s *Store) DepartmentMembers(ctx context.Context, userID int64, departmentID, cursor string, limit int) ([]OrganizationMember, string, error) {
|
||||
var items []OrganizationMember
|
||||
query := `SELECT user_id,department_id,display_name,position,IFNULL(mobile,'') AS mobile,IFNULL(email,'') AS email,
|
||||
IFNULL(avatar_file_id,'') AS avatar_file_id,status,contactable,version
|
||||
FROM im_org_members WHERE department_id=? AND status='active'`
|
||||
IFNULL(avatar_file_id,'') AS avatar_file_id,employment_state AS status,contactable,version
|
||||
FROM im_org_members WHERE department_id=? AND employment_state='active'`
|
||||
args := []any{departmentID}
|
||||
if cursor != "" {
|
||||
query += ` AND user_id>?`
|
||||
@@ -111,7 +111,7 @@ func (s *Store) DepartmentMembers(ctx context.Context, userID int64, departmentI
|
||||
|
||||
func (s *Store) Members(ctx context.Context, userID int64, departmentID, keyword, cursor string, limit int) ([]OrganizationMember, string, error) {
|
||||
var items []OrganizationMember
|
||||
where := []string{"status='active'"}
|
||||
where := []string{"employment_state='active'"}
|
||||
args := []any{}
|
||||
if departmentID != "" {
|
||||
where = append(where, "department_id=?")
|
||||
@@ -127,7 +127,7 @@ func (s *Store) Members(ctx context.Context, userID int64, departmentID, keyword
|
||||
args = append(args, cursor)
|
||||
}
|
||||
query := `SELECT user_id,department_id,display_name,position,IFNULL(mobile,'') AS mobile,IFNULL(email,'') AS email,
|
||||
IFNULL(avatar_file_id,'') AS avatar_file_id,status,contactable,version
|
||||
IFNULL(avatar_file_id,'') AS avatar_file_id,employment_state AS status,contactable,version
|
||||
FROM im_org_members WHERE ` + strings.Join(where, " AND ") + ` ORDER BY user_id ASC LIMIT ?`
|
||||
args = append(args, limit+1)
|
||||
if err := s.db.SelectContext(ctx, &items, query, args...); err != nil {
|
||||
@@ -138,7 +138,7 @@ func (s *Store) Members(ctx context.Context, userID int64, departmentID, keyword
|
||||
|
||||
func (s *Store) AttendanceConfig(ctx context.Context, userID int64, date time.Time) (*AttendanceConfig, error) {
|
||||
var rule AttendanceRule
|
||||
if err := s.db.GetContext(ctx, &rule, `SELECT rule_id,name,workday,location_required,wifi_required,allow_outside_checkin,appeal_allowed,appeal_deadline
|
||||
if err := s.db.GetContext(ctx, &rule, `SELECT rule_id,name,workday,location_required,wifi_required,allow_outside_checkin,appeal_allowed,NULL AS appeal_deadline
|
||||
FROM im_attendance_rules WHERE state='active' ORDER BY id ASC LIMIT 1`); err != nil {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return &AttendanceConfig{Date: date, Timezone: "Asia/Shanghai", Rule: AttendanceRule{}, Shifts: []AttendanceShift{}}, nil
|
||||
@@ -709,7 +709,7 @@ func (s *Store) ReopenMonthly(ctx context.Context, userID int64, reportID string
|
||||
|
||||
func (s *Store) MailboxConfig(ctx context.Context) (*MailboxConfig, error) {
|
||||
var cfg MailboxConfig
|
||||
if err := s.db.GetContext(ctx, &cfg, `SELECT enabled,allow_anonymous,required_fields,max_length,attachment_policy,notice_title,notice_content,version FROM im_mailbox_config WHERE id=1`); err != nil {
|
||||
if err := s.db.GetContext(ctx, &cfg, `SELECT enabled,allow_anonymous,required_fields,max_length,attachment_policy,notice_title,notice_content,CAST(COALESCE(UNIX_TIMESTAMP(notice_updated_at),1) AS UNSIGNED) AS version FROM im_mailbox_config WHERE id=1`); err != nil {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return &MailboxConfig{Enabled: true, AllowAnonymous: true, RequiredFields: `["subject","content"]`, MaxLength: 5000, AttachmentPolicy: `{"max_files":5}`, NoticeTitle: "总经理信箱", NoticeContent: "请如实填写诉求。", Version: 1}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user