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 ...
随机推荐
- 转MVC3介绍
第一节:Asp.Net MVC3项目介绍 让我们先看一下,一个普通的Asp.Net MVC3项目的样例,如下图所示 跟WebFrom还是有区别的,如果你已经了解Asp.Net MVC2的话,那就感觉异 ...
- keepalived安装配置实战心得(实现高可用保证网络服务不间断)
keepalived安装配置实战心得(实现高可用保证网络服务不间断) 一.准备2台虚拟机 安装的系统是:centos-release-7-1.1503.el7.centos.2.8.x86_6 ...
- (转)python中math模块常用的方法整理
原文:https://www.cnblogs.com/renpingsheng/p/7171950.html#ceil ceil:取大于等于x的最小的整数值,如果x是一个整数,则返回x copysig ...
- 【jQuery源码】tokenize方法
//得到由选择器生成的token对象的数组(下面的groups) //Sizzle的Token格式如下 :{value:'匹配到的字符串', type:'对应的Token类型', matches:'正 ...
- Android Studio启动速度慢的问题。
Android Studio每次启动都要去fetching sdk,由于Android sdk 官网在大陆连不上,所以每次启动时界面都会停在那里很久. 要提高启动速度,就要避免每次启动Android ...
- C#中null值属于什么变量类型
今天学习发现有段代码的输出结果有些理解不了,如图1,输出的结果全部为 false: 图1 后来和同事讨论研究了一下才明白,原来是这样:↓ class Program { static void Mai ...
- C++中各种类的大小
注:本文测试实例使用的编译器版本为clang-703.0.29,系统int长度为4字节,指针长度为8字节. 1. 空类 class A {}; 空类sizeof的结果为1,为什么不是0呢?因为C++标 ...
- 转--log4j.properties 详解与配置步骤
一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失IN ...
- 深入理解Java虚拟机:虚拟机类加载机制
目录 7.1 概述 7.2 类加载的时机 类的生命周期 5种情况需要"初始化" 7.3 类加载的过程 1.加载 2.验证 3.准备 4.解析 5.初始化 7.4 类加载器 类与类加 ...
- 理解Linux内核之中断控制
乍一看下边的Linux内核代码,貌似L3389有bug,于是我就绕有兴趣地阅读了一下local_irq_save/local_irq_restore的源代码. /* linux-4.14.12/mm/ ...