|
@@ -0,0 +1,84 @@
|
|
|
+package com.ebei.screen.service.impl;
|
|
|
+
|
|
|
+import com.ebei.screen.common.response.ResponseBean;
|
|
|
+import com.ebei.screen.common.util.CommonUtil;
|
|
|
+import com.ebei.screen.modules.po.Project;
|
|
|
+import com.ebei.screen.service.ProjectService;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.*;
|
|
|
+import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
+import org.springframework.data.mongodb.core.query.Criteria;
|
|
|
+import org.springframework.data.mongodb.core.query.Query;
|
|
|
+import org.springframework.data.mongodb.core.query.Update;
|
|
|
+import org.springframework.data.repository.support.PageableExecutionUtils;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.List;
|
|
|
+import java.util.regex.Pattern;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @version v1.0
|
|
|
+ * @ProjectName: screen
|
|
|
+ * @ClassName: ProjectServiceImpl
|
|
|
+ * @Description:
|
|
|
+ * @Author: ch
|
|
|
+ * @Date: 2021-01-19 14:35
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+@AllArgsConstructor
|
|
|
+public class ProjectServiceImpl implements ProjectService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MongoTemplate mongoTemplate;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void saveProjectBatch(List<Project> list) {
|
|
|
+ mongoTemplate.insertAll(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void saveProject(Project project) {
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ project.setId(CommonUtil.getSnowId());
|
|
|
+ project.setCreateTime(now);
|
|
|
+ project.setIsDelete(0);
|
|
|
+ mongoTemplate.insert(project);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseBean updateProject(Project project) {
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ Query query = new Query();
|
|
|
+ query.addCriteria(Criteria.where("_id").is(project.getId()));
|
|
|
+ Update update = new Update();
|
|
|
+ update.set("name", project.getName());
|
|
|
+ update.set("updateTime", now);
|
|
|
+ mongoTemplate.updateFirst(query, update, Project.class);
|
|
|
+ return ResponseBean.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseBean queryProjectPage(Integer page, Integer pageSize, String name) {
|
|
|
+ Query query = new Query();
|
|
|
+ if(CommonUtil.isNotEmpty(name)) {
|
|
|
+ Criteria criteria = new Criteria();
|
|
|
+ Pattern pattern=Pattern.compile("^.*"+name+".*$", Pattern.CASE_INSENSITIVE);
|
|
|
+ criteria.where("name").regex(pattern);
|
|
|
+ query.addCriteria(criteria);
|
|
|
+ }
|
|
|
+ //计算总数
|
|
|
+ long total = mongoTemplate.count(query, Project.class);
|
|
|
+ //分页查询
|
|
|
+ Pageable pageable = PageRequest.of(page, pageSize);
|
|
|
+ query.with(pageable);
|
|
|
+ query.with(Sort.by(Sort.Direction.DESC, "createTime"));
|
|
|
+ List<Project> result = mongoTemplate.find(query, Project.class);
|
|
|
+ Page<Project> pageResult = new PageImpl<>(result, pageable, total);
|
|
|
+ return ResponseBean.success(pageResult);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|