package cn.com.goldenwater.dcproj.service.impl.meeting; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.BisInspAllRlationPersDao; import cn.com.goldenwater.dcproj.dao.BisInspMeetUserDao; import cn.com.goldenwater.dcproj.model.BisInspAllRlationPers; import cn.com.goldenwater.dcproj.model.BisInspMeetUser; import cn.com.goldenwater.dcproj.param.BisInspAllRlationPersParam; import cn.com.goldenwater.dcproj.param.BisInspMeetUserParam; import cn.com.goldenwater.dcproj.service.BisInspMeetUserService; import cn.com.goldenwater.dcproj.utils.gwxy.MeetUtil; import com.xylink.util.HttpUtil; import com.xylink.util.Result; import net.sf.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author lhc * @date 2019-5-27 */ @Service @Transactional public class BisInspMeetUserServiceImpl extends AbstractCrudService implements BisInspMeetUserService { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Value("${ylink.enterpriseId}") public String enterpriseId; @Value("${ylink.token}") public String token; @Value("${ylink.ip}") public String ylinkIp; @Autowired private BisInspAllRlationPersDao bisInspAllRlationPersDao; public BisInspMeetUserServiceImpl(BisInspMeetUserDao bisInspMeetUserDao) { super(bisInspMeetUserDao); } //获取获取用户,添加到通讯录 @Override public void controlUserByParam(String orgId, String method) throws IOException { BisInspAllRlationPersParam bisInspAllRlationPersParam = new BisInspAllRlationPersParam(); if (orgId != null) { bisInspAllRlationPersParam.setOrgId(orgId); } List bisInspAllRlationPers = bisInspAllRlationPersDao.findList(bisInspAllRlationPersParam); List bisInspMeetUsers = new ArrayList<>(); for (BisInspAllRlationPers item : bisInspAllRlationPers) { if (item.getMobilenumb() != null && item.getMobilenumb().length() == 11) { BisInspMeetUser bisInspMeetUser = new BisInspMeetUser(); bisInspMeetUser.setName(item.getPersName()); bisInspMeetUser.setUserId(item.getGuid()); bisInspMeetUser.setPhone(item.getMobilenumb()); bisInspMeetUser.setDept(item.getOrgNm()); bisInspMeetUser.setPassword(item.getMobilenumb().substring(5)); bisInspMeetUser.setCountryCode("+86"); bisInspMeetUsers.add(bisInspMeetUser); } } if ("add".equals(method)) { add(bisInspMeetUsers); } else if ("up".equals(method)) { edit(bisInspMeetUsers); } else if ("del".equals(method)) { del(bisInspMeetUsers); } } @Override public int add(List bisInspMeetUsers) throws IOException { //添加用户到小鱼api 通讯录 for (BisInspMeetUser item : bisInspMeetUsers) { Map jsonEntity = new HashMap<>(); jsonEntity.put("userId", item.getUserId()); jsonEntity.put("name", item.getName()); jsonEntity.put("countryCode", item.getCountryCode()); jsonEntity.put("phone", item.getPhone()); if (item.getTelephone() != null) { jsonEntity.put("telephone", item.getTelephone()); } if (item.getMailbox() != null) { jsonEntity.put("mailbox", item.getMailbox()); } if (item.getAvatar() != null) { jsonEntity.put("avatar", item.getAvatar()); } if (item.getPassword() != null) { jsonEntity.put("password", item.getPassword()); } String json = JSONObject.fromObject(jsonEntity).toString(); String method = "POST"; String reqPath = ylinkIp + "/api/rest/external/v1/buffet/user?enterpriseId=" + enterpriseId; String requestUriPrefix = ylinkIp + "/api/rest/external/v1/"; String signature = MeetUtil.computeSignature(json, method, token, reqPath, requestUriPrefix); reqPath += "&signature=" + signature; Result result = HttpUtil.getResponse(reqPath, method, json, null); if (result.isSuccess()) { logger.info(item.getPhone() + "add suc!"); } else { logger.info(String.valueOf(result.getErrorStatus())); logger.info(item.getPhone() + "add fail!"); } } return 0; } @Override public int edit(List bisInspMeetUsers) throws IOException { String method = "PUT"; String reqPath = ylinkIp + "/api/rest/external/v1/buffet/user?enterpriseId=" + enterpriseId; String requestUriPrefix = ylinkIp + "/api/rest/external/v1/"; //修改用户信息 for (BisInspMeetUser item : bisInspMeetUsers) { Map jsonEntity = new HashMap<>(); jsonEntity.put("userId", item.getUserId()); jsonEntity.put("name", item.getName()); jsonEntity.put("countryCode", item.getCountryCode()); jsonEntity.put("phone", item.getPhone()); if (item.getTelephone() != null) { jsonEntity.put("telephone", item.getTelephone()); } if (item.getMailbox() != null) { jsonEntity.put("mailbox", item.getMailbox()); } if (item.getAvatar() != null) { jsonEntity.put("avatar", item.getAvatar()); } if (item.getDept() != null) { jsonEntity.put("dept", item.getDept()); } if (item.getPassword() != null) { jsonEntity.put("password", item.getPassword()); } String json = JSONObject.fromObject(jsonEntity).toString(); String signature = MeetUtil.computeSignature(json, method, token, reqPath, requestUriPrefix); reqPath += "&signature=" + signature; Result result = HttpUtil.getResponse(reqPath, method, json, null); if (result.isSuccess()) { logger.info(item.getPhone() + "add suc!"); } else { logger.info(String.valueOf(result.getErrorStatus())); logger.info(item.getPhone() + "add fail!"); } } return 0; } @Override public int del(List bisInspMeetUsers) throws IOException { //删除小鱼用户 String method = "DELETE"; String requestUriPrefix = ylinkIp + "/api/rest/external/v1/"; for (BisInspMeetUser item : bisInspMeetUsers) { String reqPath = ylinkIp + "/api/rest/external/v1/buffet/user?enterpriseId=" + enterpriseId + "&countryCode=86&phone=" + item.getPhone(); String signature = MeetUtil.computeSignature("", method, token, reqPath, requestUriPrefix); reqPath += "&signature=" + signature; Result result = HttpUtil.getResponse(reqPath, method, "", null); if (result.isSuccess()) { logger.info(item.getPhone() + "delete suc!"); } else { logger.info(String.valueOf(result.getErrorStatus())); logger.info(item.getPhone() + "delete fail!"); } } return 0; } @Override public int queryAllUser(Integer pageIndex, Integer pageSize) throws IOException { String method = "GET"; String requestUriPrefix = ylinkIp + "/api/rest/external/v1/"; String reqPath = ylinkIp + "/api/rest/external/v1/buffet/user/page?enterpriseId=" + enterpriseId + "&pageIndex=" + pageIndex + "&pageSize=" + pageSize; String signature = MeetUtil.computeSignature("", method, token, reqPath, requestUriPrefix); reqPath += "&signature=" + signature; Result result = HttpUtil.getResponse(reqPath, method, "", null); if (result.isSuccess()) { logger.info("获取用户信息成功!"); } else { logger.info("获取用户信息失败!"); } return 0; } }