package com.doumee.service.business.impl; 
 | 
  
 | 
import com.doumee.biz.system.SystemDictDataBiz; 
 | 
import com.doumee.core.model.PageData; 
 | 
import com.doumee.core.model.PageWrap; 
 | 
import com.doumee.core.utils.Constants; 
 | 
import com.doumee.core.utils.Utils; 
 | 
import com.doumee.core.wx.MeetConstants; 
 | 
import com.doumee.dao.business.ProjectsMapper; 
 | 
import com.doumee.dao.business.model.Projects; 
 | 
import com.doumee.dao.web.response.ProjectsResponse; 
 | 
import com.doumee.dao.web.response.UserResponse; 
 | 
import com.doumee.service.business.ProjectsService; 
 | 
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.commons.lang3.StringUtils; 
 | 
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; 
 | 
  
 | 
/** 
 | 
 * 服务项目信息表Service实现 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2023/05/04 18:18 
 | 
 */ 
 | 
@Service 
 | 
public class ProjectsServiceImpl implements ProjectsService { 
 | 
  
 | 
    @Autowired 
 | 
    private ProjectsMapper projectsMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private SystemDictDataBiz systemDictDataBiz; 
 | 
  
 | 
    @Override 
 | 
    public Integer create(Projects projects) { 
 | 
  
 | 
        Projects insert = new Projects(); 
 | 
        insert.setCreator(projects.getCreator()); 
 | 
        insert.setEditor(projects.getEditor()); 
 | 
        insert.setName(projects.getName()); 
 | 
        insert.setImgurl(projects.getImgurl()); 
 | 
        insert.setStatus(MeetConstants.ZERO); 
 | 
        insert.setSortnum(projects.getSortnum()); 
 | 
        insert.setCreateDate(new Date()); 
 | 
        projectsMapper.insert(insert); 
 | 
        return projects.getId(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteById(Integer id) { 
 | 
        projectsMapper.deleteById(id); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void delete(Projects projects) { 
 | 
        UpdateWrapper<Projects> deleteWrapper = new UpdateWrapper<>(projects); 
 | 
        projectsMapper.delete(deleteWrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteByIdInBatch(List<Integer> ids) { 
 | 
        if (CollectionUtils.isEmpty(ids)) { 
 | 
            return; 
 | 
        } 
 | 
        projectsMapper.deleteBatchIds(ids); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateById(Projects projects) { 
 | 
        Projects update = new Projects(); 
 | 
        update.setId(projects.getId()); 
 | 
        update.setEditor(projects.getEditor()); 
 | 
        update.setEditDate(new Date()); 
 | 
        update.setName(projects.getName()); 
 | 
        update.setImgurl(projects.getImgurl()); 
 | 
        update.setSortnum(projects.getSortnum()); 
 | 
        projectsMapper.updateById(update); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void updateByIdInBatch(List<Projects> projectss) { 
 | 
        if (CollectionUtils.isEmpty(projectss)) { 
 | 
            return; 
 | 
        } 
 | 
        for (Projects projects: projectss) { 
 | 
            this.updateById(projects); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Projects findById(Integer id) { 
 | 
        return projectsMapper.selectById(id); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Projects findOne(Projects projects) { 
 | 
        QueryWrapper<Projects> wrapper = new QueryWrapper<>(projects); 
 | 
        return projectsMapper.selectOne(wrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public List<Projects> findList(Projects projects) { 
 | 
        QueryWrapper<Projects> wrapper = new QueryWrapper<>(projects); 
 | 
        return projectsMapper.selectList(wrapper); 
 | 
    } 
 | 
   
 | 
    @Override 
 | 
    public PageData<Projects> findPage(PageWrap<Projects> pageWrap) { 
 | 
        IPage<Projects> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); 
 | 
        QueryWrapper<Projects> queryWrapper = new QueryWrapper<>(); 
 | 
        Utils.MP.blankToNull(pageWrap.getModel()); 
 | 
        if (pageWrap.getModel().getId() != null) { 
 | 
            queryWrapper.lambda().eq(Projects::getId, pageWrap.getModel().getId()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getCreator() != null) { 
 | 
            queryWrapper.lambda().eq(Projects::getCreator, pageWrap.getModel().getCreator()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getCreateDate() != null) { 
 | 
            queryWrapper.lambda().ge(Projects::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); 
 | 
            queryWrapper.lambda().le(Projects::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); 
 | 
        } 
 | 
        if (pageWrap.getModel().getEditor() != null) { 
 | 
            queryWrapper.lambda().eq(Projects::getEditor, pageWrap.getModel().getEditor()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getEditDate() != null) { 
 | 
            queryWrapper.lambda().ge(Projects::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); 
 | 
            queryWrapper.lambda().le(Projects::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); 
 | 
        } 
 | 
        if (pageWrap.getModel().getIsdeleted() != null) { 
 | 
            queryWrapper.lambda().eq(Projects::getIsdeleted, pageWrap.getModel().getIsdeleted()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getName() != null) { 
 | 
            queryWrapper.lambda().eq(Projects::getName, pageWrap.getModel().getName()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getRemark() != null) { 
 | 
            queryWrapper.lambda().eq(Projects::getRemark, pageWrap.getModel().getRemark()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getImgurl() != null) { 
 | 
            queryWrapper.lambda().eq(Projects::getImgurl, pageWrap.getModel().getImgurl()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getStatus() != null) { 
 | 
            queryWrapper.lambda().eq(Projects::getStatus, pageWrap.getModel().getStatus()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getSortnum() != null) { 
 | 
            queryWrapper.lambda().eq(Projects::getSortnum, pageWrap.getModel().getSortnum()); 
 | 
        } 
 | 
        queryWrapper.lambda().orderByAsc(Projects::getSortnum); 
 | 
//        for(PageWrap.SortData sortData: pageWrap.getSorts()) { 
 | 
//            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { 
 | 
//                queryWrapper.orderByDesc(sortData.getProperty()); 
 | 
//            } else { 
 | 
//                queryWrapper.orderByAsc(sortData.getProperty()); 
 | 
//            } 
 | 
//        } 
 | 
  
 | 
        IPage<Projects> projectsIPage = projectsMapper.selectPage(page, queryWrapper); 
 | 
  
 | 
        if (!CollectionUtils.isEmpty(projectsIPage.getRecords())){ 
 | 
            String preFixPath = systemDictDataBiz.getPreFixPath(MeetConstants.RESOURCE_PATH, MeetConstants.PROJECTS); 
 | 
            projectsIPage.getRecords().forEach(s->s.setImgurlfull(StringUtils.isBlank(s.getImgurl()) ? s.getImgurl():preFixPath+s.getImgurl())); 
 | 
        } 
 | 
        return PageData.from(projectsIPage); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public long count(Projects projects) { 
 | 
        QueryWrapper<Projects> wrapper = new QueryWrapper<>(projects); 
 | 
        return projectsMapper.selectCount(wrapper); 
 | 
    } 
 | 
  
 | 
    /****************************************移动端接口开始********************************************************************/ 
 | 
  
 | 
    @Override 
 | 
    public List<ProjectsResponse> getProjectsList(Integer objId,Integer objType) { 
 | 
        return projectsMapper.getProjectsList(new QueryWrapper<ProjectsResponse>() 
 | 
                        .eq("ISDELETED",MeetConstants.ZERO) 
 | 
                .exists(" select 1 from meeting_project_rel p where p.PROJECT_ID = projects.id and p.OBJ_ID = "+objId+" and p.OBJ_TYPE = "+objType+"  ") 
 | 
        ); 
 | 
    } 
 | 
} 
 |