Search in sources :

Example 6 with CmsCategory

use of com.publiccms.entities.cms.CmsCategory in project PublicCMS-preview by sanluan.

the class ContentController method save.

/**
 * 保存内容
 *
 * @param entity
 * @param attribute
 * @param contentParamters
 * @param returnUrl
 * @param request
 * @param session
 * @param response
 * @param model
 * @return view name
 */
@RequestMapping(value = "save", method = RequestMethod.POST)
public String save(CmsContent entity, CmsContentAttribute attribute, @ModelAttribute CmsContentParamters contentParamters, String returnUrl, HttpServletRequest request, HttpSession session, HttpServletResponse response, ModelMap model) {
    SysSite site = getSite(request);
    if (CommonUtils.empty(returnUrl)) {
        returnUrl = site.getDynamicPath();
    }
    SysUser user = getUserFromSession(session);
    CmsCategoryModel categoryModel = categoryModelService.getEntity(new CmsCategoryModelId(entity.getCategoryId(), entity.getModelId()));
    if (ControllerUtils.verifyNotEmpty("categoryModel", categoryModel, model) || ControllerUtils.verifyCustom("contribute", null == user, model)) {
        return REDIRECT + returnUrl;
    }
    CmsCategory category = categoryService.getEntity(entity.getCategoryId());
    if (null != category && (site.getId() != category.getSiteId() || !category.isAllowContribute())) {
        category = null;
    }
    CmsModel cmsModel = modelComponent.getMap(site).get(entity.getModelId());
    if (ControllerUtils.verifyNotEmpty("category", category, model) || ControllerUtils.verifyNotEmpty("model", cmsModel, model)) {
        return REDIRECT + returnUrl;
    }
    entity.setHasFiles(cmsModel.isHasFiles());
    entity.setHasImages(cmsModel.isHasImages());
    entity.setOnlyUrl(cmsModel.isOnlyUrl());
    entity.setStatus(CmsContentService.STATUS_PEND);
    if (null != entity.getId()) {
        CmsContent oldEntity = service.getEntity(entity.getId());
        if (null == oldEntity || ControllerUtils.verifyNotEquals("siteId", site.getId(), oldEntity.getSiteId(), model)) {
            return REDIRECT + returnUrl;
        }
        entity = service.update(entity.getId(), entity, entity.isOnlyUrl() ? ignoreProperties : ignorePropertiesWithUrl);
        if (null != entity.getId()) {
            logOperateService.save(new LogOperate(site.getId(), user.getId(), LogLoginService.CHANNEL_WEB, "update.content", RequestUtils.getIpAddress(request), CommonUtils.getDate(), JsonUtils.getString(entity)));
        }
    } else {
        entity.setSiteId(site.getId());
        entity.setUserId(user.getId());
        service.save(entity);
        if (CommonUtils.notEmpty(entity.getParentId())) {
            service.updateChilds(entity.getParentId(), 1);
        }
        logOperateService.save(new LogOperate(site.getId(), user.getId(), LogLoginService.CHANNEL_WEB, "save.content", RequestUtils.getIpAddress(request), CommonUtils.getDate(), JsonUtils.getString(entity)));
    }
    if (entity.isHasImages() || entity.isHasFiles()) {
        contentFileService.update(entity.getId(), user.getId(), entity.isHasFiles() ? contentParamters.getFiles() : null, // 更新保存图集,附件
        entity.isHasImages() ? contentParamters.getImages() : null);
    }
    if (null != attribute.getText()) {
        attribute.setWordCount(HtmlUtils.removeHtmlTag(attribute.getText()).length());
    }
    List<ExtendField> modelExtendList = cmsModel.getExtendList();
    Map<String, String> map = ExtendUtils.getExtentDataMap(contentParamters.getModelExtendDataList(), modelExtendList);
    if (null != category && null != extendService.getEntity(category.getExtendId())) {
        List<SysExtendField> categoryExtendList = extendFieldService.getList(category.getExtendId());
        Map<String, String> categoryMap = ExtendUtils.getSysExtentDataMap(contentParamters.getCategoryExtendDataList(), categoryExtendList);
        if (CommonUtils.notEmpty(map)) {
            map.putAll(categoryMap);
        } else {
            map = categoryMap;
        }
    }
    if (CommonUtils.notEmpty(map)) {
        attribute.setData(ExtendUtils.getExtendString(map));
    } else {
        attribute.setData(null);
    }
    // 更新保存扩展字段,文本字段
    attributeService.updateAttribute(entity.getId(), attribute);
    return REDIRECT + returnUrl;
}
Also used : CmsContent(com.publiccms.entities.cms.CmsContent) LogOperate(com.publiccms.entities.log.LogOperate) SysUser(com.publiccms.entities.sys.SysUser) CmsModel(com.publiccms.views.pojo.entities.CmsModel) SysExtendField(com.publiccms.entities.sys.SysExtendField) ExtendField(com.publiccms.views.pojo.entities.ExtendField) CmsCategoryModelId(com.publiccms.entities.cms.CmsCategoryModelId) CmsCategoryModel(com.publiccms.entities.cms.CmsCategoryModel) SysSite(com.publiccms.entities.sys.SysSite) SysExtendField(com.publiccms.entities.sys.SysExtendField) CmsCategory(com.publiccms.entities.cms.CmsCategory) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 7 with CmsCategory

use of com.publiccms.entities.cms.CmsCategory in project PublicCMS-preview by sanluan.

the class PublishCategoryDirective method execute.

