SharedPreferencesHelper

来源:互联网 发布:一个编程游戏 办公室 编辑:程序博客网 时间:2024/06/05 05:20


public final class SharedPreferencesHelper {

private final static String PREFS_USERNAME_FILE = "com.ihandy.xgxsigndome";

/**控制核保 的 pref文件*/
private static final String PREFS_CONTROL_CHECK_POLICY_FILE = "controlCheckPolicy";

private static final String USER_NAME = "username";

/**
* 保单共核保 多少次
*/
private static final String CHECK_POLICY_SUM = "checkPolicySum";

/**
* 上一次 核保时间  pattern "YYYY-MM-dd HH:mm:ss" 
*/
private static final String CHECK_POLICY_LAST_COMMIT_TIME = "lastCommitTime";


/**
* 判断此用户是否是首次登录
* @param ctx
* @param username
* @return
*/
public static boolean existsUsername(final Context ctx) {
boolean exists = false;
final SharedPreferences settings = ctx.getSharedPreferences(PREFS_USERNAME_FILE, Context.MODE_PRIVATE);
if(settings!=null) {
exists = settings.contains(USER_NAME);
}
return exists;
}


/**
* 记住登录过的用户和最后一次登录时间
* @param ctx
* @param username
*/
public static void putUsername(final Context ctx, String username) {
ctx.getSharedPreferences(PREFS_USERNAME_FILE, 0).edit().putString(USER_NAME, username).commit();
}

public static String getLastLoginUserName(final Context ctx) {
String lastUsername = "";
final SharedPreferences settings = ctx.getSharedPreferences(PREFS_USERNAME_FILE, 0);
if(settings!=null) {
lastUsername =  settings.getString(USER_NAME, "");
}
return lastUsername;
}

 
/***校验能否提交核保
* @param ctx
* @param policyNo 保单号
* @return 如果不能提交核保,返回规则规则描述信息,否则返回空串,    空串=>表示能再次提交核保
*/
public static String  checkCanUnderwritePolicy(final Context ctx,final String policyNo) {
String ruleInfo = "";
final SharedPreferences settings = ctx.getSharedPreferences(PREFS_CONTROL_CHECK_POLICY_FILE, Context.MODE_APPEND);
final String checkPolicySumKey = CHECK_POLICY_SUM + policyNo;
final String lastCommitTimeKey = CHECK_POLICY_LAST_COMMIT_TIME + policyNo;
if(settings!=null && settings.getInt(checkPolicySumKey, 0)>0) {
final String lastCommitTime = settings.getString(lastCommitTimeKey,StringUtils.EMPTY);
if(!StringUtils.isEmpty(lastCommitTime)) {
try {
Date lastCommitDateTime = DateUtils.parseDate(lastCommitTime,DateUtils.DATE_TIME_PATTERN);
long lastCommitSeconds = lastCommitDateTime.getTime() / 1000;
long currentSeconds = CommunicationBusiness.getServerCurrentTimeMillis() / 1000;
long interval =  Math.abs(currentSeconds - lastCommitSeconds);
if(interval < 60 * AppConstants.CHECK_POLICY_INTERVAL) {
ruleInfo =  AppConstants.CHECK_POLICY_INTERVAL + "分钟内最多允许提交1次核保!";

} catch (ParseException e) {
e.printStackTrace();
}
}
}
return ruleInfo;
}

/**更新保单核保时间*/
public static void updatePolicyUnderwriteTime(final Context ctx,final String policyNo,final long currentServerTime) {
final SharedPreferences settings = ctx.getSharedPreferences(PREFS_CONTROL_CHECK_POLICY_FILE, Context.MODE_APPEND);
//核保接口共调用多少次
final String checkPolicySumKey = CHECK_POLICY_SUM + policyNo;
final String lastCommitTimeKey = CHECK_POLICY_LAST_COMMIT_TIME + policyNo;

final String currentDateTime = DateUtils.format(new Date(currentServerTime),DateUtils.DATE_TIME_PATTERN);
int checkPolicyTimeTotal  = settings.getInt(checkPolicySumKey, 0);
checkPolicyTimeTotal ++;

settings.edit().putInt(checkPolicySumKey, checkPolicyTimeTotal)
              .putString(lastCommitTimeKey, currentDateTime)
              .commit();
}

/**重置 保单核保时间,即3G卡超时后,允许再次提交**/
public static void resetPolicyUnderwrite(final Context ctx,final String policyNo) {
final SharedPreferences settings = ctx.getSharedPreferences(PREFS_CONTROL_CHECK_POLICY_FILE, Context.MODE_APPEND);
final String checkPolicySumKey = CHECK_POLICY_SUM + policyNo;
settings.edit().putInt(checkPolicySumKey,0).commit();
}
}
原创粉丝点击