@RequiresPermissions("content:v_add")
@RequestMapping("/content/v_add.do")
public String add(Integer cid,Integer modelId, HttpServletRequest request,ModelMap model) {
WebErrors errors = validateAdd(cid,modelId, request);
if (errors.hasErrors()) {
return errors.showErrorPage(model);
}
CmsSite site = CmsUtils.getSite(request);
Integer siteId = site.getId();
CmsUser user = CmsUtils.getUser(request);
Integer userId = user.getId();
// 栏目
Channel c;
if (cid != null) {
c = channelMng.findById(cid);
} else {
c = null;
}
// 模型
CmsModel m;
if(modelId==null){
if (c != null) {
m = c.getModel();
} else {
m = cmsModelMng.getDefModel();
// TODO m==null给出错误提示
if (m == null) {
throw new RuntimeException("default model not found!");
}
}
}else{
m=cmsModelMng.findById(modelId);
}
// 模型项列表
List<CmsModelItem> itemList = cmsModelItemMng.getList(m.getId(), false,
false);
// 栏目列表
List<Channel> channelList;
Set<Channel> rights;
if (user.getUserSite(siteId).getAllChannel()) {
// 拥有所有栏目权限
rights = null;
} else {
rights = user.getChannels(siteId);
}
if (c != null) {
channelList = c.getListForSelect(rights, true);
} else {
List<Channel> topList = channelMng.getTopListByRigth(userId,siteId, true);
channelList = Channel.getListForSelect(topList, rights, true);
}
// 专题列表
List<CmsTopic> topicList;
if (c != null) {
topicList = cmsTopicMng.getListByChannel(c.getId());
} else {
topicList = new ArrayList<CmsTopic>();
}
// 内容模板列表
List<String> tplList = getTplContent(site, m, null);
// 内容手机模板列表
List<String> tplMobileList = getTplMobileContent(site, m, null);
// 会员组列表
List<CmsGroup> groupList = cmsGroupMng.getList();
// 内容类型
List<ContentType> typeList = contentTypeMng.getList(false);
model.addAttribute("user",user);
model.addAttribute("site",CmsUtils.getSite(request));
model.addAttribute("model", m);
model.addAttribute("itemList", itemList);
model.addAttribute("channelList", channelList);
model.addAttribute("topicList", topicList);
model.addAttribute("tplList", tplList);
model.addAttribute("tplMobileList", tplMobileList);
model.addAttribute("groupList", groupList);
model.addAttribute("typeList", typeList);
if (cid != null) {
model.addAttribute("cid", cid);
}
if (c != null) {
model.addAttribute("channel", c);
}
model.addAttribute("contentChargeConfig", cmsConfigContentChargeMng.getDefault());
model.addAttribute("config",cmsConfigMng.get());
model.addAttribute("sessionId",request.getSession().getId());
return "content/add";
}