| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- package cn.com.goldenwater.dcproj.service.impl.meeting;
- import cn.com.goldenwater.dcproj.dao.BisInspAllRlationPersDao;
- import cn.com.goldenwater.dcproj.dao.BisInspMeetDiscussDao;
- import cn.com.goldenwater.dcproj.dao.BisInspMeetDiscussPersDao;
- import cn.com.goldenwater.dcproj.dao.BisInspMeetMntsSmsDao;
- import cn.com.goldenwater.dcproj.model.*;
- import cn.com.goldenwater.dcproj.param.BisInspMeetDiscussParam;
- import cn.com.goldenwater.dcproj.param.BisInspMeetDiscussPersParam;
- import cn.com.goldenwater.dcproj.param.DeviceList;
- import cn.com.goldenwater.dcproj.service.BisInspMeetDiscussService;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.utils.HttpClientUtils;
- import cn.com.goldenwater.dcproj.utils.gwxy.MeetUtil;
- import cn.com.goldenwater.dcproj.utils.gwxy.MeetingReminders;
- import cn.com.goldenwater.id.util.UuidUtil;
- import com.xylink.util.HttpUtil;
- import com.xylink.util.Result;
- import net.sf.json.JSONObject;
- 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-30
- */
- @Service
- @Transactional
- public class BisInspMeetDiscussServiceImpl extends AbstractCrudService<BisInspMeetDiscuss, BisInspMeetDiscussParam> implements BisInspMeetDiscussService {
- @Autowired
- private BisInspMeetDiscussDao bisInspMeetDiscussDao;
- @Autowired
- private BisInspAllRlationPersDao bisInspAllRlationPersDao;
- @Autowired
- private BisInspMeetDiscussPersDao bisInspMeetDiscussPersDao;
- @Autowired
- private BisInspMeetMntsSmsDao bisInspMeetMntsSmsDao;
- @Value("${ylink.enterpriseId}")
- public String enterpriseId;
- @Value("${ylink.token}")
- public String token;
- @Value("${ylink.ip}")
- public String ylinkIp;
- @Value("${api.key}")
- private String apiKey;
- @Value("${api.url}")
- private String apiUrl;
- @Value("${api.secrect}")
- private String apiSecrect;
- public BisInspMeetDiscussServiceImpl(BisInspMeetDiscussDao bisInspMeetDiscussDao) {
- super(bisInspMeetDiscussDao);
- this.bisInspMeetDiscussDao = bisInspMeetDiscussDao;
- }
- @Autowired
- BisInspMeetRoomServiceImpl bisInspMeetRoomService;
- /**
- * 根据名称创建1年的会议号,返回会议号
- *
- * @param name 会议室名称
- * @return
- */
- public BisInspMeetRoom createMeetNumber(String name, String persId) throws IOException {
- Date startTime = new Date();
- Date endTime = new Date();
- Calendar cal = Calendar.getInstance();
- cal.setTime(endTime);//设置起时间
- cal.add(Calendar.YEAR, 1);//增加一年
- endTime = cal.getTime();
- BisInspMeetRoom bisInspMeetRoom = new BisInspMeetRoom();
- bisInspMeetRoom.setMeetingName(name);
- bisInspMeetRoom.setStartTime(startTime);
- bisInspMeetRoom.setEndTime(endTime);
- bisInspMeetRoom.setRequirePassword("0");
- bisInspMeetRoom.setControlPassword("63204617");
- bisInspMeetRoom.setPersId(persId);
- return bisInspMeetRoomService.addXylink(bisInspMeetRoom);
- }
- @Override
- public int add(BisInspMeetDiscuss bisInspMeetDiscuss) throws IOException {
- //创建讨论组会议号
- String meetNumber = createMeetNumber(bisInspMeetDiscuss.getDisNm(), bisInspMeetDiscuss.getPersId()).getMeetingNumber();
- bisInspMeetDiscuss.setMeetingNumber(meetNumber);
- String uuid = UuidUtil.uuid(); // 生成uuid
- bisInspMeetDiscuss.setId(uuid);
- bisInspMeetDiscuss.setFlagValid("1");
- bisInspMeetDiscuss.setIntm(new Date());
- bisInspMeetDiscuss.setUptm(new Date());
- bisInspMeetDiscuss.setFlagValid("1");
- BisInspAllRlationPers bisInspAllRlationPers1 = bisInspAllRlationPersDao.get(bisInspMeetDiscuss.getPersId());
- bisInspMeetDiscuss.setPersName(bisInspAllRlationPers1.getPersName());
- bisInspMeetDiscuss.setOrgId(bisInspAllRlationPers1.getOrgId());
- bisInspMeetDiscuss.setOrgNm(bisInspAllRlationPers1.getOrgNm());
- int i = bisInspMeetDiscussDao.insert(bisInspMeetDiscuss);
- //循环添加讨论组人员
- List<BisInspMeetDiscussPers> bisInspMeetDiscussPers = bisInspMeetDiscuss.getBisInspMeetDiscussPersList();
- for (BisInspMeetDiscussPers item : bisInspMeetDiscussPers) {
- String persIduuid = UuidUtil.uuid(); // 生成uuid
- //根据人员id获取姓名及小鱼账号
- BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersDao.get(item.getPersId());
- item.setPersName(bisInspAllRlationPers.getPersName());
- item.setImgurl(bisInspAllRlationPers.getImgurl());
- item.setIntm(new Date());
- item.setUptm(new Date());
- item.setDisId(uuid);
- item.setId(persIduuid);
- item.setFlagValid("1");
- item.setCallnumber(bisInspAllRlationPers.getMobilenumb());
- bisInspMeetDiscussPersDao.insert(item);
- }
- return i;
- }
- @Override
- public int del(String id) throws IOException {
- //先删除讨论组下的人员 再删除讨论组
- BisInspMeetDiscussPersParam bisInspMeetDiscussPersParam = new BisInspMeetDiscussPersParam();
- bisInspMeetDiscussPersParam.setDisId(id);
- List<BisInspMeetDiscussPers> bisInspMeetDiscussPers = bisInspMeetDiscussPersDao.findList(bisInspMeetDiscussPersParam);
- for (BisInspMeetDiscussPers item : bisInspMeetDiscussPers) {
- bisInspMeetDiscussPersDao.delete(item.getId());
- }
- //根据讨论组删除会议号
- BisInspMeetDiscuss bisInspMeetDiscuss = bisInspMeetDiscussDao.get(id);
- if (delRoom(bisInspMeetDiscuss.getMeetingNumber()) == 200) {
- return bisInspMeetDiscussDao.delete(id);
- } else {
- return 0;
- }
- }
- public int delRoom(String meetingNumber) throws IOException {
- String json = "";
- //调用小鱼sdk 删除会议号
- String method = "DELETE";
- String reqPath = ylinkIp + "/api/rest/external/v1/meetingInfo/" + meetingNumber + "?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);
- return result.getErrorStatus();
- }
- @Override
- public int invitation(String id) throws IOException {
- BisInspMeetDiscussPersParam bisInspMeetDiscussPersParam = new BisInspMeetDiscussPersParam();
- bisInspMeetDiscussPersParam.setDisId(id);
- List<BisInspMeetDiscussPers> bisInspMeetDisCussPers = bisInspMeetDiscussPersDao.findList(bisInspMeetDiscussPersParam);
- BisInspMeetDiscuss bisInspMeetDiscuss = bisInspMeetDiscussDao.get(id);
- List<DeviceList> deviceLists = new ArrayList<>();
- for (int i = 0; i < bisInspMeetDisCussPers.size(); i++) {
- DeviceList deviceList = new DeviceList();
- deviceList.setNumber(bisInspMeetDisCussPers.get(i).getCallnumber());
- deviceLists.add(deviceList);
- }
- //调用小鱼邀请入会,采用临时会议号
- List nmber = new ArrayList<String>();
- Map<String, Object> jsonEntity = new HashMap<>();
- jsonEntity.put("callNumber", bisInspMeetDiscuss.getMeetingNumber());
- jsonEntity.put("deviceList", deviceLists);
- JSONObject json = JSONObject.fromObject(jsonEntity);
- String method = "PUT";
- String reqPath = ylinkIp + "/api/rest/external/v1/conferenceControl/invitation?enterpriseId=" + enterpriseId;
- String requestUriPrefix = ylinkIp + "/api/rest/external/v1/";
- String signature = MeetUtil.computeSignature(json.toString(), method, token, reqPath, requestUriPrefix);
- reqPath += "&signature=" + signature;
- MeetingReminders meetingReminders = new MeetingReminders();
- Result result = HttpUtil.getResponse(reqPath, method, json.toString(), meetingReminders.getClass());
- if (result.isSuccess()) {
- return 0;
- } else {
- return result.getErrorStatus();
- }
- }
- @Override
- public int sendSms(String id) throws Exception {
- BisInspMeetDiscuss bisInspMeetDiscuss = bisInspMeetDiscussDao.get(id);
- BisInspMeetDiscussPersParam bisInspMeetDiscussPersParam = new BisInspMeetDiscussPersParam();
- bisInspMeetDiscussPersParam.setDisId(id);
- List<BisInspMeetDiscussPers> bisInspMeetDiscussPers = bisInspMeetDiscussPersDao.findList(bisInspMeetDiscussPersParam);
- for (BisInspMeetDiscussPers item : bisInspMeetDiscussPers) {
- //发短信
- Map<String, String> params = new HashMap<String, String>();
- params.put("apiKey", apiKey);
- params.put("apiSecrect", apiSecrect);
- params.put("templateParam", "{\"depnm\":\"" + bisInspMeetDiscuss.getDisNm() + "\"}");
- params.put("signName", "金水云平台");
- params.put("templeteCode", "SMS_166778623");
- params.put("mobile", item.getCallnumber());
- String content = HttpClientUtils.simplePostInvoke(apiUrl+"/gateway/api/sms/send", params);
- BisInspMeetMntsSms bisInspMeetMntsSms = new BisInspMeetMntsSms();
- bisInspMeetMntsSms.setId(UuidUtil.uuid());
- bisInspMeetMntsSms.setFlagValid("1");
- bisInspMeetMntsSms.setMeetRecodeId(id);
- bisInspMeetMntsSms.setIntm(new Date());
- bisInspMeetMntsSms.setUptm(new Date());
- bisInspMeetMntsSms.setPersId(item.getPersId());
- bisInspMeetMntsSms.setSms(params.get("templateParam").toString());
- bisInspMeetMntsSmsDao.insert(bisInspMeetMntsSms);
- }
- return 0;
- }
- @Override
- public List<BisInspMeetDiscuss> findDiscuss(String persId) {
- return bisInspMeetDiscussDao.findDiscuss(persId);
- }
- @Override
- public int edit(BisInspMeetDiscuss bisInspMeetDiscuss) {
- bisInspMeetDiscuss.setUptm(new Date());
- return bisInspMeetDiscussDao.update(bisInspMeetDiscuss);
- }
- }
|