...
|
...
|
@@ -52,6 +52,8 @@ func (unifiedUserCenterService *UnifiedUserCenterService) SyncEmployeeCallback(s |
|
|
var isPrincipal bool
|
|
|
var status int
|
|
|
var uids []int64
|
|
|
var addEmployees []map[string]interface{}
|
|
|
var editEmployees []map[string]interface{}
|
|
|
var data map[string]interface{}
|
|
|
if err := json.Unmarshal([]byte(syncEmployeeCallbackCommand.Data), &data); err != nil {
|
|
|
return false, err
|
...
|
...
|
@@ -86,8 +88,111 @@ func (unifiedUserCenterService *UnifiedUserCenterService) SyncEmployeeCallback(s |
|
|
uids = append(uids, int64(uid.(float64)))
|
|
|
}
|
|
|
}
|
|
|
if value, ok := data["add"]; ok {
|
|
|
for _, addEmployee := range value.([]interface{}) {
|
|
|
addEmployees = append(addEmployees, addEmployee.(map[string]interface{}))
|
|
|
}
|
|
|
}
|
|
|
if value, ok := data["edit"]; ok {
|
|
|
for _, editEmployee := range value.([]interface{}) {
|
|
|
editEmployees = append(editEmployees, editEmployee.(map[string]interface{}))
|
|
|
}
|
|
|
}
|
|
|
if syncEmployeeCallbackCommand.Module == "employee" {
|
|
|
switch syncEmployeeCallbackCommand.Action {
|
|
|
case "import":
|
|
|
var companyId int64
|
|
|
var uid int64
|
|
|
var employeeName string
|
|
|
var employeeAccount string
|
|
|
var employeeAvatarUrl string
|
|
|
var isPrincipal bool
|
|
|
var status int
|
|
|
for _, addEmployee := range addEmployees {
|
|
|
if value, ok := addEmployee["company_id"]; ok {
|
|
|
companyId = int64(value.(float64))
|
|
|
}
|
|
|
if value, ok := addEmployee["id"]; ok {
|
|
|
uid = int64(value.(float64))
|
|
|
}
|
|
|
if value, ok := addEmployee["name"]; ok {
|
|
|
employeeName = value.(string)
|
|
|
}
|
|
|
if value, ok := addEmployee["phone"]; ok {
|
|
|
employeeAccount = value.(string)
|
|
|
}
|
|
|
if value, ok := addEmployee["avatar"]; ok {
|
|
|
employeeAvatarUrl = value.(string)
|
|
|
}
|
|
|
if value, ok := addEmployee["admin_type"]; ok {
|
|
|
if int(value.(float64)) == 2 {
|
|
|
isPrincipal = true
|
|
|
} else {
|
|
|
isPrincipal = false
|
|
|
}
|
|
|
}
|
|
|
if value, ok := addEmployee["status"]; ok {
|
|
|
status = int(value.(float64))
|
|
|
}
|
|
|
employee := &domain.Employee{
|
|
|
CompanyId: companyId,
|
|
|
EmployeeInfo: &domain.EmployeeInfo{
|
|
|
Uid: uid,
|
|
|
EmployeeName: employeeName,
|
|
|
EmployeeAccount: employeeAccount,
|
|
|
EmployeeAvatarUrl: employeeAvatarUrl,
|
|
|
IsPrincipal: isPrincipal,
|
|
|
},
|
|
|
Status: status,
|
|
|
SuMoney: 0,
|
|
|
}
|
|
|
if _, err := employeeRepository.Save(employee); err != nil {
|
|
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
}
|
|
|
for _, editEmployee := range editEmployees {
|
|
|
if value, ok := editEmployee["company_id"]; ok {
|
|
|
companyId = int64(value.(float64))
|
|
|
}
|
|
|
if value, ok := editEmployee["id"]; ok {
|
|
|
uid = int64(value.(float64))
|
|
|
}
|
|
|
if value, ok := editEmployee["name"]; ok {
|
|
|
employeeName = value.(string)
|
|
|
}
|
|
|
if value, ok := editEmployee["phone"]; ok {
|
|
|
employeeAccount = value.(string)
|
|
|
}
|
|
|
if value, ok := editEmployee["avatar"]; ok {
|
|
|
employeeAvatarUrl = value.(string)
|
|
|
}
|
|
|
if value, ok := editEmployee["admin_type"]; ok {
|
|
|
if int(value.(float64)) == 2 {
|
|
|
isPrincipal = true
|
|
|
} else {
|
|
|
isPrincipal = false
|
|
|
}
|
|
|
}
|
|
|
if value, ok := editEmployee["status"]; ok {
|
|
|
status = int(value.(float64))
|
|
|
}
|
|
|
employee, err := employeeRepository.FindOne(map[string]interface{}{"uid": uid})
|
|
|
if err == nil && employee != nil {
|
|
|
updateData := make(map[string]interface{})
|
|
|
updateData["employeeName"] = employeeName
|
|
|
updateData["employeeAccount"] = employeeAccount
|
|
|
updateData["employeeAvatarUrl"] = employeeAvatarUrl
|
|
|
updateData["isPrincipal"] = isPrincipal
|
|
|
updateData["status"] = status
|
|
|
if err := employee.Update(updateData); err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
if _, err := employeeRepository.Save(employee); err != nil {
|
|
|
return false, nil
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
break
|
|
|
case "add":
|
|
|
employee := &domain.Employee{
|
|
|
CompanyId: companyId,
|
...
|
...
|
|