Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mall.oytour.com
Project
Project
Details
Activity
Releases
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
黄奎
mall.oytour.com
Commits
07506d3a
Commit
07506d3a
authored
Dec 06, 2024
by
吴春
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
45c8eeb3
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
292 additions
and
57 deletions
+292
-57
RB_Visit_Log.cs
Mall.Model/Entity/TradePavilion/RB_Visit_Log.cs
+3
-5
RB_Wechat_Statistics.cs
Mall.Model/Entity/TradePavilion/RB_Wechat_Statistics.cs
+6
-1
RB_Wechat_Statistics_Extend.cs
...Model/Extend/TradePavilion/RB_Wechat_Statistics_Extend.cs
+5
-0
WechatStatisticsModule.cs
Mall.Module.TradePavilion/WechatStatisticsModule.cs
+14
-1
RB_Brand_EnterpriseRepository.cs
...Repository/TradePavilion/RB_Brand_EnterpriseRepository.cs
+46
-0
RB_Building_CarrierRepository.cs
...Repository/TradePavilion/RB_Building_CarrierRepository.cs
+35
-0
RB_Visit_LogRepository.cs
Mall.Repository/TradePavilion/RB_Visit_LogRepository.cs
+33
-17
RB_Wechat_StatisticsRepository.cs
...epository/TradePavilion/RB_Wechat_StatisticsRepository.cs
+8
-3
TradeController.cs
Mall.WebApi/Controllers/TradePavilion/TradeController.cs
+73
-16
Mall.WebApi.csproj
Mall.WebApi/Mall.WebApi.csproj
+0
-4
CuiPingModule.cs
Mall.WindowsService/Module/CuiPingModule.cs
+68
-9
appsettings.json
Mall.WindowsService/appsettings.json
+1
-1
No files found.
Mall.Model/Entity/TradePavilion/RB_Visit_Log.cs
View file @
07506d3a
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
using
VT.FW.DB
;
namespace
Mall.Model.Entity.TradePavilion
{
/// <summary>
/// 【商载通】访问记录信息 访问载体数,访问楼宇数,访问品牌数,访问企业数
/// </summary>
[
Serializable
]
[
DB
(
ConnectionName
=
"DefaultConnection"
)]
public
class
RB_Visit_Log
{
/// <summary>
...
...
@@ -24,11 +27,6 @@ namespace Mall.Model.Entity.TradePavilion
/// </summary>
public
int
MallBaseId
{
get
;
set
;
}
/// <summary>
/// 创建人
/// </summary>
public
int
CreateBy
{
get
;
set
;
}
/// <summary>
/// 创建时间
/// </summary>
...
...
Mall.Model/Entity/TradePavilion/RB_Wechat_Statistics.cs
View file @
07506d3a
...
...
@@ -34,6 +34,8 @@ namespace Mall.Model.Entity.WeChatStatistics
/// </summary>
public
int
Status
{
get
;
set
;
}
#
region
系统统计信息
/// <summary>
/// 新载体数量
/// </summary>
...
...
@@ -98,10 +100,13 @@ namespace Mall.Model.Entity.WeChatStatistics
/// </summary>
public
int
EnterpriseVisitNum
{
get
;
set
;
}
#
endregion
/// <summary>
/// 日期
/// </summary>
public
string
Ref_Dat
e
{
get
;
set
;
}
public
DateTime
CreateTim
e
{
get
;
set
;
}
#
region
用户访问小程序日留存
/// <summary>
/// 新增用户留存
...
...
Mall.Model/Extend/TradePavilion/RB_Wechat_Statistics_Extend.cs
View file @
07506d3a
...
...
@@ -17,6 +17,11 @@ namespace Mall.Model.Extend.TradePavilion
/// 日期
/// </summary>
public
string
ref_date
{
get
;
set
;
}
/// <summary>
/// 结束日期
/// </summary>
public
string
endDate
{
get
;
set
;
}
/// <summary>
/// 新增用户留存
/// </summary>
...
...
Mall.Module.TradePavilion/WechatStatisticsModule.cs
View file @
07506d3a
using
Mall.Model.Extend.TradePavilion
;
using
Mall.Model.Entity.TradePavilion
;
using
Mall.Model.Extend.TradePavilion
;
using
Mall.Repository.TradePavilion
;
using
System
;
using
System.Collections.Generic
;
...
...
@@ -10,7 +11,19 @@ namespace Mall.Module.TradePavilion
{
private
readonly
RB_Wechat_StatisticsRepository
wechat_StatisticsRepository
=
new
RB_Wechat_StatisticsRepository
();
private
readonly
RB_Visit_LogRepository
visit_LogRepository
=
new
RB_Visit_LogRepository
();
/// <summary>
/// 获取访问记录信息
/// </summary>
/// <param name="query"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <returns></returns>
public
List
<
RB_Visit_Log
>
GetVisit_LogList
(
RB_Visit_Log
query
,
string
startTime
=
""
,
string
endTime
=
""
)
{
return
visit_LogRepository
.
GetList
(
query
,
startTime
,
endTime
);
}
/// <summary>
/// 获取列表
/// </summary>
...
...
Mall.Repository/TradePavilion/RB_Brand_EnterpriseRepository.cs
View file @
07506d3a
...
...
@@ -62,5 +62,51 @@ WHERE 1=1
builder
.
AppendFormat
(
" ORDER BY A.{0} DESC "
,
nameof
(
RB_Brand_Enterprise_Extend
.
ID
));
return
GetPage
<
RB_Brand_Enterprise_Extend
>(
pageIndex
,
pageSize
,
out
rowsCount
,
builder
.
ToString
(),
parameters
).
ToList
();
}
/// <summary>
/// 【商载通】品牌、企业服务仓储层统计专用
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public
List
<
RB_Brand_Enterprise_Extend
>
GetBrandEnterpriseBriefRepository
(
RB_Brand_Enterprise_Extend
query
)
{
DynamicParameters
parameters
=
new
DynamicParameters
();
StringBuilder
builder
=
new
StringBuilder
();
builder
.
AppendFormat
(
@" SELECT A.ID,A.CreateDate,A.BrandEnterpriseType FROM rb_brand_Enterprise AS A WHERE 1=1 and A.Status=0 "
);
if
(
query
!=
null
)
{
if
(
query
.
TenantId
>
0
)
{
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Brand_Enterprise_Extend
.
TenantId
),
query
.
TenantId
);
}
if
(
query
.
MallBaseId
>
0
)
{
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Brand_Enterprise_Extend
.
MallBaseId
),
query
.
MallBaseId
);
}
if
(
query
.
BrandEnterpriseType
>
0
)
{
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Brand_Enterprise_Extend
.
BrandEnterpriseType
),
query
.
BrandEnterpriseType
);
}
if
(
query
.
CategoryId
>
0
)
{
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Brand_Enterprise_Extend
.
CategoryId
),
query
.
CategoryId
);
}
if
(
query
.
UserId
>
0
)
{
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Brand_Enterprise_Extend
.
UserId
),
query
.
UserId
);
}
if
(!
string
.
IsNullOrEmpty
(
query
.
BrandName
))
{
builder
.
AppendFormat
(
" AND A.{0} LIKE @BrandName "
,
nameof
(
RB_Brand_Enterprise_Extend
.
BrandName
));
parameters
.
Add
(
"@BrandName"
,
"%"
+
query
.
BrandName
+
"%"
);
}
}
return
Get
<
RB_Brand_Enterprise_Extend
>(
builder
.
ToString
(),
parameters
).
ToList
();
}
}
}
Mall.Repository/TradePavilion/RB_Building_CarrierRepository.cs
View file @
07506d3a
...
...
@@ -136,5 +136,40 @@ WHERE 1=1
}
return
Get
<
RB_Building_Carrier_Extend
>(
builder
.
ToString
(),
parameters
).
ToList
();
}
/// <summary>
/// 【商载通】获取楼宇、载体列表统计专用
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public
List
<
RB_Building_Carrier_Extend
>
GetBuildingCarrierBriefListRepository
(
RB_Building_Carrier_Extend
query
)
{
DynamicParameters
parameters
=
new
DynamicParameters
();
StringBuilder
builder
=
new
StringBuilder
();
builder
.
AppendFormat
(
@" SELECT A.ID,A.CreateDate,A.BuildingCarrierType FROM RB_Building_Carrier AS A WHERE 1=1 "
);
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Building_Carrier_Extend
.
Status
),
(
int
)
DateStateEnum
.
Normal
);
if
(
query
!=
null
)
{
if
(
query
.
TenantId
>
0
)
{
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Building_Carrier_Extend
.
TenantId
),
query
.
TenantId
);
}
if
(
query
.
MallBaseId
>
0
)
{
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Building_Carrier_Extend
.
MallBaseId
),
query
.
MallBaseId
);
}
if
(!
string
.
IsNullOrEmpty
(
query
.
CarrierName
))
{
builder
.
AppendFormat
(
" AND A.{0} LIKE @CarrierName "
,
nameof
(
RB_Building_Carrier_Extend
.
CarrierName
));
parameters
.
Add
(
"@CarrierName"
,
"%"
+
query
.
CarrierName
.
Trim
()
+
"%"
);
}
if
(
query
.
CategoryId
>
0
)
{
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Building_Carrier_Extend
.
CategoryId
),
query
.
CategoryId
);
}
}
return
Get
<
RB_Building_Carrier_Extend
>(
builder
.
ToString
(),
parameters
).
ToList
();
}
}
}
Mall.Repository/TradePavilion/RB_Visit_LogRepository.cs
View file @
07506d3a
...
...
@@ -8,7 +8,7 @@ using System.Text;
namespace
Mall.Repository.TradePavilion
{
/// <summary>
///
///
访问记录仓储层
/// </summary>
public
class
RB_Visit_LogRepository
:
BaseRepository
<
RB_Visit_Log
>
{
...
...
@@ -25,36 +25,52 @@ namespace Mall.Repository.TradePavilion
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <returns></returns>
public
List
<
RB_Visit_Log
>
GetList
(
RB_Visit_Log
query
,
string
startTime
,
string
endTime
)
public
List
<
RB_Visit_Log
>
GetList
(
RB_Visit_Log
query
,
string
startTime
=
""
,
string
endTime
=
""
)
{
StringBuilder
builder
=
new
StringBuilder
();
builder
.
Append
(
$" SELECT * FROM
{
TableName
}
WHERE 1=1"
);
if
(
query
!=
null
)
{
if
(
query
.
TenantId
>
0
)
{
builder
.
Append
(
$" AND
{
nameof
(
RB_
Prize_Extend
.
TenantId
)}
=
{
query
.
TenantId
}
"
);
builder
.
Append
(
$" AND
{
nameof
(
RB_
Visit_Log
.
TenantId
)}
=
{
query
.
TenantId
}
"
);
}
if
(
query
.
MallBaseId
>
0
)
{
builder
.
Append
(
$" AND
{
nameof
(
RB_Prize_Extend
.
MallBaseId
)}
=
{
query
.
MallBaseId
}
"
);
builder
.
Append
(
$" AND
{
nameof
(
RB_Visit_Log
.
MallBaseId
)}
=
{
query
.
MallBaseId
}
"
);
}
if
(!
string
.
IsNullOrWhiteSpace
(
startTime
))
{
builder
.
Append
(
$" and DATE_FORMAT(
{
nameof
(
RB_Visit_Log
.
CreateDate
)}
,'%Y-%m-%d' )>=DATE_FORMAT('
{
startTime
}
','%Y-%m-%d' ) "
);
}
if
(!
string
.
IsNullOrWhiteSpace
(
endTime
))
{
builder
.
Append
(
$" and DATE_FORMAT(
{
nameof
(
RB_Visit_Log
.
CreateDate
)}
,'%Y-%m-%d' )<= DATE_FORMAT('
{
endTime
}
','%Y-%m-%d' ) "
);
}
//if (!string.IsNullOrWhiteSpace(startTime))
//{
// builder.Append($" AND {nameof(RB_Prize_Extend.CreateDate)}={query.Id}");
//}
//if (!string.IsNullOrWhiteSpace(endTime))
//{
// builder.Append($" AND {nameof(RB_Prize_Extend.CreateDate)}={query.Id}");
//}
}
builder
.
Append
(
$" order by Id desc"
);
return
Get
<
RB_Visit_Log
>(
builder
.
ToString
()).
ToList
();
}
/// <summary>
/// 新增访问记录
/// </summary>
/// <param name="TenantId"></param>
/// <param name="MallBaseId"></param>
/// <param name="ProductID">产品id</param>
/// <param name="ProductType">1-访问载体,2-访问楼宇,3-访问品牌,4-访问企业</param>
/// <returns></returns>
public
bool
AddVisit_Log
(
int
TenantId
,
int
MallBaseId
,
int
ProductID
,
int
ProductType
)
{
RB_Visit_Log
model
=
new
RB_Visit_Log
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
,
ProductID
=
ProductID
,
ProductType
=
ProductType
,
CreateDate
=
DateTime
.
Now
,
};
return
Insert
(
model
)
>
0
;
}
}
}
Mall.Repository/TradePavilion/RB_Wechat_StatisticsRepository.cs
View file @
07506d3a
using
Mall.Model.Entity.WeChatStatistics
;
using
Mall.Model.Entity.TradePavilion
;
using
Mall.Model.Entity.WeChatStatistics
;
using
Mall.Model.Extend.Miai
;
using
Mall.Model.Extend.TradePavilion
;
using
System
;
...
...
@@ -29,9 +30,13 @@ namespace Mall.Repository.TradePavilion
{
where
+=
$@" and
{
nameof
(
RB_Wechat_Statistics_Extend
.
MallBaseId
)}
=
{
dmodel
.
MallBaseId
}
"
;
}
if
(!
string
.
IsNullOrEmpty
(
dmodel
.
Ref_D
ate
))
if
(!
string
.
IsNullOrEmpty
(
dmodel
.
ref_d
ate
))
{
where
+=
$@" and
{
nameof
(
RB_Wechat_Statistics_Extend
.
Ref_Date
)}
='
{
dmodel
.
Ref_Date
}
'"
;
where
+=
$@" and DATE_FORMAT(
{
nameof
(
RB_Wechat_Statistics_Extend
.
CreateTime
)}
,'%Y-%m-%d' ) >= DATE_FORMAT('
{
dmodel
.
ref_date
}
','%Y-%m-%d' ) "
;
}
if
(!
string
.
IsNullOrEmpty
(
dmodel
.
endDate
))
{
where
+=
$@" and DATE_FORMAT(
{
nameof
(
RB_Wechat_Statistics_Extend
.
CreateTime
)}
,'%Y-%m-%d' ) <= DATE_FORMAT('
{
dmodel
.
endDate
}
','%Y-%m-%d' ) "
;
}
string
sql
=
$@"select * from RB_Wechat_Statistics where
{
where
}
"
;
return
Get
<
RB_Wechat_Statistics_Extend
>(
sql
).
ToList
();
...
...
Mall.WebApi/Controllers/TradePavilion/TradeController.cs
View file @
07506d3a
...
...
@@ -18,13 +18,14 @@ using Mall.Common.API;
using
Mall.Common.Enum
;
using
Mall.Common.Enum.TradePavilion
;
using
Mall.Common.Plugin
;
using
Mall.Model.Extend.TradePavilion
;
using
Mall.Module.TradePavilion
;
using
Mall.WebApi.Filter
;
using
Microsoft.AspNetCore.Authorization
;
using
Microsoft.AspNetCore.Cors
;
using
Microsoft.AspNetCore.Mvc
;
using
Microsoft.AspNetCore.Mvc.RazorPages
;
using
Microsoft.Extensions.Options
;
using
Newtonsoft.Json
;
using
Newtonsoft.Json.Linq
;
...
...
@@ -3668,7 +3669,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
return
ApiResult
.
Success
(
data
:
extModel
);
}
[
HttpPost
]
public
ApiResult
GetBrandEnterprisePage
()
{
...
...
@@ -3735,12 +3736,12 @@ namespace Mall.WebApi.Controllers.TradePavilion
BrandEnterpriseType
=
parms
.
GetInt
(
"BrandEnterpriseType"
),
Introduce
=
parms
.
GetStringValue
(
"Introduce"
),
DevIntention
=
parms
.
GetStringValue
(
"DevIntention"
),
PropertyDemand
=
parms
.
GetStringValue
(
"PropertyDemand"
),
PropertyDemand
=
parms
.
GetStringValue
(
"PropertyDemand"
),
Cooperation
=
parms
.
GetStringValue
(
"Cooperation"
),
Complementary
=
parms
.
GetStringValue
(
"Complementary"
),
};
List
<
string
>
BannerList
=
new
List
<
string
>();
string
bannerListStr
=
parms
.
GetStringValue
(
"BannerList"
);
string
bannerListStr
=
parms
.
GetStringValue
(
"BannerList"
);
if
(!
string
.
IsNullOrEmpty
(
bannerListStr
))
{
try
...
...
@@ -3748,8 +3749,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
BannerList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
string
>>(
bannerListStr
);
}
catch
{
{
}
}
model
.
Banner
=
Common
.
Plugin
.
JsonHelper
.
Serialize
(
BannerList
);
...
...
@@ -3791,8 +3792,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
BannerList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
string
>>(
Banner
);
}
catch
{
{
}
}
var
dataObj
=
new
...
...
@@ -3833,7 +3834,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
bool
flag
=
buildingCarrierModule
.
RemoveBrandEnterpriseModule
(
Id
);
return
flag
?
ApiResult
.
Success
()
:
ApiResult
.
Failed
();
}
/// <summary>
/// 获取微信统计信息
/// </summary>
...
...
@@ -3841,20 +3842,76 @@ namespace Mall.WebApi.Controllers.TradePavilion
public
ApiResult
WechatStatistics
()
{
JObject
parms
=
JObject
.
Parse
(
RequestParm
.
msg
.
ToString
());
string
DateStr
=
parms
.
GetStringValue
(
"StartDate"
);
if
(
string
.
IsNullOrWhiteSpace
(
DateStr
))
string
StartDateStr
=
parms
.
GetStringValue
(
"StartDate"
);
string
endDateStr
=
parms
.
GetStringValue
(
"EndDate"
);
if
(
string
.
IsNullOrWhiteSpace
(
StartDateStr
))
{
DateStr
=
DateTime
.
Now
.
AddDays
(-
1
).
ToString
(
"yyyy-MM-dd"
);
Start
DateStr
=
DateTime
.
Now
.
AddDays
(-
1
).
ToString
(
"yyyy-MM-dd"
);
}
RB_Wechat_Statistics_Extend
extModel
=
new
RB_Wechat_Statistics_Extend
()
{
ID
=
parms
.
GetInt
(
"ID"
)
,
Ref_Date
=
Convert
.
ToDateTime
(
DateStr
).
ToString
(
"yyyyMMdd"
)
,
ref_date
=
StartDateStr
,
endDate
=
endDateStr
,
TenantId
=
RequestParm
.
TenantId
,
MallBaseId
=
RequestParm
.
MallBaseId
,
};
var
model
=
wechatStatisticsModule
.
GetList
(
extModel
)?.
FirstOrDefault
()
??
new
RB_Wechat_Statistics_Extend
();
return
ApiResult
.
Success
(
""
,
model
);
var
list
=
wechatStatisticsModule
.
GetList
(
extModel
);
var
result
=
new
{
List
=
list
.
Select
(
x
=>
new
{
x
.
CarrierNum
,
x
.
BuildingCarrierNum
,
x
.
BrandNum
,
x
.
EnterpriseNum
,
x
.
CarrierTotalNum
,
x
.
BuildingCarrierTotalNum
,
x
.
BrandTotalNum
,
x
.
EnterpriseTotalNum
,
x
.
CarrierVisitNum
,
x
.
BuildingCarrierVisitNum
,
x
.
BrandVisitNum
,
x
.
EnterpriseVisitNum
,
x
.
NewVisitUV
,
x
.
VisitUV
,
x
.
Visit_Total
,
x
.
Share_PV
,
x
.
Share_UV
,
x
.
Session_CNT
,
x
.
Visit_PV
,
x
.
Visit_UV
,
x
.
Visit_UV_New
,
x
.
Stay_Time_UV
,
x
.
Stay_Time_Session
,
x
.
Visit_Depth
,
CreateTimeStr
=
x
.
CreateTime
.
ToString
(
"yyyy-MM-dd"
),
}),
CarrierNum
=
list
?.
Sum
(
x
=>
x
.
CarrierNum
)
??
0
,
BuildingCarrierNum
=
list
?.
Sum
(
x
=>
x
.
BuildingCarrierNum
)
??
0
,
BrandNum
=
list
?.
Sum
(
x
=>
x
.
BrandNum
)
??
0
,
EnterpriseNum
=
list
?.
Sum
(
x
=>
x
.
EnterpriseNum
)
??
0
,
CarrierTotalNum
=
list
?.
Sum
(
x
=>
x
.
CarrierTotalNum
)
??
0
,
BuildingCarrierTotalNum
=
list
?.
Sum
(
x
=>
x
.
BuildingCarrierTotalNum
)
??
0
,
BrandTotalNum
=
list
?.
Sum
(
x
=>
x
.
BrandTotalNum
)
??
0
,
EnterpriseTotalNum
=
list
?.
Sum
(
x
=>
x
.
EnterpriseTotalNum
)
??
0
,
CarrierVisitNum
=
list
?.
Sum
(
x
=>
x
.
CarrierVisitNum
)
??
0
,
BuildingCarrierVisitNum
=
list
?.
Sum
(
x
=>
x
.
BuildingCarrierVisitNum
)
??
0
,
BrandVisitNum
=
list
?.
Sum
(
x
=>
x
.
BrandVisitNum
)
??
0
,
EnterpriseVisitNum
=
list
?.
Sum
(
x
=>
x
.
EnterpriseVisitNum
)
??
0
,
NewVisitUV
=
list
?.
Sum
(
x
=>
x
.
NewVisitUV
)
??
0
,
VisitUV
=
list
?.
Sum
(
x
=>
x
.
VisitUV
)
??
0
,
Visit_Total
=
list
?.
Sum
(
x
=>
x
.
Visit_Total
)
??
0
,
Share_PV
=
list
?.
Sum
(
x
=>
x
.
Share_PV
)
??
0
,
Share_UV
=
list
?.
Sum
(
x
=>
x
.
Share_UV
)
??
0
,
Session_CNT
=
list
?.
Sum
(
x
=>
x
.
Session_CNT
)
??
0
,
Visit_PV
=
list
?.
Sum
(
x
=>
x
.
Visit_PV
)
??
0
,
Visit_UV
=
list
?.
Sum
(
x
=>
x
.
Visit_UV
)
??
0
,
Visit_UV_New
=
list
?.
Sum
(
x
=>
x
.
Visit_UV_New
)
??
0
,
Stay_Time_UV
=
list
?.
Sum
(
x
=>
x
.
Stay_Time_UV
)
??
0
,
Stay_Time_Session
=
list
?.
Sum
(
x
=>
x
.
Stay_Time_Session
)
??
0
,
Visit_Depth
=
list
?.
Sum
(
x
=>
x
.
Visit_Depth
)
??
0
,
};
return
ApiResult
.
Success
(
data
:
result
);
}
}
}
\ No newline at end of file
Mall.WebApi/Mall.WebApi.csproj
View file @
07506d3a
...
...
@@ -48,10 +48,6 @@
<ProjectReference Include="..\Mall.ThirdCore\Mall.ThirdCore.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Controllers\WeChatStatistics\" />
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="https://json-schema.org/draft/2019-09/schema" /></VisualStudio></ProjectExtensions>
...
...
Mall.WindowsService/Module/CuiPingModule.cs
View file @
07506d3a
...
...
@@ -2,6 +2,7 @@
using
Mall.CacheManager.DataStatistic
;
using
Mall.Common
;
using
Mall.Common.Plugin
;
using
Mall.Model.Entity.TradePavilion
;
using
Mall.Model.Entity.WeChatStatistics
;
using
Mall.Model.Extend.TradePavilion
;
using
Mall.Repository.BaseSetUp
;
...
...
@@ -37,6 +38,19 @@ namespace Mall.WindowsService.Module
/// </summary>
private
static
RB_MiniProgramRepository
miniProgramRepository
=
new
RB_MiniProgramRepository
();
/// <summary>
/// 访问记录仓储层
/// </summary>
private
static
RB_Visit_LogRepository
_VisitLogRepository
=
new
RB_Visit_LogRepository
();
/// <summary>
/// 【商载通】 品牌、企业服务仓储层
/// </summary>
private
static
RB_Brand_EnterpriseRepository
brand_EnterpriseRepository
=
new
RB_Brand_EnterpriseRepository
();
/// <summary>
/// 【商载通】【商载通】楼宇、载体服务仓储层
/// </summary>
private
static
RB_Building_CarrierRepository
building_CarrierRepository
=
new
RB_Building_CarrierRepository
();
/// <summary>
/// 同步小程序统计信息
/// </summary>
...
...
@@ -57,20 +71,25 @@ namespace Mall.WindowsService.Module
var
miniProgramModel
=
miniProgramRepository
.
GetEntity
(
Convert
.
ToInt32
(
item
));
if
((
miniProgramModel
?.
MallBaseId
??
0
)
>
0
)
{
DateTime
dateTime
=
DateTime
.
Now
.
AddDays
(-
1
);
RB_Wechat_Statistics
model
=
new
RB_Wechat_Statistics
();
model
.
TenantId
=
miniProgramModel
.
TenantId
??
0
;
model
.
MallBaseId
=
miniProgramModel
.
MallBaseId
;
model
.
Status
=
0
;
model
.
Ref_Date
=
DateTime
.
Now
.
AddDays
(-
1
).
ToString
(
"yyyyMMdd"
);
var
oldList
=
wechatStatisticsRepository
.
GetList
(
new
RB_Wechat_Statistics_Extend
{
TenantId
=
model
.
TenantId
,
MallBaseId
=
model
.
MallBaseId
,
Ref_Date
=
model
.
Ref_Date
,
Status
=
0
});
//判断是否已添加信息
model
.
CreateTime
=
dateTime
;
string
refDate
=
model
.
CreateTime
.
ToString
(
"yyyyMMdd"
);
string
selectDateStr
=
dateTime
.
ToString
(
"yyyy-MM-dd"
);
var
oldList
=
wechatStatisticsRepository
.
GetList
(
new
RB_Wechat_Statistics_Extend
{
TenantId
=
model
.
TenantId
,
MallBaseId
=
model
.
MallBaseId
,
ref_date
=
selectDateStr
,
Status
=
0
});
//判断是否已添加信息
if
(
oldList
?.
Count
()
>
0
)
//已同步则不继续
{
return
false
;
}
#
region
微信小程序同步
var
postdata
=
new
{
begin_date
=
model
.
Ref_
Date
,
end_date
=
model
.
Ref_
Date
,
begin_date
=
ref
Date
,
end_date
=
ref
Date
,
};
string
token
=
WeiXinReidsCache
.
Get
(
miniProgramModel
.
MiniAppId
);
if
(
string
.
IsNullOrEmpty
(
token
))
...
...
@@ -90,7 +109,7 @@ namespace Mall.WindowsService.Module
#
region
获取用户访问小程序日留存
https
:
//developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/visit-retain/getDailyRetain.html
try
{
wenXinResult
=
HttpHelper
.
HttpPost
(
Url
,
JsonHelper
.
Serialize
(
postdata
),
""
);
JObject
jo
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
wenXinResult
);
LogHelper
.
WriteInfo
(
wenXinResult
);
...
...
@@ -114,7 +133,7 @@ namespace Mall.WindowsService.Module
#
region
获取用户访问小程序数据日趋势
https
:
//developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/visit-trend/getDailyVisitTrend.html
try
{
Url
=
"https://api.weixin.qq.com/datacube/getweanalysisappiddailyvisittrend?access_token="
+
token
;
wenXinResult
=
HttpHelper
.
HttpPost
(
Url
,
JsonHelper
.
Serialize
(
postdata
),
""
);
JObject
jo
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
wenXinResult
);
...
...
@@ -143,7 +162,7 @@ namespace Mall.WindowsService.Module
#
region
获取用户访问小程序数据概况
https
:
//developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/data-analysis/others/getDailySummary.html
try
{
Url
=
"https://api.weixin.qq.com/datacube/getweanalysisappiddailysummarytrend?access_token="
+
token
;
wenXinResult
=
HttpHelper
.
HttpPost
(
Url
,
JsonHelper
.
Serialize
(
postdata
),
""
);
JObject
jo
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
wenXinResult
);
...
...
@@ -158,7 +177,7 @@ namespace Mall.WindowsService.Module
model
.
Share_PV
=
dailyVisitTrendItem
.
share_pv
;
model
.
Share_UV
=
dailyVisitTrendItem
.
share_uv
;
}
}
catch
(
Exception
ex
)
{
...
...
@@ -167,8 +186,48 @@ namespace Mall.WindowsService.Module
#
endregion
LogHelper
.
WriteInfo
(
JsonConvert
.
SerializeObject
(
model
));
flag
=
wechatStatisticsRepository
.
Insert
(
model
)
>
0
;
}
#
endregion
#
region
系统数据统计
#
region
访问统计
var
visitLogoList
=
_VisitLogRepository
.
GetList
(
new
Model
.
Entity
.
TradePavilion
.
RB_Visit_Log
{
MallBaseId
=
miniProgramModel
.
MallBaseId
,
TenantId
=
miniProgramModel
.
TenantId
??
0
},
startTime
:
selectDateStr
,
endTime
:
selectDateStr
);
if
(
visitLogoList
!=
null
&&
visitLogoList
.
Any
())
{
model
.
CarrierVisitNum
=
visitLogoList
?.
Where
(
x
=>
x
.
ProductType
==
1
)?.
Count
()
??
0
;
model
.
BuildingCarrierVisitNum
=
visitLogoList
?.
Where
(
x
=>
x
.
ProductType
==
2
)?.
Count
()
??
0
;
model
.
BrandVisitNum
=
visitLogoList
?.
Where
(
x
=>
x
.
ProductType
==
3
)?.
Count
()
??
0
;
model
.
EnterpriseVisitNum
=
visitLogoList
?.
Where
(
x
=>
x
.
ProductType
==
4
)?.
Count
()
??
0
;
}
#
endregion
#
region
新增
/
总数统计
//品牌 Or 企业
var
brandEnterpriseList
=
brand_EnterpriseRepository
.
GetBrandEnterpriseBriefRepository
(
new
RB_Brand_Enterprise_Extend
{
MallBaseId
=
miniProgramModel
.
MallBaseId
,
TenantId
=
miniProgramModel
.
TenantId
??
0
});
if
(
brandEnterpriseList
!=
null
&&
brandEnterpriseList
.
Any
())
{
model
.
BrandNum
=
brandEnterpriseList
?.
Where
(
x
=>
x
.
CreateDate
.
ToString
(
"yyyy-MM-dd"
)
==
dateTime
.
ToString
(
"yyyy-MM-dd"
)
&&
x
.
BrandEnterpriseType
==
1
)?.
Count
()
??
0
;
model
.
BrandTotalNum
=
brandEnterpriseList
?.
Where
(
x
=>
x
.
BrandEnterpriseType
==
1
)?.
Count
()
??
0
;
model
.
EnterpriseNum
=
brandEnterpriseList
?.
Where
(
x
=>
x
.
CreateDate
.
ToString
(
"yyyy-MM-dd"
)
==
dateTime
.
ToString
(
"yyyy-MM-dd"
)
&&
x
.
BrandEnterpriseType
==
2
)?.
Count
()
??
0
;
model
.
EnterpriseTotalNum
=
brandEnterpriseList
?.
Where
(
x
=>
x
.
BrandEnterpriseType
==
2
)?.
Count
()
??
0
;
}
//楼宇 Or 载体信息
var
buildingCarrierList
=
building_CarrierRepository
.
GetBuildingCarrierBriefListRepository
(
new
RB_Building_Carrier_Extend
{
MallBaseId
=
miniProgramModel
.
MallBaseId
,
TenantId
=
miniProgramModel
.
TenantId
??
0
});
if
(
buildingCarrierList
!=
null
&&
buildingCarrierList
.
Any
())
{
model
.
CarrierNum
=
buildingCarrierList
?.
Where
(
x
=>
x
.
CreateDate
.
ToString
(
"yyyy-MM-dd"
)
==
dateTime
.
ToString
(
"yyyy-MM-dd"
)
&&
x
.
BuildingCarrierType
==
1
)?.
Count
()
??
0
;
model
.
CarrierTotalNum
=
buildingCarrierList
?.
Where
(
x
=>
x
.
BuildingCarrierType
==
1
)?.
Count
()
??
0
;
model
.
BuildingCarrierNum
=
buildingCarrierList
?.
Where
(
x
=>
x
.
CreateDate
.
ToString
(
"yyyy-MM-dd"
)
==
dateTime
.
ToString
(
"yyyy-MM-dd"
)
&&
x
.
BuildingCarrierType
==
2
)?.
Count
()
??
0
;
model
.
BuildingCarrierTotalNum
=
buildingCarrierList
?.
Where
(
x
=>
x
.
BuildingCarrierType
==
2
)?.
Count
()
??
0
;
}
#
endregion
#
endregion
flag
=
wechatStatisticsRepository
.
Insert
(
model
)
>
0
;
}
}
catch
(
Exception
ex
)
...
...
Mall.WindowsService/appsettings.json
View file @
07506d3a
...
...
@@ -42,7 +42,7 @@
"IncomeFinanceApi"
:
"http://192.168.5.16:8083/api/Mall/InsertFinanceBatchForMallIn"
,
"PaymentFinanceApi"
:
"http://192.168.5.16:8083/api/Mall/InsertFinanceBatchForMallOut"
,
"EduUpdateGoodsSpecification"
:
"http://192.168.5.17:8017/api/Order/UpdateGoodsSpecification"
,
"WechatStatisticsMallBaseId"
:
"
1
"
,
//
20
"WechatStatisticsMallBaseId"
:
"
20
"
,
//
20
"PayCertificateUrl"
:
"D:/project/GitProject/Shopping/Mall.WebApi/"
,
"SettlementRate"
:
"0.60"
,
//
"FinanceKey"
:
"FinanceMallInsertToERPViitto2020"
,
...
...
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