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
29e4d6bc
Commit
29e4d6bc
authored
Mar 20, 2023
by
songyinghui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 客户触达
parent
af8b69b3
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
2319 additions
and
15 deletions
+2319
-15
ClerkShareMaterialLogDTO.java
.../manage/api/dto/content/log/ClerkShareMaterialLogDTO.java
+94
-0
package-info.java
...a/com/gic/haoban/manage/api/dto/content/package-info.java
+2
-0
ClerkShareMaterialType.java
...oban/manage/api/enums/content/ClerkShareMaterialType.java
+32
-0
ShareBizType.java
...com/gic/haoban/manage/api/enums/content/ShareBizType.java
+27
-0
TriggerCustomerChannelType.java
.../manage/api/enums/content/TriggerCustomerChannelType.java
+33
-0
MaterialShareLogApiService.java
...anage/api/service/content/MaterialShareLogApiService.java
+22
-0
QywxGroupMsgTaskApiService.java
.../api/service/content/task/QywxGroupMsgTaskApiService.java
+22
-0
TabHaobanClerkShareLogMapper.java
...vice/dao/mapper/content/TabHaobanClerkShareLogMapper.java
+83
-0
TabHaobanTriggerCustomerDetailMapper.java
.../mapper/content/TabHaobanTriggerCustomerDetailMapper.java
+83
-0
TabHaobanClerkShareLog.java
...manage/service/entity/content/TabHaobanClerkShareLog.java
+148
-0
TabHaobanTriggerCustomerDetail.java
...ervice/entity/content/TabHaobanTriggerCustomerDetail.java
+160
-0
ClerkShareLogBO.java
...aoban/manage/service/pojo/bo/content/ClerkShareLogBO.java
+103
-0
GroupMessageInfoBo.java
...an/manage/service/pojo/bo/content/GroupMessageInfoBo.java
+64
-0
TriggerCustomerDetailBO.java
...nage/service/pojo/bo/content/TriggerCustomerDetailBO.java
+159
-0
ClerkShareLogQO.java
...aoban/manage/service/pojo/qo/content/ClerkShareLogQO.java
+86
-0
TriggerCustomerDetailQO.java
...nage/service/pojo/qo/content/TriggerCustomerDetailQO.java
+101
-0
TabHaobanTriggerCustomerDetailService.java
...ervice/service/TabHaobanTriggerCustomerDetailService.java
+56
-0
ClerkShareLogService.java
.../manage/service/service/content/ClerkShareLogService.java
+29
-0
GroupMessageService.java
...n/manage/service/service/content/GroupMessageService.java
+19
-0
TriggerCustomerDetailService.java
...service/service/content/TriggerCustomerDetailService.java
+35
-0
ClerkShareLogServiceImpl.java
...ervice/service/content/impl/ClerkShareLogServiceImpl.java
+72
-0
GroupMessageServiceImpl.java
...service/service/content/impl/GroupMessageServiceImpl.java
+187
-0
TriggerCustomerDetailServiceImpl.java
...ervice/content/impl/TriggerCustomerDetailServiceImpl.java
+68
-0
MaterialShareLogApiServiceImpl.java
...vice/out/impl/content/MaterialShareLogApiServiceImpl.java
+35
-0
QywxGroupMsgTaskApiServiceImpl.java
...out/impl/content/task/QywxGroupMsgTaskApiServiceImpl.java
+29
-0
dubbo-haoban-manage-service.xml
...ervice/src/main/resources/dubbo-haoban-manage-service.xml
+5
-1
TabHaobanClerkShareLogDao.xml
...in/resources/mapper/content/TabHaobanClerkShareLogDao.xml
+191
-0
TabHaobanTriggerCustomerDetailMapper.xml
...s/mapper/content/TabHaobanTriggerCustomerDetailMapper.xml
+216
-0
NotityTest.java
haoban-manage3-service/src/test/java/NotityTest.java
+28
-0
ClerkMaterialShareController.java
.../web/controller/content/ClerkMaterialShareController.java
+41
-11
GoodsInfoAdaptor.java
.../haoban/manage/web/controller/goods/GoodsInfoAdaptor.java
+34
-2
ContentMaterialLandingPageVO.java
...ge/web/vo/content/share/ContentMaterialLandingPageVO.java
+53
-1
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/content/log/ClerkShareMaterialLogDTO.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
content
.
log
;
import
java.io.Serializable
;
/**
* @Author MUSI
* @Date 2023/3/18 8:23 PM
* @Description
* @Version
**/
public
class
ClerkShareMaterialLogDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
57985108148863697L
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 成员id
*/
private
String
staffId
;
/**
* 素材分享类型
* @see com.gic.haoban.manage.api.enums.content.ClerkShareMaterialType
*/
private
Integer
shareType
;
/**
* 业务id
*/
private
String
bizId
;
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private
Integer
bizType
;
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getStaffId
()
{
return
staffId
;
}
public
void
setStaffId
(
String
staffId
)
{
this
.
staffId
=
staffId
;
}
public
Integer
getShareType
()
{
return
shareType
;
}
public
void
setShareType
(
Integer
shareType
)
{
this
.
shareType
=
shareType
;
}
public
String
getBizId
()
{
return
bizId
;
}
public
void
setBizId
(
String
bizId
)
{
this
.
bizId
=
bizId
;
}
public
Integer
getBizType
()
{
return
bizType
;
}
public
void
setBizType
(
Integer
bizType
)
{
this
.
bizType
=
bizType
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/content/package-info.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
content
;
\ No newline at end of file
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/content/ClerkShareMaterialType.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
api
.
enums
.
content
;
/**
* @Author MUSI
* @Date 2023/3/18 8:26 PM
* @Description
* @Version
* 导购分享素材类型枚举
**/
public
enum
ClerkShareMaterialType
{
SHARE_PYQ
(
1
,
"群发到朋友圈"
),
SHARE_CUSTOMER
(
2
,
"群发给客户"
),
SHARE_GROUP
(
3
,
"群发到群"
)
;
ClerkShareMaterialType
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
private
Integer
code
;
private
String
desc
;
public
Integer
getCode
()
{
return
code
;
}
public
String
getDesc
()
{
return
desc
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/content/ShareBizType.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
api
.
enums
.
content
;
/**
* @Author MUSI
* @Date 2023/3/18 8:26 PM
* @Description
* @Version
* 导购分享素材类型枚举
**/
public
enum
ShareBizType
{
MATERIAL
(
1
,
"素材"
);
ShareBizType
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
private
Integer
code
;
private
String
desc
;
public
Integer
getCode
()
{
return
code
;
}
public
String
getDesc
()
{
return
desc
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/content/TriggerCustomerChannelType.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
api
.
enums
.
content
;
/**
* @Author MUSI
* @Date 2023/3/19 10:06 PM
* @Description
* @Version
* 客户触达渠道类型
**/
public
enum
TriggerCustomerChannelType
{
PYQ
(
1
,
"朋友圈"
),
CUSTOMER_GROUP
(
2
,
"客户群"
),
DIALOG_BOX
(
3
,
"对话框"
),
CONTENT_COPY
(
4
,
"复制文案"
),
CONTENT_DOWNLOAD
(
5
,
"下载素材"
)
;
TriggerCustomerChannelType
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
private
Integer
code
;
private
String
desc
;
public
Integer
getCode
()
{
return
code
;
}
public
String
getDesc
()
{
return
desc
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/content/MaterialShareLogApiService.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
api
.
service
.
content
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.dto.content.log.ClerkShareMaterialLogDTO
;
/**
* @Author MUSI
* @Date 2023/3/18 8:20 PM
* @Description
* @Version
*
* 素材分享日志
**/
public
interface
MaterialShareLogApiService
{
/**
* 保存导购分享记录
* @param clerkShareMaterialLogDTO
* @return
*/
ServiceResponse
<
Long
>
saveClerkShareMaterialLog
(
ClerkShareMaterialLogDTO
clerkShareMaterialLogDTO
);
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/content/task/QywxGroupMsgTaskApiService.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
api
.
service
.
content
.
task
;
import
com.gic.api.base.commons.ServiceResponse
;
/**
* @Author MUSI
* @Date 2023/3/19 8:31 PM
* @Description
* @Version
* 企微群发消息处理任务
**/
public
interface
QywxGroupMsgTaskApiService
{
/**
* 查询企微群发消息结果
* 10 分钟一次
* @param params
* @return
*/
ServiceResponse
<
Void
>
groupMsgTaskJob
(
String
params
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/content/TabHaobanClerkShareLogMapper.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
dao
.
mapper
.
content
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanClerkShareLog
;
import
com.gic.haoban.manage.service.pojo.qo.content.ClerkShareLogQO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.data.domain.Pageable
;
import
java.util.List
;
/**
* 导购分享记录(TabHaobanClerkShareLog)表数据库访问层
*
* @author makejava
* @since 2023-03-18 20:54:15
*/
public
interface
TabHaobanClerkShareLogMapper
{
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TabHaobanClerkShareLog
queryById
(
Long
id
);
/**
* 条件查询
* @param clerkShareLogQO
* @return
*/
List
<
TabHaobanClerkShareLog
>
queryWithCondition
(
ClerkShareLogQO
clerkShareLogQO
);
/**
* 统计总行数
*
* @param tabHaobanClerkShareLog 查询条件
* @return 总行数
*/
long
count
(
TabHaobanClerkShareLog
tabHaobanClerkShareLog
);
/**
* 新增数据
*
* @param tabHaobanClerkShareLog 实例对象
* @return 影响行数
*/
int
insert
(
TabHaobanClerkShareLog
tabHaobanClerkShareLog
);
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanClerkShareLog> 实例对象列表
* @return 影响行数
*/
int
insertBatch
(
@Param
(
"entities"
)
List
<
TabHaobanClerkShareLog
>
entities
);
/**
* 批量新增或按主键更新数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanClerkShareLog> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
*/
int
insertOrUpdateBatch
(
@Param
(
"entities"
)
List
<
TabHaobanClerkShareLog
>
entities
);
/**
* 修改数据
*
* @param tabHaobanClerkShareLog 实例对象
* @return 影响行数
*/
int
update
(
TabHaobanClerkShareLog
tabHaobanClerkShareLog
);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int
deleteById
(
Long
id
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/content/TabHaobanTriggerCustomerDetailMapper.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
dao
.
mapper
.
content
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanTriggerCustomerDetail
;
import
com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.data.domain.Pageable
;
import
java.util.List
;
/**
* (TabHaobanTriggerCustomerDetail)表数据库访问层
*
* @author makejava
* @since 2023-03-19 21:35:22
*/
public
interface
TabHaobanTriggerCustomerDetailMapper
{
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TabHaobanTriggerCustomerDetail
queryById
(
Long
id
);
/**
*
* @param triggerCustomerDetailQO
* @return
*/
List
<
TabHaobanTriggerCustomerDetail
>
queryWithCondition
(
TriggerCustomerDetailQO
triggerCustomerDetailQO
);
/**
* 统计总行数
*
* @param tabHaobanTriggerCustomerDetail 查询条件
* @return 总行数
*/
long
count
(
TabHaobanTriggerCustomerDetail
tabHaobanTriggerCustomerDetail
);
/**
* 新增数据
*
* @param tabHaobanTriggerCustomerDetail 实例对象
* @return 影响行数
*/
int
insert
(
TabHaobanTriggerCustomerDetail
tabHaobanTriggerCustomerDetail
);
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanTriggerCustomerDetail> 实例对象列表
* @return 影响行数
*/
int
insertBatch
(
@Param
(
"entities"
)
List
<
TabHaobanTriggerCustomerDetail
>
entities
);
/**
* 批量新增或按主键更新数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanTriggerCustomerDetail> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
*/
int
insertOrUpdateBatch
(
@Param
(
"entities"
)
List
<
TabHaobanTriggerCustomerDetail
>
entities
);
/**
* 修改数据
*
* @param tabHaobanTriggerCustomerDetail 实例对象
* @return 影响行数
*/
int
update
(
TabHaobanTriggerCustomerDetail
tabHaobanTriggerCustomerDetail
);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int
deleteById
(
Long
id
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/content/TabHaobanClerkShareLog.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
entity
.
content
;
import
java.util.Date
;
import
java.io.Serializable
;
/**
* 导购分享记录(TabHaobanClerkShareLog)实体类
*
* @author makejava
* @since 2023-03-18 20:54:23
*/
public
class
TabHaobanClerkShareLog
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
18857713225396709L
;
private
Long
id
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 微信企业id
*/
private
String
wxEnterpriseId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 成员id
*/
private
String
staffId
;
/**
* 分享类型 1分享朋友圈; 2 群发给客户; 3 群发到群
*/
private
Integer
shareType
;
/**
* 业务id
*/
private
String
bizId
;
/**
* 业务类型 1素材
*/
private
Integer
bizType
;
/**
* 删除标识 1 删除(已处理); 0未处理
*/
private
Integer
deleteFlag
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getStaffId
()
{
return
staffId
;
}
public
void
setStaffId
(
String
staffId
)
{
this
.
staffId
=
staffId
;
}
public
Integer
getShareType
()
{
return
shareType
;
}
public
void
setShareType
(
Integer
shareType
)
{
this
.
shareType
=
shareType
;
}
public
String
getBizId
()
{
return
bizId
;
}
public
void
setBizId
(
String
bizId
)
{
this
.
bizId
=
bizId
;
}
public
Integer
getBizType
()
{
return
bizType
;
}
public
void
setBizType
(
Integer
bizType
)
{
this
.
bizType
=
bizType
;
}
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
;
}
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/content/TabHaobanTriggerCustomerDetail.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
entity
.
content
;
import
java.util.Date
;
import
java.io.Serializable
;
/**
* (TabHaobanTriggerCustomerDetail)实体类
*
* @author makejava
* @since 2023-03-19 21:35:22
*/
public
class
TabHaobanTriggerCustomerDetail
implements
Serializable
{
private
static
final
long
serialVersionUID
=
775762162443994755L
;
private
Long
id
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 微信企业id
*/
private
String
wxEnterpriseId
;
/**
* 业务id
*/
private
String
bizId
;
/**
* 业务类型 1素材
*/
private
Integer
bizType
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 成员id
*/
private
String
staffId
;
/**
* 渠道类型 1朋友圈; 2客户群; 3 对话框; 4 复制文案; 5 下载素材
*/
private
Integer
channelType
;
/**
* 触达客户标识 外部联系人id
*/
private
String
customerId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
updateTime
;
/**
* 0正常; 1删除
*/
private
Integer
deleteFlag
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getBizId
()
{
return
bizId
;
}
public
void
setBizId
(
String
bizId
)
{
this
.
bizId
=
bizId
;
}
public
Integer
getBizType
()
{
return
bizType
;
}
public
void
setBizType
(
Integer
bizType
)
{
this
.
bizType
=
bizType
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getStaffId
()
{
return
staffId
;
}
public
void
setStaffId
(
String
staffId
)
{
this
.
staffId
=
staffId
;
}
public
Integer
getChannelType
()
{
return
channelType
;
}
public
void
setChannelType
(
Integer
channelType
)
{
this
.
channelType
=
channelType
;
}
public
String
getCustomerId
()
{
return
customerId
;
}
public
void
setCustomerId
(
String
customerId
)
{
this
.
customerId
=
customerId
;
}
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
;
}
public
Integer
getDeleteFlag
()
{
return
deleteFlag
;
}
public
void
setDeleteFlag
(
Integer
deleteFlag
)
{
this
.
deleteFlag
=
deleteFlag
;
}
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/ClerkShareLogBO.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
.
content
;
/**
* @Author MUSI
* @Date 2023/3/18 9:02 PM
* @Description
* @Version
**/
public
class
ClerkShareLogBO
{
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 微信企业id
*/
private
String
wxEnterpriseId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 成员id
*/
private
String
staffId
;
/**
* 素材分享类型
* @see com.gic.haoban.manage.api.enums.content.ClerkShareMaterialType
*/
private
Integer
shareType
;
/**
* 业务id
*/
private
String
bizId
;
/**
* 业务类型
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private
Integer
bizType
;
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getStaffId
()
{
return
staffId
;
}
public
void
setStaffId
(
String
staffId
)
{
this
.
staffId
=
staffId
;
}
public
Integer
getShareType
()
{
return
shareType
;
}
public
void
setShareType
(
Integer
shareType
)
{
this
.
shareType
=
shareType
;
}
public
String
getBizId
()
{
return
bizId
;
}
public
void
setBizId
(
String
bizId
)
{
this
.
bizId
=
bizId
;
}
public
Integer
getBizType
()
{
return
bizType
;
}
public
void
setBizType
(
Integer
bizType
)
{
this
.
bizType
=
bizType
;
}
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/GroupMessageInfoBo.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
.
content
;
import
java.util.Date
;
/**
* @Author MUSI
* @Date 2023/3/19 9:47 PM
* @Description
* @Version
**/
public
class
GroupMessageInfoBo
{
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 微信企业id
*/
private
String
wxEnterpriseId
;
/**
* 开始时间
*/
private
Date
startTime
;
/**
* 结束时间
*/
private
Date
endTime
;
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
Date
getStartTime
()
{
return
startTime
;
}
public
void
setStartTime
(
Date
startTime
)
{
this
.
startTime
=
startTime
;
}
public
Date
getEndTime
()
{
return
endTime
;
}
public
void
setEndTime
(
Date
endTime
)
{
this
.
endTime
=
endTime
;
}
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/bo/content/TriggerCustomerDetailBO.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
.
content
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* (TabHaobanTriggerCustomerDetail)实体类
*
* @author makejava
* @since 2023-03-19 21:35:22
*/
public
class
TriggerCustomerDetailBO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
775762162443994755L
;
private
Long
id
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 微信企业id
*/
private
String
wxEnterpriseId
;
/**
* 业务id
*/
private
String
bizId
;
/**
* 业务类型 1素材
*/
private
Integer
bizType
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 成员id
*/
private
String
staffId
;
/**
* 渠道类型 1朋友圈; 2客户群; 3 对话框; 4 复制文案; 5 下载素材
*/
private
Integer
channelType
;
/**
* 触达客户标识 外部联系人id
*/
private
String
customerId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
updateTime
;
/**
* 0正常; 1删除
*/
private
Integer
deleteFlag
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getBizId
()
{
return
bizId
;
}
public
void
setBizId
(
String
bizId
)
{
this
.
bizId
=
bizId
;
}
public
Integer
getBizType
()
{
return
bizType
;
}
public
void
setBizType
(
Integer
bizType
)
{
this
.
bizType
=
bizType
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
void
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
}
public
String
getStaffId
()
{
return
staffId
;
}
public
void
setStaffId
(
String
staffId
)
{
this
.
staffId
=
staffId
;
}
public
Integer
getChannelType
()
{
return
channelType
;
}
public
void
setChannelType
(
Integer
channelType
)
{
this
.
channelType
=
channelType
;
}
public
String
getCustomerId
()
{
return
customerId
;
}
public
void
setCustomerId
(
String
customerId
)
{
this
.
customerId
=
customerId
;
}
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
;
}
public
Integer
getDeleteFlag
()
{
return
deleteFlag
;
}
public
void
setDeleteFlag
(
Integer
deleteFlag
)
{
this
.
deleteFlag
=
deleteFlag
;
}
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/qo/content/ClerkShareLogQO.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
qo
.
content
;
import
com.gic.haoban.base.api.common.BasePageInfo
;
import
java.util.Date
;
/**
* @Author MUSI
* @Date 2023/3/19 11:29 PM
* @Description
* @Version
**/
public
class
ClerkShareLogQO
extends
BasePageInfo
{
private
static
final
long
serialVersionUID
=
-
2919045329617420361L
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 导购id
*/
private
String
clerkId
;
/**
* 开始时间
*/
private
Date
startTime
;
/**
* 结束时间
*/
private
Date
endTime
;
/**
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private
Integer
bizType
;
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
ClerkShareLogQO
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
return
this
;
}
public
Date
getStartTime
()
{
return
startTime
;
}
public
ClerkShareLogQO
setStartTime
(
Date
startTime
)
{
this
.
startTime
=
startTime
;
return
this
;
}
public
Date
getEndTime
()
{
return
endTime
;
}
public
ClerkShareLogQO
setEndTime
(
Date
endTime
)
{
this
.
endTime
=
endTime
;
return
this
;
}
public
Integer
getBizType
()
{
return
bizType
;
}
public
ClerkShareLogQO
setBizType
(
Integer
bizType
)
{
this
.
bizType
=
bizType
;
return
this
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
ClerkShareLogQO
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
return
this
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/qo/content/TriggerCustomerDetailQO.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
qo
.
content
;
import
com.gic.api.base.commons.BasePageInfo
;
import
java.util.Date
;
/**
* @Author MUSI
* @Date 2023/3/19 9:54 PM
* @Description
* @Version
**/
public
class
TriggerCustomerDetailQO
extends
BasePageInfo
{
private
static
final
long
serialVersionUID
=
-
4776803428834819261L
;
/**
* 企业id
*/
private
String
enterpriseId
;
private
Date
startTime
;
private
Date
endTime
;
/**
* @see com.gic.haoban.manage.api.enums.content.ShareBizType
*/
private
Integer
bizType
;
private
String
bizId
;
private
String
clerkId
;
/**
* @see com.gic.haoban.manage.api.enums.content.TriggerCustomerChannelType
*/
private
Integer
channelType
;
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
TriggerCustomerDetailQO
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
return
this
;
}
public
Date
getStartTime
()
{
return
startTime
;
}
public
TriggerCustomerDetailQO
setStartTime
(
Date
startTime
)
{
this
.
startTime
=
startTime
;
return
this
;
}
public
Date
getEndTime
()
{
return
endTime
;
}
public
TriggerCustomerDetailQO
setEndTime
(
Date
endTime
)
{
this
.
endTime
=
endTime
;
return
this
;
}
public
Integer
getBizType
()
{
return
bizType
;
}
public
TriggerCustomerDetailQO
setBizType
(
Integer
bizType
)
{
this
.
bizType
=
bizType
;
return
this
;
}
public
String
getBizId
()
{
return
bizId
;
}
public
TriggerCustomerDetailQO
setBizId
(
String
bizId
)
{
this
.
bizId
=
bizId
;
return
this
;
}
public
String
getClerkId
()
{
return
clerkId
;
}
public
TriggerCustomerDetailQO
setClerkId
(
String
clerkId
)
{
this
.
clerkId
=
clerkId
;
return
this
;
}
public
Integer
getChannelType
()
{
return
channelType
;
}
public
TriggerCustomerDetailQO
setChannelType
(
Integer
channelType
)
{
this
.
channelType
=
channelType
;
return
this
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/TabHaobanTriggerCustomerDetailService.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
service
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanTriggerCustomerDetail
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
/**
* (TabHaobanTriggerCustomerDetail)表服务接口
*
* @author makejava
* @since 2023-03-19 21:35:22
*/
public
interface
TabHaobanTriggerCustomerDetailService
{
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TabHaobanTriggerCustomerDetail
queryById
(
Long
id
);
/**
* 分页查询
*
* @param tabHaobanTriggerCustomerDetail 筛选条件
* @param pageRequest 分页对象
* @return 查询结果
*/
Page
<
TabHaobanTriggerCustomerDetail
>
queryByPage
(
TabHaobanTriggerCustomerDetail
tabHaobanTriggerCustomerDetail
,
PageRequest
pageRequest
);
/**
* 新增数据
*
* @param tabHaobanTriggerCustomerDetail 实例对象
* @return 实例对象
*/
TabHaobanTriggerCustomerDetail
insert
(
TabHaobanTriggerCustomerDetail
tabHaobanTriggerCustomerDetail
);
/**
* 修改数据
*
* @param tabHaobanTriggerCustomerDetail 实例对象
* @return 实例对象
*/
TabHaobanTriggerCustomerDetail
update
(
TabHaobanTriggerCustomerDetail
tabHaobanTriggerCustomerDetail
);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean
deleteById
(
Long
id
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/ClerkShareLogService.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
;
import
com.gic.haoban.manage.service.pojo.bo.content.ClerkShareLogBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.ClerkShareLogQO
;
import
java.util.List
;
/**
* 导购分享记录(TabHaobanClerkShareLog)表服务接口
*
* @author makejava
* @since 2023-03-18 20:54:32
*/
public
interface
ClerkShareLogService
{
/**
* 导购分享日志
* @param clerkShareLogBO
* @return
*/
Long
saveClerkShareLog
(
ClerkShareLogBO
clerkShareLogBO
);
/**
* 查询导购分享日志
* @param clerkShareLogQO
* @return
*/
List
<
ClerkShareLogBO
>
queryClerkShareLog
(
ClerkShareLogQO
clerkShareLogQO
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/GroupMessageService.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
;
import
com.gic.haoban.manage.service.pojo.bo.content.GroupMessageInfoBo
;
/**
* @Author MUSI
* @Date 2023/3/19 9:46 PM
* @Description
* @Version
* 群发消息处理器
**/
public
interface
GroupMessageService
{
/**
* 处理企业群发消息
* @param groupMessageInfoBo
*/
void
handlerGroupMessage
(
GroupMessageInfoBo
groupMessageInfoBo
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/TriggerCustomerDetailService.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
;
import
com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO
;
import
java.util.List
;
/**
* @Author MUSI
* @Date 2023/3/19 9:38 PM
* @Description
* @Version
* 客户触达明细
**/
public
interface
TriggerCustomerDetailService
{
/**
* 保存客户触达日志
* @param triggerCustomerDetailBO
*/
void
save
(
TriggerCustomerDetailBO
triggerCustomerDetailBO
);
/**
* 批量保存
* @param triggerCustomerDetailBos
*/
void
batchSave
(
List
<
TriggerCustomerDetailBO
>
triggerCustomerDetailBos
);
/**
* 查询客户触达日志
* @param triggerCustomerDetailQO
* @return
*/
List
<
TriggerCustomerDetailBO
>
queryTriggerCustomerDetailList
(
TriggerCustomerDetailQO
triggerCustomerDetailQO
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/impl/ClerkShareLogServiceImpl.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.haoban.manage.service.dao.mapper.content.TabHaobanClerkShareLogMapper
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanClerkShareLog
;
import
com.gic.haoban.manage.service.pojo.bo.content.ClerkShareLogBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.ClerkShareLogQO
;
import
com.gic.haoban.manage.service.service.content.ClerkShareLogService
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @Author MUSI
* @Date 2023/3/18 9:03 PM
* @Description
* @Version
**/
@Component
public
class
ClerkShareLogServiceImpl
implements
ClerkShareLogService
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
ClerkShareLogServiceImpl
.
class
);
@Autowired
private
TabHaobanClerkShareLogMapper
clerkShareLogMapper
;
@Override
public
Long
saveClerkShareLog
(
ClerkShareLogBO
clerkShareLogBO
)
{
TabHaobanClerkShareLog
temp
=
new
TabHaobanClerkShareLog
();
BeanUtils
.
copyProperties
(
clerkShareLogBO
,
temp
);
temp
.
setId
(
UniqueIdUtils
.
uniqueLong
());
temp
.
setCreateTime
(
new
Date
());
temp
.
setUpdateTime
(
new
Date
());
temp
.
setDeleteFlag
(
0
);
clerkShareLogMapper
.
insert
(
temp
);
return
temp
.
getId
();
}
/**
* 查询导购分享日志
*
* @param clerkShareLogQO
* @return
*/
@Override
public
List
<
ClerkShareLogBO
>
queryClerkShareLog
(
ClerkShareLogQO
clerkShareLogQO
)
{
List
<
TabHaobanClerkShareLog
>
tabHaobanClerkShareLogs
=
clerkShareLogMapper
.
queryWithCondition
(
clerkShareLogQO
);
if
(
CollectionUtils
.
isEmpty
(
tabHaobanClerkShareLogs
))
{
log
.
info
(
"查询导购分享记录为空 {}"
,
JSON
.
toJSONString
(
clerkShareLogQO
));
return
Collections
.
emptyList
();
}
return
tabHaobanClerkShareLogs
.
stream
()
.
map
(
item
->
{
ClerkShareLogBO
temp
=
new
ClerkShareLogBO
();
BeanUtils
.
copyProperties
(
item
,
temp
);
return
temp
;
})
.
collect
(
Collectors
.
toList
());
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/impl/GroupMessageServiceImpl.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.UniqueIdUtils
;
import
com.gic.haoban.common.utils.StringUtil
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.enums.content.ShareBizType
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.pojo.bo.content.ClerkShareLogBO
;
import
com.gic.haoban.manage.service.pojo.bo.content.GroupMessageInfoBo
;
import
com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.ClerkShareLogQO
;
import
com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO
;
import
com.gic.haoban.manage.service.service.content.ClerkShareLogService
;
import
com.gic.haoban.manage.service.service.content.GroupMessageService
;
import
com.gic.haoban.manage.service.service.content.TriggerCustomerDetailService
;
import
com.gic.wechat.api.dto.qdto.group.QywxGroupMessageQDTO
;
import
com.gic.wechat.api.dto.qdto.group.QywxGroupMsgSendResultQDTO
;
import
com.gic.wechat.api.dto.qywx.group.QywxGroupMessageInfoDTO
;
import
com.gic.wechat.api.dto.qywx.group.QywxGroupMsgResp
;
import
com.gic.wechat.api.dto.qywx.group.QywxGroupMsgSendResultDTO
;
import
com.gic.wechat.api.service.qywx.QywxSuiteApiService
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @Author MUSI
* @Date 2023/3/19 9:49 PM
* @Description
* @Version 企微群发消息处理器
**/
@Component
public
class
GroupMessageServiceImpl
implements
GroupMessageService
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
GroupMessageServiceImpl
.
class
);
public
enum
GroupMsgChatType
{
single
(
"single"
,
"发送给客户"
),
group
(
"group"
,
"发送给客户群"
);
GroupMsgChatType
(
String
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
private
String
code
;
private
String
desc
;
public
String
getCode
()
{
return
code
;
}
public
String
getDesc
()
{
return
desc
;
}
}
@Autowired
private
TriggerCustomerDetailService
triggerCustomerDetailService
;
@Autowired
private
QywxSuiteApiService
qywxSuiteApiService
;
@Autowired
private
ClerkShareLogService
clerkShareLogService
;
@Autowired
private
Config
config
;
@Override
public
void
handlerGroupMessage
(
GroupMessageInfoBo
groupMessageInfoBo
)
{
// 获取企业下(当前时间 - 30, 当前时间) 的导购分享日志
ClerkShareLogQO
clerkShareLogQO
=
new
ClerkShareLogQO
()
.
setEnterpriseId
(
groupMessageInfoBo
.
getEnterpriseId
())
.
setStartTime
(
groupMessageInfoBo
.
getStartTime
())
.
setEndTime
(
groupMessageInfoBo
.
getEndTime
())
.
setBizType
(
ShareBizType
.
MATERIAL
.
getCode
());
List
<
ClerkShareLogBO
>
shareLogBos
=
clerkShareLogService
.
queryClerkShareLog
(
clerkShareLogQO
);
if
(
CollectionUtils
.
isEmpty
(
shareLogBos
))
{
return
;
}
// 获取企业下的群发记录
String
corpId
=
""
;
// 发送给客户的消息
List
<
QywxGroupMessageInfoDTO
>
sendWithCustomerMsg
=
this
.
queryGroupMsg
(
corpId
,
GroupMsgChatType
.
single
);
// 发送到群
List
<
QywxGroupMessageInfoDTO
>
sendWithGroupMsg
=
this
.
queryGroupMsg
(
corpId
,
GroupMsgChatType
.
single
);
// 匹配msgId
// 获取触发日志详情
// 保存客户触达日志明细
}
private
List
<
QywxGroupMessageInfoDTO
>
queryGroupMsg
(
String
corpid
,
GroupMsgChatType
groupMsgChatType
)
{
List
<
QywxGroupMessageInfoDTO
>
groupMessageInfos
=
new
ArrayList
<>();
QywxGroupMessageQDTO
groupMessageQDTO
=
new
QywxGroupMessageQDTO
();
groupMessageQDTO
.
setCorpid
(
corpid
);
groupMessageQDTO
.
setSuiteid
(
config
.
getWxSuiteid
());
groupMessageQDTO
.
setChatType
(
groupMsgChatType
.
getCode
());
groupMessageQDTO
.
setPageSize
(
100
);
ServiceResponse
<
QywxGroupMsgResp
>
serviceResponse
=
qywxSuiteApiService
.
queryQywxGroupMessageList
(
groupMessageQDTO
);
if
(!
serviceResponse
.
isSuccess
()
||
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
().
getGroupMessageInfos
()))
{
log
.
info
(
"获取群发任务记录异常 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyList
();
}
QywxGroupMsgResp
groupMsgResp
=
serviceResponse
.
getResult
();
List
<
QywxGroupMessageInfoDTO
>
tempMessageInfos
=
groupMsgResp
.
getGroupMessageInfos
();
groupMessageInfos
.
addAll
(
tempMessageInfos
);
String
cursor
=
groupMsgResp
.
getCursor
();
int
loopTimes
=
0
;
while
(
StringUtils
.
isNotBlank
(
cursor
))
{
loopTimes
++;
log
.
info
(
"查询群消息 第{}次查询"
,
loopTimes
);
groupMessageQDTO
.
setCursor
(
cursor
);
ServiceResponse
<
QywxGroupMsgResp
>
tempResponse
=
qywxSuiteApiService
.
queryQywxGroupMessageList
(
groupMessageQDTO
);
if
(!
tempResponse
.
isSuccess
()
||
CollectionUtils
.
isEmpty
(
tempResponse
.
getResult
().
getGroupMessageInfos
()))
{
log
.
info
(
"查询群消息异常 跳出循环 {}"
,
loopTimes
);
break
;
}
groupMessageInfos
.
addAll
(
tempResponse
.
getResult
().
getGroupMessageInfos
());
cursor
=
tempResponse
.
getResult
().
getCursor
();
}
return
groupMessageInfos
;
}
/**
* 群发给客户
* @param corpid
* @param msgId
* @param userId
* @param cursor
* @param clerkShareLogBO
*/
private
void
handlerGroupMsgWithCustomer
(
String
corpid
,
String
msgId
,
String
userId
,
String
cursor
,
ClerkShareLogBO
clerkShareLogBO
)
{
QywxGroupMsgSendResultQDTO
searchQDTO
=
new
QywxGroupMsgSendResultQDTO
();
searchQDTO
.
setCorpid
(
corpid
);
searchQDTO
.
setSuiteid
(
config
.
getWxSuiteid
());
searchQDTO
.
setPageSize
(
1000
);
searchQDTO
.
setMsgId
(
msgId
);
searchQDTO
.
setUserId
(
userId
);
searchQDTO
.
setCursor
(
cursor
);
ServiceResponse
<
QywxGroupMsgSendResultDTO
>
serviceResponse
=
qywxSuiteApiService
.
queryQywxGroupMsgSendResult
(
searchQDTO
);
if
(!
serviceResponse
.
isSuccess
()
||
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
().
getSendResultInfos
()))
{
return
;
}
List
<
TriggerCustomerDetailBO
>
customerDetailBos
=
serviceResponse
.
getResult
()
.
getSendResultInfos
()
.
stream
()
.
map
(
item
->
{
TriggerCustomerDetailBO
temp
=
new
TriggerCustomerDetailBO
();
temp
.
setId
(
UniqueIdUtils
.
uniqueLong
());
temp
.
setEnterpriseId
(
clerkShareLogBO
.
getEnterpriseId
());
temp
.
setWxEnterpriseId
(
clerkShareLogBO
.
getWxEnterpriseId
());
temp
.
setBizId
(
clerkShareLogBO
.
getBizId
());
temp
.
setBizType
(
clerkShareLogBO
.
getBizType
());
temp
.
setClerkId
(
clerkShareLogBO
.
getClerkId
());
temp
.
setStaffId
(
clerkShareLogBO
.
getStaffId
());
temp
.
setChannelType
(
clerkShareLogBO
.
getShareType
());
temp
.
setCustomerId
(
item
.
getExternalUserId
());
temp
.
setCreateTime
(
new
Date
());
temp
.
setUpdateTime
(
new
Date
());
temp
.
setDeleteFlag
(
0
);
return
temp
;
})
.
collect
(
Collectors
.
toList
());
triggerCustomerDetailService
.
batchSave
(
customerDetailBos
);
if
(
StringUtils
.
isNotBlank
(
serviceResponse
.
getResult
().
getCursor
()))
{
String
tempCursor
=
serviceResponse
.
getResult
().
getCursor
();
this
.
handlerGroupMsgWithCustomer
(
corpid
,
msgId
,
userId
,
tempCursor
,
clerkShareLogBO
);
}
// 标记该条分享日志为已分享
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/content/impl/TriggerCustomerDetailServiceImpl.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
content
.
impl
;
import
com.gic.haoban.manage.service.dao.mapper.content.TabHaobanTriggerCustomerDetailMapper
;
import
com.gic.haoban.manage.service.entity.content.TabHaobanTriggerCustomerDetail
;
import
com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO
;
import
com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO
;
import
com.gic.haoban.manage.service.service.content.TriggerCustomerDetailService
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @Author MUSI
* @Date 2023/3/19 9:38 PM
* @Description
* @Version
**/
@Component
public
class
TriggerCustomerDetailServiceImpl
implements
TriggerCustomerDetailService
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
TriggerCustomerDetailServiceImpl
.
class
);
@Autowired
private
TabHaobanTriggerCustomerDetailMapper
triggerCustomerDetailMapper
;
@Override
public
void
save
(
TriggerCustomerDetailBO
triggerCustomerDetailBO
)
{
}
/**
* 批量保存
*
* @param triggerCustomerDetailBos
*/
@Override
public
void
batchSave
(
List
<
TriggerCustomerDetailBO
>
triggerCustomerDetailBos
)
{
if
(
CollectionUtils
.
isEmpty
(
triggerCustomerDetailBos
))
{
return
;
}
List
<
TabHaobanTriggerCustomerDetail
>
customerDetails
=
triggerCustomerDetailBos
.
stream
()
.
map
(
item
->
{
TabHaobanTriggerCustomerDetail
temp
=
new
TabHaobanTriggerCustomerDetail
();
BeanUtils
.
copyProperties
(
item
,
temp
);
return
temp
;
})
.
collect
(
Collectors
.
toList
());
triggerCustomerDetailMapper
.
insertBatch
(
customerDetails
);
}
/**
* 查询客户触达日志
*
* @param triggerCustomerDetailQO
* @return
*/
@Override
public
List
<
TriggerCustomerDetailBO
>
queryTriggerCustomerDetailList
(
TriggerCustomerDetailQO
triggerCustomerDetailQO
)
{
return
null
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/content/MaterialShareLogApiServiceImpl.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
out
.
impl
.
content
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.dto.content.log.ClerkShareMaterialLogDTO
;
import
com.gic.haoban.manage.api.service.content.MaterialShareLogApiService
;
import
com.gic.haoban.manage.service.pojo.bo.content.ClerkShareLogBO
;
import
com.gic.haoban.manage.service.service.content.ClerkShareLogService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author MUSI
* @Date 2023/3/18 8:34 PM
* @Description
* @Version
**/
@Component
(
value
=
"materialShareLogApiServiceImpl"
)
public
class
MaterialShareLogApiServiceImpl
implements
MaterialShareLogApiService
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
MaterialShareLogApiServiceImpl
.
class
);
@Autowired
private
ClerkShareLogService
clerkShareLogService
;
@Override
public
ServiceResponse
<
Long
>
saveClerkShareMaterialLog
(
ClerkShareMaterialLogDTO
clerkShareMaterialLogDTO
)
{
log
.
info
(
"saveClerkShareMaterialLog 保存导购分享日志 clerkId:{}, bizId:{}"
,
clerkShareMaterialLogDTO
.
getClerkId
(),
clerkShareMaterialLogDTO
.
getBizId
());
ClerkShareLogBO
clerkShareLogBO
=
new
ClerkShareLogBO
();
BeanUtils
.
copyProperties
(
clerkShareMaterialLogDTO
,
clerkShareLogBO
);
Long
logId
=
clerkShareLogService
.
saveClerkShareLog
(
clerkShareLogBO
);
return
ServiceResponse
.
success
(
logId
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/content/task/QywxGroupMsgTaskApiServiceImpl.java
0 → 100644
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
out
.
impl
.
content
.
task
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.manage.api.service.content.task.QywxGroupMsgTaskApiService
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @Author MUSI
* @Date 2023/3/19 8:33 PM
* @Description
* @Version
**/
@Component
(
"qywxGroupMsgTaskApiServiceImpl"
)
public
class
QywxGroupMsgTaskApiServiceImpl
implements
QywxGroupMsgTaskApiService
{
@Override
public
ServiceResponse
<
Void
>
groupMsgTaskJob
(
String
params
)
{
// 获取开启【内容】权限的企业id
List
<
String
>
enterpriseIds
=
new
ArrayList
<>();
// 获取企业 (当前时间 - 30分钟, 当前时间)范围内的 导购分享记录。按创建时间排序
// 获取当前时间段内的数据
return
ServiceResponse
.
success
();
}
}
haoban-manage3-service/src/main/resources/dubbo-haoban-manage-service.xml
View file @
29e4d6bc
...
@@ -135,7 +135,7 @@
...
@@ -135,7 +135,7 @@
<dubbo:reference
interface=
"com.gic.enterprise.api.service.EnterpriseUseForbidService"
id=
"enterpriseUseForbidService"
/>
<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.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.role.HaobanRoleApiService"
ref=
"haobanRoleApiServiceImpl"
/>
<dubbo:reference
interface=
"com.gic.enterprise.api.service.DepartmentService"
id=
"gicDepartmentService"
/>
<dubbo:reference
interface=
"com.gic.enterprise.api.service.DepartmentService"
id=
"gicDepartmentService"
/>
<dubbo:reference
interface=
"com.gic.wechat.api.service.qywx.QywxDepartmentApiService"
<dubbo:reference
interface=
"com.gic.wechat.api.service.qywx.QywxDepartmentApiService"
id=
"qywxDepartmentApiService"
/>
id=
"qywxDepartmentApiService"
/>
...
@@ -204,4 +204,7 @@
...
@@ -204,4 +204,7 @@
<dubbo:reference
interface=
"com.gic.enterprise.api.service.ScreeningDetailService"
id=
"screeningDetailService"
timeout=
"10000"
retries=
"0"
/>
<dubbo:reference
interface=
"com.gic.enterprise.api.service.ScreeningDetailService"
id=
"screeningDetailService"
timeout=
"10000"
retries=
"0"
/>
<dubbo:reference
interface=
"com.gic.wechat.api.service.qywx.QywxOrderApiService"
id=
"qywxOrderApiService"
timeout=
"10000"
retries=
"0"
/>
<dubbo:reference
interface=
"com.gic.wechat.api.service.qywx.QywxOrderApiService"
id=
"qywxOrderApiService"
timeout=
"10000"
retries=
"0"
/>
<dubbo:service
interface=
"com.gic.haoban.manage.api.service.content.MaterialShareLogApiService"
ref=
"materialShareLogApiServiceImpl"
timeout=
"10000"
/>
</beans>
</beans>
\ No newline at end of file
haoban-manage3-service/src/main/resources/mapper/content/TabHaobanClerkShareLogDao.xml
0 → 100644
View file @
29e4d6bc
<?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.content.TabHaobanClerkShareLogMapper"
>
<resultMap
type=
"com.gic.haoban.manage.service.entity.content.TabHaobanClerkShareLog"
id=
"TabHaobanClerkShareLogMap"
>
<result
property=
"id"
column=
"id"
jdbcType=
"INTEGER"
/>
<result
property=
"enterpriseId"
column=
"enterprise_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"wxEnterpriseId"
column=
"wx_enterprise_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"clerkId"
column=
"clerk_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"staffId"
column=
"staff_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"shareType"
column=
"share_type"
jdbcType=
"INTEGER"
/>
<result
property=
"bizId"
column=
"biz_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"bizType"
column=
"biz_type"
jdbcType=
"INTEGER"
/>
<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>
<sql
id=
"baseSql"
>
id
, enterprise_id, wx_enterprise_id, clerk_id, staff_id, share_type, biz_id, biz_type, delete_flag, create_time, update_time
</sql>
<!--查询单个-->
<select
id=
"queryById"
resultMap=
"TabHaobanClerkShareLogMap"
>
select id,
enterprise_id,
wx_enterprise_id,
clerk_id,
staff_id,
share_type,
biz_id,
biz_type,
delete_flag,
create_time,
update_time
from tab_haoban_clerk_share_log
where id = #{id}
</select>
<!--查询指定行数据-->
<select
id=
"queryWithCondition"
resultMap=
"TabHaobanClerkShareLogMap"
>
select
id, enterprise_id, wx_enterprise_id, clerk_id, staff_id, share_type, biz_id, biz_type, delete_flag, create_time,
update_time
from tab_haoban_clerk_share_log
<where>
delete_flag = 0
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
and enterprise_id = #{enterpriseId}
</if>
<if
test=
"clerkId != null and clerkId != ''"
>
and clerk_id = #{clerkId}
</if>
<if
test=
"bizType != null"
>
and biz_type = #{bizType}
</if>
<if
test=
"startTime != null"
>
and create_time >= #{startTime}
</if>
<if
test=
"endTime != null"
>
and create_time
<![CDATA[ <= ]]>
#{endTime}
</if>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
<!--统计总行数-->
<select
id=
"count"
resultType=
"java.lang.Long"
>
select count(1)
from tab_haoban_clerk_share_log
<where>
<if
test=
"id != null"
>
and id = #{id}
</if>
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
and enterprise_id = #{enterpriseId}
</if>
<if
test=
"clerkId != null and clerkId != ''"
>
and clerk_id = #{clerkId}
</if>
<if
test=
"staffId != null and staffId != ''"
>
and staff_id = #{staffId}
</if>
<if
test=
"shareType != null"
>
and share_type = #{shareType}
</if>
<if
test=
"bizId != null and bizId != ''"
>
and biz_id = #{bizId}
</if>
<if
test=
"bizType != null"
>
and biz_type = #{bizType}
</if>
<if
test=
"deleteFlag != null"
>
and delete_flag = #{deleteFlag}
</if>
<if
test=
"createTime != null"
>
and create_time = #{createTime}
</if>
<if
test=
"updateTime != null"
>
and update_time = #{updateTime}
</if>
</where>
</select>
<!--新增所有列-->
<insert
id=
"insert"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into tab_haoban_clerk_share_log(id, enterprise_id, wx_enterprise_id, clerk_id, staff_id, share_type,
biz_id, biz_type,
delete_flag, create_time, update_time)
values (#{id}, #{enterpriseId}, #{wxEnterpriseId}, #{clerkId}, #{staffId}, #{shareType}, #{bizId}, #{bizType},
#{deleteFlag},
#{createTime}, #{updateTime})
</insert>
<insert
id=
"insertBatch"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into tab_haoban_clerk_share_log(id, enterprise_id, wx_enterprise_id, clerk_id, staff_id, share_type,
biz_id, biz_type,
delete_flag, create_time, update_time)
values
<foreach
collection=
"entities"
item=
"entity"
separator=
","
>
(#{entity.id}, #{entity.enterpriseId}, #{entity.wxEnterpriseId}, #{entity.clerkId}, #{entity.staffId},
#{entity.shareType}, #{entity.bizId},
#{entity.bizType}, #{entity.deleteFlag}, #{entity.createTime}, #{entity.updateTime})
</foreach>
</insert>
<insert
id=
"insertOrUpdateBatch"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into tab_haoban_clerk_share_log(enterprise_id, clerk_id, staff_id, share_type, biz_id, biz_type,
delete_flag, create_time, update_time)
values
<foreach
collection=
"entities"
item=
"entity"
separator=
","
>
(#{entity.enterpriseId}, #{entity.clerkId}, #{entity.staffId}, #{entity.shareType}, #{entity.bizId},
#{entity.bizType}, #{entity.deleteFlag}, #{entity.createTime}, #{entity.updateTime})
</foreach>
on duplicate key update
enterprise_id = values(enterprise_id),
clerk_id = values(clerk_id),
staff_id = values(staff_id),
share_type = values(share_type),
biz_id = values(biz_id),
biz_type = values(biz_type),
delete_flag = values(delete_flag),
create_time = values(create_time),
update_time = values(update_time)
</insert>
<!--通过主键修改数据-->
<update
id=
"update"
>
update tab_haoban_clerk_share_log
<set>
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
enterprise_id = #{enterpriseId},
</if>
<if
test=
"clerkId != null and clerkId != ''"
>
clerk_id = #{clerkId},
</if>
<if
test=
"staffId != null and staffId != ''"
>
staff_id = #{staffId},
</if>
<if
test=
"shareType != null"
>
share_type = #{shareType},
</if>
<if
test=
"bizId != null and bizId != ''"
>
biz_id = #{bizId},
</if>
<if
test=
"bizType != null"
>
biz_type = #{bizType},
</if>
<if
test=
"deleteFlag != null"
>
delete_flag = #{deleteFlag},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete
id=
"deleteById"
>
delete
from tab_haoban_clerk_share_log
where id = #{id}
</delete>
</mapper>
haoban-manage3-service/src/main/resources/mapper/content/TabHaobanTriggerCustomerDetailMapper.xml
0 → 100644
View file @
29e4d6bc
<?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.content.TabHaobanTriggerCustomerDetailMapper"
>
<resultMap
type=
"com.gic.haoban.manage.service.entity.content.TabHaobanTriggerCustomerDetail"
id=
"TabHaobanTriggerCustomerDetailMap"
>
<result
property=
"id"
column=
"id"
jdbcType=
"INTEGER"
/>
<result
property=
"enterpriseId"
column=
"enterprise_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"wxEnterpriseId"
column=
"wx_enterprise_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"bizId"
column=
"biz_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"bizType"
column=
"biz_type"
jdbcType=
"INTEGER"
/>
<result
property=
"clerkId"
column=
"clerk_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"staffId"
column=
"staff_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"channelType"
column=
"channel_type"
jdbcType=
"INTEGER"
/>
<result
property=
"customerId"
column=
"customer_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"createTime"
column=
"create_time"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"updateTime"
column=
"update_time"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"deleteFlag"
column=
"delete_flag"
jdbcType=
"INTEGER"
/>
</resultMap>
<sql
id=
"baseSql"
>
id
, enterprise_id,wxEnterpriseId,
biz_id,
biz_type,
clerk_id,
staff_id,
channel_type,
customer_id,
create_time,
update_time,
delete_flag
</sql>
<!--查询单个-->
<select
id=
"queryById"
resultMap=
"TabHaobanTriggerCustomerDetailMap"
>
select id,
enterprise_id,
wx_enterprise_id,
biz_id,
biz_type,
clerk_id,
staff_id,
channel_type,
customer_id,
create_time,
update_time,
delete_flag
from tab_haoban_trigger_customer_detail
where id = #{id}
</select>
<!--查询指定行数据-->
<select
id=
"queryWithCondition"
resultMap=
"TabHaobanTriggerCustomerDetailMap"
>
select
<include
refid=
"baseSql"
/>
from tab_haoban_trigger_customer_detail
<where>
delete_flag = 0
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
and enterprise_id = #{enterpriseId}
</if>
<if
test=
"bizId != null and bizId != ''"
>
and biz_id = #{bizId}
</if>
<if
test=
"bizType != null"
>
and biz_type = #{bizType}
</if>
<if
test=
"clerkId != null and clerkId != ''"
>
and clerk_id = #{clerkId}
</if>
<if
test=
"channelType != null"
>
and channel_type = #{channelType}
</if>
<if
test=
"startTime != null "
>
and create_time >= #{startTime}
</if>
<if
test=
"endTime != null "
>
and create_time
<![CDATA[ <= ]]>
#{endTime}
</if>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
<!--统计总行数-->
<select
id=
"count"
resultType=
"java.lang.Long"
>
select count(1)
from tab_haoban_trigger_customer_detail
<where>
<if
test=
"id != null"
>
and id = #{id}
</if>
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
and enterprise_id = #{enterpriseId}
</if>
<if
test=
"bizId != null and bizId != ''"
>
and biz_id = #{bizId}
</if>
<if
test=
"bizType != null"
>
and biz_type = #{bizType}
</if>
<if
test=
"clerkId != null and clerkId != ''"
>
and clerk_id = #{clerkId}
</if>
<if
test=
"staffId != null and staffId != ''"
>
and staff_id = #{staffId}
</if>
<if
test=
"channelType != null"
>
and channel_type = #{channelType}
</if>
<if
test=
"customerId != null and customerId != ''"
>
and customer_id = #{customerId}
</if>
<if
test=
"createTime != null"
>
and create_time = #{createTime}
</if>
<if
test=
"updateTime != null"
>
and update_time = #{updateTime}
</if>
<if
test=
"deleteFlag != null"
>
and delete_flag = #{deleteFlag}
</if>
</where>
</select>
<!--新增所有列-->
<insert
id=
"insert"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into tab_haoban_trigger_customer_detail(enterprise_id, wx_enterprise_id, biz_id, biz_type, clerk_id, staff_id,
channel_type, customer_id, create_time, update_time, delete_flag)
values (#{enterpriseId}, #{wxEnterpriseId}, #{bizId}, #{bizType}, #{clerkId}, #{staffId}, #{channelType}, #{customerId},
#{createTime}, #{updateTime}, #{deleteFlag})
</insert>
<insert
id=
"insertBatch"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into tab_haoban_trigger_customer_detail(id, enterprise_id, wx_enterprise_id, biz_id, biz_type, clerk_id, staff_id,
channel_type, customer_id, create_time, update_time, delete_flag)
values
<foreach
collection=
"entities"
item=
"entity"
separator=
","
>
(#{entity.id}, #{entity.enterpriseId}, #{entity.wxEnterpriseId}, #{entity.bizId}, #{entity.bizType}, #{entity.clerkId}, #{entity.staffId},
#{entity.channelType}, #{entity.customerId}, #{entity.createTime}, #{entity.updateTime},
#{entity.deleteFlag})
</foreach>
</insert>
<insert
id=
"insertOrUpdateBatch"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into tab_haoban_trigger_customer_detail(enterprise_id, wx_enterprise_id, biz_id, biz_type, clerk_id, staff_id,
channel_type, customer_id, create_time, update_time, delete_flag)
values
<foreach
collection=
"entities"
item=
"entity"
separator=
","
>
(#{entity.enterpriseId}, #{entity.wxEnterpriseId}, #{entity.bizId}, #{entity.bizType}, #{entity.clerkId}, #{entity.staffId},
#{entity.channelType}, #{entity.customerId}, #{entity.createTime}, #{entity.updateTime},
#{entity.deleteFlag})
</foreach>
on duplicate key update
enterprise_id = values(enterprise_id),
biz_id = values(biz_id),
biz_type = values(biz_type),
clerk_id = values(clerk_id),
staff_id = values(staff_id),
channel_type = values(channel_type),
customer_id = values(customer_id),
create_time = values(create_time),
update_time = values(update_time),
delete_flag = values(delete_flag)
</insert>
<!--通过主键修改数据-->
<update
id=
"update"
>
update tab_haoban_trigger_customer_detail
<set>
<if
test=
"enterpriseId != null and enterpriseId != ''"
>
enterprise_id = #{enterpriseId},
</if>
<if
test=
"wxEnterpriseId != null and wxEnterpriseId != ''"
>
wx_enterprise_id = #{wxEnterpriseId}
</if>
<if
test=
"bizId != null and bizId != ''"
>
biz_id = #{bizId},
</if>
<if
test=
"bizType != null"
>
biz_type = #{bizType},
</if>
<if
test=
"clerkId != null and clerkId != ''"
>
clerk_id = #{clerkId},
</if>
<if
test=
"staffId != null and staffId != ''"
>
staff_id = #{staffId},
</if>
<if
test=
"channelType != null"
>
channel_type = #{channelType},
</if>
<if
test=
"customerId != null and customerId != ''"
>
customer_id = #{customerId},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
<if
test=
"deleteFlag != null"
>
delete_flag = #{deleteFlag},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete
id=
"deleteById"
>
delete
from tab_haoban_trigger_customer_detail
where id = #{id}
</delete>
</mapper>
haoban-manage3-service/src/test/java/NotityTest.java
View file @
29e4d6bc
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.util.DateUtil
;
import
com.gic.haoban.manage.api.dto.AlertMessageDTO
;
import
com.gic.haoban.manage.api.dto.AlertMessageDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.notify.qdto.NoticeMessageQDTO
;
import
com.gic.haoban.manage.api.dto.notify.qdto.NoticeMessageQDTO
;
...
@@ -10,11 +12,15 @@ import com.gic.haoban.manage.api.service.QywxTagApiService;
...
@@ -10,11 +12,15 @@ import com.gic.haoban.manage.api.service.QywxTagApiService;
import
com.gic.haoban.manage.api.service.notify.NoticeMessageApiService
;
import
com.gic.haoban.manage.api.service.notify.NoticeMessageApiService
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.service.WxEnterpriseService
;
import
com.gic.haoban.manage.service.service.WxEnterpriseService
;
import
com.gic.wechat.api.dto.qdto.group.QywxGroupMessageQDTO
;
import
com.gic.wechat.api.dto.qywx.QywxNewsArticleMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxNewsArticleMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxNewsSendMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxNewsSendMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO
;
import
com.gic.wechat.api.dto.qywx.group.QywxGroupMessageInfoDTO
;
import
com.gic.wechat.api.dto.qywx.group.QywxGroupMsgResp
;
import
com.gic.wechat.api.service.qywx.QywxSuiteApiService
;
import
com.gic.wechat.api.service.qywx.QywxSuiteApiService
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.lang3.time.DateUtils
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -26,7 +32,9 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
...
@@ -26,7 +32,9 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
...
@@ -120,4 +128,24 @@ public class NotityTest {
...
@@ -120,4 +128,24 @@ public class NotityTest {
System
.
out
.
println
(
b
);
System
.
out
.
println
(
b
);
}
}
@Test
public
void
queryMessageTest
(){
String
wxEnterpriseId
=
"ca66a01b79474c40b3e7c7f93daf1a3b"
;
WxEnterpriseQwDTO
qwDTO
=
this
.
wxEnterpriseService
.
getQwInfo
(
wxEnterpriseId
)
;
QywxGroupMessageQDTO
search
=
new
QywxGroupMessageQDTO
();
search
.
setCorpid
(
qwDTO
.
getThirdCorpid
());
search
.
setSuiteid
(
config
.
getWxSuiteid
());
search
.
setChatType
(
"single"
);
Date
date
=
DateUtils
.
addDays
(
new
Date
(),
-
1
);
ServiceResponse
<
QywxGroupMsgResp
>
serviceResponse
=
qywxSuiteApiService
.
queryQywxGroupMessageList
(
search
);
}
@Test
public
void
convert
(){
String
json
=
"{\"errcode\":0,\"next_cursor\":\"\",\"errmsg\":\"ok\",\"group_msg_list\":[{\"attachments\":[{\"image\":{\"media_id\":\"WWME_59NLDQAA808IWhrsFqod3IeQuyZDcw\"},\"msgtype\":\"image\"}],\"create_time\":1679207801,\"msgid\":\"msg59NLDQAAMSF0sKheZ-wwUy06iY1eoQ\",\"create_type\":0,\"text\":{\"content\":\"元宵快乐\"}}]}"
;
}
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/content/ClerkMaterialShareController.java
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
content
;
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
content
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.haoban.common.utils.StringUtil
;
import
com.gic.haoban.manage.api.dto.content.log.ClerkShareMaterialLogDTO
;
import
com.gic.haoban.manage.api.enums.content.ShareBizType
;
import
com.gic.haoban.manage.api.service.content.MaterialShareLogApiService
;
import
com.gic.haoban.manage.web.qo.content.ContentMaterialBaseQO
;
import
com.gic.haoban.manage.web.qo.content.ContentMaterialBaseQO
;
import
com.gic.haoban.manage.web.qo.content.log.MaterialShareLogQO
;
import
com.gic.haoban.manage.web.qo.content.log.MaterialShareLogQO
;
import
com.gic.haoban.manage.web.vo.content.share.ContentMaterialLandingPageVO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
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.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
/**
/**
* @Author MUSI
* 导购分享素材 与素材落地页
* @Date 2023/3/17 10:54 AM
*/
* @Description
* @Version
* 导购分享素材日志
**/
@RestController
@RestController
public
class
ClerkMaterialShareController
{
public
class
ClerkMaterialShareController
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
ClerkMaterialShareController
.
class
);
@Autowired
private
MaterialShareLogApiService
materialShareLogApiService
;
/**
/**
* 导购分享素材日志
* 导购分享素材日志
* @return
* @return
*/
*/
@RequestMapping
(
path
=
"/clerk/share/material/log"
)
@RequestMapping
(
path
=
"/clerk/share/material/log"
,
method
=
RequestMethod
.
POST
)
public
RestResponse
<
?>
clerkShareMaterialLog
(
MaterialShareLogQO
materialShareLogQo
)
{
public
RestResponse
<
Long
>
clerkShareMaterialLog
(
@RequestBody
MaterialShareLogQO
materialShareLogQo
)
{
return
RestResponse
.
successResult
();
if
(
materialShareLogQo
.
getContentMaterialId
()
==
null
||
StringUtils
.
isBlank
(
materialShareLogQo
.
getClerkId
()))
{
log
.
info
(
"参数缺失 {}"
,
JSON
.
toJSONString
(
materialShareLogQo
));
return
RestResponse
.
failure
(
"-1"
,
"参数异常"
);
}
ClerkShareMaterialLogDTO
temp
=
new
ClerkShareMaterialLogDTO
();
temp
.
setEnterpriseId
(
materialShareLogQo
.
getEnterpriseId
());
temp
.
setClerkId
(
materialShareLogQo
.
getClerkId
());
temp
.
setStaffId
(
materialShareLogQo
.
getStaffId
());
temp
.
setShareType
(
materialShareLogQo
.
getShareType
());
temp
.
setBizId
(
materialShareLogQo
.
getContentMaterialId
()
+
""
);
temp
.
setBizType
(
ShareBizType
.
MATERIAL
.
getCode
());
ServiceResponse
<
Long
>
serviceResponse
=
materialShareLogApiService
.
saveClerkShareMaterialLog
(
temp
);
if
(
serviceResponse
.
isSuccess
())
{
return
RestResponse
.
successResult
(
serviceResponse
.
getResult
());
}
return
RestResponse
.
failure
(
"-701"
,
"系统异常"
);
}
}
...
@@ -32,8 +62,8 @@ public class ClerkMaterialShareController {
...
@@ -32,8 +62,8 @@ public class ClerkMaterialShareController {
* @param contentMaterialBaseQO
* @param contentMaterialBaseQO
* @return
* @return
*/
*/
public
RestResponse
<?>
queryMaterialLandingPage
(
ContentMaterialBaseQO
contentMaterialBaseQO
){
@RequestMapping
(
path
=
"/content/material/share/landing/page/info"
)
public
RestResponse
<
ContentMaterialLandingPageVO
>
queryMaterialLandingPage
(
ContentMaterialBaseQO
contentMaterialBaseQO
){
return
RestResponse
.
successResult
();
return
RestResponse
.
successResult
();
}
}
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/goods/GoodsInfoAdaptor.java
View file @
29e4d6bc
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
goods
;
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
.
goods
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.Page
;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.haoban.app.aggregation.api.dto.GoodsSettingDTO
;
import
com.gic.haoban.app.aggregation.api.dto.GoodsSettingDTO
;
import
com.gic.haoban.app.aggregation.api.service.SettingApiService
;
import
com.gic.haoban.app.aggregation.api.service.SettingApiService
;
import
com.gic.haoban.manage.web.qo.content.ContentMaterialQO
;
import
com.gic.haoban.manage.web.qo.content.ContentMaterialQO
;
import
com.gic.store.goods.dto.goods.GoodsSpuInfoDTO
;
import
com.gic.store.goods.dto.qdto.GoodsListQDTO
;
import
com.gic.store.goods.service.GoodsInfoOutApiService
;
import
com.gic.store.goods.service.GoodsInfoOutApiService
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
/**
* @Author MUSI
* @Author MUSI
...
@@ -22,6 +31,8 @@ import java.util.List;
...
@@ -22,6 +31,8 @@ import java.util.List;
@Component
@Component
public
class
GoodsInfoAdaptor
{
public
class
GoodsInfoAdaptor
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
GoodsInfoAdaptor
.
class
);
@Autowired
@Autowired
private
SettingApiService
settingApiService
;
private
SettingApiService
settingApiService
;
@Autowired
@Autowired
...
@@ -29,8 +40,29 @@ public class GoodsInfoAdaptor {
...
@@ -29,8 +40,29 @@ public class GoodsInfoAdaptor {
public
List
<
String
>
queryGoodsIdWithSearch
(
String
enterpriseId
,
String
search
)
{
public
List
<
String
>
queryGoodsIdWithSearch
(
String
enterpriseId
,
String
search
)
{
// 根据关键字查询1000个商品
// 根据关键字查询1000个商品
GoodsListQDTO
searchQdto
=
new
GoodsListQDTO
();
return
Collections
.
emptyList
();
searchQdto
.
setEnterpriseId
(
enterpriseId
);
searchQdto
.
setGoodsNameText
(
search
);
// 只查询ERP的
searchQdto
.
setSourceType
(
1
);
searchQdto
.
setPageNum
(
1
);
searchQdto
.
setPageSize
(
1000
);
ServiceResponse
<
Page
<
GoodsSpuInfoDTO
>>
serviceResponse
=
goodsInfoOutApiService
.
queryGoodsInfoList
(
searchQdto
);
if
(!
serviceResponse
.
isSuccess
())
{
log
.
info
(
"查询商品异常 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyList
();
}
if
(
serviceResponse
.
getResult
()
==
null
||
CollectionUtils
.
isEmpty
(
serviceResponse
.
getResult
().
getResult
()))
{
log
.
info
(
"查询商品异常 {}"
,
JSON
.
toJSONString
(
serviceResponse
));
return
Collections
.
emptyList
();
}
return
serviceResponse
.
getResult
()
.
getResult
()
.
stream
()
.
map
(
GoodsSpuInfoDTO:
:
getGoodsId
)
.
collect
(
Collectors
.
toList
());
}
}
/**
/**
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/vo/content/share/ContentMaterialLandingPageVO.java
View file @
29e4d6bc
...
@@ -40,11 +40,63 @@ public class ContentMaterialLandingPageVO implements Serializable {
...
@@ -40,11 +40,63 @@ public class ContentMaterialLandingPageVO implements Serializable {
*/
*/
private
Integer
showGoodsType
;
private
Integer
showGoodsType
;
// 跳转商城按钮权限
/**
* 跳转商城按钮权限
* 1 有权限; 0 无权限
*/
private
Integer
mallShop
;
private
Integer
mallShop
;
/**
/**
* 购物车数量
* 购物车数量
*/
*/
private
Integer
shoppingCartNum
;
private
Integer
shoppingCartNum
;
public
ContentMaterialInfoVO
getContentMaterialInfo
()
{
return
contentMaterialInfo
;
}
public
void
setContentMaterialInfo
(
ContentMaterialInfoVO
contentMaterialInfo
)
{
this
.
contentMaterialInfo
=
contentMaterialInfo
;
}
public
MaterialClerkInfo
getMaterialClerkInfo
()
{
return
materialClerkInfo
;
}
public
void
setMaterialClerkInfo
(
MaterialClerkInfo
materialClerkInfo
)
{
this
.
materialClerkInfo
=
materialClerkInfo
;
}
public
List
<
SimpleGoodsInfoVO
>
getGoodsInfos
()
{
return
goodsInfos
;
}
public
void
setGoodsInfos
(
List
<
SimpleGoodsInfoVO
>
goodsInfos
)
{
this
.
goodsInfos
=
goodsInfos
;
}
public
Integer
getShowGoodsType
()
{
return
showGoodsType
;
}
public
void
setShowGoodsType
(
Integer
showGoodsType
)
{
this
.
showGoodsType
=
showGoodsType
;
}
public
Integer
getMallShop
()
{
return
mallShop
;
}
public
void
setMallShop
(
Integer
mallShop
)
{
this
.
mallShop
=
mallShop
;
}
public
Integer
getShoppingCartNum
()
{
return
shoppingCartNum
;
}
public
void
setShoppingCartNum
(
Integer
shoppingCartNum
)
{
this
.
shoppingCartNum
=
shoppingCartNum
;
}
}
}
haoban-manage3-wx/src/main/webapp/WEB-INF/dubbo-haoban-manage-wx.xml
View file @
29e4d6bc
...
@@ -127,4 +127,6 @@
...
@@ -127,4 +127,6 @@
<dubbo:reference
id=
"newDataTargetConfigApiService"
interface=
"com.gic.enterprise.api.service.target.NewDataTargetConfigApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
id=
"newDataTargetConfigApiService"
interface=
"com.gic.enterprise.api.service.target.NewDataTargetConfigApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.store.goods.service.GoodsInfoOutApiService"
id=
"goodsInfoOutApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.store.goods.service.GoodsInfoOutApiService"
id=
"goodsInfoOutApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
<dubbo:reference
interface=
"com.gic.haoban.manage.api.service.content.MaterialShareLogApiService"
id=
"materialShareLogApiService"
timeout=
"100000"
retries=
"0"
check=
"false"
/>
</beans>
</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