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
030e1f53
Commit
030e1f53
authored
Dec 20, 2021
by
fudahua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
消息通知
parent
13992312
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
685 additions
and
17 deletions
+685
-17
NoticeMessageTypeEnum.java
...om/gic/haoban/manage/api/enums/NoticeMessageTypeEnum.java
+35
-8
NoticeMessageUtil.java
.../gic/haoban/manage/api/util/notify/NoticeMessageUtil.java
+10
-3
NoticeMessageTemplateMapper.java
...anage/service/dao/mapper/NoticeMessageTemplateMapper.java
+38
-0
TabNoticeMessageTemplate.java
...aoban/manage/service/entity/TabNoticeMessageTemplate.java
+188
-0
TemplateContentBO.java
.../gic/haoban/manage/service/pojo/bo/TemplateContentBO.java
+29
-0
NoticeMessageTemplateService.java
.../service/service/notify/NoticeMessageTemplateService.java
+30
-0
NoticeMessageTemplateServiceImpl.java
...service/notify/impl/NoticeMessageTemplateServiceImpl.java
+80
-0
NoticeMessageApiServiceImpl.java
...rvice/service/notify/out/NoticeMessageApiServiceImpl.java
+138
-3
NoticeMessageTemplateMapper.xml
...src/main/resources/mapper/NoticeMessageTemplateMapper.xml
+128
-0
test.java
haoban-manage3-service/src/test/java/test.java
+9
-3
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/NoticeMessageTypeEnum.java
View file @
030e1f53
...
...
@@ -4,13 +4,13 @@ package com.gic.haoban.manage.api.enums;
* Created by hua on 2021/12/17.
*/
public
enum
NoticeMessageTypeEnum
{
ACTIVITY_START
(
1001
,
"活动开始通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()),
ACTIVITY_NEW
(
1002
,
"活动上新通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()),
ACTIVITY_DEL
(
1003
,
"活动删除通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()),
ACTIVITY_OFFLINE
(
1004
,
"活动下线通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()),
ACTIVITY_END
(
1005
,
"活动结束通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()),
ACTIVITY_RANK
(
1006
,
"活动排名通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()),
ACTIVITY_AWARD
(
1007
,
"活动奖励通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
());
ACTIVITY_START
(
1001
,
"活动开始通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()
,
"activity_message"
,
""
),
ACTIVITY_NEW
(
1002
,
"活动上新通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()
,
"activity_message"
,
""
),
ACTIVITY_DEL
(
1003
,
"活动删除通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()
,
"activity_message"
,
""
),
ACTIVITY_OFFLINE
(
1004
,
"活动下线通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()
,
"activity_message"
,
""
),
ACTIVITY_END
(
1005
,
"活动结束通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()
,
"activity_message"
,
""
),
ACTIVITY_RANK
(
1006
,
"活动排名通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()
,
"activity_message"
,
""
),
ACTIVITY_AWARD
(
1007
,
"活动奖励通知"
,
NoticeMessageCategoryTypeEnum
.
ACTIVITY
.
getType
()
,
"activity_message"
,
""
);
/**
* 消息类型
*/
...
...
@@ -23,11 +23,30 @@ public enum NoticeMessageTypeEnum {
* 大类
*/
private
int
category
;
/**
* 模板类型
*/
private
String
templateCode
;
NoticeMessageTypeEnum
(
int
type
,
String
name
,
int
category
)
{
/**
* 活动页面
*/
private
String
pageUrl
;
NoticeMessageTypeEnum
(
int
type
,
String
name
,
int
category
,
String
templateCode
,
String
pageUrl
)
{
this
.
type
=
type
;
this
.
name
=
name
;
this
.
category
=
category
;
this
.
templateCode
=
templateCode
;
this
.
pageUrl
=
pageUrl
;
}
public
String
getTemplateCode
()
{
return
templateCode
;
}
public
void
setTemplateCode
(
String
templateCode
)
{
this
.
templateCode
=
templateCode
;
}
public
int
getType
()
{
...
...
@@ -54,6 +73,14 @@ public enum NoticeMessageTypeEnum {
this
.
category
=
category
;
}
public
String
getPageUrl
()
{
return
pageUrl
;
}
public
void
setPageUrl
(
String
pageUrl
)
{
this
.
pageUrl
=
pageUrl
;
}
public
static
NoticeMessageTypeEnum
getByType
(
int
type
)
{
for
(
NoticeMessageTypeEnum
messageTypeEnum
:
values
())
{
if
(
messageTypeEnum
.
getType
()
==
type
)
{
...
...
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/util/notify/NoticeMessageUtil.java
View file @
030e1f53
...
...
@@ -3,7 +3,9 @@ package com.gic.haoban.manage.api.util.notify;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.commons.util.GICMQClientUtil
;
import
com.gic.haoban.manage.api.dto.notify.qdto.NoticeMessageQDTO
;
import
com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum
;
import
com.gic.mq.sdk.GicMQClient
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
java.util.Map
;
...
...
@@ -27,16 +29,21 @@ public class NoticeMessageUtil {
* @param enterpriseId 企业id
* @param clerkId 执行人导购
* @param messageType 消息类型 NoticeMessageTypeEnum
* @param templateCode 模板code
* @param fieldMap 解析模板的字段
* @param extendField 拓展字段给前端使用 没有可以为null
*/
public
static
void
sendNoticeMessage
(
String
enterpriseId
,
String
clerkId
,
int
messageType
,
String
templateCode
,
Map
<
String
,
String
>
fieldMap
,
Map
<
String
,
Object
>
extendField
)
{
public
static
void
sendNoticeMessage
(
String
enterpriseId
,
String
clerkId
,
int
messageType
,
Map
<
String
,
String
>
fieldMap
,
Map
<
String
,
Object
>
extendField
)
{
if
(
StringUtils
.
isAnyBlank
(
enterpriseId
,
clerkId
))
{
throw
new
RuntimeException
(
"必传参数没传"
);
}
NoticeMessageTypeEnum
messageTypeEnum
=
NoticeMessageTypeEnum
.
getByType
(
messageType
);
if
(
messageTypeEnum
==
null
)
{
throw
new
RuntimeException
(
"消息类型不存在"
);
}
NoticeMessageQDTO
noticeMessageQDTO
=
new
NoticeMessageQDTO
();
noticeMessageQDTO
.
setEnterpriseId
(
enterpriseId
);
noticeMessageQDTO
.
setClerkId
(
clerkId
);
noticeMessageQDTO
.
setMessageType
(
messageType
);
noticeMessageQDTO
.
setTemplateCode
(
templateCode
);
noticeMessageQDTO
.
setContentMap
(
fieldMap
);
noticeMessageQDTO
.
setExtendContent
(
extendField
);
String
ret
=
JSONObject
.
toJSONString
(
noticeMessageQDTO
);
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/NoticeMessageTemplateMapper.java
0 → 100644
View file @
030e1f53
package
com
.
gic
.
haoban
.
manage
.
service
.
dao
.
mapper
;
import
com.gic.haoban.manage.service.entity.TabNoticeMessageTemplate
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
@Mapper
public
interface
NoticeMessageTemplateMapper
{
/**
*/
int
deleteByPrimaryKey
(
Integer
noticeMessageTemplateId
);
/**
*/
int
insert
(
TabNoticeMessageTemplate
record
);
/**
*/
int
insertSelective
(
TabNoticeMessageTemplate
record
);
/**
*/
TabNoticeMessageTemplate
selectByPrimaryKey
(
Integer
noticeMessageTemplateId
);
/**
*/
int
updateByPrimaryKeySelective
(
TabNoticeMessageTemplate
record
);
/**
*/
int
updateByPrimaryKey
(
TabNoticeMessageTemplate
record
);
/**
* 模板
*/
TabNoticeMessageTemplate
getByCode
(
@Param
(
"enterpriseId"
)
String
enterpriseId
,
@Param
(
"templateCode"
)
String
templateCode
);
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/TabNoticeMessageTemplate.java
0 → 100644
View file @
030e1f53
package
com
.
gic
.
haoban
.
manage
.
service
.
entity
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* Created By MBG-GUI-EXTENSION https://github.com/spawpaw/mybatis-generator-gui-extension
* Description:
*
* @author fdh
*/
public
class
TabNoticeMessageTemplate
implements
Serializable
{
/**
*
*/
private
Integer
noticeMessageTemplateId
;
/**
* 企业id
*/
private
String
enterpriseId
;
/**
* 模板编号
*/
private
String
templateCode
;
/**
* 模板内容
*/
private
String
content
;
private
String
noticeContent
;
/**
* 是否删除
*/
private
Integer
deleteFlag
;
/**
*
*/
private
Date
createTime
;
/**
*
*/
private
Date
updateTime
;
/**
*/
private
static
final
long
serialVersionUID
=
1L
;
public
String
getNoticeContent
()
{
return
noticeContent
;
}
public
void
setNoticeContent
(
String
noticeContent
)
{
this
.
noticeContent
=
noticeContent
;
}
/**
* This method returns the value of the database column tab_haoban_notice_message_template.notice_message_template_id
*
* @return the value of tab_haoban_notice_message_template.notice_message_template_id
*/
public
Integer
getNoticeMessageTemplateId
()
{
return
noticeMessageTemplateId
;
}
/**
* This method sets the value of the database column tab_haoban_notice_message_template.notice_message_template_id
*
* @param noticeMessageTemplateId the value for tab_haoban_notice_message_template.notice_message_template_id
*/
public
void
setNoticeMessageTemplateId
(
Integer
noticeMessageTemplateId
)
{
this
.
noticeMessageTemplateId
=
noticeMessageTemplateId
;
}
/**
* This method returns the value of the database column tab_haoban_notice_message_template.enterprise_id
*
* @return the value of tab_haoban_notice_message_template.enterprise_id
*/
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
/**
* This method sets the value of the database column tab_haoban_notice_message_template.enterprise_id
*
* @param enterpriseId the value for tab_haoban_notice_message_template.enterprise_id
*/
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
/**
* This method returns the value of the database column tab_haoban_notice_message_template.template_code
*
* @return the value of tab_haoban_notice_message_template.template_code
*/
public
String
getTemplateCode
()
{
return
templateCode
;
}
/**
* This method sets the value of the database column tab_haoban_notice_message_template.template_code
*
* @param templateCode the value for tab_haoban_notice_message_template.template_code
*/
public
void
setTemplateCode
(
String
templateCode
)
{
this
.
templateCode
=
templateCode
;
}
/**
* This method returns the value of the database column tab_haoban_notice_message_template.content
*
* @return the value of tab_haoban_notice_message_template.content
*/
public
String
getContent
()
{
return
content
;
}
/**
* This method sets the value of the database column tab_haoban_notice_message_template.content
*
* @param content the value for tab_haoban_notice_message_template.content
*/
public
void
setContent
(
String
content
)
{
this
.
content
=
content
;
}
/**
* This method returns the value of the database column tab_haoban_notice_message_template.delete_flag
*
* @return the value of tab_haoban_notice_message_template.delete_flag
*/
public
Integer
getDeleteFlag
()
{
return
deleteFlag
;
}
/**
* This method sets the value of the database column tab_haoban_notice_message_template.delete_flag
*
* @param deleteFlag the value for tab_haoban_notice_message_template.delete_flag
*/
public
void
setDeleteFlag
(
Integer
deleteFlag
)
{
this
.
deleteFlag
=
deleteFlag
;
}
/**
* This method returns the value of the database column tab_haoban_notice_message_template.create_time
*
* @return the value of tab_haoban_notice_message_template.create_time
*/
public
Date
getCreateTime
()
{
return
createTime
;
}
/**
* This method sets the value of the database column tab_haoban_notice_message_template.create_time
*
* @param createTime the value for tab_haoban_notice_message_template.create_time
*/
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
/**
* This method returns the value of the database column tab_haoban_notice_message_template.update_time
*
* @return the value of tab_haoban_notice_message_template.update_time
*/
public
Date
getUpdateTime
()
{
return
updateTime
;
}
/**
* This method sets the value of the database column tab_haoban_notice_message_template.update_time
*
* @param updateTime the value for tab_haoban_notice_message_template.update_time
*/
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/TemplateContentBO.java
0 → 100644
View file @
030e1f53
package
com
.
gic
.
haoban
.
manage
.
service
.
pojo
.
bo
;
import
java.io.Serializable
;
/**
* Created 2021/12/17.
*
* @author hua
*/
public
class
TemplateContentBO
implements
Serializable
{
private
String
key
;
private
String
val
;
public
String
getKey
()
{
return
key
;
}
public
void
setKey
(
String
key
)
{
this
.
key
=
key
;
}
public
String
getVal
()
{
return
val
;
}
public
void
setVal
(
String
val
)
{
this
.
val
=
val
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/notify/NoticeMessageTemplateService.java
0 → 100644
View file @
030e1f53
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
notify
;
import
com.gic.haoban.manage.service.pojo.bo.TemplateContentBO
;
import
java.util.List
;
/**
* Created 2021/12/17.
*
* @author hua
*/
public
interface
NoticeMessageTemplateService
{
/**
* 获取模板消息 企业微信
*
* @param enterpriseId
* @param templateCode
* @return
*/
public
List
<
TemplateContentBO
>
getQywxTemplateMessage
(
String
enterpriseId
,
String
templateCode
);
/**
* 获取模板消息 好办内部
*
* @param enterpriseId
* @param templateCode
* @return
*/
public
String
getHaobanTemplateMessage
(
String
enterpriseId
,
String
templateCode
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/notify/impl/NoticeMessageTemplateServiceImpl.java
0 → 100644
View file @
030e1f53
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
notify
.
impl
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.haoban.manage.service.dao.mapper.NoticeMessageTemplateMapper
;
import
com.gic.haoban.manage.service.entity.TabNoticeMessageTemplate
;
import
com.gic.haoban.manage.service.pojo.bo.TemplateContentBO
;
import
com.gic.haoban.manage.service.service.notify.NoticeMessageTemplateService
;
import
com.gic.redis.data.util.RedisUtil
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* Created 2021/12/17.
*
* @author hua
*/
@Service
public
class
NoticeMessageTemplateServiceImpl
implements
NoticeMessageTemplateService
{
private
static
final
String
QYWX_TEMPLATE_KEY
=
"qywx-notice-message-template:"
;
private
static
final
String
HAOBAN_TEMPLATE_KEY
=
"haoban-notice-message-template:"
;
private
static
final
Long
TIME_OUT
=
24
*
60
*
60L
;
@Autowired
private
NoticeMessageTemplateMapper
noticeMessageTemplateMapper
;
@Override
public
List
<
TemplateContentBO
>
getQywxTemplateMessage
(
String
enterpriseId
,
String
templateCode
)
{
String
key
=
QYWX_TEMPLATE_KEY
+
templateCode
+
":"
+
enterpriseId
;
String
content
=
(
String
)
RedisUtil
.
getCache
(
key
);
if
(
StringUtils
.
isNotBlank
(
content
))
{
return
JSONArray
.
parseArray
(
content
,
TemplateContentBO
.
class
);
}
String
lockKey
=
QYWX_TEMPLATE_KEY
+
templateCode
+
":"
+
enterpriseId
+
";lock"
;
RedisUtil
.
lock
(
lockKey
,
2L
);
TabNoticeMessageTemplate
messageTemplate
=
noticeMessageTemplateMapper
.
getByCode
(
enterpriseId
,
templateCode
);
if
(
messageTemplate
==
null
)
{
messageTemplate
=
noticeMessageTemplateMapper
.
getByCode
(
"-1"
,
templateCode
);
}
if
(
messageTemplate
==
null
)
{
RedisUtil
.
unlock
(
lockKey
);
return
null
;
}
content
=
messageTemplate
.
getContent
();
RedisUtil
.
setCache
(
key
,
content
,
TIME_OUT
);
RedisUtil
.
unlock
(
lockKey
);
return
JSONArray
.
parseArray
(
content
,
TemplateContentBO
.
class
);
}
@Override
public
String
getHaobanTemplateMessage
(
String
enterpriseId
,
String
templateCode
)
{
String
key
=
HAOBAN_TEMPLATE_KEY
+
templateCode
+
":"
+
enterpriseId
;
String
content
=
(
String
)
RedisUtil
.
getCache
(
key
);
if
(
StringUtils
.
isNotBlank
(
content
))
{
return
content
;
}
String
lockKey
=
HAOBAN_TEMPLATE_KEY
+
templateCode
+
":"
+
enterpriseId
+
";lock"
;
RedisUtil
.
lock
(
lockKey
,
2L
);
TabNoticeMessageTemplate
messageTemplate
=
noticeMessageTemplateMapper
.
getByCode
(
enterpriseId
,
templateCode
);
if
(
messageTemplate
==
null
)
{
messageTemplate
=
noticeMessageTemplateMapper
.
getByCode
(
"-1"
,
templateCode
);
}
if
(
messageTemplate
==
null
)
{
RedisUtil
.
unlock
(
lockKey
);
return
null
;
}
content
=
messageTemplate
.
getNoticeContent
();
RedisUtil
.
setCache
(
key
,
content
,
TIME_OUT
);
RedisUtil
.
unlock
(
lockKey
);
return
content
;
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/notify/out/NoticeMessageApiServiceImpl.java
View file @
030e1f53
package
com
.
gic
.
haoban
.
manage
.
service
.
service
.
notify
.
out
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.clerk.api.dto.ClerkDTO
;
import
com.gic.clerk.api.service.ClerkService
;
import
com.gic.haoban.manage.api.dto.StaffClerkRelationDTO
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseDTO
;
import
com.gic.haoban.manage.api.dto.notify.qdto.NoticeMessageQDTO
;
import
com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum
;
import
com.gic.haoban.manage.api.service.notify.NoticeMessageApiService
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.pojo.bo.NoticeMessageBO
;
import
com.gic.haoban.manage.service.pojo.bo.TemplateContentBO
;
import
com.gic.haoban.manage.service.service.StaffClerkRelationService
;
import
com.gic.haoban.manage.service.service.WxEnterpriseService
;
import
com.gic.haoban.manage.service.service.notify.NoticeMessageService
;
import
com.gic.haoban.manage.service.service.notify.NoticeMessageTemplateService
;
import
com.gic.wechat.api.dto.qywx.ItemDTO
;
import
com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO
;
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.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
static
org
.
slf4j
.
LoggerFactory
.
getLogger
;
/**
...
...
@@ -26,15 +44,132 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
@Autowired
private
ClerkService
clerkService
;
@Autowired
private
NoticeMessageTemplateService
noticeMessageTemplateService
;
@Autowired
private
Config
config
;
@Autowired
private
StaffClerkRelationService
staffClerkRelationService
;
@Autowired
private
NoticeMessageService
noticeMessageService
;
@Autowired
private
QywxSuiteApiService
qywxSuiteApiService
;
@Autowired
private
WxEnterpriseService
wxEnterpriseService
;
@Override
public
void
noticeMessageMq
(
String
json
)
{
logger
.
info
(
"通知消息:{}"
,
json
);
NoticeMessageQDTO
messageQDTO
=
JSONObject
.
parseObject
(
json
,
NoticeMessageQDTO
.
class
);
ClerkDTO
clerkDTO
=
clerkService
.
getClerkByClerkId
(
messageQDTO
.
getClerkId
());
NoticeMessageTypeEnum
messageTypeEnum
=
NoticeMessageTypeEnum
.
getByType
(
messageQDTO
.
getMessageType
());
messageQDTO
.
setTemplateCode
(
messageTypeEnum
.
getTemplateCode
());
//企业微信模板
List
<
TemplateContentBO
>
contentList
=
getDescriotion
(
messageQDTO
);
//好办模板
String
haobanNotice
=
getHaobanNotice
(
messageQDTO
);
//模板不存在
if
(
CollectionUtils
.
isEmpty
(
contentList
)
||
StringUtils
.
isBlank
(
haobanNotice
))
{
logger
.
info
(
"没有模板,无法发送消息:{}"
,
messageQDTO
.
getTemplateCode
());
return
;
}
StaffClerkRelationDTO
clerkRelationDTO
=
staffClerkRelationService
.
getBindByClerkId
(
messageQDTO
.
getClerkId
(),
messageQDTO
.
getEnterpriseId
());
if
(
clerkRelationDTO
==
null
)
{
logger
.
info
(
"没有导购:{}"
,
messageQDTO
.
getClerkId
());
return
;
}
//消息组装 新增消息
NoticeMessageBO
noticeMessageBO
=
new
NoticeMessageBO
();
noticeMessageBO
.
setCategoryType
(
NoticeMessageTypeEnum
.
getByType
(
messageQDTO
.
getMessageType
())
.
getType
());
noticeMessageBO
.
setCategoryType
(
messageTypeEnum
.
getType
());
noticeMessageBO
.
setMessageType
(
messageQDTO
.
getMessageType
());
noticeMessageBO
.
setClerkId
(
messageQDTO
.
getClerkId
());
noticeMessageBO
.
setStoreId
(
clerkRelationDTO
.
getStoreId
());
noticeMessageBO
.
setTitle
(
messageTypeEnum
.
getName
());
noticeMessageBO
.
setDescription
(
haobanNotice
);
noticeMessageBO
.
setEnterpriseId
(
messageQDTO
.
getEnterpriseId
());
noticeMessageBO
.
setRelationId
(
messageQDTO
.
getOptTargetId
());
noticeMessageService
.
addOrCreateNoticeMessage
(
noticeMessageBO
);
//发送企业微信
sendMessage
(
contentList
,
clerkRelationDTO
.
getWxEnterpriseId
(),
clerkRelationDTO
.
getWxUserId
(),
messageTypeEnum
);
}
/**
* 获取详情
*
* @param messageQDTO
* @return
*/
private
List
<
TemplateContentBO
>
getDescriotion
(
NoticeMessageQDTO
messageQDTO
)
{
List
<
TemplateContentBO
>
templateMessage
=
noticeMessageTemplateService
.
getQywxTemplateMessage
(
messageQDTO
.
getEnterpriseId
(),
messageQDTO
.
getTemplateCode
());
if
(
CollectionUtils
.
isEmpty
(
templateMessage
))
{
//todo 需要告警
logger
.
info
(
"不存在模板"
);
return
null
;
}
//需要替换的数据
Map
<
String
,
String
>
contentMap
=
messageQDTO
.
getContentMap
();
//替换的内容
for
(
TemplateContentBO
templateContentBO
:
templateMessage
)
{
contentMap
.
forEach
((
k
,
v
)
->
{
templateContentBO
.
getVal
().
replaceAll
(
"#{"
+
k
+
"}"
,
v
);
});
}
return
templateMessage
;
}
/**
* 获取详情好办的通知
*
* @param messageQDTO
* @return
*/
private
String
getHaobanNotice
(
NoticeMessageQDTO
messageQDTO
)
{
String
haobanTemplateMessage
=
noticeMessageTemplateService
.
getHaobanTemplateMessage
(
messageQDTO
.
getEnterpriseId
(),
messageQDTO
.
getTemplateCode
());
if
(
StringUtils
.
isBlank
(
haobanTemplateMessage
))
{
//todo 需要告警
logger
.
info
(
"不存在好办的通知模板模板"
);
return
null
;
}
//需要替换的数据
Map
<
String
,
String
>
contentMap
=
messageQDTO
.
getContentMap
();
//替换的内容
contentMap
.
forEach
((
k
,
v
)
->
{
haobanTemplateMessage
.
replaceAll
(
"#{"
+
k
+
"}"
,
v
);
});
return
haobanTemplateMessage
;
}
/**
* 发送消息
*
* @param contentList
* @param wxUserId
* @param messageTypeEnum
*/
private
void
sendMessage
(
List
<
TemplateContentBO
>
contentList
,
String
wxEnterpriseId
,
String
wxUserId
,
NoticeMessageTypeEnum
messageTypeEnum
)
{
WxEnterpriseDTO
wxEnterpriseDTO
=
wxEnterpriseService
.
selectById
(
wxEnterpriseId
);
QywxXcxSendMessageDTO
messageDTO
=
new
QywxXcxSendMessageDTO
();
//后续map加判断可加参数
Map
<
String
,
String
>
map
=
new
HashMap
<>();
List
<
ItemDTO
>
items
=
contentList
.
stream
().
map
(
bo
->
{
ItemDTO
item
=
new
ItemDTO
();
item
.
setKey
(
bo
.
getKey
());
item
.
setValue
(
bo
.
getVal
());
return
item
;
}).
collect
(
Collectors
.
toList
());
List
<
String
>
userList
=
new
ArrayList
<>();
userList
.
add
(
wxUserId
);
messageDTO
.
setAppid
(
config
.
getAppid
());
messageDTO
.
setUserIds
(
userList
);
messageDTO
.
setPage
(
messageTypeEnum
.
getPageUrl
());
messageDTO
.
setTitle
(
messageTypeEnum
.
getName
());
messageDTO
.
setItems
(
items
);
qywxSuiteApiService
.
sendMessage
(
wxEnterpriseDTO
.
getCorpid
(),
config
.
getWxSuiteid
(),
messageDTO
);
}
}
haoban-manage3-service/src/main/resources/mapper/NoticeMessageTemplateMapper.xml
0 → 100644
View file @
030e1f53
<?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.NoticeMessageTemplateMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.gic.haoban.manage.service.entity.TabNoticeMessageTemplate"
>
<id
column=
"notice_message_template_id"
jdbcType=
"INTEGER"
property=
"noticeMessageTemplateId"
/>
<result
column=
"enterprise_id"
jdbcType=
"VARCHAR"
property=
"enterpriseId"
/>
<result
column=
"template_code"
jdbcType=
"VARCHAR"
property=
"templateCode"
/>
<result
column=
"content"
jdbcType=
"VARCHAR"
property=
"content"
/>
<result
column=
"notice_content"
jdbcType=
"VARCHAR"
property=
"noticeContent"
/>
<result
column=
"delete_flag"
jdbcType=
"INTEGER"
property=
"deleteFlag"
/>
<result
column=
"create_time"
jdbcType=
"TIMESTAMP"
property=
"createTime"
/>
<result
column=
"update_time"
jdbcType=
"TIMESTAMP"
property=
"updateTime"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
notice_message_template_id, enterprise_id, template_code, content,notice_content, delete_flag, create_time,
update_time
</sql>
<select
id=
"selectByPrimaryKey"
parameterType=
"java.lang.Integer"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from tab_haoban_notice_message_template
where notice_message_template_id = #{noticeMessageTemplateId,jdbcType=INTEGER}
</select>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Integer"
>
delete from tab_haoban_notice_message_template
where notice_message_template_id = #{noticeMessageTemplateId,jdbcType=INTEGER}
</delete>
<insert
id=
"insert"
parameterType=
"com.gic.haoban.manage.service.entity.TabNoticeMessageTemplate"
>
insert into tab_haoban_notice_message_template (notice_message_template_id, enterprise_id,
template_code, content, delete_flag,
create_time, update_time)
values (#{noticeMessageTemplateId,jdbcType=INTEGER}, #{enterpriseId,jdbcType=VARCHAR},
#{templateCode,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR}, #{deleteFlag,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert
id=
"insertSelective"
parameterType=
"com.gic.haoban.manage.service.entity.TabNoticeMessageTemplate"
>
insert into tab_haoban_notice_message_template
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"noticeMessageTemplateId != null"
>
notice_message_template_id,
</if>
<if
test=
"enterpriseId != null"
>
enterprise_id,
</if>
<if
test=
"templateCode != null"
>
template_code,
</if>
<if
test=
"content != null"
>
content,
</if>
<if
test=
"deleteFlag != null"
>
delete_flag,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"noticeMessageTemplateId != null"
>
#{noticeMessageTemplateId,jdbcType=INTEGER},
</if>
<if
test=
"enterpriseId != null"
>
#{enterpriseId,jdbcType=VARCHAR},
</if>
<if
test=
"templateCode != null"
>
#{templateCode,jdbcType=VARCHAR},
</if>
<if
test=
"content != null"
>
#{content,jdbcType=VARCHAR},
</if>
<if
test=
"deleteFlag != null"
>
#{deleteFlag,jdbcType=INTEGER},
</if>
<if
test=
"createTime != null"
>
#{createTime,jdbcType=TIMESTAMP},
</if>
<if
test=
"updateTime != null"
>
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"com.gic.haoban.manage.service.entity.TabNoticeMessageTemplate"
>
update tab_haoban_notice_message_template
<set>
<if
test=
"enterpriseId != null"
>
enterprise_id = #{enterpriseId,jdbcType=VARCHAR},
</if>
<if
test=
"templateCode != null"
>
template_code = #{templateCode,jdbcType=VARCHAR},
</if>
<if
test=
"content != null"
>
content = #{content,jdbcType=VARCHAR},
</if>
<if
test=
"deleteFlag != null"
>
delete_flag = #{deleteFlag,jdbcType=INTEGER},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where notice_message_template_id = #{noticeMessageTemplateId,jdbcType=INTEGER}
</update>
<update
id=
"updateByPrimaryKey"
parameterType=
"com.gic.haoban.manage.service.entity.TabNoticeMessageTemplate"
>
update tab_haoban_notice_message_template
set enterprise_id = #{enterpriseId,jdbcType=VARCHAR},
template_code = #{templateCode,jdbcType=VARCHAR},
content = #{content,jdbcType=VARCHAR},
delete_flag = #{deleteFlag,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where notice_message_template_id = #{noticeMessageTemplateId,jdbcType=INTEGER}
</update>
<select
id=
"getByCode"
parameterType=
"java.lang.Integer"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from tab_haoban_notice_message_template
where template_code = #{templateCode} and enterprise_id=#{enterpriseId} and delete_flag=0
</select>
</mapper>
\ No newline at end of file
haoban-manage3-service/src/test/java/test.java
View file @
030e1f53
...
...
@@ -3,6 +3,8 @@ import java.time.LocalDateTime;
import
java.time.ZoneOffset
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
...
...
@@ -15,10 +17,14 @@ import org.apache.commons.lang3.time.DateUtils;
public
class
test
{
public
static
void
main
(
String
[]
args
)
{
String
content
=
"请完善完善202005门店指标月份指"
;
String
pattern
=
".*([0-1]{6}).*"
;
Pattern
r
=
Pattern
.
compile
(
pattern
);
Matcher
matcher
=
r
.
matcher
(
content
);
String
s
=
matcher
.
find
()
?
matcher
.
group
(
1
)
:
""
;
System
.
out
.
println
(
s
);
DateTime
parse
=
DateUtil
.
parse
(
"2021-10-11"
);
int
i
=
DateUtil
.
weekOfYear
(
parse
);
System
.
out
.
println
(
i
);
// String key = "3.2.1";
// String[] split = key.split(".");
//
...
...
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