p2p项目工具类
1.用于存放当前用户的上下文UserContext
package com.xmg.p2p.base.util; import javax.servlet.http.HttpSession; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import com.xmg.p2p.base.domain.Logininfo;
import com.xmg.p2p.base.vo.VerifyCodeVO; /**
* 用于存放当前用户的上下文
* @author Administrator
*
*/
public class UserContext {
public static final String USER_IN_SESSION = "logininfo";
public static final String VERIFTCODE_IN_SESSION = "verifycode_in_session";
/**
* 方向获取request
* @return
*/
private static HttpSession getSesssion(){
return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getSession();
} public static void putCurrent(Logininfo current){
getSesssion().setAttribute(USER_IN_SESSION, current);;
}
public static Logininfo getCurrent(){ return (Logininfo) getSesssion().getAttribute(USER_IN_SESSION);
} /**
* 用来得到设置自的短信验证码
* @return
*/
public static void putVerifyCode(VerifyCodeVO vc){
getSesssion().setAttribute(VERIFTCODE_IN_SESSION, vc);
}
/**
* 用来得到当前的短信验证码
* @return
*/
public static VerifyCodeVO getCurrentVerifyCode(){
return (VerifyCodeVO) getSesssion().getAttribute(VERIFTCODE_IN_SESSION);
}
}
2.返回结果类JSONResult
package com.xmg.p2p.base.util;
public class JSONResult { private boolean success = true ;
private String msg; public JSONResult(boolean success, String msg) {
super();
this.success = success;
this.msg = msg;
} public JSONResult(String msg) {
super();
this.msg = msg;
} public JSONResult() {
super();
} public boolean isSuccess() {
return success;
} public void setSuccess(boolean success) {
this.success = success;
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
} }
3.时间工具类DateUtil
package com.xmg.p2p.base.util; import java.util.Calendar;
import java.util.Date; import org.apache.commons.lang.time.DateUtils; public class DateUtil { /**
* 用来计算发送两次验证码之间的间隔 ()
* @param d1
* @param d2
* @return
*/
public static long getBetweenSecond(Date d1 ,Date d2 ){
return Math.abs((d1.getTime() - d2.getTime())/1000) ;
}
/**
* 得到一天的最后一秒钟
*
*/
public static Date endOfDay(Date d) {
return DateUtils.addSeconds(
DateUtils.addDays(DateUtils.truncate(d, Calendar.DATE), 1), -1);
} public static long secondsBetween(Date d1 , Date d2){
return Math.abs(d1.getTime() - d2.getTime())/1000;//防止出现负数 用绝对值表示
}
}
4.系统中的常量BidConst
package com.xmg.p2p.base.util; import java.math.BigDecimal; /**
* 系统中的常量
* @author Administrator
*
*/
public class BidConst {
/**
* 定义存储精度
*/
public static final int STORE_SCALE = 4;
/**
* 定义运算精度
*/
public static final int CAL_SCALE = 8;
/**
* 定义显示精度
*/
public static final int DISPLAY_SCALE = 2;
/**
* 定义系统级别的0
*/
public static final BigDecimal ZERO = new BigDecimal("0.0000");
/**
* 定义初始授信额度
*/
public static final BigDecimal INIT_BORROW_LIMIT = new BigDecimal("5000.0000"); /**
* 默认管理员的用户名和密码
*
*/
public static final String DEFAULT_ADMIN_NAME = "admin";
public static final String DEFAULT_ADMIN_PASSWORD = "admin"; /**
* 手机验证码的有效期
*
*/
public static final int VERIFYCODE_VAILDATE_SECOND = 300;
}
5.用户状态类,记录用户在平台使用系统中所有的状态。BitStatesUtils
package com.xmg.p2p.base.util; /**
* 用户状态类,记录用户在平台使用系统中所有的状态。
*
* @author Administrator
*/
public class BitStatesUtils {
public final static Long OP_BIND_PHONE = 1L << 0; // 用户绑定手机状态码
public final static Long OP_BIND_EMAIL = 1L << 1; // 用户绑定邮箱状态码
public final static Long OP_BASIC_INFO = 1L << 2; // 用户填写基本资料
public final static Long OP_REAL_AUTH = 1L << 3; // 用户是否已经实名认证
public final static Long OP_VEDIO_AUTH = 1L << 4; // 用户是否已经视频认证
public final static Long OP_HAS_BIDREQUEST_PROCESS = 1L << 5; // 用户是否已经有一个借款申请在申请流程中
public final static Long OP_HAS_BIND_BANK = 1L << 6; // 用户是否已经绑定了银行卡
public final static Long OP_HAS_WITHDRAW_PROCESS = 1L << 7; // 用户是否有提现在审核流程中 /**
* @param states
* 所有状态值
* @param value
* 需要判断状态值
* @return 是否存在
*/
public static boolean hasState(long states, long value) {
return (states & value) != 0;
} /**
* @param states
* 已有状态值
* @param value
* 需要添加状态值
* @return 新的状态值
*/
public static long addState(long states, long value) {
if (hasState(states, value)) {
return states;
}
return (states | value);
} /**
* @param states
* 已有状态值
* @param value
* 需要删除状态值
* @return 新的状态值
*/
public static long removeState(long states, long value) {
if (!hasState(states, value)) {
return states;
}
return states ^ value;
}
}
p2p项目工具类的更多相关文章
- [分享]一个String工具类,也许你的项目中会用得到
每次做项目都会遇到字符串的处理,每次都会去写一个StringUtil,完成一些功能. 但其实每次要的功能都差不多: 1.判断类(包括NULL和空串.是否是空白字符串等) 2.默认值 3.去空白(tri ...
- Android开源项目发现--- 工具类快速开发篇(持续更新)
1. Guava Google的基于java1.6的类库集合的扩展项目 包括collections, caching, primitives support, concurrency librarie ...
- Android开源项目发现--- 工具类数据库ORM篇(持续更新)
orm的db工具类,简化建表.查询.更新.插入.事务.索引的操作 1. greenDAO Android Sqlite orm的db工具类 项目地址:https://github.com/greenr ...
- Android开源项目发现--- 工具类网络相关篇(持续更新)
1. Asynchronous Http Client for Android Android异步Http请求 项目地址:https://github.com/loopj/android-async- ...
- Android开源项目大全 - 工具类
主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少Vie ...
- 项目经验分享——Java常用工具类集合 转
http://blog.csdn.net/xyw591238/article/details/51678525 写在前面 本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数 ...
- 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Caching; usi ...
- 项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!
前言 系列文章:[传送门] 洗了个澡,准备写篇博客.然后看书了.时间 3 7 分.我慢慢规律生活,向目标靠近. 很喜欢珍惜时间像叮当猫一样 正文 慢慢地,二维码实现签到将要落幕了.下篇文章出二维码实 ...
- Spark项目之电商用户行为分析大数据平台之(十)IDEA项目搭建及工具类介绍
一.创建Maven项目 创建项目,名称为LogAnalysis 二.常用工具类 2.1 配置管理组建 ConfigurationManager.java import java.io.InputStr ...
随机推荐
- yii2之前端资源引入
PS:因新项目后端使用yii2框架,不在使用纯html模板的方式搭建页面(前后端不分离模式)使用yii2的内置boostart封装模板,遂研究了一番yii2 通过yii2官方下载的基础文件结构 其中 ...
- WebDriverAPI(9)
操作JavaScript的Alert窗口 测试网址代码 <html> <head> <title>你喜欢的水果</title> </head> ...
- jython实现java运行python代码
Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现.最近的一个项目需要将python代码转换成java实现,所以用了一 ...
- 详解XMLHttpRequest的跨域资源共享
0x00 背景 在Browser Security-同源策略.伪URL的域这篇文章中提到了浏览器的同源策略,其中提到了XMLHttpRequest严格遵守同源策略,非同源不可请求.但是,在实践当中,经 ...
- CSS3中的pointer-events
今天做项目中偶然误把元素加上了pointer-events属性,结果导致后来在js中给该元素加点击事件不能用,检查了半天才发现是这个属性的问题.之前没有好好研究,于是决定仔细研究一下. 一.定义及语法 ...
- wp-postviews使用方法
1.安装 2.头部引用<?php wp_head(); ?> 3.文章调用:<?php if(function_exists('the_views')) { the_views(); ...
- WPF开发的彩票程序(练手好例子)
前言 WPF是.NET最新的界面开发库,开发界面非常灵活!但是学习WPF难度也非常大. 应朋友之邀,编写了一个小程序.程序虽小,五脏俱全,WPF开发的灵活性可窥见一斑. 对于新手学习有很好的借鉴意义, ...
- 如何在python3环境下的Django中使用MySQL数据库
我们在使用Django过程中,连接MySQL数据库时,对Python不同的版本对应的库也不一样,用惯了Python2的人在使用Python3时经常会遇到下面的错误: Error loading MyS ...
- js 3行代码,最简易实现div效果悬浮
简易实现浮动效果的首要因素是:获取滚动条距离浏览器顶部的距离,下面直接贴代码: <!DOCTYPE html> <html> <head> <meta cha ...
- JAVA-7NIO之Socket/ServerSocket Channel
一.ServerSocketChannel Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样.Ser ...