package cn.ibizlab.util.service; import cn.ibizlab.util.domain.IBZConfig; import cn.ibizlab.util.errors.BadRequestAlertException; import cn.ibizlab.util.helper.DataObject; import cn.ibizlab.util.mapper.IBZConfigMapper; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @Slf4j @Service public class IBZConfigService extends ServiceImpl<IBZConfigMapper, IBZConfig> implements IService<IBZConfig> { @Value("${ibiz.systemid:ibznotify}") private String systemId; @Value("${ibiz.admin.userid:0100}") private String adminuserid; @Cacheable(value="ibzrt_configs",key = "'cfgid:'+#p0+'||'+#p1+'||'+#p2") public JSONObject getConfig(String cfgType,String targetType,String userId) { if(StringUtils.isEmpty(userId) || StringUtils.isEmpty(cfgType) || StringUtils.isEmpty(targetType)) { throw new BadRequestAlertException("获取配置失败,参数缺失","IBZConfig",cfgType); } IBZConfig config = this.getOne(Wrappers.query(IBZConfig.builder().systemId(systemId).cfgType(cfgType).targetType(targetType).userId(userId).build()), false); if(config == null) { config = this.getOne(Wrappers.query(IBZConfig.builder().systemId(systemId).cfgType(cfgType).targetType(targetType).userId(adminuserid).build()), false); if(config == null) { return new JSONObject(); } } return JSON.parseObject(config.getCfg()); } @CacheEvict(value="ibzrt_configs", key = "'cfgid:'+#p0+'||'+#p1+'||'+#p2") public boolean saveConfig(String cfgType, String targetType, String userId, JSONObject config) { if(StringUtils.isEmpty(userId) || StringUtils.isEmpty(cfgType) || StringUtils.isEmpty(targetType)) { throw new BadRequestAlertException("保存配置失败,参数缺失","IBZConfig",cfgType); } String cfg = "{}"; if(config != null) { cfg = JSONObject.toJSONString(config); } return this.saveOrUpdate(IBZConfig.builder().systemId(systemId).cfgType(cfgType).targetType(targetType).userId(userId).cfg(cfg).updateDate(DataObject.getNow()).build()); } @CacheEvict(value = "ibzrt_configs", key = "'cfgid:'+#p0+'||'+#p1+'||'+#p2") public void resetConfig(String cfgType, String targetType, String userId) { if(StringUtils.isEmpty(userId) || StringUtils.isEmpty(cfgType) || StringUtils.isEmpty(targetType)) { throw new BadRequestAlertException("重置配置失败,参数缺失","IBZConfig",cfgType); } this.remove(Wrappers.query(IBZConfig.builder().systemId(systemId).cfgType(cfgType).targetType(targetType).userId(userId).build())); } }