|
@@ -2,7 +2,12 @@ package com.tourism.webadmin.app.website.controller;
|
|
|
|
|
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
|
import cn.dev33.satoken.annotation.SaIgnore;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.github.pagehelper.page.PageMethod;
|
|
|
+import com.tourism.common.additional.model.FileUrlObject;
|
|
|
+import com.tourism.common.additional.utils.JsonUtils;
|
|
|
+import com.tourism.common.additional.utils.MapConvertUtils;
|
|
|
+import com.tourism.common.additional.utils.StringUtils;
|
|
|
import com.tourism.common.core.annotation.MyRequestBody;
|
|
|
import com.tourism.common.core.constant.ErrorCodeEnum;
|
|
|
import com.tourism.common.core.object.*;
|
|
@@ -10,20 +15,25 @@ import com.tourism.common.core.upload.UpDownloaderFactory;
|
|
|
import com.tourism.common.core.util.MyModelUtil;
|
|
|
import com.tourism.common.core.util.MyPageUtil;
|
|
|
import com.tourism.common.redis.cache.SessionCacheHelper;
|
|
|
+import com.tourism.webadmin.app.website.dto.TourismProjectToWebDto;
|
|
|
import com.tourism.webadmin.back.dto.TourismProjectDto;
|
|
|
import com.tourism.webadmin.back.model.DirectoryInfo;
|
|
|
+import com.tourism.webadmin.back.model.TourismFile;
|
|
|
import com.tourism.webadmin.back.model.TourismProject;
|
|
|
import com.tourism.webadmin.back.service.TourismProjectService;
|
|
|
import com.tourism.webadmin.back.vo.TourismProjectVo;
|
|
|
import com.tourism.webadmin.config.ApplicationConfig;
|
|
|
+import com.tourism.webadmin.config.ApplicationDevConfig;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
+import jakarta.validation.Valid;
|
|
|
import jakarta.validation.constraints.NotNull;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static java.util.stream.Collectors.toList;
|
|
@@ -44,20 +54,18 @@ public class TourismProjectToWebController {
|
|
|
|
|
|
@Autowired
|
|
|
private TourismProjectService tourismProjectService;
|
|
|
+ @Autowired
|
|
|
+ private ApplicationDevConfig applicationDevConfig;
|
|
|
|
|
|
/**
|
|
|
* 列出符合过滤条件的旅游项目管理列表。
|
|
|
*
|
|
|
* @param tourismProjectDtoFilter 过滤对象。
|
|
|
- * @param orderParam 排序参数。
|
|
|
- * @param pageParam 分页参数。
|
|
|
* @return 应答结果对象,包含查询结果集。
|
|
|
*/
|
|
|
- @PostMapping("/list")
|
|
|
+ @GetMapping("/list")
|
|
|
public ResponseResult<MyPageData<TourismProjectVo>> list(
|
|
|
- @MyRequestBody TourismProjectDto tourismProjectDtoFilter,
|
|
|
- @MyRequestBody MyOrderParam orderParam,
|
|
|
- @MyRequestBody MyPageParam pageParam) {
|
|
|
+ @Valid @ModelAttribute TourismProjectToWebDto tourismProjectDtoFilter) {
|
|
|
// if(tourismProjectDtoFilter.getBelongTab() == null){
|
|
|
// return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST,"所属分类(belongTab)不能为空!");
|
|
|
// }
|
|
@@ -73,13 +81,44 @@ public class TourismProjectToWebController {
|
|
|
TourismProject tourismProjectFilter = MyModelUtil.copyTo(tourismProjectDtoFilter, TourismProject.class);
|
|
|
//首页展示的为启用的内容
|
|
|
tourismProjectFilter.setEnable(1);
|
|
|
- String orderBy = MyOrderParam.buildOrderBy(orderParam, TourismProject.class);
|
|
|
- if (pageParam != null) {
|
|
|
- PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize(), pageParam.getCount());
|
|
|
+ String orderBy = MyOrderParam.buildOrderBy(tourismProjectDtoFilter.getOrderParamList(), TourismProject.class);
|
|
|
+ if (tourismProjectDtoFilter.getPageNum() != null && tourismProjectDtoFilter.getPageSize() != null && tourismProjectDtoFilter.getCount() != null) {
|
|
|
+ PageMethod.startPage(tourismProjectDtoFilter.getPageNum(), tourismProjectDtoFilter.getPageSize(), tourismProjectDtoFilter.getCount());
|
|
|
}
|
|
|
List<TourismProject> tourismProjectList =
|
|
|
tourismProjectService.getTourismProjectListWithRelation(tourismProjectFilter, orderBy);
|
|
|
- return ResponseResult.success(MyPageUtil.makeResponseData(tourismProjectList, TourismProjectVo.class));
|
|
|
+ MyPageData<TourismProjectVo> tourismProjectVoMyPageData = MyPageUtil.makeResponseData(tourismProjectList, TourismProjectVo.class);
|
|
|
+
|
|
|
+ List<TourismProjectVo> dataList = tourismProjectVoMyPageData.getDataList();
|
|
|
+ //先把imgUrl由jaon转换为List<FileUrlObject>
|
|
|
+ dataList.stream().forEach(item ->
|
|
|
+ {
|
|
|
+ if(StringUtils.isNotEmpty(item.getHomeHotPicture())) {
|
|
|
+ List<FileUrlObject> fileUrlObjectList = JsonUtils.parseFileUrlArray(item.getHomeHotPicture(), FileUrlObject.class);
|
|
|
+ if (!CollectionUtils.isEmpty(fileUrlObjectList)) {
|
|
|
+ ArrayList<String> arrayList = new ArrayList<>();
|
|
|
+ for (FileUrlObject y : fileUrlObjectList) {
|
|
|
+ String homeHotPicturesAfterConvert =
|
|
|
+ applicationDevConfig.getHostIpPort() + y.getDownloadUri() + "?id=" + item.getId() + "&fieldName=homeHotPicture&asImage=true&filename=" + y.getFilename();
|
|
|
+ arrayList.add(homeHotPicturesAfterConvert);
|
|
|
+ }
|
|
|
+ item.setHomeHotPicturesAfterConvert(arrayList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(item.getTourismUrl())){
|
|
|
+ List<FileUrlObject> fileUrlObjectList = JsonUtils.parseFileUrlArray(item.getTourismUrl(), FileUrlObject.class);
|
|
|
+ if (!CollectionUtils.isEmpty(fileUrlObjectList)) {
|
|
|
+ ArrayList<String> arrayList = new ArrayList<>();
|
|
|
+ for (FileUrlObject y : fileUrlObjectList) {
|
|
|
+ String tourismUrlsAfterConvert =
|
|
|
+ applicationDevConfig.getHostIpPort() + y.getDownloadUri() + "?id=" + item.getId() + "&fieldName=tourismUrl&asImage=true&filename=" + y.getFilename();
|
|
|
+ arrayList.add(tourismUrlsAfterConvert);
|
|
|
+ }
|
|
|
+ item.setHomeHotPicturesAfterConvert(arrayList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return ResponseResult.success(tourismProjectVoMyPageData);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -96,6 +135,54 @@ public class TourismProjectToWebController {
|
|
|
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
|
|
}
|
|
|
TourismProjectVo tourismProjectVo = MyModelUtil.copyTo(tourismProject, TourismProjectVo.class);
|
|
|
+ //先把imgUrl由jaon转换为List<FileUrlObject>
|
|
|
+ if (StringUtils.isNotEmpty(tourismProjectVo.getTourismUrl())) {
|
|
|
+ List<FileUrlObject> fileUrlObjectList = JsonUtils.parseFileUrlArray(tourismProjectVo.getTourismUrl(), FileUrlObject.class);
|
|
|
+ if (!CollectionUtils.isEmpty(fileUrlObjectList)) {
|
|
|
+ ArrayList<String> arrayList = new ArrayList<>();
|
|
|
+ //遍历每个元素的数组对象,对元素的url对象进行拼接
|
|
|
+ for (FileUrlObject y : fileUrlObjectList) {
|
|
|
+ String tourismUrlsAfterConvert =
|
|
|
+ applicationDevConfig.getHostIpPort() + y.getDownloadUri() + "?id=" + tourismProjectVo.getId() + "&fieldName=tourismUrl&asImage=true&filename=" + y.getFilename();
|
|
|
+ arrayList.add(tourismUrlsAfterConvert);
|
|
|
+ }
|
|
|
+ tourismProjectVo.setTourismUrlsAfterConvert(arrayList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(tourismProjectVo.getHomeHotPicture())) {
|
|
|
+ List<FileUrlObject> fileUrlObjectList = JsonUtils.parseFileUrlArray(tourismProjectVo.getHomeHotPicture(), FileUrlObject.class);
|
|
|
+ if (!CollectionUtils.isEmpty(fileUrlObjectList)) {
|
|
|
+ ArrayList<String> arrayList = new ArrayList<>();
|
|
|
+ //遍历每个元素的数组对象,对元素的url对象进行拼接
|
|
|
+ for (FileUrlObject y : fileUrlObjectList) {
|
|
|
+ String homeHotPicturesAfterConvert =
|
|
|
+ applicationDevConfig.getHostIpPort() + y.getDownloadUri() + "?id=" + tourismProjectVo.getId() + "&fieldName=homeHotPicture&asImage=true&filename=" + y.getFilename();
|
|
|
+ arrayList.add(homeHotPicturesAfterConvert);
|
|
|
+ }
|
|
|
+ tourismProjectVo.setTourismUrlsAfterConvert(arrayList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(tourismProjectVo.getTourismFile() != null){
|
|
|
+ // 使用 Jackson 的 ObjectMapper 进行转换
|
|
|
+ ObjectMapper objectMapper = new ObjectMapper();
|
|
|
+ TourismFile tourismFile = objectMapper.convertValue(tourismProjectVo.getTourismFile(), TourismFile.class);
|
|
|
+ if(StringUtils.isNotEmpty(tourismFile.getFileUrl())){
|
|
|
+ List<FileUrlObject> fileUrlObjectList = JsonUtils.parseFileUrlArray(tourismFile.getFileUrl(), FileUrlObject.class);
|
|
|
+ if(!CollectionUtils.isEmpty(fileUrlObjectList)){
|
|
|
+ ArrayList<String> arrayList = new ArrayList<>();
|
|
|
+ //遍历每个元素的数组对象,对元素的url对象进行拼接
|
|
|
+ for (FileUrlObject y : fileUrlObjectList) {
|
|
|
+ String imgUrlAfterConvert =
|
|
|
+ applicationDevConfig.getHostIpPort() + y.getDownloadUri() + "?id=" + tourismFile.getId() + "&fieldName=fileUrl&asImage=true&filename=" + y.getFilename();
|
|
|
+ arrayList.add(imgUrlAfterConvert);
|
|
|
+ }
|
|
|
+ tourismFile.setFileUrlsAfterConvert(arrayList);
|
|
|
+ }
|
|
|
+// Map<String, Object> tourismFile1 = new HashMap<>();
|
|
|
+// tourismFile1.put("tourismFile",tourismFile);
|
|
|
+ tourismProjectVo.setTourismFile(MapConvertUtils.convertObjectToMap(tourismFile));
|
|
|
+ }
|
|
|
+ }
|
|
|
return ResponseResult.success(tourismProjectVo);
|
|
|
}
|
|
|
}
|