From 626d711cb15896055c13fe344eb7fcc824589715 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期四, 19 十二月 2019 15:38:42 +0800 Subject: [PATCH] 帮助中心 --- fanli/src/main/java/com/yeshi/fanli/service/impl/help/HelpCenterServiceImpl.java | 97 +++++++++++++++++++++++++++++++++++++----------- 1 files changed, 75 insertions(+), 22 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/help/HelpCenterServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/help/HelpCenterServiceImpl.java index ecb6f1a..f60e158 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/help/HelpCenterServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/help/HelpCenterServiceImpl.java @@ -3,8 +3,10 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.UUID; import javax.annotation.Resource; @@ -12,15 +14,19 @@ import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.yeshi.utils.tencentcloud.COSManager; import com.yeshi.fanli.dao.mybatis.help.HelpCenterMapper; +import com.yeshi.fanli.entity.AppVersionInfo; import com.yeshi.fanli.entity.bus.help.HelpCenter; import com.yeshi.fanli.entity.bus.help.HelpInfo; +import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl; +import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl.AdActivityType; import com.yeshi.fanli.exception.config.HelpCenterException; import com.yeshi.fanli.service.inter.help.HelpCenterService; +import com.yeshi.fanli.service.inter.homemodule.AdActivityVersionControlService; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.db.MongoDBManager; -import org.yeshi.utils.tencentcloud.COSManager; @Service public class HelpCenterServiceImpl implements HelpCenterService { @@ -30,6 +36,9 @@ @Resource private MongoDBManager mongoDBManager; + + @Resource + private AdActivityVersionControlService adActivityVersionControlService; @Override @@ -58,33 +67,36 @@ } @Override - public String save(HelpCenter helpCenter, String content, String html) throws Exception { - + public String save(HelpCenter helpCenter, String content, String html) throws HelpCenterException,Exception { + if (StringUtil.isNullOrEmpty(helpCenter.getTitle())) + throw new HelpCenterException(1,"鏍囬涓嶈兘涓虹┖"); + + if (helpCenter.getHelpClass() == null || helpCenter.getHelpClass().getId() <= 0) + throw new HelpCenterException(1,"鍒嗙被棰樹笉鑳戒负绌�"); + + helpCenter.setUpdatetime(new Date()); Long id = helpCenter.getId(); if (id == null) { helpCenter.setCreatetime(new Date()); - helpCenter.setUpdatetime(new Date()); helpCenterMapper.insert(helpCenter); - } else { - helpCenter.setUpdatetime(new Date()); - helpCenterMapper.updateByPrimaryKeySelective(helpCenter); + HelpCenter result = helpCenterMapper.selectByPrimaryKey(id); + if (result == null) + throw new HelpCenterException(1,"姝ょ被鍐呭宸蹭笉瀛樺湪锛岃鍒锋柊"); + helpCenter.setCreatetime(result.getCreatetime()); + helpCenter.setWeight(result.getWeight()); + helpCenterMapper.updateByPrimaryKey(helpCenter); } - List<Map<String, Object>> positions = getPosition(html); - if (positions != null && positions.size() > 0) { - @SuppressWarnings("restriction") sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); - + for (int i = 0; i < positions.size(); i++) { Map<String, Object> map = positions.get(i); - String base64Img = (String) map.get("base64Img"); - byte[] b = decoder.decodeBuffer(base64Img); for (int j = 0; j < b.length; ++j) { if (b[j] < 0) { @@ -93,7 +105,6 @@ } String type = (String) map.get("type"); - // 涓婁紶鏂囦欢鐩稿浣嶇疆 String fileUrl = "helpInfo/" + UUID.randomUUID().toString().replace("-", "") + "." +type; /* 涓婁紶鏂板浘鐗� */ @@ -102,24 +113,16 @@ if (!StringUtil.isNullOrEmpty(uploadFilePath)) { String header = (String) map.get("header"); html = html.replace(header, uploadFilePath); - //System.out.println("uploadFilePath: " + uploadFilePath); - //content = content.replace(header, uploadFilePath); } - } } String replaceHtml = replaceIframe(html); - Long backId = helpCenter.getId(); - HelpInfo helpInfo = new HelpInfo(backId, content, replaceHtml); - mongoDBManager.saveHelpInfo(helpInfo); - return html; - } public List<Map<String, Object>> getPosition(String content) { @@ -272,4 +275,54 @@ } } } + + + + + @Transactional(rollbackFor = Exception.class) + @Override + public void setVersions(Long id, List<Long> versions) throws HelpCenterException { + HelpCenter helpCenter = helpCenterMapper.selectByPrimaryKey(id); + if (helpCenter == null) { + throw new HelpCenterException(1, "姝や俊鎭笉瀛樺湪锛岃鍒锋柊閲嶈瘯"); + } + + Set<Long> oldSet = new HashSet<>(); + List<AdActivityVersionControl> versionList = adActivityVersionControlService + .listByTypeAndSourceId(AdActivityType.helpCenter, id); + if (versionList != null) { + for (AdActivityVersionControl control : versionList) + oldSet.add(control.getVersion().getId()); + } + + Set<Long> newSet = new HashSet<>(); + for (Long version : versions) { + newSet.add(version); + } + + Set<Long> delSet = new HashSet<>(); + delSet.addAll(oldSet); + delSet.removeAll(newSet); + for (Long versionId : delSet) { + adActivityVersionControlService.deleteBySourceAndVersion(id, AdActivityType.helpCenter, versionId); + } + + Set<Long> addSet = new HashSet<>(); + addSet.addAll(newSet); + addSet.removeAll(oldSet); + + // 娣诲姞鏄犲皠 + for (Long versionId : addSet) { + AdActivityVersionControl control = new AdActivityVersionControl(); + control.setCreateTime(new Date()); + control.setSourceId(id); + control.setType(AdActivityType.helpCenter); + control.setVersion(new AppVersionInfo(versionId)); + try { + adActivityVersionControlService.addVersionControl(control); + } catch (Exception e) { + throw new HelpCenterException(2, e.getMessage()); + } + } + } } -- Gitblit v1.8.0