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. absolute

    在需要用到小图标时,可以使用position:absolute,它具有消除float和位置不变特性.使用absolute可以浮现在同级元素的上方.用margin进行精确定位即可,也不必使用top,le ...

  2. php 常见图片处理函数封装

    <?php /** * 常见图像处理函数的封装 */ class Image{ private $info=[]; private $width;//原始图片宽度 private $height ...

  3. (转)MySQL中show语法

    MySQL中show语法 1. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称. 2. show databases; -- ...

  4. django第四课 标签的用法(if/else、for、ifequal、过滤器、注释等)

    if/else {% if %} <p>内容</P> {% endif %} {% else %}是可选标签 {% if %} <p>内容</P> {% ...

  5. PHP 修改目录下所有与文件夹重名的前缀文件为index.后缀

    <?phpset_time_limit(0); function traverse($path = '.' , $dir_name='') { $current_dir = opendir($p ...

  6. javac后期需要重点阅读的类

    (1)Annotate (300行) Enter annotations on symbols. Annotations accumulate in a queue,which is processe ...

  7. 关于文档头部定义和meta元素

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. ssh 登录进入 docker container

    1.Container安装ssh服务,博主的linux是centos ① 安装ssh sudo yum install openssh-server #安装ssh服务器 service sshd st ...

  9. Linux网络子系统

    再Linux的世界里,万物皆文件,通过虚拟文件系统VFS,程序可以用标准的Linux系统调用对不同的文件系统,甚至不同介质上的文件系统进行读写操作.下面我们揭示Linux网络子系统的秘密 sockfs ...

  10. APS审核经验+审核资料汇总——计算机科学与技术专业上海德语审核

    1.APS是什么 德国驻华使馆文化处留德人员审核部(简称APS)成立于2001年7月,是由德国驻华使馆文化处和德意志学术交流中心(DAAD)在北京共同合作成立的服务机构. APS是中国学生前往德国留学 ...