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
ef89c6b2
Commit
ef89c6b2
authored
Mar 21, 2023
by
王祖波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
群发内容中心素材
parent
4846c780
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
276 additions
and
21 deletions
+276
-21
ChatContentDTO.java
...va/com/gic/haoban/manage/api/dto/chat/ChatContentDTO.java
+78
-0
GroupChatPlanDTO.java
.../com/gic/haoban/manage/api/dto/chat/GroupChatPlanDTO.java
+14
-0
TabGroupChatPlan.java
...c/haoban/manage/service/entity/chat/TabGroupChatPlan.java
+13
-0
QywxSendService.java
...om/gic/haoban/manage/service/service/QywxSendService.java
+11
-0
GroupChatPlanServiceImpl.java
...e/service/service/chat/impl/GroupChatPlanServiceImpl.java
+0
-0
QywxSendServiceImpl.java
...oban/manage/service/service/impl/QywxSendServiceImpl.java
+6
-0
StreamUtils.java
.../java/com/gic/haoban/manage/service/util/StreamUtils.java
+39
-0
GroupChatPlanMapper.xml
...ce/src/main/resources/mapper/chat/GroupChatPlanMapper.xml
+9
-4
ChatTest.java
haoban-manage3-service/src/test/java/ChatTest.java
+50
-0
GroupChatPlanController.java
...n/manage/web/controller/chat/GroupChatPlanController.java
+20
-6
GroupChatPlanVO.java
...va/com/gic/haoban/manage/web/vo/chat/GroupChatPlanVO.java
+14
-0
GroupChatPlanController.java
...manage/web/controller/haoban/GroupChatPlanController.java
+22
-11
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/chat/ChatContentDTO.java
0 → 100644
View file @
ef89c6b2
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
.
chat
;
import
java.io.Serializable
;
/**
* Created by wangzubo on 2023/3/20.
*/
public
class
ChatContentDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 封面url
*/
private
String
img
;
/**
* 视频url
*/
private
String
content
;
/**
* 关联id 企微素材id或内容素材id
* 兼容原有不是驼峰
*/
private
String
relation_id
;
/**
* 素材类型 1文本, 2图片, 4视频
*/
private
Integer
type
;
/**
* 内容素材url是否已经重新上传
*/
private
Integer
urlChangeFlag
;
public
String
getImg
()
{
return
img
;
}
public
void
setImg
(
String
img
)
{
this
.
img
=
img
;
}
public
String
getContent
()
{
return
content
;
}
public
void
setContent
(
String
content
)
{
this
.
content
=
content
;
}
public
String
getRelation_id
()
{
return
relation_id
;
}
public
void
setRelation_id
(
String
relation_id
)
{
this
.
relation_id
=
relation_id
;
}
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
Integer
getUrlChangeFlag
()
{
return
urlChangeFlag
;
}
public
void
setUrlChangeFlag
(
Integer
urlChangeFlag
)
{
this
.
urlChangeFlag
=
urlChangeFlag
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/chat/GroupChatPlanDTO.java
View file @
ef89c6b2
...
...
@@ -53,6 +53,11 @@ public class GroupChatPlanDTO implements Serializable {
// 1代发送 2已发送
private
Integer
sendFlag
;
/**
* 关联素材来源1好办素材2内容中心
*/
private
Integer
materialFrom
;
public
String
getDelStaffIdList
()
{
return
delStaffIdList
;
}
...
...
@@ -252,4 +257,12 @@ public class GroupChatPlanDTO implements Serializable {
public
Integer
getTotalChatCount
()
{
return
totalChatCount
;
}
public
Integer
getMaterialFrom
()
{
return
materialFrom
;
}
public
void
setMaterialFrom
(
Integer
materialFrom
)
{
this
.
materialFrom
=
materialFrom
;
}
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/entity/chat/TabGroupChatPlan.java
View file @
ef89c6b2
...
...
@@ -48,6 +48,10 @@ public class TabGroupChatPlan implements Serializable {
private
String
enterpriseId
;
// 1代发送 2已发送
private
Integer
sendFlag
;
/**
* 关联素材来源1好办素材2内容中心
*/
private
Integer
materialFrom
;
public
Integer
getSendFlag
()
{
return
sendFlag
;
...
...
@@ -232,4 +236,12 @@ public class TabGroupChatPlan implements Serializable {
public
void
setFailChatCount
(
Integer
failChatCount
)
{
this
.
failChatCount
=
failChatCount
;
}
public
Integer
getMaterialFrom
()
{
return
materialFrom
;
}
public
void
setMaterialFrom
(
Integer
materialFrom
)
{
this
.
materialFrom
=
materialFrom
;
}
}
\ No newline at end of file
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/QywxSendService.java
View file @
ef89c6b2
...
...
@@ -37,4 +37,15 @@ public interface QywxSendService {
* @throws
*/
public
ServiceResponse
<
String
>
sendChatMessage
(
String
wxEnterpriseId
,
String
staffId
,
List
<
String
>
materialIdList
);
/**
* 群群发
* @param wxEnterpriseId
* @param staffId
* @param imageList
* @param message
* @return
*/
public
ServiceResponse
<
String
>
sendChatMessage
(
String
wxEnterpriseId
,
String
staffId
,
List
<
ContentMaterialDTO
>
imageList
,
String
message
);
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/chat/impl/GroupChatPlanServiceImpl.java
View file @
ef89c6b2
This diff is collapsed.
Click to expand it.
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/QywxSendServiceImpl.java
View file @
ef89c6b2
...
...
@@ -231,4 +231,10 @@ public class QywxSendServiceImpl implements QywxSendService {
public
ServiceResponse
<
String
>
sendChatMessage
(
String
wxEnterpriseId
,
String
staffId
,
List
<
String
>
materialIdList
)
{
return
this
.
send
(
wxEnterpriseId
,
staffId
,
null
,
materialIdList
,
null
,
1
,
group
);
}
@Override
public
ServiceResponse
<
String
>
sendChatMessage
(
String
wxEnterpriseId
,
String
staffId
,
List
<
ContentMaterialDTO
>
imageList
,
String
message
)
{
List
<
String
>
materialIdList
=
this
.
materialService
.
getImageMediaId
(
wxEnterpriseId
,
imageList
,
1
);
return
this
.
send
(
wxEnterpriseId
,
staffId
,
null
,
materialIdList
,
message
,
2
,
group
);
}
}
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/util/StreamUtils.java
0 → 100644
View file @
ef89c6b2
package
com
.
gic
.
haoban
.
manage
.
service
.
util
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.HttpURLConnection
;
import
java.net.URL
;
/**
* Created by wangzubo on 2023/3/20.
*/
public
class
StreamUtils
{
private
static
Logger
logger
=
LogManager
.
getLogger
(
StreamUtils
.
class
);
/**
* 根据图片url地址获取其流
* @param url 网络图片地址
* @return 图片流
*/
public
static
InputStream
getImageStream
(
String
url
)
{
try
{
HttpURLConnection
connection
=
(
HttpURLConnection
)
new
URL
(
url
).
openConnection
();
connection
.
setReadTimeout
(
10000
);
connection
.
setConnectTimeout
(
10000
);
connection
.
setRequestMethod
(
"GET"
);
if
(
connection
.
getResponseCode
()
==
HttpURLConnection
.
HTTP_OK
)
{
InputStream
inputStream
=
connection
.
getInputStream
();
return
inputStream
;
}
}
catch
(
IOException
e
)
{
logger
.
error
(
"获取网络图片出现异常,图片路径为:"
+
url
,
e
);
}
return
null
;
}
}
haoban-manage3-service/src/main/resources/mapper/chat/GroupChatPlanMapper.xml
View file @
ef89c6b2
...
...
@@ -27,6 +27,7 @@
<result
column=
"success_chat_count"
property=
"successChatCount"
/>
<result
column=
"fail_chat_count"
property=
"failChatCount"
/>
<result
column=
"send_flag"
property=
"sendFlag"
/>
<result
column=
"material_from"
property=
"materialFrom"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
plan_id,
...
...
@@ -49,7 +50,8 @@
send_count,
success_chat_count,
fail_chat_count ,
wx_enterprise_id , enterprise_id , send_flag
wx_enterprise_id , enterprise_id , send_flag ,
material_from
</sql>
<!-- ===================== 新增 ======================== -->
<insert
id=
"insert"
...
...
@@ -75,7 +77,8 @@
staff_count,
send_count,
success_chat_count,
fail_chat_count , wx_enterprise_id , enterprise_id , delete_flag , send_flag
fail_chat_count , wx_enterprise_id , enterprise_id , delete_flag , send_flag,
material_from
)VALUES(
#{planId},
#{name},
...
...
@@ -96,7 +99,8 @@
#{staffCount},
#{sendCount},
#{successChatCount},
#{failChatCount} , #{wxEnterpriseId} , #{enterpriseId} , 0 , 1
#{failChatCount} , #{wxEnterpriseId} , #{enterpriseId} , 0 , 1,
#{materialFrom}
)
]]>
</insert>
...
...
@@ -138,7 +142,8 @@
send_time=#{sendTime},
start_time=#{startTime},
end_time=#{endTime},
expire_days=#{expireDays}
expire_days=#{expireDays},
material_from=#{materialFrom}
where plan_id = #{planId}
]]>
</update>
...
...
haoban-manage3-service/src/test/java/ChatTest.java
0 → 100644
View file @
ef89c6b2
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO
;
import
com.gic.haoban.manage.api.dto.notify.qdto.NoticeMessageQDTO
;
import
com.gic.haoban.manage.api.dto.notify.qdto.NotifyMessageBatchQDTO
;
import
com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum
;
import
com.gic.haoban.manage.api.service.QywxTagApiService
;
import
com.gic.haoban.manage.api.service.notify.NoticeMessageApiService
;
import
com.gic.haoban.manage.service.config.Config
;
import
com.gic.haoban.manage.service.service.WxEnterpriseService
;
import
com.gic.haoban.manage.service.service.chat.GroupChatPlanService
;
import
com.gic.wechat.api.dto.qywx.QywxNewsArticleMessageDTO
;
import
com.gic.wechat.api.dto.qywx.QywxNewsSendMessageDTO
;
import
com.gic.wechat.api.service.qywx.QywxSuiteApiService
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.Map
;
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@ContextConfiguration
(
locations
=
{
"classpath:applicationContext-conf.xml"
})
public
class
ChatTest
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
ChatTest
.
class
);
@Autowired
private
GroupChatPlanService
groupChatPlanService
;
@Test
public
void
test
()
{
String
str
=
"{\"name\":\"测试\",\"remark\":\"测试\",\"expireDays\":\"2\",\"sendType\":1,\"sendTime\":\"\",\"chatContent\":\"[{\\\"img\\\":\\\"https://platform-1251519181.cos.ap-shanghai.myqcloud.com/image/jhdm/marketing_common-edc68cbf153846928c0ac28e2b2aa92f.jpg\\\",\\\"relation_id\\\":\\\"510923843246776342\\\",\\\"type\\\":2},{\\\"img\\\":\\\"https://platform-1251519181.cos.ap-shanghai.myqcloud.com/image/jhdm/marketing_common-3acc9bc9bbe8416e8aefe459b23eea5e.jpg\\\",\\\"relation_id\\\":\\\"510923843246776342\\\",\\\"type\\\":2},{\\\"content\\\":\\\"莎啦啦啦\\\",\\\"relation_id\\\":\\\"510923843246776342\\\",\\\"type\\\":1}]\",\"staffIdList\":\"36067cdee7ba4ff6adc7551b34cc2005\",\"requestProject\":\"haoban-manage-web\"}"
;
GroupChatPlanDTO
groupChatPlanDTO
=
JSONObject
.
parseObject
(
str
,
GroupChatPlanDTO
.
class
);
groupChatPlanDTO
.
setWxEnterpriseId
(
"ca66a01b79474c40b3e7c7f93daf1a3b"
);
groupChatPlanDTO
.
setEnterpriseId
(
"ff8080815dacd3a2015dacd3ef5c0000"
);
groupChatPlanDTO
.
setCreatorId
(
"fefd1c81641711e69d0818c58a146fd2"
);
groupChatPlanDTO
.
setCreatorName
(
"达摩管理员"
);
groupChatPlanDTO
.
setMaterialFrom
(
2
);
groupChatPlanService
.
save
(
groupChatPlanDTO
);
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/chat/GroupChatPlanController.java
View file @
ef89c6b2
...
...
@@ -6,6 +6,7 @@ import java.util.Date;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
com.gic.haoban.manage.api.dto.chat.ChatContentDTO
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
...
...
@@ -301,15 +302,28 @@ public class GroupChatPlanController {
GroupChatPlanDTO
plan
=
planResp
.
getResult
();
plan
.
getStaffIdList
();
String
content
=
plan
.
getChatContent
();
JSONArray
array
=
JSONArray
.
parseArray
(
content
);
List
<
String
>
materialIdList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
array
.
size
();
i
++)
{
JSONObject
json
=
array
.
getJSONObject
(
i
);
materialIdList
.
add
(
json
.
getString
(
"relation_id"
));
Integer
materialFrom
=
plan
.
getMaterialFrom
();
List
<
MaterialDTO
>
materials
=
new
ArrayList
<>();
if
(
materialFrom
==
null
||
materialFrom
==
1
)
{
JSONArray
array
=
JSONArray
.
parseArray
(
content
);
List
<
String
>
materialIdList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
array
.
size
();
i
++)
{
JSONObject
json
=
array
.
getJSONObject
(
i
);
materialIdList
.
add
(
json
.
getString
(
"relation_id"
));
}
materials
=
materialApiService
.
listMaterialByIds
(
materialIdList
);
}
else
{
List
<
ChatContentDTO
>
contentDTOList
=
JSONArray
.
parseArray
(
content
,
ChatContentDTO
.
class
);
materials
=
contentDTOList
.
stream
().
map
(
x
->
{
MaterialDTO
materialDTO
=
new
MaterialDTO
();
materialDTO
.
setMaterialType
(
x
.
getType
());
materialDTO
.
setMaterialContent
(
x
.
getContent
());
materialDTO
.
setImgUrl
(
x
.
getImg
());
return
materialDTO
;
}).
collect
(
Collectors
.
toList
());
}
// 查询素材列表
GroupChatPlanVO
vo
=
EntityUtil
.
changeEntityByJSON
(
GroupChatPlanVO
.
class
,
plan
);
List
<
MaterialDTO
>
materials
=
materialApiService
.
listMaterialByIds
(
materialIdList
);
vo
.
setMaterialIdList
(
materials
);
GroupChatPlanSearchQDTO
qdto
=
new
GroupChatPlanSearchQDTO
();
WebLoginDTO
loginUser
=
AuthWebRequestUtil
.
getLoginUser
();
...
...
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/vo/chat/GroupChatPlanVO.java
View file @
ef89c6b2
...
...
@@ -55,6 +55,11 @@ public class GroupChatPlanVO implements Serializable{
private
Integer
sendFlag
;
private
List
<
MaterialDTO
>
MaterialIdList
;
private
List
<
ChatOwnerVO
>
ownerList
;
/**
* 关联素材来源1好办素材2内容中心
*/
private
Integer
materialFrom
;
public
List
<
ChatOwnerVO
>
getOwnerList
()
{
return
ownerList
;
...
...
@@ -245,4 +250,12 @@ public class GroupChatPlanVO implements Serializable{
public
Integer
getTotalChatCount
(){
return
totalChatCount
;
}
public
Integer
getMaterialFrom
()
{
return
materialFrom
;
}
public
void
setMaterialFrom
(
Integer
materialFrom
)
{
this
.
materialFrom
=
materialFrom
;
}
}
\ No newline at end of file
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/haoban/GroupChatPlanController.java
View file @
ef89c6b2
...
...
@@ -5,7 +5,9 @@ import java.util.Date;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
com.gic.haoban.manage.api.dto.chat.*
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.logging.log4j.LogManager
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -19,10 +21,6 @@ import com.gic.api.base.commons.Page;
import
com.gic.api.base.commons.ServiceResponse
;
import
com.gic.commons.webapi.reponse.RestResponse
;
import
com.gic.haoban.manage.api.dto.MaterialDTO
;
import
com.gic.haoban.manage.api.dto.chat.ChatOwnerTotalDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO
;
import
com.gic.haoban.manage.api.dto.chat.GroupChatPlanOwnerLogDTO
;
import
com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO
;
import
com.gic.haoban.manage.api.service.MaterialApiService
;
import
com.gic.haoban.manage.api.service.chat.GroupChatPlanApiService
;
...
...
@@ -102,16 +100,29 @@ public class GroupChatPlanController {
}
GroupChatPlanDTO
plan
=
linkResp
.
getResult
();
String
content
=
plan
.
getChatContent
();
JSONArray
array
=
JSONArray
.
parseArray
(
content
);
List
<
String
>
materialIdList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
array
.
size
();
i
++)
{
JSONObject
json
=
array
.
getJSONObject
(
i
);
materialIdList
.
add
(
json
.
getString
(
"relation_id"
));
}
// 查询素材列表
List
<
MaterialDTO
>
materials
=
materialApiService
.
listMaterialByIds
(
materialIdList
);
List
<
MaterialDTO
>
materials
=
new
ArrayList
<>(
);
Map
<
String
,
Object
>
retMap
=
new
HashMap
<>();
retMap
.
put
(
"plan"
,
plan
);
Integer
materialFrom
=
plan
.
getMaterialFrom
();
if
(
materialFrom
==
null
||
materialFrom
==
1
)
{
JSONArray
array
=
JSONArray
.
parseArray
(
content
);
List
<
String
>
materialIdList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
array
.
size
();
i
++)
{
JSONObject
json
=
array
.
getJSONObject
(
i
);
materialIdList
.
add
(
json
.
getString
(
"relation_id"
));
}
materials
=
materialApiService
.
listMaterialByIds
(
materialIdList
);
}
else
{
List
<
ChatContentDTO
>
contentDTOList
=
JSONArray
.
parseArray
(
content
,
ChatContentDTO
.
class
);
materials
=
contentDTOList
.
stream
().
map
(
x
->
{
MaterialDTO
materialDTO
=
new
MaterialDTO
();
materialDTO
.
setMaterialType
(
x
.
getType
());
materialDTO
.
setMaterialContent
(
x
.
getContent
());
materialDTO
.
setImgUrl
(
x
.
getImg
());
return
materialDTO
;
}).
collect
(
Collectors
.
toList
());
}
retMap
.
put
(
"materialList"
,
materials
);
if
(
null
!=
ownerLogId
)
{
ServiceResponse
<
GroupChatPlanOwnerLogDTO
>
resp
=
this
.
groupChatPlanApiService
.
getOwnerSendInfo
(
ownerLogId
);
...
...
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