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/HelpClassServiceImpl.java | 143 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 123 insertions(+), 20 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/help/HelpClassServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/help/HelpClassServiceImpl.java index 26f04ff..df529b8 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/help/HelpClassServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/help/HelpClassServiceImpl.java @@ -2,20 +2,33 @@ import java.io.IOException; import java.io.InputStream; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Date; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.UUID; import javax.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import org.yeshi.utils.tencentcloud.COSManager; import com.yeshi.fanli.dao.mybatis.help.HelpClassMapper; +import com.yeshi.fanli.entity.AppVersionInfo; import com.yeshi.fanli.entity.bus.help.HelpClass; +import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl; +import com.yeshi.fanli.entity.bus.homemodule.FloatAD; +import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture; +import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl.AdActivityType; +import com.yeshi.fanli.exception.banner.SwiperPictureException; import com.yeshi.fanli.exception.config.HelpClassException; +import com.yeshi.fanli.exception.homemodule.FloatADException; import com.yeshi.fanli.service.inter.help.HelpClassService; +import com.yeshi.fanli.service.inter.homemodule.AdActivityVersionControlService; import com.yeshi.fanli.util.StringUtil; @Service @@ -24,6 +37,9 @@ @Resource private HelpClassMapper helpClassMapper; + @Resource + private AdActivityVersionControlService adActivityVersionControlService; + @Override public int deleteByPrimaryKeyBatch(List<Long> list) { return helpClassMapper.deleteByPrimaryKeyBatch(list); @@ -35,32 +51,71 @@ } @Override - public void save(HelpClass helpClass) throws HelpClassException { - if (helpClass == null) { + public void save(HelpClass record, MultipartFile file) throws HelpClassException, Exception{ + if (record == null) throw new HelpClassException(1, "鍙傛暟涓嶈兘涓虹┖"); - } - if (helpClass.getId() == null) { - - String name = helpClass.getName(); - if (StringUtil.isNullOrEmpty(name)) { - throw new HelpClassException(1, "鍚嶇О涓嶈兘涓虹┖"); + String name = record.getName(); + if (StringUtil.isNullOrEmpty(name)) + throw new HelpClassException(1, "鍚嶇О涓嶈兘涓虹┖"); + + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String startTime_str = record.getStartTime_str(); + if (startTime_str != null && startTime_str.trim().length() > 0) { + startTime_str = startTime_str.replaceAll("T", " "); + record.setStartTime(format.parse(startTime_str)); } - // 榛樿涓嶆樉绀� - helpClass.setShowState(0); - - // 鎺掑簭-鏈熬 + String endTime_str = record.getEndTime_str(); + if (endTime_str != null && endTime_str.trim().length() > 0) { + endTime_str = endTime_str.replaceAll("T", " "); + record.setEndTime(format.parse(endTime_str)); + } + } catch (ParseException e) { + e.printStackTrace(); + } + + // 鍥剧墖涓婁紶 + String picture = null; + if (file != null) { + InputStream inputStream = file.getInputStream(); + String contentType = file.getContentType(); + String type = contentType.substring(contentType.indexOf("/") + 1); + String filePath ="/img/HelpClass/" + UUID.randomUUID().toString().replace("-", "") + "." + type; + picture = COSManager.getInstance().uploadFile(inputStream, filePath).getUrl(); + } + + Integer showState = record.getShowState(); + if (showState == null) + record.setShowState(0); + + record.setUpdateTime(new Date()); + if (record.getId() == null) { int maxOrder = helpClassMapper.getMaxOrder(); - helpClass.setSort(maxOrder + 1); - - helpClass.setCreateTime(new Date()); - helpClass.setUpdateTime(new Date()); - helpClassMapper.insertSelective(helpClass); - + record.setSort(maxOrder + 1); + record.setCreateTime(new Date()); + helpClassMapper.insertSelective(record); } else { - helpClass.setUpdateTime(new Date()); - helpClassMapper.updateByPrimaryKeySelective(helpClass); + // 淇敼 + HelpClass resultObj = helpClassMapper.selectByPrimaryKey(record.getId()); + if (resultObj == null) + throw new FloatADException(1, "淇敼鍐呭宸蹭笉瀛樺湪"); + + if (picture != null && picture.trim().length() > 0) { + String pictureOld = resultObj.getPicture(); + if (pictureOld != null && pictureOld.trim().length() > 0) { + COSManager.getInstance().deleteFile(pictureOld); + } + // 瀛樺偍鏂板浘 + record.setPicture(picture); + } else { + record.setPicture(resultObj.getPicture()); + } + + record.setSort(resultObj.getSort()); + record.setCreateTime(resultObj.getCreateTime()); + helpClassMapper.updateByPrimaryKey(record); } } @@ -180,4 +235,52 @@ } + @Transactional(rollbackFor = Exception.class) + @Override + public void setVersions(Long id, List<Long> versions) throws HelpClassException { + HelpClass helpClass = helpClassMapper.selectByPrimaryKey(id); + if (helpClass == null) { + throw new HelpClassException(1, "姝や俊鎭笉瀛樺湪锛岃鍒锋柊閲嶈瘯"); + } + + Set<Long> oldSet = new HashSet<>(); + List<AdActivityVersionControl> versionList = adActivityVersionControlService + .listByTypeAndSourceId(AdActivityType.helpClass, 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.helpClass, 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.helpClass); + control.setVersion(new AppVersionInfo(versionId)); + try { + adActivityVersionControlService.addVersionControl(control); + } catch (Exception e) { + throw new HelpClassException(2, e.getMessage()); + } + } + } + + } -- Gitblit v1.8.0