|
@@ -186,13 +186,23 @@ func AddOrderWork(orderType, acceptance_no, nowTime, phone, company string, tx *
|
|
|
|
|
|
}
|
|
|
|
|
|
+type PersonJson struct {
|
|
|
+ Name string
|
|
|
+ Phone string
|
|
|
+ Mail string
|
|
|
+ DeptId int64
|
|
|
+ DeptName string
|
|
|
+ PositionId int64
|
|
|
+ IsResign bool
|
|
|
+}
|
|
|
+
|
|
|
// 大客人员选择
|
|
|
func FindCandidate(personArr []Person, entId int64, orderType string) map[string]interface{} {
|
|
|
person := map[string]interface{}{}
|
|
|
- personEntity := Person{}
|
|
|
+ personEntity := PersonJson{}
|
|
|
personMap := make(map[string]map[string]interface{})
|
|
|
phoneArr := make([]string, len(personArr))
|
|
|
-
|
|
|
+ persons := make([]PersonJson, len(personArr))
|
|
|
// Populate phoneArr and personMap
|
|
|
for k, v := range personArr {
|
|
|
phone := gconv.String(v.Phone)
|
|
@@ -200,6 +210,11 @@ func FindCandidate(personArr []Person, entId int64, orderType string) map[string
|
|
|
personMap[phone] = map[string]interface{}{
|
|
|
"name": gconv.String(v.Name),
|
|
|
}
|
|
|
+ persons[k] = PersonJson{
|
|
|
+ Name: v.Name,
|
|
|
+ Phone: v.Phone,
|
|
|
+ IsResign: v.IsResign,
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// Fetch personal email and department information
|
|
@@ -234,13 +249,13 @@ func FindCandidate(personArr []Person, entId int64, orderType string) map[string
|
|
|
}
|
|
|
|
|
|
// Update personArr with additional information
|
|
|
- for k, v := range personArr {
|
|
|
+ for k, v := range persons {
|
|
|
phone := v.Phone
|
|
|
if info, exists := personMap[phone]; exists {
|
|
|
- personArr[k].Mail = gconv.String(info["mail"])
|
|
|
- personArr[k].DeptId = gconv.Int64(info["deptId"])
|
|
|
- personArr[k].DeptName = gconv.String(info["deptName"])
|
|
|
- personArr[k].PositionId = gconv.Int64(info["positionId"])
|
|
|
+ persons[k].Mail = gconv.String(info["mail"])
|
|
|
+ persons[k].DeptId = gconv.Int64(info["deptId"])
|
|
|
+ persons[k].DeptName = gconv.String(info["deptName"])
|
|
|
+ persons[k].PositionId = gconv.Int64(info["positionId"])
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -251,14 +266,14 @@ func FindCandidate(personArr []Person, entId int64, orderType string) map[string
|
|
|
|
|
|
var k int
|
|
|
if orderWorkMap == nil || len(*orderWorkMap) == 0 {
|
|
|
- k = findNextPersonIndex(personArr, 0)
|
|
|
+ k = findNextPersonIndex(persons, 0)
|
|
|
} else {
|
|
|
currentName := gconv.String((*orderWorkMap)[0]["current_name"])
|
|
|
- k = findPersonIndexByName(personArr, currentName)
|
|
|
- k = findNextPersonIndex(personArr, k)
|
|
|
+ k = findPersonIndexByName(persons, currentName)
|
|
|
+ k = findNextPersonIndex(persons, k)
|
|
|
}
|
|
|
|
|
|
- personEntity = personArr[k]
|
|
|
+ personEntity = persons[k]
|
|
|
|
|
|
// Set person details
|
|
|
person["positionId"] = personEntity.PositionId
|
|
@@ -276,7 +291,7 @@ func FindCandidate(personArr []Person, entId int64, orderType string) map[string
|
|
|
}
|
|
|
|
|
|
// Helper function to find the next person index
|
|
|
-func findNextPersonIndex(personArr []Person, startIndex int) int {
|
|
|
+func findNextPersonIndex(personArr []PersonJson, startIndex int) int {
|
|
|
n := len(personArr)
|
|
|
// 如果当前索引是最后一个,则从 0 开始
|
|
|
if startIndex >= n-1 {
|
|
@@ -295,7 +310,7 @@ func findNextPersonIndex(personArr []Person, startIndex int) int {
|
|
|
}
|
|
|
|
|
|
// Helper function to find a person's index by name
|
|
|
-func findPersonIndexByName(personArr []Person, name string) int {
|
|
|
+func findPersonIndexByName(personArr []PersonJson, name string) int {
|
|
|
for i, v := range personArr {
|
|
|
if v.Name == name {
|
|
|
return i
|
|
@@ -367,7 +382,7 @@ func WorkMail(gmailAuth []*mail.GmailAuth, personMap map[string]interface{}, pro
|
|
|
if len(mailArr) > 0 {
|
|
|
toMail = fmt.Sprintf("%s|%s", toMail, toCc)
|
|
|
}
|
|
|
- log.Println(toMail, "", title, content)
|
|
|
+ log.Println(toMail, title, content)
|
|
|
for k, v := range gmailAuth {
|
|
|
fool := mail.GSendMail_q("剑鱼标讯", toMail, "", "", title, content, "", "", v)
|
|
|
if fool {
|