From 08e9a67dd679f311e79a27b04cd0c53a30b4bccf Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 04 六月 2026 18:33:22 +0800
Subject: [PATCH] aaa

---
 server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java |  106 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 106 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 0fc1495..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
@@ -51,6 +51,7 @@
         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() +
@@ -60,6 +61,7 @@
             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;
     }
@@ -71,6 +73,9 @@
         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;
     }
 
@@ -92,6 +97,7 @@
             webParamMapper.insert(webParam);
         }else{
             BeanUtils.copyProperties(updateWebParamDTO,webParam);
+            applyAnchorPageVersion(webParam, updateWebParamDTO.getAnchorPageVersion());
             webParam.setUpdateUser(user.getId());
             webParam.setUpdateTime(new Date());
             webParamMapper.updateById(webParam);
@@ -117,10 +123,110 @@
             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