From f8bf5c88605e51b409d89c9cbd966942796e3ec5 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 19 九月 2025 09:23:20 +0800
Subject: [PATCH] 优化
---
server/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java | 234 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 231 insertions(+), 3 deletions(-)
diff --git a/server/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java b/server/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
index b602f4a..c43bd2b 100644
--- a/server/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
+++ b/server/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
@@ -1,28 +1,49 @@
package com.doumee.biz.system.impl;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.Constants;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.qiyeweixin.QywxUtil;
+import com.doumee.dao.business.CarouselMapper;
+import com.doumee.dao.business.InformationMapper;
+import com.doumee.dao.business.SeoMapper;
+import com.doumee.dao.business.model.Carousel;
+import com.doumee.dao.business.model.Information;
+import com.doumee.dao.business.model.Seo;
import com.doumee.dao.common.dto.UpdateSortDTO;
import com.doumee.dao.system.model.SystemDict;
import com.doumee.dao.system.model.SystemDictData;
+import com.doumee.dao.vo.FootDataVO;
import com.doumee.service.system.SystemDictDataService;
import com.doumee.service.system.SystemDictService;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import io.swagger.models.Info;
+import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.io.*;
+import java.util.*;
@Service
public class SystemDictDataBizImpl implements SystemDictDataBiz {
+ @Autowired
+ private FreeMarkerConfigurer freeMarkerConfigurer;
+ @Autowired
+ private InformationMapper informationMapper;
+ @Autowired
+ private CarouselMapper carouselMapper;
+ @Autowired
+ private SeoMapper seoMapper;
@Autowired
private SystemDictDataService systemDictDataService;
@Autowired
@@ -184,6 +205,7 @@
return list;
}
+
@Override
public void updateByDicId(List<SystemDictData> list) {
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -214,4 +236,210 @@
return resourcePath+targetPath;
}
+ @Override
+ public String createPage(Integer pageIndex) {
+ Constants.PageIndex objIndex = Constants.PageIndex.getObj(pageIndex);
+ if(objIndex == null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ String flt = objIndex.getTemplate();//妯$増鍚嶇О
+ String html = objIndex.getHtml();//椤甸潰鍚嶇О
+ String domain = queryByCode(Constants.SYSTEM,Constants.WEB_DOMAIN).getCode();
+ String htmlPath = queryByCode(Constants.SYSTEM,Constants.STATIC_PAGES_PATH).getCode();
+// domain = ".";
+// htmlPath = "D://static/";
+ File docFile = new File( htmlPath);
+ if(!docFile.exists()){
+ docFile.mkdirs();
+ }
+ Map<String,Object> dataMap = new HashMap<>();
+ dataMap.put("webDomain",domain);
+ dataMap.put("navIndex",objIndex.getNavIndex());
+ List<Seo> seoList = seoMapper.selectList(new LambdaQueryWrapper<Seo>().eq(Seo::getIsdeleted,Constants.ZERO));
+ Seo seo =getSeoByHtml(objIndex.getTemplate(),seoList);
+ dataMap.put("seo",seo);
+ initDataMapByPage(objIndex,dataMap);
+ if(objIndex.getKey() == Constants.PageIndex.dynamicsDetail.getKey() || objIndex.getKey() == Constants.PageIndex.casesDetail.getKey() ){
+ List<Information> dataList =getInfomationListByType(objIndex.getKey() == Constants.PageIndex.dynamicsDetail.getKey() ?Constants.ZERO:Constants.ONE,null);
+ generateDetailsHtml(dataList,dataMap,flt,htmlPath+html);//鍗曟枃浠舵暟鎹�
+ }else
+ if(objIndex.getKey() == Constants.PageIndex.bannerDetails.getKey() ){
+ List<Carousel> dataList = carouselMapper.selectList(new LambdaQueryWrapper<Carousel>()
+ .eq(Carousel::getIsdeleted,Constants.ZERO)
+ .eq(Carousel::getJumpType,Constants.ONE)//澶栭摼
+ .orderByDesc(Carousel::getSortnum ,Carousel::getCreateDate));
+ generateBannerDetailsHtml(dataList,dataMap,flt,htmlPath+html);//鍗曟枃浠舵暟鎹�
+ }else{
+ if(objIndex.getKey() == Constants.PageIndex.dynamics.getKey() || objIndex.getKey() == Constants.PageIndex.casesDetail.getKey() ){
+ dataMap.put("dataList", getInfomationListByType(objIndex.getKey() == Constants.PageIndex.dynamics.getKey() ?Constants.ZERO:Constants.ONE,null));
+ }
+ if(objIndex.getKey() == Constants.PageIndex.index.getKey()){
+ //濡傛灉鏄椤�
+ dataMap.put("bannerList", carouselMapper.selectList(new LambdaQueryWrapper<Carousel>()
+ .eq(Carousel::getIsdeleted,Constants.ZERO)
+ .orderByDesc(Carousel::getSortnum ,Carousel::getCreateDate)));
+ dataMap.put("caseList", getInfomationListByType( Constants.ONE,null));
+ List<Information> zixunList = getInfomationListByType( Constants.ZERO,null);
+ //鎵�灞炴ā鍧� 0琛屼笟璧勮銆�1杩愯惀缁忛獙銆�2鍔熻兘浠嬬粛銆�3甯傚満淇℃伅
+ dataMap.put("yunyingJy", getModelFromListByModule( zixunList ,Constants.ONE));
+ dataMap.put("gongnengJs", getModelFromListByModule( zixunList ,Constants.TWO));
+ dataMap.put("hangyeZx", getModelListFromListByModule( zixunList ,Constants.ZERO));
+ dataMap.put("shichangXx", getModelListFromListByModule( zixunList ,Constants.THREE));
+ }
+ generateSingleHtml(dataMap,flt,htmlPath+html);//鍗曟枃浠舵暟鎹�
+ }
+ return null;
+ }
+
+ private Information getModelFromListByModule(List<Information> zixunList, Integer m) {
+ if(zixunList !=null){
+ for(Information model :zixunList){
+ if(model.getModule()!=null && Constants.equalsInteger(model.getModule(),m)){
+ return model;
+ }
+ }
+ }
+ return new Information();
+ }
+ private List getModelListFromListByModule(List<Information> zixunList, Integer m) {
+ List<Information> list = new ArrayList<>();
+ if(zixunList !=null){
+ for(Information model :zixunList){
+ if(model.getModule()!=null && Constants.equalsInteger(model.getModule(),m)){
+ list.add(model);
+ }
+ }
+ }
+ return list;
+ }
+
+ private Seo getSeoByHtml(String html, List<Seo> seoList) {
+ if(seoList==null || seoList.size()==0){
+ return new Seo();
+ }
+ for(Seo s :seoList){
+ if(StringUtils.equalsIgnoreCase(s.getPageAddr(),html)){
+ return s;
+ }
+ }
+ for(Seo s :seoList){
+ if(StringUtils.equalsIgnoreCase(s.getPageAddr(),Constants.PageIndex.defaultPage.getTemplate())){
+ return s;
+ }
+ }
+ return new Seo();
+ }
+
+ private List<Information> getInfomationListByType(Integer type,Integer limit) {
+ List<Information> dataList =informationMapper.selectList(new LambdaQueryWrapper<Information>()
+ .eq(Information::getType,type)
+ .eq(Information::getIsdeleted,Constants.ZERO)
+ .last(limit!=null,"limit "+limit)
+ .orderByDesc(Information::getSortnum ,Information::getCreateDate) );//鏌ヨ鍏ㄩ儴璧勮
+
+ return dataList;
+ }
+
+ private void generateDetailsHtml(List<Information> dataList, Map<String, Object> dataMap, String flt, String htmlPath) {
+ if(dataList== null){
+ return;
+ }
+ for(Information data :dataList){
+ dataMap.put("data",data);
+ String tt =htmlPath.replace("${id}",data.getId()+"");
+ generateSingleHtml(dataMap,flt,tt);//鍗曟枃浠舵暟鎹�
+ }
+ }
+ private void generateBannerDetailsHtml(List<Carousel> dataList, Map<String, Object> dataMap, String flt, String htmlPath) {
+ if(dataList== null){
+ return;
+ }
+ for(Carousel data :dataList){
+ dataMap.put("data",data);
+ String tt =htmlPath.replace("${id}",data.getId()+"");
+ generateSingleHtml(dataMap,flt,tt);//鍗曟枃浠舵暟鎹�
+ }
+ }
+
+ private void generateSingleHtml(Map<String, Object> dataMap, String flt, String htmlPath) {
+ try {
+ Configuration configuration = freeMarkerConfigurer.getConfiguration();
+ configuration.setDefaultEncoding("utf-8");
+ Writer out = null;
+
+ // 鍔犺浇妯$増鏂囦欢
+ Template template = configuration.getTemplate(flt);
+ // 鐢熸垚鏁版嵁
+ File docFile = new File( htmlPath);
+ out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile), "UTF-8"));
+ // 杈撳嚭鏂囦欢
+ template.process(dataMap,out);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new BusinessException(ResponseStatus.SERVER_ERROR);
+ }
+ }
+
+ private void initDataMapByPage(Constants.PageIndex objIndex, Map<String, Object> dataMap) {
+ dataMap.put("bottom", getFoodDataVO());//缃戠珯搴曢儴淇℃伅
+ }
+
+ public FootDataVO getFoodDataVO(){
+ FootDataVO footDataVO = new FootDataVO();
+ SystemDict d = new SystemDict();
+ d.setCode(Constants.SYSTEM);
+ d.setDeleted(Boolean.FALSE);
+ d = systemDictService.findOne(d);
+ if(d ==null){
+ return footDataVO;
+ }
+ SystemDictData param = new SystemDictData();
+ param.setDictId(d.getId());
+ param.setDeleted(Boolean.FALSE);
+ List<SystemDictData> dictDataList = systemDictDataService.findList(param);
+
+ String path = findDictDataByLabel(dictDataList,Constants.FILE_DIR);
+ footDataVO.setFileDir(path);
+ footDataVO.setFootWords(findDictDataByLabel(dictDataList,Constants.FOOT_WORDS));
+ footDataVO.setQyemail(findDictDataByLabel(dictDataList,Constants.QYEMAIL));
+ footDataVO.setFootImgUrl(findDictDataByLabel(dictDataList,Constants.FOOT_IMGURL));
+ footDataVO.setFootFullImgUrl(path+ footDataVO.getFootImgUrl());
+ footDataVO.setFootImgUrl2(findDictDataByLabel(dictDataList,Constants.FOOT_IMGURL2));
+ footDataVO.setFootFullImgUrl2(path + footDataVO.getFootImgUrl2());
+ footDataVO.setAddress(findDictDataByLabel(dictDataList,Constants.ADDRESS));
+ footDataVO.setLinkPhone(findDictDataByLabel(dictDataList,Constants.LINK_PHONE));
+ footDataVO.setLinkMobile(findDictDataByLabel(dictDataList,Constants.LINK_MOBILE));
+ String solveScheme = findDictDataByLabel(dictDataList,Constants.SOLVE_SCHEME);
+ if(Objects.nonNull(solveScheme) & org.apache.commons.lang3.StringUtils.isNotBlank(solveScheme)){
+ footDataVO.setSolveScheme(JSONArray.parseArray(solveScheme));
+ }
+ String wisdomSystem = findDictDataByLabel(dictDataList,Constants.WISDOM_SYSTEM);
+ if(Objects.nonNull(wisdomSystem) & org.apache.commons.lang3.StringUtils.isNotBlank(wisdomSystem )){
+ footDataVO.setWisdomSystem(JSONArray.parseArray(wisdomSystem ));
+ }
+ String honors = findDictDataByLabel(dictDataList,Constants.HONORS);
+ if(Objects.nonNull(wisdomSystem) & org.apache.commons.lang3.StringUtils.isNotBlank(honors)){
+ footDataVO.setHonors(JSONArray.parseArray(honors));
+ }
+ String qylinks = findDictDataByLabel(dictDataList,Constants.YQLINKS);
+ if(Objects.nonNull(qylinks) & org.apache.commons.lang3.StringUtils.isNotBlank(qylinks)){
+ footDataVO.setYqlinks(JSONArray.parseArray(qylinks));
+ }
+ footDataVO.setServerTime(findDictDataByLabel(dictDataList,Constants.SERVER_TIME));
+
+ return footDataVO;
+ }
+
+ private String findDictDataByLabel(List<SystemDictData> dictDataList, String footWords) {
+ if(dictDataList!=null){
+ for(SystemDictData data:dictDataList){
+ if(StringUtils.equals(footWords,data.getLabel())){
+ return data.getCode();
+ }
+ }
+ }
+ return "";
+ }
+
+
}
--
Gitblit v1.9.3