|
@@ -0,0 +1,226 @@
|
|
|
+package com.migao.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.migao.config.response.PageBean;
|
|
|
+import com.migao.config.response.ResponseBean;
|
|
|
+import com.migao.config.response.ResponseBuilder;
|
|
|
+import com.migao.entity.po.ProjectMember;
|
|
|
+import com.migao.entity.vo.req.ProjecmemberInsertReq;
|
|
|
+import com.migao.entity.vo.req.ProjecmemberPageQueryReq;
|
|
|
+import com.migao.entity.vo.req.ProjecmemberQueryReq;
|
|
|
+import com.migao.entity.vo.req.ProjecmemberUpdateReq;
|
|
|
+import com.migao.entity.vo.res.ProjecmemberQueryRes;
|
|
|
+import com.migao.mapper.ProjectMemberMapper;
|
|
|
+import com.migao.mapper.ProjectMemberRepository;
|
|
|
+import com.migao.service.ProjecmemberService;
|
|
|
+import com.migao.util.EntityUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.data.jpa.domain.Specification;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@Service
|
|
|
+@Transactional(rollbackFor = {Exception.class})
|
|
|
+public class ProjecmemberServiceImpl implements ProjecmemberService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectMemberRepository projecmemberRepository;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectMemberMapper projectMemberMapper;
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 增
|
|
|
+ *
|
|
|
+ * @param projecmemberInsertReq projecmemberInsertReq
|
|
|
+ * @return ?
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean<?> insert(ProjecmemberInsertReq projecmemberInsertReq) {
|
|
|
+ return ResponseBuilder.ok(projecmemberRepository.save(EntityUtils.copyProperties(projecmemberInsertReq, ProjectMember.class)));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查
|
|
|
+ *
|
|
|
+ * @param projecmemberPageQueryReq projecmemberPageQueryReq
|
|
|
+ * @return ?
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean<PageBean<ProjecmemberQueryRes>> pageQuery(ProjecmemberPageQueryReq projecmemberPageQueryReq) {
|
|
|
+ //1。分页查询所有供公司
|
|
|
+ Integer page = projecmemberPageQueryReq.getPage();
|
|
|
+ page = page == null ? 1 : page <= 0 ? 1 : page;
|
|
|
+ Integer size = projecmemberPageQueryReq.getSize();
|
|
|
+ size = size == null ? 10 : size <= 0 ? 10 : size;
|
|
|
+
|
|
|
+ LambdaQueryWrapper<ProjectMember> queryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ if (StringUtils.isNotBlank(projecmemberPageQueryReq.getUsername())){
|
|
|
+ queryWrapper.like(ProjectMember::getUsername,"%"+projecmemberPageQueryReq.getUsername()+"%");
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(projecmemberPageQueryReq.getName())){
|
|
|
+ queryWrapper.like(ProjectMember::getName,"%"+projecmemberPageQueryReq.getName()+"%");
|
|
|
+ }
|
|
|
+ Page<ProjectMember> all = projectMemberMapper.selectPage(new Page<>(page,size), queryWrapper);
|
|
|
+ return ResponseBuilder.ok(
|
|
|
+ all,
|
|
|
+ element -> {
|
|
|
+ ProjecmemberQueryRes projecmemberQueryRes = ProjecmemberQueryRes
|
|
|
+ .builder()
|
|
|
+ .id(element.getId())
|
|
|
+ .createTime(element.getCreateTime())
|
|
|
+ .createUserId(element.getCreateUserId())
|
|
|
+ .deleted(element.getDeleted())
|
|
|
+ .departmentName(element.getDepartmentName())
|
|
|
+ .isSigned(element.getIsSigned())
|
|
|
+ .name(element.getName())
|
|
|
+ .projectId(element.getProjectId())
|
|
|
+ .build();
|
|
|
+ return projecmemberQueryRes;
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删
|
|
|
+ *
|
|
|
+ * @param id id
|
|
|
+ * @return ?
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean<?> deleteById(Integer id) {
|
|
|
+ projecmemberRepository.findById(id).ifPresent(
|
|
|
+ i -> {
|
|
|
+ i.setDeleted(1);
|
|
|
+ projecmemberRepository.save(i);
|
|
|
+ }
|
|
|
+ );
|
|
|
+ return ResponseBuilder.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量删
|
|
|
+ *
|
|
|
+ * @param ids ids
|
|
|
+ * @return ?
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean<?> deleteBatch(List<Integer> ids) {
|
|
|
+ projecmemberRepository.findAllById(ids).forEach(
|
|
|
+ i -> {
|
|
|
+ i.setDeleted(1);
|
|
|
+ projecmemberRepository.save(i);
|
|
|
+ }
|
|
|
+ );
|
|
|
+ return ResponseBuilder.ok();
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 改
|
|
|
+ *
|
|
|
+ * @param projecmemberUpdateReq projecmemberUpdateReq
|
|
|
+ * @return ?
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean<?> update(ProjecmemberUpdateReq projecmemberUpdateReq) {
|
|
|
+ projecmemberRepository.save(EntityUtils.copyProperties(projecmemberUpdateReq, ProjectMember.class));
|
|
|
+ return ResponseBuilder.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查
|
|
|
+ *
|
|
|
+ * @param projecmemberQueryReq projecmemberQueryReq
|
|
|
+ * @return ?
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean<List<ProjecmemberQueryRes>> query(ProjecmemberQueryReq projecmemberQueryReq) {
|
|
|
+ //1。分页查询所有供公司
|
|
|
+ Specification<ProjectMember> projecmemberSpecification = (root, criteriaQuery, criteriaBuilder) -> {
|
|
|
+ List<Predicate> predicateList = new ArrayList<>();
|
|
|
+ if (projecmemberQueryReq.getId()!=null) {
|
|
|
+ Predicate equal = criteriaBuilder.equal(root.get("id").as(Integer.class),
|
|
|
+ projecmemberQueryReq.getId()
|
|
|
+ );
|
|
|
+ predicateList.add(equal);
|
|
|
+ }
|
|
|
+ if (projecmemberQueryReq.getCreateTime()!=null) {
|
|
|
+ Predicate equal = criteriaBuilder.equal(root.get("createTime").as(LocalDateTime.class),
|
|
|
+ projecmemberQueryReq.getCreateTime()
|
|
|
+ );
|
|
|
+ predicateList.add(equal);
|
|
|
+ }
|
|
|
+ if (projecmemberQueryReq.getCreateUserId()!=null) {
|
|
|
+ Predicate equal = criteriaBuilder.equal(root.get("createUserId").as(Integer.class),
|
|
|
+ projecmemberQueryReq.getCreateUserId()
|
|
|
+ );
|
|
|
+ predicateList.add(equal);
|
|
|
+ }
|
|
|
+ if (projecmemberQueryReq.getDeleted()!=null) {
|
|
|
+ Predicate equal = criteriaBuilder.equal(root.get("deleted").as(Integer.class),
|
|
|
+ projecmemberQueryReq.getDeleted()
|
|
|
+ );
|
|
|
+ predicateList.add(equal);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(projecmemberQueryReq.getDepartmentName())) {
|
|
|
+ Predicate like = criteriaBuilder.like(root.get("departmentName").as(String.class),
|
|
|
+ StringUtils.join(
|
|
|
+ "%", projecmemberQueryReq.getDepartmentName(), "%"
|
|
|
+ ));
|
|
|
+ predicateList.add(like);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(projecmemberQueryReq.getIsSigned())) {
|
|
|
+ Predicate like = criteriaBuilder.like(root.get("isSigned").as(String.class),
|
|
|
+ StringUtils.join(
|
|
|
+ "%", projecmemberQueryReq.getIsSigned(), "%"
|
|
|
+ ));
|
|
|
+ predicateList.add(like);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(projecmemberQueryReq.getName())) {
|
|
|
+ Predicate like = criteriaBuilder.like(root.get("name").as(String.class),
|
|
|
+ StringUtils.join(
|
|
|
+ "%", projecmemberQueryReq.getName(), "%"
|
|
|
+ ));
|
|
|
+ predicateList.add(like);
|
|
|
+ }
|
|
|
+ if (projecmemberQueryReq.getProjectId()!=null) {
|
|
|
+ Predicate equal = criteriaBuilder.equal(root.get("projectId").as(Integer.class),
|
|
|
+ projecmemberQueryReq.getProjectId()
|
|
|
+ );
|
|
|
+ predicateList.add(equal);
|
|
|
+ }
|
|
|
+ criteriaBuilder.equal(root.get("deleted").as(Integer.class),1);
|
|
|
+ Predicate[] predicateArray = new Predicate[predicateList.size()];
|
|
|
+ criteriaQuery.where(criteriaBuilder.and(predicateList.toArray(predicateArray)));
|
|
|
+ return criteriaQuery.getRestriction();
|
|
|
+ };
|
|
|
+ List<ProjectMember> all = projecmemberRepository.findAll(projecmemberSpecification);
|
|
|
+ return ResponseBuilder.ok(
|
|
|
+ all.stream().map(
|
|
|
+ element -> {
|
|
|
+ ProjecmemberQueryRes projecmemberQueryRes = ProjecmemberQueryRes
|
|
|
+ .builder()
|
|
|
+ .id(element.getId())
|
|
|
+ .createTime(element.getCreateTime())
|
|
|
+ .createUserId(element.getCreateUserId())
|
|
|
+ .deleted(element.getDeleted())
|
|
|
+ .departmentName(element.getDepartmentName())
|
|
|
+ .isSigned(element.getIsSigned())
|
|
|
+ .name(element.getName())
|
|
|
+ .projectId(element.getProjectId())
|
|
|
+ .build();
|
|
|
+ return projecmemberQueryRes;
|
|
|
+ }
|
|
|
+ ).collect(Collectors.toList())
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|