/* package com.chinacreator.videoalliance.order.service; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.apache.commons.beanutils.BeanUtils; import org.apache.log4j.Logger; import com.chinacreator.cache.CacheManager; import com.chinacreator.cache.ICache; import com.chinacreator.cache.process.OrderInfo; import com.chinacreator.common.support.util.SpringContextUtil; import com.chinacreator.videoalliance.common.bean.CPInfo; import com.chinacreator.videoalliance.common.dao.CPDao; import com.chinacreator.videoalliance.order.bean.SpCpInfo; import com.chinacreator.videoalliance.order.dao.OrderCacheDao; import com.chinacreator.videoalliance.order.dao.OrderLogDao; import com.chinacreator.videoalliance.order.dao.SpCpDao; public class CacheOrderService implements Runnable{ private static Logger logger = Logger.getLogger(CacheOrderService.class); private static final String CATALOG = "order"; private OrderLogDao orderLogDao; private OrderCacheDao orderCacheDao; private SpCpDao spcpDao; private List users; public CacheOrderService(List users) { this.users = users; orderLogDao = SpringContextUtil.getBean(OrderLogDao.class); orderCacheDao = SpringContextUtil.getBean(OrderCacheDao.class); spcpDao = SpringContextUtil.getBean(SpCpDao.class); } public void run() { ICache cache = null; try { if(users != null && users.size() > 0) { cache = CacheManager.getInstance().getCache(); int index = 0; for(String userid : users) { doCache(userid, cache); if(logger.isDebugEnabled()) { logger.debug("[" + (++index) + "/" + users.size() + "]"); } } } } catch (Exception e) { logger.error("添加缓存失败", e); try { orderLogDao.addCacheLog("order", null, e.getMessage()); } catch (Exception e1) {} } finally { if(cache != null) { cache.doRelease(); } } } public void doCache(String userid, ICache cache) throws SQLException { try { List orderInfos = orderCacheDao.queryUserOrders(userid); if(orderInfos == null || orderInfos.size() == 0) { cache.remove(CATALOG, userid); } else { List newOrderInfos = new ArrayList(); for(OrderInfo orderInfo : orderInfos) { if(orderInfo.getType().equals("2")) { List spCpBeans = spcpDao.querySpCps(orderInfo.getProductid()); for(SpCpInfo spCpBean : spCpBeans) { OrderInfo newOrderInfo = (OrderInfo) BeanUtils.cloneBean(orderInfo); newOrderInfo.setCpid(spCpBean.getCpid()); newOrderInfo.setSpid(spCpBean.getProductid()); CPInfo cpInfo = SpringContextUtil.getBean(CPDao.class).findById(spCpBean.getCpid()); if(cpInfo != null) { newOrderInfo.setSpid(cpInfo.getSdspid()); } newOrderInfos.add(newOrderInfo); } } newOrderInfos.add(orderInfo); } cache.set(CATALOG, userid, newOrderInfos); } orderCacheDao.updateCacheStatus(userid, 0); } catch (Exception e) { logger.error("添加缓存失败", e); orderCacheDao.updateCacheStatus(userid, 1); orderLogDao.addCacheLog("order", userid, e.getMessage()); } } public void doCache(String userid) throws SQLException { ICache cache = null; try { cache = CacheManager.getInstance().getCache(); doCache(userid, cache); } finally { if(cache != null) { cache.doRelease(); } } } } */