From a1ff200109be78a2b470c710e0c83dfc53fa5817 Mon Sep 17 00:00:00 2001 From: hanshaofeng Date: Thu, 8 Dec 2016 17:20:09 +0800 Subject: [PATCH] rebuild sync data controller --- .../lyms/platform/biz/BasicConfigServiceTest.java | 77 +++++++++++++++- .../platform/biz/service/MongoSyncService.java | 5 +- .../common/utils/CompressEncodeingUtil.java | 100 +++++++++++++++++++++ .../com/lyms/platform/common/utils/DateUtil.java | 4 + .../lyms/platform/common/utils/SerializUtils.java | 1 + .../operate/web/controller/InitDataController.java | 32 ++++--- .../operate/web/controller/UsersController.java | 1 + .../src/main/resources/config.properties | 2 + 8 files changed, 207 insertions(+), 15 deletions(-) create mode 100644 platform-common/src/main/java/com/lyms/platform/common/utils/CompressEncodeingUtil.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java index bde6062..99f4f37 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.Date; import com.lyms.platform.biz.dal.impl.YunBookbuildingDaoImpl; import com.lyms.platform.biz.param.AssayConfigQuery; @@ -31,13 +32,87 @@ import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; public class BasicConfigServiceTest { + + public static SimpleDateFormat y_m_d= new SimpleDateFormat("yyyy-MM-dd"); + public static SimpleDateFormat h_m_s = new SimpleDateFormat("HH:mm:ss"); + public static void main(String[] args) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml"); // queryRisk(applicationContext); - dataptest(applicationContext); + changeLong2Time(applicationContext); + } + + public static void changeLong2Time(ApplicationContext applicationContext) { + MongoTemplate mongoTemplate + =(MongoTemplate)applicationContext.getBean("mongoTemplate"); + mongoTemplate.getDb().slaveOk(); + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray()); + y_m_d.setTimeZone(TimeZone.getTimeZone("GMT+0")); + h_m_s.setTimeZone(TimeZone.getTimeZone("GMT+0")); + try { + MongoCondition coniticon = new MongoCondition(); + MongoQuery mongoQuery = new MongoQuery(coniticon); + List list = mongoTemplate.find(mongoQuery.convertToMongoQuery(),AntExChuModelTemp.class); + for (AntExChuModelTemp model:list) { + boolean boo = false; + AntExChuModel db = new AntExChuModel(); + db.setId(model.getId()); + if (model.getCreated() != null && model.getCreated() instanceof Long) { + boo = true; + db.setCreated(new Date(((Long) model.getCreated()).longValue())); + System.out.println("db.getCollection('lyms_antexc').update( { \"_id\" : ObjectId(\""+model.getId()+"\")},{ $set : { \"created\" : ISODate('"+y_m_d.format(model.getCreated())+"T"+h_m_s.format(model.getCreated())+".000Z')} } );"); + } + if (model.getModified() != null && model.getModified() instanceof Long) { + boo = true; + db.setModified(new Date(((Long) model.getModified()).longValue())); + System.out.println("db.getCollection('lyms_antexc').update( { \"_id\" : ObjectId(\""+model.getId()+"\")},{ $set : { \"modified\" : ISODate('"+y_m_d.format(model.getModified())+"T"+h_m_s.format(model.getModified())+".000Z')} } );"); + + } + + if (model.getNextCheckTime() != null && model.getNextCheckTime() instanceof Long) { + boo = true; + db.setNextCheckTime(new Date(((Long) model.getNextCheckTime()).longValue())); + System.out.println("db.getCollection('lyms_antexc').update( { \"_id\" : ObjectId(\""+model.getId()+"\")},{ $set : { \"nextCheckTime\" : ISODate('"+y_m_d.format(model.getNextCheckTime())+"T"+h_m_s.format(model.getNextCheckTime())+".000Z')} } );"); + + } + if (model.getCheckTime() != null && model.getCheckTime() instanceof Long) { + boo = true; + db.setCheckTime(new Date(((Long) model.getCheckTime()).longValue())); + System.out.println("db.getCollection('lyms_antexc').update( { \"_id\" : ObjectId(\""+model.getId()+"\")},{ $set : { \"checkTime\" : ISODate('"+y_m_d.format(model.getCheckTime())+"T"+h_m_s.format(model.getCheckTime())+".000Z')} } );"); + + } + if (model.getDueDate() != null && model.getDueDate() instanceof Long) { + boo = true; + db.setDueDate(new Date(((Long) model.getDueDate()).longValue())); + System.out.println("db.getCollection('lyms_antexc').update( { \"_id\" : ObjectId(\""+model.getId()+"\")},{ $set : { \"dueDate\" : ISODate('"+y_m_d.format(model.getDueDate())+"T"+h_m_s.format(model.getDueDate())+".000Z')} } );"); + + } + if (model.getLastMenses() != null && model.getLastMenses() instanceof Long) { + boo = true; + db.setLastMenses(new Date(((Long) model.getLastMenses()).longValue())); + System.out.println("db.getCollection('lyms_antexc').update( { \"_id\" : ObjectId(\""+model.getId()+"\")},{ $set : { \"lastMenses\" : ISODate('"+y_m_d.format(model.getLastMenses())+"T"+h_m_s.format(model.getLastMenses())+".000Z')} } );"); + + } + + + if (boo) { + +// System.out.println(JsonUtil.obj2Str(db)); +// MongoCondition coniticon1 = new MongoCondition(); +// coniticon1.and("_id", db.getId(), MongoOper.IS); +// MongoQuery mongoQuery1 = new MongoQuery(coniticon1); +// Update update = MongoConvertHelper +// .convertToNativeUpdate(ReflectionUtils.getUpdateField(db)); +// mongoTemplate.updateMulti(mongoQuery1.convertToMongoQuery(), update, AntExChuModel.class); + } + } + } catch (Exception e) { + e.printStackTrace(); + } } public static void dataptest(ApplicationContext applicationContext) { diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java index fbf47ed..6c6619c 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java @@ -44,7 +44,10 @@ public class MongoSyncService { public static String mongo_crypto_key = Config.getItem("mongo_crypto_key", "0"); public static void main(String[] a) { - + + String s = "rO0ABXNyACJjb20ubHltcy5wbGF0Zm9ybS5wb2pvLkFyY2hpdmVEYXRhYLiAY6y7JRwCAAdMAAdjYXJkTnVtdAASTGphdmEvbGFuZy9TdHJpbmc7TAAKaG9zcGl0YWxJZHEAfgABTAACaWRxAH4AAUwABmlkQ2FyZHEAfgABTAAIanNvbkRhdGFxAH4AAUwABG5hbWVxAH4AAUwABXBob25lcQB+AAF4cHQAHG9jQ1Fkc3psN3FCZGotXzNHZlhRX3FxNWVXWjR0AAMyMTZ0ABYyMTY6MTMwMzAyMTk4NzA4MjUzNTI3dAASMTMwMzAyMTk4NzA4MjUzNTI3dAPAeyJwaG9uZSI6IjE1NjAzMzY0MjQ2IiwiZXJyb3Jtc2ciOiLmiJDlip8iLCJodXNFZHVjYXRpb25MZXZlbCI6IiIsImh1c1dvcmtQbGFjZSI6IiIsInJlc2lkZVR5cGUiOiLmnKzlnLAiLCJ3b3JrUGxhY2UiOiIiLCJpZCI6NjkzLCJodXNQaG9uZSI6IjEzNzMxNzkwMDQxIiwiZWR1Y2F0aW9uTGV2ZWwiOiLlpKflrabmnKznp5EiLCJuYW1lIjoi546L5LmQIiwiaHVzSm9iIjoiIiwiaGVhbHRoUmVzb3J0IjpbeyJkaXN0cmljdE5hbWUiOm51bGwsImFkZHJlc3MiOiIiLCJjaXR5TmFtZSI6bnVsbCwicHJvdmluY2VOYW1lIjpudWxsfV0sImh1c0JpcnRoRGF5IjowLCJwZXJtYW5lbnRBZGRyZXNzIjpbeyJkaXN0cmljdE5hbWUiOm51bGwsImFkZHJlc3MiOiIiLCJjaXR5TmFtZSI6bnVsbCwicHJvdmluY2VOYW1lIjpudWxsfV0sImNhcmROdW0iOiJvY0NRZHN6bDdxQmRqLV8zR2ZYUV9xcTVlV1o0IiwiaHVzTmF0aW9uIjoi5rGJ5pePIiwiaHVzTmF0aW9uYWxpdHkiOiLkuK3lm70iLCJpZENhcmQiOiIxMzAzMDIxOTg3MDgyNTM1MjciLCJqb2IiOiLlhbbku5YiLCJiaXJ0aERheSI6NTU2ODE1NjAwLCJodXNQZXJtYW5lbnRBZGRyZXNzIjpbeyJkaXN0cmljdE5hbWUiOm51bGwsImFkZHJlc3MiOiIiLCJjaXR5TmFtZSI6bnVsbCwicHJvdmluY2VOYW1lIjpudWxsfV0sIm5hdGlvbiI6IuaxieaXjyIsIm5hdGlvbmFsaXR5Ijoi5Lit5Zu9IiwiY3VycmVudEFkZHJlc3MiOlt7ImRpc3RyaWN0TmFtZSI6Iua1t+a4r+WMuiIsImFkZHJlc3MiOiLnm5vnp6bnpo/lnLA5LTEtMTIwMiIsImNpdHlOYW1lIjoi56em55qH5bKb5biCIiwicHJvdmluY2VOYW1lIjoi5rKz5YyX55yBIn1dLCJodXNOYW1lIjoi5pyx5bOwIiwiaG9zcGl0YWxOYW1lIjoi56em55qH5bKb5biC5aaH5bm85L+d5YGl6ZmiIiwiYWNjb3VudFR5cGUiOiLpnZ7lhpzkuJrmiLflj6MiLCJlcnJvcmNvZGUiOjAsImh1c0lkQ2FyZCI6IiJ9dAAG546L5LmQdAALMTU2MDMzNjQyNDY="; + Object obj = SerializUtils.byteToObj(Base64.decodeBase64(s)); + System.out.println(obj); } public boolean syncData(String action, String id, String className, String json) { diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/CompressEncodeingUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/CompressEncodeingUtil.java new file mode 100644 index 0000000..4076ac1 --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/CompressEncodeingUtil.java @@ -0,0 +1,100 @@ +package com.lyms.platform.common.utils; + +/** + * Created by riecard on 2016/12/8. + */ +public class CompressEncodeingUtil { + + final static char[] digits = { + '0' , '1' , '2' , '3' , '4' , '5' , + '6' , '7' , '8' , '9' , 'a' , 'b' , + 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , + 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , + 'o' , 'p' , 'q' , 'r' , 's' , 't' , + 'u' , 'v' , 'w' , 'x' , 'y' , 'z' , + 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , + 'G' , 'H' , 'I' , 'J' , 'K' , 'L' , + 'M' , 'N' , 'O' , 'P' , 'Q' , 'R' , + 'S' , 'T' , 'U' , 'V' , 'W' , 'X' , + 'Y' , 'Z' , '$' , '!' , + }; + + /** + * 把10进制的数字转换成64进制 + * @param number + * @return + */ + public static String compressNumber(String number) { + return compressNumber(Long.valueOf(number)); + } + + /** + * 把10进制的数字转换成64进制 + * @param number + * @return + */ + public static String compressNumber(long number) { + System.out.println(number); + char[] buf = new char[64]; + int charPos = 64; + int radix = 1 << 6; + long mask = radix - 1; + do { + buf[--charPos] = digits[(int)(number & mask)]; + number >>>= 6; + } while (number != 0); + return new String(buf, charPos, (64 - charPos)); + } + /** + * 把64进制的字符串转换成10进制 + * @param decompStr + * @return + */ + public static long unCompressNumber(String decompStr) + { + long result=0; + for (int i = decompStr.length()-1; i >=0; i--) { + if(i==decompStr.length()) + { + result+=getCharIndexNum(decompStr.charAt(i)); + continue; + } + for (int j = 0; j < digits.length; j++) { + if(decompStr.charAt(i)==digits[j]) + { + result+=((long)j)<<6*(decompStr.length()-1-i); + } + } + } + return result; + } + /** + * + * @param ch + * @return + */ + private static long getCharIndexNum(char ch) + { + int num=((int)ch); + if(num>=48&&num<=57) + { + return num-48; + } + else if(num>=97&&num<=122) + { + return num-87; + }else if(num>=65&&num<=90) + { + return num-29; + }else if(num==43) + { + return 62; + } + else if (num == 47) + { + return 63; + } + return 0; + } + +} diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index 430b439..640adfd 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -25,6 +25,10 @@ public class DateUtil { return y_m_d.format(new Date()); } + public static String getymd6() { + return ymd.format(new Date()); + } + public static String getymdhmss() { return yyyyMMddHHmmssSSS.format(new Date()); } diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/SerializUtils.java b/platform-common/src/main/java/com/lyms/platform/common/utils/SerializUtils.java index 35f3345..8ab9e19 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/SerializUtils.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/SerializUtils.java @@ -32,6 +32,7 @@ public final class SerializUtils { ObjectInputStream ois = new ObjectInputStream(bais); return ois.readObject(); } catch (Exception e) { + e.printStackTrace(); } return null; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/InitDataController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/InitDataController.java index 87381c5..a73a291 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/InitDataController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/InitDataController.java @@ -13,6 +13,7 @@ import org.apache.commons.codec.binary.Base64; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.io.FileUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Query; @@ -34,6 +35,8 @@ import java.util.List; @RequestMapping("/initdata") public class InitDataController extends BaseController { + public static final String postser_url = PropertiesUtils.getPropertyValue("postser_url"); + @Autowired protected MongoTemplate mongoTemplate; @@ -104,7 +107,7 @@ public class InitDataController extends BaseController { HttpClient client = new HttpClient(); client.getHttpConnectionManager().getParams().setConnectionTimeout(30000); client.getHttpConnectionManager().getParams().setSoTimeout(30000); - PostMethod post = new MessageUtil.UTF8PostMethod("http://api.meishengbb.com/initdata/reser"); + PostMethod post = new MessageUtil.UTF8PostMethod(postser_url); NameValuePair[] pairs = { new NameValuePair("className", claName), new NameValuePair("json", JsonUtil.array2JsonString(synclist)), @@ -136,19 +139,22 @@ public class InitDataController extends BaseController { Class cla = Class.forName(className); List synclist = JsonUtil.toList(json, String.class); for (String s:synclist) { - System.out.println(className); - System.out.println(s); - Object obj = SerializUtils.byteToObj(Base64.decodeBase64(s)); - String id = cla.getMethod("getId").invoke(obj).toString(); - if (StringUtils.isNotEmpty(id)) { - if (mongoTemplate.findById(id, cla) == null) { - mongoTemplate.insert(obj); - } else { - Query query = new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(); - Update update = MongoConvertHelper - .convertToNativeUpdate(ReflectionUtils.getUpdateField(obj)); - mongoTemplate.updateMulti(query, update, cla); + try { + Object obj = SerializUtils.byteToObj(Base64.decodeBase64(s)); + String id = cla.getMethod("getId").invoke(obj).toString(); + if (StringUtils.isNotEmpty(id)) { + if (mongoTemplate.findById(id, cla) == null) { + mongoTemplate.insert(obj); + } else { + Query query = new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(obj)); + mongoTemplate.updateMulti(query, update, cla); + } } + } catch (Exception e) { + System.out.println(className); + System.out.println(s); } } return "success"; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java index 33c37b1..99fc1e7 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java @@ -498,6 +498,7 @@ public class UsersController extends BaseController { Map map = new HashMap<>(); map.put("user", users); + map.put("watermark", CompressEncodeingUtil.compressNumber(users.getId().toString()+DateUtil.getymd6())); map.put("roles", roles); map.put("permissions", permissions); diff --git a/platform-operate-api/src/main/resources/config.properties b/platform-operate-api/src/main/resources/config.properties index 5d602a9..0e22da6 100644 --- a/platform-operate-api/src/main/resources/config.properties +++ b/platform-operate-api/src/main/resources/config.properties @@ -20,5 +20,7 @@ nio_server_start=2 #TCP客户端是否启动 1:true,2:false nio_client_start=2 +postser_url=http://api.meishengbb.com/initdata/reser + -- 1.8.3.1