Bläddra i källkod

首页图标配置

zxfqwert 7 månader sedan
förälder
incheckning
6c0aa69e5d

+ 10 - 0
suishenbang-wxportal/suishenbang-wxportal-common/pom.xml

@@ -27,6 +27,16 @@
             <artifactId>itextpdf</artifactId>
             <version>5.5.13</version>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jdbc</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.12.3</version> <!-- 请根据需要更换版本号 -->
+        </dependency>
+
         <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>

+ 17 - 0
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/domain/HomeIconConfig.java

@@ -0,0 +1,17 @@
+package com.dgtly.wxportal.domain;
+import com.dgtly.common.core.domain.BaseEntity;
+import lombok.Data;
+import java.util.List;
+@Data
+public class HomeIconConfig extends BaseEntity
+{
+    private  Long id;
+    private  String portal_background;
+    private  String small_icon_extra;
+    private  String activity_icon_starttime;
+    private  String activity_icon_endtime;
+    private  String bottom_prompt_text;
+    private  String prompt_text_color;
+    private  String activity_icon_extra;
+
+}

+ 5 - 0
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/IWxMagnetService.java

@@ -4,6 +4,7 @@ import com.dgtly.common.core.domain.Ztree;
 import com.dgtly.system.domain.SysMenu;
 import com.dgtly.system.domain.SysRole;
 import com.dgtly.system.domain.SysUser;
+import com.dgtly.wxportal.domain.HomeIconConfig;
 import com.dgtly.wxportal.domain.WxMagnet;
 
 import java.awt.*;
@@ -111,4 +112,8 @@ public interface IWxMagnetService
     List<WxMagnet> selectMagnetByUserId(String userId, String cw, String salesLevel);
 
     List<WxMagnet> selectWxMagnetRoleByUserId(Long userId,String magnetName);
+
+    void updateHomeIcon(HomeIconConfig homeIconConfig);
+
+    Map<String, Object> selectHomeIconInfoById(Long id);
 }

+ 68 - 2
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/impl/WxMagnetServiceImpl.java

@@ -1,20 +1,25 @@
 package com.dgtly.wxportal.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.dgtly.common.constant.UserConstants;
-import com.dgtly.common.core.controller.ApiBaseController;
 import com.dgtly.common.core.domain.Ztree;
 import com.dgtly.common.utils.StringUtils;
 import com.dgtly.system.domain.SysRole;
 import com.dgtly.system.domain.SysUser;
 import com.dgtly.system.mapper.SysRoleMenuMapper;
 import com.dgtly.system.service.ISysConfigService;
+import com.dgtly.wxportal.domain.HomeIconConfig;
 import com.dgtly.wxportal.domain.RoleMagnet;
 import com.dgtly.wxportal.domain.WxMagnet;
 import com.dgtly.wxportal.mapper.WxMagnetMapper;
 import com.dgtly.wxportal.service.IWxMagnetService;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -28,7 +33,8 @@ import java.util.*;
 public class WxMagnetServiceImpl implements IWxMagnetService
 {
     public static final String PREMISSION_STRING = "perms[\"{0}\"]";
-
+    @Autowired
+    JdbcTemplate jdbcTemplate;
     @Autowired
     private WxMagnetMapper wxMagnetMapper;
 
@@ -242,6 +248,7 @@ public class WxMagnetServiceImpl implements IWxMagnetService
     }
 
 
