Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zjxcxServer
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
node_server
zjxcxServer
Commits
3313c217
Commit
3313c217
authored
Jul 07, 2025
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
a70931c9
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
202 additions
and
31 deletions
+202
-31
activity.ts
src/biz/mobileEnterprise/activity.ts
+36
-0
visit.ts
src/biz/mobileFuHuaQi/visit.ts
+44
-19
enum.ts
src/config/enum.ts
+7
-0
activity.ts
src/data/activity.ts
+73
-0
activity.ts
src/routers/enterpriseMobileClient/activity.ts
+30
-0
visit.ts
src/routers/mobileClient/visit.ts
+12
-12
No files found.
src/biz/mobileEnterprise/activity.ts
0 → 100644
View file @
3313c217
//企业端 活动
import
moment
=
require
(
"moment"
);
import
*
as
activityData
from
"../../data/activity"
;
import
{
changeEnumManyValue
}
from
"../../util/verificationEnum"
;
import
{
ACTIVITYLABEL
}
from
"../../config/enum"
;
export
async
function
activityList
()
{
let
dbList
=
await
activityData
.
findByParam
({});
let
dataList
=
[];
dbList
.
forEach
(
info
=>
{
let
{
address
,
title
,
img
,
startTime
,
endTime
,
id
,
labelList
}
=
info
;
dataList
.
push
({
label
:
changeEnumManyValue
(
ACTIVITYLABEL
,
labelList
),
address
,
title
,
img
,
id
,
time
:
`
${
moment
(
startTime
).
format
(
"YYYY/MM/DD"
)}
-
${
moment
(
endTime
).
format
(
"YYYY/MM/DD"
)}
`
});
});
return
{
dataList
};
}
export
async
function
activityInfo
(
id
)
{
let
activityInfo
=
await
activityData
.
findOne
({
id
});
let
dataInfo
=
{
title
:
activityInfo
.
activityInfo
,
//标题
content
:
activityInfo
.
activityInfo
,
//内容
img
:
activityInfo
.
activityInfo
,
//图片
source
:
activityInfo
.
source
,
//来源
createTime
:
activityInfo
.
createTime
,
//创建时间
};
return
{
dataInfo
}
}
\ No newline at end of file
src/biz/mobileFuHuaQi/visit.ts
View file @
3313c217
...
...
@@ -72,17 +72,6 @@ export async function visitStatisTypeList(fuHuaQiUscc) {
});
}
dataList
.
push
({
key
:
"新入驻企业"
,
count
:
1
,
list
:[
{
enterpriseName
:
"测试"
,
id
:
"123"
,
demand
:[
"测试标签"
,
"测试标签2"
]
}
]
});
return
{
dataList
};
}
...
...
@@ -235,27 +224,63 @@ export async function visitTrackAdd(fuHuaQiUscc:string, uscc:string, trackType:n
export
async
function
visit
_log_s
tatis
(
fuHuaQiUscc
:
string
,
year
:
number
)
{
export
async
function
visit
LogS
tatis
(
fuHuaQiUscc
:
string
,
year
:
number
)
{
let
startMs
=
moment
(
`
${
year
}
-01-01 00:00:00`
).
valueOf
();
let
endMs
=
moment
(
`
${
year
}
-01-01 00:00:00`
).
add
(
1
,
'y'
).
valueOf
();
let
lastStartMs
=
moment
(
`
${
year
}
-01-01 00:00:00`
).
subtract
(
1
,
'y'
).
valueOf
();
let
thisYearParma
=
{
visitTime
:{
"$gt"
:
startMs
,
"$lt"
:
endMs
},
fuHuaQiUscc
,
state
:{
"$gt"
:
VISITSTATE
.
走访安排
}};
let
dangQianCount
=
await
visitData
.
findCountByParam
(
thisYearParma
);
let
liShiCount
=
await
visitData
.
findCountByParam
({
visitTime
:{
"$gt"
:
startMs
},
fuHuaQiUscc
,
state
:{
"$ne"
:
VISITSTATE
.
走访安排
}});
let
lastYear
Count
=
await
visitData
.
findCountByParam
({
visitTime
:{
"$gt"
:
lastYearMs
,
"$lt"
:
startMs
},
fuHuaQiUscc
})
;
let
thisYearCount
=
dangQianCount
+
liShiCount
;
let
lastYear
Parma
=
{
visitTime
:{
"$gt"
:
lastStartMs
,
"$lt"
:
startMs
},
fuHuaQiUscc
,
state
:{
"$gt"
:
VISITSTATE
.
走访安排
}}
;
let
liShiCount
=
await
visitData
.
findCountByParam
(
lastYearParma
)
;
let
yearToYear
=
0
;
if
(
thisYearCount
&&
lastYear
Count
)
{
yearToYear
=
Math
.
ceil
((
thisYearCount
-
lastYearCount
)
/
lastYear
Count
*
100
)
let
rate
=
0
;
if
(
dangQianCount
&&
liShi
Count
)
{
rate
=
Math
.
ceil
((
dangQianCount
-
liShiCount
)
/
liShi
Count
*
100
)
}
return
{
dataInfo
:{
rate
,
thisYearCount
:
dangQianCount
}};
}
export
async
function
visitLogList
(
fuHuaQiUscc
:
string
,
year
:
number
)
{
let
startMs
=
moment
(
`
${
year
}
-01-01 00:00:00`
).
valueOf
();
let
endMs
=
moment
(
`
${
year
}
-01-01 00:00:00`
).
add
(
1
,
'y'
).
valueOf
();
let
dbList
=
await
visitData
.
findByParam
({
visitTime
:{
"$gt"
:
startMs
,
"$lt"
:
endMs
},
state
:{
"$gt"
:
VISITSTATE
.
走访安排
},
fuHuaQiUscc
});
let
monthMap
=
{};
dbList
.
forEach
(
item
=>
{
let
{
state
,
enterpriseName
,
id
,
visitTime
}
=
item
;
let
monthNumber
=
moment
(
visitTime
).
format
(
"M"
);
if
(
!
monthMap
[
monthNumber
])
{
monthMap
[
monthNumber
]
=
{
count
:
0
,
dataList
:[]};
}
monthMap
[
monthNumber
].
count
+=
1
;
monthMap
[
monthNumber
].
dataList
.
push
({
enterpriseName
,
id
,
state
:
changeEnumValue
(
VISITSTATE
,
state
),
visitTime
:
moment
(
visitTime
).
format
(
"YYYY/MM/DD HH:mm"
)
});
});
let
dataList
=
[];
for
(
let
key
in
monthMap
)
{
dataList
.
push
({
key
:
changeEnumValue
(
VISITENTERPRISETYPE
,
parseInt
(
key
)),
count
:
monthMap
[
key
].
count
,
list
:
monthMap
[
key
].
dataList
});
}
return
{
dataList
}
}
//企业需求相关
...
...
src/config/enum.ts
View file @
3313c217
...
...
@@ -592,4 +592,10 @@ export enum VISITDEMAND {
export
enum
RESEARCHTYPE
{
领导走访
=
1
}
export
enum
ACTIVITYLABEL
{
资金
=
1
,
政策
,
人才服务
}
\ No newline at end of file
src/data/activity.ts
0 → 100644
View file @
3313c217
/**
* 活动
*/
import
{
Schema
}
from
'mongoose'
;
import
{
baseDB
}
from
'../db/mongo/dbInit'
;
const
activitySchema
=
new
Schema
({
id
:
String
,
//标识
title
:
String
,
//标题
content
:
String
,
//内容
img
:
String
,
//图片
source
:
String
,
//来源
startTime
:{
type
:
Number
,
index
:
true
},
//开始时间
endTime
:{
type
:
Number
,
index
:
true
},
//结束时间
labelList
:[
Number
],
createTime
:
Number
,
//创建时间
createUser
:
String
,
//创建人
address
:
String
});
var
activityModel
;
export
function
initModel
(){
activityModel
=
baseDB
.
model
(
'activity'
,
activitySchema
);
activityModel
.
selectOnceData
=
async
function
(
paramater
:
object
)
{
let
selectInfo
=
await
activityModel
.
findOne
(
paramater
).
exec
();
if
(
selectInfo
)
{
if
(
!
selectInfo
.
runSave
)
{
selectInfo
.
runSave
=
selectInfo
.
save
;
selectInfo
.
save
=
save
.
bind
(
selectInfo
)
}
}
return
selectInfo
;
}
}
export
async
function
save
(
throwError
=
false
)
{
if
(
!
this
.
isModified
())
return
;
await
this
.
runSave
({
validateBeforeSave
:
false
}).
catch
(
err
=>
{
console
.
log
(
err
);
});
}
/**
* 查询孵化器分数信息
* @param uscc 孵化器统一信用代码
* @returns
*/
export
async
function
findOne
(
param
)
{
return
await
activityModel
.
selectOnceData
(
param
);
}
/**通过条件查询孵化器得分信息 */
export
async
function
findByParam
(
param
)
{
return
await
activityModel
.
find
(
param
);
}
export
async
function
findCountByParam
(
param
)
{
return
await
activityModel
.
find
(
param
).
countDocuments
();
}
export
async
function
createDataByParam
(
param
)
{
return
await
activityModel
.
create
(
param
);
}
export
async
function
removeOneData
(
id
:
string
)
{
return
await
activityModel
.
deleteOne
({
id
});
}
\ No newline at end of file
src/routers/enterpriseMobileClient/activity.ts
0 → 100644
View file @
3313c217
/**
*企业活动
*/
import
*
as
asyncHandler
from
'express-async-handler'
;
import
{
checkEnterpriseToken
}
from
'../../middleware/user'
;
import
*
as
activityBiz
from
'../../biz/mobileEnterprise/activity'
;
import
{
eccReqParamater
}
from
'../../util/verificationParam'
;
export
function
setRouter
(
httpServer
)
{
httpServer
.
post
(
'/enterprise/activity/list'
,
checkEnterpriseToken
,
asyncHandler
(
activity_list
));
//活动列表
httpServer
.
post
(
'/enterprise/activity/info'
,
checkEnterpriseToken
,
asyncHandler
(
activity_info
));
//活动详情
}
async
function
activity_list
(
req
,
res
)
{
let
userInfo
=
await
activityBiz
.
activityList
();
res
.
success
(
userInfo
);
}
async
function
activity_info
(
req
,
res
)
{
let
reqConf
=
{
id
:
'String'
};
let
{
id
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
let
userInfo
=
await
activityBiz
.
activityInfo
(
id
);
res
.
success
(
userInfo
);
}
src/routers/mobileClient/visit.ts
View file @
3313c217
...
...
@@ -25,8 +25,8 @@ export function setRouter(httpServer) {
httpServer
.
post
(
'/fuhuaqi/visit/update/state'
,
checkFuHuaQiToken
,
asyncHandler
(
visit_update_state
));
httpServer
.
post
(
'/fuhuaqi/visit/track/add'
,
checkFuHuaQiToken
,
asyncHandler
(
visit_track_add
));
httpServer
.
post
(
'/fuhuaqi/visit/log/statis'
,
checkFuHuaQiToken
,
asyncHandler
(
visit_
track_
log_statis
));
// httpServer.post('/fuhuaqi/visit/log/list', checkFuHuaQiToken, asyncHandler(visit_track
_log_list));
httpServer
.
post
(
'/fuhuaqi/visit/log/statis'
,
checkFuHuaQiToken
,
asyncHandler
(
visit_log_statis
));
httpServer
.
post
(
'/fuhuaqi/visit/log/list'
,
checkFuHuaQiToken
,
asyncHandler
(
visit
_log_list
));
}
...
...
@@ -146,21 +146,21 @@ async function visit_track_add(req, res) {
async
function
visit_log_statis
(
req
,
res
)
{
let
reqConf
=
{};
let
{}
=
eccReqParamater
(
reqConf
,
req
.
body
);
let
reqConf
=
{
year
:
"Number"
};
let
{
year
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
let
userInfo
=
await
.(
);
let
userInfo
=
await
visitBiz
.
visitLogStatis
(
Uscc
,
year
);
res
.
success
(
userInfo
);
}
// async function visit_track
_log_list(req, res) {
// let reqConf = {
};
// let {
} = eccReqParamater(reqConf, req.body);
//
const Uscc = req.headers.uscc;
async
function
visit
_log_list
(
req
,
res
)
{
let
reqConf
=
{
year
:
"Number"
};
let
{
year
}
=
eccReqParamater
(
reqConf
,
req
.
body
);
const
Uscc
=
req
.
headers
.
uscc
;
// let userInfo = await .(
);
//
res.success(userInfo);
//
}
let
userInfo
=
await
visitBiz
.
visitLogList
(
Uscc
,
year
);
res
.
success
(
userInfo
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment