From 9057e04efad1b7d61c77a72e5c37a504d0aee935 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 26 九月 2025 09:24:03 +0800
Subject: [PATCH] H5静态化

---
 server/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java |  167 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 157 insertions(+), 10 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 cc70261..4da47ed 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
@@ -22,6 +22,8 @@
 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;
@@ -240,22 +242,40 @@
         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 gitUrl = queryByCode(Constants.SYSTEM,Constants.GIT_CODR_URL).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("gitCodeUrl",gitUrl);
+        dataMap.put("navIndex",objIndex.getNavIndex());
         List<Seo> seoList = seoMapper.selectList(new LambdaQueryWrapper<Seo>().eq(Seo::getIsdeleted,Constants.ZERO));
-        dataMap.put("seo",getSeoByHtml(Constants.PageIndex.getObj(pageIndex).getHtml(),seoList));
-        initDataMapByPage(objIndex,dataMap);
-        if(objIndex.getKey() == Constants.PageIndex.dynamicsDetail.getKey() || objIndex.getKey() == Constants.PageIndex.dynamicsDetail.getKey() ){
-            List<Information> dataList =getInfomationListByType(objIndex.getKey() == Constants.PageIndex.dynamics.getKey() ?Constants.ZERO:Constants.ONE,null);
+        Seo seo =getSeoByHtml(objIndex.getTemplate(),seoList);
+        dataMap.put("seo",seo);
+        initDataMapByPage(dataMap);
+        if(objIndex.getKey() == Constants.PageIndex.dynamicsDetail.getKey() || objIndex.getKey() == Constants.PageIndex.casesDetail.getKey() ){
+            File f = new File(htmlPath+"dynamics/");
+            if(!f.exists()){
+                f.mkdirs();
+            }
+            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));
@@ -265,12 +285,108 @@
                 dataMap.put("bannerList",  carouselMapper.selectList(new LambdaQueryWrapper<Carousel>()
                         .eq(Carousel::getIsdeleted,Constants.ZERO)
                         .orderByDesc(Carousel::getSortnum ,Carousel::getCreateDate)));
-                dataMap.put("caseList", getInfomationListByType( Constants.ONE,12));
-                dataMap.put("zixunList", getInfomationListByType( Constants.ZERO,12));
+                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;
+    }
+    @Override
+    public String createMobilePage(Integer pageIndex) {
+        Constants.MobilePageIndex objIndex  = Constants.MobilePageIndex.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_MOBILE).getCode();
+        String htmlPath = queryByCode(Constants.SYSTEM,Constants.STATIC_PAGES_PATH_MOBILE).getCode();
+        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());
+        dataMap.put("template",flt);
+        List<Seo> seoList = seoMapper.selectList(new LambdaQueryWrapper<Seo>().eq(Seo::getIsdeleted,Constants.ZERO));
+        Seo seo =getSeoByHtml(objIndex.getTemplate(),seoList);
+        dataMap.put("seo",seo);
+        initDataMapByPage(dataMap);
+        if(objIndex.getKey() == Constants.MobilePageIndex.dynamicDetail.getKey() || objIndex.getKey() == Constants.PageIndex.casesDetail.getKey() ){
+            File f = new File(htmlPath+"dynamics/");
+            if(!f.exists()){
+                f.mkdirs();
+            }
+            List<Information> dataList =getInfomationListByType(objIndex.getKey() == Constants.MobilePageIndex.dynamicDetail.getKey() ?Constants.ZERO:Constants.ONE,null);
+            generateDetailsHtml(dataList,dataMap,flt,htmlPath+html);//鍗曟枃浠舵暟鎹�
+        }else  if(objIndex.getKey() == Constants.MobilePageIndex.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.MobilePageIndex.dynamics.getKey() ){
+            List<Information> zixunList =  getInfomationListByType( Constants.ZERO,null);
+            //鎵�灞炴ā鍧� 0琛屼笟璧勮銆�1杩愯惀缁忛獙銆�2鍔熻兘浠嬬粛銆�3甯傚満淇℃伅
+
+            dataMap.put("gongnengJs", getModelListFromListByModule( zixunList ,Constants.TWO));
+            dataMap.put("hangyeZx", getModelListFromListByModule( zixunList ,Constants.ZERO));
+            dataMap.put("shichangXx", getModelListFromListByModule( zixunList ,Constants.THREE));
+            for (int i = 0; i < 4; i++) {
+                dataMap.put("pageTitle",i==0?"琛屼笟璧勮":(i==1?"杩愯惀缁忛獙":(i==2?"鍔熻兘浠嬬粛":"甯傚満淇℃伅")));
+                dataMap.put("dataList", getModelListFromListByModule( zixunList,i));
+                generateSingleHtml(dataMap,flt,htmlPath+(html.replace("${type}",i+"")));//鍗曟枃浠舵暟鎹�
+            }
+        }else{
+            if(objIndex.getKey() == Constants.MobilePageIndex.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));
+            }
+            if(objIndex.getKey() == Constants.MobilePageIndex.index.getKey()
+                    ||objIndex.getKey() == Constants.MobilePageIndex.dynamicIndex.getKey()){
+                //濡傛灉鏄椤�
+                List<Information> zixunList =  getInfomationListByType( Constants.ZERO,null);
+                //鎵�灞炴ā鍧� 0琛屼笟璧勮銆�1杩愯惀缁忛獙銆�2鍔熻兘浠嬬粛銆�3甯傚満淇℃伅
+                dataMap.put("yunyingJy", getModelListFromListByModule( zixunList ,Constants.ONE));
+                dataMap.put("gongnengJs", getModelListFromListByModule( 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) {
@@ -279,6 +395,11 @@
         }
         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;
             }
         }
@@ -301,20 +422,36 @@
         }
         for(Information data :dataList){
             dataMap.put("data",data);
-            generateSingleHtml(dataMap,flt,htmlPath.replace("${id}",data.getId()+""));//鍗曟枃浠舵暟鎹�
+            if(Constants.equalsInteger(data.getType(),Constants.ZERO)){
+                int i = Constants.formatIntegerNum(data.getModule());
+                dataMap.put("pageTitle",i==0?"琛屼笟璧勮":(i==1?"杩愯惀缁忛獙":(i==2?"鍔熻兘浠嬬粛":"甯傚満淇℃伅")));
+            }
+            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)));
+            out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile), "UTF-8"));
             // 杈撳嚭鏂囦欢
             template.process(dataMap,out);
         } catch (Exception e) {
@@ -323,7 +460,7 @@
         }
     }
 
-    private void initDataMapByPage(Constants.PageIndex objIndex, Map<String, Object> dataMap) {
+    private void initDataMapByPage(Map<String, Object> dataMap) {
         dataMap.put("bottom", getFoodDataVO());//缃戠珯搴曢儴淇℃伅
     }
 
@@ -344,6 +481,13 @@
         String path = findDictDataByLabel(dictDataList,Constants.FILE_DIR);
         footDataVO.setFileDir(path);
         footDataVO.setFootWords(findDictDataByLabel(dictDataList,Constants.FOOT_WORDS));
+        String temp = footDataVO.getFootWords();
+        footDataVO.setFootWords1(temp);
+        if(StringUtils.indexOf(temp,"dmtt.run")>0){
+            footDataVO.setFootWords1(temp.substring(0,StringUtils.indexOf(temp,"dmtt.run")));
+            footDataVO.setFootWords2(temp.substring(StringUtils.indexOf(temp,"dmtt.run") + "dmtt.run".length()));
+        }
+        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));
@@ -363,11 +507,14 @@
         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){

--
Gitblit v1.9.3