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 deleteWrapper = new UpdateWrapper<>(projects); projectsMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List 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 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 wrapper = new QueryWrapper<>(projects); return projectsMapper.selectOne(wrapper); } @Override public List findList(Projects projects) { QueryWrapper wrapper = new QueryWrapper<>(projects); return projectsMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper 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 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 wrapper = new QueryWrapper<>(projects); return projectsMapper.selectCount(wrapper); } /****************************************移动端接口开始********************************************************************/ @Override public List getProjectsList(Integer objId,Integer objType) { return projectsMapper.getProjectsList(new QueryWrapper() .eq("ISDELETED",MeetConstants.ZERO) .exists(" select 1 from project_rel p where p.PROJECT_ID = projects.id and p.OBJ_ID = "+objId+" and p.OBJ_TYPE = "+objType+" ") ); } }