@Override
public void execute(RenderHandler handler) throws IOException, Exception {
    Integer id = handler.getInteger("id");
    Integer pageIndex = handler.getInteger("pageIndex");
    Integer totalPage = handler.getInteger("totalPage");
    SysSite site = getSite(handler);
    Map<String, Boolean> map = new LinkedHashMap<>();
    if (CommonUtils.notEmpty(id)) {
        CmsCategory entity = service.getEntity(id);
        map.put(entity.getId().toString(), deal(site, entity, pageIndex, totalPage));
    } else {
        Integer[] ids = handler.getIntegerArray("ids");
        if (CommonUtils.notEmpty(ids)) {
            List<CmsCategory> entityList = service.getEntitys(ids);
            for (CmsCategory entity : entityList) {
                map.put(entity.getId().toString(), deal(site, entity, pageIndex, totalPage));
            }
        }
    }
    handler.put("map", map).render();
}
Also used : CmsCategory(com.publiccms.entities.cms.CmsCategory) SysSite(com.publiccms.entities.sys.SysSite) LinkedHashMap(java.util.LinkedHashMap)

Example 8 with CmsCategory

use of com.publiccms.entities.cms.CmsCategory in project PublicCMS-preview by sanluan.

the class CreateCategoryFileDirective method execute.

@Override
public void execute(RenderHandler handler) throws IOException, Exception {
    Integer id = handler.getInteger("id");
    String templatePath = handler.getString("templatePath");
    String filePath = handler.getString("filePath");
    Integer pageIndex = handler.getInteger("pageIndex");
    if (CommonUtils.notEmpty(id) && CommonUtils.notEmpty(templatePath) && CommonUtils.notEmpty(filePath)) {
        SysSite site = getSite(handler);
        try {
            CmsCategory category = categoryService.getEntity(id);
            if (null != category && site.getId() == category.getSiteId()) {
                handler.put("url", templateComponent.createCategoryFile(site, category, SiteComponent.getFullFileName(site, templatePath), filePath, pageIndex, null)).render();
            }
        } catch (IOException | TemplateException e) {
            handler.print(e.getMessage());
        }
    }
}
Also used : TemplateException(freemarker.template.TemplateException) IOException(java.io.IOException) CmsCategory(com.publiccms.entities.cms.CmsCategory) SysSite(com.publiccms.entities.sys.SysSite)

Example 9 with CmsCategory

use of com.publiccms.entities.cms.CmsCategory in project PublicCMS-preview by sanluan.

the class CreateContentFileDirective method execute.

@Override
public void execute(RenderHandler handler) throws IOException, Exception {
    Long id = handler.getLong("id");
    String templatePath = handler.getString("templatePath");
    String filePath = handler.getString("filePath");
    Integer pageIndex = handler.getInteger("pageIndex");
    if (CommonUtils.notEmpty(id) && CommonUtils.notEmpty(templatePath) && CommonUtils.notEmpty(filePath)) {
        SysSite site = getSite(handler);
        String templateFullPath = SiteComponent.getFullFileName(site, templatePath);
        try {
            CmsContent content = contentService.getEntity(id);
            if (null != content && site.getId() == content.getSiteId()) {
                CmsCategory category = categoryService.getEntity(content.getCategoryId());
                handler.put("url", templateComponent.createContentFile(site, content, category, false, templateFullPath, filePath, pageIndex)).render();
            }
        } catch (IOException | TemplateException e) {
            handler.print(e.getMessage());
        }
    }
}
Also used : CmsContent(com.publiccms.entities.cms.CmsContent) TemplateException(freemarker.template.TemplateException) IOException(java.io.IOException) CmsCategory(com.publiccms.entities.cms.CmsCategory) SysSite(com.publiccms.entities.sys.SysSite)

Example 10 with CmsCategory

use of com.publiccms.entities.cms.CmsCategory in project PublicCMS-preview by sanluan.

the class CmsCategoryService method updateUrl.

/**
 * @param id
 * @param url
 * @param hasStatic
 */
public void updateUrl(Serializable id, String url, boolean hasStatic) {
    CmsCategory entity = getEntity(id);
    if (null != entity) {
        entity.setUrl(url);
        entity.setHasStatic(hasStatic);
    }
}
Also used : CmsCategory(com.publiccms.entities.cms.CmsCategory)

Aggregations

CmsCategory (com.publiccms.entities.cms.CmsCategory)17 SysSite (com.publiccms.entities.sys.SysSite)11 LogOperate (com.publiccms.entities.log.LogOperate)7 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)7 CmsContent (com.publiccms.entities.cms.CmsContent)6 SysExtendField (com.publiccms.entities.sys.SysExtendField)3 TemplateException (freemarker.template.TemplateException)3 IOException (java.io.IOException)3 CmsCategoryModel (com.publiccms.entities.cms.CmsCategoryModel)2 CmsCategoryModelId (com.publiccms.entities.cms.CmsCategoryModelId)2 SysUser (com.publiccms.entities.sys.SysUser)2 CmsModel (com.publiccms.views.pojo.entities.CmsModel)2 ExtendField (com.publiccms.views.pojo.entities.ExtendField)2 CmsCategoryQuery (com.publiccms.views.pojo.query.CmsCategoryQuery)2 HashSet (java.util.HashSet)2 LinkedHashMap (java.util.LinkedHashMap)2 List (java.util.List)2 CmsCategoryType (com.publiccms.entities.cms.CmsCategoryType)1 SysDept (com.publiccms.entities.sys.SysDept)1 SysDeptCategoryId (com.publiccms.entities.sys.SysDeptCategoryId)1