Commit 242bd7fd1d5b17251315bb4dcfc8806e2186a217

Authored by hanshaofeng
1 parent df9150685b

watermark test

Showing 5 changed files with 65 additions and 20 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java View file @ 242bd7f
... ... @@ -31,6 +31,7 @@
31 31 import org.springframework.context.support.ClassPathXmlApplicationContext;
32 32  
33 33 import org.springframework.data.mongodb.core.MongoTemplate;
  34 +import org.springframework.data.mongodb.core.query.Criteria;
34 35 import org.springframework.data.mongodb.core.query.Query;
35 36 import org.springframework.data.mongodb.core.query.Update;
36 37  
... ... @@ -43,7 +44,31 @@
43 44 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
44 45 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml");
45 46 // queryRisk(applicationContext);
46   - changeLong2Time(applicationContext);
  47 + removeDoubleBaby(applicationContext);
  48 + }
  49 +
  50 + public static void removeDoubleBaby(ApplicationContext applicationContext) {
  51 + MongoTemplate mongoTemplate
  52 + =(MongoTemplate)applicationContext.getBean("mongoTemplate");
  53 + mongoTemplate.getDb().slaveOk();
  54 + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray());
  55 + List<BabyModel> list = mongoTemplate.find(new Query(new Criteria()), BabyModel.class);
  56 + Map<String, BabyModel> localMap = new HashMap<>();
  57 + Map<String, BabyModel> remoteMap = new HashMap<>();
  58 + for (BabyModel model:list) {
  59 + if (model.getId().length() == 24) {
  60 + localMap.put(model.getMphone(),model);
  61 + } else if (model.getId().length() == 32) {
  62 + remoteMap.put(model.getMphone(),model);
  63 + } else {
  64 + System.out.println("other:"+JsonUtil.obj2JsonString(model));
  65 + }
  66 + }
  67 + for (String phone:remoteMap.keySet()) {
  68 + if (localMap.containsKey(phone)) {
  69 + System.out.println("double:"+JsonUtil.obj2JsonString(remoteMap.get(phone)));
  70 + }
  71 + }
