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

9 months ago
/*
*
* 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;
}
}