Skip to content

Commit 359cf56

Browse files
committed
JBUser增加currentUser
JBObject增加query(解决findAndModify的问题)
1 parent d15f292 commit 359cf56

6 files changed

Lines changed: 34 additions & 18 deletions

File tree

src/main/java/com/javabaas/javasdk/JBConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ public void removeAppConfig() {
3636
this.masterKey = null;
3737
this.key = null;
3838
this.appId = null;
39-
}
39+
}
4040

4141
private JBConfig() {}
4242

4343
private static JBConfig INSTANCE = new JBConfig();
4444

4545
public static JBConfig getInstance() {
4646
return INSTANCE;
47-
}
47+
}
4848

4949
private void initConfig(String remote, String appId, String key, String masterKey, String adminKey) {
5050
if (!JBUtils.isEmpty(remote)) {

src/main/java/com/javabaas/javasdk/JBHttpClient.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ private Request.Builder getRequestBuilder() {
113113
if (!JBUtils.isEmpty(adminKey)) {
114114
builder.addHeader("JB-AdminSign", getSign(adminKey, timestampStr, nonce));
115115
}
116+
if (JBUser.getCurrentUser() != null && !JBUtils.isEmpty(JBUser.getCurrentUser().getObjectId())) {
117+
builder.addHeader("JB-SessionToken", JBUser.getCurrentUser().getObjectId());
118+
}
116119
return builder;
117120
}
118121

src/main/java/com/javabaas/javasdk/JBObject.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class JBObject {
2525
ReadWriteLock lock = new ReentrantReadWriteLock();
2626

2727
private volatile boolean fetchWhenSave = false;
28+
private JBQuery query;
2829

2930
@JsonInclude(JsonInclude.Include.NON_NULL)
3031
protected String className;
@@ -70,6 +71,10 @@ public void setCreatedAt(String createdAt) {
7071
this.createdAt = createdAt;
7172
}
7273

74+
public void setQuery(JBQuery query) {
75+
this.query = query;
76+
}
77+
7378
transient protected JBAcl acl;
7479

7580
Map<String, Object> serverData;
@@ -322,6 +327,10 @@ private void saveObjectToJavaBaas(final boolean sync, final JBSaveCallback callb
322327
}
323328
JBHttpParams jbHttpParams = new JBHttpParams();
324329
jbHttpParams.put("fetch", this.fetchWhenSave);
330+
if (this.query != null && this.query.getWhere() != null) {
331+
this.query.assembleParameters();
332+
jbHttpParams.put("where", JBUtils.writeValueAsString(this.query.getWhere()));
333+
}
325334
Map<String, Object> body = getObjectBody();
326335
JBHttpClient.INSTANCE().sendRequest(urlPath, method, jbHttpParams, body, sync, new JBObjectCallback() {
327336
@Override

src/main/java/com/javabaas/javasdk/JBQuery.java

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
* Created by zangyilin on 2017/8/9.
1010
*/
1111
public class JBQuery<T extends JBObject> {
12-
private Class<T> clazz;
1312
private String className;
1413
private String whereSting;
1514
private Boolean isRunning;
@@ -19,14 +18,6 @@ private JBQuery() {
1918
super();
2019
}
2120

22-
public Class<T> getClazz() {
23-
return clazz;
24-
}
25-
26-
public void setClazz(Class<T> clazz) {
27-
this.clazz = clazz;
28-
}
29-
3021
public String getClassName() {
3122
return className;
3223
}
@@ -60,6 +51,7 @@ public void setSelectedKeys(Set<String> selectedKeys) {
6051
conditions.setSelectedKeys(selectedKeys);
6152
}
6253

54+
// 这个只是针对传递过来json字符串,对于JBQueryConditions的where不适用
6355
public String getWhereSting() {
6456
return whereSting;
6557
}
@@ -85,15 +77,18 @@ public Map<String, List<JBQueryOperation>> getWhere() {
8577
return conditions.getWhere();
8678
}
8779

88-
public JBQuery(String clazzName, Class<T> clazz) {
89-
JBUtils.checkClassName(clazzName);
90-
this.className = clazzName;
91-
this.clazz = clazz;
80+
public JBQuery(String className) {
81+
JBUtils.checkClassName(className);
82+
this.className = className;
9283
this.conditions = new JBQueryConditions();
9384
}
9485

95-
public JBQuery(String className) {
96-
this(className, null);
86+
public static JBQuery createQuery(JBObject object) {
87+
if (!JBUtils.isEmpty(object.getClassName())) {
88+
return new JBQuery(object.getClassName());
89+
} else {
90+
return null;
91+
}
9792
}
9893

9994
public static <T extends JBObject> JBQuery<T> getQuery(String className) {

src/main/java/com/javabaas/javasdk/JBUser.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ public class JBUser extends JBObject {
1818
private static final String PHONE = "phone";
1919
private static final String CODE = "code";
2020
private static final String AUTH = "auth";
21+
private static JBUser currentUser;
22+
23+
public static JBUser getCurrentUser() {
24+
return currentUser;
25+
}
26+
27+
public static void updateCurrentUser(JBUser user) {
28+
JBUser.currentUser = user;
29+
}
2130

2231
public String getSessionToken() {
2332
return (String) get(SESSIONTOKEN);

src/main/java/com/javabaas/javasdk/JBUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public static void copyPropertiesFromMapToJBObject(JBObject object, Map<String,
153153
public static void updatePropertyFromMap(JBObject parent, String key, Map<String, Object> map) {
154154
String objectId = (String) map.get(JBObject.OBJECT_ID);
155155
String type = (String) map.get(TYPE_TAG);
156-
if (JBUtils.isEmpty(objectId) && JBUtils.isEmpty(type)) {
156+
if (JBUtils.isEmpty(type)) {
157157
parent.put(key, map);
158158
return;
159159
}

0 commit comments

Comments
 (0)