Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
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
haoban3.0
haoban-manage3.0
Commits
4800f066
Commit
4800f066
authored
Aug 20, 2024
by
guojx
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-2024-07-cloud' into 'master'
Feature 2024 07 cloud See merge request
!2111
parents
2fc03500
b39a9309
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
656 additions
and
11 deletions
+656
-11
WechatWorkOverviewController.java
...b/controller/wechatwork/WechatWorkOverviewController.java
+218
-0
WechatWorkOverviewStoreGroupHandle.java
...manage/web/handle/WechatWorkOverviewStoreGroupHandle.java
+75
-0
StoreGroupCommonQO.java
...c/haoban/manage/web/qo/wechatwork/StoreGroupCommonQO.java
+10
-0
WechatWorkOverviewQO.java
...haoban/manage/web/qo/wechatwork/WechatWorkOverviewQO.java
+16
-0
WechatWorkOverviewStoreGroupQO.java
...age/web/qo/wechatwork/WechatWorkOverviewStoreGroupQO.java
+60
-0
WechatWorkOverviewTrendQO.java
...n/manage/web/qo/wechatwork/WechatWorkOverviewTrendQO.java
+28
-0
DataApiQO.java
.../java/com/gic/haoban/manage/web/utils/data/DataApiQO.java
+57
-0
StoreAuthUtils.java
.../com/gic/haoban/manage/web/utils/data/StoreAuthUtils.java
+55
-11
WechatWorkOverviewStoreGroupVO.java
...age/web/vo/wechatwork/WechatWorkOverviewStoreGroupVO.java
+43
-0
WechatWorkOverviewTrendVO.java
...n/manage/web/vo/wechatwork/WechatWorkOverviewTrendVO.java
+30
-0
WechatWorkOverviewVO.java
...haoban/manage/web/vo/wechatwork/WechatWorkOverviewVO.java
+64
-0
No files found.
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/wechatwork/WechatWorkOverviewController.java
0 → 100644
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
wechatwork
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.JSONResponse
;
import
com.gic.clerk.api.dto.AuthorizedUser
;
import
com.gic.commons.util.DateUtil
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.haoban.manage.web.handle.WechatWorkOverviewStoreGroupHandle
;
import
com.gic.haoban.manage.web.qo.wechatwork.StoreGroupCommonQO
;
import
com.gic.haoban.manage.web.qo.wechatwork.WechatWorkOverviewQO
;
import
com.gic.haoban.manage.web.qo.wechatwork.WechatWorkOverviewStoreGroupQO
;
import
com.gic.haoban.manage.web.qo.wechatwork.WechatWorkOverviewTrendQO
;
import
com.gic.haoban.manage.web.utils.AuthorizedUserUtils
;
import
com.gic.haoban.manage.web.utils.data.DataApiQO
;
import
com.gic.haoban.manage.web.utils.data.StoreAuthUtils
;
import
com.gic.haoban.manage.web.vo.wechatwork.DataPageVO
;
import
com.gic.haoban.manage.web.vo.wechatwork.WechatWorkOverviewStoreGroupVO
;
import
com.gic.haoban.manage.web.vo.wechatwork.WechatWorkOverviewTrendVO
;
import
com.gic.haoban.manage.web.vo.wechatwork.WechatWorkOverviewVO
;
import
com.gic.qcloud.BucketNameEnum
;
import
com.gic.web.common.controller.NewBaseController
;
import
com.gic.web.common.download.DownloadTask
;
import
com.gic.web.common.download.DownloadTaskUtil
;
import
com.gic.web.common.download.constants.TaskTypeEnum
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.text.ParseException
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* 企微概览
* @Author guojx
* @Date 2024/7/23 10:45
*/
@RestController
@Slf4j
@RequestMapping
(
"wechat-work-overview"
)
public
class
WechatWorkOverviewController
extends
NewBaseController
{
@Autowired
private
StoreAuthUtils
storeAuthUtils
;
@Autowired
private
WechatWorkOverviewStoreGroupHandle
wechatWorkOverviewStoreGroupHandle
;
/**
* 概览
* @param qo
* @return
*/
@RequestMapping
(
value
=
"overview"
)
public
RestResponse
<
WechatWorkOverviewVO
>
overview
(
@RequestBody
WechatWorkOverviewQO
qo
)
{
List
<
WechatWorkOverviewVO
>
voList
=
storeAuthUtils
.
getOverview
(
"data_mbr_scale_haoban_background_overview"
,
new
JSONObject
(),
new
StoreGroupCommonQO
().
setStoreGroupId
(
qo
.
getStoreGroupId
()),
WechatWorkOverviewVO
.
class
);
return
RestResponse
.
successResult
(
CollectionUtils
.
isEmpty
(
voList
)
?
null
:
voList
.
get
(
0
));
}
/**
* 趋势图
* @param qo
* @return
* @throws ParseException
*/
@RequestMapping
(
value
=
"trend"
)
public
RestResponse
<
List
<
WechatWorkOverviewTrendVO
>>
trend
(
@RequestBody
WechatWorkOverviewTrendQO
qo
)
throws
ParseException
{
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
qo
);
//1:总数 2:日期趋势
jsonObject
.
put
(
"groupType"
,
2
);
List
<
WechatWorkOverviewTrendVO
>
list
=
storeAuthUtils
.
getOverview
(
"data_mbr_scale_haoban_background_overview_date"
,
jsonObject
,
new
StoreGroupCommonQO
().
setStoreGroupId
(
qo
.
getStoreGroupId
()),
WechatWorkOverviewTrendVO
.
class
);
Map
<
String
,
WechatWorkOverviewTrendVO
>
map
=
new
HashMap
<>();
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
map
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
e
->
e
.
getBizDate
(),
e
->
e
));
}
List
<
WechatWorkOverviewTrendVO
>
voList
=
new
ArrayList
<>();
List
<
String
>
dateList
=
DateUtil
.
getBetweenDates
(
qo
.
getStartDate
(),
qo
.
getEndDate
());
for
(
String
date
:
dateList
)
{
WechatWorkOverviewTrendVO
vo
=
map
.
get
(
date
);
if
(
vo
==
null
)
{
vo
=
new
WechatWorkOverviewTrendVO
();
vo
.
setBizDate
(
date
);
}
voList
.
add
(
vo
);
}
return
RestResponse
.
successResult
(
voList
);
}
/**
* 新增概览数据
* @param qo
* @return
*/
@RequestMapping
(
value
=
"new-overview"
)
public
RestResponse
<
WechatWorkOverviewTrendVO
>
newOverview
(
@RequestBody
WechatWorkOverviewTrendQO
qo
)
{
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
qo
);
//1:总数 2:日期趋势
jsonObject
.
put
(
"groupType"
,
1
);
List
<
WechatWorkOverviewTrendVO
>
voList
=
storeAuthUtils
.
getOverview
(
"data_mbr_scale_haoban_background_overview_date"
,
jsonObject
,
new
StoreGroupCommonQO
().
setStoreGroupId
(
qo
.
getStoreGroupId
()),
WechatWorkOverviewTrendVO
.
class
);
return
RestResponse
.
successResult
(
CollectionUtils
.
isEmpty
(
voList
)
?
null
:
voList
.
get
(
0
));
}
/**
* 门店分组
* @param qo
* @return
*/
@RequestMapping
(
value
=
"store-group"
)
public
RestResponse
<
DataPageVO
<
WechatWorkOverviewStoreGroupVO
>>
storeGroup
(
@RequestBody
WechatWorkOverviewStoreGroupQO
qo
)
{
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
qo
);
return
RestResponse
.
successResult
(
storeAuthUtils
.
getData
(
new
DataApiQO
()
.
setPageSize
(
qo
.
getPageSize
())
.
setCurrentPage
(
qo
.
getPageNum
())
.
setNoTotal
(
false
)
.
setHasCountPerPage
(
true
)
.
setClazz
(
WechatWorkOverviewStoreGroupVO
.
class
)
.
setJsonObject
(
jsonObject
)
.
setStoreGroupCommonQO
(
qo
)
.
setApolloKey
(
qo
.
getQueryDataType
()
==
1
?
"data_mbr_scale_haoban_background_count"
:
"data_mbr_scale_haoban_background_count_new"
)
));
}
/**
* 门店分组导出
* @param qo
* @return
*/
@RequestMapping
(
value
=
"export-store-group"
)
public
RestResponse
exportStoreGroup
(
@RequestBody
WechatWorkOverviewStoreGroupQO
qo
)
{
DownloadTask
task
=
new
DownloadTask
();
task
.
setTaskTypeEnum
(
TaskTypeEnum
.
NO_NEW_EXCEPTION_STORE
);
task
.
setDataType
(
qo
.
getDataType
());
task
.
setUser
(
getUserInfo
());
task
.
setTotalCount
(
storeGroup
(
qo
).
getResult
().
getTotalNum
());
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
qo
);
storeAuthUtils
.
setStoreGroupJsonParam
(
jsonObject
,
qo
);
boolean
isTotalQuery
=
qo
.
getQueryDataType
()
==
1
;
jsonObject
.
put
(
"apolloKey"
,
isTotalQuery
?
"data_mbr_scale_haoban_background_count"
:
"data_mbr_scale_haoban_background_count_new"
);
//Excel的标题是字段进行计算
List
<
String
>
indexList
=
new
ArrayList
<>();
List
<
String
>
fieldList
=
new
ArrayList
<>();
Integer
storeGroup
=
jsonObject
.
getInteger
(
"storeGroup"
);
boolean
isStore
=
storeGroup
!=
null
&&
storeGroup
==
7
;
if
(
isStore
)
{
indexList
.
add
(
"门店名称"
);
fieldList
.
add
(
"storeName"
);
indexList
.
add
(
"门店code"
);
fieldList
.
add
(
"storeCode"
);
}
else
{
indexList
.
add
(
"分组名称"
);
fieldList
.
add
(
"storeGroupName"
);
}
indexList
.
add
(
"上级分组"
);
fieldList
.
add
(
"parentStoreGroupName"
);
if
(
isTotalQuery
)
{
indexList
.
add
(
"企微好友总数"
);
fieldList
.
add
(
"entwchFdNumTotal"
);
indexList
.
add
(
"已注册会员好友数"
);
fieldList
.
add
(
"entwchFdNumMbr"
);
indexList
.
add
(
"未注册会员好友数"
);
fieldList
.
add
(
"entwchFdNumNonmbr"
);
}
else
{
indexList
.
add
(
"新增企微好友数"
);
fieldList
.
add
(
"newEntwchFdNumTotal"
);
indexList
.
add
(
"新增已注册会员好友数"
);
fieldList
.
add
(
"newEntwchFdNumMbr"
);
indexList
.
add
(
"新增未注册会员好友数"
);
fieldList
.
add
(
"newEntwchFdNumNonmbr"
);
}
if
(
isTotalQuery
)
{
task
.
setFileName
(
"企微概览-门店维度总数数据"
);
}
else
{
task
.
setFileName
(
"企微概览-门店维度新增数据-"
+
qo
.
getStartDate
()
+
"_"
+
qo
.
getEndDate
());
}
task
.
setChannelName
(
"数据-企微数据-企微概览"
);
task
.
setBucketName
(
BucketNameEnum
.
REPORT_50000
.
getName
());
jsonObject
.
put
(
"indexList"
,
indexList
);
jsonObject
.
put
(
"fieldList"
,
fieldList
);
task
.
setSearchDataParams
(
jsonObject
.
toJSONString
());
task
.
setHandler
(
wechatWorkOverviewStoreGroupHandle
);
JSONResponse
downloadTask
=
DownloadTaskUtil
.
createDownloadTask
(
task
);
return
RestResponse
.
successResult
(
downloadTask
.
getResult
());
}
private
AuthorizedUser
getUserInfo
()
{
return
AuthorizedUserUtils
.
getUserInfo
();
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/handle/WechatWorkOverviewStoreGroupHandle.java
0 → 100644
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
handle
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.enterprise.api.dto.security.DownloadReportDTO
;
import
com.gic.haoban.manage.web.utils.data.DataApiQO
;
import
com.gic.haoban.manage.web.utils.data.StoreAuthUtils
;
import
com.gic.haoban.manage.web.vo.wechatwork.WechatWorkOverviewStoreGroupVO
;
import
com.gic.web.common.download.DownloadHandlerAbstract
;
import
com.gic.web.common.download.context.Context
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.Collections
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
/**
* 数据-企微数据-流失好友
*/
@Component
public
class
WechatWorkOverviewStoreGroupHandle
extends
DownloadHandlerAbstract
<
WechatWorkOverviewStoreGroupVO
>
{
private
static
final
Logger
LOGGER
=
LogManager
.
getLogger
(
WechatWorkOverviewStoreGroupHandle
.
class
);
@Autowired
private
StoreAuthUtils
storeAuthUtils
;
@Override
public
List
<
WechatWorkOverviewStoreGroupVO
>
getData
(
Context
context
,
String
searchDataParams
,
Integer
currentPage
)
{
return
storeAuthUtils
.
getData
(
new
DataApiQO
()
.
setClazz
(
WechatWorkOverviewStoreGroupVO
.
class
)
.
setPageSize
(
getPageSize
())
.
setCurrentPage
(
currentPage
)
.
setLogStr
(
"数据-企微数据-企微概览导出日志进来"
)
.
setSearchDataParams
(
searchDataParams
)
.
setNoTotal
(
false
)
.
setHasCountPerPage
(
false
)
).
getRows
();
}
@Override
public
List
<
String
>
getColumnNames
()
{
return
Collections
.
EMPTY_LIST
;
}
@Override
public
List
<
String
>
getColumnNames
(
Context
context
){
DownloadReportDTO
downloadReportDTO
=
context
.
getDownloadReportDTO
();
String
searchDataParams
=
downloadReportDTO
.
getSearchDataParams
();
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
searchDataParams
);
List
<
String
>
list
=
(
List
<
String
>)
jsonObject
.
get
(
"indexList"
);
return
list
;
}
@Override
public
LinkedHashMap
<
String
,
List
<
String
>>
doubleColumnNames
()
{
return
null
;
}
@Override
public
List
<
String
>
getColumns
()
{
return
Collections
.
EMPTY_LIST
;
}
@Override
public
List
<
String
>
getColumns
(
Context
context
)
{
DownloadReportDTO
downloadReportDTO
=
context
.
getDownloadReportDTO
();
String
searchDataParams
=
downloadReportDTO
.
getSearchDataParams
();
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
searchDataParams
);
List
<
String
>
list
=
(
List
<
String
>)
jsonObject
.
get
(
"fieldList"
);
return
list
;
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/qo/wechatwork/StoreGroupCommonQO.java
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
wechatwork
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
...
...
@@ -12,40 +14,48 @@ import java.util.List;
*/
@Data
@Accessors
(
chain
=
true
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
StoreGroupCommonQO
implements
Serializable
{
/**
* 门店code/名称
*/
@JSONField
(
serialize
=
false
)
private
String
storeSearchParam
;
/**
* 可以多选,英文逗号隔开。优先级高于storeId
*/
@JSONField
(
serialize
=
false
)
private
String
storeGroupId
;
/**
* 可以多选,英文逗号隔开
*/
@JSONField
(
serialize
=
false
)
private
String
storeId
;
/**
* 分组下钻的时候,当前点击的分组id参数.如果是无归属,则值是-1
* @return
*/
@JSONField
(
serialize
=
false
)
private
String
nextStoreGroupId
;
/**
* 因为存在nextStoreGroupId = -1的无归属分组。当下钻无归属,值为无归属上一层级的分组id。如果为空,说明上一层级是所有哦门店,否则必有值
*/
@JSONField
(
serialize
=
false
)
private
String
preStoreGroupId
;
/**
* 分组维度查询,勾选展示门店 1:是
*/
@JSONField
(
serialize
=
false
)
private
Integer
showStore
;
/**
* 门店状态
*/
@JSONField
(
serialize
=
false
)
private
List
<
String
>
statusList
;
public
boolean
isRecycle
()
{
...
...
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/qo/wechatwork/WechatWorkOverviewQO.java
0 → 100644
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
wechatwork
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Author guojx
* @Date 2024/7/23 10:29
*/
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
WechatWorkOverviewQO
implements
Serializable
{
private
String
storeGroupId
;
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/qo/wechatwork/WechatWorkOverviewStoreGroupQO.java
0 → 100644
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
wechatwork
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Author guojx
* @Date 2024/5/22 9:27
*/
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
WechatWorkOverviewStoreGroupQO
extends
StoreGroupCommonQO
implements
Serializable
{
/**
* 1:总数 2:新增
*/
@JSONField
(
serialize
=
false
)
private
Integer
queryDataType
;
/**
* 新增类型需要传,开始日期
*/
private
String
startDate
;
/**
* 新增类型需要传:结束日期
*/
private
String
endDate
;
/**
* 排序类型 1 正序 2 倒序
*/
private
Integer
orderByType
;
/**
* 排序字段名称 1:企微好友 2:已注册会员好友 3:未注册会员好友
*/
private
String
orderByFields
;
private
Integer
pageNum
;
private
Integer
pageSize
;
/**
* 下载导出参数:数据脱敏 1:脱敏 2:完整
*/
private
Integer
dataType
=
1
;
/**
* 下载导出参数:为了兼容前端传参
*/
private
String
requestProject
;
public
Integer
getQueryDataType
()
{
return
queryDataType
==
null
?
1
:
queryDataType
;
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/qo/wechatwork/WechatWorkOverviewTrendQO.java
0 → 100644
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
wechatwork
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Author guojx
* @Date 2024/7/23 10:29
*/
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
WechatWorkOverviewTrendQO
implements
Serializable
{
@JSONField
(
serialize
=
false
)
private
String
storeGroupId
;
/**
* yyyy-MM-dd
*/
private
String
startDate
;
/**
* yyyy-MM-dd
*/
private
String
endDate
;
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/utils/data/DataApiQO.java
0 → 100644
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
utils
.
data
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.haoban.manage.web.qo.wechatwork.StoreGroupCommonQO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* @Author guojx
* @Date 2024/7/23 9:36
*/
@Data
@Accessors
(
chain
=
true
)
public
class
DataApiQO
implements
Serializable
{
/**
* 调用传的参数
* 和jsonObject和StoreGroupCommonQO参数二选一
*/
private
String
searchDataParams
;
/**
* 数据接口名称
*/
private
String
apolloKey
;
private
Integer
currentPage
;
/**
* 是否打印日志
*/
private
String
logStr
;
private
Integer
pageSize
;
/**
* 是否需要强制合计数据
* 默认是第一页需要合计数据
*/
private
boolean
hasCountPerPage
;
/**
* 是否强制去除合计数据
*/
private
boolean
noTotal
;
/**
* 返回rows对象转化
*/
private
Class
clazz
;
/**
* 数据接口调用的参数
*/
private
JSONObject
jsonObject
;
private
StoreGroupCommonQO
storeGroupCommonQO
;
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/utils/data/StoreAuthUtils.java
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
utils
.
data
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.Page
;
import
com.gic.commons.util.DataApiUtils
;
...
...
@@ -19,7 +21,10 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -48,6 +53,14 @@ public class StoreAuthUtils {
jsonObject
.
put
(
"wxEnterpriseId"
,
login
.
getWxEnterpriseId
());
}
public
<
T
>
List
<
T
>
getOverview
(
String
apolloKey
,
JSONObject
jsonObject
,
StoreGroupCommonQO
storeGroupCommonQO
,
Class
clazz
)
{
setCommonParam
(
jsonObject
,
storeGroupCommonQO
);
Map
<
String
,
Object
>
res
=
DataApiUtils
.
http
(
jsonObject
.
toJSONString
(),
apolloKey
);
List
<
JSONObject
>
list
=
DataApiUtils
.
getDataList
(
res
);
List
<
T
>
voList
=
JSONArray
.
parseArray
(
JSON
.
toJSONString
(
list
),
clazz
);
return
voList
;
}
public
List
<
String
>
getAuthStoreId
(
StoreGroupCommonQO
storeCommonQO
)
{
String
storeGroupId
=
storeCommonQO
.
getStoreGroupId
();
String
storeSearchParam
=
storeCommonQO
.
getStoreSearchParam
();
...
...
@@ -110,6 +123,7 @@ public class StoreAuthUtils {
public
void
setStoreGroupJsonParam
(
JSONObject
jsonObject
,
StoreGroupCommonQO
qo
)
{
WebLoginDTO
login
=
AuthWebRequestUtil
.
getLoginUser
();
jsonObject
.
put
(
"enterpriseId"
,
login
.
getEnterpriseId
());
jsonObject
.
put
(
"wxEnterpriseId"
,
login
.
getWxEnterpriseId
());
Integer
storeGroup
=
getStoreGroupLevel
(
qo
);
jsonObject
.
put
(
"storeGroup"
,
storeGroup
);
List
<
String
>
storeIds
=
getAuthStoreId
(
qo
);
...
...
@@ -160,27 +174,47 @@ public class StoreAuthUtils {
return
1
;
}
@Deprecated
public
DataPageVO
getDataCommon
(
String
searchDataParams
,
Integer
currentPage
,
String
logStr
,
Integer
pageSize
,
boolean
hasCountPerPage
)
{
return
getDataCommonParent
(
searchDataParams
,
currentPage
,
logStr
,
pageSize
,
hasCountPerPage
,
false
);
}
public
DataPageVO
getDataCommonParent
(
String
searchDataParams
,
Integer
currentPage
,
String
logStr
,
Integer
pageSize
,
boolean
hasCountPerPage
,
boolean
noTotal
)
{
public
DataPageVO
getData
(
DataApiQO
qo
)
{
Integer
currentPage
=
qo
.
getCurrentPage
();
String
logStr
=
qo
.
getLogStr
();
Integer
pageSize
=
qo
.
getPageSize
();
String
searchDataParams
=
qo
.
getSearchDataParams
();
boolean
hasCountPerPage
=
qo
.
isHasCountPerPage
();
boolean
noTotal
=
qo
.
isNoTotal
();
Class
clazz
=
qo
.
getClazz
();
boolean
isFirst
=
currentPage
!=
null
&&
currentPage
==
1
;
if
(
isFirst
)
{
if
(
isFirst
&&
StringUtils
.
isNotBlank
(
logStr
)
)
{
log
.
info
(
logStr
);
}
DataPageVO
vo
=
new
DataPageVO
();
vo
.
setPageNum
(
currentPage
);
vo
.
setPageSize
(
pageSize
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
searchDataParams
);
JSONObject
jsonObject
=
qo
.
getJsonObject
();
if
(
jsonObject
==
null
)
{
//兼容老接口传参
jsonObject
=
JSONObject
.
parseObject
(
searchDataParams
);
}
else
{
//填充所需参数
StoreGroupCommonQO
storeGroupCommonQO
=
qo
.
getStoreGroupCommonQO
();
setStoreGroupJsonParam
(
jsonObject
,
storeGroupCommonQO
);
}
Integer
storeGroup
=
jsonObject
.
getInteger
(
"storeGroup"
);
boolean
isStore
=
storeGroup
!=
null
&&
storeGroup
==
7
;
jsonObject
.
put
(
"pageNum"
,
currentPage
);
jsonObject
.
put
(
"pageSize"
,
pageSize
);
String
apolloKey
=
jsonObject
.
getString
(
"apolloKey"
);
String
allApolloKey
=
jsonObject
.
getString
(
"allApolloKey"
);
String
apolloKey
=
qo
.
getApolloKey
();
if
(
StringUtils
.
isBlank
(
apolloKey
))
{
apolloKey
=
jsonObject
.
getString
(
"apolloKey"
);
}
Map
<
String
,
Object
>
res
=
DataApiUtils
.
http
(
jsonObject
.
toJSONString
(),
apolloKey
);
...
...
@@ -198,11 +232,7 @@ public class StoreAuthUtils {
jsonObject
.
put
(
"pageNum"
,
1
);
jsonObject
.
put
(
"storeGroup"
,
8
);
String
totalApolloKey
=
apolloKey
;
if
(
StringUtils
.
isNotBlank
(
allApolloKey
))
{
totalApolloKey
=
allApolloKey
;
}
JSONObject
total
=
getTotalJson
(
jsonObject
,
totalApolloKey
);
JSONObject
total
=
getTotalJson
(
jsonObject
,
apolloKey
);
if
(
total
==
null
)
{
total
=
new
JSONObject
();
}
...
...
@@ -217,9 +247,23 @@ public class StoreAuthUtils {
}
}
vo
.
setRows
(
list
);
if
(
clazz
!=
null
&&
CollectionUtils
.
isNotEmpty
(
vo
.
getRows
()))
{
vo
.
setRows
(
JSONArray
.
parseArray
(
JSON
.
toJSONString
(
vo
.
getRows
()),
clazz
));
}
return
vo
;
}
@Deprecated
public
DataPageVO
getDataCommonParent
(
String
searchDataParams
,
Integer
currentPage
,
String
logStr
,
Integer
pageSize
,
boolean
hasCountPerPage
,
boolean
noTotal
)
{
return
getData
(
new
DataApiQO
().
setSearchDataParams
(
searchDataParams
)
.
setCurrentPage
(
currentPage
)
.
setLogStr
(
logStr
)
.
setPageSize
(
pageSize
)
.
setHasCountPerPage
(
hasCountPerPage
)
.
setNoTotal
(
noTotal
));
}
private
List
<
String
>
getStore
(
String
enterpriseId
,
String
userId
,
String
search
,
List
<
String
>
storeGroupIdList
,
List
<
String
>
status
,
List
<
String
>
storeIdList
)
{
StoreSearchDTO
storeSearchDTO
=
new
StoreSearchDTO
();
storeSearchDTO
.
setEnterpriseId
(
enterpriseId
);
...
...
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/vo/wechatwork/WechatWorkOverviewStoreGroupVO.java
0 → 100644
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
wechatwork
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Author guojx
* @Date 2024/5/21 15:56
*/
@Data
public
class
WechatWorkOverviewStoreGroupVO
extends
StoreGroupCommonVO
implements
Serializable
{
/**
* 新增微信好友总数
*/
private
Integer
newEntwchFdNumTotal
;
/**
* 新增已注册微信好友数
*/
private
Integer
newEntwchFdNumMbr
;
/**
* 新增未注册微信好友数
*/
private
Integer
newEntwchFdNumNonmbr
;
/**
* 微信好友总数
*/
private
Integer
entwchFdNumTotal
;
/**
* 已注册微信好友数
*/
private
Integer
entwchFdNumMbr
;
/**
* 未注册微信好友数
*/
private
Integer
entwchFdNumNonmbr
;
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/vo/wechatwork/WechatWorkOverviewTrendVO.java
0 → 100644
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
wechatwork
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Author guojx
* @Date 2024/5/21 15:56
*/
@Data
public
class
WechatWorkOverviewTrendVO
implements
Serializable
{
/**
* 微信好友总数
*/
private
Integer
newEntwchFdNumTotal
;
/**
* 已注册微信好友数
*/
private
Integer
newEntwchFdNumMbr
;
/**
* 未注册微信好友数
*/
private
Integer
newEntwchFdNumNonmbr
;
private
String
bizDate
;
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/vo/wechatwork/WechatWorkOverviewVO.java
0 → 100644
View file @
4800f066
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
wechatwork
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Objects
;
/**
* @Author guojx
* @Date 2024/5/21 15:56
*/
@Data
public
class
WechatWorkOverviewVO
implements
Serializable
{
/**
* 微信好友总数
*/
private
Integer
entwchFdNumTotal
;
/**
* 已注册微信好友数
*/
private
Integer
entwchFdNumMbr
;
/**
* 未注册微信好友数
*/
private
Integer
entwchFdNumNonmbr
;
/**
* 已注册微信好友数占比
*/
private
Double
entwchFdNumMbrRate
;
/**
* 未注册微信好友数占比
*/
private
Double
entwchFdNumNonmbrRate
;
public
Double
getEntwchFdNumMbrRate
()
{
return
rate
(
getEntwchFdNumMbr
(),
getEntwchFdNumTotal
(),
2
);
}
public
Double
getEntwchFdNumNonmbrRate
()
{
return
rate
(
getEntwchFdNumNonmbr
(),
getEntwchFdNumTotal
(),
2
);
}
/**
* 百分比计算,保留两位小数
* @param divisor
* @param dividend
* @param degree
* @return
*/
public
static
Double
rate
(
Integer
divisor
,
Integer
dividend
,
int
degree
){
if
(
Objects
.
isNull
(
divisor
)
||
Objects
.
isNull
(
dividend
)
||
dividend
==
0
){
return
0.00
;
}
//数字会丢失精度,先转字符串,再转bigDecimal
BigDecimal
divisor1
=
new
BigDecimal
(
divisor
+
""
);
BigDecimal
dividend1
=
new
BigDecimal
(
dividend
+
""
);
return
divisor1
.
multiply
(
new
BigDecimal
(
"100"
)).
divide
(
dividend1
,
degree
,
BigDecimal
.
ROUND_HALF_UP
).
doubleValue
();
}
}
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