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
fb5d0b8d
Commit
fb5d0b8d
authored
Dec 24, 2024
by
徐高华
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-canvas' into 'developer'
Feature canvas See merge request
!2374
parents
73900cea
d310d84e
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
905 additions
and
0 deletions
+905
-0
pom.xml
haoban-manage3-wx/pom.xml
+6
-0
CanvasDataController.java
...oban/manage/web/controller/data/CanvasDataController.java
+175
-0
CanvasConversionClerkQO.java
.../haoban/manage/web/qo/canvas/CanvasConversionClerkQO.java
+25
-0
CanvasConversionDataQO.java
...c/haoban/manage/web/qo/canvas/CanvasConversionDataQO.java
+25
-0
CanvasConversionMemberQO.java
...haoban/manage/web/qo/canvas/CanvasConversionMemberQO.java
+20
-0
CanvasStoreTaskQO.java
...om/gic/haoban/manage/web/qo/canvas/CanvasStoreTaskQO.java
+68
-0
CanvasTaskQO.java
...ava/com/gic/haoban/manage/web/qo/canvas/CanvasTaskQO.java
+73
-0
CanvasToDoCompleteMemberQO.java
...oban/manage/web/qo/canvas/CanvasToDoCompleteMemberQO.java
+21
-0
EsMemberInfoUtils.java
...va/com/gic/haoban/manage/web/utils/EsMemberInfoUtils.java
+161
-0
MemberInfoQO.java
...in/java/com/gic/haoban/manage/web/utils/MemberInfoQO.java
+33
-0
ReflectUtils.java
...in/java/com/gic/haoban/manage/web/utils/ReflectUtils.java
+47
-0
CanvasConversionDataVO.java
...c/haoban/manage/web/vo/canvas/CanvasConversionDataVO.java
+24
-0
CanvasConversionMemberVO.java
...haoban/manage/web/vo/canvas/CanvasConversionMemberVO.java
+41
-0
CanvasStoreTaskVO.java
...om/gic/haoban/manage/web/vo/canvas/CanvasStoreTaskVO.java
+68
-0
CanvasTaskVO.java
...ava/com/gic/haoban/manage/web/vo/canvas/CanvasTaskVO.java
+72
-0
CanvasToDoCompleteMemberVO.java
...oban/manage/web/vo/canvas/CanvasToDoCompleteMemberVO.java
+43
-0
dubbo-haoban-manage-wx.xml
...ge3-wx/src/main/webapp/WEB-INF/dubbo-haoban-manage-wx.xml
+3
-0
No files found.
haoban-manage3-wx/pom.xml
View file @
fb5d0b8d
...
...
@@ -268,6 +268,12 @@
<version>
${gic-webapp-common}
</version>
</dependency>
<dependency>
<groupId>
com.gic
</groupId>
<artifactId>
gic-search-engine-api
</artifactId>
<version>
${gic-search-engine-api}
</version>
</dependency>
</dependencies>
<build>
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/data/CanvasDataController.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
data
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.Page
;
import
com.gic.commons.util.DataApiUtils
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.haoban.manage.api.service.StaffApiService
;
import
com.gic.haoban.manage.web.qo.canvas.*
;
import
com.gic.haoban.manage.web.utils.EsMemberInfoUtils
;
import
com.gic.haoban.manage.web.vo.canvas.*
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
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.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
/**
* 画布数据
*/
@Slf4j
@RestController
@RequestMapping
(
"/canvas-data"
)
public
class
CanvasDataController
{
@Autowired
private
EsMemberInfoUtils
esMemberInfoUtils
;
@Autowired
private
StaffApiService
staffApiService
;
/**
* 活动转化数据
* @param qo
* @return
*/
@RequestMapping
(
"get-canvas-conversion-data"
)
public
RestResponse
<
CanvasConversionDataVO
>
getCanvasConversionData
(
@RequestBody
CanvasConversionDataQO
qo
)
{
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
qo
);
setPageParam
(
jsonObject
,
null
,
null
);
//1画布维度2导购维度3会员维度
jsonObject
.
put
(
"dataType"
,
1
);
Map
<
String
,
Object
>
res
=
DataApiUtils
.
http
(
jsonObject
.
toJSONString
(),
"data_mkt_canvas_haoban_list"
);
List
<
CanvasConversionDataVO
>
list
=
DataApiUtils
.
parsePageDataList
(
res
,
CanvasConversionDataVO
.
class
);
return
RestResponse
.
successResult
(
list
.
size
()
>
0
?
list
.
get
(
0
)
:
new
CanvasConversionDataVO
());
}
/**
* 画布待完成会员列表
* @param qo
* @return
*/
@RequestMapping
(
"get-canvas-to-do-complete-member"
)
public
RestResponse
<
Page
<
CanvasToDoCompleteMemberVO
>>
getCanvasToDoCompleteMember
(
@RequestBody
CanvasToDoCompleteMemberQO
qo
)
{
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
qo
);
setPageParam
(
jsonObject
,
qo
.
getPageNum
(),
qo
.
getPageSize
());
Map
<
String
,
Object
>
res
=
DataApiUtils
.
http
(
jsonObject
.
toJSONString
(),
"data_mkt_canvas_haoban_mbr"
);
Page
<
CanvasToDoCompleteMemberVO
>
page
=
DataApiUtils
.
getPageData
(
res
,
CanvasToDoCompleteMemberVO
.
class
);
List
<
CanvasToDoCompleteMemberVO
>
list
=
page
.
getResult
();
esMemberInfoUtils
.
setMemberInfo
(
qo
.
getEnterpriseId
(),
list
,
Stream
.
of
(
"memberName"
,
"memberNick"
,
"photoUrl"
,
"clerkCode"
,
"clerkName"
)
.
collect
(
Collectors
.
toSet
()));
return
RestResponse
.
successResult
(
page
);
}
/**
* 活动已完成的会员
* @param qo
* @return
*/
@RequestMapping
(
"get-canvas-conversion-member"
)
public
RestResponse
<
Page
<
CanvasConversionMemberVO
>>
getCanvasConversionMember
(
@RequestBody
CanvasConversionMemberQO
qo
)
{
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
qo
);
setPageParam
(
jsonObject
,
qo
.
getPageNum
(),
qo
.
getPageSize
());
//1导购2会员
jsonObject
.
put
(
"dataType"
,
2
);
Map
<
String
,
Object
>
res
=
DataApiUtils
.
http
(
jsonObject
.
toJSONString
(),
"data_mkt_canvas_haoban_clerk"
);
Page
<
CanvasConversionMemberVO
>
page
=
DataApiUtils
.
getPageData
(
res
,
CanvasConversionMemberVO
.
class
);
List
<
CanvasConversionMemberVO
>
list
=
page
.
getResult
();
esMemberInfoUtils
.
setMemberInfo
(
qo
.
getEnterpriseId
(),
list
,
Stream
.
of
(
"memberName"
,
"memberNick"
,
"photoUrl"
,
"clerkCode"
,
"clerkName"
)
.
collect
(
Collectors
.
toSet
()));
return
RestResponse
.
successResult
(
page
);
}
/**
* 活动导购详情
* @param qo
* @return
*/
@RequestMapping
(
"get-canvas-conversion-clerk"
)
public
RestResponse
<
Page
<
CanvasConversionMemberVO
>>
getCanvasConversionClerk
(
@RequestBody
CanvasConversionClerkQO
qo
)
{
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
qo
);
setPageParam
(
jsonObject
,
qo
.
getPageNum
(),
qo
.
getPageSize
());
//1导购2会员
jsonObject
.
put
(
"dataType"
,
1
);
Map
<
String
,
Object
>
res
=
DataApiUtils
.
http
(
jsonObject
.
toJSONString
(),
"data_mkt_canvas_haoban_clerk"
);
Page
<
CanvasConversionMemberVO
>
page
=
DataApiUtils
.
getPageData
(
res
,
CanvasConversionMemberVO
.
class
);
List
<
CanvasConversionMemberVO
>
list
=
page
.
getResult
();
esMemberInfoUtils
.
setMemberInfo
(
qo
.
getEnterpriseId
(),
list
,
Stream
.
of
(
"clerkCode"
,
"clerkName"
)
.
collect
(
Collectors
.
toSet
()));
return
RestResponse
.
successResult
(
page
);
}
/**
* 区经的话务/群发 门店和活动数据
* @param qo
* @return
*/
@RequestMapping
(
"get-tel-or-mass-task-data"
)
public
RestResponse
<
Page
<
CanvasTaskVO
>>
getTelOrMassTaskData
(
@RequestBody
CanvasTaskQO
qo
)
{
boolean
isStore
=
qo
.
getDataType
()
==
1
;
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
qo
);
setPageParam
(
jsonObject
,
qo
.
getPageNum
(),
qo
.
getPageSize
());
if
(
StringUtils
.
isBlank
(
qo
.
getStoreId
()))
{
List
<
String
>
authStoreIdList
=
staffApiService
.
getHaobanStoreIdsRolesByClerkIdAndStoreStatus
(
qo
.
getClerkId
(),
qo
.
getWxEnterpriseId
(),
null
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
authStoreIdList
))
{
jsonObject
.
put
(
"storeId"
,
authStoreIdList
.
stream
().
collect
(
Collectors
.
joining
(
","
)));
}
}
Map
<
String
,
Object
>
res
=
DataApiUtils
.
http
(
jsonObject
.
toJSONString
(),
"data_mkt_canvas_haoban_mkt_task"
);
Page
<
CanvasTaskVO
>
page
=
DataApiUtils
.
getPageData
(
res
,
CanvasTaskVO
.
class
);
List
<
CanvasTaskVO
>
list
=
page
.
getResult
();
if
(
qo
.
getPageNum
()
==
1
)
{
//合计
jsonObject
.
put
(
"dataType"
,
4
);
res
=
DataApiUtils
.
http
(
jsonObject
.
toJSONString
(),
"data_mkt_canvas_haoban_mkt_task"
);
JSONObject
total
=
DataApiUtils
.
getPageOne
(
res
);
total
.
put
(
isStore
?
"storeName"
:
"canvasName"
,
"合计"
);
if
(
CollectionUtils
.
isEmpty
(
list
))
{
list
=
new
ArrayList
<>();
}
list
.
add
(
0
,
JSONObject
.
parseObject
(
total
.
toJSONString
(),
CanvasTaskVO
.
class
));
page
.
setResult
(
list
);
}
return
RestResponse
.
successResult
(
page
);
}
/**
* 店长 任务列表
* @param qo
* @return
*/
@RequestMapping
(
"get-tel-and-mass-task-data"
)
public
RestResponse
<
Page
<
CanvasStoreTaskVO
>>
getTelAndMassTaskData
(
@RequestBody
CanvasStoreTaskQO
qo
)
{
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
qo
);
setPageParam
(
jsonObject
,
qo
.
getPageNum
(),
qo
.
getPageSize
());
jsonObject
.
put
(
"subType"
,
"all"
);
if
(
StringUtils
.
isNotBlank
(
qo
.
getClerkId
())
&&
staffApiService
.
isManager
(
qo
.
getClerkId
()))
{
//店长不需要传参
jsonObject
.
remove
(
"clerkId"
);
}
Map
<
String
,
Object
>
res
=
DataApiUtils
.
http
(
jsonObject
.
toJSONString
(),
"data_mkt_canvas_haoban_mkt_task"
);
Page
<
CanvasStoreTaskVO
>
page
=
DataApiUtils
.
getPageData
(
res
,
CanvasStoreTaskVO
.
class
);
return
RestResponse
.
successResult
(
page
);
}
private
void
setPageParam
(
JSONObject
jsonObject
,
Integer
pageNum
,
Integer
pageSize
)
{
jsonObject
.
put
(
"pageNum"
,
pageNum
==
null
?
1
:
pageNum
);
jsonObject
.
put
(
"pageSize"
,
pageSize
==
null
?
10
:
pageSize
);
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/canvas/CanvasConversionClerkQO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
canvas
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
CanvasConversionClerkQO
extends
CanvasConversionDataQO
implements
Serializable
{
private
Integer
pageNum
;
private
Integer
pageSize
;
/**
* 1 升序 2降序
*/
private
Integer
orderByType
;
/**
* 1金额/积分 2人数
*/
private
String
orderByFields
;
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/canvas/CanvasConversionDataQO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
canvas
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
CanvasConversionDataQO
implements
Serializable
{
private
Long
canvasId
;
private
String
enterpriseId
;
/**
* 1:积分消耗 2:转化
*/
private
Integer
sourceType
;
/**
* mass:群发任务 tel_task:话务任务
*/
private
String
subType
;
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/canvas/CanvasConversionMemberQO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
canvas
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
CanvasConversionMemberQO
extends
CanvasConversionDataQO
implements
Serializable
{
private
Integer
pageNum
;
private
Integer
pageSize
;
/**
* 1已转化2为转化 默认已转化
*/
private
Integer
isConvs
;
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/canvas/CanvasStoreTaskQO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
canvas
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.gic.commons.web.qo.PageQo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
CanvasStoreTaskQO
extends
PageQo
implements
Serializable
{
/**
* 1 升序 2降序
*/
private
Integer
orderByType
;
/**
* 1完成任务数2待完成任务数3逾期任务数4逾期失效任务数5总任务数6任务完成率
*/
private
String
orderByFields
;
/**
* 开始时间 yyyy-MM-dd
*/
private
String
startDate
;
private
String
endDate
;
/**
* 导购筛选
*/
private
String
clerkQuery
;
/**
* 画布活动筛选
*/
private
String
canvasQuery
;
/**
* 活动ID
*/
private
String
canvasId
;
/**
* 门店ID
*/
private
String
storeId
;
/**
* 普通导购
*/
private
String
clerkId
;
/**
* 2导购3活动 4:门店合计
*/
private
Integer
dataType
;
/**
* 企业ID.
*/
private
String
enterpriseId
;
public
Integer
getDataType
()
{
return
dataType
==
null
?
2
:
dataType
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/canvas/CanvasTaskQO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
canvas
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.gic.commons.web.qo.PageQo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
CanvasTaskQO
extends
PageQo
implements
Serializable
{
/**
* 1 升序 2降序
*/
private
Integer
orderByType
;
/**
* 1完成任务数2待完成任务数3逾期任务数4逾期失效任务数5总任务数6任务完成率
*/
private
String
orderByFields
;
/**
* tel_task 话务任务 mass 群发任务
*/
private
String
subType
;
/**
* 开始时间 yyyy-MM-dd
*/
private
String
startDate
;
private
String
endDate
;
/**
* 门店筛选
*/
private
String
storeQuery
;
/**
* 画布活动筛选
*/
private
String
canvasQuery
;
/**
* 门店维度跳转到活动维度时候,传递
*/
private
String
storeId
;
/**
* 1门店 3活动
*/
private
Integer
dataType
;
/**
* 企业ID.
*/
private
String
enterpriseId
;
/**
* 微信企业
*/
private
String
wxEnterpriseId
;
/**
* 区经,用于查询管辖门店权限
*/
private
String
clerkId
;
public
Integer
getDataType
()
{
return
dataType
==
null
?
1
:
dataType
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/canvas/CanvasToDoCompleteMemberQO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
canvas
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.gic.commons.web.qo.PageQo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
CanvasToDoCompleteMemberQO
extends
PageQo
implements
Serializable
{
private
Long
canvasId
;
private
String
enterpriseId
;
/**
* mass:群发任务 tel_task:话务任务
*/
private
String
subType
;
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/utils/EsMemberInfoUtils.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
utils
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.clerk.api.dto.ClerkDTO
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.enterprise.api.dto.StoreDTO
;
import
com.gic.enterprise.api.service.StoreService
;
import
com.gic.search.engine.api.constant.OperateEnum
;
import
com.gic.search.engine.api.dto.ESResponseQueryBatch
;
import
com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO
;
import
com.gic.search.engine.api.filter.NewNodeAddUtil
;
import
com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Component
@Slf4j
public
class
EsMemberInfoUtils
{
@Autowired
private
ESDataDynamicOperationApiService
esDataDynamicOperationApiService
;
@Autowired
private
StoreService
storeService
;
@Autowired
private
ClerkService
clerkService
;
public
void
setMemberInfo
(
String
enterpriseId
,
List
list
,
Set
<
String
>
fieldName
)
{
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
List
<
String
>
memberIdList
=
new
ArrayList
<>();
for
(
Object
o
:
list
)
{
String
memberId
=
ReflectUtils
.
getDateFieldValue
(
o
,
"memberId"
);
if
(
org
.
apache
.
commons
.
lang
.
StringUtils
.
isNotBlank
(
memberId
)
&&
!
"-1"
.
equals
(
memberId
))
{
memberIdList
.
add
(
memberId
);
}
}
if
(
CollectionUtils
.
isNotEmpty
(
memberIdList
))
{
List
<
JSONObject
>
memberJson
=
queryDataBatch
(
enterpriseId
,
memberIdList
,
"memberId,name,mainStoreId,phoneNumber,name,nickName,mainClerkId,photoUrl"
);
if
(
CollectionUtils
.
isNotEmpty
(
memberJson
))
{
Map
<
String
,
JSONObject
>
map
=
memberJson
.
stream
()
.
collect
(
Collectors
.
toMap
(
e
->
e
.
getString
(
"memberId"
),
e
->
e
));
Map
<
String
,
StoreDTO
>
storeMap
=
new
HashMap
<>();
Map
<
String
,
ClerkDTO
>
clerkMap
=
new
HashMap
<>();
boolean
isQueryStore
=
fieldName
.
contains
(
"storeName"
)
||
fieldName
.
contains
(
"storeCode"
);
if
(
isQueryStore
)
{
List
<
String
>
mainStoreIdList
=
memberJson
.
stream
().
filter
(
e
->
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isNotBlank
(
e
.
getString
(
"mainStoreId"
)))
.
map
(
e
->
e
.
getString
(
"mainStoreId"
)).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
mainStoreIdList
))
{
List
<
StoreDTO
>
mainStoreList
=
storeService
.
queryStore
(
mainStoreIdList
);
if
(
CollectionUtils
.
isNotEmpty
(
mainStoreList
))
{
storeMap
=
mainStoreList
.
stream
().
collect
(
Collectors
.
toMap
(
e
->
e
.
getStoreId
(),
e
->
e
));
}
}
}
boolean
isQueryClerk
=
fieldName
.
contains
(
"clerkCode"
)
||
fieldName
.
contains
(
"clerkName"
);
if
(
isQueryClerk
)
{
Set
<
String
>
mainClerkIdList
=
memberJson
.
stream
().
filter
(
e
->
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isNotBlank
(
e
.
getString
(
"mainClerkId"
)))
.
map
(
e
->
e
.
getString
(
"mainClerkId"
)).
collect
(
Collectors
.
toSet
());
if
(
CollectionUtils
.
isNotEmpty
(
mainClerkIdList
))
{
List
<
ClerkDTO
>
mainClerkList
=
clerkService
.
getClerkByClerkIds
(
mainClerkIdList
);
if
(
CollectionUtils
.
isNotEmpty
(
mainClerkList
))
{
clerkMap
=
mainClerkList
.
stream
().
collect
(
Collectors
.
toMap
(
e
->
e
.
getClerkId
(),
e
->
e
));
}
}
}
for
(
Object
vo
:
list
)
{
String
memberId
=
ReflectUtils
.
getDateFieldValue
(
vo
,
"memberId"
);
JSONObject
jsonValue
=
map
.
get
(
memberId
);
if
(
jsonValue
!=
null
)
{
if
(
fieldName
.
contains
(
"memberPhone"
))
{
ReflectUtils
.
setDateFieldValue
(
vo
,
"memberPhone"
,
jsonValue
.
getString
(
"phoneNumber"
));
}
if
(
fieldName
.
contains
(
"memberName"
))
{
ReflectUtils
.
setDateFieldValue
(
vo
,
"memberName"
,
jsonValue
.
getString
(
"name"
));
}
if
(
fieldName
.
contains
(
"memberNick"
))
{
ReflectUtils
.
setDateFieldValue
(
vo
,
"memberNick"
,
jsonValue
.
getString
(
"nickName"
));
}
if
(
fieldName
.
contains
(
"photoUrl"
))
{
ReflectUtils
.
setDateFieldValue
(
vo
,
"photoUrl"
,
jsonValue
.
getString
(
"photoUrl"
));
}
if
(
fieldName
.
contains
(
"memberScene"
))
{
ReflectUtils
.
setDateFieldValue
(
vo
,
"memberScene"
,
3
);
}
if
(
isQueryStore
)
{
String
mainStoreId
=
jsonValue
.
getString
(
"mainStoreId"
);
// ReflectUtils.setDateFieldValue(vo, "storeId", mainStoreId);
if
(
org
.
apache
.
commons
.
lang
.
StringUtils
.
isNotBlank
(
mainStoreId
))
{
StoreDTO
storeValue
=
storeMap
.
get
(
mainStoreId
);
if
(
storeValue
!=
null
)
{
ReflectUtils
.
setDateFieldValue
(
vo
,
"storeCode"
,
storeValue
.
getStoreCode
());
ReflectUtils
.
setDateFieldValue
(
vo
,
"storeName"
,
storeValue
.
getStoreName
());
if
(
fieldName
.
contains
(
"parentStoreGroupName"
))
{
ReflectUtils
.
setDateFieldValue
(
vo
,
"parentStoreGroupName"
,
storeValue
.
getStoreGroupName
());
}
}
}
}
if
(
isQueryClerk
)
{
String
mainClerkId
=
jsonValue
.
getString
(
"mainClerkId"
);
// ReflectUtils.setDateFieldValue(vo, "clerkId", mainClerkId);
if
(
org
.
apache
.
commons
.
lang
.
StringUtils
.
isNotBlank
(
mainClerkId
))
{
ClerkDTO
clerkDTO
=
clerkMap
.
get
(
mainClerkId
);
if
(
clerkDTO
!=
null
)
{
ReflectUtils
.
setDateFieldValue
(
vo
,
"clerkCode"
,
clerkDTO
.
getClerkCode
());
ReflectUtils
.
setDateFieldValue
(
vo
,
"clerkName"
,
clerkDTO
.
getClerkName
());
}
}
}
}
}
}
}
}
}
public
List
<
JSONObject
>
queryDataBatch
(
String
enterpriseId
,
List
<
String
>
memberIdList
,
String
returnFields
)
{
if
(
CollectionUtils
.
isEmpty
(
memberIdList
))
{
log
.
warn
(
"memberIdList 为空"
,
enterpriseId
);
return
null
;
}
List
<
JSONObject
>
jsonObjList
=
new
ArrayList
<
JSONObject
>();
try
{
JSONObject
searchJson
=
new
JSONObject
();
String
[]
memberIdArr
=
memberIdList
.
toArray
(
new
String
[
memberIdList
.
size
()]);
String
memberIds
=
StringUtils
.
join
(
memberIdArr
,
" "
);
searchJson
=
NewNodeAddUtil
.
addNewNodeForAnd
(
"memberId"
,
OperateEnum
.
OPERATE_CONTAIN
.
getValue
(),
memberIds
,
searchJson
);
DynamicSearchDTO
search
=
new
DynamicSearchDTO
();
log
.
info
(
"==============搜索条件==============: {}"
,
JSON
.
toJSONString
(
searchJson
));
search
.
setRecordNumber
(
memberIdList
.
size
()
+
1
);
search
.
setSearchJson
(
searchJson
);
search
.
setEnterpriseId
(
enterpriseId
);
search
.
setColumnCategoryCode
(
"member"
);
search
.
setReturnFileds
(
returnFields
);
search
.
setSortJson
(
NewNodeAddUtil
.
createSortNode
(
"memberId"
,
NewNodeAddUtil
.
SORT_RULE_ASC
));
ESResponseQueryBatch
esRes
=
esDataDynamicOperationApiService
.
queryDataBatch
(
search
,
false
,
null
);
jsonObjList
=
esRes
.
getRes
();
}
catch
(
Exception
e
)
{
log
.
warn
(
"从搜索引擎搜索会员数据异常"
,
memberIdList
,
enterpriseId
,
e
);
}
return
jsonObjList
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/utils/MemberInfoQO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
utils
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
MemberInfoQO
implements
Serializable
{
/**
* 是否设置服务门店名称和code
*/
private
boolean
setStore
;
/**
* 是否设置专属导购名称和code
*/
private
boolean
setClerk
;
/**
* 是否设置服务门店上级分组名称
*/
private
boolean
setParentStoreGroup
;
/**
* 是否设置会员类型。
* 1:非会员 2:会员已注销 3:正常
*/
private
boolean
setMemberScene
;
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/utils/ReflectUtils.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
utils
;
import
lombok.extern.slf4j.Slf4j
;
import
java.lang.reflect.Method
;
@Slf4j
public
class
ReflectUtils
{
public
static
String
getDateFieldValue
(
Object
obj
,
String
fieldName
)
{
try
{
Method
method
=
obj
.
getClass
().
getMethod
(
"get"
+
fieldName
.
substring
(
0
,
1
).
toUpperCase
()
+
fieldName
.
substring
(
1
));
return
(
String
)
method
.
invoke
(
obj
);
}
catch
(
Exception
e
)
{
log
.
warn
(
"反射get值错误:{}"
,
e
.
getMessage
(),
e
);
return
null
;
}
}
public
static
void
setDateFieldValue
(
Object
obj
,
String
fieldName
,
String
dataValue
)
{
try
{
Method
method
=
obj
.
getClass
().
getMethod
(
"set"
+
fieldName
.
substring
(
0
,
1
).
toUpperCase
()
+
fieldName
.
substring
(
1
),
String
.
class
);
method
.
invoke
(
obj
,
dataValue
);
}
catch
(
Exception
e
)
{
log
.
warn
(
"反射set值错误:{}"
,
e
.
getMessage
(),
e
);
}
}
public
static
void
setDateFieldValue
(
Object
obj
,
String
fieldName
,
Integer
dataValue
)
{
try
{
Method
method
=
obj
.
getClass
().
getMethod
(
"set"
+
fieldName
.
substring
(
0
,
1
).
toUpperCase
()
+
fieldName
.
substring
(
1
),
Integer
.
class
);
method
.
invoke
(
obj
,
dataValue
);
}
catch
(
Exception
e
)
{
log
.
warn
(
"反射set值错误:{}"
,
e
.
getMessage
(),
e
);
}
}
public
static
<
T
>
T
createInstance
(
Class
<
T
>
clazz
)
{
try
{
return
clazz
.
newInstance
();
}
catch
(
InstantiationException
e
)
{
return
null
;
}
catch
(
IllegalAccessException
e
)
{
return
null
;
}
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/canvas/CanvasConversionDataVO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
canvas
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
CanvasConversionDataVO
implements
Serializable
{
/**
* 消耗积分数
*/
private
Integer
convsCsmeIntglCnt
;
/**
* 转化人数/积分消耗人数
*/
private
Integer
convsMbrNum
;
/**
* 转化金额
*/
private
Double
convsAmt
;
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/canvas/CanvasConversionMemberVO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
canvas
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
CanvasConversionMemberVO
extends
CanvasConversionDataVO
implements
Serializable
{
/**
* 会员id
*/
private
String
mbrId
;
private
String
memberId
;
private
String
clerkId
;
private
String
clerkCode
;
private
String
clerkName
;
/**
* 会员名称
*/
private
String
memberName
;
/**
* 会员昵称
*/
private
String
memberNick
;
/**
* 头像
*/
private
String
photoUrl
;
public
String
getMemberId
()
{
return
mbrId
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/canvas/CanvasStoreTaskVO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
canvas
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
CanvasStoreTaskVO
implements
Serializable
{
/**
* 完成任务数
*/
private
Integer
complTaskCnt
;
/**
* 待完成任务数
*/
private
Integer
untreatedTaskCnt
;
/**
* 逾期中任务数
*/
private
Integer
overdueTaskCnt
;
/**
* 逾期失效任务数
*/
private
Integer
overdueInvalidTaskCnt
;
/**
* 总任务数
*/
private
Integer
assignedTaskCnt
;
/**
* 任务完成率
*/
private
Double
taskComplRate
;
/**
* 放弃任务数
*/
private
Integer
abandonTaskCnt
;
/**
* 导购名称
*/
private
String
clerkName
;
private
String
clerkId
;
/**
* 画布活动名称
*/
private
String
canvasName
;
/**
* 活动ID
*/
private
String
canvasId
;
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/canvas/CanvasTaskVO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
canvas
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
CanvasTaskVO
implements
Serializable
{
/**
* 完成任务数
*/
private
Integer
complTaskCnt
;
/**
* 待完成任务数
*/
private
Integer
untreatedTaskCnt
;
/**
* 逾期中任务数
*/
private
Integer
overdueTaskCnt
;
/**
* 逾期失效任务数
*/
private
Integer
overdueInvalidTaskCnt
;
/**
* 总任务数
*/
private
Integer
assignedTaskCnt
;
/**
* 任务完成率
*/
private
Double
taskComplRate
;
/**
*
*/
private
String
storeId
;
/**
* 放弃任务数
*/
private
Integer
abandonTaskCnt
;
/**
* 门店名称
*/
private
String
storeName
;
/**
* 画布活动名称
*/
private
String
canvasName
;
/**
* 活动ID
*/
private
String
canvasId
;
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/canvas/CanvasToDoCompleteMemberVO.java
0 → 100644
View file @
fb5d0b8d
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
.
canvas
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
CanvasToDoCompleteMemberVO
implements
Serializable
{
private
String
mbrId
;
private
String
memberId
;
private
String
clerkId
;
private
String
clerkCode
;
private
String
clerkName
;
/**
* 会员名称
*/
private
String
memberName
;
/**
* 会员昵称
*/
private
String
memberNick
;
/**
* 头像
*/
private
String
photoUrl
;
/**
* 逾期天数
*/
private
Integer
invalidDays
;
public
String
getMemberId
()
{
return
mbrId
;
}
}
haoban-manage3-wx/src/main/webapp/WEB-INF/dubbo-haoban-manage-wx.xml
View file @
fb5d0b8d
...
...
@@ -187,4 +187,7 @@
<dubbo:reference
id=
"gatheringActivityWxApiService"
interface=
"com.gic.marketing.pro.api.service.activity.GatheringActivityWxApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
id=
"eSDataDynamicOperationApiService"
interface=
"com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService"
timeout=
"10000"
/>
</beans>
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