Blame view

src/main/java/com/objecteye/service/impl/FeatureServiceImpl.java 6.26 KB
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
1
2
3
  package com.objecteye.service.impl;
  
  import cn.hutool.core.date.DateUtil;
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
4
5
6
7
  import com.objecteye.entity.FeatureResultMsg;
  import com.objecteye.entity.PageResult;
  import com.objecteye.entity.SyFeature;
  import com.objecteye.entity.SyPersonnel;
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
8
9
  import com.objecteye.service.DeployService;
  import com.objecteye.service.FeatureService;
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
10
  import org.springframework.beans.factory.annotation.Autowired;
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
11
12
13
  import org.springframework.data.mongodb.core.MongoTemplate;
  import org.springframework.data.mongodb.core.query.Criteria;
  import org.springframework.data.mongodb.core.query.Query;
68a67f36   Liu Haoyu   接口问题处理;
14
  import org.springframework.data.mongodb.core.query.Update;
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
15
16
17
  import org.springframework.data.redis.core.RedisTemplate;
  import org.springframework.stereotype.Service;
  
68a67f36   Liu Haoyu   接口问题处理;
18
  import java.util.*;
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
19
20
21
22
23
24
25
26
27
28
  
  /**
   * 服务实现层
   *
   * @author Administrator
   */
  @Service
  public class FeatureServiceImpl implements FeatureService {
  
      @Autowired
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
29
30
31
      private DeployService deployService;
      @Autowired
      private RedisTemplate redisTemplate;
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
32
33
      @Autowired
      private MongoTemplate mongoTemplate;
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
34
35
36
  
      @Override
      public List<SyFeature> findAll() {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
37
          return mongoTemplate.find(Query.query(Criteria.where("isDelete").is(0).and("isSingle").is(0)), SyFeature.class);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
38
39
40
41
42
43
44
      }
  
      /**
       * 按分页查询
       */
      @Override
      public PageResult findPage(int pageNum, int pageSize) {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
45
46
47
          List<SyFeature> result = mongoTemplate.find(Query.query(Criteria.where("isDelete").is(0).and("isSingle").is(0))
                  .limit(pageSize).skip((pageNum - 1) * pageSize), SyFeature.class);
          long count = mongoTemplate.count(Query.query(Criteria.where("isDelete").is(0).and("isSingle").is(0)), SyFeature.class);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
48
  
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
49
          List<FeatureResultMsg> featureResultMsgs = new ArrayList<>();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
50
51
52
53
54
55
56
          for (SyFeature feature : result) {
              FeatureResultMsg featureResultMsg = new FeatureResultMsg();
              featureResultMsg.setId(feature.getId());
              featureResultMsg.setName(feature.getName());
              featureResultMsg.setCount(feature.getCount());
              featureResultMsg.setCreateDate(feature.getCreateDate());
              featureResultMsgs.add(featureResultMsg);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
57
          }
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
58
          return new PageResult<>((long) Math.ceil((double) count / pageSize), featureResultMsgs);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
59
60
61
62
      }
  
      /**
       * 增加
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
63
64
       *
       * @return
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
65
66
       */
      @Override
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
67
      public String add(SyFeature feature) {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
68
69
70
71
72
73
          String strDate = DateUtil.now();
          feature.setCount(0);
          feature.setCreateDate(strDate);
          feature.setUpdateDate(strDate);
          feature.setIsDelete(0);
          feature.setIsSingle(0);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
74
75
          feature = mongoTemplate.insert(feature);
          return feature.getId();
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
76
77
78
79
80
      }
  
  
      /**
       * 修改
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
81
82
       *
       * @return
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
83
84
       */
      @Override
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
85
      public String update(SyFeature feature) {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
86
87
          String now = DateUtil.now();
          feature.setUpdateDate(now);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
88
89
          mongoTemplate.save(feature);
          return feature.getId();
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
90
91
92
93
94
95
96
97
98
      }
  
      /**
       * 根据ID获取实体
       *
       * @param id
       * @return
       */
      @Override
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
99
100
      public SyFeature findOne(String id) {
          return mongoTemplate.findOne(Query.query(Criteria.where("id").is(id)), SyFeature.class);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
101
102
103
104
      }
  
      /**
       * 批量删除
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
105
106
       *
       * @param ids
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
107
108
       */
      @Override
68a67f36   Liu Haoyu   接口问题处理;
109
      public void delete(List<String> ids) {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
110
111
          for (String id : ids) {
              List<String> deployList = deployService.getDeployListByLibAndDeployType(id, 2);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
112
              List<SyPersonnel> syPersonnels = mongoTemplate.find(Query.query(Criteria.where("fid").is(id)), SyPersonnel.class);
68a67f36   Liu Haoyu   接口问题处理;
113
              mongoTemplate.updateMulti(Query.query(Criteria.where("fid").is(id)), Update.update("status", 1), SyPersonnel.class);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
114
              if (syPersonnels.size() > 0) {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
115
                  for (SyPersonnel syPersonnel : syPersonnels) {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
116
117
118
119
                      redisTemplate.opsForHash().delete("personUrl", syPersonnel.getId());
                  }
              }
              if (deployList != null && deployList.size() > 0) {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
120
                  for (String deployId : deployList) {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
121
122
                      String key = deployId + "|" + id;
                      redisTemplate.opsForHash().delete(key);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
123
                      String[] deploy = {deployId};
68a67f36   Liu Haoyu   接口问题处理;
124
                      deployService.delete(Arrays.asList(deploy));
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
125
126
                  }
              }
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
127
          }
68a67f36   Liu Haoyu   接口问题处理;
128
          mongoTemplate.updateMulti(Query.query(Criteria.where("id").in(ids)), Update.update("isDelete", 1), SyFeature.class);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
129
130
131
132
133
      }
  
  
      @Override
      public PageResult findPage(SyFeature feature, int pageNum, int pageSize) {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
134
          Criteria criteria = Criteria.where("isDelete").is(0);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
135
136
          if (feature != null) {
              if (feature.getName() != null && feature.getName().length() > 0) {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
137
                  criteria.and("name").regex(".*" + feature.getName() + ".*");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
138
139
              }
              if (feature.getCreateDate() != null && feature.getCreateDate().length() > 0) {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
140
                  criteria.and("createDate").regex(".*" + feature.getCreateDate() + ".*");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
141
142
              }
              if (feature.getUpdateDate() != null && feature.getUpdateDate().length() > 0) {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
143
                  criteria.and("updateDate").regex(".*" + feature.getUpdateDate() + ".*");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
144
145
              }
              if (feature.getDescription() != null && feature.getDescription().length() > 0) {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
146
                  criteria.and("description").regex(".*" + feature.getDescription() + ".*");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
147
148
              }
          }
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
149
150
151
          List<SyFeature> syFeatures = mongoTemplate.find(Query.query(criteria).limit(pageSize).skip((pageNum - 1) * pageSize), SyFeature.class);
          long total = mongoTemplate.count(Query.query(criteria), SyFeature.class);
          return new PageResult<>((long) Math.ceil((double) total / pageSize), syFeatures);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
152
153
154
155
156
157
158
      }
  
      /**
       * @param feature
       * @return
       */
      @Override
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
159
160
161
      public String updateCountById(SyFeature feature) {
          mongoTemplate.save(feature);
          return feature.getId();
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
162
163
164
165
166
167
      }
  
      @Override
      public List<Map<String, String>> findAllName() {
          List<Map<String, String>> list = new ArrayList<>();
          List<SyFeature> syFeatures = findAll();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
168
169
170
171
172
173
174
          for (SyFeature feature : syFeatures) {
              Map<String, String> map = new HashMap<>(16);
              String name = feature.getName();
              String id = feature.getId();
              map.put("value", id + "");
              map.put("name", name);
              list.add(map);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
175
          }
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
176
          return list;
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
177
178
      }
  }