Atitit.atiDataStoreService   v2 新特性

1.1. V1  基础实现1

1.2. V2  增加了对  $uuid  $cur_uid参数的支持1

1.3. 增加了fld fun的支持1

2. fld fun1

2.1. Invoke   简化版全局函数txt2html1

2.2. ---------atiDataStoreService   .js1

2.3. dslUtil2

2.4. jAva3

3. code4

1.1. V1  基础实现

1.2. V2  增加了对  $uuid  $cur_uid参数的支持

1.3. 增加了fld fun的支持

2. fld fun

2.1. Invoke   简化版全局函数txt2html

cmsPhone4jobusImp/edit.html

<textarea id="copy_content" name="copy_content" style="width:100%; height: 300px;" fun="txt2html">工作日期

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

2.2. ---------atiDataStoreService   .js

function merge(metaData,merge_callback_fun)

{

var mp=$("form").serialize();

var fldAppFun=dslUtil.getFldAppFun(  mp);

mp=mp+"&$method=com.attilax.urldsl.UrlDsl2SqlStoreService.exe&$callback=page_load_callback&$mod=userMod&$view_store_path=com/attilax/order&$op=insert&"+metaData+"&$fldAppFun="+encodeURIComponent(fldAppFun);

//alert("get post mp:"+mp);

HRE.method="post";

try{

if( arguments.length==1)

HRE.exe(mp,merge_callback);

else

HRE.exe(mp,merge_callback_fun);

}catch(e)

{

showErr(e);

}

}

2.3. dslUtil

var dslUtil={};

dslUtil.getFldAppFun=function(url)

{

var json={};

var keys=urlUtil.getKeys(url);

for(e in keys )

{

var key=keys[e];

key=decodeURIComponent(key);

varkey_for_jq=escapeJquery(key);

//alert(key_for_jq);

var fun=$("#"+key_for_jq).attr("fun");

if(fun)

json[key]=fun;

}

return  JSON.stringify(json);

};

2.4. jAva

*/

public class UrlDsl2SqlStoreService extends Dsl2sqlService {

public static Map<String, Function> scriptMapper = Maps.newLinkedHashMap();

{

scriptMapper.put("txt2html", (txt) -> {

return htmlx.txt2html(txt.toString());

});

}

DslUtil.appFldFun(m);

public class DslUtil {

public static void appFldFun(Map m) {

if(m.get("$fldAppFun" )==null || m.get("$fldAppFun" ).toString().trim().length()==0)

return;

String json_str=(String) m.get("$fldAppFun");

Map fldFunMap=AtiJson.fromJson(json_str);

Set<String> st = fldFunMap.keySet();

for (String k : st) {

String script_tag=(String) fldFunMap.get(k);

Function fun=UrlDsl2SqlStoreService.scriptMapper.get(script_tag);

Object v=fun.apply(m.get(k));

m.put(k, v);

}

}

}

3.  code

package com.attilax.urldsl;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

import java.util.function.Function;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.StringUtils;

import com.attilax.anno.Inj;

import com.attilax.html.htmlx;

import com.attilax.io.filex;

import com.attilax.ioc.IocXq214;

import com.attilax.lang.Global;

import com.attilax.lang.MapX;

import com.attilax.net.requestImp;

import com.attilax.sql.Dsl2sqlService;

import com.attilax.sql.SqlService;

import com.attilax.store.OrmStoreService;

import com.attilax.token.TokenService;

import com.attilax.user.NotLoginEx;

import com.attilax.web.ReqX;

import com.google.common.collect.Maps;

import com.google.inject.Inject;

/**

* q317 com.attilax.urldsl.UrlDsl2SqlStoreService

*

* @author Administrator

*

*/

public class UrlDsl2SqlStoreService extends Dsl2sqlService {

public static Map<String, Function> scriptMapper = Maps.newLinkedHashMap();

{

scriptMapper.put("txt2html", (txt) -> {

return htmlx.txt2html(txt.toString());

});

}

@Inject

SqlService sqlSrv;

@Inject

Dsl2sqlService d2sSrv;

@Inject

TokenService tkSrv;

public static void main(String[] args) {

requestImp m = new requestImp();

m.put("$tb", "wxb_good_copy");

// m.put("$tabletype", "view");

// m.put("$view_store_path","com/attilax/order");

m.put("$op", "i");

m.put("copy_title", "copy_title_2005");

Global.req.set(m);

System.setProperty("apptype", "jobus");

// OrmStoreService ormSvr = IocXq214.getBean(OrmStoreService.class);

UrlDsl2SqlStoreService srv = IocXq214

.getBean(UrlDsl2SqlStoreService.class);

// Map m=new HashMap();

System.out.println(srv.exe());

System.out.println("--f");

}

public Object exe() {

HttpServletRequest req = Global.req.get();

tkSrv.setModule(req.getParameter("$utype") + "Mod");

Map m = ReqX.toMap(req);

if (m.get("$table") == null)

m.put("$table", m.get("$tb"));

if (m.get("$op").equals("i"))

m.put("$op", "insert");

Set<String> st = m.keySet();

for (String k : st) {

if (m.get(k).equals("$cur_uid")) {

String getuid = tkSrv.getuid(req);

if (StringUtils.isEmpty(getuid))

throw new NotLoginEx("NotLoginEx");

m.put(k, getuid);

}

if(m.get(k).toString().equals("$uuid"))

{

m.put(k,filex.getUUidName());

}

}

DslUtil.appFldFun(m);

String sql = d2sSrv.dsl2sql(m);

if (StringUtils.isEmpty(sql))

throw new RuntimeException(

" cant convert sql str rzt is null or empty");

return sqlSrv.exe(sql);

}

}

Atitit.atiDataStoreService   v2 新特性的更多相关文章

