2022-05-03 00:09:25 +00:00
package app
import (
. "code.hoteas.com/golang/hotime"
. "code.hoteas.com/golang/hotime/common"
2022-05-03 01:41:18 +00:00
"sort"
2022-05-03 00:09:25 +00:00
)
2022-05-03 01:41:18 +00:00
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 ]
}
2022-05-03 00:09:25 +00:00
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 ) {
2022-05-03 01:41:18 +00:00
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 )
2022-05-03 00:09:25 +00:00
} ,
//用户微信公众号或者小程序登录
"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 {
2022-05-03 07:17:27 +00:00
data = Map { "AND" : data , "ORDER" : "release_time DESC" }
2022-05-03 00:09:25 +00:00
}
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 {
2022-05-03 07:17:27 +00:00
v [ "declare" ] = that . Db . Get ( "declare" , "money_scope_min,money_scope_max,status" , Map { "id" : v . GetCeilInt ( "declare_id" ) } )
2022-05-03 00:09:25 +00:00
}
}
that . Display ( 0 , Map { "total" : count , "data" : res } )
} ,
}