Search in sources :

Example 1 with CmsCategory

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

the class CmsCategoryAdminController method move.

/**
 * @param ids
 * @param parentId
 * @param request
 * @param session
 * @param model
 * @return view name
 */
@RequestMapping("move")
public String move(Integer[] ids, Integer parentId, HttpServletRequest request, HttpSession session, ModelMap model) {
    SysSite site = getSite(request);
    CmsCategory parent = service.getEntity(parentId);
    if (CommonUtils.notEmpty(ids) && (null == parent || null != parent && site.getId() == parent.getSiteId())) {
        for (Integer id : ids) {
            move(site, id, parentId);
        }
        logOperateService.save(new LogOperate(site.getId(), getAdminFromSession(session).getId(), LogLoginService.CHANNEL_WEB_MANAGER, "move.category", RequestUtils.getIpAddress(request), CommonUtils.getDate(), new StringBuilder(StringUtils.join(ids, ',')).append(" to ").append(parentId).toString()));
    }
    return TEMPLATE_DONE;
}
Also used : 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 2 with CmsCategory

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

the class CmsCategoryAdminController method save.

/**
 * @param entity
 * @param attribute
 * @param categoryParamters
 * @param request
 * @param session
 * @param model
 * @return view name
 */
@RequestMapping("save")
public String save(CmsCategory entity, CmsCategoryAttribute attribute, @ModelAttribute CmsCategoryParamters categoryParamters, HttpServletRequest request, HttpSession session, ModelMap model) {
    SysSite site = getSite(request);
    if (null != entity.getId()) {
        CmsCategory oldEntity = service.getEntity(entity.getId());
        if (null == oldEntity || ControllerUtils.verifyNotEquals("siteId", site.getId(), oldEntity.getSiteId(), model)) {
            return TEMPLATE_ERROR;
        }
        entity = service.update(entity.getId(), entity, ignoreProperties);
        if (null != entity) {
            if (null != oldEntity.getParentId() && oldEntity.getParentId() != entity.getParentId()) {
                service.generateChildIds(site.getId(), oldEntity.getParentId());
                service.generateChildIds(site.getId(), entity.getParentId());
            } else if (null != entity.getParentId() && null == oldEntity.getParentId()) {
                service.generateChildIds(site.getId(), entity.getParentId());
            }
            logOperateService.save(new LogOperate(site.getId(), getAdminFromSession(session).getId(), LogLoginService.CHANNEL_WEB_MANAGER, "update.category", RequestUtils.getIpAddress(request), CommonUtils.getDate(), JsonUtils.getString(entity)));
        }
    } else {
        if (entity.isOnlyUrl()) {
            entity.setUrl(entity.getPath());
        }
        entity.setSiteId(site.getId());
        service.save(entity);
        service.addChildIds(entity.getParentId(), entity.getId());
        logOperateService.save(new LogOperate(site.getId(), getAdminFromSession(session).getId(), LogLoginService.CHANNEL_WEB_MANAGER, "save.category", RequestUtils.getIpAddress(request), CommonUtils.getDate(), JsonUtils.getString(entity)));
    }
    if (null == extendService.getEntity(entity.getExtendId())) {
        entity = service.updateExtendId(entity.getId(), (Integer) extendService.save(new SysExtend("category", entity.getId())));
    }
    Integer[] tagTypeIds = tagTypeService.update(site.getId(), categoryParamters.getTagTypes());
    // 更新保存标签分类
    service.updateTagTypeIds(entity.getId(), arrayToCommaDelimitedString(tagTypeIds));
    List<CmsCategoryModelParamters> categoryModelList = categoryParamters.getCategoryModelList();
    if (CommonUtils.notEmpty(categoryModelList)) {
        for (CmsCategoryModelParamters cmsCategoryModelParamters : categoryModelList) {
            if (null != cmsCategoryModelParamters.getCategoryModel()) {
                cmsCategoryModelParamters.getCategoryModel().getId().setCategoryId(entity.getId());
                if (cmsCategoryModelParamters.isUse()) {
                    categoryModelService.updateCategoryModel(cmsCategoryModelParamters.getCategoryModel());
                } else {
                    categoryModelService.delete(cmsCategoryModelParamters.getCategoryModel().getId());
                }
            }
        }
    }
    // 修改或增加内容扩展字段
    extendFieldService.update(entity.getExtendId(), categoryParamters.getContentExtends());
    CmsCategoryType categoryType = categoryTypeService.getEntity(entity.getTypeId());
    if (null != categoryType && CommonUtils.notEmpty(categoryType.getExtendId())) {
        List<SysExtendField> categoryTypeExtendList = extendFieldService.getList(categoryType.getExtendId());
        Map<String, String> map = ExtendUtils.getSysExtentDataMap(categoryParamters.getExtendDataList(), categoryTypeExtendList);
        attribute.setData(ExtendUtils.getExtendString(map));
    } else {
        attribute.setData(null);
    }
    attributeService.updateAttribute(entity.getId(), attribute);
    try {
        publish(site, entity.getId(), null);
    } catch (IOException | TemplateException e) {
        ControllerUtils.verifyCustom("static", true, model);
        log.error(e.getMessage(), e);
    }
    return TEMPLATE_DONE;
}
Also used : LogOperate(com.publiccms.entities.log.LogOperate) TemplateException(freemarker.template.TemplateException) CmsCategoryType(com.publiccms.entities.cms.CmsCategoryType) StringUtils.arrayToCommaDelimitedString(org.springframework.util.StringUtils.arrayToCommaDelimitedString) IOException(java.io.IOException) CmsCategoryModelParamters(com.publiccms.views.pojo.model.CmsCategoryModelParamters) SysSite(com.publiccms.entities.sys.SysSite) SysExtendField(com.publiccms.entities.sys.SysExtendField) CmsCategory(com.publiccms.entities.cms.CmsCategory) SysExtend(com.publiccms.entities.sys.SysExtend) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 3 with CmsCategory

use of com.publiccms.entities.cms.CmsCategory 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 4 with CmsCategory

use of com.publiccms.entities.cms.CmsCategory 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 5 with CmsCategory

use of com.publiccms.entities.cms.CmsCategory 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)

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