Commit 5a9b3954486be78f5918ce3424f795e4e75c52e0

Authored by fangcheng
Exists in master

Merge branch 'master' of https://git.healthbaby.com.cn/jiangjiazhi/center.git

Showing 7 changed files

center.manager/src/main/java/com/lyms/cm/controller/sys/SysRemoteController.java View file @ 5a9b395
... ... @@ -21,6 +21,10 @@
21 21 public String push(HttpServletRequest request) throws ClassNotFoundException, IOException {
22 22 SyncnModel model = conver(request);
23 23 SysUsers user = (SysUsers) model.getData();
  24 + System.out.println(user.getRoles().getName());
  25 + // model
  26 + // service
  27 +
24 28 System.out.println(user.getName() + " " + model.getMethod());
25 29 return "OK";
26 30 }
center.manager/src/main/java/com/lyms/cm/entity/sys/SysUsers.java View file @ 5a9b395
1 1 package com.lyms.cm.entity.sys;
2 2  
3   -import com.baomidou.mybatisplus.annotations.TableId;
4   -import com.baomidou.mybatisplus.annotations.TableField;
5   -import com.baomidou.mybatisplus.annotations.TableName;
6 3 import java.io.Serializable;
7 4 import java.util.Date;
8 5  
  6 +import com.baomidou.mybatisplus.annotations.TableField;
  7 +import com.baomidou.mybatisplus.annotations.TableId;
  8 +import com.baomidou.mybatisplus.annotations.TableName;
  9 +
9 10 /**
10 11 * <p>
11 12 * 用户表
12 13  
13 14  
14 15  
15 16  
16 17  
17 18  
18 19  
19 20  
20 21  
21 22  
22 23  
23 24  
24 25  
25 26  
26 27  
27 28  
28 29  
29 30  
30 31  
31 32  
32 33  
33 34  
34 35  
35 36  
36 37  
... ... @@ -17,129 +18,133 @@
17 18 @TableName("SYS_USERS")
18 19 public class SysUsers implements Serializable {
19 20  
20   - private static final long serialVersionUID = 1L;
  21 + private static final long serialVersionUID = 1L;
21 22  
22 23 /**
23 24 *
24 25 */
25   - @TableId(value="ID")
  26 + @TableId(value = "ID")
26 27 private String id;
27 28 /**
28 29 * 0:管理员,1:用户
29 30 */
30   - @TableField(value="TYPE")
  31 + @TableField(value = "TYPE")
31 32 private Integer type;
32 33 /**
33 34 * 名称
34 35 */
35   - @TableField(value="NAME")
  36 + @TableField(value = "NAME")
36 37 private String name;
37 38 /**
38 39 * 帐号
39 40 */
40   - @TableField(value="ACCOUNT")
  41 + @TableField(value = "ACCOUNT")
41 42 private String account;
42 43 /**
43 44 * 机构id
44 45 */
45   - @TableField(value="ORG_ID")
  46 + @TableField(value = "ORG_ID")
46 47 private String orgId;
47 48 /**
48 49 * 部门id
49 50 */
50   - @TableField(value="DEPT_ID")
  51 + @TableField(value = "DEPT_ID")
51 52 private String deptId;
52 53 /**
53 54 * 名字
54 55 */
55   - @TableField(value="PWD")
  56 + @TableField(value = "PWD")
56 57 private String pwd;
57 58 /**
58 59 * 手机号
59 60 */
60   - @TableField(value="PHONE")
  61 + @TableField(value = "PHONE")
61 62 private String phone;
62 63 /**
63 64 * 备注
64 65 */
65   - @TableField(value="REMARKS")
  66 + @TableField(value = "REMARKS")
66 67 private String remarks;
67 68 /**
68 69 * 最后登录时间
69 70 */
70   - @TableField(value="LAST_LOGIN_TIME")
  71 + @TableField(value = "LAST_LOGIN_TIME")
71 72 private Date lastLoginTime;
72 73 /**
73 74 * 导入数据的源id
74 75 */
75   - @TableField(value="FOREIGN_ID")
  76 + @TableField(value = "FOREIGN_ID")
