Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
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
徐少华
midjourney-proxy
Commits
776317fd
Commit
776317fd
authored
Feb 10, 2020
by
章春雨
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-1002281' into 'master'
feature-1002281 See merge request rays/pcloud-book!369
parents
10bf6083
7d2facd0
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
150 additions
and
22 deletions
+150
-22
BookApplication.java
...e-book/src/main/java/com/pcloud/book/BookApplication.java
+36
-0
DelayQueueConstant.java
...va/com/pcloud/book/guide/constant/DelayQueueConstant.java
+12
-0
PcloudGuideDelayMsgDto.java
...ava/com/pcloud/book/guide/dto/PcloudGuideDelayMsgDto.java
+25
-0
PcloudGuideListener.java
...a/com/pcloud/book/guide/listener/PcloudGuideListener.java
+53
-0
BookGuideBizImpl.java
...a/com/pcloud/book/keywords/biz/impl/BookGuideBizImpl.java
+24
-22
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/BookApplication.java
View file @
776317fd
...
...
@@ -8,7 +8,9 @@ import com.pcloud.common.core.mq.RabbitMQFactory;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.amqp.core.Binding
;
import
org.springframework.amqp.core.DirectExchange
;
import
org.springframework.amqp.core.Queue
;
import
org.springframework.amqp.core.QueueBuilder
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
...
...
@@ -20,6 +22,8 @@ import org.springframework.context.annotation.Configuration;
import
org.springframework.context.annotation.PropertySource
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.Map
;
import
javax.sql.DataSource
;
...
...
@@ -31,6 +35,8 @@ import springfox.documentation.spi.DocumentationType;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
import
static
com
.
pcloud
.
book
.
guide
.
constant
.
DelayQueueConstant
.*;
@SpringBootApplication
@ComponentScan
(
"com.pcloud"
)
@EnableEurekaClient
...
...
@@ -232,4 +238,34 @@ public class BookApplication {
public
Binding
someUserScanBookGroupBind
(){
return
RabbitMQFactory
.
bindingExchange
(
someUserScanBookGroupQueue
(),
MQTopicProducer
.
SOME_USER_SCAN_BOOK_GROUP
);
}
@Bean
public
DirectExchange
pcloudGuideDelayExchange
(){
return
new
DirectExchange
(
BOOK_DELAY_EXCHANGE
,
true
,
false
);
}
@Bean
public
Queue
pcloudGuideDelayMessageQueue
(){
return
QueueBuilder
.
durable
(
BOOK_DELAY_QUEUE
).
build
();
}
@Bean
public
Binding
pcloudGuideDelayQueueBinding
(){
return
new
Binding
(
BOOK_DELAY_QUEUE
,
Binding
.
DestinationType
.
QUEUE
,
BOOK_DELAY_EXCHANGE
,
BOOK_DELAY_KEY
,
null
);
}
@Bean
public
Queue
pcloudGuideDelayDeadLetterQueue
(){
Map
<
String
,
Object
>
properties
=
new
HashMap
<>();
properties
.
put
(
"x-dead-letter-exchange"
,
BOOK_DELAY_EXCHANGE
);
properties
.
put
(
"x-dead-letter-routing-key"
,
BOOK_DELAY_KEY
);
return
QueueBuilder
.
durable
(
BOOK_DELAY_DEAD_LETTER_QUEUE
).
withArguments
(
properties
).
build
();
}
@Bean
public
Binding
pcloudGuideDelayDeadLetterQueueBinding
(){
return
new
Binding
(
BOOK_DELAY_DEAD_LETTER_QUEUE
,
Binding
.
DestinationType
.
QUEUE
,
BOOK_DELAY_EXCHANGE
,
BOOK_DELAY_DEAD_LETTER_KEY
,
null
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/guide/constant/DelayQueueConstant.java
0 → 100644
View file @
776317fd
package
com
.
pcloud
.
book
.
guide
.
constant
;
public
class
DelayQueueConstant
{
public
static
final
String
BOOK_DELAY_EXCHANGE
=
"BOOK_PCLOUD_GUIDE_DELAY_EXCHANGE"
;
public
static
final
String
BOOK_DELAY_QUEUE
=
"BOOK_PCLOUD_GUIDE_DELAY_QUEUE"
;
public
static
final
String
BOOK_DELAY_KEY
=
"BOOK_PCLOUD_GUIDE_DELAY_ROUTING_KEY"
;
public
static
final
String
BOOK_DELAY_DEAD_LETTER_QUEUE
=
"BOOK_PCLOUD_GUIDE_DELAY_DEAD_LETTER_QUEUE"
;
public
static
final
String
BOOK_DELAY_DEAD_LETTER_KEY
=
"BOOK_PCLOUD_GUIDE_DELAY_DEAD_LETTER_ROUTING_KEY"
;
}
pcloud-service-book/src/main/java/com/pcloud/book/guide/dto/PcloudGuideDelayMsgDto.java
0 → 100644
View file @
776317fd
package
com
.
pcloud
.
book
.
guide
.
dto
;
import
com.pcloud.book.guide.vo.PcloudGuideMessageVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
PcloudGuideDelayMsgDto
{
private
PcloudGuideMessageVO
pcloudGuideMessageVO
;
private
String
robotId
;
private
String
wxId
;
private
String
ip
;
private
Integer
code
;
}
pcloud-service-book/src/main/java/com/pcloud/book/guide/listener/PcloudGuideListener.java
0 → 100644
View file @
776317fd
package
com
.
pcloud
.
book
.
guide
.
listener
;
import
com.alibaba.fastjson.JSONObject
;
import
com.pcloud.book.guide.dto.PcloudGuideDelayMsgDto
;
import
com.pcloud.book.guide.vo.PcloudGuideMessageVO
;
import
com.pcloud.book.keywords.enums.ReplyTypeEnum
;
import
com.sdk.wxgroup.SendPicMessageVO
;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.rabbit.annotation.RabbitHandler
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.messaging.handler.annotation.Payload
;
import
org.springframework.stereotype.Component
;
import
static
com
.
pcloud
.
book
.
guide
.
constant
.
DelayQueueConstant
.
BOOK_DELAY_QUEUE
;
/**
* 平台端 个人号 引导语 延时消息监听
*/
@Slf4j
@Component
public
class
PcloudGuideListener
{
@RabbitListener
(
queues
=
BOOK_DELAY_QUEUE
)
@RabbitHandler
public
void
activeRemind
(
@Payload
String
body
)
{
PcloudGuideDelayMsgDto
msgDto
=
JSONObject
.
parseObject
(
body
,
PcloudGuideDelayMsgDto
.
class
);
PcloudGuideMessageVO
message
=
msgDto
.
getPcloudGuideMessageVO
();
Integer
replyType
=
message
.
getReplyType
();
if
(
ReplyTypeEnum
.
TEXT
.
value
.
equals
(
replyType
)){
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
sendTextMessageVO
.
setContent
(
message
.
getContent
());
sendTextMessageVO
.
setAltId
(
msgDto
.
getRobotId
());
sendTextMessageVO
.
setWxGroupId
(
msgDto
.
getWxId
());
sendTextMessageVO
.
setIp
(
msgDto
.
getIp
());
sendTextMessageVO
.
setCode
(
msgDto
.
getCode
());
WxGroupSDK
.
sendTextMessage
(
sendTextMessageVO
);
}
if
(
ReplyTypeEnum
.
IMAGE
.
value
.
equals
(
replyType
))
{
SendPicMessageVO
sendPicMessageVO
=
new
SendPicMessageVO
();
sendPicMessageVO
.
setPicUrl
(
message
.
getPicUrl
());
sendPicMessageVO
.
setAltId
(
msgDto
.
getRobotId
());
sendPicMessageVO
.
setWxGroupId
(
msgDto
.
getWxId
());
sendPicMessageVO
.
setIp
(
msgDto
.
getIp
());
sendPicMessageVO
.
setCode
(
msgDto
.
getCode
());
WxGroupSDK
.
sendPicMessage
(
sendPicMessageVO
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/keywords/biz/impl/BookGuideBizImpl.java
View file @
776317fd
...
...
@@ -34,6 +34,7 @@ import com.pcloud.book.group.enums.CipherTypeEnum;
import
com.pcloud.book.group.enums.TouchTypeEnum
;
import
com.pcloud.book.group.tools.SendWeixinRequestTools
;
import
com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO
;
import
com.pcloud.book.guide.dto.PcloudGuideDelayMsgDto
;
import
com.pcloud.book.guide.entity.PcloudGuide
;
import
com.pcloud.book.guide.mapper.PcloudGuideMapper
;
import
com.pcloud.book.guide.mapper.PcloudGuideMessageMapper
;
...
...
@@ -80,7 +81,12 @@ import com.sdk.wxgroup.SendMessageTypeEnum;
import
com.sdk.wxgroup.SendPicMessageVO
;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
lombok.extern.slf4j.Slf4j
;
import
com.sdk.wxgroup.*
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.core.MessageProperties
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -94,8 +100,14 @@ import java.util.Date;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.atomic.AtomicInteger
;
import
java.util.stream.Collectors
;
import
lombok.extern.slf4j.Slf4j
;
import
static
com
.
pcloud
.
book
.
guide
.
constant
.
DelayQueueConstant
.
BOOK_DELAY_DEAD_LETTER_KEY
;
import
static
com
.
pcloud
.
book
.
guide
.
constant
.
DelayQueueConstant
.
BOOK_DELAY_EXCHANGE
;
/**
* @author lily
* @date 2019/4/23 15:47
...
...
@@ -153,6 +165,8 @@ public class BookGuideBizImpl implements BookGuideBiz {
private
PcloudRobotDao
pcloudRobotDao
;
@Autowired
private
PcloudGuideMapper
pcloudGuideMapper
;
@Autowired
private
RabbitTemplate
rabbitTemplate
;
@Value
(
"${system.env}"
)
private
String
envStr
;
...
...
@@ -323,30 +337,18 @@ public class BookGuideBizImpl implements BookGuideBiz {
if
(
null
!=
pcloudRobot
)
{
List
<
PcloudGuide
>
list
=
pcloudGuideMapper
.
listByRobotId
(
robotId
);
if
(!
ListUtils
.
isEmpty
(
list
))
{
AtomicInteger
timeSpan
=
new
AtomicInteger
();
list
.
forEach
(
pcloudGuide
->
{
//todo 此处要考虑时间间隔
Integer
timeSpan
=
pcloudGuide
.
getTimeSpan
();
timeSpan
.
addAndGet
(
pcloudGuide
.
getTimeSpan
()
==
null
?
0
:
pcloudGuide
.
getTimeSpan
());
List
<
PcloudGuideMessageVO
>
messageVOList
=
pcloudGuideMessageMapper
.
listByGuideId
(
pcloudGuide
.
getId
());
messageVOList
.
forEach
(
message
->
{
Integer
replyType
=
message
.
getReplyType
();
if
(
ReplyTypeEnum
.
TEXT
.
value
.
equals
(
replyType
)){
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
sendTextMessageVO
.
setContent
(
message
.
getContent
());
sendTextMessageVO
.
setAltId
(
robotId
);
sendTextMessageVO
.
setWxGroupId
(
userWxId
);
sendTextMessageVO
.
setIp
(
ip
);
sendTextMessageVO
.
setCode
(
code
);
WxGroupSDK
.
sendTextMessage
(
sendTextMessageVO
);
}
if
(
ReplyTypeEnum
.
IMAGE
.
value
.
equals
(
replyType
))
{
SendPicMessageVO
sendPicMessageVO
=
new
SendPicMessageVO
();
sendPicMessageVO
.
setWxGroupId
(
userWxId
);
sendPicMessageVO
.
setAltId
(
robotId
);
sendPicMessageVO
.
setPicUrl
(
message
.
getPicUrl
());
sendPicMessageVO
.
setIp
(
ip
);
sendPicMessageVO
.
setCode
(
code
);
WxGroupSDK
.
sendPicMessage
(
sendPicMessageVO
);
}
PcloudGuideDelayMsgDto
msgDto
=
PcloudGuideDelayMsgDto
.
builder
().
pcloudGuideMessageVO
(
message
)
.
code
(
code
).
ip
(
ip
).
robotId
(
robotId
).
wxId
(
userWxId
).
build
();
MessageProperties
properties
=
new
MessageProperties
();
properties
.
setContentType
(
"text/plain"
);
properties
.
setExpiration
(
String
.
valueOf
(
timeSpan
.
get
()
*
1000
));
Message
mqMessage
=
MessageBuilder
.
withBody
(
JSONObject
.
toJSONString
(
msgDto
).
getBytes
()).
andProperties
(
properties
).
build
();
rabbitTemplate
.
convertAndSend
(
BOOK_DELAY_EXCHANGE
,
BOOK_DELAY_DEAD_LETTER_KEY
,
mqMessage
);
});
});
}
...
...
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