手机token记录、支付宝、个推、goeasy、手机前端框架、阿里大于、百度编辑器、秀米集成解决方案

7 篇文章 0 订阅
3 篇文章 0 订阅
goeasy:web页面推送解决方案
     包名:goeasy
  jar:goeasy-sdk-0.3.5.jar
       gson-2.3.1.jar
       slf4j-api-1.7.2.jar
个推:app通知栏等推送解决方案
    包名:com.getui.java
       TestDemo.test
  jar:commons-lang-2.5.jar
      gexin-rp-sdk-base-4.0.0.12.jar
      gexin-rp-sdk-http-4.0.1.7.jar
      gexin-rp-sdk-template-4.0.0.6.jar
      protobuf-java-2.5.0.jar
阿里大于:短信发送解决方案
    包名:alidayu
  jar:taobao-sdk-java-auto_1455552377940-20160607.jar
form重复提交:
   详见:jsps/index2.jsp
      util.TokenProccessor

Token:app令牌
   安卓储存token两种方式:
        1、使用sharedPreferences存储token。sharedPreferences可用于保存少量数据,应用程序的各种配置信息以及口令密码等,而且我们的用户名也保存在这里(本项目使用)。
        2、sqlite。需要创建数据库、表等。
    1客户端使用用户名跟密码请求登录;
    2服务端收到请求,去验证用户名与密码;
    3验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端;
    4客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里;
    5客户端每次向服务端请求资源的时候需要带着服务端签发的 Token;
    6服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据。
    
 CQ分页方式解读:一般的条件暂时不用sql了(复杂的还没研究)
    CriteriaQuery cq = new CriteriaQuery(LtUtilEntity.class);
cq.addOrder("id", SortDirection.asc);//这是升序或者降序,//或者参数是map
//cq.isNull("id");//是空
//cq.isNotNull("");//非空
//cq.between("", 1, 2);//设置between查询条件
//cq.setCurPage(1);//设置页码,默认1
//cq.setPageSize(0);//设置分页显示数//默认10
//cq.in(keyname, keyvalue);//设置in(包含)查询条件keyvalueList
//cq.ge(keyname, keyvalue);//设置ge(>=)查询条件
//cq.le(keyname, keyvalue);//设置le(<=)查询条件
//cq.lt(keyname, keyvalue);//设置lt(<)查询条件
//cq.gt(keyname, keyvalue);//设置gt(>)查询条件
//cq.like(keyname, keyvalue);//设置设置like(模糊)查询条件
//cq.notEq(keyname, keyvalue);//设置notEq(不等)查询条件
//cq.eq("id", "0000");//设置eq(相等)查询条件
//cq.setOrder(map);//设置order(排序)查询条件
cq.add();
System.out.println("返回值"+systemService.getListByCriteriaQuery(cq, true));
System.out.println("返回值实体类集合"+systemService.getListByCriteriaQuery(cq, true));
System.out.println("返回值"+systemService.getPageList(cq, false));
//[当前页curPageNO=1, offset=0, toolBar=, 总数count=21, resultList=[LtUtilEntity [id=1,
System.out.println("PageList"+systemService.getPageList(cq, false).getResultList().size());
接入ueditor_oss
   1:去https://github.com/XieXianbin/UEditor-for-aliyun-OSS/releases下载
      v1.4.3和UEditor-for-aliyun-OSS-v1.2.1-beta.jar
   2:替换项目中ueditor
   3:添加OSSKey.properties并配置
   4:如果报错java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.getTempDirectory()Ljava/io/File;
   5:把项目中lib下的commons_io_jar替换成2,4版本,并删除原来的重新编译。ok
   注意:src丢了两个包baidu/qikemi,1.0.5版本将补上
   6:如何增加模板http://t.mreald.com/191
               http://blog.csdn.net/zhangdaiscott/article/details/45746199
            先制作一个html的代码作为模板可以用富文本编辑器制作
            然后找到ueditor/template/config.js里面按照上面格式加一个,图片再images文件夹里,可以自己设置一个
            编辑器添加自定义模板并设为默认
             ueditor百度编辑器,添加自定义模板并设置为默认模板,方法步骤如下:
                1、找到ueditor目录下“”的“config.js”文件,按照已有模板结构添加自己的模板;
                2、再修改语言文件目录“ueditor\lang\”的对应语言文件,添加自己的模板名字;
                3、在“ueditor\dialogs\template”目录里找到“template.js”文件,将最后的“pre(2)”中的数字改为你的自定义模板的序号;
                4、完成以上步骤即可将添加的自定义模板设置默认模板。  
                538
