aaa
doum
2026-06-04 08e9a67dd679f311e79a27b04cd0c53a30b4bccf
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,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() +
@@ -57,6 +61,20 @@
            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;
    }
@@ -79,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\"}}";
    }
}