forked from golang/hotime
428 lines
16 KiB
Go
428 lines
16 KiB
Go
package app
|
|
|
|
import (
|
|
. "code.hoteas.com/golang/hotime"
|
|
. "code.hoteas.com/golang/hotime/common"
|
|
"sort"
|
|
)
|
|
|
|
type paixuArr []Map
|
|
|
|
func (x paixuArr) Len() int {
|
|
return len(x)
|
|
}
|
|
func (x paixuArr) Less(i, j int) bool {
|
|
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
|
|
}
|
|
|
|
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 that.Req.Form[k] != nil {
|
|
if 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", company, 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", company, 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", "id,declare_id", Map{"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{"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{"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{"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 {
|
|
flagslice = append(flagslice, v)
|
|
}
|
|
|
|
}
|
|
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"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 {
|
|
flagslice = append(flagslice, v)
|
|
}
|
|
|
|
}
|
|
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"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 {
|
|
flagslice = append(flagslice, v)
|
|
}
|
|
|
|
}
|
|
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"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 {
|
|
flagslice = append(flagslice, v)
|
|
}
|
|
|
|
}
|
|
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"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{"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{"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{"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{"del_flag": 0, "high_level_talents_flag": ObjToInt(that.Req.FormValue("high_level_talents_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")]["high_level_talents_flag_count"] = 1
|
|
}
|
|
//企业股东或成员是否有国内外高校或科研院在编、全职人员:0-否,1-是
|
|
if ObjToInt(that.Req.FormValue("shareholders_flag")) > 0 {
|
|
dtag = that.Db.Select("declare", "id AS declare_id", Map{"AND": Map{"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{"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{"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)
|
|
res := Slice{}
|
|
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,tag,status", Map{"id": id})
|
|
|
|
res = append(res, article)
|
|
}
|
|
|
|
that.Display(0, res)
|
|
|
|
},
|
|
//用户微信公众号或者小程序登录
|
|
"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}
|
|
}
|
|
|
|
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", 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,tag,status", Map{"id": v.GetCeilInt("declare_id")})
|
|
}
|
|
}
|
|
|
|
that.Display(0, Map{"total": count, "data": res})
|
|
},
|
|
}
|