package com.jspxcms.ext.web.fore;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import com.jspxcms.common.web.Validations;
import com.jspxcms.core.domain.Site;
import com.jspxcms.core.support.Context;
import com.jspxcms.core.support.ForeContext;
import com.jspxcms.core.support.Response;
import com.jspxcms.ext.domain.AdSlot;
import com.jspxcms.ext.service.AdSlotService;
/**
* AdController 广告控制器
*
* @author yangxing
*
*/
@Controller
public class AdController {
public static final String TEMPLATE = "sys_ad.html";
@RequestMapping(value = "/aadd/{id}.jspx")
public String list(@PathVariable Integer id, HttpServletRequest request,
HttpServletResponse response, org.springframework.ui.Model modelMap) {
Response resp = new Response(request, response, modelMap);
List<String> messages = resp.getMessages();
if (!Validations.notNull(id, messages, "id")) {
return resp.badRequest();
}
AdSlot slot = service.get(id);
if (!Validations.exist(slot, messages, "AdSlot", id)) {
return resp.badRequest();
}
return list(slot, request, response, modelMap);
}
@RequestMapping(value = "/aadd_number/{number}.jspx")
public String list(@PathVariable String number, HttpServletRequest request,
HttpServletResponse response, org.springframework.ui.Model modelMap) {
Response resp = new Response(request, response, modelMap);
List<String> messages = resp.getMessages();
if (!Validations.notEmpty(number, messages, "number")) {
return resp.badRequest();
}
Site site = Context.getCurrentSite(request);
AdSlot slot = null;
List<AdSlot> slotList = service.findList(number, site.getId());
if (!slotList.isEmpty()) {
slot = slotList.get(0);
}
if (!Validations.exist(slot, messages, "AdSlot", number)) {
return resp.badRequest();
}
return list(slot, request, response, modelMap);
}
private String list(AdSlot slot, HttpServletRequest request,
HttpServletResponse response, org.springframework.ui.Model modelMap) {
Site site = Context.getCurrentSite(request);
modelMap.addAttribute("slot", slot);
Map<String, Object> data = modelMap.asMap();
ForeContext.setData(data, request);
return site.getTemplate(slot.getTemplate());
}
@Autowired
private AdSlotService service;
}