package com.hongqiang.shop.modules.shipping.service; import java.net.URL; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.fasterxml.jackson.databind.ObjectMapper; import com.hongqiang.shop.common.base.persistence.Page; import com.hongqiang.shop.common.service.BaseService; import com.hongqiang.shop.common.utils.Pageable; import com.hongqiang.shop.common.utils.Setting; import com.hongqiang.shop.common.utils.SettingUtils; import com.hongqiang.shop.modules.entity.Shipping; import com.hongqiang.shop.modules.shipping.dao.ShippingDao; @Service public class ShippingServiceImpl extends BaseService implements ShippingService { @Autowired private ShippingDao shippingDao; @Transactional(readOnly = true) public Shipping findBySn(String sn) { return this.shippingDao.findBySn(sn); } @SuppressWarnings("unchecked") @Transactional(readOnly = true) @Cacheable({ "shipping" }) public Map<String, Object> query(Shipping shipping) { Setting localSetting = SettingUtils.get(); Map<String, Object> localObject = new HashMap<String, Object>(); if ((shipping != null) && (StringUtils.isNotEmpty(localSetting.getKuaidi100Key())) && (StringUtils.isNotEmpty(shipping.getDeliveryCorpCode())) && (StringUtils.isNotEmpty(shipping.getTrackingNo()))) try { ObjectMapper localObjectMapper = new ObjectMapper(); URL localURL = new URL("http://api.kuaidi100.com/api?id=" + localSetting.getKuaidi100Key() + "&com=" + shipping.getDeliveryCorpCode() + "&nu=" + shipping.getTrackingNo() + "&show=0&muti=1&order=asc"); localObject = (Map<String, Object>) localObjectMapper .readValue(localURL, Map.class); } catch (Exception localException1) { localException1.printStackTrace(); } return localObject; } @Transactional public Shipping find(Long id) { return this.shippingDao.find(id); } @Transactional public Page<Shipping> findPage(Pageable pageable) { return this.shippingDao.findPage(pageable); } @Transactional public void save(Shipping shipping) { this.shippingDao.persist(shipping); } @Transactional public Shipping update(Shipping shipping) { return (Shipping) this.shippingDao.merge(shipping); } @Transactional public Shipping update(Shipping shipping, String[] ignoreProperties) { return (Shipping) this.shippingDao.update(shipping, ignoreProperties); } @Transactional public void delete(Long id) { this.shippingDao.delete(id); } @Transactional public void delete(Long[] ids) { if (ids != null) for (Long localSerializable : ids) this.shippingDao.delete(localSerializable); } @Transactional public void delete(Shipping shipping) { this.shippingDao.delete(shipping); } }