Search in sources :

Example 1 with CmsContent

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

the class CmsContentAdminController method check.

/**
 * @param ids
 * @param refresh
 * @param request
 * @param session
 * @param model
 * @return view name
 */
@RequestMapping("check")
public String check(Long[] ids, Boolean refresh, HttpServletRequest request, HttpSession session, ModelMap model) {
    if (CommonUtils.notEmpty(ids)) {
        SysSite site = getSite(request);
        Long userId = getAdminFromSession(session).getId();
        List<CmsContent> entityList = service.check(site.getId(), userId, ids, refresh);
        Set<Integer> categoryIdSet = new HashSet<>();
        for (CmsContent entity : entityList) {
            if (null != entity && site.getId() == entity.getSiteId()) {
                if (CommonUtils.notEmpty(entity.getParentId())) {
                    publish(new Long[] { entity.getParentId() }, request, session, model);
                }
                publish(new Long[] { entity.getId() }, request, session, model);
                categoryIdSet.add(entity.getCategoryId());
            }
        }
        for (CmsCategory category : categoryService.getEntitys(categoryIdSet.toArray(new Integer[categoryIdSet.size()]))) {
            templateComponent.createCategoryFile(site, category, null, null);
        }
        logOperateService.save(new LogOperate(site.getId(), userId, LogLoginService.CHANNEL_WEB_MANAGER, "check.content", RequestUtils.getIpAddress(request), CommonUtils.getDate(), StringUtils.join(ids, ',')));
    }
    return TEMPLATE_DONE;
}
Also used : CmsContent(com.publiccms.entities.cms.CmsContent) LogOperate(com.publiccms.entities.log.LogOperate) CmsCategory(com.publiccms.entities.cms.CmsCategory) SysSite(com.publiccms.entities.sys.SysSite) HashSet(java.util.HashSet) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 2 with CmsContent

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

the class CmsContentAdminController method save.

/**
 * 保存内容
 *
 * @param entity
 * @param attribute
 * @param contentParamters
 * @param draft
 * @param checked
 * @param request
 * @param session
 * @param model
 * @return view name
 */
