1.用于存放当前用户的上下文UserContext

  1. package com.xmg.p2p.base.util;
  2.  
  3. import javax.servlet.http.HttpSession;
  4.  
  5. import org.springframework.web.context.request.RequestContextHolder;
  6. import org.springframework.web.context.request.ServletRequestAttributes;
  7.  
  8. import com.xmg.p2p.base.domain.Logininfo;
  9. import com.xmg.p2p.base.vo.VerifyCodeVO;
  10.  
  11. /**
  12. * 用于存放当前用户的上下文
  13. * @author Administrator
  14. *
  15. */
  16. public class UserContext {
  17. public static final String USER_IN_SESSION = "logininfo";
  18. public static final String VERIFTCODE_IN_SESSION = "verifycode_in_session";
  19. /**
  20. * 方向获取request
  21. * @return
  22. */
  23. private static HttpSession getSesssion(){
  24. return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getSession();
  25. }
  26.  
  27. public static void putCurrent(Logininfo current){
  28. getSesssion().setAttribute(USER_IN_SESSION, current);;
  29. }
  30. public static Logininfo getCurrent(){
  31.  
  32. return (Logininfo) getSesssion().getAttribute(USER_IN_SESSION);
  33. }
  34.  
  35. /**
  36. * 用来得到设置自的短信验证码
  37. * @return
  38. */
  39. public static void putVerifyCode(VerifyCodeVO vc){
  40. getSesssion().setAttribute(VERIFTCODE_IN_SESSION, vc);
  41. }
  42. /**
  43. * 用来得到当前的短信验证码
  44. * @return
  45. */
  46. public static VerifyCodeVO getCurrentVerifyCode(){
  47. return (VerifyCodeVO) getSesssion().getAttribute(VERIFTCODE_IN_SESSION);
  48. }
  49. }

2.返回结果类JSONResult

  1. package com.xmg.p2p.base.util;
  2. public class JSONResult {
  3.  
  4. private boolean success = true ;
  5. private String msg;
  6.  
  7. public JSONResult(boolean success, String msg) {
  8. super();
  9. this.success = success;
  10. this.msg = msg;
  11. }
  12.  
  13. public JSONResult(String msg) {
  14. super();
  15. this.msg = msg;
  16. }
  17.  
  18. public JSONResult() {
  19. super();
  20. }
  21.  
  22. public boolean isSuccess() {
  23. return success;
  24. }
  25.  
  26. public void setSuccess(boolean success) {
  27. this.success = success;
  28. }
  29.  
  30. public String getMsg() {
  31. return msg;
  32. }
  33.  
  34. public void setMsg(String msg) {
  35. this.msg = msg;
  36. }
  37.  
  38. }

3.时间工具类DateUtil

  1. package com.xmg.p2p.base.util;
  2.  
  3. import java.util.Calendar;
  4. import java.util.Date;
  5.  
  6. import org.apache.commons.lang.time.DateUtils;
  7.  
  8. public class DateUtil {
  9.  
  10. /**
  11. * 用来计算发送两次验证码之间的间隔 ()
  12. * @param d1
  13. * @param d2
  14. * @return
  15. */
  16. public static long getBetweenSecond(Date d1 ,Date d2 ){
  17. return Math.abs((d1.getTime() - d2.getTime())/1000) ;
  18. }
  19. /**
  20. * 得到一天的最后一秒钟
  21. *
  22. */
  23. public static Date endOfDay(Date d) {
  24. return DateUtils.addSeconds(
  25. DateUtils.addDays(DateUtils.truncate(d, Calendar.DATE), 1), -1);
  26. }
  27.  
  28. public static long secondsBetween(Date d1 , Date d2){
  29. return Math.abs(d1.getTime() - d2.getTime())/1000;//防止出现负数 用绝对值表示
  30. }
  31. }

4.系统中的常量BidConst

  1. package com.xmg.p2p.base.util;
  2.  
  3. import java.math.BigDecimal;
  4.  
  5. /**
  6. * 系统中的常量
  7. * @author Administrator
  8. *
  9. */
  10. public class BidConst {
  11. /**
  12. * 定义存储精度
  13. */
  14. public static final int STORE_SCALE = 4;
  15. /**
  16. * 定义运算精度
  17. */
  18. public static final int CAL_SCALE = 8;
  19. /**
  20. * 定义显示精度
  21. */
  22. public static final int DISPLAY_SCALE = 2;
  23. /**
  24. * 定义系统级别的0
  25. */
  26. public static final BigDecimal ZERO = new BigDecimal("0.0000");
  27. /**
  28. * 定义初始授信额度
  29. */
  30. public static final BigDecimal INIT_BORROW_LIMIT = new BigDecimal("5000.0000");
  31.  
  32. /**
  33. * 默认管理员的用户名和密码
  34. *
  35. */
  36. public static final String DEFAULT_ADMIN_NAME = "admin";
  37. public static final String DEFAULT_ADMIN_PASSWORD = "admin";
  38.  
  39. /**
  40. * 手机验证码的有效期
  41. *
  42. */
  43. public static final int VERIFYCODE_VAILDATE_SECOND = 300;
  44. }