47 72 }
48 73  
49 74 public static void changeLong2Time(ApplicationContext applicationContext) {
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java View file @ 242bd7f
... ... @@ -11,6 +11,7 @@
11 11 import org.apache.commons.lang.StringUtils;
12 12 import org.springframework.beans.factory.annotation.Autowired;
13 13 import org.springframework.data.mongodb.core.MongoTemplate;
  14 +import org.springframework.data.mongodb.core.query.Criteria;
14 15 import org.springframework.data.mongodb.core.query.Query;
15 16 import org.springframework.data.mongodb.core.query.Update;
16 17 import org.springframework.stereotype.Service;
... ... @@ -58,8 +59,14 @@
58 59 }
59 60 if (obj instanceof UpdateMultiData) {
60 61 UpdateMultiData data = (UpdateMultiData) obj;
61   - if (data.getMongoQuery() != null && data.getMongoUpdate() != null) {
62   - mongoTemplate.updateMulti(data.getMongoQuery(), data.getMongoUpdate(), updateClass);
  62 + if (data.getQuery() != null && data.getUpdate() != null) {
  63 + Update update = MongoConvertHelper
  64 + .convertToNativeUpdate(data.getUpdate());
  65 + MongoCondition condition = new MongoCondition();
  66 + for (String key:data.getQuery().keySet()) {
  67 + condition = condition.and(key,data.getQuery().get(key),MongoOper.IS);
  68 + }
  69 + mongoTemplate.updateMulti(condition.toMongoQuery().convertToMongoQuery(), update, updateClass);
63 70 return true;
64 71 } else if (data.getQuery() != null && data.getUpdate() != null) {
65 72 MongoCondition c = null;
platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAOImpl.java View file @ 242bd7f
1 1 package com.lyms.platform.common.dao;
2 2  
  3 +import com.lyms.platform.common.dao.operator.MongoCondition;
  4 +import com.lyms.platform.common.dao.operator.MongoOper;
  5 +import com.lyms.platform.common.dao.operator.MongoQuery;
3 6 import com.lyms.platform.common.dao.operator.Page;
4 7 import com.lyms.platform.common.pojo.SyncDataModel;
5 8 import com.lyms.platform.common.pojo.UpdateMultiData;
... ... @@ -8,6 +11,7 @@
8 11 import org.apache.commons.collections.CollectionUtils;
9 12 import org.springframework.beans.factory.annotation.Autowired;
10 13 import org.springframework.data.mongodb.core.MongoTemplate;
  14 +import org.springframework.data.mongodb.core.query.Criteria;
11 15 import org.springframework.data.mongodb.core.query.Query;
12 16 import org.springframework.data.mongodb.core.query.Update;
13 17 import org.springframework.util.Assert;
... ... @@ -144,7 +148,6 @@
144 148 // 数据上传
145 149 UpdateMultiData data = new UpdateMultiData();
146 150 data.setMongoQuery(query);
147   - data.setMongoUpdate(update);
148 151 data.setUpdate(ReflectionUtils.getUpdateField(obj));
149 152 // 批量修改的情况下,ID字段是要修改的CLASS
150 153 addSyncData("UPDATEMULTI", data, obj.getClass().getName());
platform-common/src/main/java/com/lyms/platform/common/pojo/SyncDataModel.java View file @ 242bd7f
1 1 package com.lyms.platform.common.pojo;
2 2  
  3 +import com.lyms.platform.common.dao.operator.MongoCondition;
  4 +import com.lyms.platform.common.dao.operator.MongoOper;
  5 +import com.lyms.platform.common.dao.operator.MongoQuery;
3 6 import com.lyms.platform.common.result.BaseModel;
  7 +import com.lyms.platform.common.utils.MongoConvertHelper;
  8 +import com.lyms.platform.common.utils.ReflectionUtils;
  9 +import com.lyms.platform.common.utils.SerializUtils;
  10 +import org.apache.commons.codec.binary.Base64;
4 11 import org.springframework.data.mongodb.core.mapping.Document;
  12 +import org.springframework.data.mongodb.core.query.Query;
  13 +import org.springframework.data.mongodb.core.query.Update;
  14 +import org.springframework.util.Assert;
5 15  
  16 +import java.io.Serializable;
6 17 import java.util.Date;
7 18  
8 19 /**
... ... @@ -10,6 +21,21 @@
10 21 */
11 22 @Document(collection = "lyms_sync_data")
12 23 public class SyncDataModel extends BaseModel {
  24 +
  25 + public static void main(String[] a) {
  26 + Query query = new MongoQuery(new MongoCondition("yn", 1, MongoOper.IS)).convertToMongoQuery();
  27 + SyncDataModel model = new SyncDataModel();
  28 + model.setDataId("fuck");
  29 + Assert.notNull(model, "execute findAndModify method must not null.");
  30 + Update update = MongoConvertHelper
  31 + .convertToNativeUpdate(ReflectionUtils.getUpdateField(model));
  32 + Assert.notNull(update, "execute findAndModify method must not null.update:" + update);
  33 + // 数据上传
  34 + UpdateMultiData data = new UpdateMultiData();
  35 + data.setMongoQuery(query);
  36 + data.setUpdate(ReflectionUtils.getUpdateField(model));
  37 + System.out.println(Base64.encodeBase64String(SerializUtils.objToByte((Serializable) data)));
  38 + }
13 39  
14 40 private static final long serialVersionUID = 97531300010L;
15 41  
platform-common/src/main/java/com/lyms/platform/common/pojo/UpdateMultiData.java View file @ 242bd7f
... ... @@ -21,21 +21,6 @@
21 21 private Map<String, Object> query;
22 22 private Map<String, Object> update;
23 23  
24   - private Query mongoQuery;
25   - private Update mongoUpdate;
26   -
27   - public Update getMongoUpdate() {
28   - return mongoUpdate;
29   - }
30   -
31   - public void setMongoUpdate(Update mongoUpdate) {
32   - this.mongoUpdate = mongoUpdate;
33   - }
34   -
35   - public Query getMongoQuery() {
36   - return mongoQuery;
37   - }
38   -
39 24 public void setQuery(Map<String, Object> query) {
40 25 this.query = query;
41 26 }
... ... @@ -45,7 +30,6 @@
45 30 }
46 31  
47 32 public void setMongoQuery(Query query) {
48   - this.mongoQuery = query;
49 33 DBObject dbObject = query.getQueryObject();
50 34 this.query = new HashMap<>();
51 35 for (String key:dbObject.keySet()) {