Skip to content

Commit 493faa2

Browse files
committed
Server: login接口新增defaults:{},为每个请求JSON最外层新增默认字段
1 parent 1f7f0fd commit 493faa2

File tree

2 files changed

+29
-6
lines changed

2 files changed

+29
-6
lines changed

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/server/Controller.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,7 @@ private zuo.biao.apijson.JSONRequest newVerifyRequest(int type, String phone, St
360360

361361
public static final String LOGIN = "login";
362362
public static final String REMEMBER = "remember";
363+
public static final String DEFAULTS = "defaults";
363364

364365
public static final int LOGIN_TYPE_PASSWORD = 0;//密码登录
365366
public static final int LOGIN_TYPE_VERIFY = 1;//验证码登录
@@ -382,9 +383,10 @@ public JSONObject login(@RequestBody String request, HttpSession session) {
382383
boolean isPassword;
383384
String phone;
384385
String password;
385-
boolean remember;
386386
int version;
387387
Boolean format;
388+
boolean remember;
389+
JSONObject defaults;
388390
try {
389391
requestObject = DemoParser.parseRequest(request);
390392

@@ -406,12 +408,14 @@ public JSONObject login(@RequestBody String request, HttpSession session) {
406408
}
407409
}
408410

409-
remember = requestObject.getBooleanValue(REMEMBER);
410411
version = requestObject.getIntValue(VERSION);
411412
format = requestObject.getBoolean(FORMAT);
412-
requestObject.remove(REMEMBER);
413+
remember = requestObject.getBooleanValue(REMEMBER);
414+
defaults = requestObject.getJSONObject(DEFAULTS); //默认加到每个请求最外层的字段
413415
requestObject.remove(VERSION);
414416
requestObject.remove(FORMAT);
417+
requestObject.remove(REMEMBER);
418+
requestObject.remove(DEFAULTS);
415419
} catch (Exception e) {
416420
return DemoParser.extendErrorResult(requestObject, e);
417421
}
@@ -479,12 +483,14 @@ public JSONObject login(@RequestBody String request, HttpSession session) {
479483
session.setAttribute(TYPE, isPassword ? LOGIN_TYPE_PASSWORD : LOGIN_TYPE_VERIFY); //登录方式
480484
session.setAttribute(USER_, user); //用户
481485
session.setAttribute(PRIVACY_, privacy); //用户隐私信息
482-
session.setAttribute(REMEMBER, remember); //记住登录
483486
session.setAttribute(VERSION, version); //全局默认版本号
484487
session.setAttribute(FORMAT, format); //全局默认格式化配置
488+
session.setAttribute(REMEMBER, remember); //是否记住登录
489+
session.setAttribute(DEFAULTS, defaults); //给每个请求JSON最外层加的字段
485490
session.setMaxInactiveInterval(60*60*24*(remember ? 7 : 1)); //设置session过期时间
486491

487492
response.put(REMEMBER, remember);
493+
response.put(DEFAULTS, defaults);
488494
return response;
489495
}
490496

APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/server/DemoParser.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414

1515
package apijson.demo.server;
1616

17+
import java.util.Map;
18+
import java.util.Set;
19+
1720
import javax.servlet.http.HttpSession;
1821

1922
import com.alibaba.fastjson.JSONObject;
@@ -67,8 +70,22 @@ public DemoSQLExecutor createSQLExecutor() {
6770
@Override
6871
public JSONObject parseResponse(JSONObject request) {
6972
//补充format
70-
if (session != null && request != null && request.get(JSONRequest.KEY_FORMAT) == null) {
71-
request.put(JSONRequest.KEY_FORMAT, session.getAttribute(JSONRequest.KEY_FORMAT));
73+
if (session != null && request != null) {
74+
if (request.get(JSONRequest.KEY_FORMAT) == null) {
75+
request.put(JSONRequest.KEY_FORMAT, session.getAttribute(JSONRequest.KEY_FORMAT));
76+
}
77+
if (request.get(Controller.DEFAULTS) == null) {
78+
JSONObject defaults = (JSONObject) session.getAttribute(Controller.DEFAULTS);
79+
Set<Map.Entry<String, Object>> set = defaults == null ? null : defaults.entrySet();
80+
81+
if (set != null) {
82+
for (Map.Entry<String, Object> e : set) {
83+
if (e != null && request.get(e.getKey()) == null) {
84+
request.put(e.getKey(), e.getValue());
85+
}
86+
}
87+
}
88+
}
7289
}
7390
return super.parseResponse(request);
7491
}

0 commit comments

Comments
 (0)