package com.gustz.dove.mpcli.api.user.service.impl;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.sinovatech.rd.wcsb.cli.api.service.conf.WebsUrlParam;
import com.sinovatech.rd.wcsb.cli.api.service.dict.LangTypeDict;
import com.sinovatech.rd.wcsb.cli.api.service.impl.AbstBaseService;
import com.sinovatech.rd.wcsb.mpcli.api.security.service.AcTokenMpService;
import com.gustz.dove.mpcli.api.service.conf.UserWsUrl;
import com.sinovatech.rd.wcsb.mpcli.api.user.req.UserListReq;
import com.sinovatech.rd.wcsb.mpcli.api.user.req.UserReq;
import com.sinovatech.rd.wcsb.mpcli.api.user.rsp.UserListRsp;
import com.sinovatech.rd.wcsb.mpcli.api.user.rsp.UserOpenIdRsp;
import com.sinovatech.rd.wcsb.mpcli.api.user.rsp.UserRsp;
import com.sinovatech.rd.wcsb.mpcli.api.user.service.UserMpService;
/**
*
* TODO: 用户服务的接口实现
*
* @author ZHENFENG ZHANG
* @since [ Aug 3, 2015 ]
*/
@Service
public class UserMpServiceImpl extends AbstBaseService<UserListReq> implements UserMpService {
@Autowired
private AcTokenMpService acTokenMpService;
/**
* 获取用户详情
*
* @param sn
* @param cliAppCode
* @param req
* @return
*/
@Override
public UserRsp getUser(long sn, String cliAppCode, UserReq req) {
UserWsUrl _wsUrl = UserWsUrl.WSC00001MP;
// 请求参数
this.setAccessTokenX(sn, cliAppCode, req.getDevAcCode());
Map<String, String> _paramMap = new HashMap<String, String>();
_paramMap.put(WebsUrlParam.OPEN_ID, req.getBody().getOpenId()); // 公众号
_paramMap.put(WebsUrlParam.LANG, LangTypeDict.CHINA.getName()); // 语言
this.setWebsUrlParamMap(_paramMap);
// do
return this.httpGet(_wsUrl, sn, cliAppCode, new UserRsp(sn, _wsUrl.getWebsCode()));
}
/**
* 获取关注者OpenId列表
*
* @param sn
* @param cliAppCode
* @param req
* @return
*/
@Override
public UserOpenIdRsp listUserOpenId(long sn, String cliAppCode, UserReq req) {
UserWsUrl _wsUrl = UserWsUrl.WSC00002MP;
// 请求参数
this.setAccessTokenX(sn, cliAppCode, req.getDevAcCode());
Map<String, String> _paramMap = new HashMap<String, String>();
_paramMap.put(WebsUrlParam.NEXT_OPEN_ID, req.getBody().getOpenId()); // 下一个公众号
this.setWebsUrlParamMap(_paramMap);
//
return this.httpGet(_wsUrl, sn, cliAppCode, new UserOpenIdRsp(sn, _wsUrl.getWebsCode()));
}
/**
* 批量获取关注者用户基本信息
*
* @param sn
* @param cliAppCode
* @param req
* @return
*/
@Override
public UserListRsp listUser(long sn, String cliAppCode, UserListReq req) {
UserWsUrl _wsUrl = UserWsUrl.WSC00003MP;
this.setAccessTokenX(sn, cliAppCode, req.getDevAcCode());
//
return this.httpPost(_wsUrl, sn, cliAppCode, req, new UserListRsp(sn, _wsUrl.getWebsCode()));
}
@Override
protected void setAccessTokenX(long sn, String cliAppCode, String devAcCode) {
this.setAccessToken(acTokenMpService.getAccessTokenMp(sn, cliAppCode, devAcCode));
}
}