| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
- package cn.com.goldenwater.dcproj.service.impl.meeting;
- import cn.com.goldenwater.dcproj.dao.BisInspAllRlationPersDao;
- import cn.com.goldenwater.dcproj.dao.BisInspMeetMntsCustomsDao;
- import cn.com.goldenwater.dcproj.dao.BisInspMeetMntsSmsDao;
- import cn.com.goldenwater.dcproj.dao.BisInspMeetRecodeDao;
- import cn.com.goldenwater.dcproj.model.*;
- import cn.com.goldenwater.dcproj.param.BisInspMeetMntsCustomsParam;
- import cn.com.goldenwater.dcproj.param.BisInspMeetRecodeParam;
- import cn.com.goldenwater.dcproj.service.BisInspMeetRecodeService;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.utils.HttpClientUtils;
- import cn.com.goldenwater.dcproj.utils.gwxy.MeetData;
- 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.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.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.text.SimpleDateFormat;
- import java.util.*;
- /**
- * @author lhc
- * @date 2019-5-27
- */
- @Service
- @Transactional
- public class BisInspMeetRecodeServiceImpl extends AbstractCrudService<BisInspMeetRecode, BisInspMeetRecodeParam> implements BisInspMeetRecodeService {
- @Autowired
- private BisInspMeetRecodeDao bisInspMeetRecodeDao;
- @Value("${ylink.enterpriseId}")
- public String enterpriseId;
- @Value("${ylink.token}")
- public String token;
- @Value("${ylink.ip}")
- public String ylinkIp;
- @Autowired
- private BisInspAllRlationPersDao bisInspAllRlationPersDao;
- @Autowired
- private BisInspMeetMntsCustomsDao bisInspMeetMntsCustomsDao;
- @Value("${api.key}")
- private String apiKey;
- @Value("${api.url}")
- private String apiUrl;
- @Value("${api.secrect}")
- private String apiSecrect;
- @Autowired
- private BisInspMeetMntsSmsDao bisInspMeetMntsSmsDao;
- public BisInspMeetRecodeServiceImpl(BisInspMeetRecodeDao bisInspMeetRecodeDao) {
- super(bisInspMeetRecodeDao);
- this.bisInspMeetRecodeDao = bisInspMeetRecodeDao;
- }
- @Override
- public int add(BisInspMeetRecode bisInspMeetRecode) throws IOException {
- int effrow = 0;
- //添加到小鱼sdk
- String uuid = UuidUtil.uuid(); // 生成uuid
- bisInspMeetRecode.setId(uuid);
- Map<String, Object> jsonEntity = new HashMap<>();
- jsonEntity.put("title", bisInspMeetRecode.getTitle());
- jsonEntity.put("startTime", bisInspMeetRecode.getStartTime().getTime());
- jsonEntity.put("endTime", bisInspMeetRecode.getEndTime().getTime());
- List<String> phones = new ArrayList<>();
- for (int i = 0; i < bisInspMeetRecode.getParticipantsList().size(); i++) {
- //提取参会人员的手机号信息
- BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersDao.get(bisInspMeetRecode.getParticipantsList().get(i).getPersId());
- bisInspMeetRecode.getParticipantsList().get(i).setPersName(bisInspAllRlationPers.getPersName());
- bisInspMeetRecode.getParticipantsList().get(i).setMeetRecodeId(uuid);
- bisInspMeetRecode.getParticipantsList().get(i).setFlagValid("1");
- bisInspMeetRecode.getParticipantsList().get(i).setIntm(new Date());
- bisInspMeetRecode.getParticipantsList().get(i).setUptm(new Date());
- String phone = bisInspAllRlationPers.getMobilenumb();
- bisInspMeetRecode.getParticipantsList().get(i).setCallnumber(phone);
- phones.add(phone);
- }
- if (phones.size() > 0) {
- String participants = org.apache.commons.lang3.StringUtils.join(phones, ",");
- jsonEntity.put("participants", phones);
- bisInspMeetRecode.setParticipants(participants);
- }
- jsonEntity.put("address", bisInspMeetRecode.getAddress());
- jsonEntity.put("details", bisInspMeetRecode.getDetails());
- jsonEntity.put("autoInvite", bisInspMeetRecode.getAutoinvite());
- jsonEntity.put("password", bisInspMeetRecode.getPassword());
- jsonEntity.put("conferenceControlPassword", bisInspMeetRecode.getControlPassword());
- jsonEntity.put("meetingRoomType", bisInspMeetRecode.getMeetingroomtype());
- jsonEntity.put("conferenceNumber", bisInspMeetRecode.getConferencenumber());
- jsonEntity.put("autoRecord", bisInspMeetRecode.getAutorecord());
- if (bisInspMeetRecode.getMainimage() != null) {
- jsonEntity.put("mainImage", bisInspMeetRecode.getMainimage());
- }
- JSONObject json = JSONObject.fromObject(jsonEntity);
- String method = "POST";
- String reqPath = ylinkIp + "/api/rest/external/v1/meetingreminders?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()) {
- meetingReminders = (MeetingReminders) result.getData();
- bisInspMeetRecode.setMeetingId(meetingReminders.getMeetingId());
- bisInspMeetRecode.setConferencenumber(meetingReminders.getMeetingRoomNumber());
- bisInspMeetRecode.setIntm(new Date());
- bisInspMeetRecode.setUptm(new Date());
- bisInspMeetRecode.setFlagValid("1");
- bisInspMeetRecode.setSms("0");
- BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersDao.get(bisInspMeetRecode.getPersId());
- bisInspMeetRecode.setPersName(bisInspAllRlationPers.getPersName());
- bisInspMeetRecode.setOrgId(bisInspAllRlationPers.getOrgId());
- bisInspMeetRecode.setOrgNm(bisInspAllRlationPers.getOrgNm());
- BisInspAllRlationPers bisInspAllRlationPersControl = bisInspAllRlationPersDao.get(bisInspMeetRecode.getControlPersId());
- bisInspMeetRecode.setControlPersName(bisInspAllRlationPersControl.getPersName());
- effrow = bisInspMeetRecodeDao.insert(bisInspMeetRecode);
- //插入参会人员信息
- for (BisInspMeetMntsCustoms item : bisInspMeetRecode.getParticipantsList()) {
- item.setId(UuidUtil.uuid());
- effrow = bisInspMeetMntsCustomsDao.insert(item);
- }
- return effrow;
- } else {
- return result.getErrorStatus();
- }
- }
- @Override
- public int edit(BisInspMeetRecode bisInspMeetRecode) throws IOException {
- int effrow;
- BisInspMeetRecode bisInspMeetRecode1 = bisInspMeetRecodeDao.get(bisInspMeetRecode.getId());
- Map<String, Object> jsonEntity = new HashMap<>();
- jsonEntity.put("title", bisInspMeetRecode.getTitle());
- jsonEntity.put("startTime", bisInspMeetRecode.getStartTime().getTime());
- jsonEntity.put("endTime", bisInspMeetRecode.getEndTime().getTime());
- List<String> phones = new ArrayList<>();
- for (int i = 0; i < bisInspMeetRecode.getParticipantsList().size(); i++) {
- //提取参会人员的手机号信息
- BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersDao.get(bisInspMeetRecode.getParticipantsList().get(i).getPersId());
- bisInspMeetRecode.getParticipantsList().get(i).setPersName(bisInspAllRlationPers.getPersName());
- bisInspMeetRecode.getParticipantsList().get(i).setMeetRecodeId(bisInspMeetRecode.getId());
- bisInspMeetRecode.getParticipantsList().get(i).setFlagValid("1");
- bisInspMeetRecode.getParticipantsList().get(i).setIntm(new Date());
- bisInspMeetRecode.getParticipantsList().get(i).setUptm(new Date());
- String phone = bisInspAllRlationPers.getMobilenumb();
- bisInspMeetRecode.getParticipantsList().get(i).setCallnumber(phone);
- phones.add(phone);
- }
- if (phones.size() > 0) {
- String participants = org.apache.commons.lang3.StringUtils.join(phones, ",");
- jsonEntity.put("participants", phones);
- bisInspMeetRecode.setParticipants(participants);
- }
- if (bisInspMeetRecode.getConferencenumber() != null) {
- jsonEntity.put("conferenceNumber", bisInspMeetRecode.getConferencenumber());
- }
- jsonEntity.put("address", bisInspMeetRecode.getAddress());
- jsonEntity.put("details", bisInspMeetRecode.getDetails());
- jsonEntity.put("autoInvite", bisInspMeetRecode.getAutoinvite());
- if (bisInspMeetRecode.getMainimage() != null) {
- jsonEntity.put("mainImage", bisInspMeetRecode.getMainimage());
- }
- if (bisInspMeetRecode.getParticipantsList() != null) {
- bisInspMeetRecode.setParticipants(org.apache.commons.lang3.StringUtils.join(phones, ","));
- }
- JSONObject json = JSONObject.fromObject(jsonEntity);
- String method = "PUT";
- String reqPath = ylinkIp + "/api/rest/external/v1/meetingreminders/" + bisInspMeetRecode1.getMeetingId() + "?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()) {
- //先删除下面的人员 然后添加人员
- BisInspMeetMntsCustomsParam bisInspMeetMntsCustomsParam = new BisInspMeetMntsCustomsParam();
- bisInspMeetMntsCustomsParam.setMeetRecodeId(bisInspMeetRecode.getId());
- List<BisInspMeetMntsCustoms> bisInspMeetMntsCustoms = bisInspMeetMntsCustomsDao.findList(bisInspMeetMntsCustomsParam);
- for (int i = 0; i < bisInspMeetMntsCustoms.size(); i++) {
- effrow = bisInspMeetMntsCustomsDao.delete(bisInspMeetMntsCustoms.get(i).getId());
- }
- //插入相关人员信息
- for (BisInspMeetMntsCustoms item : bisInspMeetRecode.getParticipantsList()) {
- item.setId(UuidUtil.uuid());
- effrow = bisInspMeetMntsCustomsDao.insert(item);
- }
- return bisInspMeetRecodeDao.update(bisInspMeetRecode);
- } else {
- return result.getErrorStatus();
- }
- }
- @Override
- public int del(String id) throws IOException {
- BisInspMeetRecode bisInspMeetRecode1 = bisInspMeetRecodeDao.get(id);
- if (bisInspMeetRecode1 != null && bisInspMeetRecode1.getMeetingId() != null) {
- String method = "DELETE";
- String reqPath = ylinkIp + "/api/rest/external/v1/meetingreminders/" + bisInspMeetRecode1.getMeetingId() + "?enterpriseId=" + enterpriseId;
- String requestUriPrefix = ylinkIp + "/api/rest/external/v1/";
- String signature = MeetUtil.computeSignature("", method, token, reqPath, requestUriPrefix);
- reqPath += "&signature=" + signature;
- MeetData meetData = new MeetData();
- Result result = HttpUtil.getResponse(reqPath, method, "", meetData.getClass());
- if (result.isSuccess()) {
- //先删除 预约会议下的人员
- BisInspMeetMntsCustomsParam bisInspMeetMntsCustomsParam = new BisInspMeetMntsCustomsParam();
- bisInspMeetMntsCustomsParam.setMeetRecodeId(id);
- List<BisInspMeetMntsCustoms> bisInspMeetMntsCustoms = bisInspMeetMntsCustomsDao.findList(bisInspMeetMntsCustomsParam);
- for (int i = 0; i < bisInspMeetMntsCustoms.size(); i++) {
- bisInspMeetMntsCustomsDao.delete(bisInspMeetMntsCustoms.get(i).getId());
- }
- //删除预约会议
- return bisInspMeetRecodeDao.delete(id);
- } else {
- return result.getErrorStatus();
- }
- } else {
- return 6001;
- }
- }
- @Override
- public int sendSms(String id) throws Exception {
- //根据ID 提取参加会议的人,如果是主持会议的人短信内容添加会控密码
- SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- BisInspMeetRecode bisInspMeetRecode = bisInspMeetRecodeDao.get(id);
- BisInspMeetMntsCustomsParam bisInspMeetMntsCustomsParam = new BisInspMeetMntsCustomsParam();
- bisInspMeetMntsCustomsParam.setMeetRecodeId(id);
- List<BisInspMeetMntsCustoms> bisInspMeetMntsCustoms = bisInspMeetMntsCustomsDao.findList(bisInspMeetMntsCustomsParam);
- String persons = getPersons(bisInspMeetMntsCustoms);
- for (BisInspMeetMntsCustoms item : bisInspMeetMntsCustoms) {
- Map<String, String> params = new HashMap<String, String>();
- Random rand = new Random();
- int num = rand.nextInt(900000) + 100000;
- String code = "yuyue";
- params.put("apiKey", apiKey);
- params.put("apiSecrect", apiSecrect);
- params.put("templateParam", "{\"title\":\"" + bisInspMeetRecode.getTitle() + "\",\"tm\":\"" + simpleDateFormat.format(bisInspMeetRecode.getStartTime()) + "\",\"persons\":\"" + persons + "\",\"meetNum\":\"" + bisInspMeetRecode.getConferencenumber() + "\",\"pwd\":\"" + bisInspMeetRecode.getPassword() + "\"}");
- params.put("signName", "金水云平台");
- params.put("templeteCode", "SMS_166778434");
- 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);
- }
- //更新发送短信状态
- bisInspMeetRecode.setSms("1");
- return bisInspMeetRecodeDao.update(bisInspMeetRecode);
- }
- public String getPersons(List<BisInspMeetMntsCustoms> bisInspMeetMntsCustoms) {
- String peresons = "";
- for (BisInspMeetMntsCustoms item : bisInspMeetMntsCustoms) {
- peresons += item.getPersName() + ",";
- }
- if (peresons.length() > 0) {
- peresons = peresons.substring(0, peresons.length() - 1);
- }
- return peresons;
- }
- @Override
- public PageInfo getRecodeInfo(BisInspMeetRecodeParam bisInspMeetRecodeParam) throws IOException {
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersDao.get(bisInspMeetRecodeParam.getPersId());
- String orgId = bisInspAllRlationPers.getOrgId();
- if ("029".equals(orgId) || "027".equals(orgId)) {
- bisInspMeetRecodeParam.setPersId(null);
- } else {
- Date dt = new Date();
- bisInspMeetRecodeParam.setTm(formatter.format(dt));
- }
- PageHelper.startPage(bisInspMeetRecodeParam);
- List<BisInspMeetRecode> bisInspMeetRecodes = bisInspMeetRecodeDao.getRecodeInfo(bisInspMeetRecodeParam);
- PageInfo<BisInspMeetRecode> pageInfo = new PageInfo(bisInspMeetRecodes);
- return pageInfo;
- }
- }
|