package com.yeshi.fanli.service.impl.config; import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import com.yeshi.fanli.dao.config.SystemDao; import com.yeshi.fanli.entity.system.System; import com.yeshi.fanli.service.inter.config.SystemService; @Service public class SystemServiceImpl implements SystemService { @Resource private SystemDao systemDao; private static final String ANDROID = "ANDROID"; private static final String IOS = "IOS"; private static final String WEB = "WEB"; private static final Map map = new HashMap(); static { map.put(ANDROID, 1); map.put(IOS, 2); map.put(WEB, 3); } @Cacheable(value = "sysCache", key = "#platform+'-'+#packages") public System getSystem(String platform, String packages) { if (platform == null || packages == null) { return null; } platform = platform.toUpperCase(); Integer platformInt = map.get(platform); List list = systemDao.list("from System where platform=? and packageName=?", new Serializable[] { platformInt, packages }); if (list == null || list.size() == 0) { return null; } return list.get(0); } public List getSystems() { return systemDao.list("from System"); } @Cacheable(value = "configCache", key = "'getSystem-'+#platform+'-'+#packages") @Override public System getSystemCache(String platform, String packages) { return getSystem(platform, packages); } @Override public System getById(long id) { return systemDao.find(System.class, id); } }