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
c41067f3
Commit
c41067f3
authored
Mar 15, 2025
by
王祖波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
建联和跟进
parent
c9a97e60
Show whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
2552 additions
and
13 deletions
+2552
-13
ContactFollowDTO.java
...m/gic/haoban/manage/api/dto/contact/ContactFollowDTO.java
+106
-0
ContactFollowGoodsDTO.java
.../haoban/manage/api/dto/contact/ContactFollowGoodsDTO.java
+50
-0
ContactFollowQDTO.java
...gic/haoban/manage/api/qdto/contact/ContactFollowQDTO.java
+106
-0
ContactFollowSearchQDTO.java
...oban/manage/api/qdto/contact/ContactFollowSearchQDTO.java
+35
-0
ContactLogQDTO.java
...om/gic/haoban/manage/api/qdto/contact/ContactLogQDTO.java
+57
-0
ContactFollowApiService.java
...n/manage/api/service/contact/ContactFollowApiService.java
+45
-0
TabContactFollowMapper.java
...ge/service/dao/mapper/contact/TabContactFollowMapper.java
+91
-0
TabContactLogMapper.java
...anage/service/dao/mapper/contact/TabContactLogMapper.java
+71
-0
TabContactOrderMapper.java
...age/service/dao/mapper/contact/TabContactOrderMapper.java
+63
-0
TabHaobanInteractRecordMapper.java
...ice/dao/mapper/content/TabHaobanInteractRecordMapper.java
+17
-2
TabContactFollow.java
...aoban/manage/service/entity/contact/TabContactFollow.java
+159
-0
TabContactLog.java
...c/haoban/manage/service/entity/contact/TabContactLog.java
+207
-0
TabContactOrder.java
...haoban/manage/service/entity/contact/TabContactOrder.java
+268
-0
MemberLastInteractBO.java
...anage/service/pojo/bo/potential/MemberLastInteractBO.java
+36
-0
ContactFollowService.java
.../manage/service/service/contact/ContactFollowService.java
+45
-0
ContactLogService.java
...ban/manage/service/service/contact/ContactLogService.java
+20
-0
ContactFollowServiceImpl.java
...ervice/service/contact/impl/ContactFollowServiceImpl.java
+136
-0
ContactLogServiceImpl.java
...e/service/service/contact/impl/ContactLogServiceImpl.java
+112
-0
InteractRecordService.java
...manage/service/service/content/InteractRecordService.java
+21
-0
InteractRecordServiceImpl.java
...rvice/service/content/impl/InteractRecordServiceImpl.java
+30
-5
ContactFollowApiServiceImpl.java
...service/out/impl/contact/ContactFollowApiServiceImpl.java
+49
-0
dubbo-haoban-manage-service.xml
...ervice/src/main/resources/dubbo-haoban-manage-service.xml
+2
-0
TabContactFollowMapper.xml
.../main/resources/mapper/contact/TabContactFollowMapper.xml
+140
-0
TabContactLogMapper.xml
...src/main/resources/mapper/contact/TabContactLogMapper.xml
+196
-0
TabContactOrderMapper.xml
...c/main/resources/mapper/contact/TabContactOrderMapper.xml
+104
-0
TabHaobanInteractRecordMapper.xml
...esources/mapper/content/TabHaobanInteractRecordMapper.xml
+25
-0
ContactTest.java
...an-manage3-service/src/test/java/contact/ContactTest.java
+116
-0
WxEnterpriseInfoController.java
...ban/manage/web/controller/WxEnterpriseInfoController.java
+21
-6
ContactController.java
...oban/manage/web/controller/contact/ContactController.java
+62
-0
ContactFollowPageQO.java
...gic/haoban/manage/web/qo/contact/ContactFollowPageQO.java
+47
-0
ContactFollowQO.java
...com/gic/haoban/manage/web/qo/contact/ContactFollowQO.java
+83
-0
EnterpriseUsingPermissionVO.java
...gic/haoban/manage/web/vo/EnterpriseUsingPermissionVO.java
+30
-0
dubbo-haoban-manage-wx.xml
...ge3-wx/src/main/webapp/WEB-INF/dubbo-haoban-manage-wx.xml
+2
-0
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/contact/ContactFollowDTO.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
contact
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
public
class
ContactFollowDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
973688857967269974L
;
/**
* 会员id
*/
private
String
memberId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 导购code
*/
private
String
clerkCode
;
/**
* 跟进记录
*/
private
String
followRemark
;
/**
* 跟进上传素材,数组格式
*/
private
List
<
String
>
followMaterialList
;
/**
* 关联商品信息
*/
private
List
<
ContactFollowGoodsDTO
>
goodsInfoList
;
/**
* 跟进时间
*/
private
Date
followTime
;
/**
* 企业id
*/
private
String
enterpriseId
;
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getClerkCode
()
{
return
clerkCode
;
}
public
void
setClerkCode
(
String
clerkCode
)
{
this
.
clerkCode
=
clerkCode
;
}
public
String
getFollowRemark
()
{
return
followRemark
;
}
public
void
setFollowRemark
(
String
followRemark
)
{
this
.
followRemark
=
followRemark
;
}
public
List
<
String
>
getFollowMaterialList
()
{
return
followMaterialList
;
}
public
void
setFollowMaterialList
(
List
<
String
>
followMaterialList
)
{
this
.
followMaterialList
=
followMaterialList
;
}
public
List
<
ContactFollowGoodsDTO
>
getGoodsInfoList
()
{
return
goodsInfoList
;
}
public
void
setGoodsInfoList
(
List
<
ContactFollowGoodsDTO
>
goodsInfoList
)
{
this
.
goodsInfoList
=
goodsInfoList
;
}
public
Date
getFollowTime
()
{
return
followTime
;
}
public
void
setFollowTime
(
Date
followTime
)
{
this
.
followTime
=
followTime
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
}
\ No newline at end of file
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/contact/ContactFollowGoodsDTO.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
contact
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
public
class
ContactFollowGoodsDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
973688857967269974L
;
private
String
goodsId
;
private
String
goodsCode
;
private
String
goodsName
;
private
String
mainImageUrl
;
public
String
getGoodsId
()
{
return
goodsId
;
}
public
void
setGoodsId
(
String
goodsId
)
{
this
.
goodsId
=
goodsId
;
}
public
String
getGoodsCode
()
{
return
goodsCode
;
}
public
void
setGoodsCode
(
String
goodsCode
)
{
this
.
goodsCode
=
goodsCode
;
}
public
String
getGoodsName
()
{
return
goodsName
;
}
public
void
setGoodsName
(
String
goodsName
)
{
this
.
goodsName
=
goodsName
;
}
public
String
getMainImageUrl
()
{
return
mainImageUrl
;
}
public
void
setMainImageUrl
(
String
mainImageUrl
)
{
this
.
mainImageUrl
=
mainImageUrl
;
}
}
\ No newline at end of file
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/qdto/contact/ContactFollowQDTO.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
api
.
qdto
.
contact
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
public
class
ContactFollowQDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
973688857967269974L
;
/**
* 会员id
*/
private
String
memberId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 导购code
*/
private
String
clerkCode
;
/**
* 跟进记录
*/
private
String
followRemark
;
/**
* 跟进上传素材,数组格式
*/
private
List
<
String
>
followMaterialList
;
/**
* 关联商品信息
*/
private
List
<
String
>
goodsInfoList
;
/**
* 跟进时间
*/
private
Date
followTime
;
/**
* 企业id
*/
private
String
enterpriseId
;
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getClerkCode
()
{
return
clerkCode
;
}
public
void
setClerkCode
(
String
clerkCode
)
{
this
.
clerkCode
=
clerkCode
;
}
public
String
getFollowRemark
()
{
return
followRemark
;
}
public
void
setFollowRemark
(
String
followRemark
)
{
this
.
followRemark
=
followRemark
;
}
public
List
<
String
>
getFollowMaterialList
()
{
return
followMaterialList
;
}
public
void
setFollowMaterialList
(
List
<
String
>
followMaterialList
)
{
this
.
followMaterialList
=
followMaterialList
;
}
public
List
<
String
>
getGoodsInfoList
()
{
return
goodsInfoList
;
}
public
void
setGoodsInfoList
(
List
<
String
>
goodsInfoList
)
{
this
.
goodsInfoList
=
goodsInfoList
;
}
public
Date
getFollowTime
()
{
return
followTime
;
}
public
void
setFollowTime
(
Date
followTime
)
{
this
.
followTime
=
followTime
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
}
\ No newline at end of file
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/qdto/contact/ContactFollowSearchQDTO.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
api
.
qdto
.
contact
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
public
class
ContactFollowSearchQDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
973688857967269974L
;
/**
* 会员id
*/
private
String
memberId
;
/**
* 导购id
*/
private
String
clerkId
;
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
}
\ No newline at end of file
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/qdto/contact/ContactLogQDTO.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
api
.
qdto
.
contact
;
import
java.io.Serializable
;
import
java.util.Date
;
public
class
ContactLogQDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
973688857967269973L
;
/**
* 会员id
*/
private
String
memberId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 门店id
*/
private
String
storeId
;
/**
* 企业id
*/
private
String
enterpriseId
;
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getStoreId
()
{
return
storeId
;
}
public
void
setStoreId
(
String
storeId
)
{
this
.
storeId
=
storeId
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
}
\ No newline at end of file
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/contact/ContactFollowApiService.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
api
.
service
.
contact
;
import
com.gic.api.base.commons.BasePageInfo
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.dto.contact.ContactFollowDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowSearchQDTO
;
import
java.util.List
;
import
java.util.Map
;
public
interface
ContactFollowApiService
{
/**
* 保存跟进记录
* @param qdto
*/
ServiceResponse
<
Void
>
saveFollow
(
ContactFollowQDTO
qdto
);
/**
* 批量保存跟进记录
* @param list
*/
ServiceResponse
<
Void
>
saveBatchFollow
(
List
<
ContactFollowQDTO
>
list
);
/**
* 跟进记录列表查询
* @param enterpriseId
* @param searchQDTO
* @param pageInfo
* @return
*/
ServiceResponse
<
Page
<
ContactFollowDTO
>>
pageFollow
(
String
enterpriseId
,
ContactFollowSearchQDTO
searchQDTO
,
BasePageInfo
pageInfo
);
/**
* 导购获取会员维度最新跟进记录
* @param enterpriseId
* @param clerkId
* @param memberIdList
* @return
*/
ServiceResponse
<
Map
<
String
,
ContactFollowDTO
>>
mapMemberLastFollow
(
String
enterpriseId
,
String
clerkId
,
List
<
String
>
memberIdList
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/contact/TabContactFollowMapper.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
dao
.
mapper
.
contact
;
import
com.gic.haoban.manage.api.qdto.chat.GroupChatActivitySearchQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowSearchQDTO
;
import
com.gic.haoban.manage.service.entity.contact.TabContactFollow
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 跟进日志表(TabContactFollow)表数据库访问层
*
* @author TONGYI Lingma
* @since 2024-09-27 16:09:38
*/
public
interface
TabContactFollowMapper
{
/**
* 通过ID查询单条数据
*
* @param followId 主键
* @return 实例对象
*/
TabContactFollow
queryById
(
Long
followId
);
/**
* 通过实体作为筛选条件查询
*
* @return 对象列表
*/
List
<
TabContactFollow
>
pageFollow
(
@Param
(
"enterpriseId"
)
String
enterpriseId
,
@Param
(
"search"
)
ContactFollowSearchQDTO
searchQDTO
);
/**
* 通过memberId查询最后一次跟进记录
* @param enterpriseId
* @param clerkId
* @param memberIdList
* @return
*/
List
<
TabContactFollow
>
lastFollowByMemberId
(
@Param
(
"enterpriseId"
)
String
enterpriseId
,
@Param
(
"clerkId"
)
String
clerkId
,
@Param
(
"memberIdList"
)
List
<
String
>
memberIdList
);
/**
* 通过ID列表查询多条数据
* @param followIds
* @return
*/
List
<
TabContactFollow
>
queryByIds
(
@Param
(
"followIds"
)
List
<
Long
>
followIds
);
/**
* 统计总行数
*
* @param tabContactFollow 查询条件
* @return 总行数
*/
long
count
(
TabContactFollow
tabContactFollow
);
/**
* 新增数据
*
* @param tabContactFollow 实例对象
* @return 影响行数
*/
int
insert
(
TabContactFollow
tabContactFollow
);
/**
* 批量新增数据(MyBatis原生foreach方法)
* @param tabContactFollowList
* @return
*/
int
insertBatch
(
List
<
TabContactFollow
>
tabContactFollowList
);
/**
* 修改数据
*
* @param tabContactFollow 实例对象
* @return 影响行数
*/
int
update
(
TabContactFollow
tabContactFollow
);
/**
* 通过主键删除数据
*
* @param followId 主键
* @return 影响行数
*/
int
deleteById
(
@Param
(
"followId"
)
Long
followId
);
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/contact/TabContactLogMapper.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
dao
.
mapper
.
contact
;
import
com.gic.haoban.manage.service.entity.contact.TabContactLog
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 建联日志表(TabContactLog)表数据库访问层
*
* @author TONGYI Lingma
* @since 2024-09-27 16:09:38
*/
public
interface
TabContactLogMapper
{
/**
* 通过ID查询单条数据
*
* @param logId 主键
* @return 实例对象
*/
TabContactLog
queryById
(
Long
logId
);
/**
* 通过ID列表查询多条数据
* @param logIds
* @return
*/
List
<
TabContactLog
>
queryByIds
(
@Param
(
"logIds"
)
List
<
Long
>
logIds
);
/**
* 查询最后一次建联记录
* @param memberId
* @param clerkId
* @return
*/
TabContactLog
queryLastLog
(
@Param
(
"memberId"
)
String
memberId
,
@Param
(
"clerkId"
)
String
clerkId
);
/**
* 统计总行数
*
* @param tabContactLog 查询条件
* @return 总行数
*/
long
count
(
TabContactLog
tabContactLog
);
/**
* 新增数据
*
* @param tabContactLog 实例对象
* @return 影响行数
*/
int
insert
(
TabContactLog
tabContactLog
);
/**
* 修改数据
*
* @param tabContactLog 实例对象
* @return 影响行数
*/
int
update
(
TabContactLog
tabContactLog
);
/**
* 通过主键删除数据
*
* @param logId 主键
* @return 影响行数
*/
int
deleteById
(
@Param
(
"logId"
)
Long
logId
);
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/contact/TabContactOrderMapper.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
dao
.
mapper
.
contact
;
import
com.gic.haoban.manage.service.entity.contact.TabContactOrder
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 建联转化订单(TabContactOrder)表数据库访问层
*
* @author TONGYI Lingma
* @since 2024-09-27 16:09:38
*/
public
interface
TabContactOrderMapper
{
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TabContactOrder
queryById
(
Long
id
);
/**
* 通过ID列表查询多条数据
* @param ids
* @return
*/
List
<
TabContactOrder
>
queryByIds
(
@Param
(
"ids"
)
List
<
Long
>
ids
);
/**
* 统计总行数
*
* @param tabContactOrder 查询条件
* @return 总行数
*/
long
count
(
TabContactOrder
tabContactOrder
);
/**
* 新增数据
*
* @param tabContactOrder 实例对象
* @return 影响行数
*/
int
insert
(
TabContactOrder
tabContactOrder
);
/**
* 修改数据
*
* @param tabContactOrder 实例对象
* @return 影响行数
*/
int
update
(
TabContactOrder
tabContactOrder
);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int
deleteById
(
@Param
(
"id"
)
Long
id
);
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/content/TabHaobanInteractRecordMapper.java
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
dao
.
mapper
.
content
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanInteractRecord
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanPotentialCustomer
;
import
com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerStaticsBO
;
import
com.gic.haoban.manage.service.pojo.bo.potential.MemberLastInteractBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.data.domain.Pageable
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -106,6 +106,21 @@ public interface TabHaobanInteractRecordMapper {
List
<
PotentialCustomerStaticsBO
>
staticsClerkInteractRecordNew
(
InteractRecordQO
interactRecordQO
);
/**
* 查询会员最新互动记录
* @param clerkId
* @param list
* @return
*/
List
<
TabHaobanInteractRecord
>
selectLastByMemberIds
(
@Param
(
"clerkId"
)
String
clerkId
,
@Param
(
"list"
)
List
<
MemberLastInteractBO
>
list
);
/**
* 根据时间查询会员最新互动列表
* @param clerkId
* @param lastAccessTime
* @return
*/
List
<
MemberLastInteractBO
>
selectMemberIdsByTime
(
@Param
(
"clerkId"
)
String
clerkId
,
@Param
(
"lastAccessTime"
)
Date
lastAccessTime
);
/**
* 会员合并
* @param mergeMemberId
* @param memberId
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/contact/TabContactFollow.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
entity
.
contact
;
import
java.util.Date
;
import
java.io.Serializable
;
/**
* 跟进日志表(TabContactFollow)实体类
*
* @author TONGYI Lingma
* @since 2024-09-27 16:09:38
*/
public
class
TabContactFollow
implements
Serializable
{
private
static
final
long
serialVersionUID
=
973688857967269974L
;
/**
* 主键id
*/
private
Long
followId
;
/**
* 会员id
*/
private
String
memberId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 导购code
*/
private
String
clerkCode
;
/**
* 跟进记录
*/
private
String
followRemark
;
/**
* 跟进上传素材,数组格式
*/
private
String
followMaterial
;
/**
* 关联商品信息
*/
private
String
goodsInfo
;
/**
* 跟进时间
*/
private
Date
followTime
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 是否删除
*/
private
Integer
deleteFlag
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
updateTime
;
public
Long
getFollowId
()
{
return
followId
;
}
public
void
setFollowId
(
Long
followId
)
{
this
.
followId
=
followId
;
}
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getClerkCode
()
{
return
clerkCode
;
}
public
void
setClerkCode
(
String
clerkCode
)
{
this
.
clerkCode
=
clerkCode
;
}
public
String
getFollowRemark
()
{
return
followRemark
;
}
public
void
setFollowRemark
(
String
followRemark
)
{
this
.
followRemark
=
followRemark
;
}
public
String
getFollowMaterial
()
{
return
followMaterial
;
}
public
void
setFollowMaterial
(
String
followMaterial
)
{
this
.
followMaterial
=
followMaterial
;
}
public
String
getGoodsInfo
()
{
return
goodsInfo
;
}
public
void
setGoodsInfo
(
String
goodsInfo
)
{
this
.
goodsInfo
=
goodsInfo
;
}
public
Date
getFollowTime
()
{
return
followTime
;
}
public
void
setFollowTime
(
Date
followTime
)
{
this
.
followTime
=
followTime
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
Integer
getDeleteFlag
()
{
return
deleteFlag
;
}
public
void
setDeleteFlag
(
Integer
deleteFlag
)
{
this
.
deleteFlag
=
deleteFlag
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/contact/TabContactLog.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
entity
.
contact
;
import
java.util.Date
;
import
java.io.Serializable
;
/**
* 建联日志表(TabContactLog)实体类
*
* @author TONGYI Lingma
* @since 2024-09-27 16:09:38
*/
public
class
TabContactLog
implements
Serializable
{
private
static
final
long
serialVersionUID
=
973688857967269973L
;
/**
* 主键id
*/
private
Long
logId
;
/**
* 会员id
*/
private
String
memberId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 导购code
*/
private
String
clerkCode
;
/**
* 导购名称
*/
private
String
clerkName
;
/**
* 门店id
*/
private
String
storeId
;
/**
* 门店code
*/
private
String
storeCode
;
/**
* 建联状态 1是0否
*/
private
Integer
contactStatus
;
/**
* 建联时间
*/
private
Date
contactTime
;
/**
* 建联周期
*/
private
Integer
contactCycle
;
/**
* 是否周期内首次建联1是0否
*/
private
Integer
contactCycleFirst
;
/**
* 成为潜客时间
*/
private
Date
potentialTime
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 是否删除
*/
private
Integer
deleteFlag
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
updateTime
;
public
Long
getLogId
()
{
return
logId
;
}
public
void
setLogId
(
Long
logId
)
{
this
.
logId
=
logId
;
}
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getClerkCode
()
{
return
clerkCode
;
}
public
void
setClerkCode
(
String
clerkCode
)
{
this
.
clerkCode
=
clerkCode
;
}
public
String
getClerkName
()
{
return
clerkName
;
}
public
void
setClerkName
(
String
clerkName
)
{
this
.
clerkName
=
clerkName
;
}
public
String
getStoreId
()
{
return
storeId
;
}
public
void
setStoreId
(
String
storeId
)
{
this
.
storeId
=
storeId
;
}
public
String
getStoreCode
()
{
return
storeCode
;
}
public
void
setStoreCode
(
String
storeCode
)
{
this
.
storeCode
=
storeCode
;
}
public
Integer
getContactStatus
()
{
return
contactStatus
;
}
public
void
setContactStatus
(
Integer
contactStatus
)
{
this
.
contactStatus
=
contactStatus
;
}
public
Date
getContactTime
()
{
return
contactTime
;
}
public
void
setContactTime
(
Date
contactTime
)
{
this
.
contactTime
=
contactTime
;
}
public
Integer
getContactCycle
()
{
return
contactCycle
;
}
public
void
setContactCycle
(
Integer
contactCycle
)
{
this
.
contactCycle
=
contactCycle
;
}
public
Integer
getContactCycleFirst
()
{
return
contactCycleFirst
;
}
public
void
setContactCycleFirst
(
Integer
contactCycleFirst
)
{
this
.
contactCycleFirst
=
contactCycleFirst
;
}
public
Date
getPotentialTime
()
{
return
potentialTime
;
}
public
void
setPotentialTime
(
Date
potentialTime
)
{
this
.
potentialTime
=
potentialTime
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
Integer
getDeleteFlag
()
{
return
deleteFlag
;
}
public
void
setDeleteFlag
(
Integer
deleteFlag
)
{
this
.
deleteFlag
=
deleteFlag
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/contact/TabContactOrder.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
entity
.
contact
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.io.Serializable
;
/**
* 建联转化订单(TabContactOrder)实体类
*
* @author TONGYI Lingma
* @since 2024-09-27 16:09:38
*/
public
class
TabContactOrder
implements
Serializable
{
private
static
final
long
serialVersionUID
=
973688857967269975L
;
/**
* 主键
*/
private
Long
id
;
/**
* 订单id
*/
private
String
orderId
;
/**
* 会员id
*/
private
String
memberId
;
/**
* 订单编号
*/
private
String
orderNumber
;
/**
* 实付金额
*/
private
BigDecimal
paidAmount
;
/**
* 商品数量
*/
private
Integer
productCount
;
/**
* 关联商品信息
*/
private
String
goodsInfo
;
/**
* 付款时间
*/
private
Date
payTime
;
/**
* 单据时间
*/
private
Date
receiptsDate
;
/**
* 业务渠道
*/
private
String
channelCode
;
/**
* 1 线上; 2 线下
*/
private
Integer
channelType
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 导购code
*/
private
String
clerkCode
;
/**
* 门店id
*/
private
String
storeId
;
/**
* 建联id
*/
private
Long
contactLogId
;
/**
* 建联时间
*/
private
Date
contactTime
;
/**
* 成为潜客时间
*/
private
Date
potentialTime
;
/**
* 是否删除
*/
private
Integer
deleteFlag
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
updateTime
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getOrderId
()
{
return
orderId
;
}
public
void
setOrderId
(
String
orderId
)
{
this
.
orderId
=
orderId
;
}
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getOrderNumber
()
{
return
orderNumber
;
}
public
void
setOrderNumber
(
String
orderNumber
)
{
this
.
orderNumber
=
orderNumber
;
}
public
BigDecimal
getPaidAmount
()
{
return
paidAmount
;
}
public
void
setPaidAmount
(
BigDecimal
paidAmount
)
{
this
.
paidAmount
=
paidAmount
;
}
public
Integer
getProductCount
()
{
return
productCount
;
}
public
void
setProductCount
(
Integer
productCount
)
{
this
.
productCount
=
productCount
;
}
public
String
getGoodsInfo
()
{
return
goodsInfo
;
}
public
void
setGoodsInfo
(
String
goodsInfo
)
{
this
.
goodsInfo
=
goodsInfo
;
}
public
Date
getPayTime
()
{
return
payTime
;
}
public
void
setPayTime
(
Date
payTime
)
{
this
.
payTime
=
payTime
;
}
public
Date
getReceiptsDate
()
{
return
receiptsDate
;
}
public
void
setReceiptsDate
(
Date
receiptsDate
)
{
this
.
receiptsDate
=
receiptsDate
;
}
public
String
getChannelCode
()
{
return
channelCode
;
}
public
void
setChannelCode
(
String
channelCode
)
{
this
.
channelCode
=
channelCode
;
}
public
Integer
getChannelType
()
{
return
channelType
;
}
public
void
setChannelType
(
Integer
channelType
)
{
this
.
channelType
=
channelType
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getClerkCode
()
{
return
clerkCode
;
}
public
void
setClerkCode
(
String
clerkCode
)
{
this
.
clerkCode
=
clerkCode
;
}
public
String
getStoreId
()
{
return
storeId
;
}
public
void
setStoreId
(
String
storeId
)
{
this
.
storeId
=
storeId
;
}
public
Long
getContactLogId
()
{
return
contactLogId
;
}
public
void
setContactLogId
(
Long
contactLogId
)
{
this
.
contactLogId
=
contactLogId
;
}
public
Date
getContactTime
()
{
return
contactTime
;
}
public
void
setContactTime
(
Date
contactTime
)
{
this
.
contactTime
=
contactTime
;
}
public
Date
getPotentialTime
()
{
return
potentialTime
;
}
public
void
setPotentialTime
(
Date
potentialTime
)
{
this
.
potentialTime
=
potentialTime
;
}
public
Integer
getDeleteFlag
()
{
return
deleteFlag
;
}
public
void
setDeleteFlag
(
Integer
deleteFlag
)
{
this
.
deleteFlag
=
deleteFlag
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/potential/MemberLastInteractBO.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
.
potential
;
import
java.util.Date
;
/**
* Created by wangzubo on 2025/3/15.
*/
public
class
MemberLastInteractBO
{
/**
* 会员id
*/
private
String
memberId
;
/**
* 最新访问时间
*/
private
Date
lastAccessTime
;
// Getters and Setters
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
Date
getLastAccessTime
()
{
return
lastAccessTime
;
}
public
void
setLastAccessTime
(
Date
lastAccessTime
)
{
this
.
lastAccessTime
=
lastAccessTime
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/contact/ContactFollowService.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
contact
;
import
com.gic.api.base.commons.BasePageInfo
;
import
com.gic.api.base.commons.Page
;
import
com.gic.haoban.manage.api.dto.contact.ContactFollowDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowSearchQDTO
;
import
java.util.List
;
import
java.util.Map
;
public
interface
ContactFollowService
{
/**
* 保存跟进记录
* @param qdto
*/
void
saveFollow
(
ContactFollowQDTO
qdto
);
/**
* 批量保存跟进记录
* @param list
*/
void
saveBatchFollow
(
List
<
ContactFollowQDTO
>
list
);
/**
* 跟进记录列表查询
* @param enterpriseId
* @param searchQDTO
* @param pageInfo
* @return
*/
Page
<
ContactFollowDTO
>
pageFollow
(
String
enterpriseId
,
ContactFollowSearchQDTO
searchQDTO
,
BasePageInfo
pageInfo
);
/**
* 导购获取会员维度最新跟进记录
* @param enterpriseId
* @param clerkId
* @param memberIdList
* @return
*/
Map
<
String
,
ContactFollowDTO
>
mapMemberLastFollow
(
String
enterpriseId
,
String
clerkId
,
List
<
String
>
memberIdList
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/contact/ContactLogService.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
contact
;
import
com.gic.haoban.manage.api.qdto.contact.ContactLogQDTO
;
public
interface
ContactLogService
{
/**
* 保存建联记录
* @param qdto
*/
void
saveContactLog
(
ContactLogQDTO
qdto
);
/**
* 清除建联状态
* @param memberId
* @param clearType 1 消费清除 2 换绑主导购
*/
void
clearContactLog
(
String
memberId
,
Integer
clearType
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/contact/impl/ContactFollowServiceImpl.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
contact
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.gic.api.base.commons.BasePageInfo
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.clerk.api.dto.ClerkDTO
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.commons.util.PageHelperUtils
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.haoban.manage.api.dto.contact.ContactFollowDTO
;
import
com.gic.haoban.manage.api.dto.contact.ContactFollowGoodsDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowSearchQDTO
;
import
com.gic.haoban.manage.service.dao.mapper.contact.TabContactFollowMapper
;
import
com.gic.haoban.manage.service.entity.contact.TabContactFollow
;
import
com.gic.haoban.manage.service.service.contact.ContactFollowService
;
import
com.gic.store.goods.service.StoreGoodsService
;
import
com.gic.store.goods.vo.StoreGoodsVO
;
import
com.github.pagehelper.PageHelper
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@Service
(
"contactFollowService"
)
public
class
ContactFollowServiceImpl
implements
ContactFollowService
{
private
static
final
Logger
logger
=
LogManager
.
getLogger
(
ContactFollowService
.
class
);
@Autowired
private
TabContactFollowMapper
contactFollowMapper
;
@Autowired
private
StoreGoodsService
storeGoodsService
;
@Autowired
private
ClerkService
clerkService
;
@Override
public
void
saveFollow
(
ContactFollowQDTO
qdto
)
{
saveBatchFollow
(
Lists
.
newArrayList
(
qdto
));
}
@Override
public
void
saveBatchFollow
(
List
<
ContactFollowQDTO
>
list
)
{
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
;
}
Set
<
String
>
clerkSet
=
list
.
stream
().
map
(
ContactFollowQDTO:
:
getClerkId
).
collect
(
Collectors
.
toSet
());
List
<
ClerkDTO
>
clerks
=
clerkService
.
getClerkByClerkIds
(
clerkSet
);
if
(
CollectionUtils
.
isEmpty
(
clerks
))
{
return
;
}
Map
<
String
,
ClerkDTO
>
clerkMap
=
clerks
.
stream
().
collect
(
Collectors
.
toMap
(
ClerkDTO:
:
getClerkId
,
Function
.
identity
(),
(
v1
,
v2
)
->
v1
));
List
<
TabContactFollow
>
followList
=
list
.
stream
().
map
(
follow
->
{
TabContactFollow
contactFollow
=
EntityUtil
.
changeEntityNew
(
TabContactFollow
.
class
,
follow
);
ClerkDTO
clerkDTO
=
clerkMap
.
get
(
follow
.
getClerkId
());
if
(
clerkDTO
==
null
)
{
return
null
;
}
contactFollow
.
setClerkCode
(
clerkDTO
.
getClerkCode
());
contactFollow
.
setFollowId
(
UniqueIdUtils
.
uniqueLong
());
if
(
CollectionUtils
.
isNotEmpty
(
follow
.
getFollowMaterialList
()))
{
contactFollow
.
setFollowMaterial
(
JSON
.
toJSONString
(
follow
.
getFollowMaterialList
()));
}
if
(
CollectionUtils
.
isNotEmpty
(
follow
.
getGoodsInfoList
()))
{
contactFollow
.
setGoodsInfo
(
JSON
.
toJSONString
(
follow
.
getGoodsInfoList
()));
}
return
contactFollow
;
}).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
contactFollowMapper
.
insertBatch
(
followList
);
}
@Override
public
Page
<
ContactFollowDTO
>
pageFollow
(
String
enterpriseId
,
ContactFollowSearchQDTO
searchQDTO
,
BasePageInfo
pageInfo
)
{
PageHelper
.
startPage
(
pageInfo
);
List
<
TabContactFollow
>
list
=
contactFollowMapper
.
pageFollow
(
enterpriseId
,
searchQDTO
);
Page
<
ContactFollowDTO
>
page
=
PageHelperUtils
.
changePageHelperToCurrentPage
(
list
,
ContactFollowDTO
.
class
);
List
<
ContactFollowDTO
>
pageList
=
convertExtInfo
(
list
);
page
.
setResult
(
pageList
);
return
page
;
}
@Override
public
Map
<
String
,
ContactFollowDTO
>
mapMemberLastFollow
(
String
enterpriseId
,
String
clerkId
,
List
<
String
>
memberIdList
)
{
List
<
TabContactFollow
>
list
=
contactFollowMapper
.
lastFollowByMemberId
(
enterpriseId
,
clerkId
,
memberIdList
);
List
<
ContactFollowDTO
>
followDTOList
=
convertExtInfo
(
list
);
Map
<
String
,
ContactFollowDTO
>
map
=
followDTOList
.
stream
().
collect
(
Collectors
.
toMap
(
ContactFollowDTO:
:
getMemberId
,
v
->
v
,
(
v1
,
v2
)
->
v1
));
return
map
;
}
private
List
<
ContactFollowDTO
>
convertExtInfo
(
List
<
TabContactFollow
>
list
)
{
Map
<
String
,
StoreGoodsVO
>
goodsMap
=
new
HashMap
<>();
Set
<
String
>
goodsIdSet
=
list
.
stream
().
map
(
TabContactFollow:
:
getGoodsInfo
).
filter
(
StringUtils:
:
isNotBlank
)
.
flatMap
(
x
->
JSONArray
.
parseArray
(
x
,
String
.
class
).
stream
()).
collect
(
Collectors
.
toSet
());
// 组装商品信息
if
(
CollectionUtils
.
isNotEmpty
(
goodsIdSet
))
{
ServiceResponse
<
List
<
StoreGoodsVO
>>
response
=
storeGoodsService
.
listByGoodsIds
(
Lists
.
newArrayList
(
goodsIdSet
));
if
(
response
.
isSuccess
()
&&
CollectionUtils
.
isNotEmpty
(
response
.
getResult
()))
{
goodsMap
=
response
.
getResult
().
stream
().
collect
(
Collectors
.
toMap
(
StoreGoodsVO:
:
getGoodsId
,
Function
.
identity
(),
(
v1
,
v2
)
->
v1
));
}
}
Map
<
String
,
StoreGoodsVO
>
finalGoodsMap
=
goodsMap
;
List
<
ContactFollowDTO
>
pageList
=
list
.
stream
().
map
(
follow
->
{
ContactFollowDTO
contactFollowDTO
=
EntityUtil
.
changeEntityNew
(
ContactFollowDTO
.
class
,
follow
);
String
followMaterial
=
follow
.
getFollowMaterial
();
if
(
StringUtils
.
isNotBlank
(
followMaterial
))
{
contactFollowDTO
.
setFollowMaterialList
(
JSONArray
.
parseArray
(
followMaterial
,
String
.
class
));
}
String
goodsInfo
=
follow
.
getGoodsInfo
();
if
(
StringUtils
.
isNotBlank
(
goodsInfo
))
{
List
<
String
>
goodsIdList
=
JSONArray
.
parseArray
(
goodsInfo
,
String
.
class
);
List
<
ContactFollowGoodsDTO
>
goodsInfoList
=
goodsIdList
.
stream
().
map
(
goodsId
->
{
StoreGoodsVO
storeGoodsVO
=
finalGoodsMap
.
get
(
goodsId
);
if
(
storeGoodsVO
==
null
)
{
return
null
;
}
return
EntityUtil
.
changeEntityNew
(
ContactFollowGoodsDTO
.
class
,
storeGoodsVO
);
}).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
contactFollowDTO
.
setGoodsInfoList
(
goodsInfoList
);
}
return
contactFollowDTO
;
}).
collect
(
Collectors
.
toList
());
return
pageList
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/contact/impl/ContactLogServiceImpl.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
contact
.
impl
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.Constant
;
import
com.gic.clerk.api.dto.ClerkDTO
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.enterprise.api.dto.StoreDTO
;
import
com.gic.enterprise.api.service.StoreService
;
import
com.gic.haoban.manage.api.qdto.contact.ContactLogQDTO
;
import
com.gic.haoban.manage.service.dao.mapper.contact.TabContactFollowMapper
;
import
com.gic.haoban.manage.service.dao.mapper.contact.TabContactLogMapper
;
import
com.gic.haoban.manage.service.entity.contact.TabContactLog
;
import
com.gic.haoban.manage.service.service.contact.ContactFollowService
;
import
com.gic.haoban.manage.service.service.contact.ContactLogService
;
import
com.gic.store.goods.service.StoreGoodsService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.Objects
;
@Service
(
"contactLogService"
)
public
class
ContactLogServiceImpl
implements
ContactLogService
{
private
static
final
Logger
logger
=
LogManager
.
getLogger
(
ContactFollowService
.
class
);
@Autowired
private
TabContactLogMapper
contactLogMapper
;
@Autowired
private
StoreGoodsService
storeGoodsService
;
@Autowired
private
ClerkService
clerkService
;
@Autowired
private
StoreService
storeService
;
@Override
public
void
saveContactLog
(
ContactLogQDTO
qdto
)
{
logger
.
info
(
"保存建联记录:{}"
,
JSON
.
toJSONString
(
qdto
));
String
enterpriseId
=
qdto
.
getEnterpriseId
();
String
storeId
=
qdto
.
getStoreId
();
String
clerkId
=
qdto
.
getClerkId
();
String
memberId
=
qdto
.
getMemberId
();
DateTime
date
=
DateUtil
.
date
();
// 是否周期内首次建联 同周期内是否有记录
Integer
contactCycle
=
1
;
// 建联周期 14天内同周期/14天以上周期+1
Integer
contactCycleFirst
=
Constant
.
FLAG_TRUE
;
TabContactLog
lastContactLog
=
contactLogMapper
.
queryLastLog
(
memberId
,
clerkId
);
if
(
lastContactLog
!=
null
)
{
Date
contactTime
=
lastContactLog
.
getContactTime
();
if
(
DateUtil
.
between
(
date
,
contactTime
,
DateUnit
.
SECOND
)
>
14
*
24
*
60
*
60
)
{
contactCycle
=
lastContactLog
.
getContactCycle
()
+
1
;
}
else
{
contactCycle
=
lastContactLog
.
getContactCycle
();
contactCycleFirst
=
Constant
.
FLAG_FALSE
;
}
}
logger
.
info
(
"建联周期:{},是否周期内首次:{}"
,
contactCycle
,
contactCycleFirst
);
TabContactLog
contactLog
=
new
TabContactLog
();
ClerkDTO
clerkDTO
=
clerkService
.
getClerkByClerkId
(
clerkId
);
contactLog
.
setClerkId
(
clerkId
);
contactLog
.
setStoreId
(
storeId
);
if
(
clerkDTO
!=
null
)
{
contactLog
.
setClerkCode
(
clerkDTO
.
getClerkCode
());
contactLog
.
setClerkName
(
clerkDTO
.
getClerkName
());
}
if
(
StringUtils
.
isNotBlank
(
storeId
))
{
StoreDTO
store
=
storeService
.
getStore
(
storeId
);
if
(
store
!=
null
)
{
contactLog
.
setStoreCode
(
store
.
getStoreCode
());
}
}
contactLog
.
setLogId
(
UniqueIdUtils
.
uniqueLong
());
contactLog
.
setMemberId
(
memberId
);
contactLog
.
setContactStatus
(
Constant
.
FLAG_TRUE
);
contactLog
.
setContactTime
(
date
);
contactLog
.
setContactCycle
(
contactCycle
);
contactLog
.
setContactCycleFirst
(
contactCycleFirst
);
// todo 建联时间
contactLog
.
setPotentialTime
(
null
);
contactLog
.
setEnterpriseId
(
enterpriseId
);
contactLogMapper
.
insert
(
contactLog
);
// todo 刷新es建联时间
}
@Override
public
void
clearContactLog
(
String
memberId
,
Integer
clearType
)
{
logger
.
info
(
"清除建联状态:{},clearType:{}"
,
memberId
,
clearType
);
TabContactLog
lastContactLog
=
contactLogMapper
.
queryLastLog
(
memberId
,
null
);
if
(
lastContactLog
==
null
)
{
return
;
}
// clearType 1 消费清除 2 换绑主导购(不清除表建联状态)
if
(
Objects
.
equals
(
clearType
,
1
))
{
TabContactLog
update
=
new
TabContactLog
();
update
.
setLogId
(
lastContactLog
.
getLogId
());
update
.
setContactStatus
(
Constant
.
FLAG_FALSE
);
contactLogMapper
.
update
(
update
);
}
// todo 清除es建联时间 -1
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/InteractRecordService.java
View file @
c41067f3
...
...
@@ -3,9 +3,13 @@ package com.gic.haoban.manage.service.service.content;
import
com.gic.api.base.commons.Page
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerStaticsBO
;
import
com.gic.haoban.manage.service.pojo.bo.potential.MemberLastInteractBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* 互动记录明细(TabHaobanInteractRecord)表服务接口
...
...
@@ -74,4 +78,21 @@ public interface InteractRecordService {
*/
InteractRecordBO
queryLeastRecord
(
String
enterpriseId
,
String
clerkId
,
String
bizId
,
String
memberId
);
/**
* 查询会员对应时间后最新的互动记录
* @param enterpriseId
* @param clerkId
* @param list
* @return
*/
Map
<
String
,
InteractRecordBO
>
mapInteractRecord
(
String
enterpriseId
,
String
clerkId
,
List
<
MemberLastInteractBO
>
list
);
/**
* 查询对应时间后会员最新的互动记录
* @param clerkId
* @param lastAccessTime
* @return
*/
List
<
MemberLastInteractBO
>
queryMemberIdsByTime
(
String
clerkId
,
Date
lastAccessTime
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/impl/InteractRecordServiceImpl.java
View file @
c41067f3
...
...
@@ -10,6 +10,7 @@ import com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordExtendInfoBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.PotentialCustomerStaticsBO
;
import
com.gic.haoban.manage.service.pojo.bo.potential.MemberLastInteractBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.InteractRecordQO
;
import
com.gic.haoban.manage.service.service.content.InteractRecordService
;
import
com.gic.haoban.manage.service.service.content.PotentialCustomerService
;
...
...
@@ -23,11 +24,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -262,4 +260,31 @@ public class InteractRecordServiceImpl implements InteractRecordService {
}
return
interactRecordBO
;
}
@Override
public
Map
<
String
,
InteractRecordBO
>
mapInteractRecord
(
String
enterpriseId
,
String
clerkId
,
List
<
MemberLastInteractBO
>
list
)
{
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
new
HashMap
<>();
}
List
<
TabHaobanInteractRecord
>
records
=
tabHaobanInteractRecordMapper
.
selectLastByMemberIds
(
clerkId
,
list
);
List
<
InteractRecordBO
>
recordBOList
=
records
.
stream
()
.
map
(
item
->
{
InteractRecordBO
temp
=
new
InteractRecordBO
();
BeanUtils
.
copyProperties
(
item
,
temp
);
temp
.
setRecordDesc
(
interactRecordBuilder
.
buildDesc
(
item
));
temp
.
setExtendInfo
(
interactRecordBuilder
.
convertExtendInfo
(
item
));
interactRecordBuilder
.
warpRelationGoodsNum
(
temp
);
return
temp
;
})
.
collect
(
Collectors
.
toList
());
Map
<
String
,
InteractRecordBO
>
map
=
recordBOList
.
stream
()
.
collect
(
Collectors
.
toMap
(
InteractRecordBO:
:
getMemberId
,
Function
.
identity
(),
(
e
,
x
)
->
e
));
return
map
;
}
@Override
public
List
<
MemberLastInteractBO
>
queryMemberIdsByTime
(
String
clerkId
,
Date
lastAccessTime
)
{
return
tabHaobanInteractRecordMapper
.
selectMemberIdsByTime
(
clerkId
,
lastAccessTime
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/contact/ContactFollowApiServiceImpl.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
out
.
impl
.
contact
;
import
com.gic.api.base.commons.BasePageInfo
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.dto.contact.ContactFollowDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowSearchQDTO
;
import
com.gic.haoban.manage.api.service.contact.ContactFollowApiService
;
import
com.gic.haoban.manage.service.service.contact.ContactFollowService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
/**
* Created by wangzubo on 2022/11/1.
*/
@Service
(
"contactFollowApiService"
)
public
class
ContactFollowApiServiceImpl
implements
ContactFollowApiService
{
@Autowired
private
ContactFollowService
contactFollowService
;
@Override
public
ServiceResponse
<
Void
>
saveFollow
(
ContactFollowQDTO
qdto
)
{
contactFollowService
.
saveFollow
(
qdto
);
return
ServiceResponse
.
success
();
}
@Override
public
ServiceResponse
<
Void
>
saveBatchFollow
(
List
<
ContactFollowQDTO
>
list
)
{
contactFollowService
.
saveBatchFollow
(
list
);
return
ServiceResponse
.
success
();
}
@Override
public
ServiceResponse
<
Page
<
ContactFollowDTO
>>
pageFollow
(
String
enterpriseId
,
ContactFollowSearchQDTO
searchQDTO
,
BasePageInfo
pageInfo
)
{
Page
<
ContactFollowDTO
>
page
=
contactFollowService
.
pageFollow
(
enterpriseId
,
searchQDTO
,
pageInfo
);
return
ServiceResponse
.
success
(
page
);
}
@Override
public
ServiceResponse
<
Map
<
String
,
ContactFollowDTO
>>
mapMemberLastFollow
(
String
enterpriseId
,
String
clerkId
,
List
<
String
>
memberIdList
)
{
Map
<
String
,
ContactFollowDTO
>
map
=
contactFollowService
.
mapMemberLastFollow
(
enterpriseId
,
clerkId
,
memberIdList
);
return
ServiceResponse
.
success
(
map
);
}
}
haoban-manage3-service/src/main/resources/dubbo-haoban-manage-service.xml
View file @
c41067f3
...
...
@@ -143,6 +143,7 @@
<dubbo:reference
interface=
"com.gic.enterprise.api.service.EnterpriseUseForbidService"
id=
"enterpriseUseForbidService"
/>
<dubbo:service
interface=
"com.gic.haoban.manage.api.service.role.HaobanMenuApiService"
ref=
"haobanMenuApiServiceImpl"
/>
<dubbo:service
interface=
"com.gic.haoban.manage.api.service.role.HaobanRoleApiService"
ref=
"haobanRoleApiServiceImpl"
/>
<dubbo:service
interface=
"com.gic.haoban.manage.api.service.contact.ContactFollowApiService"
ref=
"contactFollowApiService"
/>
<dubbo:reference
interface=
"com.gic.enterprise.api.service.DepartmentService"
id=
"gicDepartmentService"
/>
<dubbo:reference
interface=
"com.gic.wechat.api.service.qywx.QywxDepartmentApiService"
...
...
@@ -230,6 +231,7 @@
<dubbo:reference
interface=
"com.gic.haoban.task.manage.api.service.OpenQwApiService"
id=
"openQwApiService"
/>
<dubbo:reference
interface=
"com.gic.store.goods.service.GoodsInfoOutApiService"
id=
"goodsInfoOutApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.store.goods.service.GoodsCenterApiService"
id=
"goodsCenterApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.store.goods.service.StoreGoodsService"
id=
"storeGoodsService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.business.order.service.ordermanage.OrderInfoOutApiService"
id=
"orderInfoOutApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.orderecommerce.api.service.EcommerceOrderOutputApiService"
id=
"ecommerceOrderOutputApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.order.api.service.sharding.OrderApiService"
id=
"orderApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
...
...
haoban-manage3-service/src/main/resources/mapper/contact/TabContactFollowMapper.xml
0 → 100644
View file @
c41067f3
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.gic.haoban.manage.service.dao.mapper.contact.TabContactFollowMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.gic.haoban.manage.service.entity.contact.TabContactFollow"
>
<id
column=
"follow_id"
property=
"followId"
/>
<result
column=
"member_id"
property=
"memberId"
/>
<result
column=
"clerk_id"
property=
"clerkId"
/>
<result
column=
"clerk_code"
property=
"clerkCode"
/>
<result
column=
"follow_remark"
property=
"followRemark"
/>
<result
column=
"follow_material"
property=
"followMaterial"
/>
<result
column=
"goods_info"
property=
"goodsInfo"
/>
<result
column=
"follow_time"
property=
"followTime"
/>
<result
column=
"enterprise_id"
property=
"enterpriseId"
/>
<result
column=
"delete_flag"
property=
"deleteFlag"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
follow_id, member_id, clerk_id, clerk_code, follow_remark, follow_material, goods_info, follow_time, enterprise_id, delete_flag, create_time, update_time
</sql>
<sql
id=
"Alias_Base_Column_List"
>
t.follow_id, t.member_id, t.clerk_id, t.clerk_code, t.follow_remark, t.follow_material, t.goods_info, t.follow_time, t.enterprise_id, t.delete_flag, t.create_time, t.update_time
</sql>
<select
id=
"queryById"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM tab_contact_follow
WHERE follow_id = #{followId}
</select>
<select
id=
"queryByIds"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM tab_contact_follow
WHERE follow_id IN
<foreach
item=
"item"
index=
"index"
collection=
"followIds"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</select>
<select
id=
"count"
resultType=
"long"
>
SELECT COUNT(*)
FROM tab_contact_follow
<where>
<if
test=
"memberId != null"
>
AND member_id = #{memberId}
</if>
<if
test=
"clerkId != null"
>
AND clerk_id = #{clerkId}
</if>
<if
test=
"enterpriseId != null"
>
AND enterprise_id = #{enterpriseId}
</if>
</where>
</select>
<select
id=
"pageFollow"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM tab_contact_follow
<where>
enterprise_id = #{enterpriseId} and delete_flag = 0
<if
test=
"search.clerkId != null and search.clerkId != ''"
>
AND clerk_id = #{search.clerkId}
</if>
<if
test=
"search.memberId != null and search.memberId != ''"
>
AND member_id = #{search.memberId}
</if>
</where>
ORDER BY follow_time DESC,follow_id DESC
</select>
<select
id=
"lastFollowByMemberId"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Alias_Base_Column_List"
/>
FROM
tab_contact_follow t
INNER JOIN ( SELECT clerk_id, member_id, MAX( follow_time ) AS max_follow_time FROM tab_contact_follow WHERE
enterprise_id = #{enterpriseId}
and delete_flag = 0
and clerk_id = #{clerkId}
and member_id IN
<foreach
item=
"item"
index=
"index"
collection=
"memberIdList"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
GROUP BY clerk_id, member_id )
latest ON t.clerk_id = latest.clerk_id
AND t.member_id = latest.member_id
AND t.follow_time = latest.max_follow_time
where t.enterprise_id = #{enterpriseId}
and t.delete_flag = 0
and t.clerk_id = #{clerkId}
and t.member_id IN
<foreach
item=
"item"
index=
"index"
collection=
"memberIdList"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
order by t.follow_time DESC,t.follow_id DESC
</select>
<insert
id=
"insert"
useGeneratedKeys=
"true"
keyProperty=
"followId"
>
INSERT INTO tab_contact_follow (member_id, clerk_id, clerk_code, follow_remark, follow_material, goods_info, follow_time, enterprise_id, delete_flag, create_time, update_time)
VALUES (#{memberId}, #{clerkId}, #{clerkCode}, #{followRemark}, #{followMaterial}, #{goodsInfo}, #{followTime}, #{enterpriseId}, #{deleteFlag}, #{createTime}, #{updateTime})
</insert>
<insert
id=
"insertBatch"
>
INSERT INTO tab_contact_follow (follow_id,member_id, clerk_id, clerk_code, follow_remark, follow_material, goods_info, follow_time, enterprise_id)
VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(#{item.followId},#{item.memberId}, #{item.clerkId}, #{item.clerkCode}, #{item.followRemark}, #{item.followMaterial}, #{item.goodsInfo}, #{item.followTime}, #{item.enterpriseId})
</foreach>
</insert>
<update
id=
"update"
>
UPDATE tab_contact_follow
<set>
<if
test=
"memberId != null"
>
member_id = #{memberId},
</if>
<if
test=
"clerkId != null"
>
clerk_id = #{clerkId},
</if>
<if
test=
"clerkCode != null"
>
clerk_code = #{clerkCode},
</if>
<if
test=
"followRemark != null"
>
follow_remark = #{followRemark},
</if>
<if
test=
"followMaterial != null"
>
follow_material = #{followMaterial},
</if>
<if
test=
"goodsInfo != null"
>
goods_info = #{goodsInfo},
</if>
<if
test=
"followTime != null"
>
follow_time = #{followTime},
</if>
<if
test=
"enterpriseId != null"
>
enterprise_id = #{enterpriseId},
</if>
<if
test=
"deleteFlag != null"
>
delete_flag = #{deleteFlag},
</if>
update_time = #{updateTime}
</set>
WHERE follow_id = #{followId}
</update>
<delete
id=
"deleteById"
>
DELETE FROM tab_contact_follow
WHERE follow_id = #{followId}
</delete>
</mapper>
\ No newline at end of file
haoban-manage3-service/src/main/resources/mapper/contact/TabContactLogMapper.xml
0 → 100644
View file @
c41067f3
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.gic.haoban.manage.service.dao.mapper.contact.TabContactLogMapper"
>
<resultMap
type=
"com.gic.haoban.manage.service.entity.contact.TabContactLog"
id=
"TabContactLogMap"
>
<result
property=
"logId"
column=
"log_id"
jdbcType=
"BIGINT"
/>
<result
property=
"memberId"
column=
"member_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"clerkId"
column=
"clerk_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"clerkCode"
column=
"clerk_code"
jdbcType=
"VARCHAR"
/>
<result
property=
"clerkName"
column=
"clerk_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"storeId"
column=
"store_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"storeCode"
column=
"store_code"
jdbcType=
"VARCHAR"
/>
<result
property=
"contactStatus"
column=
"contact_status"
jdbcType=
"INTEGER"
/>
<result
property=
"contactTime"
column=
"contact_time"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"contactCycle"
column=
"contact_cycle"
jdbcType=
"INTEGER"
/>
<result
property=
"contactCycleFirst"
column=
"contact_cycle_first"
jdbcType=
"INTEGER"
/>
<result
property=
"potentialTime"
column=
"potential_time"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"enterpriseId"
column=
"enterprise_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"deleteFlag"
column=
"delete_flag"
jdbcType=
"INTEGER"
/>
<result
property=
"createTime"
column=
"create_time"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"updateTime"
column=
"update_time"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<!--查询单个-->
<select
id=
"queryById"
resultMap=
"TabContactLogMap"
>
select *
from tab_contact_log
where log_id = #{logId} and delete_flag = 0
</select>
<!--查询多个-->
<select
id=
"queryByIds"
resultMap=
"TabContactLogMap"
>
select *
from tab_contact_log
where delete_flag = 0 and log_id in
<foreach
collection=
"logIds"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
order by create_time desc
</select>
<select
id=
"queryLastLog"
resultMap=
"TabContactLogMap"
>
select *
from tab_contact_log
where delete_flag = 0 and member_id = #{memberId}
<if
test=
"clerkId!=null and clerkId!=''"
>
and clerk_id = #{clerkId}
</if>
order by contact_time desc,log_id desc limit 1
</select>
<!--查询列表-->
<select
id=
"listContactLog"
resultMap=
"TabContactLogMap"
>
select
a.*
from tab_contact_log a
where a.enterprise_id = #{enterpriseId} and a.delete_flag = 0
<if
test=
"search.memberId != null and search.memberId != ''"
>
and a.member_id = #{search.memberId}
</if>
<if
test=
"search.clerkId != null"
>
and a.clerk_id = #{search.clerkId}
</if>
<if
test=
"search.contactStatus != null"
>
and a.contact_status = #{search.contactStatus}
</if>
<if
test=
"search.beginDate != null"
>
and a.contact_time >= #{search.beginDate}
</if>
<if
test=
"search.endDate != null"
>
and a.contact_time
<![CDATA[<=]]>
#{search.endDate}
</if>
order by a.create_time desc,a.log_id desc
</select>
<!--统计总行数-->
<select
id=
"count"
resultType=
"java.lang.Long"
>
select count(1)
from tab_contact_log
<where>
<if
test=
"logId != null"
>
and log_id = #{logId}
</if>
<if
test=
"memberId != null and memberId != ''"
>
and member_id = #{memberId}
</if>
<if
test=
"clerkId != null"
>
and clerk_id = #{clerkId}
</if>
<if
test=
"contactStatus != null"
>
and contact_status = #{contactStatus}
</if>
<if
test=
"contactTime != null"
>
and contact_time = #{contactTime}
</if>
<if
test=
"contactCycle != null"
>
and contact_cycle = #{contactCycle}
</if>
<if
test=
"contactCycleFirst != null"
>
and contact_cycle_first = #{contactCycleFirst}
</if>
<if
test=
"potentialTime != null"
>
and potential_time = #{potentialTime}
</if>
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
and enterprise_id = #{enterpriseId}
</if>
</where>
</select>
<!--新增所有列-->
<insert
id=
"insert"
keyProperty=
"logId"
useGeneratedKeys=
"true"
>
insert into tab_contact_log(
log_id,
member_id,
clerk_id,
clerk_code,
clerk_name,
store_id,
store_code,
contact_status,
contact_time,
contact_cycle,
contact_cycle_first,
potential_time,
enterprise_id
)
values (
#{logId},
#{memberId},
#{clerkId},
#{clerkCode},
#{clerkName},
#{storeId},
#{storeCode},
#{contactStatus},
#{contactTime},
#{contactCycle},
#{contactCycleFirst},
#{potentialTime},
#{enterpriseId})
</insert>
<!--通过主键修改数据-->
<update
id=
"update"
>
update tab_contact_log
<set>
<if
test=
"memberId != null and memberId != ''"
>
member_id = #{memberId},
</if>
<if
test=
"clerkId != null"
>
clerk_id = #{clerkId},
</if>
<if
test=
"clerkCode != null and clerkCode != ''"
>
clerk_code = #{clerkCode},
</if>
<if
test=
"clerkName != null and clerkName != ''"
>
clerk_name = #{clerkName},
</if>
<if
test=
"storeId != null"
>
store_id = #{storeId},
</if>
<if
test=
"storeCode != null and storeCode != ''"
>
store_code = #{storeCode},
</if>
<if
test=
"contactStatus != null"
>
contact_status = #{contactStatus},
</if>
<if
test=
"contactTime != null"
>
contact_time = #{contactTime},
</if>
<if
test=
"contactCycle != null"
>
contact_cycle = #{contactCycle},
</if>
<if
test=
"contactCycleFirst != null"
>
contact_cycle_first = #{contactCycleFirst},
</if>
<if
test=
"potentialTime != null"
>
potential_time = #{potentialTime},
</if>
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
enterprise_id = #{enterpriseId},
</if>
<if
test=
"deleteFlag != null"
>
delete_flag = #{deleteFlag},
</if>
</set>
where log_id = #{logId}
</update>
<!--通过主键删除-->
<delete
id=
"deleteById"
>
update tab_contact_log set delete_flag = 1
where enterprise_id = #{enterpriseId} and log_id = #{logId} and delete_flag = 0
</delete>
</mapper>
\ No newline at end of file
haoban-manage3-service/src/main/resources/mapper/contact/TabContactOrderMapper.xml
0 → 100644
View file @
c41067f3
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.gic.haoban.manage.service.dao.mapper.contact.TabContactOrderMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.gic.haoban.manage.service.entity.contact.TabContactOrder"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"order_id"
property=
"orderId"
/>
<result
column=
"member_id"
property=
"memberId"
/>
<result
column=
"order_number"
property=
"orderNumber"
/>
<result
column=
"paid_amount"
property=
"paidAmount"
/>
<result
column=
"product_count"
property=
"productCount"
/>
<result
column=
"goods_info"
property=
"goodsInfo"
/>
<result
column=
"pay_time"
property=
"payTime"
/>
<result
column=
"receipts_date"
property=
"receiptsDate"
/>
<result
column=
"channel_code"
property=
"channelCode"
/>
<result
column=
"channel_type"
property=
"channelType"
/>
<result
column=
"clerk_id"
property=
"clerkId"
/>
<result
column=
"clerk_code"
property=
"clerkCode"
/>
<result
column=
"store_id"
property=
"storeId"
/>
<result
column=
"contact_log_id"
property=
"contactLogId"
/>
<result
column=
"contact_time"
property=
"contactTime"
/>
<result
column=
"potential_time"
property=
"potentialTime"
/>
<result
column=
"delete_flag"
property=
"deleteFlag"
/>
<result
column=
"enterprise_id"
property=
"enterpriseId"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, order_id, member_id, order_number, paid_amount, product_count, goods_info, pay_time, receipts_date, channel_code, channel_type, clerk_id, clerk_code, store_id, contact_log_id, contact_time, potential_time, delete_flag, enterprise_id, create_time, update_time
</sql>
<select
id=
"queryById"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM tab_contact_order
WHERE id = #{id}
</select>
<select
id=
"queryByIds"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM tab_contact_order
WHERE id IN
<foreach
item=
"item"
index=
"index"
collection=
"ids"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</select>
<select
id=
"count"
resultType=
"long"
>
SELECT COUNT(*)
FROM tab_contact_order
<where>
<if
test=
"orderId != null"
>
AND order_id = #{orderId}
</if>
<if
test=
"memberId != null"
>
AND member_id = #{memberId}
</if>
<if
test=
"enterpriseId != null"
>
AND enterprise_id = #{enterpriseId}
</if>
</where>
</select>
<insert
id=
"insert"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
INSERT INTO tab_contact_order (order_id, member_id, order_number, paid_amount, product_count, goods_info, pay_time, receipts_date, channel_code, channel_type, clerk_id, clerk_code, store_id, contact_log_id, contact_time, potential_time, delete_flag, enterprise_id, create_time, update_time)
VALUES (#{orderId}, #{memberId}, #{orderNumber}, #{paidAmount}, #{productCount}, #{goodsInfo}, #{payTime}, #{receiptsDate}, #{channelCode}, #{channelType}, #{clerkId}, #{clerkCode}, #{storeId}, #{contactLogId}, #{contactTime}, #{potentialTime}, #{deleteFlag}, #{enterpriseId}, #{createTime}, #{updateTime})
</insert>
<update
id=
"update"
>
UPDATE tab_contact_order
<set>
<if
test=
"orderId != null"
>
order_id = #{orderId},
</if>
<if
test=
"memberId != null"
>
member_id = #{memberId},
</if>
<if
test=
"orderNumber != null"
>
order_number = #{orderNumber},
</if>
<if
test=
"paidAmount != null"
>
paid_amount = #{paidAmount},
</if>
<if
test=
"productCount != null"
>
product_count = #{productCount},
</if>
<if
test=
"goodsInfo != null"
>
goods_info = #{goodsInfo},
</if>
<if
test=
"payTime != null"
>
pay_time = #{payTime},
</if>
<if
test=
"receiptsDate != null"
>
receipts_date = #{receiptsDate},
</if>
<if
test=
"channelCode != null"
>
channel_code = #{channelCode},
</if>
<if
test=
"channelType != null"
>
channel_type = #{channelType},
</if>
<if
test=
"clerkId != null"
>
clerk_id = #{clerkId},
</if>
<if
test=
"clerkCode != null"
>
clerk_code = #{clerkCode},
</if>
<if
test=
"storeId != null"
>
store_id = #{storeId},
</if>
<if
test=
"contactLogId != null"
>
contact_log_id = #{contactLogId},
</if>
<if
test=
"contactTime != null"
>
contact_time = #{contactTime},
</if>
<if
test=
"potentialTime != null"
>
potential_time = #{potentialTime},
</if>
<if
test=
"deleteFlag != null"
>
delete_flag = #{deleteFlag},
</if>
<if
test=
"enterpriseId != null"
>
enterprise_id = #{enterpriseId},
</if>
update_time = #{updateTime}
</set>
WHERE id = #{id}
</update>
<delete
id=
"deleteById"
>
DELETE FROM tab_contact_order
WHERE id = #{id}
</delete>
</mapper>
\ No newline at end of file
haoban-manage3-service/src/main/resources/mapper/content/TabHaobanInteractRecordMapper.xml
View file @
c41067f3
...
...
@@ -313,6 +313,31 @@
order by null
</select>
<select
id=
"selectLastByMemberIds"
resultMap=
"TabHaobanInteractRecordMap"
>
select t1.*
FROM tab_haoban_interact_record t1
JOIN (
SELECT member_id, MAX(last_access_time) AS max_last_access_time
FROM tab_haoban_interact_record
WHERE clerk_id = #{clerkId} AND delete_flag = 0 and
<foreach
collection=
"list"
item=
"item"
separator=
" OR "
>
(member_id = #{item.memberId} AND last_access_time > #{item.lastAccessTime})
</foreach>
GROUP BY member_id
) t2
ON t1.member_id = t2.member_id AND t1.last_access_time = t2.max_last_access_time
order by t1.last_access_time desc,t1.id desc
</select>
<select
id=
"selectMemberIdsByTime"
resultType=
"com.gic.haoban.manage.service.pojo.bo.potential.MemberLastInteractBO"
>
select member_id as memberId, max(last_access_time) as lastAccessTime
FROM tab_haoban_interact_record
where clerk_id = #{clerkId} AND delete_flag = 0
and last_access_time >= #{lastAccessTime}
group by member_id
order by last_access_time desc,id desc
</select>
<update
id=
"mergeMember"
>
update tab_haoban_interact_record
set member_id = #{memberId}
...
...
haoban-manage3-service/src/test/java/contact/ContactTest.java
0 → 100644
View file @
c41067f3
package
contact
;
import
cn.hutool.core.date.DateField
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.BasePageInfo
;
import
com.gic.api.base.commons.Page
;
import
com.gic.haoban.manage.api.dto.contact.ContactFollowDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowSearchQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactLogQDTO
;
import
com.gic.haoban.manage.service.pojo.bo.content.InteractRecordBO
;
import
com.gic.haoban.manage.service.pojo.bo.potential.MemberLastInteractBO
;
import
com.gic.haoban.manage.service.service.contact.ContactFollowService
;
import
com.gic.haoban.manage.service.service.contact.ContactLogService
;
import
com.gic.haoban.manage.service.service.content.InteractRecordService
;
import
com.google.common.collect.Lists
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@ContextConfiguration
(
locations
=
{
"classpath:applicationContext-conf.xml"
})
public
class
ContactTest
{
@Autowired
private
ContactFollowService
contactFollowService
;
@Autowired
private
ContactLogService
contactLogService
;
@Autowired
private
InteractRecordService
interactRecordService
;
String
eid
=
"ff8080815dacd3a2015dacd3ef5c0000"
;
String
clerkId
=
"3c01cef9159f4599abf600db1f9583ef"
;
String
memberId
=
"ff8080818215878101821949a845003c"
;
String
storeId
=
"ff8080816a11a716016a23d2f5a5000d"
;
@Test
public
void
saveBatchFollow
()
throws
Exception
{
List
<
ContactFollowQDTO
>
list
=
new
ArrayList
<>();
ContactFollowQDTO
followQDTO
=
new
ContactFollowQDTO
();
followQDTO
.
setMemberId
(
memberId
);
followQDTO
.
setClerkId
(
clerkId
);
followQDTO
.
setFollowRemark
(
"大逼斗向客户发送了2款喜好推荐商品"
);
followQDTO
.
setGoodsInfoList
(
Lists
.
newArrayList
(
"8a80908c92dc2d690192dc408b6c0026"
,
"8a80908c943bcebb01944e1699c20810"
));
followQDTO
.
setFollowTime
(
new
Date
());
followQDTO
.
setEnterpriseId
(
eid
);
list
.
add
(
followQDTO
);
followQDTO
=
new
ContactFollowQDTO
();
followQDTO
.
setMemberId
(
memberId
);
followQDTO
.
setClerkId
(
clerkId
);
followQDTO
.
setFollowRemark
(
"大逼斗标记了建联。备注:啦啦啦"
);
followQDTO
.
setFollowMaterialList
(
Lists
.
newArrayList
(
"https://jhdm-1251519181.cos.ap-shanghai.myqcloud.com/image/material_content-57dff778cdae48618d44b809b6ddbb45.jpg"
));
followQDTO
.
setFollowTime
(
new
Date
());
followQDTO
.
setEnterpriseId
(
eid
);
list
.
add
(
followQDTO
);
contactFollowService
.
saveBatchFollow
(
list
);
}
@Test
public
void
pageFollow
()
throws
Exception
{
ContactFollowSearchQDTO
searchQDTO
=
new
ContactFollowSearchQDTO
();
searchQDTO
.
setMemberId
(
memberId
);
searchQDTO
.
setClerkId
(
clerkId
);
Page
<
ContactFollowDTO
>
page
=
contactFollowService
.
pageFollow
(
eid
,
searchQDTO
,
new
BasePageInfo
());
System
.
out
.
println
(
JSON
.
toJSONString
(
page
));
}
@Test
public
void
mapMemberLastFollow
()
throws
Exception
{
List
<
String
>
memberIds
=
Lists
.
newArrayList
(
memberId
);
Map
<
String
,
ContactFollowDTO
>
map
=
contactFollowService
.
mapMemberLastFollow
(
eid
,
clerkId
,
memberIds
);
System
.
out
.
println
(
JSON
.
toJSONString
(
map
));
}
@Test
public
void
saveContactLog
()
throws
Exception
{
ContactLogQDTO
contactLogQDTO
=
new
ContactLogQDTO
();
contactLogQDTO
.
setMemberId
(
memberId
);
contactLogQDTO
.
setClerkId
(
clerkId
);
contactLogQDTO
.
setStoreId
(
storeId
);
contactLogQDTO
.
setEnterpriseId
(
eid
);
contactLogService
.
saveContactLog
(
contactLogQDTO
);
}
@Test
public
void
clearContactLog
()
throws
Exception
{
contactLogService
.
clearContactLog
(
memberId
,
1
);
}
@Test
public
void
mapInteractRecord
()
throws
Exception
{
List
<
MemberLastInteractBO
>
list
=
new
ArrayList
<>();
MemberLastInteractBO
memberLastInteractBO
=
new
MemberLastInteractBO
();
memberLastInteractBO
.
setMemberId
(
memberId
);
memberLastInteractBO
.
setLastAccessTime
(
new
Date
(
"2024/01/01 00:00:00"
));
list
.
add
(
memberLastInteractBO
);
Map
<
String
,
InteractRecordBO
>
map
=
interactRecordService
.
mapInteractRecord
(
eid
,
"26efaa8144e14f60b2f4d48ffe9f708c"
,
list
);
System
.
out
.
println
(
JSON
.
toJSONString
(
map
));
}
@Test
public
void
queryMemberIdsByTime
()
throws
Exception
{
List
<
MemberLastInteractBO
>
list
=
interactRecordService
.
queryMemberIdsByTime
(
"26efaa8144e14f60b2f4d48ffe9f708c"
,
DateUtil
.
date
().
offset
(
DateField
.
DAY_OF_MONTH
,
-
14
));
System
.
out
.
println
(
JSON
.
toJSONString
(
list
));
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/WxEnterpriseInfoController.java
View file @
c41067f3
...
...
@@ -9,7 +9,9 @@ import java.util.stream.Collectors;
import
javax.servlet.http.HttpServletRequest
;
import
javax.validation.Valid
;
import
com.gic.haoban.manage.web.vo.EnterpriseConfigVO
;
import
com.gic.enterprise.api.dto.EnterpriseUsingPermissionDto
;
import
com.gic.enterprise.api.service.EnterpriseUseForbidService
;
import
com.gic.haoban.manage.web.vo.*
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
...
...
@@ -77,10 +79,6 @@ import com.gic.haoban.manage.web.qo.GetUserByMemberCodeQo;
import
com.gic.haoban.manage.web.qo.MemberLoginQo
;
import
com.gic.haoban.manage.web.qo.StaffLoginQO
;
import
com.gic.haoban.manage.web.utils.IPAddressUtil
;
import
com.gic.haoban.manage.web.vo.AppStaffVo
;
import
com.gic.haoban.manage.web.vo.MemberSendMessageVo
;
import
com.gic.haoban.manage.web.vo.StoreMemberVO
;
import
com.gic.haoban.manage.web.vo.WellDoneLoginInfoVO
;
import
com.gic.member.api.service.MemberOpenCardBusinessService
;
import
com.gic.membersource.api.dto.output.BusinessRefInfoDTO
;
import
com.gic.membersource.api.service.MemberOutsideApiService
;
...
...
@@ -93,7 +91,7 @@ import cn.hutool.core.collection.CollectionUtil;
import
cn.hutool.core.convert.Convert
;
/**
* 企微配置
*
后台-
企微配置
*/
@RestController
public
class
WxEnterpriseInfoController
extends
WebBaseController
{
...
...
@@ -138,6 +136,8 @@ public class WxEnterpriseInfoController extends WebBaseController {
private
AccountService
accountService
;
@Autowired
MemberOutsideApiService
memberOutsideApiService
;
@Autowired
private
EnterpriseUseForbidService
enterpriseUseForbidService
;
/**
...
...
@@ -788,4 +788,19 @@ public class WxEnterpriseInfoController extends WebBaseController {
.
build
();
return
RestResponse
.
successResult
(
configVO
);
}
/**
* 获取商户可用的服务
* @param enterpriseId
* @return
*/
@RequestMapping
(
path
=
"/enterprise/use-permission"
)
public
RestResponse
<
List
<
EnterpriseUsingPermissionVO
>>
selectUsingEnterprisePermission
(
String
enterpriseId
)
{
if
(
StringUtils
.
isBlank
(
enterpriseId
))
{
return
RestResponse
.
failure
(
"-701"
,
"参数缺失"
);
}
List
<
EnterpriseUsingPermissionDto
>
list
=
enterpriseUseForbidService
.
selectUsingEnterprisePermissionByEnterpriseId
(
enterpriseId
);
List
<
EnterpriseUsingPermissionVO
>
voList
=
EntityUtil
.
changeEntityListByJSON
(
EnterpriseUsingPermissionVO
.
class
,
list
);
return
RestResponse
.
successResult
(
voList
);
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/contact/ContactController.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
contact
;
import
cn.hutool.core.date.DateUtil
;
import
com.gic.api.base.commons.BasePageInfo
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.EntityUtil
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.haoban.manage.api.dto.contact.ContactFollowDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowQDTO
;
import
com.gic.haoban.manage.api.qdto.contact.ContactFollowSearchQDTO
;
import
com.gic.haoban.manage.api.service.contact.ContactFollowApiService
;
import
com.gic.haoban.manage.web.qo.contact.ContactFollowPageQO
;
import
com.gic.haoban.manage.web.qo.contact.ContactFollowQO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
path
=
"/contact"
)
public
class
ContactController
{
@Autowired
private
ContactFollowApiService
contactFollowApiService
;
/**
* 添加跟进记录
* @param contactFollowQO
* @return
*/
@RequestMapping
(
path
=
"/follow"
)
public
RestResponse
<
Void
>
saveFollow
(
ContactFollowQO
contactFollowQO
)
{
ContactFollowQDTO
followQDTO
=
EntityUtil
.
changeEntityNew
(
ContactFollowQDTO
.
class
,
contactFollowQO
);
followQDTO
.
setFollowTime
(
DateUtil
.
date
());
ServiceResponse
<
Void
>
serviceResponse
=
contactFollowApiService
.
saveFollow
(
followQDTO
);
if
(!
serviceResponse
.
isSuccess
())
{
return
RestResponse
.
failure
(
serviceResponse
.
getCode
(),
serviceResponse
.
getMessage
());
}
return
RestResponse
.
successResult
();
}
/**
* 分页查询跟进记录
* @param contactFollowPageQO
* @return
*/
@RequestMapping
(
path
=
"/page-follow"
)
public
RestResponse
<
Page
<
ContactFollowDTO
>>
pageFollow
(
ContactFollowPageQO
contactFollowPageQO
)
{
String
enterpriseId
=
contactFollowPageQO
.
getEnterpriseId
();
String
clerkId
=
contactFollowPageQO
.
getClerkId
();
String
memberId
=
contactFollowPageQO
.
getMemberId
();
ContactFollowSearchQDTO
searchQDTO
=
new
ContactFollowSearchQDTO
();
searchQDTO
.
setMemberId
(
memberId
);
searchQDTO
.
setClerkId
(
clerkId
);
BasePageInfo
basePageInfo
=
contactFollowPageQO
.
getBasePageInfo
();
ServiceResponse
<
Page
<
ContactFollowDTO
>>
serviceResponse
=
contactFollowApiService
.
pageFollow
(
enterpriseId
,
searchQDTO
,
basePageInfo
);
if
(!
serviceResponse
.
isSuccess
())
{
return
RestResponse
.
failure
(
serviceResponse
.
getCode
(),
serviceResponse
.
getMessage
());
}
return
RestResponse
.
successResult
(
serviceResponse
.
getResult
());
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/contact/ContactFollowPageQO.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
contact
;
import
com.gic.commons.web.qo.PageQo
;
/**
* Created by wangzubo on 2025/3/15.
*/
public
class
ContactFollowPageQO
extends
PageQo
{
/**
* 会员id
*/
private
String
memberId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 企业id
*/
private
String
enterpriseId
;
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/qo/contact/ContactFollowQO.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
web
.
qo
.
contact
;
import
java.util.List
;
/**
* Created by wangzubo on 2025/3/15.
*/
public
class
ContactFollowQO
{
/**
* 会员id
*/
private
String
memberId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 跟进记录
*/
private
String
followRemark
;
/**
* 跟进上传素材,数组格式
*/
private
List
<
String
>
followMaterialList
;
/**
* 关联商品信息
*/
private
List
<
String
>
goodsInfoList
;
/**
* 企业id
*/
private
String
enterpriseId
;
public
String
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
String
memberId
)
{
this
.
memberId
=
memberId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getFollowRemark
()
{
return
followRemark
;
}
public
void
setFollowRemark
(
String
followRemark
)
{
this
.
followRemark
=
followRemark
;
}
public
List
<
String
>
getFollowMaterialList
()
{
return
followMaterialList
;
}
public
void
setFollowMaterialList
(
List
<
String
>
followMaterialList
)
{
this
.
followMaterialList
=
followMaterialList
;
}
public
List
<
String
>
getGoodsInfoList
()
{
return
goodsInfoList
;
}
public
void
setGoodsInfoList
(
List
<
String
>
goodsInfoList
)
{
this
.
goodsInfoList
=
goodsInfoList
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/EnterpriseUsingPermissionVO.java
0 → 100644
View file @
c41067f3
package
com
.
gic
.
haoban
.
manage
.
web
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
public
class
EnterpriseUsingPermissionVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
5235522988932723506L
;
private
Integer
id
;
//模块名
private
String
moduleName
;
//菜单code
private
String
rightMenuCode
;
//商户功能状态
private
Integer
status
;
//商户功能开始时间
private
Date
serviceStartDate
;
//商户功能到期时间
private
Date
serviceEndDate
;
//是否商户功能全部停用
private
Integer
EnterpriseForbid
;
//版本号(1基础版 2高级版)
private
Integer
moduleVersion
;
}
haoban-manage3-wx/src/main/webapp/WEB-INF/dubbo-haoban-manage-wx.xml
View file @
c41067f3
...
...
@@ -137,6 +137,8 @@
<dubbo:reference
interface=
"com.gic.haoban.manage.api.service.content.MaterialShareLogApiService"
id=
"materialShareLogApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.haoban.manage.api.service.contact.ContactFollowApiService"
id=
"contactFollowApiService"
timeout=
"10000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.haoban.manage.api.service.content.PotentialCustomerApiService"
id=
"potentialCustomerApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.haoban.manage.api.service.content.InteractRecordApiService"
id=
"interactRecordApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
id=
"orderVerificationRecordApiService"
interface=
"com.gic.haoban.app.aggregation.api.service.evaluation.OrderVerificationRecordApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
...
...
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