package cn.ibizlab.humanresource.util.service; import cn.ibizlab.humanresource.util.domain.IBZConfig; import cn.ibizlab.humanresource.util.errors.BadRequestAlertException; import cn.ibizlab.humanresource.util.helper.DataObject; import cn.ibizlab.humanresource.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:iBizHumanResources}") 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())); } }