package com.qq.open.qzone.photo;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.StringBody;
import com.qq.open.common.OpenQqConstants;
import com.qq.open.common.OpenQqUtils;
import com.qq.open.common.json.JSONException;
import com.qq.open.common.json.JSONObject;
import com.qq.open.qzone.bean.param.QqAddAlbumParamBean;
import com.qq.open.qzone.bean.result.QqAddAlbumResultBean;
/**
* 登录用户创建相册
*
* @author HaoLiang
*
*/
public class QqAddAlbum {
/** QQ互联工具类 */
private OpenQqUtils oqu = new OpenQqUtils();
/**
* 用户创建相册
*
* @param qqAddAlbumBean 创建相册参数Bean
* @return
* @throws IOException
* @throws UnsupportedEncodingException
* @throws JSONException
*/
public QqAddAlbumResultBean addAlbum(QqAddAlbumParamBean qqAddAlbumBean)
throws IOException, JSONException {
// 获取接口返回的内容
String jsonData = oqu.doPost(OpenQqConstants.QQ_ADD_ALBUM_URL, this
.getAddAlbumParam(qqAddAlbumBean));
return this.jsonToBean(jsonData);
}
/**
*
* 获取创建相册的参数和数据
*
* @param qqu QQ互联工具类
* @param addAlbumBean 创建相册参数Bean
* @return 创建相册的参数和数据
* @throws UnsupportedEncodingException
*/
private MultipartEntity getAddAlbumParam(QqAddAlbumParamBean addAlbumBean) throws UnsupportedEncodingException {
MultipartEntity reqEntity = new MultipartEntity();
// AccessToken
reqEntity.addPart("access_token", new StringBody(addAlbumBean.getAccessToken()));
// AppId
reqEntity.addPart("oauth_consumer_key", new StringBody(oqu.getConfigValue("qq.appid")));
// OpenId
reqEntity.addPart("openid", new StringBody(addAlbumBean.getOpenId()));
// 相册名
reqEntity.addPart("albumname", new StringBody(addAlbumBean.getAlbumName(), Charset.forName("UTF-8")));
// 相册描述
if (oqu.isNotNull(addAlbumBean.getAlbumDesc())) {
reqEntity.addPart("albumdesc", new StringBody(addAlbumBean.getAlbumDesc(), Charset.forName("UTF-8")));
}
// 相册权限
if (addAlbumBean.getAlbumPriv() > 0) {
reqEntity.addPart("priv", new StringBody(String.valueOf(addAlbumBean.getAlbumPriv())));
}
// 定义API返回的数据格式
reqEntity.addPart("format", new StringBody("json"));
return reqEntity;
}
/**
* 把接口返回的json数据转换成JavaBean
*
* @param jsonData 接口返回的数据
* @return JavaBean数据
* @throws JSONException
*/
private QqAddAlbumResultBean jsonToBean(String jsonData) throws JSONException {
QqAddAlbumResultBean resultBean = new QqAddAlbumResultBean();
// 接口返回的数据Josn
JSONObject jsonObjRoot = new JSONObject(jsonData);
// 接口返回错误的场合
if (jsonObjRoot.getInt("ret") != 0) {
// 设置错误标识为真
resultBean.setErrorFlg(true);
// 设置错误编号
resultBean.setErrorCode(jsonObjRoot.get("ret").toString());
// 设置错误信息
resultBean.setErrorMes(jsonObjRoot.getString("msg"));
} else {
// 相册ID
resultBean.setAlbumId(jsonObjRoot.getString("albumid"));
// 相册创建时间
resultBean.setCreateTime(oqu.timeStampToDate(jsonObjRoot.get("createtime").toString()));
// 相册描述
resultBean.setDesc(jsonObjRoot.getString("desc"));
// 相册名称
resultBean.setName(jsonObjRoot.getString("name"));
// 相册权限
resultBean.setPriv(jsonObjRoot.get("priv").toString());
}
return resultBean;
}
}