ueditor接入秀米:
     1:http://hgs.xiumi.us/uedit/这里下载html和xiumi-ue-dialog-v5.js,可以选中网址右击从链接另存为文件为
     2:全部放在ueditor/dialogs
     3:xiumi-ue-dialog-v5.html文件25行src改为
     
     4:xiumi-ue-dialog-v5.js第10行改为
     iframeUrl:editor.ui.UEDITOR_HOME_URL+ 'dialogs/xiumi-ue-dialog-v5.html',
     5:找到themes/default/ueditor.css(或者themes/default/css/ueditor.css)文件,增加一条样式定义:
              大概500多行,可搜索.edui-icon找到,
              添加下面一条
              .edui-default  .edui-for-xiumi-connect .edui-icon {
           background-image: url(http://xiumi.us/connect/ue/xiumi-connect-icon.png)!important ;
           background-repeat:no-repeat ;
           background-position:center;
         }我这里添加到了666的位置
     6:使用方法  在ueditor引入的js后面引入
     
          回头研究下flt模板设置进代码生成器里面,暂时先手动
阿里云oss纯接入:
         下载JDK:http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/32009/cn_zh/1487744919301/aliyun_java_sdk_20170222.zip?spm=5176.doc32009.2.1.JEI1es&file=aliyun_java_sdk_20170222.zip
     暂时这样了,有个工具类,jar没替换,不行再换在lib1里面
支付宝服务端接入:
    下载sdk1.5:https://openhome.alipay.com/doc/sdkDownload.resource?sdkType=JAVA
    集成支付宝接口需要引入的文件是:
       alipay-sdk-java*.jar
       commons-logging-1.1.1.jar 
  客户端请求:
  @RequestMapping(params = "apprequest" )//这里设置post
@ResponseBody
public String apprequest() {
//实例化客户端
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", "APP_ID", "APP_PRIVATE_KEY", "json", "CHARSET", "ALIPAY_PUBLIC_KEY", "RSA2");
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
model.setBody("我是测试数据");//交易描述信息
model.setSubject("App支付测试;//交易的标题多个请累加
model.setOutTradeNo("outtradeno");//订单号最大长度64位
model.setTimeoutExpress("30m");//进入收银台开始计时,超时关闭,30分钟
model.setTotalAmount("0.01");//订单金额单位元String,两位小数
model.setProductCode("QUICK_MSECURITY_PAY");//产品码,固定值不用修改
request.setBizModel(model);
request.setNotifyUrl("商户外网可以访问的异步地址");//回来的地址
try {
       //这里和普通的接口调用不同,使用的是sdkExecute
       AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
       System.out.println(response.getBody());//就是orderString 可以直接给客户端请求,无需再做处理。
       return    response.getBody();
} catch (AlipayApiException e) {
       e.printStackTrace();
}
return null;
}
 支付宝请求:
   @RequestMapping(params = "appreponse" )//这里设置post
@ResponseBody
public void appreponse(HttpServletRequest request) {
//获取支付宝POST过来反馈信息
Map params = new HashMap();
Map requestParams = request.getParameterMap();
for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
   String name = (String) iter.next();
   String[] values = (String[]) requestParams.get(name);
   String valueStr = "";
   for (int i = 0; i < values.length; i++) {
       valueStr = (i == values.length - 1) ? valueStr + values[i]
                   : valueStr + values[i] + ",";
 }
 //乱码解决,这段代码在出现乱码时使用。
 //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
 params.put(name, valueStr);
}
//切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。
//boolean AlipaySignature.rsaCheckV1(Map params, String publicKey, String charset, String sign_type)
try {
boolean flag = AlipaySignature.rsaCheckV1(params, "alipaypublicKey", "charset", "RSA2");
if(flag){
//修改订单状态
}
} catch (AlipayApiException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
hibernate的动态查询分页提取
    1:package org.jeecgframework.core.common.hibernate.qbc中创建封装类PageCount
    private int curPageNO;
private int offset;
private int count;
private List resultList = null;//结果集、
public PageCount() {

}
添加get/set方法,全属性构造器
2:package org.jeecgframework.core.common.dao.impl;
GenericBaseCommonDao类添加方法
@SuppressWarnings("unchecked")
public PageCount getListAndCountByCriteriaQuery(final CriteriaQuery cq, Boolean ispage) {
Criteria criteria = cq.getDetachedCriteria().getExecutableCriteria(
getSession());
CriteriaImpl impl = (CriteriaImpl) criteria;
// 先把Projection和OrderBy条件取出来,清空两者来执行Count操作
Projection projection = impl.getProjection();
final int allCounts = ((Long) criteria.setProjection(
Projections.rowCount()).uniqueResult()).intValue();
criteria.setProjection(projection);
if (projection == null) {
criteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY);
}
// 判断是否有排序字段
if (cq.getOrdermap() != null) {
cq.setOrder(cq.getOrdermap());
}
int pageSize = cq.getPageSize();// 每页显示数
int curPageNO = PagerUtil.getcurPageNo(allCounts, cq.getCurPage(),
pageSize);// 当前页
int offset = PagerUtil.getOffset(allCounts, curPageNO, pageSize);
if (ispage){
criteria.setFirstResult((cq.getCurPage()-1)*cq.getPageSize());
criteria.setMaxResults(cq.getPageSize());
}
PageCount pc = new PageCount();
pc.setCount(allCounts);
pc.setCurPageNO(curPageNO);
pc.setOffset(offset);
pc.setResultList(criteria.list());
return pc;

}
3:package org.jeecgframework.core.common.service;
CommonService类添加方法
public PageCount getListAndCountByCriteriaQuery(final CriteriaQuery cq,
Boolean ispage);
       
    4:package org.jeecgframework.core.common.dao;
    IGenericBaseCommonDao类添加方法
   
public PageCount getListAndCountByCriteriaQuery(final CriteriaQuery cq,
Boolean ispage);
    5:package org.jeecgframework.core.common.service.impl;
    CommonServiceImpl实现类添加方法
   
public PageList getPageList(final CriteriaQuery cq, final boolean isOffset) {
return commonDao.getPageList(cq, isOffset);
}     
6:使用方法
CriteriaQuery cq = new CriteriaQuery(MyCircularEntity.class);
    //cq.eq("mcProvince", ue.getUProvince());//所属省
//cq.eq("mcCity", ue.getUCity());//所属市
//cq.eq("mcCounty", ue.getUCounty());//所属区县
//cq.eq("mcSchool", ue.getUSchool());//所属学校
//下面是三个or,其实是or(3,or(1,2))的嵌套
cq.or(Restrictions.like("mcTermini", "%"+ue.getUserXymc()+"%"), Restrictions.or(Restrictions.like("mcTermini", "%"+ue.getUserZymc()+"%"), Restrictions.like("mcTermini", "%"+ue.getUserBjmc()+"%")));
cq.setCurPage(curPageNO);//设置页码,默认1
cq.setPageSize(2);
//cq.setField("id,createName,createBy,createDate,updateName,updateBy,updateDate,sysOrgCode,sysCompanyCode,bpmStatus,mcTitle,mcBody,mcAuthorId,mcAuthor,mcType,mcTermini,mcProvince,mcCity,mcCounty,mcSchool,mc1,mc2,mc3,");
DataGrid d = new DataGrid();
cq.setDataGrid(d);
cq.setMyAction("web.do?ajaxamlist");
cq.add();
//System.out.println(systemService.getListAndCountByCriteriaQuery(cq, true));
//r.setData(systemService.getPageList(cq, true));//两个不能同时用
r.setData(systemService.getListAndCountByCriteriaQuery(cq, true));
        return r; 
前端框架:
   http://dev.dcloud.net.cn/mui/
    
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值