package com.zdcf.service;
import java.util.ArrayList;
import java.util.List;
import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import com.zdcf.base.Constants;
import com.zdcf.base.InfoChangeEvent;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
public class BaseService {
private static String INFO_CHANGE_QUEUE = "InfoChangeQueue";
@Autowired
private ObjectMapper mapper;
@Autowired
private JmsTemplate jmsTemplate;
protected String toJSON(Object object){
try {
return mapper.writeValueAsString(object);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
protected <T> T toObject(String json, Class<T> t){
try {
return mapper.readValue(json, t);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected <T> List<T> toList(String json, Class<T> t){
try {
JavaType javaType = mapper.getTypeFactory().constructParametricType(ArrayList.class, t);
return mapper.readValue(json, javaType);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void sendMessage(final Object object, final Constants.Cache.Type type){
jmsTemplate.send(INFO_CHANGE_QUEUE, new MessageCreator(){
public ObjectMessage createMessage(Session session) throws JMSException {
ObjectMessage message = session.createObjectMessage();
InfoChangeEvent event = new InfoChangeEvent();
event.setObject(object);
event.setType(type);
message.setObject(event);
return message;
}
});
}
// protected List<String> getImagesByRefId(int refId){
//
// ChnlImageExample example = new ChnlImageExample();
// example.createCriteria().andRefIdEqualTo(refId)
// .andChnlEqualTo(Constants.Chnl.House);
// example.setOrderByClause(" display_order asc");
//
// List<ChnlImage> list = chnlImageMapper.selectByExample(example);
//
// List<String> imageList = new ArrayList<String>();
//
// for(ChnlImage image : list){
// imageList.add(image.getPath());
// }
//
// return imageList;
// }
}