package com.gustz.dove.cpcli.api.addrbook.service.impl; import java.util.HashMap; import java.util.Map; import com.gustz.dove.cpcli.api.service.conf.AddrbookWsUrl; 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.impl.AbstBaseService; import com.sinovatech.rd.wcsb.cli.api.service.vo.AbstBaseReq; import com.sinovatech.rd.wcsb.cli.api.service.vo.CommRsp; import com.sinovatech.rd.wcsb.cpcli.api.addrbook.req.InviteUserReq; import com.sinovatech.rd.wcsb.cpcli.api.addrbook.req.UserBaseReq; import com.sinovatech.rd.wcsb.cpcli.api.addrbook.req.UserIdListReq; import com.sinovatech.rd.wcsb.cpcli.api.addrbook.req.UserReq; import com.sinovatech.rd.wcsb.cpcli.api.addrbook.rsp.InviteUserRsp; import com.sinovatech.rd.wcsb.cpcli.api.addrbook.rsp.UserListRsp; import com.sinovatech.rd.wcsb.cpcli.api.addrbook.rsp.UserRsp; import com.sinovatech.rd.wcsb.cpcli.api.addrbook.service.UserCpService; import com.sinovatech.rd.wcsb.cpcli.api.security.service.AcTokenCpService; /** * * TODO: 用户服务的接口实现 * * @author ZHENFENG ZHANG * @since [ Aug 3, 2015 ] */ @Service public class UserCpServiceImpl extends AbstBaseService<AbstBaseReq<?>> implements UserCpService { @Autowired private AcTokenCpService acTokenCpService; /** * 创建用户 * * @param sn * @param cliAppCode * @param req * @return */ @Override public CommRsp createUser(long sn, String cliAppCode, UserReq req) { AddrbookWsUrl _wsUrl = AddrbookWsUrl.WSC00001CP; this.setAccessTokenX(sn, cliAppCode, req.getDevAcCode()); // do return this.httpPost(_wsUrl, sn, cliAppCode, req, new CommRsp(sn, _wsUrl.getWebsCode())); } /** * 更新用户 * * @param sn * @param cliAppCode * @param req * @return */ @Override public CommRsp updateUser(long sn, String cliAppCode, UserReq req) { AddrbookWsUrl _wsUrl = AddrbookWsUrl.WSC00002CP; this.setAccessTokenX(sn, cliAppCode, req.getDevAcCode()); // do return this.httpPost(_wsUrl, sn, cliAppCode, req, new CommRsp(sn, _wsUrl.getWebsCode())); } /** * 删除用户 * * @param sn * @param cliAppCode * @param req * @return */ @Override public CommRsp deleteUser(long sn, String cliAppCode, String devAcCode, String id) { AddrbookWsUrl _wsUrl = AddrbookWsUrl.WSC00003CP; // this.setAccessTokenX(sn, cliAppCode, devAcCode); Map<String, String> _map = new HashMap<String, String>(); _map.put(WebsUrlParam.USER_ID, id); this.setWebsUrlParamMap(_map); // do return this.httpGet(_wsUrl, sn, cliAppCode, new CommRsp(sn, _wsUrl.getWebsCode())); } /** * 批量删除用户 * * @param sn * @param cliAppCode * @param req * @return */ @Override public CommRsp batchDelUser(long sn, String cliAppCode, UserIdListReq req) { AddrbookWsUrl _wsUrl = AddrbookWsUrl.WSC00004CP; // this.setAccessTokenX(sn, cliAppCode, req.getDevAcCode()); // do return this.httpPost(_wsUrl, sn, cliAppCode, req, new CommRsp(sn, _wsUrl.getWebsCode())); } /** * 查询用户 * * @param sn * @param cliAppCode * @param devAcCode * @param id * @return */ @Override public UserRsp getUser(long sn, String cliAppCode, String devAcCode, String id) { AddrbookWsUrl _wsUrl = AddrbookWsUrl.WSC00005CP; // 请求参数 this.setAccessTokenX(sn, cliAppCode, devAcCode); Map<String, String> _paramMap = new HashMap<String, String>(); _paramMap.put(WebsUrlParam.USER_ID, id); this.setWebsUrlParamMap(_paramMap); // do return this.httpGet(_wsUrl, sn, cliAppCode, new UserRsp(sn, _wsUrl.getWebsCode())); } /** * 查询部门下的用户 * * @param sn * @param cliAppCode * @param req * @return */ @Override public UserListRsp listByDept(long sn, String cliAppCode, UserBaseReq req) { // return this.doListUser(AddrbookWsUrl.WSC00006CP, sn, cliAppCode, req); } /** * 查询部门下的用户详情 * * @param sn * @param cliAppCode * @param req * @return */ @Override public UserListRsp listInfoByDept(long sn, String cliAppCode, UserBaseReq req) { // return this.doListUser(AddrbookWsUrl.WSC00007CP, sn, cliAppCode, req); } private UserListRsp doListUser(AddrbookWsUrl wsUrl, long sn, String cliAppCode, UserBaseReq req) { // 请求参数 this.setAccessTokenX(sn, cliAppCode, req.getDevAcCode()); // Map<String, String> _paramMap = new HashMap<String, String>(); _paramMap.put(WebsUrlParam.DEPT_ID, req.getBody().getDeptId()); // 获取的部门id // 1/0:是否递归获取子部门下面的成员 _paramMap.put(WebsUrlParam.FETCH_CHILD, req.getBody().getFetchChild().toString()); // 0获取全部成员,1获取已关注成员列表,2获取禁用成员列表,4获取未关注成员列表。 _paramMap.put(WebsUrlParam.STATE, req.getBody().getState().toString()); this.setWebsUrlParamMap(_paramMap); // do return this.httpGet(wsUrl, sn, cliAppCode, new UserListRsp(sn, wsUrl.getWebsCode())); } /** * 邀请成员关注 * * @param sn * @param cliAppCode * @param req * @return */ @Override public InviteUserRsp inviteUser(long sn, String cliAppCode, InviteUserReq req) { AddrbookWsUrl _wsUrl = AddrbookWsUrl.WSC00008CP; this.setAccessTokenX(sn, cliAppCode, req.getDevAcCode()); // do return this.httpPost(_wsUrl, sn, cliAppCode, req, new InviteUserRsp(sn, _wsUrl.getWebsCode())); } @Override protected void setAccessTokenX(long sn, String cliAppCode, String devAcCode) { this.setAccessToken(acTokenCpService.getAccessTokenCp(sn, cliAppCode, devAcCode)); } }