|
楼主 |
发表于 2017-12-26 10:15:07
|
显示全部楼层
在js中,首先规定一个格式字符串:
- //取当前日期,并转换为规定格式的字符串
- var date = justep.Date.toString(new Date(), "yyyyMMdd");
- //将当前日期字符串和PAY拼接成一个新的字符串
- var key = "PAY" + date;
复制代码
向服务器端发送请求:
- //向服务端发送数据
- justep.Baas.sendRequest({
- //填写Java文件所在路径
- "url" : "/psd/proCC",
- //填写action名称
- "action" : "mNextSeqFormat",
- //异步
- "async" : false,
- //参数:json格式
- "params" : {key : key},
- //成功
- "success" : function(jobj) {
- debugger;
- paycode = jobj.seq
- alert(paycode);
- }
- });
复制代码
将参数传到baas层,
在baas层,自定义一个action,用于实现一个生成流水号的java方法:- //生成規定格式的流水號
- public static JSONObject mNextSeqFormat(JSONObject params, ActionContext context) throws java.sql.SQLException, NamingException {
- String key = params.getString("key");
- Connection conn = context.getConnection("PSDPT");
- String sql = "";
- //根據頁面傳過來的key值,查詢數據庫中是否有符合條件的V值
- sql = "select v from PSDX5USER.SA_KVSEQUENCE where k = '" + key + "' ";
- //執行sql
- Object obj = DataUtils.getValueBySQL(conn, sql, null);
- //判斷obj是否等於空,如果不等於空,那value=v,否則value=0
- String value = obj != null ? obj.toString() : "0";
- //判斷,如果value不等於0
- if (!value.equals("0")) {
- //說明數據庫中有值,則對數據庫中V進行V+1的修改
- sql = "update PSDX5USER.SA_KVSEQUENCE set v = v+1 where k = '" + key + "'";
- } else {
- //否則,將插入一條新的記錄,k=key,v=1
- sql = "insert into PSDX5USER.SA_KVSEQUENCE (k,v) values('" + key + "', 1)";
- }
- //執行sql語句
- Statement st = conn.createStatement();
- st.executeUpdate(sql);
- conn.commit();
- //字符串格式化
- String str = String.format("%7d", Integer.parseInt(value)).replace(" ", "0");
-
- JSONObject jobj = new JSONObject();
- jobj.put("seq", key + str);
- System.out.println(key + str);
- return jobj;
- }
复制代码
在回调函数中,取到baas服务return回来的值,赋给对应关系
|
|