76 77 private String foreignId;
77 78 /**
78 79 * 医院的帐号
79 80 */
80   - @TableField(value="OTHER_ACCOUNT")
  81 + @TableField(value = "OTHER_ACCOUNT")
81 82 private String otherAccount;
82 83 /**
83 84 *
84 85 */
85   - @TableField(value="EMPLOYEE_ID")
  86 + @TableField(value = "EMPLOYEE_ID")
86 87 private String employeeId;
87 88 /**
88 89 *
89 90 */
90   - @TableField(value="EXPIR_TIME")
  91 + @TableField(value = "EXPIR_TIME")
91 92 private Date expirTime;
92 93 /**
93 94 *
94 95 */
95   - @TableField(value="LEVEL")
  96 + @TableField(value = "LEVEL")
96 97 private Integer level;
97 98 /**
98 99 *
99 100 */
100   - @TableField(value="AVATAR")
  101 + @TableField(value = "AVATAR")
101 102 private String avatar;
102 103 /**
103 104 *
104 105 */
105   - @TableField(value="WORK_TIME")
  106 + @TableField(value = "WORK_TIME")
106 107 private String workTime;
107 108 /**
108 109 *
109 110 */
110   - @TableField(value="GOOD_AT")
  111 + @TableField(value = "GOOD_AT")
111 112 private String goodAt;
112 113 /**
113 114 *
114 115 */
115   - @TableField(value="CREATE_ID")
  116 + @TableField(value = "CREATE_ID")
116 117 private String createId;
117 118 /**
118 119 *
119 120 */
120   - @TableField(value="CREATE_TIME")
  121 + @TableField(value = "CREATE_TIME")
121 122 private Date createTime;
122 123 /**
123 124 *
124 125 */
125   - @TableField(value="MODIFY_ID")
  126 + @TableField(value = "MODIFY_ID")
126 127 private String modifyId;
127 128 /**
128 129 *
129 130 */
130   - @TableField(value="MODIFY_TIME")
  131 + @TableField(value = "MODIFY_TIME")
131 132 private Date modifyTime;
132 133 /**
133 134 *
134 135 */
135   - @TableField(value="IFDEL")
  136 + @TableField(value = "IFDEL")
136 137 private Integer ifdel;
137 138 /**
138 139 *
139 140 */
140   - @TableField(value="ENABLE")
  141 + @TableField(value = "ENABLE")
141 142 private Integer enable;
142 143  
  144 + /**
  145 + * 测试
  146 + */
  147 + private SysRoles roles;
143 148  
144 149 public String getId() {
145 150 return id;
... ... @@ -331,6 +336,14 @@
331 336  
332 337 public void setEnable(Integer enable) {
333 338 this.enable = enable;
  339 + }
  340 +
  341 + public SysRoles getRoles() {
  342 + return roles;
  343 + }
  344 +
  345 + public void setRoles(SysRoles roles) {
  346 + this.roles = roles;
334 347 }
335 348  
336 349 }
center.manager/src/test/java/center/manager/test/user/WorkTest.java View file @ 5a9b395
... ... @@ -3,6 +3,7 @@
3 3 import org.junit.Test;
4 4 import org.springframework.beans.factory.annotation.Autowired;
5 5  
  6 +import com.lyms.cm.entity.sys.SysRoles;