@RequestMapping("save")
public String save(CmsContent entity, CmsContentAttribute attribute, @ModelAttribute CmsContentParamters contentParamters, Boolean draft, Boolean checked, HttpServletRequest request, HttpSession session, ModelMap model) {
    SysSite site = getSite(request);
    SysUser user = getAdminFromSession(session);
    SysDept dept = sysDeptService.getEntity(user.getDeptId());
    if (ControllerUtils.verifyNotEmpty("deptId", user.getDeptId(), model) && ControllerUtils.verifyNotEmpty("deptId", dept, model) && ControllerUtils.verifyCustom("noright", !(dept.isOwnsAllCategory() || null != sysDeptCategoryService.getEntity(new SysDeptCategoryId(user.getDeptId(), entity.getCategoryId()))), model)) {
        return TEMPLATE_ERROR;
    }
    CmsCategoryModel categoryModel = categoryModelService.getEntity(new CmsCategoryModelId(entity.getCategoryId(), entity.getModelId()));
    if (ControllerUtils.verifyNotEmpty("categoryModel", categoryModel, model)) {
        return TEMPLATE_ERROR;
    }
    CmsCategory category = categoryService.getEntity(entity.getCategoryId());
    if (null != category && site.getId() != category.getSiteId()) {
        category = null;
    }
    CmsModel cmsModel = modelComponent.getMap(site).get(entity.getModelId());
    if (ControllerUtils.verifyNotEmpty("category", category, model) || ControllerUtils.verifyNotEmpty("model", cmsModel, model)) {
        return TEMPLATE_ERROR;
    }
    entity.setHasFiles(cmsModel.isHasFiles());
    entity.setHasImages(cmsModel.isHasImages());
    entity.setOnlyUrl(cmsModel.isOnlyUrl());
    if ((null == checked || !checked) && null != draft && draft) {
        entity.setStatus(CmsContentService.STATUS_DRAFT);
    } else {
        entity.setStatus(CmsContentService.STATUS_PEND);
    }
    Date now = CommonUtils.getDate();
    if (null == entity.getPublishDate()) {
        entity.setPublishDate(now);
    }
    if (null != attribute.getText()) {
        String text = HtmlUtils.removeHtmlTag(attribute.getText());
        attribute.setWordCount(text.length());
        if (CommonUtils.empty(entity.getDescription())) {
            entity.setDescription(StringUtils.substring(text, 0, 300));
        }
    }
    if (null != entity.getId()) {
        CmsContent oldEntity = service.getEntity(entity.getId());
        if (null == oldEntity || ControllerUtils.verifyNotEquals("siteId", site.getId(), oldEntity.getSiteId(), model)) {
            return TEMPLATE_ERROR;
        }
        entity.setUpdateDate(now);
        entity = service.update(entity.getId(), entity, entity.isOnlyUrl() ? ignoreProperties : ignorePropertiesWithUrl);
        if (null != entity) {
            logOperateService.save(new LogOperate(site.getId(), user.getId(), LogLoginService.CHANNEL_WEB_MANAGER, "update.content", RequestUtils.getIpAddress(request), now, 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_MANAGER, "save.content", RequestUtils.getIpAddress(request), now, JsonUtils.getString(entity)));
    }
    Long[] tagIds = tagService.update(site.getId(), contentParamters.getTags());
    // 更新保存标签
    service.updateTagIds(entity.getId(), arrayToDelimitedString(tagIds, BLANK_SPACE));
    if (entity.isHasImages() || entity.isHasFiles()) {
        contentFileService.update(entity.getId(), user.getId(), entity.isHasFiles() ? contentParamters.getFiles() : null, // 更新保存图集,附件
        entity.isHasImages() ? contentParamters.getImages() : null);
    }
    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);
    // 更新保存推荐内容
    cmsContentRelatedService.update(entity.getId(), user.getId(), contentParamters.getContentRelateds());
    // 静态化
    templateComponent.createContentFile(site, entity, category, categoryModel);
    if (null != checked && checked) {
        service.check(site.getId(), user.getId(), new Long[] { entity.getId() }, false);
        if (CommonUtils.notEmpty(entity.getParentId())) {
            publish(new Long[] { entity.getParentId() }, request, session, model);
        }
        templateComponent.createCategoryFile(site, category, null, null);
    }
    return TEMPLATE_DONE;
}
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) SysDept(com.publiccms.entities.sys.SysDept) SysExtendField(com.publiccms.entities.sys.SysExtendField) ExtendField(com.publiccms.views.pojo.entities.ExtendField) SysDeptCategoryId(com.publiccms.entities.sys.SysDeptCategoryId) StringUtils.arrayToDelimitedString(org.springframework.util.StringUtils.arrayToDelimitedString) CmsCategoryModelId(com.publiccms.entities.cms.CmsCategoryModelId) CmsCategoryModel(com.publiccms.entities.cms.CmsCategoryModel) Date(java.util.Date) 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 3 with CmsContent

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

the class CmsContentAdminController method move.

/**
 * @param ids
 * @param categoryId
 * @param request
 * @param session
 * @param model
 * @return view name
 */
@RequestMapping("move")
public String move(Long[] ids, Integer categoryId, HttpServletRequest request, HttpSession session, ModelMap model) {
    SysSite site = getSite(request);
    CmsCategory category = categoryService.getEntity(categoryId);
    if (CommonUtils.notEmpty(ids) && null != category && site.getId() == category.getSiteId()) {
        StringBuilder sb = new StringBuilder();
        for (CmsContent entity : service.getEntitys(ids)) {
            if (!move(site, entity, categoryId)) {
                sb.append(LanguagesUtils.getMessage(CommonConstants.applicationContext, RequestContextUtils.getLocale(request), "message.content.categoryModel.empty", new StringBuilder().append(entity.getId()).append(":").append(entity.getTitle()).toString(), new StringBuilder().append(categoryId).append(":").append(category.getName()).toString())).append(COMMA_DELIMITED);
            }
        }
        if (sb.length() > 0) {
            sb.setLength(sb.length() - 1);
        }
        model.addAttribute("message", sb.toString());
        logOperateService.save(new LogOperate(site.getId(), getAdminFromSession(session).getId(), LogLoginService.CHANNEL_WEB_MANAGER, "move.content", RequestUtils.getIpAddress(request), CommonUtils.getDate(), new StringBuilder(StringUtils.join(ids, ',')).append(" to ").append(category.getId()).append(":").append(category.getName()).toString()));
    }
    return TEMPLATE_DONE;
}
Also used : CmsContent(com.publiccms.entities.cms.CmsContent) LogOperate(com.publiccms.entities.log.LogOperate) CmsCategory(com.publiccms.entities.cms.CmsCategory) SysSite(com.publiccms.entities.sys.SysSite) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 4 with CmsContent

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

