|
@@ -8,7 +8,7 @@ import ( |
|
@@ -8,7 +8,7 @@ import ( |
|
8
|
"oppmg/utils"
|
8
|
"oppmg/utils"
|
|
9
|
)
|
9
|
)
|
|
10
|
|
10
|
|
|
11
|
-//GetChanceCheckResultInfo 获取机会详情
|
11
|
+//GetChanceCheckResultInfo 获取机会自查内容筛选详情
|
|
12
|
func GetChanceCheckResultInfo(chanceId int64, companyid int64) (protocol.ReponseChanceCheckResult, error) {
|
12
|
func GetChanceCheckResultInfo(chanceId int64, companyid int64) (protocol.ReponseChanceCheckResult, error) {
|
|
13
|
var (
|
13
|
var (
|
|
14
|
chanceData *models.Chance
|
14
|
chanceData *models.Chance
|
|
@@ -31,23 +31,82 @@ func GetChanceCheckResultInfo(chanceId int64, companyid int64) (protocol.Reponse |
|
@@ -31,23 +31,82 @@ func GetChanceCheckResultInfo(chanceId int64, companyid int64) (protocol.Reponse |
|
31
|
log.Error("机会的自查内容筛选状态错误")
|
31
|
log.Error("机会的自查内容筛选状态错误")
|
|
32
|
return rsp, protocol.NewErrWithMessage("1")
|
32
|
return rsp, protocol.NewErrWithMessage("1")
|
|
33
|
}
|
33
|
}
|
|
|
|
34
|
+ rsp, err = getChanceCheckResultData(chanceId)
|
|
|
|
35
|
+ return rsp, err
|
|
|
|
36
|
+}
|
|
|
|
37
|
+
|
|
|
|
38
|
+//getChanceCheckResultData 机会自查内容筛选详情数据输出
|
|
|
|
39
|
+func getChanceCheckResultData(chanceId int64) (protocol.ReponseChanceCheckResult, error) {
|
|
34
|
var (
|
40
|
var (
|
|
35
|
checkResultData []models.ChanceCheckResult
|
41
|
checkResultData []models.ChanceCheckResult
|
|
|
|
42
|
+ err error
|
|
36
|
)
|
43
|
)
|
|
|
|
44
|
+ rsp := protocol.ReponseChanceCheckResult{}
|
|
37
|
checkResultData, err = models.GetChanceCheckResultByChancce(chanceId)
|
45
|
checkResultData, err = models.GetChanceCheckResultByChancce(chanceId)
|
|
38
|
if err != nil {
|
46
|
if err != nil {
|
|
39
|
log.Error("未获得指定的机会自查内容筛选结果,err;%s", err)
|
47
|
log.Error("未获得指定的机会自查内容筛选结果,err;%s", err)
|
|
40
|
return rsp, nil
|
48
|
return rsp, nil
|
|
41
|
}
|
49
|
}
|
|
42
|
//组装响应数据
|
50
|
//组装响应数据
|
|
43
|
- //定义动态数据列
|
|
|
|
44
|
- customItems := utils.NewArraySetString()
|
51
|
+ //自查内容中的用户id
|
|
|
|
52
|
+ userIds := utils.NewArraySetInt64()
|
|
45
|
//自查内容项
|
53
|
//自查内容项
|
|
46
|
checkItems := utils.NewArraySetString()
|
54
|
checkItems := utils.NewArraySetString()
|
|
47
|
- _ = checkResultData
|
|
|
|
48
|
- _ = customItems
|
|
|
|
49
|
- _ = checkItems
|
|
|
|
50
|
- return rsp, err
|
55
|
+ checkResultMap := make(map[string]*protocol.ChanceCheckResultData)
|
|
|
|
56
|
+ for _, v := range checkResultData {
|
|
|
|
57
|
+ userIds.Add(v.UserCompanyId)
|
|
|
|
58
|
+ checkItems.Add(v.CheckItem)
|
|
|
|
59
|
+ if _, ok := checkResultMap[v.CheckItem]; ok {
|
|
|
|
60
|
+ checkResultMap[v.CheckItem].CustomItemData[fmt.Sprint(v.UserCompanyId)] = v.Answer
|
|
|
|
61
|
+ continue
|
|
|
|
62
|
+ }
|
|
|
|
63
|
+ userAnswer := map[string]string{
|
|
|
|
64
|
+ fmt.Sprint(v.UserCompanyId): v.Answer,
|
|
|
|
65
|
+ }
|
|
|
|
66
|
+ checkResultMap[v.CheckItem] = &protocol.ChanceCheckResultData{
|
|
|
|
67
|
+ CheckItem: v.CheckItem,
|
|
|
|
68
|
+ CustomItemData: userAnswer,
|
|
|
|
69
|
+ }
|
|
|
|
70
|
+
|
|
|
|
71
|
+ }
|
|
|
|
72
|
+ usernameMap := make(map[string]string)
|
|
|
|
73
|
+ for _, v := range userIds.ToSlice() {
|
|
|
|
74
|
+ idString := fmt.Sprint(v)
|
|
|
|
75
|
+ u, err := models.GetUserCompanyById(v)
|
|
|
|
76
|
+ if err == nil {
|
|
|
|
77
|
+ usernameMap[idString] = u.NickName
|
|
|
|
78
|
+ } else {
|
|
|
|
79
|
+ usernameMap[idString] = idString
|
|
|
|
80
|
+ }
|
|
|
|
81
|
+ rsp.CustomItem = append(rsp.CustomItem, usernameMap[idString])
|
|
|
|
82
|
+ }
|
|
|
|
83
|
+ for _, v := range checkItems.ToSlice() {
|
|
|
|
84
|
+ newCustomItemData := map[string]string{}
|
|
|
|
85
|
+ for kk, vv := range usernameMap {
|
|
|
|
86
|
+ if answer, ok := checkResultMap[v].CustomItemData[kk]; ok {
|
|
|
|
87
|
+ newCustomItemData[vv] = answer
|
|
|
|
88
|
+ } else {
|
|
|
|
89
|
+ newCustomItemData[vv] = ""
|
|
|
|
90
|
+ }
|
|
|
|
91
|
+ }
|
|
|
|
92
|
+ answerYes := 0 //回答:是
|
|
|
|
93
|
+ answerNo := 0 //回答:否
|
|
|
|
94
|
+ answerAny := 0 //回答:不清楚
|
|
|
|
95
|
+ checkResultMap[v].CustomItemData = newCustomItemData
|
|
|
|
96
|
+ for _, answerData := range checkResultMap[v].CustomItemData {
|
|
|
|
97
|
+ switch answerData {
|
|
|
|
98
|
+ case "是":
|
|
|
|
99
|
+ answerYes++
|
|
|
|
100
|
+ case "否":
|
|
|
|
101
|
+ answerNo++
|
|
|
|
102
|
+ case "不清楚":
|
|
|
|
103
|
+ answerAny++
|
|
|
|
104
|
+ }
|
|
|
|
105
|
+ }
|
|
|
|
106
|
+ checkResultMap[v].Total = fmt.Sprintf("是:%d 否:%d 不清楚:%d", answerYes, answerNo, answerAny)
|
|
|
|
107
|
+ rsp.CheckData = append(rsp.CheckData, *checkResultMap[v])
|
|
|
|
108
|
+ }
|
|
|
|
109
|
+ return rsp, nil
|
|
51
|
}
|
110
|
}
|
|
52
|
|
111
|
|
|
53
|
func GetChanceCheckResultList(pageIndex int, pageSize int, companyId int64, checkResultStatus int8) protocol.ResponseChanceCheckResultList {
|
112
|
func GetChanceCheckResultList(pageIndex int, pageSize int, companyId int64, checkResultStatus int8) protocol.ResponseChanceCheckResultList {
|
|
@@ -145,3 +204,47 @@ func GetChanceCheckResultList(pageIndex int, pageSize int, companyId int64, chec |
|
@@ -145,3 +204,47 @@ func GetChanceCheckResultList(pageIndex int, pageSize int, companyId int64, chec |
|
145
|
returnData.CurrentPage = pageIndex
|
204
|
returnData.CurrentPage = pageIndex
|
|
146
|
return returnData
|
205
|
return returnData
|
|
147
|
}
|
206
|
}
|
|
|
|
207
|
+
|
|
|
|
208
|
+func ChanceCheckResultPass(chanceId int64, companyId int64) error {
|
|
|
|
209
|
+ var (
|
|
|
|
210
|
+ err error
|
|
|
|
211
|
+ chanceData *models.Chance
|
|
|
|
212
|
+ )
|
|
|
|
213
|
+ chanceData, err = models.GetChanceById(chanceId)
|
|
|
|
214
|
+ if err != nil {
|
|
|
|
215
|
+ log.Error("未找到指定机会id=%d,err:%s", chanceId, err)
|
|
|
|
216
|
+ return protocol.NewErrWithMessage("1")
|
|
|
|
217
|
+ }
|
|
|
|
218
|
+ if chanceData.CompanyId != companyId {
|
|
|
|
219
|
+ log.Error("机会对应的公司不匹配")
|
|
|
|
220
|
+ return protocol.NewErrWithMessage("1")
|
|
|
|
221
|
+ }
|
|
|
|
222
|
+ chanceData.CheckResultStatus = models.CheckResultStatusPass
|
|
|
|
223
|
+ err = models.UpdateChanceById(chanceData, []string{"CheckResultStatus"})
|
|
|
|
224
|
+ if err != nil {
|
|
|
|
225
|
+ log.Error("更新chance数据失败,err;%s", err)
|
|
|
|
226
|
+ }
|
|
|
|
227
|
+ return nil
|
|
|
|
228
|
+}
|
|
|
|
229
|
+
|
|
|
|
230
|
+func ChanceCheckResultNoPass(chanceId int64, companyId int64) error {
|
|
|
|
231
|
+ var (
|
|
|
|
232
|
+ err error
|
|
|
|
233
|
+ chanceData *models.Chance
|
|
|
|
234
|
+ )
|
|
|
|
235
|
+ chanceData, err = models.GetChanceById(chanceId)
|
|
|
|
236
|
+ if err != nil {
|
|
|
|
237
|
+ log.Error("未找到指定机会id=%d,err:%s", chanceId, err)
|
|
|
|
238
|
+ return protocol.NewErrWithMessage("1")
|
|
|
|
239
|
+ }
|
|
|
|
240
|
+ if chanceData.CompanyId != companyId {
|
|
|
|
241
|
+ log.Error("机会对应的公司不匹配")
|
|
|
|
242
|
+ return protocol.NewErrWithMessage("1")
|
|
|
|
243
|
+ }
|
|
|
|
244
|
+ chanceData.CheckResultStatus = models.CheckResultStatusNOPass
|
|
|
|
245
|
+ err = models.UpdateChanceById(chanceData, []string{"CheckResultStatus"})
|
|
|
|
246
|
+ if err != nil {
|
|
|
|
247
|
+ log.Error("更新chance数据失败,err;%s", err)
|
|
|
|
248
|
+ }
|
|
|
|
249
|
+ return nil
|
|
|
|
250
|
+} |