package com.caimei.modules.cmpage.service; import com.alibaba.fastjson.JSON; import com.caimei.modules.cmpage.dao.CmPageCentreDao; import com.caimei.modules.cmpage.entity.CmImage; import com.caimei.modules.cmpage.entity.CmPageCentre; import com.caimei.modules.miniprogram.utils.UploadPicUtils; import com.caimei.modules.newhome.entity.NewPageFloorContent; import com.caimei.modules.newhome.entity.NewPageFloorImage; import com.caimei.modules.product.dao.ProductDao; import com.caimei.modules.product.entity.Product; import com.caimei.utils.AppUtils; import com.thinkgem.jeesite.common.config.Global; import com.thinkgem.jeesite.common.persistence.Page; import com.thinkgem.jeesite.common.service.CrudService; import com.thinkgem.jeesite.common.utils.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 相关商品管理Service * * @author Lijun * @version 2017-05-04 */ @Service @Transactional(readOnly = true) public class CmPageCentreService extends CrudService { @Autowired private CmPageCentreDao cmPageCentreDao; @Autowired private CmImageService cmImageService; @Autowired private ProductDao productDao; public CmPageCentre get(String id) { CmPageCentre cmPageCentre = super.get(id); if (null != cmPageCentre) { List centreImages = cmImageService.findCentreImageByCentreId(id); if (centreImages != null && centreImages.size() > 0) { centreImages.forEach(image -> { image.setCreateDateStc(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(image.getCreateDate())); }); cmPageCentre.setCmImages(centreImages); } } return cmPageCentre; } public List findList(CmPageCentre cmPageCentre) { return super.findList(cmPageCentre); } public Page findPage(Page page, CmPageCentre cmPageCentre) { return super.findPage(page, cmPageCentre); } @Transactional(readOnly = false) public void save(CmPageCentre cmPageCentre) { super.save(cmPageCentre); cmPageCentreDao.deletePageImage(cmPageCentre.getId()); if (StringUtils.isNotBlank(cmPageCentre.getImages())) { try { List floorImages = JSON.parseArray(cmPageCentre.getImages(), NewPageFloorImage.class); List imageIds = new ArrayList<>(); for (NewPageFloorImage floorImage : floorImages) { if (!floorImage.getImage().contains("http")) { floorImage.setImage(UploadPicUtils.saveImageToServer(floorImage.getImage(), null)); } CmImage image = new CmImage(); BeanUtils.copyProperties(floorImage, image); image.setSort(Integer.valueOf(floorImage.getSort())); image.setTitle(floorImage.getName()); image.setEnabledStatus(floorImage.getPcStatus()); image.setCrmEnabledStatus(floorImage.getAppletsStatus()); Date createDate = new Date(); if (StringUtils.isNotBlank(floorImage.getCreateDate())) { createDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(floorImage.getCreateDate()); } image.setCreateDate(createDate); cmImageService.save(image); imageIds.add(image.getId()); } cmPageCentreDao.insertPageCentreImage(cmPageCentre.getId(), imageIds); } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } } } @Transactional(readOnly = false) public void delete(CmPageCentre cmPageCentre) { super.delete(cmPageCentre); } @Transactional(readOnly = false) public void saveSort(String sort, String id) { cmPageCentreDao.saveSort(sort, id); } public NewPageFloorContent findFloorContent(Integer centreId) { NewPageFloorContent floorContent = cmPageCentreDao.findFloorContentByCentreId(centreId); List floorImageList = cmPageCentreDao.findFloorImage(centreId); floorImageList.forEach(image -> { image.setImage(AppUtils.getProductImageURL(image.getImage(), 0, Global.getConfig("wwwServer"))); if (image.getProductId() != null) { Product product = productDao.get(image.getProductId().toString()); if (product != null) { image.setImage(AppUtils.getProductImageURL(product.getMainImage(), 0, Global.getConfig("wwwServer"))); image.setName(product.getName()); } } }); floorContent.setCentreId(centreId); floorContent.setFloorImageList(floorImageList); return floorContent; } public String findPageTitle(String pageId) { return cmPageCentreDao.findPageTitle(pageId); } }