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项目工具类的更多相关文章

  1. [分享]一个String工具类,也许你的项目中会用得到

    每次做项目都会遇到字符串的处理,每次都会去写一个StringUtil,完成一些功能. 但其实每次要的功能都差不多: 1.判断类(包括NULL和空串.是否是空白字符串等) 2.默认值 3.去空白(tri ...

  2. Android开源项目发现--- 工具类快速开发篇(持续更新)

    1. Guava Google的基于java1.6的类库集合的扩展项目 包括collections, caching, primitives support, concurrency librarie ...

  3. Android开源项目发现--- 工具类数据库ORM篇(持续更新)

    orm的db工具类,简化建表.查询.更新.插入.事务.索引的操作 1. greenDAO Android Sqlite orm的db工具类 项目地址:https://github.com/greenr ...

  4. Android开源项目发现--- 工具类网络相关篇(持续更新)

    1. Asynchronous Http Client for Android Android异步Http请求 项目地址:https://github.com/loopj/android-async- ...

  5. Android开源项目大全 - 工具类

    主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少Vie ...

  6. 项目经验分享——Java常用工具类集合 转

    http://blog.csdn.net/xyw591238/article/details/51678525 写在前面     本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数 ...

  7. 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!

    using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Caching; usi ...

  8. 项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!

    前言 系列文章:[传送门] 洗了个澡,准备写篇博客.然后看书了.时间 3 7 分.我慢慢规律生活,向目标靠近.  很喜欢珍惜时间像叮当猫一样 正文 慢慢地,二维码实现签到将要落幕了.下篇文章出二维码实 ...

  9. Spark项目之电商用户行为分析大数据平台之(十)IDEA项目搭建及工具类介绍

    一.创建Maven项目 创建项目,名称为LogAnalysis 二.常用工具类 2.1 配置管理组建 ConfigurationManager.java import java.io.InputStr ...

随机推荐

  1. my SQL Workbench创建数据库

    1.首先连接数据库 2. 点击图中的红圈里的按钮,新建一个Schema,即数据库(个人理解..),修改一下Name 的值,如  mydatabase ,点击apply,再点apply,然后点finis ...

  2. 冒泡排序实现(Java)

    冒泡排序是一种交换排序,它的基本思路是: 两两比较相邻记录的关键字,如果反序则交换,知道没有反序的记录位置. 依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数, ...

  3. Vue的Computed的使用

    Vue的Computed的使用 相关Html: <!DOCTYPE html> <html lang="en"> <head> <meta ...

  4. puppet的使用:ERB模板

    ERB介绍 全称是Embedded RuBy,意思是嵌入式的Ruby,是一种文本模板技术,用过JSP的话,会发现两者语法很像. 我们项目中一般用ERB来产生各模块的配置文件.ERB模板也可以用来产生W ...

  5. PHP在使用正则表达式验证,防注入的时候要注意一下的细节

    如下:这是一个防止用户输入的数据中包含SQL的一些关键字的正则表达式 之前一直认为这写的很正确,没多大的问题,而且自己测试也没问题, 因为关键字包含 And,而如果用户输入andy的时候呢,汗,所以还 ...

  6. java内存中的对象

    前记:几天前,在浏览网页时偶然的发现一道以前就看过很多遍的面试题,题目是:“请说出‘equals’和‘==’的区别”,当时我觉得我还是挺懂的,在心里答了一点(比如我们都知道的:‘==’比较两个引用是否 ...

  7. win8.1弹框

    在winform或者wp8中用MessageBox.Show()弹框,但是wp8.1中已经不存在了 private async void btn_Click(object sender, Routed ...

  8. unity简单动画实现

    1:创建一个Sprite Render (player)的动画对象并添加脚本Player,点击主菜单“Window(视窗)→Animation(动画窗口)”Animation面板(选中需要动画的对象) ...

  9. [转]ASP.NET MVC4中@model使用多个类型实例的方法

    本文转自:http://blog.csdn.net/hulihui/article/details/48199897 有时需要在ASP.NET MVC4的视图的@model中使用多个类型的实例,.NE ...

  10. Winform开发全套31个UI组件开源共享

    一.前言 这套UI库是上一个公司(好几年前了)完成的.当时主要为开发公司内部ERP系统,重新设计实现了所有用到的Winform组建,包括Form窗体组建6个(支持换肤),基础控件25个.其中有很多参考 ...