//package com.backendsys.service.Cms;
//
//import com.backendsys.utils.LanguageUtil;
//import com.backendsys.entity.Cms.CmsArticleDTO;
//import com.backendsys.entity.Cms.CmsArticleTranslationsDTO;
//import com.backendsys.mapper.Cms.CmsArticleMapper;
//import com.backendsys.utils.response.PageInfoResult;
//import com.github.pagehelper.PageHelper;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.util.List;
//import java.util.Map;
//import java.util.Collections;
//
//@Service
//public class CmsArticleServiceImpl implements CmsArticleService {
//
//    @Autowired
//    private CmsArticleMapper cmsArticleMapper;
//
//    /**
//     * 查询 资讯列表
//     */
//    @Override
//    public Map<String, Object> queryArticle(Integer pageNum, Integer pageSize, CmsArticleDTO cmsArticleDTO) {
//        // 分页查询
//        if (pageNum != null && pageSize != null) {
//            PageHelper.startPage(pageNum, pageSize);
//            PageHelper.getLocalPage().setPageSizeZero(true);
//        }
//        // 分页输出 (自定义)
//        List<Map<String, Object>> list = cmsArticleMapper.queryArticleList(cmsArticleDTO);
//        PageInfoResult pageInfoResult = new PageInfoResult(list);
//        return pageInfoResult.toMap();
//    }
//
//    /**
//     * 查询 资讯翻译 (无分页)
//     */
//    // @Override
//    // public List<Map<String, Object>> queryArticleTranslation(CmsArticleDTO cmsArticleDTO) {
//    //     return cmsArticleMapper.queryArticleTranslation(cmsArticleDTO);
//    // }
//
//    /**
//     * 查询 资讯详情
//     */
//    @Override
//    public Map<String, Object> queryArticleDetail(CmsArticleDTO cmsArticleDTO) {
//        return cmsArticleMapper.queryArticleDetail(cmsArticleDTO);
//    }
//
//    @Override
//    public Map<String, Object> queryArticleDetailPublic(CmsArticleDTO cmsArticleDTO) {
//        return cmsArticleMapper.queryArticleDetailPublic(cmsArticleDTO);
//    }
//
//
//
//    @Autowired
//    private LanguageUtil languageUtil;
//
//    /**
//     * 创建 资讯
//     */
//    @Override
//    @Transactional
//    public Map<String, Object> insertArticle(CmsArticleDTO cmsArticleDTO) {
//
//        cmsArticleMapper.insertArticle(cmsArticleDTO);
//
//        // 获得翻译字段数组，并批量添加
//        Map<String, Object> fieldPrimary = Collections.singletonMap("article_id", cmsArticleDTO.getArticle_id());
//        cmsArticleMapper.insertArticleTranslations(languageUtil.getTranslationsField(fieldPrimary, cmsArticleDTO, CmsArticleTranslationsDTO.class));
//
//        // 相当于
//        // List<CmsArticleTranslationsDTO> translations = cmsArticleDTO.getTranslations().stream().map(dto -> {
//        //     CmsArticleTranslationsDTO translation = new CmsArticleTranslationsDTO();
//        //     translation.setArticle_id(cmsArticleDTO.getArticle_id());
//        //     translation.setLanguage(dto.getLanguage());
//        //     translation.setTitle(dto.getTitle());
//        //     translation.setDescription(dto.getDescription());
//        //     translation.setContent(dto.getContent());
//        //     return translation;
//        // }).collect(Collectors.toList());
//
//        return Map.of("article_id", cmsArticleDTO.getArticle_id());
//    }
//
//    /**
//     * 更新 资讯
//     */
//    @Override
//    @Transactional
//    public Map<String, Object> updateArticle(CmsArticleDTO cmsArticleDTO) {
//        cmsArticleMapper.updateArticle(cmsArticleDTO);
//        return Map.of("article_id", cmsArticleDTO.getArticle_id());
//    }
//
//    /**
//     * 删除 资讯
//     */
//    @Override
//    @Transactional
//    public Map<String, Object> deleteArticle(CmsArticleDTO cmsArticleDTO) {
//        cmsArticleMapper.deleteArticle(cmsArticleDTO);
//        return Map.of("article_id", cmsArticleDTO.getArticle_id());
//    }
//
//    /**
//     * 删除 资讯 (批量)
//     */
//    @Override
//    @Transactional
//    public Map<String, Object> deleteArticleBatch(List<Long> ids) {
//        cmsArticleMapper.deleteArticleBatch(ids);
//        return Map.of("article_ids", ids);
//    }
//
//}
