package com.mossle.android.rs;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.mossle.api.tenant.TenantHolder;
import com.mossle.cms.persistence.domain.CmsArticle;
import com.mossle.cms.persistence.manager.CmsArticleManager;
import com.mossle.core.mapper.JsonMapper;
import com.mossle.core.util.BaseDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
@Path("android/cms")
public class AndroidCmsResource {
private static Logger logger = LoggerFactory
.getLogger(AndroidCmsResource.class);
private JsonMapper jsonMapper = new JsonMapper();
private TenantHolder tenantHolder;
private CmsArticleManager cmsArticleManager;
@POST
@Path("articles")
@Produces(MediaType.APPLICATION_JSON)
public BaseDTO articles() throws Exception {
logger.info("start");
String tenantId = "1";
String hql = "from CmsArticle where tenantId=? order by createTime desc";
List<CmsArticle> cmsArticles = cmsArticleManager.find(hql, tenantId);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (CmsArticle cmsArticle : cmsArticles) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", cmsArticle.getTitle());
map.put("content", cmsArticle.getContent());
list.add(map);
}
String json = jsonMapper.toJson(list);
BaseDTO result = new BaseDTO();
result.setCode(200);
result.setData(json);
logger.info("end");
return result;
}
// ~ ======================================================================
@Resource
public void setCmsArticleManager(CmsArticleManager cmsArticleManager) {
this.cmsArticleManager = cmsArticleManager;
}
@Resource
public void setTenantHolder(TenantHolder tenantHolder) {
this.tenantHolder = tenantHolder;
}
}