mobile.service.AuthService.java Source code

Java tutorial

Introduction

Here is the source code for mobile.service.AuthService.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 mobile.service.result.ServiceResult;
import mobile.service.result.ServiceVOResult;
import mobile.vo.result.CommonVO;
import models.Gender;
import models.User;
import models.service.ForgetPasswordService;

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 utils.TimeZoneUtils;

import com.fasterxml.jackson.databind.node.ObjectNode;

import controllers.base.ObjectNodeResult;
import controllers.user.OAuthApp;
import ext.sns.service.ProviderType;
import ext.usercenter.UserAuthService;

/**
 *
 *
 * @ClassName: AuthService
 * @Description: ?????
 * @date 2014721 ?5:21:38
 * @author ShenTeng
 * 
 */
public class AuthService {

    /**
     * 
     * 
     * @param username ??
     * @param password ?
     * @param timeZoneOffset ?????+8480
     */
    public static ServiceVOResult<CommonVO> login(String username, String password, Integer timeZoneOffset) {
        Session session = Context.current().session();
        TimeZoneUtils.setTimeZoneOffset2Session(session, timeZoneOffset);
        ObjectNodeResult loginResult = User.login(username, password, false);

        ServiceVOResult<CommonVO> serviceVOResult = ServiceVOResult.create(loginResult);
        if (serviceVOResult.isSuccess()) {
            User user = loginResult.getUser();
            CommonVO vo = CommonVO.create();

            ObjectNode userNode = Json.newObject();
            userNode.put("id", user.getId());
            userNode.put("name", user.getName());
            userNode.put("avatar_190", user.getAvatar(190));
            userNode.put("avatar_70", user.getAvatar(70));
            userNode.put("avatar_22", user.getAvatar(22));
            userNode.put("phoneNumber", StringUtils.defaultIfBlank(loginResult.getUser().phoneNumber, null));

            vo.set("user", userNode);
            vo.set("token", UserAuthService.getTokenInSession(session));
            serviceVOResult.setVo(vo);
        }

        return serviceVOResult;
    }

    /**
     * ?
     */
    public static Result toThirdPartyLoginPagetoThirdPartyLoginPage(String providerName, String referer) {
        return OAuthApp.requestAuth(providerName, referer, ProviderType.LOGIN);
    }

    /**
     * ?
     */
    public static ServiceResult logout() {
        Session session = Context.current().session();
        if (UserAuthService.isLogin(session)) {
            User.logout(session);
        } else {
            return ServiceResult.error("221001", "?");
        }
        return ServiceResult.success();
    }

    /**
     * 
     * 
     * @param username ??
     * @param password ?
     * @param timeZoneOffset ?????+8480
     * @param gender ?0:1:
     * @return
     */
    public static ServiceVOResult<CommonVO> register(String username, String password, Integer timeZoneOffset,
            Integer gender) {
        Gender genderObj = gender == Integer.valueOf(1) ? Gender.WOMAN : Gender.MAN;

        Session session = Context.current().session();
        TimeZoneUtils.setTimeZoneOffset2Session(session, timeZoneOffset);
        ObjectNodeResult objectNodeResult = User.registerFromMobile(username, password, genderObj);

        ServiceVOResult<CommonVO> serviceVOResult = ServiceVOResult.create(objectNodeResult);
        if (serviceVOResult.isSuccess()) {
            User user = objectNodeResult.getUser();
            CommonVO vo = CommonVO.create();

            ObjectNode userNode = Json.newObject();
            userNode.put("id", user.getId());
            userNode.put("name", user.getName());
            userNode.put("avatar_190", user.getAvatar(190));
            userNode.put("avatar_70", user.getAvatar(70));
            userNode.put("avatar_22", user.getAvatar(22));

            vo.set("user", userNode);
            serviceVOResult.setVo(vo);
        }

        return serviceVOResult;
    }

    /**
     * ???
     * 
     * @param email ?
     * @return
     */
    public static ServiceVOResult<CommonVO> sendForgetPasswordEmail(String email) {
        ObjectNodeResult objectNodeResult = ForgetPasswordService.sendForgetPasswordEmail("", email, null, false,
                true);

        ServiceVOResult<CommonVO> serviceVOResult = ServiceVOResult.create(objectNodeResult);
        if (serviceVOResult.isSuccess()) {
            CommonVO vo = CommonVO.create();
            vo.set("success", objectNodeResult.getObjectNode().path("success").asText());
            serviceVOResult.setVo(vo);
        }

        return serviceVOResult;
    }

    /**
     * 
     */
    public static ServiceVOResult<CommonVO> validateEmailExist(String email) {
        if (!HelomeUtil.isEmail(email)) {
            return ServiceVOResult.error("100005", "email??");
        }

        ServiceVOResult<CommonVO> serviceVOResult = ServiceVOResult.success();
        CommonVO vo = CommonVO.create();
        vo.set("exists", User.emailexists(email));
        serviceVOResult.setVo(vo);

        return serviceVOResult;
    }

}