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
27b15d8b
Commit
27b15d8b
authored
Nov 18, 2021
by
xugaojun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【11-2迭代-[素材库默认查询全部分组]】:代码实现
parent
f9f42fc5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
128 additions
and
106 deletions
+128
-106
MaterialApiServiceImpl.java
...nage/service/service/out/impl/MaterialApiServiceImpl.java
+43
-37
MaterialController.java
.../gic/haoban/manage/web/controller/MaterialController.java
+85
-69
No files found.
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/MaterialApiServiceImpl.java
View file @
27b15d8b
...
...
@@ -277,7 +277,13 @@ public class MaterialApiServiceImpl implements MaterialApiService {
@Override
public
Page
<
MaterialDTO
>
listMaterial
(
String
wxEnterpriseId
,
String
keyword
,
String
categoryId
,
Integer
materialType
,
BasePageInfo
pageInfo
)
{
List
<
String
>
categoryIds
=
this
.
listSubCategoryIdsByParentId
(
categoryId
);
List
<
String
>
categoryIds
;
if
(
"-1"
.
equals
(
categoryId
))
{
// 传入-1默认查询全部
categoryIds
=
Collections
.
emptyList
();
}
else
{
categoryIds
=
this
.
listSubCategoryIdsByParentId
(
categoryId
);
}
PageHelper
.
startPage
(
pageInfo
.
getPageNum
(),
pageInfo
.
getPageSize
());
com
.
github
.
pagehelper
.
Page
<
TabHaobanMaterial
>
page
=
materialService
.
listMaterial
(
wxEnterpriseId
,
keyword
,
categoryIds
,
materialType
);
List
<
TabHaobanMaterial
>
result
=
page
.
getResult
();
...
...
@@ -389,23 +395,23 @@ public class MaterialApiServiceImpl implements MaterialApiService {
if
(
enterprise
==
null
)
{
return
;
}
List
<
BatchAddMaterialDTO
.
MaterialMedia
>
materialMediaList
=
dto
.
getMaterialMediaList
();
if
(
CollectionUtils
.
isEmpty
(
materialMediaList
))
{
return
;
}
List
<
MaterialDTO
>
materialList
=
materialMediaList
.
stream
().
map
(
one
->
{
MaterialDTO
materialDTO
=
new
MaterialDTO
();
// 必填字段
materialDTO
.
setCreateTime
(
new
Date
());
materialDTO
.
setUpdateTime
(
materialDTO
.
getCreateTime
());
materialDTO
.
setStatusFlag
(
1
);
materialDTO
.
setMaterialId
(
StringUtil
.
randomUUID
());
// 传入字段
materialDTO
.
setCategoryId
(
material
.
getCategoryId
());
materialDTO
.
setMaterialType
(
material
.
getMaterialType
());
materialDTO
.
setWxEnterpriseId
(
material
.
getWxEnterpriseId
());
materialDTO
.
setStaffId
(
material
.
getStaffId
());
materialDTO
.
setStaffName
(
material
.
getStaffName
());
List
<
BatchAddMaterialDTO
.
MaterialMedia
>
materialMediaList
=
dto
.
getMaterialMediaList
();
if
(
CollectionUtils
.
isEmpty
(
materialMediaList
))
{
return
;
}
List
<
MaterialDTO
>
materialList
=
materialMediaList
.
stream
().
map
(
one
->
{
MaterialDTO
materialDTO
=
new
MaterialDTO
();
// 必填字段
materialDTO
.
setCreateTime
(
new
Date
());
materialDTO
.
setUpdateTime
(
materialDTO
.
getCreateTime
());
materialDTO
.
setStatusFlag
(
1
);
materialDTO
.
setMaterialId
(
StringUtil
.
randomUUID
());
// 传入字段
materialDTO
.
setCategoryId
(
material
.
getCategoryId
());
materialDTO
.
setMaterialType
(
material
.
getMaterialType
());
materialDTO
.
setWxEnterpriseId
(
material
.
getWxEnterpriseId
());
materialDTO
.
setStaffId
(
material
.
getStaffId
());
materialDTO
.
setStaffName
(
material
.
getStaffName
());
// 图片类型素材标题为图片实际名称
if
(
material
.
getMaterialType
()
==
2
)
{
materialDTO
.
setMaterialTitle
(
one
.
getMediaName
());
...
...
@@ -414,26 +420,26 @@ public class MaterialApiServiceImpl implements MaterialApiService {
}
materialDTO
.
setImgUrl
(
one
.
getMediaUrl
());
String
mediaId
=
uploadMediaToWx
(
enterprise
.
getCorpid
(),
one
.
getMediaUrl
());
if
(
StringUtils
.
isNotEmpty
(
mediaId
))
{
materialDTO
.
setWxLastUploadTime
(
new
Date
());
materialDTO
.
setMediaId
(
mediaId
);
}
return
materialDTO
;
}).
collect
(
Collectors
.
toList
());
// batch-insert
materialService
.
batchInsertMaterial
(
materialList
);
if
(
StringUtils
.
isNotEmpty
(
mediaId
))
{
materialDTO
.
setWxLastUploadTime
(
new
Date
());
materialDTO
.
setMediaId
(
mediaId
);
}
return
materialDTO
;
}).
collect
(
Collectors
.
toList
());
// batch-insert
materialService
.
batchInsertMaterial
(
materialList
);
}
private
String
uploadMediaToWx
(
String
corPid
,
String
url
)
{
String
[]
arr
=
url
.
split
(
"/"
);
// 先写死为图片类型, 以后有别的再扩展
QywxMediaTypeEnum
fileType
=
QywxMediaTypeEnum
.
IMAGE
;
int
count
=
arr
.
length
;
JSONResponse
jp
=
qywxSuiteApiService
.
uploadMedia
(
corPid
,
config
.
getWxSuiteid
(),
getFileByte
(
url
),
arr
[
count
-
1
],
fileType
.
getCode
());
if
(
jp
.
getErrorCode
()
==
0
)
{
return
jp
.
getResult
().
toString
();
}
return
null
;
}
private
String
uploadMediaToWx
(
String
corPid
,
String
url
)
{
String
[]
arr
=
url
.
split
(
"/"
);
// 先写死为图片类型, 以后有别的再扩展
QywxMediaTypeEnum
fileType
=
QywxMediaTypeEnum
.
IMAGE
;
int
count
=
arr
.
length
;
JSONResponse
jp
=
qywxSuiteApiService
.
uploadMedia
(
corPid
,
config
.
getWxSuiteid
(),
getFileByte
(
url
),
arr
[
count
-
1
],
fileType
.
getCode
());
if
(
jp
.
getErrorCode
()
==
0
)
{
return
jp
.
getResult
().
toString
();
}
return
null
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/MaterialController.java
View file @
27b15d8b
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
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.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.alibaba.fastjson.JSON
;
import
com.gic.api.base.commons.Page
;
import
com.gic.commons.util.DateUtil
;
import
com.gic.haoban.base.api.common.BasePageInfo
;
...
...
@@ -26,71 +12,101 @@ import com.gic.haoban.manage.api.dto.MaterialDTO;
import
com.gic.haoban.manage.api.service.MaterialApiService
;
import
com.gic.haoban.manage.web.errCode.HaoBanErrCode
;
import
com.gic.haoban.manage.web.vo.MaterialVO
;
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.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@RestController
public
class
MaterialController
extends
WebBaseController
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
MaterialController
.
class
);
@Autowired
private
MaterialApiService
materialApiService
;
/**
* 素材查询
* @return
public
class
MaterialController
extends
WebBaseController
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
MaterialController
.
class
);
@Autowired
private
MaterialApiService
materialApiService
;
/**
* desc: 分页查询素材
*
* @param wxEnterpriseId 企业微信id
* @param keyword 素材标题
* @param categoryId 分类id
* @param materialType 素材类型
* @param pageInfo 分页参数
* @return : {@link HaobanResponse}
* @author : YongEn
* @date : 2021/11/18
*/
@RequestMapping
(
"/material-list"
)
public
HaobanResponse
materialList
(
String
wxEnterpriseId
,
String
keyword
,
String
categoryId
,
Integer
materialType
,
BasePageInfo
pageInfo
)
{
Page
<
MaterialDTO
>
page
=
materialApiService
.
listMaterial
(
wxEnterpriseId
,
keyword
,
categoryId
,
materialType
,
pageInfo
);
//暂时转换
public
HaobanResponse
materialList
(
String
wxEnterpriseId
,
String
keyword
,
String
categoryId
,
Integer
materialType
,
BasePageInfo
pageInfo
)
{
Page
<
MaterialDTO
>
page
=
materialApiService
.
listMaterial
(
wxEnterpriseId
,
keyword
,
categoryId
,
materialType
,
pageInfo
);
//暂时转换
PageResult2
pageResult2
=
PageUtil
.
getPageInfo
(
page
);
return
resultResponse
(
HaoBanErrCode
.
ERR_1
,
pageResult2
);
}
/**
* 素材查询
*
* @return
*/
@RequestMapping
(
"/material-type"
)
public
HaobanResponse
materialType
(
String
wxEnterpriseId
)
{
List
<
MaterialCategoryDTO
>
list
=
materialApiService
.
listCategory
(
wxEnterpriseId
);
List
<
MaterialVO
>
handerList
=
new
ArrayList
<
MaterialVO
>();
MaterialVO
vo
=
new
MaterialVO
();
vo
.
setCategoryId
(
"-1"
);
vo
.
setCategoryName
(
"未分组"
);
vo
.
setCategoryParentId
(
"0"
);
vo
.
setWxEnterpriseId
(
wxEnterpriseId
);
handerList
.
add
(
vo
);
for
(
MaterialCategoryDTO
materialCategoryDTO
:
list
)
{
if
(
"0"
.
equals
(
materialCategoryDTO
.
getCategoryParentId
())){
handerList
.
add
(
EntityUtil
.
changeEntityByJSON
(
MaterialVO
.
class
,
materialCategoryDTO
));
}
}
Map
<
String
,
List
<
MaterialCategoryDTO
>>
map
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
MaterialCategoryDTO:
:
getCategoryParentId
));
handerSonMaterial
(
handerList
,
map
);
for
(
MaterialVO
materialVO
:
handerList
)
{
List
<
MaterialVO
>
sonVoList
=
materialVO
.
getList
();
if
(
sonVoList
!=
null
&&
!
sonVoList
.
isEmpty
()){
handerSonMaterial
(
sonVoList
,
map
);
}
}
return
resultResponse
(
HaoBanErrCode
.
ERR_1
,
handerList
);
List
<
MaterialCategoryDTO
>
list
=
materialApiService
.
listCategory
(
wxEnterpriseId
);
List
<
MaterialVO
>
handerList
=
new
ArrayList
<
MaterialVO
>();
MaterialVO
vo
=
new
MaterialVO
();
// 默认给-1位全部分组标准-查询列表时如果传入-1默认查询全部素材
vo
.
setCategoryId
(
"-1"
);
vo
.
setCategoryName
(
"全部分组"
);
vo
.
setCategoryParentId
(
"0"
);
vo
.
setWxEnterpriseId
(
wxEnterpriseId
);
handerList
.
add
(
vo
);
for
(
MaterialCategoryDTO
materialCategoryDTO
:
list
)
{
if
(
"0"
.
equals
(
materialCategoryDTO
.
getCategoryParentId
()))
{
handerList
.
add
(
EntityUtil
.
changeEntityByJSON
(
MaterialVO
.
class
,
materialCategoryDTO
));
}
}
Map
<
String
,
List
<
MaterialCategoryDTO
>>
map
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
MaterialCategoryDTO:
:
getCategoryParentId
));
handerSonMaterial
(
handerList
,
map
);
for
(
MaterialVO
materialVO
:
handerList
)
{
List
<
MaterialVO
>
sonVoList
=
materialVO
.
getList
();
if
(
sonVoList
!=
null
&&
!
sonVoList
.
isEmpty
())
{
handerSonMaterial
(
sonVoList
,
map
);
}
}
return
resultResponse
(
HaoBanErrCode
.
ERR_1
,
handerList
);
}
/**
* 素材查询
*
* @return
*/
@RequestMapping
(
"/reupdalod-material"
)
public
HaobanResponse
reUpdalodMetail
(
String
materialId
)
{
if
(
StringUtils
.
isBlank
(
materialId
))
{
return
resultResponse
(
HaoBanErrCode
.
ERR_10015
);
}
MaterialDTO
material
=
materialApiService
.
selectMaterialById
(
materialId
);
if
(
material
==
null
)
{
}
String
medialId
=
""
;
if
(
material
.
getMaterialType
()
==
2
||
material
.
getMaterialType
()
==
4
||
material
.
getMaterialType
()
==
5
)
{
if
(
StringUtils
.
isBlank
(
materialId
))
{
return
resultResponse
(
HaoBanErrCode
.
ERR_10015
);
}
MaterialDTO
material
=
materialApiService
.
selectMaterialById
(
materialId
);
if
(
material
==
null
)
{
}
String
medialId
=
""
;
if
(
material
.
getMaterialType
()
==
2
||
material
.
getMaterialType
()
==
4
||
material
.
getMaterialType
()
==
5
)
{
if
(
material
.
getMediaId
()
==
null
)
{
medialId
=
materialApiService
.
reUpdalodMetail
(
materialId
);
}
else
{
...
...
@@ -100,21 +116,21 @@ public class MaterialController extends WebBaseController{
medialId
=
materialApiService
.
reUpdalodMetail
(
materialId
);
}
}
}
return
resultResponse
(
HaoBanErrCode
.
ERR_1
,
medialId
);
}
return
resultResponse
(
HaoBanErrCode
.
ERR_1
,
medialId
);
}
private
void
handerSonMaterial
(
List
<
MaterialVO
>
handerList
,
Map
<
String
,
List
<
MaterialCategoryDTO
>>
map
)
{
for
(
MaterialVO
materialVO
:
handerList
)
{
List
<
MaterialCategoryDTO
>
sonList
=
map
.
get
(
materialVO
.
getCategoryId
());
List
<
MaterialVO
>
sonVoList
=
EntityUtil
.
changeEntityListByJSON
(
MaterialVO
.
class
,
sonList
);
materialVO
.
setList
(
sonVoList
);
private
void
handerSonMaterial
(
List
<
MaterialVO
>
handerList
,
Map
<
String
,
List
<
MaterialCategoryDTO
>>
map
)
{
for
(
MaterialVO
materialVO
:
handerList
)
{
List
<
MaterialCategoryDTO
>
sonList
=
map
.
get
(
materialVO
.
getCategoryId
());
List
<
MaterialVO
>
sonVoList
=
EntityUtil
.
changeEntityListByJSON
(
MaterialVO
.
class
,
sonList
);
materialVO
.
setList
(
sonVoList
);
// logger.info("map={},handerList={},categoryId={},sonVoList={}",JSON.toJSONString(map),JSON.toJSONString(handerList),materialVO.getCategoryId(),JSON.toJSONString(sonVoList));
// while(sonVoList != null && sonVoList.size() > 0){
// handerSonMaterial(sonVoList, map);
// }
}
}
}
}
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