Commit d022922ad3c2322ba809896f2f14fffd01e321a1

Authored by hanshaofeng
1 parent de1d27ff9f

permission2

Showing 4 changed files with 61 additions and 7 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java View file @ d022922
... ... @@ -58,10 +58,18 @@
58 58 Class cla = Class.forName(LymsEncodeUtil.aesDecrypt(className, mongo_crypto_key));
59 59 // 批量修改的情况下,ID字段是要修改的CLASS
60 60 Class updateClass = Class.forName(LymsEncodeUtil.aesDecrypt(id, mongo_crypto_key));
61   - Object obj = JsonUtil.jkstr2Obj(LymsEncodeUtil.aesDecrypt(json, mongo_crypto_key), cla);
  61 + Object obj = null;
  62 + try {
  63 + obj = SerializUtils.byteToObj(Base64.decodeBase64(json));
  64 + } catch (Exception ee) {
  65 + obj = JsonUtil.jkstr2Obj(LymsEncodeUtil.aesDecrypt(json, mongo_crypto_key), cla);
  66 + }
62 67 if (obj instanceof UpdateMultiData) {
63 68 UpdateMultiData data = (UpdateMultiData) obj;
64   - if (data.getQuery() != null && data.getUpdate() != null) {
  69 + if (data.getMongoQuery() != null && data.getMongoUpdate() != null) {
  70 + mongoTemplate.updateMulti(data.getMongoQuery(), data.getMongoUpdate(), updateClass);
  71 + return true;
  72 + } else if (data.getQuery() != null && data.getUpdate() != null) {
65 73 MongoCondition c = null;
66 74 for (String key:data.getQuery().keySet()) {
67 75 if (c == null) {
68 76  
... ... @@ -80,13 +88,23 @@
80 88 }
81 89 }
82 90 } else if ("ADD".equals(action)) {
83   - Object entity = JsonUtil.jkstr2Obj(LymsEncodeUtil.aesDecrypt(json, mongo_crypto_key), Class.forName(LymsEncodeUtil.aesDecrypt(className, mongo_crypto_key)));
  91 + Object entity = null;
  92 + try {
  93 + entity = SerializUtils.byteToObj(Base64.decodeBase64(json));
  94 + } catch (Exception ee) {
  95 + entity = JsonUtil.jkstr2Obj(LymsEncodeUtil.aesDecrypt(json, mongo_crypto_key), Class.forName(LymsEncodeUtil.aesDecrypt(className, mongo_crypto_key)));
  96 + }
84 97 Assert.notNull(entity, "execute insert method must not null.");
85 98 mongoTemplate.save(entity);
86 99 return true;
87 100 } else if ("UPDATE".equals(action)) {
88 101 Class cla = Class.forName(LymsEncodeUtil.aesDecrypt(className, mongo_crypto_key));
89   - Object obj = JsonUtil.jkstr2Obj(LymsEncodeUtil.aesDecrypt(json, mongo_crypto_key), cla);
  102 + Object obj = null;
  103 + try {
  104 + obj = SerializUtils.byteToObj(Base64.decodeBase64(json));
  105 + } catch (Exception ee) {
  106 + obj = JsonUtil.jkstr2Obj(LymsEncodeUtil.aesDecrypt(json, mongo_crypto_key), cla);
  107 + }
90 108 Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(obj));
91 109 Assert.notNull(update, "execute update method must not null.");
92 110 mongoTemplate.updateMulti(new MongoQuery(new MongoCondition("id", LymsEncodeUtil.aesDecrypt(id, mongo_crypto_key), MongoOper.IS)).convertToMongoQuery(), update, cla);
platform-common/src/main/java/com/lyms/platform/common/dao/BaseMongoDAOImpl.java View file @ d022922
... ... @@ -4,6 +4,7 @@
4 4 import com.lyms.platform.common.pojo.SyncDataModel;
5 5 import com.lyms.platform.common.pojo.UpdateMultiData;
6 6 import com.lyms.platform.common.utils.*;
  7 +import org.apache.commons.codec.binary.Base64;
7 8 import org.apache.commons.collections.CollectionUtils;
8 9 import org.springframework.beans.factory.annotation.Autowired;
9 10 import org.springframework.data.mongodb.core.MongoTemplate;
... ... @@ -11,6 +12,7 @@
11 12 import org.springframework.data.mongodb.core.query.Update;
12 13 import org.springframework.util.Assert;
13 14  
  15 +import java.io.Serializable;
14 16 import java.util.Collection;
15 17 import java.util.Date;
16 18 import java.util.List;
... ... @@ -142,6 +144,7 @@
142 144 // 数据上传
143 145 UpdateMultiData data = new UpdateMultiData();
144 146 data.setMongoQuery(query);
  147 + data.setMongoUpdate(update);
145 148 data.setUpdate(ReflectionUtils.getUpdateField(obj));
146 149 // 批量修改的情况下,ID字段是要修改的CLASS
147 150 addSyncData("UPDATEMULTI", data, obj.getClass().getName());
... ... @@ -162,7 +165,8 @@
162 165 model.setAction(action);
163 166 if (null != data) {
164 167 model.setClassName(LymsEncodeUtil.aesEncrypt(data.getClass().getName(), mongo_crypto_key));
165   - model.setJsonData(LymsEncodeUtil.aesEncrypt(JsonUtil.obj2Str(data), mongo_crypto_key));
  168 + model.setJsonData(Base64.encodeBase64String(SerializUtils.objToByte((Serializable)data)));
  169 + model.setType(1);
166 170 }
167 171 model.setCreated(new Date());
168 172 model.setModified(model.getCreated());
... ... @@ -173,6 +177,7 @@
173 177 mongoTemplate.insert(model);
174 178 } catch (Exception e) {
175 179 e.printStackTrace();
  180 + System.out.println(data);
176 181 }
177 182 }
178 183 }
platform-common/src/main/java/com/lyms/platform/common/pojo/SyncDataModel.java View file @ d022922
... ... @@ -20,7 +20,16 @@
20 20 private String className;
21 21 private String jsonData;
22 22 private String dataId;
23   - private Integer status;
  23 + private Integer status; // 1:未同步 , 2:已同步
  24 + private Integer type; // null:旧版本(JSON),1:jsonData 为 SerializData
  25 +
  26 + public Integer getType() {
  27 + return type;
  28 + }
  29 +
  30 + public void setType(Integer type) {
  31 + this.type = type;
  32 + }
