From cf2da3b2a63840888815c6a81cbd7948faf93533 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 08 六月 2026 17:41:15 +0800
Subject: [PATCH] aaa

---
 server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java |  152 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 152 insertions(+), 0 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java
index 2d9043e..44e0e3e 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java
@@ -1,6 +1,8 @@
 package com.doumee.service.business.impl;
 
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
@@ -14,6 +16,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -48,6 +51,30 @@
         if(!Objects.isNull(webParam)){
             webParam.setResourcePath(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode() +
                     systemDictDataBiz.queryByCode(Constants.OSS,Constants.WEB_PARAM).getCode());
+            webParam.setAnchorPageVersion(normalizeAnchorPageVersion(webParam.getAnchorPageVersion()));
+        }else{
+            webParam = new WebParam();
+            webParam.setResourcePath(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode() +
+                    systemDictDataBiz.queryByCode(Constants.OSS,Constants.WEB_PARAM).getCode());
+            webParam.setBgImg(systemDictDataBiz.queryByCode(Constants.WEB_PARAM,Constants.BG_IMG).getCode());
+            webParam.setTopImg(systemDictDataBiz.queryByCode(Constants.WEB_PARAM,Constants.TOP_IMG).getCode());
+            webParam.setPkImg(systemDictDataBiz.queryByCode(Constants.WEB_PARAM,Constants.PK_IMG).getCode());
+            webParam.setMainColor(systemDictDataBiz.queryByCode(Constants.WEB_PARAM,Constants.MAIN_COLOR).getCode());
+            webParam.setRangeSize(systemDictDataBiz.queryByCode(Constants.WEB_PARAM,Constants.RANGE_SIZE).getCode());
+            webParam.setAnchorPageVersion(ANCHOR_PAGE_V2);
+        }
+        return webParam;
+    }
+
+    @Override
+    public WebParam findOneNew() {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        QueryWrapper<WebParam> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(WebParam::getCompanyId,user.getCompanyId());
+        wrapper.last(" limit 1  ");
+        WebParam webParam = webParamMapper.selectOne(wrapper);
+        if (webParam != null) {
+            webParam.setAnchorPageVersion(normalizeAnchorPageVersion(webParam.getAnchorPageVersion()));
         }
         return webParam;
     }
