Commit 27b15d8b by xugaojun

【11-2迭代-[素材库默认查询全部分组]】:代码实现

parent f9f42fc5
......@@ -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;
}
}
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);
// }
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment