forked from golang/hotime
1023 lines
41 KiB
Go
1023 lines
41 KiB
Go
package app
|
||
|
||
import (
|
||
. "code.hoteas.com/golang/hotime"
|
||
. "code.hoteas.com/golang/hotime/common"
|
||
"sort"
|
||
"strings"
|
||
)
|
||
|
||
type paixuArr []Map
|
||
|
||
func (x paixuArr) Len() int {
|
||
return len(x)
|
||
}
|
||
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")
|
||
}
|
||
func (x paixuArr) Swap(i, j int) {
|
||
x[i], x[j] = x[j], x[i]
|
||
}
|
||
|
||
var DeclareCtr = Ctr{
|
||
|
||
"info": func(that *Context) {
|
||
id := ObjToInt(that.Req.FormValue("id"))
|
||
|
||
if id == 0 {
|
||
that.Display(3, "请求参数异常")
|
||
return
|
||
}
|
||
|
||
res := that.Db.Get("declare", "*", Map{"id": id})
|
||
|
||
if res == nil {
|
||
that.Display(4, "找不到通知公告")
|
||
return
|
||
}
|
||
res["click_num"] = res.GetCeilInt64("click_num") + res.GetCeilInt64("click_num_base") + 1
|
||
delete(res, "click_num_base")
|
||
|
||
res["favorite_num"] = res.GetCeilInt64("favorite_num") + res.GetCeilInt64("favorite_num_base")
|
||
delete(res, "favorite_num_base")
|
||
|
||
article := that.Db.Get("article", "*", Map{"id": res.GetCeilInt64("article_id")})
|
||
if article != nil {
|
||
article["click_num"] = article.GetCeilInt64("click_num") + article.GetCeilInt64("click_num_base") + 1
|
||
delete(article, "click_num_base")
|
||
|
||
article["favorite_num"] = article.GetCeilInt64("favorite_num") + article.GetCeilInt64("favorite_num_base")
|
||
delete(article, "favorite_num_base")
|
||
}
|
||
|
||
res["article"] = article
|
||
|
||
//浏览量加1
|
||
that.Db.Update("declare", Map{"click_num[#]": "click_num+1"}, Map{"id": id})
|
||
//浏览量加1
|
||
that.Db.Update("article", Map{"click_num[#]": "click_num+1"}, Map{"id": res.GetCeilInt64("article_id")})
|
||
|
||
//查询是否已关注
|
||
if that.Session("user_id").Data != nil {
|
||
favorite := that.Db.Get("favorite", "user_id,declare_id", Map{"AND": Map{"declare_id": id, "user_id": that.Session("user_id").ToCeilInt(), "del_flag": 0}})
|
||
res["favorite"] = favorite
|
||
}
|
||
|
||
that.Display(0, res)
|
||
},
|
||
//政策匹配
|
||
"match": func(that *Context) {
|
||
|
||
if that.Session("user_id").Data == nil {
|
||
that.Display(2, "没有登录")
|
||
return
|
||
}
|
||
|
||
user := that.Db.Get("user", "*", Map{"id": that.Session("user_id").Data})
|
||
if user == nil {
|
||
that.Display(4, "找不到用户")
|
||
return
|
||
}
|
||
|
||
companyName := that.Req.FormValue("company_name")
|
||
if companyName == "" {
|
||
that.Display(3, "参数错误")
|
||
return
|
||
}
|
||
qu := that.Req.FormValue("register_address")
|
||
qus := strings.Split(qu, "/")
|
||
|
||
for _, v := range qus {
|
||
if v != "" {
|
||
qu = v
|
||
}
|
||
}
|
||
|
||
if !strings.Contains(qu, "区") && !strings.Contains(qu, "县") {
|
||
qu = "没有此项数据随意填充的"
|
||
}
|
||
|
||
company := that.Db.Get("company", "*", Map{"user_id": that.Session("user_id").Data})
|
||
delete(company, "id")
|
||
delete(company, "salesman_id")
|
||
delete(company, "provider_id")
|
||
delete(company, "user_id")
|
||
delete(company, "del_flag")
|
||
delete(company, "state")
|
||
delete(company, "create_time")
|
||
delete(company, "modify_time")
|
||
data := Map{}
|
||
|
||
for k, _ := range company {
|
||
if k == "high_level_talents_flag1" && that.Req.FormValue("highLevel_talents_flag") != "" {
|
||
that.Req.Form[k] = that.Req.Form["highLevel_talents_flag"]
|
||
}
|
||
if that.Req.Form[k] != nil {
|
||
if k == "tags" || k == "high_level_talents_flag1" || k == "technology_center_flag" || k == "engineering_center_flag" || k == "engineering_laboratory_flag" || k == "key_laboratory_flag" || k == "industrial_design_center_flag" {
|
||
data[k] = ObjToStr(that.Req.Form[k])
|
||
} else {
|
||
data[k] = that.Req.FormValue(k)
|
||
}
|
||
}
|
||
}
|
||
|
||
//如果企业名称相同则允许变更企业信息
|
||
if companyName == company.GetString("name") {
|
||
that.Db.Update("company", data, Map{"user_id": that.Session("user_id").Data})
|
||
}
|
||
if companyName != company.GetString("name") {
|
||
//扫码绑定后,第一次使用匹配功能,自动进行认证,并更新企业信息
|
||
if user.GetCeilInt("certification_flag") == 0 && user.GetCeilInt64("salesman_id") != 0 {
|
||
that.Db.Update("user", Map{"certification_flag": 1}, Map{"id": user.GetCeilInt("id")})
|
||
company["name"] = companyName
|
||
that.Db.Update("company", data, Map{"user_id": that.Session("user_id").Data})
|
||
}
|
||
//其余情况,不存储数据
|
||
}
|
||
|
||
tags := that.Req.Form["tags"]
|
||
declares := map[int64]Map{}
|
||
|
||
//标签分析
|
||
if tags != nil {
|
||
for _, v := range tags {
|
||
dtag := that.Db.Select("declare_tag", Map{"[><]declare": "declare_tag.declare_id=declare.id"}, "declare_tag.declare_id", Map{"AND": Map{"OR": Map{"declare.policy_level": Slice{"省", "市"}, "declare.dispatch_department[~]": qu}, "declare_tag.tag_id": v}})
|
||
for _, v1 := range dtag {
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["tag_count"] = 1
|
||
}
|
||
}
|
||
}
|
||
|
||
//企业规模分析
|
||
dtag := that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "company_scale[<=]": ObjToInt(that.Req.FormValue("company_scale"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["company_scale_count"] = 1
|
||
}
|
||
|
||
//是否是有效期内的科技型中小企业称号:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("smes_flag")) > 0 {
|
||
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "smes_flag": ObjToInt(that.Req.FormValue("smes_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["smes_flag_count"] = 1
|
||
}
|
||
|
||
}
|
||
//是否是有效期内的高新区技术企业称号:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("htzte_flag")) > 0 {
|
||
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "htzte_flag": ObjToInt(that.Req.FormValue("htzte_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["htzte_flag_count"] = 1
|
||
}
|
||
}
|
||
//是否是有效期内的工程中心称号:0-否,1-市级,2-省级,3-国家级
|
||
flags := that.Req.Form["engineering_center_flag"]
|
||
flagslice := Slice{}
|
||
if flags != nil {
|
||
for _, v := range flags {
|
||
if v == "0" {
|
||
continue
|
||
}
|
||
flagslice = append(flagslice, v)
|
||
}
|
||
|
||
}
|
||
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}})
|
||
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["engineering_center_flag_count"] = 1
|
||
}
|
||
}
|
||
|
||
//是否是有效期内的工程实验室称号:0-否,1-市级,2-省级,3-国家级
|
||
flags = that.Req.Form["engineering_laboratory_flag"]
|
||
flagslice = Slice{}
|
||
if flags != nil {
|
||
for _, v := range flags {
|
||
if v == "0" {
|
||
continue
|
||
}
|
||
flagslice = append(flagslice, v)
|
||
}
|
||
|
||
}
|
||
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}})
|
||
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["engineering_laboratory_flag_count"] = 1
|
||
}
|
||
}
|
||
//是否是有效期内的重点实验室称号:0-否,1-市级,2-省级,3-国家级
|
||
flags = that.Req.Form["key_laboratory_flag"]
|
||
flagslice = Slice{}
|
||
if flags != nil {
|
||
for _, v := range flags {
|
||
if v == "0" {
|
||
continue
|
||
}
|
||
flagslice = append(flagslice, v)
|
||
}
|
||
|
||
}
|
||
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}})
|
||
for _, v1 := range dtag {
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["key_laboratory_flag_count"] = 1
|
||
}
|
||
}
|
||
|
||
//是否是有效期内的工业设计中心称号:0-否,1-市级,2-省级,3-国家级
|
||
flags = that.Req.Form["industrial_design_center_flag"]
|
||
flagslice = Slice{}
|
||
if flags != nil {
|
||
for _, v := range flags {
|
||
if v == "0" {
|
||
continue
|
||
}
|
||
flagslice = append(flagslice, v)
|
||
}
|
||
|
||
}
|
||
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}})
|
||
for _, v1 := range dtag {
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["industrial_design_center_flag_count"] = 1
|
||
}
|
||
}
|
||
|
||
//上年度有无研发投入:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("research_input_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"del_flag": 0, "research_input_flag": ObjToInt(that.Req.FormValue("research_input_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["research_input_flag_count"] = 1
|
||
}
|
||
}
|
||
|
||
//有无授权发明专利:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("invention_patent_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "invention_patent_flag": ObjToInt(that.Req.FormValue("invention_patent_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["invention_patent_flag_count"] = 1
|
||
}
|
||
}
|
||
|
||
//有无国际科技合作:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("international_cooperation_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "international_cooperation_flag": ObjToInt(that.Req.FormValue("international_cooperation_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["international_cooperation_flag_count"] = 1
|
||
}
|
||
}
|
||
//上年度有无固定资产投入:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("investment_fixed_assets_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "investment_fixed_assets_flag": ObjToInt(that.Req.FormValue("investment_fixed_assets_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["investment_fixed_assets_flag_count"] = 1
|
||
}
|
||
}
|
||
//高层次人才情况:0-否,1-3个及以上博士-1,2-1个及以上博士-2,3-知名企业中高管1个及以上
|
||
//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": ObjToInt(that.Req.FormValue("high_level_talents_flag1"))}})
|
||
//for _, v1 := range dtag {
|
||
//
|
||
// if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
// declares[v1.GetCeilInt64("declare_id")] = v1
|
||
// }
|
||
// declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
// declares[v1.GetCeilInt64("declare_id")]["high_level_talents_flag1_count"] = 1
|
||
//}
|
||
//
|
||
//
|
||
//flags := that.Req.Form["engineering_center_flag"]
|
||
//flagslice := Slice{}
|
||
//if flags != nil {
|
||
// for _, v := range flags {
|
||
// if v == "0" {
|
||
// continue
|
||
// }
|
||
// flagslice = append(flagslice, v)
|
||
// }
|
||
//
|
||
//}
|
||
//高层次人才情况:0-否,1-3个及以上博士-1,2-1个及以上博士-2,3-知名企业中高管1个及以上
|
||
flags = that.Req.Form["high_level_talents_flag1"]
|
||
flagslice = Slice{}
|
||
if flags != nil {
|
||
for _, v := range flags {
|
||
if v == "0" {
|
||
continue
|
||
}
|
||
flagslice = append(flagslice, v)
|
||
}
|
||
|
||
}
|
||
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}})
|
||
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["high_level_talents_flag1"] = 1
|
||
}
|
||
|
||
}
|
||
|
||
//企业股东或成员是否有国内外高校或科研院在编、全职人员:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("shareholders_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "shareholders_flag": ObjToInt(that.Req.FormValue("shareholders_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["shareholders_flag_count"] = 1
|
||
}
|
||
}
|
||
//企业有无从外地引进博士学历人才:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("nonlocal_dr_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "nonlocal_dr_flag": ObjToInt(that.Req.FormValue("nonlocal_dr_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["nonlocal_dr_flag"] = 1
|
||
}
|
||
}
|
||
//上年度是否有贷款/融资或未来有贷款/融资计划:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("loan_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "loan_flag": ObjToInt(that.Req.FormValue("loan_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["loan_flag"] = 1
|
||
}
|
||
}
|
||
|
||
px := paixuArr{}
|
||
for _, v := range declares {
|
||
px = append(px, v)
|
||
}
|
||
//获取到排序后的数据
|
||
sort.Sort(px)
|
||
var res []Map
|
||
for _, v := range px {
|
||
id := v.GetCeilInt("declare_id")
|
||
article := that.Db.Get("article", "id,title,description,department_id,click_num+click_num_base AS click_num,"+
|
||
"favorite_num_base+favorite_num AS favorite_num,dispatch_num,dispatch_name,prepare_date,release_time,expire_date,area_id,status,declare_id,declare_id,declare_id", Map{"declare_id": id})
|
||
article["declare"] = that.Db.Get("declare", "money_scope_min,money_scope_max,status", Map{"id": id})
|
||
|
||
res = append(res, article)
|
||
}
|
||
minMoney := float64(0)
|
||
maxMoney := float64(0)
|
||
for _, v := range res {
|
||
if v.GetMap("declare") != nil {
|
||
if v.GetMap("declare").GetFloat64("money_scope_min") < minMoney {
|
||
minMoney = v.GetMap("declare").GetFloat64("money_scope_min")
|
||
}
|
||
if v.GetMap("declare").GetFloat64("money_scope_max") > maxMoney {
|
||
maxMoney = v.GetMap("declare").GetFloat64("money_scope_max")
|
||
}
|
||
}
|
||
}
|
||
seData := Map{
|
||
"user_id": that.Session("user_id").Data,
|
||
"search_company_name": companyName,
|
||
"policy_match_count": len(res),
|
||
"json_data": ObjToStr(company),
|
||
"create_time[#]": "now()",
|
||
"modify_time[#]": "now()",
|
||
"del_flag": 0,
|
||
}
|
||
if maxMoney != minMoney {
|
||
seData["money_scope"] = ObjToStr(ObjToInt(minMoney)) + "-" + ObjToStr(ObjToInt(maxMoney)) + ""
|
||
} else if maxMoney == 0 {
|
||
seData["money_scope"] = ""
|
||
} else {
|
||
seData["money_scope"] = ObjToStr(ObjToInt(maxMoney)) + ""
|
||
}
|
||
|
||
//匹配记录存储
|
||
that.Db.Insert("search_record", seData)
|
||
|
||
that.Display(0, res)
|
||
|
||
},
|
||
|
||
//政策匹配
|
||
"match_v2": func(that *Context) {
|
||
|
||
if that.Session("user_id").Data == nil {
|
||
that.Display(2, "没有登录")
|
||
return
|
||
}
|
||
|
||
user := that.Db.Get("user", "*", Map{"id": that.Session("user_id").Data})
|
||
if user == nil {
|
||
that.Display(4, "找不到用户")
|
||
return
|
||
}
|
||
//消除company没有创建的影响
|
||
if user.GetCeilInt("company_id") == 0 {
|
||
companyId := that.Db.Insert("company", Map{
|
||
"user_id": user["id"],
|
||
"create_time[#]": "now()",
|
||
"modify_time[#]": "now()",
|
||
"del_flag": 0,
|
||
})
|
||
user["company_id"] = companyId
|
||
that.Db.Update("user", Map{"company_id": companyId}, Map{"id": user.GetCeilInt("id")})
|
||
}
|
||
|
||
companyName := that.Req.FormValue("company_name")
|
||
if companyName == "" {
|
||
that.Display(3, "参数错误")
|
||
return
|
||
}
|
||
qu := that.Req.FormValue("register_address")
|
||
qus := strings.Split(qu, "/")
|
||
|
||
for _, v := range qus {
|
||
if v != "" {
|
||
qu = v
|
||
}
|
||
}
|
||
|
||
if !strings.Contains(qu, "区") && !strings.Contains(qu, "县") {
|
||
qu = "没有此项数据随意填充的"
|
||
}
|
||
|
||
company := that.Db.Get("company", "*", Map{"id": user.GetCeilInt("company_id")})
|
||
|
||
//消除company没有创建的影响
|
||
if company == nil {
|
||
companyId := that.Db.Insert("company", Map{
|
||
"user_id": user["id"],
|
||
"create_time[#]": "now()",
|
||
"modify_time[#]": "now()",
|
||
"provider_id": user["provider_id"],
|
||
"salesman_id": user["salesman_id"],
|
||
"del_flag": 0,
|
||
})
|
||
user["company_id"] = companyId
|
||
that.Db.Update("user", Map{"company_id": companyId}, Map{"id": user.GetCeilInt("id")})
|
||
company = that.Db.Get("company", "*", Map{"id": user.GetCeilInt("company_id")})
|
||
}
|
||
|
||
delete(company, "id")
|
||
delete(company, "salesman_id")
|
||
delete(company, "provider_id")
|
||
delete(company, "user_id")
|
||
delete(company, "del_flag")
|
||
delete(company, "state")
|
||
delete(company, "create_time")
|
||
delete(company, "modify_time")
|
||
data := Map{}
|
||
|
||
for k, _ := range company {
|
||
if k == "high_level_talents_flag1" && that.Req.FormValue("highLevel_talents_flag") != "" {
|
||
that.Req.Form[k] = that.Req.Form["highLevel_talents_flag"]
|
||
}
|
||
if that.Req.Form[k] != nil {
|
||
if k == "tags" || k == "high_level_talents_flag1" || k == "technology_center_flag" || k == "engineering_center_flag" || k == "engineering_laboratory_flag" || k == "key_laboratory_flag" || k == "industrial_design_center_flag" {
|
||
//data[k] = ObjToStr(that.Req.Form[k])
|
||
data[k] = arrayToStr(ObjToSlice(that.Req.Form[k]))
|
||
} else {
|
||
data[k] = that.Req.FormValue(k)
|
||
}
|
||
}
|
||
}
|
||
|
||
//如果企业名称相同则允许变更企业信息
|
||
if companyName == company.GetString("name") || company.GetString("name") == "" {
|
||
that.Db.Update("company", data, Map{"user_id": that.Session("user_id").Data})
|
||
}
|
||
if companyName != company.GetString("name") {
|
||
//扫码绑定后,第一次使用匹配功能,自动进行认证,并更新企业信息
|
||
if (user.GetCeilInt("certification_flag") == 0 || company.GetString("name") == "") && user.GetCeilInt64("salesman_id") != 0 {
|
||
that.Db.Update("user", Map{"certification_flag": 1}, Map{"id": user.GetCeilInt("id")})
|
||
company["name"] = companyName
|
||
that.Db.Update("company", data, Map{"user_id": that.Session("user_id").Data})
|
||
}
|
||
//其余情况,不存储数据
|
||
}
|
||
|
||
tags := that.Req.Form["tags"]
|
||
declares := map[int64]Map{}
|
||
|
||
//标签分析
|
||
if tags != nil {
|
||
for _, v := range tags {
|
||
dtag := that.Db.Select("declare_tag", Map{"[><]declare": "declare_tag.declare_id=declare.id"}, "declare_tag.declare_id", Map{"AND": Map{"OR": Map{"declare.policy_level": Slice{"省", "市"}, "declare.dispatch_department[~]": qu}, "declare_tag.tag_id": v}})
|
||
for _, v1 := range dtag {
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["tag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("tag_count") + 1
|
||
}
|
||
}
|
||
}
|
||
|
||
//企业规模分析
|
||
dtag := that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "company_scale[<=]": ObjToInt(that.Req.FormValue("company_scale"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["company_scale_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("company_scale_count") + 1
|
||
}
|
||
|
||
//是否是有效期内的科技型中小企业称号:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("smes_flag")) > 0 {
|
||
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "smes_flag": ObjToInt(that.Req.FormValue("smes_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["smes_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("smes_flag_count") + 1
|
||
}
|
||
|
||
}
|
||
//是否是有效期内的高新区技术企业称号:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("htzte_flag")) > 0 {
|
||
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "htzte_flag": ObjToInt(that.Req.FormValue("htzte_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["htzte_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("htzte_flag_count") + 1
|
||
}
|
||
}
|
||
//是否是有效期内的工程中心称号:0-否,1-市级,2-省级,3-国家级
|
||
flags := that.Req.Form["engineering_center_flag"]
|
||
flagslice := Slice{}
|
||
if flags != nil {
|
||
for _, v := range flags {
|
||
if v == "0" {
|
||
continue
|
||
}
|
||
flagslice = append(flagslice, v)
|
||
}
|
||
|
||
}
|
||
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}})
|
||
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["engineering_center_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("engineering_center_flag_count") + 1
|
||
}
|
||
}
|
||
|
||
//是否是有效期内的工程实验室称号:0-否,1-市级,2-省级,3-国家级
|
||
flags = that.Req.Form["engineering_laboratory_flag"]
|
||
flagslice = Slice{}
|
||
if flags != nil {
|
||
for _, v := range flags {
|
||
if v == "0" {
|
||
continue
|
||
}
|
||
flagslice = append(flagslice, v)
|
||
}
|
||
|
||
}
|
||
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}})
|
||
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["engineering_laboratory_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("engineering_laboratory_flag_count") + 1
|
||
}
|
||
}
|
||
//是否是有效期内的重点实验室称号:0-否,1-市级,2-省级,3-国家级
|
||
flags = that.Req.Form["key_laboratory_flag"]
|
||
flagslice = Slice{}
|
||
if flags != nil {
|
||
for _, v := range flags {
|
||
if v == "0" {
|
||
continue
|
||
}
|
||
flagslice = append(flagslice, v)
|
||
}
|
||
|
||
}
|
||
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}})
|
||
for _, v1 := range dtag {
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["key_laboratory_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("key_laboratory_flag_count") + 1
|
||
}
|
||
}
|
||
|
||
//是否是有效期内的工业设计中心称号:0-否,1-市级,2-省级,3-国家级
|
||
flags = that.Req.Form["industrial_design_center_flag"]
|
||
flagslice = Slice{}
|
||
if flags != nil {
|
||
for _, v := range flags {
|
||
if v == "0" {
|
||
continue
|
||
}
|
||
flagslice = append(flagslice, v)
|
||
}
|
||
|
||
}
|
||
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}})
|
||
for _, v1 := range dtag {
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["industrial_design_center_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("industrial_design_center_flag_count") + 1
|
||
}
|
||
}
|
||
|
||
//上年度有无研发投入:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("research_input_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"del_flag": 0, "research_input_flag": ObjToInt(that.Req.FormValue("research_input_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["research_input_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("research_input_flag_count") + 1
|
||
}
|
||
}
|
||
|
||
//有无授权发明专利:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("invention_patent_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "invention_patent_flag": ObjToInt(that.Req.FormValue("invention_patent_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["invention_patent_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("invention_patent_flag_count") + 1
|
||
}
|
||
}
|
||
|
||
//有无国际科技合作:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("international_cooperation_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "international_cooperation_flag": ObjToInt(that.Req.FormValue("international_cooperation_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["international_cooperation_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("international_cooperation_flag_count") + 1
|
||
}
|
||
}
|
||
//上年度有无固定资产投入:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("investment_fixed_assets_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "investment_fixed_assets_flag": ObjToInt(that.Req.FormValue("investment_fixed_assets_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["investment_fixed_assets_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("investment_fixed_assets_flag_count") + 1
|
||
}
|
||
}
|
||
//高层次人才情况:0-否,1-3个及以上博士-1,2-1个及以上博士-2,3-知名企业中高管1个及以上
|
||
//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": ObjToInt(that.Req.FormValue("high_level_talents_flag1"))}})
|
||
//for _, v1 := range dtag {
|
||
//
|
||
// if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
// declares[v1.GetCeilInt64("declare_id")] = v1
|
||
// }
|
||
// declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
// declares[v1.GetCeilInt64("declare_id")]["high_level_talents_flag1_count"] = 1
|
||
//}
|
||
//
|
||
//
|
||
//flags := that.Req.Form["engineering_center_flag"]
|
||
//flagslice := Slice{}
|
||
//if flags != nil {
|
||
// for _, v := range flags {
|
||
// if v == "0" {
|
||
// continue
|
||
// }
|
||
// flagslice = append(flagslice, v)
|
||
// }
|
||
//
|
||
//}
|
||
//高层次人才情况:0-否,1-3个及以上博士-1,2-1个及以上博士-2,3-知名企业中高管1个及以上
|
||
flags = that.Req.Form["high_level_talents_flag1"]
|
||
flagslice = Slice{}
|
||
if flags != nil {
|
||
for _, v := range flags {
|
||
if v == "0" {
|
||
continue
|
||
}
|
||
flagslice = append(flagslice, v)
|
||
}
|
||
|
||
}
|
||
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}})
|
||
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["high_level_talents_flag1_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("high_level_talents_flag1_count") + 1
|
||
}
|
||
|
||
}
|
||
|
||
//企业股东或成员是否有国内外高校或科研院在编、全职人员:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("shareholders_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "shareholders_flag": ObjToInt(that.Req.FormValue("shareholders_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["shareholders_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("shareholders_flag_count") + 1
|
||
}
|
||
}
|
||
//企业有无从外地引进博士学历人才:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("nonlocal_dr_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "nonlocal_dr_flag": ObjToInt(that.Req.FormValue("nonlocal_dr_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["nonlocal_dr_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("nonlocal_dr_flag_count") + 1
|
||
}
|
||
}
|
||
//上年度是否有贷款/融资或未来有贷款/融资计划:0-否,1-是
|
||
if ObjToInt(that.Req.FormValue("loan_flag")) > 0 {
|
||
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"OR": Map{"policy_level": Slice{"省", "市"}, "dispatch_department[~]": qu}, "del_flag": 0, "loan_flag": ObjToInt(that.Req.FormValue("loan_flag"))}})
|
||
for _, v1 := range dtag {
|
||
|
||
if declares[v1.GetCeilInt64("declare_id")] == nil {
|
||
declares[v1.GetCeilInt64("declare_id")] = v1
|
||
}
|
||
declares[v1.GetCeilInt64("declare_id")]["count"] = declares[v1.GetCeilInt64("declare_id")].GetCeilInt64("count") + 1
|
||
declares[v1.GetCeilInt64("declare_id")]["loan_flag_count"] = declares[v1.GetCeilInt64("declare_id")].GetInt64("loan_flag_count") + 1
|
||
}
|
||
}
|
||
|
||
px := paixuArr{}
|
||
for _, v := range declares {
|
||
px = append(px, v)
|
||
}
|
||
//获取到排序后的数据
|
||
sort.Sort(px)
|
||
res := paixuArr{}
|
||
//总参数量,除了tag标签
|
||
columns := []string{
|
||
"loan_flag", "nonlocal_dr_flag", "shareholders_flag", "high_level_talents_flag1",
|
||
"investment_fixed_assets_flag", "international_cooperation_flag", "invention_patent_flag",
|
||
"research_input_flag", "industrial_design_center_flag", "key_laboratory_flag",
|
||
"engineering_laboratory_flag", "engineering_center_flag", "htzte_flag",
|
||
"smes_flag", "company_scale"}
|
||
RecommendValue := 0
|
||
RecommendDeclare := Map{}
|
||
for _, v := range px {
|
||
id := v.GetCeilInt("declare_id")
|
||
article := that.Db.Get("article", "id,title,description,department_id,click_num+click_num_base AS click_num,"+
|
||
"favorite_num_base+favorite_num AS favorite_num,dispatch_num,dispatch_name,prepare_date,release_time,expire_date,area_id,status,declare_id,declare_id,declare_id", Map{"declare_id": id})
|
||
declare := that.Db.Get("declare", "*", Map{"id": id})
|
||
|
||
//查询是否已关注
|
||
if that.Session("user_id").Data != nil {
|
||
favorite := that.Db.Get("favorite", "user_id,declare_id", Map{"AND": Map{"declare_id": id, "user_id": that.Session("user_id").ToCeilInt(), "del_flag": 0}})
|
||
declare["favorite"] = favorite
|
||
}
|
||
matchingDegree := 0
|
||
matchingDegreeCount := 0
|
||
for _, v1 := range columns {
|
||
if declare.GetCeilInt(v1) != 0 {
|
||
matchingDegreeCount = matchingDegreeCount + 1
|
||
}
|
||
if declare.GetCeilInt(v1) != 0 && v.GetCeilInt(v1+"_count") != 0 {
|
||
matchingDegree++
|
||
}
|
||
}
|
||
|
||
if RecommendValue < matchingDegree {
|
||
RecommendValue = matchingDegree
|
||
RecommendDeclare = declare
|
||
}
|
||
|
||
matchingDegreePercent := ObjToFloat64(matchingDegree) / ObjToFloat64(matchingDegreeCount)
|
||
|
||
if matchingDegreePercent < 0.5 {
|
||
matchingDegreePercent = 0.5 + matchingDegreePercent
|
||
}
|
||
if matchingDegreePercent == 1 {
|
||
matchingDegreePercent = 0.95
|
||
}
|
||
declare["matching_degree"] = matchingDegreePercent
|
||
|
||
article["declare"] = declare
|
||
res = append(res, article)
|
||
}
|
||
|
||
sort.Sort(res)
|
||
minMoney := float64(0)
|
||
maxMoney := float64(0)
|
||
for _, v := range res {
|
||
if v.GetMap("declare") != nil {
|
||
if v.GetMap("declare").GetFloat64("money_scope_min") < minMoney {
|
||
minMoney = v.GetMap("declare").GetFloat64("money_scope_min")
|
||
}
|
||
if v.GetMap("declare").GetFloat64("money_scope_max") > maxMoney {
|
||
maxMoney = v.GetMap("declare").GetFloat64("money_scope_max")
|
||
}
|
||
}
|
||
}
|
||
seData := Map{
|
||
"user_id": that.Session("user_id").Data,
|
||
"search_company_name": companyName,
|
||
"policy_match_count": len(res),
|
||
"json_data": ObjToStr(company),
|
||
"create_time[#]": "now()",
|
||
"modify_time[#]": "now()",
|
||
"del_flag": 0,
|
||
}
|
||
if maxMoney != minMoney {
|
||
seData["money_scope"] = ObjToStr(ObjToInt(minMoney)) + "-" + ObjToStr(ObjToInt(maxMoney)) + ""
|
||
} else if maxMoney == 0 {
|
||
seData["money_scope"] = ""
|
||
} else {
|
||
seData["money_scope"] = ObjToStr(ObjToInt(maxMoney)) + ""
|
||
}
|
||
|
||
//匹配记录存储
|
||
that.Db.Insert("search_record", seData)
|
||
re := Map{"recomend": RecommendDeclare, "count": len(res), "data": res}
|
||
|
||
//company,e:=aliyun.Company.GetCompanyBaseInfo(companyName)
|
||
//if e==nil{
|
||
// re["company"]=
|
||
//}
|
||
|
||
that.Display(0, re)
|
||
|
||
},
|
||
|
||
//用户微信公众号或者小程序登录
|
||
"search": func(that *Context) {
|
||
|
||
page := ObjToInt(that.Req.FormValue("page"))
|
||
pageSize := ObjToInt(that.Req.FormValue("pageSize"))
|
||
|
||
if page < 1 {
|
||
page = 1
|
||
}
|
||
|
||
if pageSize <= 0 {
|
||
pageSize = 20
|
||
}
|
||
|
||
data := Map{"del_flag": 0, "declare_id[!]": nil}
|
||
keywords := that.Req.FormValue("keywords")
|
||
if keywords != "" {
|
||
data["OR"] = Map{"title[~]": keywords, "description[~]": keywords, "content[~]": keywords}
|
||
}
|
||
|
||
startTime := that.Req.FormValue("starttime")
|
||
finishTime := that.Req.FormValue("finishtime")
|
||
|
||
if startTime != "" {
|
||
data["release_date[>=]"] = startTime
|
||
}
|
||
if finishTime != "" {
|
||
data["release_date[<=]"] = finishTime
|
||
}
|
||
|
||
dispatchName := that.Req.FormValue("dispatch_name")
|
||
if dispatchName != "" {
|
||
data["dispatch_name"] = dispatchName
|
||
}
|
||
|
||
if len(data) > 1 {
|
||
data = Map{"AND": data, "ORDER": "release_time DESC"}
|
||
}
|
||
|
||
count := that.Db.Count("article", data)
|
||
|
||
res := that.Db.Page(page, pageSize).PageSelect("article", "id,title,description,department_id,click_num+click_num_base AS click_num,"+
|
||
"favorite_num_base+favorite_num AS favorite_num,dispatch_num,dispatch_name,prepare_date,release_time,expire_date,area_id,status,declare_id,declare_id,declare_id,dispatch_name,policy_level", data)
|
||
for _, v := range res {
|
||
|
||
//if v.GetCeilInt("declare_id")>0{
|
||
// v["declare"]=that.Db.Get("declare","id,tag",Map{"id":v.GetCeilInt("declare_id")})
|
||
//}
|
||
//if v.GetCeilInt("declare_id")>0{
|
||
// v["declare"]=that.Db.Get("declare","tag",Map{"id":v.GetCeilInt("declare_id")})
|
||
//}
|
||
if v.GetCeilInt("declare_id") > 0 {
|
||
v["declare"] = that.Db.Get("declare", "money_scope_min,money_scope_max,status", Map{"id": v.GetCeilInt("declare_id")})
|
||
}
|
||
}
|
||
|
||
that.Display(0, Map{"total": count, "data": res})
|
||
},
|
||
}
|