  1. atitit.atiLinq v2新特性attilax大总结 q326

    atitit.atiLinq v2新特性attilax大总结 q326 1. V3规划 (分开sql2obj sql2sql sql2xml)1 2. V2新特性 Url linq的定义1 3. V1 ...

  2. Atitit. Toast alert loading js控件   atiToast v2新特性

    Atitit. Toast alert loading js控件   atiToast v2新特性 1. 连续多个txt追加的原理 var txt = document.createElement(& ...

  3. Atitit  atiMail atiDns新特性 v2  q39

    Atitit  atiMail atiDns新特性 v2  q39 V1  实现了基础的功能 V2  重构..使用自然语言的方式 c.According_to_the_domain_name(&quo ...

  4. Atitit opencv版本新特性attilax总结

    Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...

  5. Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCompc dtS312 s2018 s3f doc compc\Atitit PathUtil 工具新特性新版本 v8 s312.docx s2018 s3f doc compc\Atitit 操作日

    Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCompc ...

  6. Atitit.cateService分类管理新特性与设计文档说明v1

    Atitit.cateService分类管理新特性与设计文档说明v1 1. V2 新特性规划1 2. 分类管理1 3. 分类增加与修改维护2 4. Js控件分类数据绑定2 1. V2 新特性规划 增加 ...

  7. Atitit.aticmd v4  新特性q39 添加定时器释放功能

    Atitit.aticmd v4  新特性q39 添加定时器释放功能 V1  实现兰cmd V2 标准输入,标准输出,标准错误与重新定向 V3  stdout stderr统一重新定向 V4  添加定 ...

  8. Atitit.linux 内核 新特性 新功能

    Atitit.linux 内核 新特性 新功能 1.  Linux 3.2内核新特性 2012-02-12 22:41:471 1.1. EXT4:支持更大的块2 1.2. BTRFS:更快的数据清理 ...

  9. Atitit.jquery 版本号新特性attilax总结

    Atitit.jquery 版本号新特性attilax总结 1. Jq1.4 1 2. 1.5 1 3. 1.6 3 4. Jq1.7 3 ⒉提升了事件委派时的性能有了大幅度的提升.尤其是在ie7下: ...

随机推荐

  1. Android技巧:查看当前界面对应的活动

    常常接手别人的android代码,非常头疼不知道界面所对应的活动是哪一个.下面所说的方法可以完美解决. 新建一个BaseActivity类,继承自AppCompatActivity,并重写onCrea ...

  2. POJ 3709 K-Anonymous Sequence(斜率优化DP)

    [题目链接] http://poj.org/problem?id=3709 [题目大意] 给出一个长度为n个非严格单调递增数列,每次操作可以使得其中任意一项减一, 问现在使得数列中每项数相同的数的数量 ...

  3. JDBC 操作数据库

    jdbc: package org.java.dao; import java.sql.Connection; import java.sql.DriverManager; import java.s ...

  4. Delphi 自动检测U盘插入、拔出及获取U盘盘符!

    http://qqhack8.blog.163.com/blog/static/1141479852012102133475/     Delphi 自动检测U盘插入.拔出及获取U盘盘符! u盘的 插 ...

  5. jquery ui autocomplete

    //条码录入,自动完成功能 function addAutoComplete() { $('#txt_spuNo').autocomplete({ autoFocus: true, source: f ...

  6. asp.mvc展示model

    1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model 主要负责维持数据状态,将数据从数据存 ...

  7. unity3d开发app的框架

    unity3d开发app的框架,开源地址 https://coding.net/u/liuhaili/p/U3DApp/git 希望能和有相同兴趣的朋友一起完善 打开Scene下的MainUI场景 目 ...

  8. unity 的视锥剔除和遮挡剔除

    Regular frustum culling only renders objects within the camera’s view. This is automatic and always ...

  9. 【LeetCode】Find Minimum in Rotated Sorted Array 解题报告

    今天看到LeetCode OJ题目下方多了"Show Tags"功能.我觉着挺好,方便刚開始学习的人分类练习.同一时候也是解题时的思路提示. [题目] Suppose a sort ...

  10. docker实战——构建Jekyll

    构建第一个应用 要构建的第一个应用是Jekyll框架的自定义网站.我们会构建一下两个镜像. 一个镜像安装Jekyll以及其他用于构建Jekyll网站的必要的软件包. 一个镜像通过Apache来让Jek ...