6 7 import com.lyms.cm.entity.sys.SysUsers;
7 8 import com.lyms.synch.CenterCallback;
8 9 import com.lyms.synch.SyncnCenter;
9 10  
... ... @@ -25,10 +26,10 @@
25 26 public SyncnCenter center;
26 27  
27 28 @Test
28   - public void workTest() {
  29 + public void workTest() throws InterruptedException {
29 30 SyncnModel model = new SyncnModel();
30 31 model.setId(StrUtils.uuid());
31   - model.setModel("user");
  32 + model.setModel("user2");
32 33 model.setMethod("post");
33 34 model.setType(ModelType.ADD.name());
34 35 // 推送数据远程地址
35 36  
36 37  
37 38  
38 39  
39 40  
40 41  
41 42  
42 43  
43 44  
... ... @@ -41,36 +42,63 @@
41 42 user.setName("乱码测试");
42 43 model.setData(user);
43 44  
44   - // 添加任务信息,临时任务信息
  45 + SysRoles roles = new SysRoles();
  46 + roles.setName("roles");
  47 + user.setRoles(roles);
  48 +
45 49 center.buildWork().push(model, new CenterCallback() {
  50 +
46 51 @Override
47 52 public void callBack(Object object) {
48 53 System.out.println("push callBack : " + object);
  54 + tmp();
49 55 }
50 56 });
51 57  
52   - // 获取临时任务信息
53   - // 包含ack 回调方法
  58 + }
  59 +
  60 + @Test
  61 + public void tmp() {
54 62 Work work = center.buildWork();
55 63 try {
56   -
57 64 work.pullTmp(new CenterCallback() {
58 65 @Override
59 66 public void callBack(Object object) {
60   - // 处理实际业务
  67 + System.out.println("pull callBack : " + object);
61 68 SyncnModel model = (SyncnModel) object;
62   - String result = HttpUtils.REMOTE.post(model);
63   - System.out.println(result);
  69 + HttpUtils.REMOTE.post(model);
64 70 }
65 71 });
66 72 } catch (Exception e) {
67 73 e.printStackTrace();
68   - // 业务逻辑错误,反压数据,将会输重写写入队列
  74 + // 异常数据反压
69 75 work.backPressure();
70 76 }
71   - // .ackGet(null);
72   - // System.out.println("callBack: " + get);
  77 + }
73 78  
  79 + @Test
  80 + public void fix() throws InterruptedException {
  81 + // 获取固定任务队列任务
  82 + // 包含ack 回调方法
  83 + while (true) {
  84 + Work work2 = center.buildWork();
  85 + try {
  86 +
  87 + work2.pullFix(new CenterCallback() {
  88 + @Override
  89 + public void callBack(Object object) {
  90 + // remote
  91 + // 处理实际业务
  92 + SyncnModel model = (SyncnModel) object;
  93 + // String result = HttpUtils.REMOTE.post(model);
  94 + System.out.println(model.getModel());
  95 + }
  96 + });// .ackGet(params);// .ackGet(null)
  97 + } catch (Exception e) {
  98 + e.printStackTrace();
  99 + }
  100 + Thread.sleep(3000);
  101 + }
74 102 }
75 103  
76 104 public static void main(String[] args) {
core.sdk/src/main/java/com/lyms/context/AppContext.java View file @ 5a9b395
... ... @@ -8,11 +8,11 @@
8 8 import org.springframework.stereotype.Component;
9 9 import org.springframework.web.context.ServletContextAware;
10 10  
11   -/**
12   - * <li>ClassName:AppContext <br/>
  11 +/**
  12 + * <li>ClassName:AppContext <br/>
13 13 * <li>@Description: TODO(类描述)
14   - * <li>@Date: 2016年11月29日 <br/>
15   - * <li>@author 方承
  14 + * <li>@Date: 2016年11月29日 <br/>
  15 + * <li>@author 方承
16 16 */
17 17 @Component
18 18 public class AppContext implements ServletContextAware {
19 19  
20 20  
21 21  
22 22  
... ... @@ -21,27 +21,26 @@
21 21 * (系统配置信息)- 在 StartupListener 类中加载
22 22 */
23 23 public Map<String, String> config;
24   -
  24 +
25 25 /**
26 26 * 容器全局变量
27 27 */
28 28 private ServletContext servletContext;
29   -
30   -
  29 +
31 30 public Map<String, String> getConfig() {
32 31 return config;
33 32 }
34 33  
35 34 public void setConfig(Map<String, String> config) {
36 35 this.config = config;
37   - //同步更新容器全局变量
  36 + // 同步更新容器全局变量
38 37 Iterator<Map.Entry<String, String>> iter = config.entrySet().iterator();
39   - while (iter.hasNext()){
  38 + while (iter.hasNext()) {
40 39 Map.Entry<String, String> e = iter.next();
41 40 servletContext.setAttribute(e.getKey(), e.getValue());
42 41 }
43 42 }
44   -
  43 +
45 44 @Override
46 45 public void setServletContext(ServletContext servletContext) {
47 46 this.servletContext = servletContext;
... ... @@ -50,7 +49,6 @@
50 49 public ServletContext getServletContext() {
51 50 return servletContext;
52 51 }
53   -
54 52  
55 53 }
core.sdk/src/main/java/com/lyms/synch/LinkedWork.java View file @ 5a9b395
1   -package com.lyms.synch;
2   -
3   -/**
4   - * <li>@ClassName: LinkedWork
5   - * <li>@Description: 任务链表
6   - * <p>
7   - * 主要解决多任务循环执行的过程
8   - * <li>@author maliang
9   - * <li>@date 2017年3月13日
10   - * <li>
11   - */
12   -public class LinkedWork {
13   -
14   -}
core.sdk/src/main/java/com/lyms/synch/SyncnCenter.java View file @ 5a9b395
... ... @@ -10,6 +10,7 @@
10 10 import com.lyms.synch.entity.SyncnModel;
11 11 import com.lyms.synch.queue.SyncnQueue;
12 12 import com.lyms.util.HttpUtils;
  13 +import com.lyms.util.StrUtils;
13 14  
14 15 /**
15 16 * <li>@ClassName: SyncnCenter
... ... @@ -130,6 +131,29 @@
130 131 }
131 132 }
132 133 });
  134 + }
  135 +
  136 + /**
  137 + * <li>@Description:回调方法,调用远端接口
  138 + * <p>
  139 + * 跟 {@link #ackGet(Map)} {@link #ackPost(Map)} 的区别是,后两者需要自己设定callback
  140 + * 地址跟参数,可以指定任意地址
  141 + * <li>@return
  142 + * <li>创建人:maliang
  143 + * <li>创建时间:2017年3月14日
  144 + * <li>修改人:
  145 + * <li>修改时间:
  146 + */
  147 + public String ack(Object object) {
  148 + if (model != null && StringUtils.isNotBlank(model.getRemote())) {
  149 + model.setId(StrUtils.uuid());
  150 + model.setMethod("POST");
  151 + model.setTs(System.currentTimeMillis());
  152 + model.setData(object);
  153 + model.setType(ModelType.ACK.name());
  154 + return HttpUtils.REMOTE.post(model);
  155 + }
  156 + return null;
133 157 }
134 158  
135 159 /**
core.sdk/src/main/java/com/lyms/synch/queue/SyncnQueue.java View file @ 5a9b395
... ... @@ -74,7 +74,7 @@
74 74 * <li>修改时间:
75 75 */
76 76 private Boolean pushFixationWork(SyncnModel model) {
77   - Long tag = template.opsForList().rightPush(FIXATION_WORK, model);
  77 + Long tag = template.opsForList().leftPush(FIXATION_WORK, model);
78 78 return tag >= 1;
79 79 }
80 80  
... ... @@ -82,8 +82,8 @@
82 82 // 添加锁
83 83 try {
84 84 if (Fix_Lock.acquireLock(LOCK_FIXATION_NAME, WAIT_LOCK_TIME)) {
85   - SyncnModel obj = (SyncnModel) template.opsForList().leftPop(FIXATION_WORK);
86   - this.pushFixationWork(obj);
  85 + SyncnModel obj = (SyncnModel) template.opsForList().rightPopAndLeftPush(FIXATION_WORK, FIXATION_WORK);
  86 + // this.pushFixationWork(obj);
87 87 return obj;
88 88 }
89 89 } catch (Exception e) {
... ... @@ -112,7 +112,7 @@
112 112 * <li>修改时间:
113 113 */
114 114 private boolean pushTempWork(SyncnModel model) {
115   - Long tag = template.opsForList().rightPush(TMP_WORK, model);
  115 + Long tag = template.opsForList().leftPush(TMP_WORK, model);
116 116 return tag >= 1;
117 117 }
118 118  
... ... @@ -128,7 +128,7 @@
128 128  
129 129 try {
130 130 if (Tmp_Lock.acquireLock(LOCK_TMP_NAME, WAIT_LOCK_TIME)) {
131   - Serializable object = template.opsForList().leftPop(TMP_WORK);
  131 + Serializable object = template.opsForList().rightPop(TMP_WORK);
132 132 return object != null ? (SyncnModel) object : null;
133 133 }
134 134 } catch (Exception e) {