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. duboo服务使用thrift协议 + MQ

    写一篇博客来记录从 Python 转型到 Java 的学习成果.整体架构: rpc: dubbo + thrift idl: thrift registeration: zookeeper MQ: k ...

  2. Annotation的语法和使用

    http://blog.csdn.net/cdl2008sky/article/details/6265742 (1) .<context:component-scan base-package ...

  3. [Contest20180328]coin

    转化一下,相当于从$0$跳到$M$,每一步跳跃距离为$v_i$中的某个,每次跳跃距离不大于上一次,统计方案数 用$f_{i,j,k}$表示跳到$i$,第一步跳$v_j$,最后一步跳$\geq v_k$ ...

  4. Oracle Linux 7.3下载与 dtrace安装

    https://docs.oracle.com/cd/E52668_01/E86280/html/section_edm_dvp_hz.html http://www.oracle.com/techn ...

  5. ubi层次

    转:http://www.360doc.com/content/11/0518/13/496343_117643185.shtml UBI是什么? 它是一种flash管理方式 flash是一系列连续的 ...

  6. redis_安装及使用

    一.文档资料       1.官方网站:http://redis.io/       2.官方文档:http://redis.io/documentation       3.常用命令文档:http: ...

  7. CSS实现四种loading动画效果

    四种loading加载效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  8. solr copyfield字段使用实践

    1.使用场景 比如我们现在有一个文档,有title.author.area.keyword.link等字段.现在要把这个文档索引到 solr中,为了方便对author.area.keyword进行搜索 ...

  9. Java笔记6:多态

    一.多态的分类对象的多态性:动物 x = new 猫();函数的多态性:函数重载.重写 二.多态的体现父类的引用指向了自己的子类对象父类的引用也可以接收自己的对象 三.多态的前提必须是类与类之间只有关 ...

  10. Servlet执行时一般实现哪几个方法?

    public void init(ServletConfig config) public ServletConfig getServletConfig() public String getServ ...