对政策匹配进行优化

This commit is contained in:
hoteas 2022-05-09 19:19:15 +08:00
parent c1b013c926
commit db0724f09b

View File

@ -13,7 +13,9 @@ func (x paixuArr) Len() int {
return len(x) return len(x)
} }
func (x paixuArr) Less(i, j int) bool { func (x paixuArr) Less(i, j int) bool {
if x[i].GetMap("declare") != nil {
return x[i].GetMap("declare").GetFloat64("matching_degree") > x[j].GetMap("declare").GetFloat64("matching_degree")
}
return x[i].GetCeilInt64("count") > x[j].GetCeilInt64("count") return x[i].GetCeilInt64("count") > x[j].GetCeilInt64("count")
} }
func (x paixuArr) Swap(i, j int) { func (x paixuArr) Swap(i, j int) {
@ -203,7 +205,7 @@ var DeclareCtr = Ctr{
} }
} }
if len(flags) > 0 { if len(flagslice) > 0 {
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "engineering_center_flag": flagslice}}) dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "engineering_center_flag": flagslice}})
for _, v1 := range dtag { for _, v1 := range dtag {
@ -228,7 +230,7 @@ var DeclareCtr = Ctr{
} }
} }
if len(flags) > 0 { if len(flagslice) > 0 {
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "engineering_laboratory_flag": flagslice}}) dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "engineering_laboratory_flag": flagslice}})
for _, v1 := range dtag { for _, v1 := range dtag {
@ -252,7 +254,7 @@ var DeclareCtr = Ctr{
} }
} }
if len(flags) > 0 { if len(flagslice) > 0 {
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "key_laboratory_flag": flagslice}}) dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "key_laboratory_flag": flagslice}})
for _, v1 := range dtag { for _, v1 := range dtag {
if declares[v1.GetCeilInt64("declare_id")] == nil { if declares[v1.GetCeilInt64("declare_id")] == nil {
@ -275,7 +277,7 @@ var DeclareCtr = Ctr{
} }
} }
if len(flags) > 0 { if len(flagslice) > 0 {
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "industrial_design_center_flag": flagslice}}) dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "industrial_design_center_flag": flagslice}})
for _, v1 := range dtag { for _, v1 := range dtag {
if declares[v1.GetCeilInt64("declare_id")] == nil { if declares[v1.GetCeilInt64("declare_id")] == nil {
@ -371,7 +373,7 @@ var DeclareCtr = Ctr{
} }
} }
if len(flags) > 0 { if len(flagslice) > 0 {
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "high_level_talents_flag1": flagslice}}) dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "high_level_talents_flag1": flagslice}})
@ -639,7 +641,7 @@ var DeclareCtr = Ctr{
} }
} }
if len(flags) > 0 { if len(flagslice) > 0 {
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "engineering_center_flag": flagslice}}) dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "engineering_center_flag": flagslice}})
for _, v1 := range dtag { for _, v1 := range dtag {
@ -664,7 +666,7 @@ var DeclareCtr = Ctr{
} }
} }
if len(flags) > 0 { if len(flagslice) > 0 {
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "engineering_laboratory_flag": flagslice}}) dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "engineering_laboratory_flag": flagslice}})
for _, v1 := range dtag { for _, v1 := range dtag {
@ -688,7 +690,7 @@ var DeclareCtr = Ctr{
} }
} }
if len(flags) > 0 { if len(flagslice) > 0 {
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "key_laboratory_flag": flagslice}}) dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "key_laboratory_flag": flagslice}})
for _, v1 := range dtag { for _, v1 := range dtag {
if declares[v1.GetCeilInt64("declare_id")] == nil { if declares[v1.GetCeilInt64("declare_id")] == nil {
@ -711,7 +713,7 @@ var DeclareCtr = Ctr{
} }
} }
if len(flags) > 0 { if len(flagslice) > 0 {
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "industrial_design_center_flag": flagslice}}) dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "industrial_design_center_flag": flagslice}})
for _, v1 := range dtag { for _, v1 := range dtag {
if declares[v1.GetCeilInt64("declare_id")] == nil { if declares[v1.GetCeilInt64("declare_id")] == nil {
@ -807,7 +809,7 @@ var DeclareCtr = Ctr{
} }
} }
if len(flags) > 0 { if len(flagslice) > 0 {
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "high_level_talents_flag1": flagslice}}) dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "high_level_talents_flag1": flagslice}})
@ -865,7 +867,7 @@ var DeclareCtr = Ctr{
} }
//获取到排序后的数据 //获取到排序后的数据
sort.Sort(px) sort.Sort(px)
var res []Map res := paixuArr{}
//总参数量除了tag标签 //总参数量除了tag标签
columns := []string{ columns := []string{
"loan_flag", "nonlocal_dr_flag", "shareholders_flag", "high_level_talents_flag1", "loan_flag", "nonlocal_dr_flag", "shareholders_flag", "high_level_talents_flag1",
@ -887,8 +889,11 @@ var DeclareCtr = Ctr{
declare["favorite"] = favorite declare["favorite"] = favorite
} }
matchingDegree := 0 matchingDegree := 0
matchingDegreeCount := 0
for _, v1 := range columns { for _, v1 := range columns {
if declare.GetCeilInt(v1) != 0 {
matchingDegreeCount = matchingDegreeCount + 1
}
if declare.GetCeilInt(v1) != 0 && v.GetCeilInt(v1+"_count") != 0 { if declare.GetCeilInt(v1) != 0 && v.GetCeilInt(v1+"_count") != 0 {
matchingDegree++ matchingDegree++
} }
@ -899,17 +904,21 @@ var DeclareCtr = Ctr{
RecommendDeclare = declare RecommendDeclare = declare
} }
matchingDegreePercent := ObjToFloat64(matchingDegree) / ObjToFloat64(len(columns)) matchingDegreePercent := ObjToFloat64(matchingDegree) / ObjToFloat64(matchingDegreeCount)
if matchingDegreePercent < 0.5 { if matchingDegreePercent < 0.5 {
matchingDegreePercent = 0.5 + matchingDegreePercent matchingDegreePercent = 0.5 + matchingDegreePercent
} }
if matchingDegreePercent == 1 {
matchingDegreePercent = 0.95
}
declare["matching_degree"] = matchingDegreePercent declare["matching_degree"] = matchingDegreePercent
article["declare"] = declare article["declare"] = declare
res = append(res, article) res = append(res, article)
} }
sort.Sort(res)
minMoney := float64(0) minMoney := float64(0)
maxMoney := float64(0) maxMoney := float64(0)
for _, v := range res { for _, v := range res {