Skip to content

Commit f1692e7

Browse files
committed
java sdk
1 parent aaf21ee commit f1692e7

2 files changed

Lines changed: 74 additions & 92 deletions

File tree

src/main/java/com/javabaas/shell/commands/ObjectCommands.java

Lines changed: 72 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package com.javabaas.shell.commands;
22

33
import com.fasterxml.jackson.core.JsonProcessingException;
4-
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.javabaas.javasdk.JBField;
55
import com.javabaas.javasdk.JBObject;
6+
import com.javabaas.javasdk.JBQuery;
67
import com.javabaas.javasdk.JBUtils;
78
import com.javabaas.shell.common.CommandContext;
8-
import com.javabaas.shell.entity.JBSField;
9-
import com.javabaas.shell.entity.JBSObject;
10-
import com.javabaas.shell.entity.JBSimpleResult;
119
import com.javabaas.shell.util.DateUtil;
1210
import com.javabaas.shell.util.FieldUtil;
1311
import com.javabaas.shell.util.PropertiesUtil;
@@ -26,7 +24,6 @@
2624
import org.springframework.web.client.RestTemplate;
2725

2826
import javax.annotation.Resource;
29-
import java.util.HashMap;
3027
import java.util.LinkedList;
3128
import java.util.List;
3229
import java.util.Map;
@@ -58,7 +55,8 @@ public void add(@CliOption(key = {""}, mandatory = true, help = "Object by json.
5855
String className = context.getCurrentClass();
5956
try {
6057
Map<String, Object> map = JBUtils.readValue(string, Map.class);
61-
JBObject object = JBUtils.parseObjectFromMap(map);
58+
JBObject object = new JBObject(className);
59+
JBUtils.copyPropertiesFromMapToJBObject(object, map);
6260
object.save();
6361
System.out.println(Ansi.ansi().fg(Ansi.Color.GREEN).a("Object added.").reset());
6462
} catch (HttpClientErrorException e) {
@@ -75,11 +73,12 @@ public void update(@CliOption(key = {""}, mandatory = true, help = "Input") fina
7573
System.out.println(Ansi.ansi().fg(Ansi.Color.RED).a("No object!").reset());
7674
return;
7775
}
78-
String id = inputs[0];
79-
String object = inputs[1];
80-
String className = context.getCurrentClass();
8176
try {
82-
rest.put(properties.getHost() + "object/" + className + "/" + id, object);
77+
String id = inputs[0];
78+
String className = context.getCurrentClass();
79+
JBObject object = JBObject.createWithOutData(className, id);
80+
JBUtils.copyPropertiesFromMapToJBObject(object, JBUtils.readValue(inputs[1], Map.class));
81+
object.save();
8382
System.out.println(Ansi.ansi().fg(Ansi.Color.GREEN).a("Object updated.").reset());
8483
} catch (HttpClientErrorException e) {
8584
System.out.println(Ansi.ansi().fg(Ansi.Color.RED).a(e.getResponseBodyAsString()).reset());
@@ -91,29 +90,27 @@ public void get(@CliOption(key = {""}, mandatory = true, help = "Object id.") fi
9190
throws JsonProcessingException {
9291
context.cancelDoubleCheck();
9392
String className = context.getCurrentClass();
94-
String result = rest.getForObject(properties.getHost() + "object/" + className + "/" + id, String.class);
95-
System.out.println(result);
93+
JBQuery query = new JBQuery(className);
94+
JBObject object = query.get(id);
95+
System.out.println(object);
9696
}
9797

9898
@CliCommand(value = "list", help = "Show objects in class.")
9999
public void list(@CliOption(key = {""}, mandatory = false, help = "Query condition.") final String where,
100100
@CliOption(key = {"skip"}, mandatory = false, unspecifiedDefaultValue = "0", specifiedDefaultValue = "0") final String skip)
101101
throws JsonProcessingException {
102102
context.cancelDoubleCheck();
103-
ObjectMapper mapper = new ObjectMapper();
104-
String className = context.getCurrentClass();
105-
String url = properties.getHost() + "object/" + className + "?where={where}";
106-
Map<String, Object> params = new HashMap<>();
107-
params.put("where", where);
108-
params.put("skip", skip);
109-
if (skip != null) {
110-
params.put("skip", skip);
111-
}
112103
try {
113-
JBSObject[] result = rest.getForObject(url, JBSObject[].class, params);
114-
for (JBSObject baasObject : result) {
115-
System.out.println(mapper.writeValueAsString(baasObject));
104+
String className = context.getCurrentClass();
105+
JBQuery query = new JBQuery(className);
106+
if (!JBUtils.isEmpty(skip)) {
107+
query.setSkip(Integer.parseInt(skip));
108+
}
109+
if (!JBUtils.isEmpty(where)) {
110+
query.setWhereSting(where);
116111
}
112+
List<JBObject> list = query.find();
113+
list.forEach(object -> System.out.println(object));
117114
} catch (HttpClientErrorException e) {
118115
System.out.println(Ansi.ansi().fg(Ansi.Color.RED).a(e.getResponseBodyAsString()).reset());
119116
}
@@ -128,19 +125,23 @@ public void table(@CliOption(key = {""}, mandatory = false, help = "Query condit
128125
@CliOption(key = {"s"}, mandatory = false, unspecifiedDefaultValue = "0", specifiedDefaultValue = "1") final String single)
129126
throws JsonProcessingException {
130127
context.cancelDoubleCheck();
131-
String className = context.getCurrentClass();
132-
String url = properties.getHost() + "object/" + className + "?where={where}&skip={skip}";
133-
Map<String, Object> params = new HashMap<>();
134-
params.put("where", where);
135-
params.put("skip", skip);
136128
try {
129+
String className = context.getCurrentClass();
130+
JBQuery query = new JBQuery(className);
131+
if (!JBUtils.isEmpty(skip)) {
132+
query.setSkip(Integer.parseInt(skip));
133+
}
134+
if (!JBUtils.isEmpty(where)) {
135+
query.setWhereSting(where);
136+
}
137+
List<JBObject> list = query.find();
138+
137139
//创建表格
138140
V2_AsciiTable at = new V2_AsciiTable();
139141
at.addRule();
140142
//控制列宽度
141143
WidthFixedColumns width = new WidthFixedColumns();
142-
JBSObject[] result = rest.getForObject(url, JBSObject[].class, params);
143-
JBSField[] fields = rest.getForObject(properties.getHost() + "master/clazz/" + className + "/field", JBSField[].class);
144+
List<JBField> fields = JBField.list(className);
144145
//整理表头
145146
List<Object> headers = new LinkedList<>();
146147
List<Object> types = new LinkedList<>();
@@ -152,76 +153,57 @@ public void table(@CliOption(key = {""}, mandatory = false, help = "Query condit
152153
headers.add("createdAt");
153154
types.add("<DATE>");
154155
width.add(21);
155-
headers.add("updatedAt");
156-
types.add("<DATE>");
157-
width.add(21);
158-
}
159-
if (plat.equals("1")) {
160-
//显示平台
161-
headers.add("createdPlat");
162-
types.add("<STRING>");
163-
width.add(13);
164-
headers.add("updatedPlat");
165-
types.add("<STRING>");
166-
width.add(13);
167-
}
168-
if (acl.equals("1")) {
169-
headers.add("ACL");
170-
types.add("<ACL>");
171-
width.add(20);
156+
// headers.add("updatedAt");
157+
// types.add("<DATE>");
158+
// width.add(21);
172159
}
160+
// if (plat.equals("1")) {
161+
// //显示平台
162+
// headers.add("createdPlat");
163+
// types.add("<STRING>");
164+
// width.add(13);
165+
// headers.add("updatedPlat");
166+
// types.add("<STRING>");
167+
// width.add(13);
168+
// }
169+
// if (acl.equals("1")) {
170+
// headers.add("ACL");
171+
// types.add("<ACL>");
172+
// width.add(20);
173+
// }
173174
//自定义字段
174-
for (JBSField field : fields) {
175+
fields.forEach(field -> {
175176
headers.add(field.getName());
176177
types.add(FieldUtil.getFieldType(field.getType()));
177178
width.add(20);
178-
}
179+
});
179180
at.addRow(headers.toArray());
180181
at.addRow(types.toArray());
181182
at.addStrongRule();
182-
for (JBSObject baasObject : result) {
183+
list.forEach(baasObject -> {
183184
List<Object> cols = new LinkedList<>();
184-
cols.add(baasObject.get("_id"));
185-
for (String key : baasObject.keySet()) {
186-
Object value = baasObject.get(key);
187-
if (value != null) {
188-
switch (key) {
189-
case "createdAt":
190-
case "updatedAt":
191-
if (time.equals("1")) {
192-
//显示时间
193-
cols.add(DateUtil.format(Long.valueOf(value.toString())));
194-
}
195-
break;
196-
case "createdPlat":
197-
case "updatedPlat":
198-
if (plat.equals("1")) {
199-
//显示平台
200-
cols.add(value);
201-
}
202-
break;
203-
case "getACL":
204-
if (acl.equals("1")) {
205-
//显示ACL
206-
cols.add(value);
207-
}
208-
break;
209-
}
210-
} else {
211-
cols.add("");
212-
}
185+
cols.add(baasObject.getObjectId());
186+
if (time.equals("1")) {
187+
cols.add(DateUtil.format(Long.valueOf(baasObject.getCreatedAt())));
213188
}
214-
for (JBSField field : fields) {
189+
if (plat.equals("1")) {
190+
cols.add("");
191+
}
192+
// if (acl.equals("1")) {
193+
// cols.add(baasObject.getAcl());
194+
// }
195+
196+
fields.forEach(field -> {
215197
Object value = baasObject.get(field.getName());
216198
if (value == null) {
217199
cols.add("");
218200
} else {
219201
cols.add(value);
220202
}
221-
}
203+
});
222204
at.addRow(cols.toArray());
223205
at.addRule();
224-
}
206+
});
225207
AsciiTableRenderer rend = new AsciiTableRenderer();
226208
rend.setTheme(V2_E_TableThemes.UTF_LIGHT.get());
227209
rend.setWidth(width);
@@ -248,7 +230,8 @@ public void delete(@CliOption(key = {""}, mandatory = true, help = "Object id.")
248230
context.cancelDoubleCheck();
249231
String className = context.getCurrentClass();
250232
try {
251-
rest.delete(properties.getHost() + "object/" + className + "/" + id);
233+
JBObject object = JBObject.createWithOutData(className, id);
234+
object.delete();
252235
System.out.println(Ansi.ansi().fg(Ansi.Color.GREEN).a("Object deleted.").reset());
253236
} catch (HttpClientErrorException e) {
254237
System.out.println(Ansi.ansi().fg(Ansi.Color.RED).a(e.getResponseBodyAsString()).reset());
@@ -270,13 +253,12 @@ public void url() {
270253
public void count(@CliOption(key = {""}, mandatory = false, help = "Query condition.") final String where)
271254
throws JsonProcessingException {
272255
context.cancelDoubleCheck();
273-
String className = context.getCurrentClass();
274-
String url = properties.getHost() + "object/" + className + "/count?where={where}";
275-
Map<String, Object> params = new HashMap<>();
276-
params.put("where", where);
277256
try {
278-
JBSimpleResult result = rest.getForObject(url, JBSimpleResult.class, params);
279-
System.out.println(result.getData("count"));
257+
String className = context.getCurrentClass();
258+
JBQuery query = new JBQuery(className);
259+
query.setWhereSting(where);
260+
int count = query.count();
261+
System.out.println(count);
280262
} catch (HttpClientErrorException e) {
281263
System.out.println(Ansi.ansi().fg(Ansi.Color.RED).a(e.getResponseBodyAsString()).reset());
282264
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
host=http://139.198.5.252:9000/api/
2-
#host=http://127.0.0.1:9000/api/
1+
#host=http://139.198.5.252:9000/api/
2+
host=http://127.0.0.1:9000/api/
33
key=JavaBaas

0 commit comments

Comments
 (0)