package com.doumee.service.business.impl; 
 | 
  
 | 
import com.doumee.biz.system.SystemDictDataBiz; 
 | 
import com.doumee.core.constants.Constants; 
 | 
import com.doumee.core.model.LoginUserInfo; 
 | 
import com.doumee.core.model.PageData; 
 | 
import com.doumee.core.model.PageWrap; 
 | 
import com.doumee.core.utils.Utils; 
 | 
import com.doumee.dao.business.AdMapper; 
 | 
import com.doumee.dao.business.model.Ad; 
 | 
import com.doumee.service.business.AdService; 
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 
 | 
import com.baomidou.mybatisplus.core.metadata.IPage; 
 | 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
 | 
import org.apache.shiro.SecurityUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.util.CollectionUtils; 
 | 
  
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
import java.util.Objects; 
 | 
  
 | 
/** 
 | 
 * 广告信息表Service实现 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2023/09/27 18:06 
 | 
 */ 
 | 
@Service 
 | 
public class AdServiceImpl implements AdService { 
 | 
  
 | 
    @Autowired 
 | 
    private AdMapper adMapper; 
 | 
  
 | 
    @Autowired 
 | 
    SystemDictDataBiz systemDictDataBiz; 
 | 
  
 | 
    @Override 
 | 
    public String create(Ad ad) { 
 | 
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); 
 | 
        ad.setIsdeleted(Constants.ZERO); 
 | 
        ad.setStatus(Constants.ZERO); 
 | 
        ad.setCreateDate(new Date()); 
 | 
        ad.setCreator(loginUserInfo.getId()); 
 | 
        adMapper.insert(ad); 
 | 
        return ad.getId(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteById(String id) { 
 | 
        adMapper.deleteById(id); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void delete(Ad ad) { 
 | 
        UpdateWrapper<Ad> deleteWrapper = new UpdateWrapper<>(ad); 
 | 
        adMapper.delete(deleteWrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteByIdInBatch(List<String> ids) { 
 | 
        if (CollectionUtils.isEmpty(ids)) { 
 | 
            return; 
 | 
        } 
 | 
        adMapper.deleteBatchIds(ids); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateById(Ad ad) { 
 | 
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); 
 | 
  
 | 
        UpdateWrapper<Ad> wrapper = new UpdateWrapper<>(); 
 | 
        wrapper.lambda() 
 | 
                .eq(Ad::getId,ad.getId()) 
 | 
                .set(Ad::getEditor,loginUserInfo.getId()) 
 | 
                .set(Ad::getEditDate,ad.getEditDate()) 
 | 
                .set(Objects.nonNull(ad.getName()),Ad::getName,ad.getName()) 
 | 
                .set(Objects.nonNull(ad.getImgurl()),Ad::getImgurl,ad.getImgurl()) 
 | 
                .set(Ad::getSortnum,ad.getSortnum()) 
 | 
                .set(Objects.nonNull(ad.getContent()),Ad::getContent,ad.getContent()) 
 | 
                .set(Objects.nonNull(ad.getStatus()),Ad::getStatus,ad.getStatus()); 
 | 
        adMapper.update(null,wrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateByIdInBatch(List<Ad> ads) { 
 | 
        if (CollectionUtils.isEmpty(ads)) { 
 | 
            return; 
 | 
        } 
 | 
        for (Ad ad: ads) { 
 | 
            this.updateById(ad); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Ad findById(String id) { 
 | 
        String path =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FILE_DIR).getCode()+ 
 | 
                systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode(); 
 | 
        Ad ad = adMapper.selectById(id); 
 | 
        ad.setImgfullurl(path+ad.getImgurl()); 
 | 
        return ad; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Ad findOne(Ad ad) { 
 | 
        QueryWrapper<Ad> wrapper = new QueryWrapper<>(ad); 
 | 
        return adMapper.selectOne(wrapper.last(" limit 1")); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<Ad> findList(Ad ad) { 
 | 
        QueryWrapper<Ad> wrapper = new QueryWrapper<>(ad); 
 | 
        return adMapper.selectList(wrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public PageData<Ad> findPage(PageWrap<Ad> pageWrap) { 
 | 
        IPage<Ad> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); 
 | 
        QueryWrapper<Ad> queryWrapper = new QueryWrapper<>(); 
 | 
        Utils.MP.blankToNull(pageWrap.getModel()); 
 | 
        if (pageWrap.getModel().getId() != null) { 
 | 
            queryWrapper.lambda().eq(Ad::getId, pageWrap.getModel().getId()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getCreateDate() != null) { 
 | 
            queryWrapper.lambda().ge(Ad::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); 
 | 
            queryWrapper.lambda().le(Ad::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); 
 | 
        } 
 | 
        if (pageWrap.getModel().getCreator() != null) { 
 | 
            queryWrapper.lambda().eq(Ad::getCreator, pageWrap.getModel().getCreator()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getEditDate() != null) { 
 | 
            queryWrapper.lambda().ge(Ad::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); 
 | 
            queryWrapper.lambda().le(Ad::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); 
 | 
        } 
 | 
        if (pageWrap.getModel().getEditor() != null) { 
 | 
            queryWrapper.lambda().eq(Ad::getEditor, pageWrap.getModel().getEditor()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getIsdeleted() != null) { 
 | 
            queryWrapper.lambda().eq(Ad::getIsdeleted, pageWrap.getModel().getIsdeleted()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getName() != null) { 
 | 
            queryWrapper.lambda().like(Ad::getName, pageWrap.getModel().getName()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getSortnum() != null) { 
 | 
            queryWrapper.lambda().eq(Ad::getSortnum, pageWrap.getModel().getSortnum()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getType() != null) { 
 | 
            queryWrapper.lambda().eq(Ad::getType, pageWrap.getModel().getType()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getStatus() != null) { 
 | 
            queryWrapper.lambda().eq(Ad::getStatus, pageWrap.getModel().getStatus()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getInfo() != null) { 
 | 
            queryWrapper.lambda().eq(Ad::getInfo, pageWrap.getModel().getInfo()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getContent() != null) { 
 | 
            queryWrapper.lambda().eq(Ad::getContent, pageWrap.getModel().getContent()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getImgurl() != null) { 
 | 
            queryWrapper.lambda().eq(Ad::getImgurl, pageWrap.getModel().getImgurl()); 
 | 
        } 
 | 
        queryWrapper.lambda().orderByAsc(Ad::getSortnum); 
 | 
        String path =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FILE_DIR).getCode()+ 
 | 
                systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode(); 
 | 
  
 | 
        IPage<Ad> adIPage = adMapper.selectPage(page, queryWrapper); 
 | 
        if (!CollectionUtils.isEmpty(adIPage.getRecords())){ 
 | 
            adIPage.getRecords().forEach(s->{ 
 | 
                s.setImgfullurl(path+s.getImgurl()); 
 | 
            }); 
 | 
        } 
 | 
        return PageData.from(adIPage); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public long count(Ad ad) { 
 | 
        QueryWrapper<Ad> wrapper = new QueryWrapper<>(ad); 
 | 
        return adMapper.selectCount(wrapper); 
 | 
    } 
 | 
} 
 |