| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322 |
- package cn.com.goldenwater.dcproj.service.impl.meeting;
- import cn.com.goldenwater.dcproj.dao.BisInspAllRlationPersDao;
- import cn.com.goldenwater.dcproj.dao.BisInspMeetRoomDao;
- import cn.com.goldenwater.dcproj.dao.BisInspOrgBaseDao;
- import cn.com.goldenwater.dcproj.dao.BisInspOrgDao;
- import cn.com.goldenwater.dcproj.dto.BisInspMeetRoomDto;
- import cn.com.goldenwater.dcproj.dto.MeetRoomConfigsSetDto;
- import cn.com.goldenwater.dcproj.model.BisInspAllRlationPers;
- import cn.com.goldenwater.dcproj.model.BisInspMeetRoom;
- import cn.com.goldenwater.dcproj.model.BisInspOrg;
- import cn.com.goldenwater.dcproj.model.BisInspOrgBase;
- import cn.com.goldenwater.dcproj.param.BisInspMeetRoomParam;
- import cn.com.goldenwater.dcproj.param.BisInspOrgBaseParam;
- import cn.com.goldenwater.dcproj.param.BisInspOrgParam;
- import cn.com.goldenwater.dcproj.service.BisInspMeetRoomService;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.utils.gwxy.MeetData;
- import cn.com.goldenwater.dcproj.utils.gwxy.MeetUtil;
- import cn.com.goldenwater.id.util.UuidUtil;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- 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.*;
- /**
- * @author lhc
- * @date 2019-5-27
- */
- @Service
- @Transactional
- public class BisInspMeetRoomServiceImpl extends AbstractCrudService<BisInspMeetRoom, BisInspMeetRoomParam> implements BisInspMeetRoomService {
- private Logger logger = LoggerFactory.getLogger(this.getClass());
- @Autowired
- private BisInspMeetRoomDao bisInspMeetRoomDao;
- @Value("${ylink.enterpriseId}")
- public String enterpriseId;
- @Value("${ylink.token}")
- public String token;
- @Value("${ylink.ip}")
- public String ylinkIp;
- @Autowired
- private BisInspAllRlationPersDao bisInspAllRlationPersDao;
- @Autowired
- private BisInspOrgDao bisInspOrgDao;
- public BisInspMeetRoomServiceImpl(BisInspMeetRoomDao bisInspMeetRoomDao) {
- super(bisInspMeetRoomDao);
- this.bisInspMeetRoomDao = bisInspMeetRoomDao;
- }
- public BisInspMeetRoom addXylink(BisInspMeetRoom bisInspMeetRoom) throws IOException {
- Map<String, Object> jsonEntity = new HashMap<>();
- jsonEntity.put("meetingName", bisInspMeetRoom.getMeetingName());
- if (bisInspMeetRoom.getMaxParticipant() != null) {
- jsonEntity.put("maxParticipant", bisInspMeetRoom.getMaxParticipant());
- }
- jsonEntity.put("requirePassword", !"0".equals(bisInspMeetRoom.getRequirePassword()) );
- jsonEntity.put("password", bisInspMeetRoom.getInPassword() == null ? "" : bisInspMeetRoom.getInPassword());
- jsonEntity.put("controlPassword", bisInspMeetRoom.getControlPassword());
- if (bisInspMeetRoom.getAutoMute() != null) {
- jsonEntity.put("autoMute", bisInspMeetRoom.getAutoMute());
- }
- if (bisInspMeetRoom.getStartTime() != null && bisInspMeetRoom.getEndTime() != null) {
- jsonEntity.put("startTime", bisInspMeetRoom.getStartTime().getTime());
- jsonEntity.put("endTime", bisInspMeetRoom.getEndTime().getTime());
- }
- MeetRoomConfigsSetDto meetRoomConfigsDto = new MeetRoomConfigsSetDto();
- if (bisInspMeetRoom.getAutoRecord() != null) {
- meetRoomConfigsDto.setAutoRecord("0".equals(bisInspMeetRoom.getAutoRecord()) ? false : true);
- }
- if (bisInspMeetRoom.getSmartMuteperson() != null) {
- meetRoomConfigsDto.setSmartMutePerson(bisInspMeetRoom.getSmartMuteperson());
- }
- if (bisInspMeetRoom.getSmartMuteperson() != null && bisInspMeetRoom.getAutoRecord() != null) {
- jsonEntity.put("configs", meetRoomConfigsDto);
- }
- String json = JSONObject.fromObject(jsonEntity).toString();
- String method = "POST";
- String reqPath = ylinkIp + "/api/rest/external/v2/create_meeting?enterpriseId=" + enterpriseId;
- String requestUriPrefix = ylinkIp + "/api/rest/external/v2/";
- //获取签名
- String signature = MeetUtil.computeSignature(json, method, token, reqPath, requestUriPrefix);
- reqPath += "&signature=" + signature;
- MeetData meetData = new MeetData();
- Result result = HttpUtil.getResponse(reqPath, "POST", json.toString(), meetData.getClass());
- meetData = (MeetData) result.getData();
- if (result.isSuccess()) {
- bisInspMeetRoom.setMeetingNumber(meetData.getMeetingNumber());
- return bisInspMeetRoom;
- } else {
- return null;
- }
- }
- @Override
- public BisInspMeetRoom add(BisInspMeetRoom bisInspMeetRoom) throws IOException {
- //首先调用小鱼sdk 创建会议室,成功后,再添加到数据库表里
- //调用小鱼sdk
- if (bisInspMeetRoom.getMeetingNumber() == null || "".equals(bisInspMeetRoom.getMeetingNumber())) {
- Map<String, Object> jsonEntity = new HashMap<>();
- jsonEntity.put("meetingName", bisInspMeetRoom.getMeetingName());
- if (bisInspMeetRoom.getMaxParticipant() != null) {
- jsonEntity.put("maxParticipant", bisInspMeetRoom.getMaxParticipant());
- }
- jsonEntity.put("requirePassword", "0".equals(bisInspMeetRoom.getRequirePassword()) ? false : true);
- jsonEntity.put("password", bisInspMeetRoom.getInPassword() == null ? "" : bisInspMeetRoom.getInPassword());
- jsonEntity.put("controlPassword", bisInspMeetRoom.getControlPassword());
- if (bisInspMeetRoom.getAutoMute() != null) {
- jsonEntity.put("autoMute", bisInspMeetRoom.getAutoMute());
- }
- if (bisInspMeetRoom.getStartTime() != null && bisInspMeetRoom.getEndTime() != null) {
- jsonEntity.put("startTime", bisInspMeetRoom.getStartTime().getTime());
- jsonEntity.put("endTime", bisInspMeetRoom.getEndTime().getTime());
- }
- MeetRoomConfigsSetDto meetRoomConfigsDto = new MeetRoomConfigsSetDto();
- if (bisInspMeetRoom.getAutoRecord() != null) {
- meetRoomConfigsDto.setAutoRecord("0".equals(bisInspMeetRoom.getAutoRecord()) ? false : true);
- }
- if (bisInspMeetRoom.getSmartMuteperson() != null) {
- meetRoomConfigsDto.setSmartMutePerson(bisInspMeetRoom.getSmartMuteperson());
- }
- if (bisInspMeetRoom.getSmartMuteperson() != null && bisInspMeetRoom.getAutoRecord() != null) {
- jsonEntity.put("configs", meetRoomConfigsDto);
- }
- String json = JSONObject.fromObject(jsonEntity).toString();
- String method = "POST";
- String reqPath = ylinkIp + "/api/rest/external/v2/create_meeting?enterpriseId=" + enterpriseId;
- String requestUriPrefix = ylinkIp + "/api/rest/external/v2/";
- //获取签名
- String signature = MeetUtil.computeSignature(json, method, token, reqPath, requestUriPrefix);
- reqPath += "&signature=" + signature;
- MeetData meetData = new MeetData();
- Result result = HttpUtil.getResponse(reqPath, "POST", json.toString(), meetData.getClass());
- meetData = (MeetData) result.getData();
- if (result.isSuccess()) {
- try {
- String uuid = UuidUtil.uuid(); // 生成uuid
- bisInspMeetRoom.setId(uuid);
- bisInspMeetRoom.setIntm(new Date());
- bisInspMeetRoom.setUptm(new Date());
- bisInspMeetRoom.setMeetingNumber(meetData.getMeetingNumber());
- bisInspMeetRoom.setShareUrl(meetData.getShareUrl());
- bisInspMeetRoom.setInPassword(meetData.getPassword());
- bisInspMeetRoom.setControlPassword(meetData.getControlPassword());
- bisInspMeetRoom.setFlagValid("1");
- //根据人员获取人员所在机构
- BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersDao.get(bisInspMeetRoom.getPersId());
- bisInspMeetRoom.setPersName(bisInspAllRlationPers.getPersName());
- bisInspMeetRoom.setOrgNm(bisInspAllRlationPers.getOrgNm());
- bisInspMeetRoom.setOrgId(bisInspAllRlationPers.getOrgId());
- if (bisInspMeetRoom.getUsOrgId() != null) {
- BisInspOrgParam bisInspOrgParam = new BisInspOrgParam();
- bisInspOrgParam.setOrgId(bisInspMeetRoom.getUsOrgId());
- List<BisInspOrg> bisInspOrgs = bisInspOrgDao.findList(bisInspOrgParam);
- if (bisInspOrgs.size() == 1) {
- bisInspMeetRoom.setUsOrgNm(bisInspOrgs.get(0).getOrgNm());
- }
- }
- bisInspMeetRoomDao.insert(bisInspMeetRoom);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- } else {
- logger.info(String.valueOf(result.getErrorStatus()));
- }
- } else {
- String uuid = UuidUtil.uuid(); // 生成uuid
- bisInspMeetRoom.setId(uuid);
- bisInspMeetRoom.setIntm(new Date());
- bisInspMeetRoom.setUptm(new Date());
- bisInspMeetRoom.setMeetingNumber(bisInspMeetRoom.getMeetingNumber());
- bisInspMeetRoom.setShareUrl(bisInspMeetRoom.getShareUrl());
- bisInspMeetRoom.setInPassword(bisInspMeetRoom.getInPassword());
- bisInspMeetRoom.setControlPassword(bisInspMeetRoom.getControlPassword());
- bisInspMeetRoom.setFlagValid("1");
- //根据人员获取人员所在机构
- BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersDao.get(bisInspMeetRoom.getPersId());
- bisInspMeetRoom.setPersName(bisInspAllRlationPers.getPersName());
- bisInspMeetRoom.setOrgNm(bisInspAllRlationPers.getOrgNm());
- bisInspMeetRoom.setOrgId(bisInspAllRlationPers.getOrgId());
- if (bisInspMeetRoom.getUsOrgId() != null) {
- BisInspOrgParam bisInspOrgParam = new BisInspOrgParam();
- bisInspOrgParam.setOrgId(bisInspMeetRoom.getUsOrgId());
- List<BisInspOrg> bisInspOrgs = bisInspOrgDao.findList(bisInspOrgParam);
- if (bisInspOrgs.size() == 1) {
- bisInspMeetRoom.setUsOrgNm(bisInspOrgs.get(0).getOrgNm());
- }
- }
- bisInspMeetRoomDao.insert(bisInspMeetRoom);
- }
- return bisInspMeetRoom;
- }
- @Override
- public int del(String id) throws IOException {
- String json = "";
- BisInspMeetRoom bisInspMeetRoom = bisInspMeetRoomDao.get(id);
- if (bisInspMeetRoom != null) {
- //调用小鱼sdk 删除会议号
- String method = "DELETE";
- String reqPath = ylinkIp + "/api/rest/external/v1/meetingInfo/" + bisInspMeetRoom.getMeetingNumber() + "?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()) {
- return bisInspMeetRoomDao.delete(bisInspMeetRoom.getId());
- } else {
- return result.getErrorStatus();
- }
- } else {
- return 6001;
- }
- }
- @Override
- public int edit(BisInspMeetRoom bisInspMeetRoom) throws IOException {
- Map<String, Object> jsonEntity = new HashMap<>();
- jsonEntity.put("meettingRoomName", bisInspMeetRoom.getMeetingName());
- if (bisInspMeetRoom.getAutoMute() != null) {
- jsonEntity.put("autoMute", bisInspMeetRoom.getAutoMute());
- }
- if (bisInspMeetRoom.getSmartMuteperson() != null) {
- jsonEntity.put("smartMutePerson", bisInspMeetRoom.getSmartMuteperson());
- }
- jsonEntity.put("autoRecord", bisInspMeetRoom.getAutoRecord() == null ? false : true);
- jsonEntity.put("expireTime", bisInspMeetRoom.getEndTime().getTime());
- jsonEntity.put("password", bisInspMeetRoom.getInPassword());
- jsonEntity.put("meetingControlPwd", bisInspMeetRoom.getControlPassword());
- JSONObject json = JSONObject.fromObject(jsonEntity);
- String method = "PUT";
- String reqPath = ylinkIp + "/api/rest/external/v1/meetingInfo/" + bisInspMeetRoom.getMeetingNumber() + "?enterpriseId=" + enterpriseId;
- String requestUriPrefix = ylinkIp + "/api/rest/external/v1/";
- String signature = MeetUtil.computeSignature(json.toString(), method, token, reqPath, requestUriPrefix);
- reqPath += "&signature=" + signature;
- MeetData meetData = new MeetData();
- Result result = HttpUtil.getResponse(reqPath, method, json.toString(), meetData.getClass());
- if (result.isSuccess()) {
- bisInspMeetRoom.setUptm(new Date());
- return bisInspMeetRoomDao.update(bisInspMeetRoom);
- } else {
- return result.getErrorStatus();
- }
- }
- @Override
- public PageInfo getRoomByPersId(BisInspMeetRoomParam bisInspMeetRoomParam) throws IOException {
- //根据人员获取人员所在机构
- String orgId = bisInspAllRlationPersDao.get(bisInspMeetRoomParam.getPersId()).getOrgId();
- if ("027".equals(orgId) || "029".equals(orgId) || "041".equals(orgId) || "042".equals(orgId)) {
- bisInspMeetRoomParam.setPersId(null);
- } else {
- bisInspMeetRoomParam.setUsOrgId(orgId);
- }
- PageHelper.startPage(bisInspMeetRoomParam);
- List<BisInspMeetRoomDto> bisInspMeetRooms = bisInspMeetRoomDao.getRoomByPersId(bisInspMeetRoomParam);
- PageInfo page = new PageInfo(bisInspMeetRooms);
- return page;
- }
- @Override
- public List<BisInspMeetRoomDto> meetingStatus(String callNumber) throws IOException {
- String method = "GET";
- String json = "";
- String reqPath = ylinkIp + "/api/rest/external/v1/meetingInfo/" + enterpriseId + "/meetingRoomInfo?enterpriseId=" + enterpriseId;
- String requestUriPrefix = ylinkIp + "/api/rest/external/v1/";
- String signature = MeetUtil.computeSignature(json, method, token, reqPath, requestUriPrefix);
- reqPath += "&signature=" + signature;
- MeetData meetData = new MeetData();
- Result result = HttpUtil.getResponse(reqPath, method, json, meetData.getClass());
- if (result.isSuccess()) {
- return null;
- } else {
- return null;
- }
- }
- @Override
- public int deleteByCode(String meetId) throws IOException {
- //调用小鱼sdk 删除会议号
- String json = "";
- String method = "DELETE";
- String reqPath = ylinkIp + "/api/rest/external/v1/meetingInfo/" + meetId + "?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()) {
- return result.getErrorStatus();
- } else {
- return result.getErrorStatus();
- }
- }
- }
|