You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

203 lines
8.8 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
*
* Copyright (c) 2001-2016 泛微软件.
* 泛微协同商务系统,版权所有.
*
*/
package com.engine.meeting.cmd.meetingmobilevideo;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import net.sf.json.JSONObject;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.hrm.resource.ResourceComInfo;
import weaver.meeting.video.util.VideoMeetingUtil;
import weaver.systeminfo.SystemEnv;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 获取视频会议未开始的数据
*
* @author yp
*/
public class GetNotStartListCmd extends AbstractCommonCommand<Map<String, Object>> {
public GetNotStartListCmd(User user, Map<String, Object> params) {
this.user = user;
this.params = params;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
Map ret = new HashMap();
List datas = new ArrayList();
VideoMeetingUtil vmt = new VideoMeetingUtil();
String _ec_os = Util.null2String(params.get("_ec_os"));//移动端os类型
String ismobile = Util.null2String(params.get("ismobile"));//是否伟移动端请求
RecordSet recordSet = new RecordSet();
String sql = "";
if("sqlserver".equals(recordSet.getDBType())){
sql = "select * from meeting_videolist where (videomtstatus='0' OR videomtstatus = '1') AND videomtenddate>GETDATE()" ;
//只能看到自己的,或者参会
sql += " and (videomtcreater = " + user.getUID();
sql += " or ";
sql += VideoMeetingUtil.getHrmLikeSql("hrmids",user.getUID()+"",recordSet);
sql +=" )";
sql += " ORDER BY videomtbegindate ASC";
}else if ("mysql".equals(recordSet.getDBType())) {
sql = "select * from meeting_videolist where (videomtstatus='0' OR videomtstatus = '1') " ;
//只能看到自己的,或者参会
sql += " and (videomtcreater = " + user.getUID();
sql += " or ";
sql += VideoMeetingUtil.getHrmLikeSql("hrmids",user.getUID()+"",recordSet);
sql +=" )";
sql += "AND videomtenddate>now() ORDER BY videomtbegindate ASC";
}
else if ("postgresql".equals(recordSet.getDBType())) {
sql = "select * from meeting_videolist where (videomtstatus='0' OR videomtstatus = '1') " ;
//只能看到自己的,或者参会
sql += " and (videomtcreater = " + user.getUID();
sql += " or ";
sql += VideoMeetingUtil.getHrmLikeSql("hrmids",user.getUID()+"",recordSet);
sql +=" )";
sql += "AND videomtenddate>now() ORDER BY videomtbegindate ASC";
}
else{
sql = "select * from meeting_videolist where (videomtstatus='0' OR videomtstatus = '1')";
//只能看到自己的,或者参会
sql += " and (videomtcreater = " + user.getUID();
sql += " or ";
sql += VideoMeetingUtil.getHrmLikeSql("hrmids",user.getUID()+"",recordSet);
sql +=" )";
sql += " AND sysdate <to_date(videomtenddate,'yyyy-mm-dd hh24:mi') ORDER BY videomtbegindate ASC ";
}
recordSet.executeQuery(sql);
while (recordSet.next()) {
Map infoMap = new HashMap();
String videomtname = recordSet.getString("videomtname");
String videomtbegindate = recordSet.getString("videomtbegindate");
String videomtenddate = recordSet.getString("videomtenddate");
String manufacturers = recordSet.getString("manufacturers");
String videomtjoinurl = recordSet.getString("videomtjoinurl");
String videomtstarturl = recordSet.getString("videomtstarturl");
String videomtid = recordSet.getString("videomtid");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdff = new SimpleDateFormat("yyyy-MM-dd");
String begin = "";
String end = "";
String id = recordSet.getString("id");
try {
begin = sdf.format(sdff.parse(videomtbegindate));
end = sdf.format(sdff.parse(videomtenddate));
} catch (ParseException e) {
e.printStackTrace();
}
String videomtcreater = recordSet.getString("videomtcreater");
String mtpassword = recordSet.getString("mtpassword");
if("InfowareLab".equals(manufacturers) && "1".equals(ismobile)){//特殊处理红杉树会议链接
videomtstarturl = vmt.getHSSLinkUrl(user.getUID()+"",_ec_os,videomtid,mtpassword,true);
videomtjoinurl = vmt.getHSSLinkUrl(user.getUID()+"",_ec_os,videomtid,mtpassword,false);
}
String oaMtid = Util.null2String(recordSet.getString("oaMtid"));
if (isJson(mtpassword)) {
JSONObject jsonObject = JSONObject.fromObject(mtpassword);
mtpassword = jsonObject.getString("chair_pwd");
}
ResourceComInfo resourceComInfo = null;
try {
resourceComInfo = new ResourceComInfo();
} catch (Exception e) {
e.printStackTrace();
}
String creater = resourceComInfo.getResourcename(videomtcreater);
creater = Util.formatMultiLang(creater ,user.getLanguage()+"");
// if(creater.length()>5){
// creater = creater.substring(0,5)+"...";
// }
if (videomtbegindate.length() > 10) {
videomtbegindate = videomtbegindate.substring(11);
}
if (videomtenddate.length() > 10) {
videomtenddate = videomtenddate.substring(11);
}
if (!begin.equals(end)) {
videomtenddate = SystemEnv.getHtmlLabelName(388785, user.getLanguage()) + videomtenddate;
}
infoMap.put("name", videomtname);
infoMap.put("begin", begin);
infoMap.put("end", end);
infoMap.put("creater", creater);
infoMap.put("videomtbegindate", videomtbegindate);
infoMap.put("videomtenddate", videomtenddate);
infoMap.put("mtpassword", mtpassword);
infoMap.put("id", id);
infoMap.put("videomtid", oaMtid);
infoMap.put("manufacturers", manufacturers);
infoMap.put("videomtjoinurl", videomtjoinurl);
infoMap.put("videomtstarturl", videomtstarturl);
datas.add(infoMap);
}
Map<String, List<User>> map = new HashMap<>();
List newdata = this.getFinalData(datas);
ret.put("datas", newdata);
return ret;
}
public List getFinalData(List<Map> datas) {
Map<Object, List<Map<String, Object>>> map = new HashMap<>();
// Map mapss = new HashMap<>();
List listss = new ArrayList();
for (Map item : datas) {
Map map2 = new HashMap();
map2.put("begin", item.get("begin"));
if (map.containsKey(map2)) {//map中存在此id将数据存放当前key的map中
map.get(map2).add(item);
} else {//map中不存在新建key用来存放数据
List<Map<String, Object>> tmpList = new ArrayList<>();
tmpList.add(item);
Map mapss = new HashMap<>();
mapss.put("date", item.get("begin"));
mapss.put("week", getWeek(Util.null2String(item.get("begin")),user.getLanguage()));
mapss.put("data", tmpList);
listss.add(mapss);
map.put(map2, tmpList);
}
}
return listss;
}
public static boolean isJson(String content) {
try {
JSONObject.fromObject(content);
return true;
} catch (Exception e) {
return false;
}
}
public static String getWeek(String date,int langid) {
String[] arr = date.split("-");
Calendar calendar = Calendar.getInstance();//获得一个日历
calendar.set(Integer.parseInt(arr[0]), Integer.parseInt(arr[1]) - 1, Integer.parseInt(arr[2]));//设置当前时间,月份是从0月开始计算
int number = calendar.get(Calendar.DAY_OF_WEEK);//星期表示1-7是从星期日开始
String[] str = {"", SystemEnv.getHtmlLabelName(16106,langid), SystemEnv.getHtmlLabelName(16100,langid), SystemEnv.getHtmlLabelName(16101,langid),
SystemEnv.getHtmlLabelName(16102,langid), SystemEnv.getHtmlLabelName( 16103,langid), SystemEnv.getHtmlLabelName(16104,langid),SystemEnv.getHtmlLabelName(16105,langid),};
return str[number];
}
@Override
public BizLogContext getLogContext() {
return null;
}
}