the class CmsContentAdminController method related.

/**
 * @param entity
 * @param request
 * @param session
 * @param model
 * @return view name
 */
@RequestMapping("related")
public String related(CmsContentRelated entity, HttpServletRequest request, HttpSession session, ModelMap model) {
    CmsContent content = service.getEntity(entity.getContentId());
    CmsContent related = service.getEntity(entity.getRelatedContentId());
    SysSite site = getSite(request);
    if (null != content && null != related && site.getId() == content.getSiteId() && site.getId() == related.getSiteId()) {
        if (CommonUtils.empty(entity.getTitle())) {
            entity.setTitle(entity.getTitle());
        }
        if (CommonUtils.empty(entity.getDescription())) {
            entity.setDescription(entity.getDescription());
        }
        SysUser user = getAdminFromSession(session);
        entity.setUserId(user.getId());
        cmsContentRelatedService.save(entity);
        publish(new Long[] { entity.getContentId() }, request, session, model);
        logOperateService.save(new LogOperate(site.getId(), user.getId(), LogLoginService.CHANNEL_WEB_MANAGER, "related.content", RequestUtils.getIpAddress(request), CommonUtils.getDate(), JsonUtils.getString(related)));
    }
    return TEMPLATE_DONE;
}
Also used : CmsContent(com.publiccms.entities.cms.CmsContent) LogOperate(com.publiccms.entities.log.LogOperate) SysUser(com.publiccms.entities.sys.SysUser) SysSite(com.publiccms.entities.sys.SysSite) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 5 with CmsContent

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

the class CmsContentAdminController method recycle.

/**
 * @param ids
 * @param request
 * @param session
 * @return view name
 */
@RequestMapping("recycle")
public String recycle(Long[] ids, HttpServletRequest request, HttpSession session) {
    SysSite site = getSite(request);
    if (CommonUtils.notEmpty(ids)) {
        for (CmsContent entity : service.getEntitys(ids)) {
            if (entity.isDisabled() && site.getId() == entity.getSiteId()) {
                if (CommonUtils.notEmpty(entity.getParentId())) {
                    service.updateChilds(entity.getParentId(), 1);
                }
            }
        }
        service.recycle(site.getId(), ids);
        logOperateService.save(new LogOperate(site.getId(), getAdminFromSession(session).getId(), LogLoginService.CHANNEL_WEB_MANAGER, "recycle.content", RequestUtils.getIpAddress(request), CommonUtils.getDate(), StringUtils.join(ids, ',')));
    }
    return TEMPLATE_DONE;
}
Also used : CmsContent(com.publiccms.entities.cms.CmsContent) LogOperate(com.publiccms.entities.log.LogOperate) SysSite(com.publiccms.entities.sys.SysSite) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

CmsContent (com.publiccms.entities.cms.CmsContent)20 SysSite (com.publiccms.entities.sys.SysSite)12 LogOperate (com.publiccms.entities.log.LogOperate)9 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)9 CmsCategory (com.publiccms.entities.cms.CmsCategory)6 ArrayList (java.util.ArrayList)4 SysUser (com.publiccms.entities.sys.SysUser)3 Date (java.util.Date)3 CmsCategoryModel (com.publiccms.entities.cms.CmsCategoryModel)2 CmsCategoryModelId (com.publiccms.entities.cms.CmsCategoryModelId)2 SysExtendField (com.publiccms.entities.sys.SysExtendField)2 CmsModel (com.publiccms.views.pojo.entities.CmsModel)2 ExtendField (com.publiccms.views.pojo.entities.ExtendField)2 CmsContentQuery (com.publiccms.views.pojo.query.CmsContentQuery)2 HashSet (java.util.HashSet)2 LinkedHashMap (java.util.LinkedHashMap)2 List (java.util.List)2 CmsContentAttribute (com.publiccms.entities.cms.CmsContentAttribute)1 SysDept (com.publiccms.entities.sys.SysDept)1 SysDeptCategoryId (com.publiccms.entities.sys.SysDeptCategoryId)1