|

楼主 |
发表于 2016-10-7 10:35:16
|
显示全部楼层
下面就是具体的实现代码,首先是baas服务代码:
public static JSONObject myLogin(JSONObject params, ActionContext context) throws SQLException, NamingException {
String DATASOURCE = "your datasource name"; //这里的your datasource name,改成自己的datasource
Connection conn = context.getConnection(DATASOURCE);
// 获取参数
Object columns = params.get("columns");
Integer limit = params.getInteger("limit");
Integer offset = params.getInteger("offset");
String fPhoneNumber = params.getString("fPhoneNumber");//手机号
String fPassword = params.getString("fPassword");//密码,这参数大家也可以修改,只要前后端对应就行。
List<Object> sqlParams = new ArrayList<Object>();
sqlParams.add(fPhoneNumber);
sqlParams.add(fPassword);
JSONObject ret = new JSONObject();
Table table = null;
String querysql = "select * from userTableName where fPhoneNumber = ? and fPassword = ? "; //这里的userTableName 改成自己的表名
try {
table = DataUtils.queryData(conn, querysql, sqlParams, columns, offset, limit);
JSONObject tableJson = Transform.tableToJson(table);
JSONArray rows = (JSONArray) tableJson.get("rows");
JSONObject rowJson = (JSONObject) rows.get(0); //一般符合条件的记录只应该有一条,所以只取第一条
JSONObject fIDJson = (JSONObject) rowJson.get("fID"); //取什么字段可以自己修改
String fID = fIDJson.getString("value");
String transSql = " update userTableName set fLastTime = now() ";//这里的userTableName 改成自己的表名
transSql += " where fID = '";
transSql += fID ;
transSql += "'"; //这段sql大家可以修改成自己的版本,以实现登录后想做的动作
java.sql.PreparedStatement pstmt = conn.prepareStatement(transSql);
if (pstmt.executeUpdate() == 1){
ret.put("loginStatus", "0"); //登录成功
ret.put("tableData", Transform.tableToJson(table)); //返回复合结果,不在只是简单的表记录,大家也可以进行扩充
//System.out.println("ret==="+ret);
return ret;
}else{
ret.put("loginStatus", "-1"); // 登录失败
ret.put("errorTxt", "更新登录状态失败!");
return ret;
}
}catch(Exception e){
ret.put("loginStatus", "-100"); // 登录失败
ret.put("errorTxt", e.toString());
return ret;
} finally {
conn.close();
}
}
|
|