+
     public static String KL(String inStr) {
         char[] a = inStr.toCharArray();
         for (int i = 0; i < a.length; i++) {
@@ -280,4 +287,63 @@ public class WxMagnetServiceImpl implements IWxMagnetService
         return ztrees;
     }
 
+
+    public static boolean isValidJson(String jsonStr) {
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            JsonNode node = mapper.readTree(jsonStr);
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+
+
+    }
+    /*保存首页图标配置*/
+    @Override
+    public void updateHomeIcon(HomeIconConfig homeIconConfig) {
+       //校验json字符串是否正确
+       if(StringUtils.isNotBlank(homeIconConfig.getSmall_icon_extra())){
+           if(!isValidJson(homeIconConfig.getSmall_icon_extra())){
+              throw new RuntimeException("小图标json数据格式错误!");
+           }
+       }
+        if(StringUtils.isNotBlank(homeIconConfig.getActivity_icon_extra())){
+            if(!isValidJson(homeIconConfig.getActivity_icon_extra())){
+                throw new RuntimeException("活动图标json数据格式错误!");
+            }
+        }
+        if(StringUtils.isBlank(String.valueOf(homeIconConfig.getId()))) {
+            String insertSql = "INSERT INTO system_home_config (portal_background,small_icon_extra,activity_icon_extra,activity_icon_starttime,activity_icon_endtime,bottom_prompt_text,prompt_text_color,create_by,create_time) VALUES (?,?,?,?,?,?,?,?,now());";
+            Object[] args = new Object[]{homeIconConfig.getPortal_background(), homeIconConfig.getSmall_icon_extra(), homeIconConfig.getActivity_icon_extra(), homeIconConfig.getActivity_icon_starttime(), homeIconConfig.getActivity_icon_endtime(), homeIconConfig.getBottom_prompt_text(), homeIconConfig.getPrompt_text_color(),homeIconConfig.getCreateBy()};
+            jdbcTemplate.update(insertSql, args);
+        }
+        String updateSql = "update  system_home_config  set portal_background=?,small_icon_extra=?,activity_icon_extra=?,activity_icon_starttime=?,activity_icon_endtime=?,bottom_prompt_text=?,prompt_text_color=?,update_by=?,update_time=now() where id=?;";
+        Object[] args = new Object[]{homeIconConfig.getPortal_background(), homeIconConfig.getSmall_icon_extra(), homeIconConfig.getActivity_icon_extra(), homeIconConfig.getActivity_icon_starttime(), homeIconConfig.getActivity_icon_endtime(), homeIconConfig.getBottom_prompt_text(), homeIconConfig.getPrompt_text_color(),homeIconConfig.getUpdateBy(),homeIconConfig.getId()};
+        jdbcTemplate.update(updateSql, args);
+    }
+
+    @Override
+    public Map<String, Object> selectHomeIconInfoById(Long id) {
+        List<Map<String,Object>> iconInfos=jdbcTemplate.queryForList("select * from system_home_config where id=?",id);
+        Map<String,Object> iconInfo= iconInfos.size()!=0?iconInfos.get(0):null;
+        if(iconInfo!=null) {
+            String smallIconString = iconInfo.get("small_icon_extra").toString();
+            String activityIconString = iconInfo.get("activity_icon_extra").toString();
+            if (StringUtils.isNotBlank(smallIconString)) {
+                Map mapType = JSON.parseObject(smallIconString, Map.class);
+                iconInfo.put("smallIconObject", mapType);
+                iconInfo.remove("small_icon_extra");
+            }
+            if (StringUtils.isNotBlank(activityIconString)) {
+                Map mapType = JSON.parseObject(activityIconString, Map.class);
+                iconInfo.put("activityIconObject", mapType);
+                iconInfo.remove("activity_icon_extra");
+            }
+            return iconInfo;
+        }
+        return null;
+    }
+
+
 }

+ 36 - 0
suishenbang-wxportal/suishenbang-wxportal-manager/src/main/java/com/dgtly/wxportal/controller/WxMagnetController.java

@@ -1,5 +1,6 @@
 package com.dgtly.wxportal.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.dgtly.common.annotation.Log;
 import com.dgtly.common.constant.UserConstants;
 import com.dgtly.common.core.controller.BaseController;
@@ -8,11 +9,16 @@ import com.dgtly.common.core.domain.Ztree;
 import com.dgtly.common.core.page.TableDataInfo;
 import com.dgtly.common.enums.BusinessType;
 import com.dgtly.common.exception.BusinessException;
+import com.dgtly.common.utils.StringUtils;
 import com.dgtly.framework.util.ShiroUtils;
 import com.dgtly.system.domain.SysRole;
 import com.dgtly.system.domain.SysUser;
+import com.dgtly.wxportal.domain.HomeIconConfig;
 import com.dgtly.wxportal.domain.WxMagnet;
 import com.dgtly.wxportal.service.IWxMagnetService;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import net.sf.jsqlparser.expression.StringValue;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -20,7 +26,9 @@ import org.springframework.ui.ModelMap;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -166,6 +174,34 @@ public class WxMagnetController extends BaseController
         return getDataTable(magnetList);
     }
 
+    /**
+     * 配置首页新增图标配置
+     */
+
+    @Log(title = "首页图标配置", businessType = BusinessType.UPDATE)
+    @RequiresPermissions("wxportal:magnethome:edit")
+    @PostMapping("/editHome")
+    @ResponseBody
+    public AjaxResult editHomeSave(@RequestBody HomeIconConfig homeIconConfig)
+    {
+
+        SysUser user = ShiroUtils.getSysUser();
+        homeIconConfig.setCreateBy(user.getUserName());
+        homeIconConfig.setUpdateBy(user.getUserName());
+        wxMagnetService.updateHomeIcon(homeIconConfig);
+       return  AjaxResult.success("保存成功!");
+    }
+
+    @PostMapping("/getHomeIconInfo")
+    @ResponseBody
+    public AjaxResult getHoemIconCongif(@RequestBody HomeIconConfig homeIconConfig) throws IOException {
+        if(StringUtils.isBlank(String.valueOf(homeIconConfig.getId()))){
+            return AjaxResult.error("id不能为空!");
+        }
+        Map<String,Object> iconInfo= wxMagnetService.selectHomeIconInfoById(homeIconConfig.getId());
+        return  AjaxResult.success(iconInfo);
+    }
+
 
     /**
      * 加载角色磁贴列表树