package com.javaweb.cms.service.impl; import java.beans.Transient; import java.util.Date; import java.util.List; import com.google.common.collect.Lists; import com.javaweb.cms.domain.AdMaterial; import com.javaweb.cms.domain.MaterialUse; import com.javaweb.cms.mapper.MaterialMapper; import com.javaweb.cms.util.CmsConstants; import com.javaweb.common.utils.DateUtils; import com.javaweb.framework.util.ShiroUtils; import com.javaweb.system.domain.SysUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.javaweb.cms.mapper.AdMapper; import com.javaweb.cms.domain.Ad; import com.javaweb.cms.service.IAdService; import com.javaweb.common.core.text.Convert; import org.springframework.transaction.annotation.Transactional; /** * 广告位Service业务层处理 * * @author wujiyue * @date 2019-11-16 */ @Service public class AdServiceImpl implements IAdService { @Autowired private AdMapper adMapper; @Autowired private MaterialMapper materialMapper; /** * 查询广告位 * * @param adId 广告位ID * @return 广告位 */ @Override public Ad selectAdById(Long adId) { return adMapper.selectAdById(adId); } /** * 查询广告位列表 * * @param ad 广告位 * @return 广告位 */ @Override public List selectAdList(Ad ad) { return adMapper.selectAdList(ad); } /** * 新增广告位 * * @param ad 广告位 * @return 结果 */ @Override public int insertAd(Ad ad) { ad.setCreateTime(DateUtils.getNowDate()); return adMapper.insertAd(ad); } /** * 修改广告位 * * @param ad 广告位 * @return 结果 */ @Override public int updateAd(Ad ad) { ad.setUpdateTime(DateUtils.getNowDate()); return adMapper.updateAd(ad); } /** * 删除广告位对象 * * @param ids 需要删除的数据ID * @return 结果 */ @Override public int deleteAdByIds(String ids) { return adMapper.deleteAdByIds(Convert.toStrArray(ids)); } /** * 删除广告位信息 * * @param adId 广告位ID * @return 结果 */ @Override public int deleteAdById(Long adId) { return adMapper.deleteAdById(adId); } /*****************************************分割线****************************************************/ @Override public AdMaterial selectAdMaterialById(Long id) { return adMapper.selectAdMaterialById(id); } @Override public List selectAdMaterialList(AdMaterial adMaterial) { return adMapper.selectAdMaterialList(adMaterial); } @Override @Transactional public int insertAdMaterial(AdMaterial adMaterial) { //插入使用记录 cms_material_use MaterialUse use=new MaterialUse(); SysUser user= ShiroUtils.getSysUser(); use.setUseId(adMaterial.getAdId().toString()); use.setMaterialId(adMaterial.getMaterialId()); use.setUserId(user.getUserId().toString()); use.setCreateBy(user.getUserName()); use.setCreateTime(new Date()); use.setUserId(user.getUserId().toString()); use.setUseTable(CmsConstants.MATERIAL_USE_AD_TABLE_NAME); use.setUseColumn(CmsConstants.MATERIAL_USE_AD_COLUMN_NAME); materialMapper.insertMaterialUse(use); adMaterial.setUseHisId(Integer.valueOf(use.getId())); //更新素材使用状态 materialMapper.updateMaterialUseState(adMaterial.getMaterialId(),CmsConstants.USE_STATE_YES); return adMapper.insertAdMaterial(adMaterial); } @Override public int updateAdMaterial(AdMaterial adMaterial) { return adMapper.updateAdMaterial(adMaterial); } @Override public int deleteAdMaterialByIds(String ids) { List list=adMapper.selectAdMaterialByIds(Convert.toStrArray(ids)); List idList=Lists.newArrayList(); for(AdMaterial material:list){ idList.add(String.valueOf(material.getUseHisId())); } String[] useIds=idList.toArray(new String[idList.size()]); materialMapper.deleteMaterialUseBatch(useIds); for(AdMaterial material:list){ int n=materialMapper.selectCountMaterialUse(material.getMaterialId()); if(n==0){ materialMapper.updateMaterialUseState(material.getMaterialId(), CmsConstants.USE_STATE_NO); } } return adMapper.deleteAdMaterialByIds(Convert.toStrArray(ids)); } @Override public List selectAdUnMaterialList(AdMaterial adMaterial) { return adMapper.selectAdUnMaterialList(adMaterial); } }