@@ -70,11 +97,136 @@
             webParamMapper.insert(webParam);
         }else{
             BeanUtils.copyProperties(updateWebParamDTO,webParam);
+            applyAnchorPageVersion(webParam, updateWebParamDTO.getAnchorPageVersion());
+            webParam.setUpdateUser(user.getId());
+            webParam.setUpdateTime(new Date());
+            webParamMapper.updateById(webParam);
+        }
+    }
+    @Override
+    public void  renewUpdate(UpdateWebParamDTO updateWebParamDTO){
+        if(StringUtils.isBlank(updateWebParamDTO.getNewParam())){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        QueryWrapper<WebParam> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(WebParam::getCompanyId,user.getCompanyId());
+        wrapper.last(" limit 1  ");
+        WebParam webParam = webParamMapper.selectOne(wrapper);
+        if(Objects.isNull(webParam)){
+            webParam = new WebParam();
+            BeanUtils.copyProperties(updateWebParamDTO,webParam);
+            webParam.setCreateTime(new Date());
+            webParam.setDeleted(Constants.ZERO);
+            webParam.setCompanyId(user.getCompanyId());
+            webParam.setCreateUser(user.getId());
+            webParamMapper.insert(webParam);
+        }else{
+            BeanUtils.copyProperties(updateWebParamDTO,webParam);
+            applyAnchorPageVersion(webParam, updateWebParamDTO.getAnchorPageVersion());
             webParam.setUpdateUser(user.getId());
             webParam.setUpdateTime(new Date());
             webParamMapper.updateById(webParam);
         }
     }
 
+    @Override
+    public WebParam findOneAnchor() {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        QueryWrapper<WebParam> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(WebParam::getCompanyId, user.getCompanyId());
+        wrapper.last(" limit 1 ");
+        WebParam webParam = webParamMapper.selectOne(wrapper);
+        String resourcePath = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.WEB_PARAM).getCode();
+        if (webParam == null) {
+            webParam = new WebParam();
+            webParam.setAnchorParam(getDefaultAnchorParam());
+            webParam.setAnchorPageVersion(ANCHOR_PAGE_V2);
+        } else if (StringUtils.isBlank(webParam.getAnchorParam())) {
+            webParam.setAnchorParam(getDefaultAnchorParam());
+        }
+        webParam.setAnchorPageVersion(normalizeAnchorPageVersion(webParam.getAnchorPageVersion()));
+        webParam.setResourcePath(resourcePath);
+        return webParam;
+    }
+
+    @Override
+    public void renewAnchorUpdate(UpdateWebParamDTO updateWebParamDTO) {
+        if (StringUtils.isBlank(updateWebParamDTO.getAnchorParam())) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        QueryWrapper<WebParam> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(WebParam::getCompanyId, user.getCompanyId());
+        wrapper.last(" limit 1 ");
+        WebParam webParam = webParamMapper.selectOne(wrapper);
+        if (Objects.isNull(webParam)) {
+            webParam = new WebParam();
+            webParam.setAnchorParam(updateWebParamDTO.getAnchorParam());
+            applyAnchorPageVersion(webParam, updateWebParamDTO.getAnchorPageVersion());
+            webParam.setCreateTime(new Date());
+            webParam.setDeleted(Constants.ZERO);
+            webParam.setCompanyId(user.getCompanyId());
+            webParam.setCreateUser(user.getId());
+            webParamMapper.insert(webParam);
+        } else {
+            webParam.setAnchorParam(updateWebParamDTO.getAnchorParam());
+            applyAnchorPageVersion(webParam, updateWebParamDTO.getAnchorPageVersion());
+            webParam.setUpdateUser(user.getId());
+            webParam.setUpdateTime(new Date());
+            webParamMapper.updateById(webParam);
+        }
+    }
+
+    @Override
+    public void updateAnchorPageVersion(String anchorPageVersion) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String version = normalizeAnchorPageVersion(anchorPageVersion);
+        QueryWrapper<WebParam> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(WebParam::getCompanyId, user.getCompanyId());
+        wrapper.last(" limit 1 ");
+        WebParam webParam = webParamMapper.selectOne(wrapper);
+        if (Objects.isNull(webParam)) {
+            webParam = new WebParam();
+            webParam.setAnchorPageVersion(version);
+            webParam.setCreateTime(new Date());
+            webParam.setDeleted(Constants.ZERO);
+            webParam.setCompanyId(user.getCompanyId());
+            webParam.setCreateUser(user.getId());
+            webParamMapper.insert(webParam);
+        } else {
+            webParam.setAnchorPageVersion(version);
+            webParam.setUpdateUser(user.getId());
+            webParam.setUpdateTime(new Date());
+            webParamMapper.updateById(webParam);
+        }
+    }
+
+    private static final String ANCHOR_PAGE_V2 = "v2";
+    private static final String ANCHOR_PAGE_V3 = "v3";
+
+    private String normalizeAnchorPageVersion(String version) {
+        return ANCHOR_PAGE_V3.equalsIgnoreCase(StringUtils.trimToEmpty(version)) ? ANCHOR_PAGE_V3 : ANCHOR_PAGE_V2;
+    }
+
+    private void applyAnchorPageVersion(WebParam webParam, String anchorPageVersion) {
+        if (StringUtils.isNotBlank(anchorPageVersion)) {
+            webParam.setAnchorPageVersion(normalizeAnchorPageVersion(anchorPageVersion));
+        }
+    }
+
+    private String getDefaultAnchorParam() {
+        return "{\"rangeSize\":\"750\",\"main\":{\"bgType\":1,\"bgColor\":\"#E8DCC8\",\"alpha\":\"100\",\"bgImg\":{\"isShow\":1,\"type\":0}},"
+                + "\"topImg\":{\"type\":0,\"img\":\"\",\"imgurl\":\"\"},"
+                + "\"adImg\":{\"type\":0,\"img\":\"\",\"imgurl\":\"\"},"
+                + "\"pkImg\":{\"type\":0,\"img\":\"\",\"imgurl\":\"\"},"
+                + "\"header\":{\"backgroundType\":1,\"bgColor\":\"#4A3728\",\"bgAlpha\":\"100\",\"type\":1,\"color\":\"#FFFFFF\",\"alpha\":\"100\"},"
+                + "\"table\":{\"headerBg\":\"#4A3728\",\"headerColor\":\"#FFFFFF\",\"rowBg\":\"#F5EFE6\",\"hoverScale\":1.05},"
+                + "\"featured\":[{\"goodsId\":\"\",\"prefixUrl\":\"\",\"imgurl\":\"\",\"title\":\"\",\"tags\":[\"\",\"\"]},{\"goodsId\":\"\",\"prefixUrl\":\"\",\"imgurl\":\"\",\"title\":\"\",\"tags\":[\"\",\"\"]}],"
+                + "\"search\":{\"bgType\":1,\"bgColor\":\"#FFFFFF\",\"bgAlpha\":\"100\"},"
+                + "\"productList\":{\"bgType\":1,\"bgColor\":\"#F5EFE6\",\"bgAlpha\":\"100\"},"
+                + "\"pk\":{\"vsColor\":\"#FF8C42\"}}";
+    }
 
 }

--
Gitblit v1.9.3