5.用户状态类,记录用户在平台使用系统中所有的状态。BitStatesUtils

  1. package com.xmg.p2p.base.util;
  2.  
  3. /**
  4. * 用户状态类,记录用户在平台使用系统中所有的状态。
  5. *
  6. * @author Administrator
  7. */
  8. public class BitStatesUtils {
  9. public final static Long OP_BIND_PHONE = 1L << 0; // 用户绑定手机状态码
  10. public final static Long OP_BIND_EMAIL = 1L << 1; // 用户绑定邮箱状态码
  11. public final static Long OP_BASIC_INFO = 1L << 2; // 用户填写基本资料
  12. public final static Long OP_REAL_AUTH = 1L << 3; // 用户是否已经实名认证
  13. public final static Long OP_VEDIO_AUTH = 1L << 4; // 用户是否已经视频认证
  14. public final static Long OP_HAS_BIDREQUEST_PROCESS = 1L << 5; // 用户是否已经有一个借款申请在申请流程中
  15. public final static Long OP_HAS_BIND_BANK = 1L << 6; // 用户是否已经绑定了银行卡
  16. public final static Long OP_HAS_WITHDRAW_PROCESS = 1L << 7; // 用户是否有提现在审核流程中
  17.  
  18. /**
  19. * @param states
  20. * 所有状态值
  21. * @param value
  22. * 需要判断状态值
  23. * @return 是否存在
  24. */
  25. public static boolean hasState(long states, long value) {
  26. return (states & value) != 0;
  27. }
  28.  
  29. /**
  30. * @param states
  31. * 已有状态值
  32. * @param value
  33. * 需要添加状态值
  34. * @return 新的状态值
  35. */
  36. public static long addState(long states, long value) {
  37. if (hasState(states, value)) {
  38. return states;
  39. }
  40. return (states | value);
  41. }
  42.  
  43. /**
  44. * @param states
  45. * 已有状态值
  46. * @param value
  47. * 需要删除状态值
  48. * @return 新的状态值
  49. */
  50. public static long removeState(long states, long value) {
  51. if (!hasState(states, value)) {
  52. return states;
  53. }
  54. return states ^ value;
  55. }
  56. }

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. day 51 cooike 与 session

    前情提要: cooike 和session 一:cooike 一.会话跟踪技术   1.什么是会话跟踪技术  我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可 ...

  2. postgresql数据库uuid重复引发血案

    问题背景 .定时任务调用存储过程.将数据插入临时表时.出现了uuid重复的报错. 报错信息 [SQL]select DB_DATA.PR_SELECT() [Err] ERROR: duplicate ...

  3. POJ 2385

    #include <algorithm> #include <cstdlib> #include <numeric> #include <iostream&g ...

  4. Excel中线性规划求解

    Excel中线性规划求解(如下图) 1. 设置目标输出单元格(蓝线线) 2. 设置线性规划模型目标函数中自变量(红线线) 3. 设置约束条件(黑色线) 4  如果目标函数中自变量要求是非负数,则勾选绿 ...

  5. 编译vs下可调试的ffmpeg和x264

    以前随手记的笔记,翻出来,整理下哈 ffmpeg 在windows上的编译还是比较麻烦的,而且如果mingw-gcc编译的话,是无法在vs下调试的 所以以前刚开始玩ffmpeg的时候,费了一些功夫,用 ...

  6. springMVC执行流程及原理

    spring的MVC执行原理 1.spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求 进行真正的处理工作. 2.DispatcherSer ...

  7. 【Java并发编程】:守护线程与线程阻塞的四种情况

    守护线程 JAVA中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程. 守护线程作用是为其他前台线程的运 ...

  8. [转] TCPIP 网络协议层对应的RFC文档

    TCPIP网络协议层对应的RFC文档 RFC - Request For Comments 请求注解 TCP/IP层 网络协议 RFC文档 Physical Layer Data Link Layer ...

  9. C++的函数对象优于函数指针地方

    转载自:http://blog.csdn.net/huang_xw/article/details/7934156 在C++编程语言中,有很多功能都与C语言相通,比如指针的应用等等.在这里我们介绍的则 ...

  10. es6中let,const区别与其用法

    ECMAScript 是什么? 首先,我们都知道JavaScript由三部分组成:ECMAScript,DOM,BOM: 其中的ECMAScript是Javascript的语法规范. ECMAScri ...