24 33  
25 34 public Integer getStatus() {
26 35 return status;
platform-common/src/main/java/com/lyms/platform/common/pojo/UpdateMultiData.java View file @ d022922
... ... @@ -4,17 +4,38 @@
4 4 import org.springframework.data.mongodb.core.query.Query;
5 5 import org.springframework.data.mongodb.core.query.Update;
6 6  
  7 +import java.io.Serializable;
7 8 import java.util.HashMap;
8 9 import java.util.Map;
9 10  
10 11 /**
11 12 * Created by riecard on 2016/10/30.
12 13 */
13   -public class UpdateMultiData {
  14 +public class UpdateMultiData implements Serializable {
14 15  
  16 + /**
  17 + *
  18 + */
  19 + private static final long serialVersionUID = 1L;
  20 +
15 21 private Map<String, Object> query;
16 22 private Map<String, Object> update;
17 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 +
18 39 public void setQuery(Map<String, Object> query) {
19 40 this.query = query;
20 41 }
... ... @@ -24,6 +45,7 @@
24 45 }
25 46  
26 47 public void setMongoQuery(Query query) {
  48 + this.mongoQuery = query;
27 49 DBObject dbObject = query.getQueryObject();
28 50 this.query = new HashMap<>();
29 51 for (String key:dbObject.keySet()) {