mobile.service.UserSettingService.java Source code

Java tutorial

Introduction

Here is the source code for mobile.service.UserSettingService.java

Source

/*
 * Copyright (c) 2013, Helome and/or its affiliates. All rights reserved.
 * Helome PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 * Created on 2014721
 */
package mobile.service;

import java.util.Map;

import mobile.service.result.ServiceResult;
import mobile.service.result.ServiceVOResult;
import mobile.vo.result.CommonVO;
import models.User;
import models.service.PhoneVerifyCodeService;
import models.service.PhoneVerifyCodeService.PhoneVerifyCodeType;
import models.service.PhoneVerifyCodeService.SendVerifyCodeResult;

import org.apache.commons.lang3.StringUtils;

import play.libs.Json;
import play.mvc.Http.Context;
import play.mvc.Http.Session;
import play.mvc.Result;
import utils.HelomeUtil;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;

import controllers.base.ObjectNodeResult;
import controllers.user.OAuthApp;
import ext.sns.model.UserOAuth;
import ext.sns.service.OAuth2Service;
import ext.sns.service.ProviderType;
import ext.sns.service.UserOAuthService;
import ext.usercenter.UserCenterService;
import ext.usercenter.UserCenterService.PhoneNumExistResult;

/**
 *
 *
 * @ClassName: UserSettingService
 * @Description: ?
 * @date 2014721 ?3:30:26
 * @author ShenTeng
 * 
 */
public class UserSettingService {

    /**
     * ?
     * 
     * @param oldPsw ?
     * @param newPsw ?
     * @return
     */
    public static ServiceResult changePassword(String oldPsw, String newPsw) {
        Session session = Context.current().session();
        User user = User.getFromSession(session);

        ObjectNodeResult result = User.changePassword(user, oldPsw, newPsw, session);

        return ServiceResult.create(result);
    }

    /**
     * ?
     */
    public static ServiceVOResult<CommonVO> getSafetyReminderCfg() {
        User user = User.getFromSession(Context.current().session());
        JsonNode cfg = user.getSafetyReminderCfgJson();

        CommonVO vo = CommonVO.create();
        vo.set("cfg", cfg);

        ServiceVOResult<CommonVO> result = ServiceVOResult.success();
        result.setVo(vo);
        return result;
    }

    /**
     * ??
     * 
     * @param newCfg 
     * @return
     */
    public static ServiceResult modifySafetyReminder(JsonNode newCfg) {
        Session session = Context.current().session();
        User user = User.getFromSession(session);

        ObjectNodeResult result = User.modifySafetyReminder(user, newCfg, session);

        return ServiceResult.create(result);
    }

    /**
     * 
     * 
     * @param phoneNum ?
     * @param verifyCode ??
     * @return
     */
    public static ServiceResult bindMobilePhone(String phoneNum, String verifyCode) {
        Session session = Context.current().session();
        User user = User.getFromSession(session);
        if (StringUtils.isNotBlank(user.getPhoneNumber())) {
            return ServiceResult.error("247001", "?");
        }

        ObjectNodeResult result = User.bindMobilePhone(user, phoneNum, phoneNum, verifyCode, session);

        return ServiceResult.create(result);
    }

    /**
     * ?????
     * 
     * @param phoneNum ??
     * @return
     */
    public static ServiceVOResult<CommonVO> validatePhoneNumExist(String phoneNum) {
        if (HelomeUtil.trim(phoneNum).length() != 11) {
            return ServiceVOResult.error("245001", "?");
        }

        PhoneNumExistResult validateResult = UserCenterService.validatePhoneNumExist(phoneNum);
        CommonVO vo = CommonVO.create();
        if (PhoneNumExistResult.EXIST == validateResult) {
            vo.set("exists", true);
        } else if (PhoneNumExistResult.NOT_EXIST == validateResult) {
            vo.set("exists", false);
        } else {
            return ServiceVOResult.error("100001", "");
        }

        ServiceVOResult<CommonVO> result = ServiceVOResult.success();
        result.setVo(vo);
        return result;
    }

    /**
     * ????
     * 
     * @param phoneNum ??
     * @return
     */
    public static ServiceResult sendPhoneVerifyCode(String phoneNum) {
        Session session = Context.current().session();
        User user = User.getFromSession(session);

        ObjectNodeResult result = new ObjectNodeResult();

        if (HelomeUtil.trim(phoneNum).length() != 11) {
            return ServiceResult.error("246001", "?");
        }

        SendVerifyCodeResult sendResult = PhoneVerifyCodeService
                .sendVerifyCode(PhoneVerifyCodeType.BIND_MOBILE_PHONE, String.valueOf(user.id), phoneNum);

        if (SendVerifyCodeResult.TOO_MANY == sendResult) {
            return ServiceResult.error("246002", "?????,????");
        } else if (SendVerifyCodeResult.FAIL == sendResult) {
            return ServiceResult.error("246003", "????");
        }

        return ServiceResult.create(result);
    }

    /**
     * ?SNS
     * 
     * @return
     */
    public static ServiceVOResult<CommonVO> getConnectedSNS() {
        User user = User.getFromSession(Context.current().session());
        Map<String, UserOAuth> userOAuthMap = UserOAuthService.getValidByUserId(user.id);
        ArrayNode sns = Json.newObject().arrayNode();
        for (Map.Entry<String, UserOAuth> e : userOAuthMap.entrySet()) {
            sns.add(e.getKey());
        }

        CommonVO vo = CommonVO.create();
        vo.set("sns", sns);

        ServiceVOResult<CommonVO> result = ServiceVOResult.success();
        result.setVo(vo);
        return result;
    }

    /**
     * SNS?
     * 
     * @param providerName sns??
     * @param referer ?????URI
     * @return
     */
    public static Result toBindSNSPage(String providerName, String referer) {
        return OAuthApp.requestAuth(providerName, referer, ProviderType.SNS);
    }

    /**
     * SNS
     * 
     * @param providerName sns??
     * @return
     */
    public static ServiceResult unbindSNS(String providerName) {
        if (!OAuth2Service.checkProviderName(providerName)) {
            return ServiceResult.error("100005", "SNS??" + providerName);
        }

        User user = User.getFromSession(Context.current().session());
        UserOAuthService.revokeAuthorize(user, providerName);

        return ServiceResult.success();
    }

}