笔记草稿

这篇博客涵盖了Java编程中的一些关键操作,包括:检查重复字段避免插入、文件上传配置、超链接样式设置、HTTP GET和POST请求的实现,以及Excel文件的导出。在文件上传部分,使用了fileinput插件,设定了上传限制和回调函数。HTTP请求涉及了使用HttpClient进行GET和POST操作,包含代理和超时设置。在Excel导出方面,展示了创建工作簿和数据填充的代码,并提供了一个页面等待提示的JavaScript函数。
摘要由CSDN通过智能技术生成
super_help_superdocument.jsp UserHelpAction.java —————————————————— IP校验的代码 function addIp(ipbegin,ipend) { var ipbegintemp = f.ipbegin.value.split(“.”); var ipendtemp = f.ipend.value.split(“.”); for(var i = 0; i ; —————————————————————————- 频道同步:iam3131合的代码: JobConsts.java ChannelInfoDao.java OttChannelJobSender.java 还在ChannelInfoAction.java里面添加MessageEventInit.publish(JobConsts.OTT_CHANNEL_EVENT, 0); CMI合的代码 JobConsts.java OttChannelJobReceiver.java OttChannelDao.java OttChannel.java 注意url要配置 另外注意pojo类的变量名: 比如cmi传递给iam的jsonstr:[{“value”:12,”text”:”JD”}],对应的pojo类应该是有value和text的。 ————————————————————————— UTVCP的同步 CMI中: JobConsts.java UTVCPSender.java IAM中: UTVCPReceiver.java UTVCP.java UTVCPDao.java 对应的建表语句: SELECT ‘create table t_utv_cp’ AS prompt; DROP TABLE IF EXISTS t_utv_cp ; CREATE TABLE t_utv_cp ( operid INT(11) NOT NULL AUTO_INCREMENT, NAME VARCHAR(32) NOT NULL, PRIMARY KEY (operid,NAME) ) ENGINE=INNODB DEFAULT CHARSET=utf8 后来改operid为cpid,对应的建表语句: SELECT ‘create table t_utv_cp’ AS prompt; DROP TABLE IF EXISTS t_utv_cp ; CREATE TABLE t_utv_cp ( cpid VARCHAR(128) NOT NULL, NAME VARCHAR(200) NOT NULL, PRIMARY KEY (cpid,NAME) ) ENGINE=INNODB DEFAULT CHARSET=utf8 ————————————————————————— utvonlineuser.jsp 1、根据用户组选择展示内容
2、频道列表 可以参照请求数链接数页面 注意getnode返回的数据格式: {“data”:[{“value”:”11111”,”text”:”OTT-WK”},{“value”:”node123”,”text”:”cache节点1”},{“value”:”ott1”,”text”:”ott1”},{“value”:”servicenodenj111”,”text”:”南京服务节点1”},{“value”:”test00001”,”text”:”CMI测试节点”}]} 而我一开始是{“data”:[{“channelname”:”sohuname”}]} 将格式修改之后就正常了。 3、查询语句 对比着看 请求数链接数页面的查询参数: queryparam:”{“starttime”:”20161208000000”,”endtime”:”20161208191503”,”timezoneoffset”:28800000,”website”:[],”node”:”“,”servicetype”:”“}” queryparam:”{“starttime”:”20161208000000”,”endtime”:”20161208191530”,”timezoneoffset”:28800000,”website”:[“97”,”98”,”99”],”node”:”“,”servicetype”:”“}” 对于多选的website,是以数组的方式传送的。 传送的时候全选的channel的值都是null,而不是“”,原因是multiple=”multiple” requestconnectService.java里发送大数据的参数: {“granularity”:”0”,”starttime”:”20161207160000”,”endtime”:”20161208115302”,”siteid”:”96,97”,”nodeid”:”node123”} 而我的 UTVOnlineUserService.java {“granularity”:”0”,”starttime”:”20161207160000”,”endtime”:”20161208123254”,”siteid”:”97,98”,”nodeid”:”test00001”,”channelid”:”sohu1”} =================================================================================================== nodeservice_ipv6new.jsp 不能连续导出模板、导出 把exportForm1改成exportForm就可以了 =================================================================================================== 自动上报发送的数据:{“desc”:”已缓存”,”domain”:”http://www.a3.com.cn”,”sendState”:”3”} 按钮状态上报发送的数据:{“data”:[{“desc”:”不缓存”,”domain”:”http://www.sina.com.cn”,”sendState”:”2”}],”action”:”reportWhiteState”} 修改后发送的数据正确:{“data”:[{“desc”:”已缓存”,”domain”:”http://www.a1.com”,”sendState”:”3”}],”action”:”reportWhiteState”} 需要修改自动上报发送数据的代码: public int reportChange(String id,String domain,String status){ JSONObject reportData = new JSONObject(); String desc = null; if(status.equals(“0”)){//0待处理、3可缓存、4缓存失败 desc = getText(“iam.cachejob.processing”); }else if(status.equals(“3”)){ desc = getText(“iam.cachejob.cachesuccess”); }else{ desc = getText(“iam.cachejob.cachefailure”); } reportData.put(“desc”, desc); reportData.put(“domain”, domain); reportData.put(“sendState”, status); JSONObject resultObj = new JSONObject(); try { String reportDataString = reportData.toString(); String report_url = webExchangeConfigService.getItemValueByName(“SD_WHITE_URL”, “WEB”); String result = SendHttpMessage.postMsg(report_url,reportDataString); resultObj = JSONObject.fromObject(result); } catch (Exception e) { e.printStackTrace(); } if(resultObj!=null &&!resultObj.isNullObject()&& resultObj.has(“code”)&&”0”.equals(resultObj.getString(“code”))){ return 0;//上报成功 }else{ return 1; } } 按钮状态上报的代码: public JSONObject reportAll(List domainList){ JSONObject reportData = new JSONObject(); JSONArray list = new JSONArray(); JSONObject bean = new JSONObject(); String tempStr[] = null; for (int i = 0; i 不知道有没有必要action=” 成功 ———————————————————————————————————- bootstrap fileinput在上传成功之后一定要有一个json对象的返回,否则页面会报错。 添加 JSONObject obj = new JSONObject(); obj.put(“result”, “0”); CommonUtils.writeJson(obj.toString()); 成功 =========================================================================================================== 和程文超联调 139没有channelid 联调前发送的param: {“granularity”:”0”,”starttime”:”20161211160000”,”endtime”:”20161212023436”,”siteid”:”“,”nodeid”:”“,”channelid”:null} 程文超给我的建议格式为: curl -XPOST ‘http://10.46.173.147:8080/1124/rest/statistic/useronline/report’ -d ‘{“starttime”:”20161206000000”,”endtime”:”20161207235959”,”channel”:”605”,”node”:”02”}’ 总共改了三处用于联调 if(jobj.containsKey(“node”)){ param.put(StatsticConsts.NODE_ID, jobj.getString(“node”)); // param.put(StatsticConsts.NODE_ID, “605”);//联调 } if(jobj.containsKey(“channel”)){ param.put(StatsticConsts.CHANNEL_ID, jobj.getString(“channel”)); // param.put(StatsticConsts.CHANNEL_ID, “02”);//联调 } url=”http://10.46.173.147:8080/1124/rest/statistic/useronline/report”;//联调 修改后 {“granularity”:”0”,”starttime”:”20161205160000”,”endtime”:”20161207153400”,”siteid”:”“,”nodeid”:”605”,”channelid”:”02”} 联调成功(不知道站点要不要加) ============================================================================================================ 川总让我改查不到数据就不显示图表 原来查不到数据时候返回的resp:{“utvonlineuserline”:{“xaxis”:[],”data”:[[]]}} 在Service类里面都增加一个卫语句: if(xaxis.size()==0){ return null; } 这样没数据就不会显示图表。 =============================================================================================================

=============================================================================================================
//返回更新时间
DateFormat df =new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
Long lastModified = helpFile.lastModified();
Date date = new Date(lastModified);
fileUpdateTime = df.format(date);

=============================================================================================================
(“#file_zh”).fileinput({  
    uploadUrl: ‘<%=path%>/cmi/user_uploadHelpFile.action?fileType=1’,  
    allowedFileExtensions : [‘pdf’],  
    maxFileSize: 0,//单位是KB,0表示不限制文件大小  
    autoReplace: true,  
    maxFileCount: 1,  
    uploadAsync: false,  
})on(“filebatchselected”, function(event, files) {
(this).fileinput(“upload”);
}).on(“filebatchuploadsuccess”, function(event, data) {//上传成功后回调函数
alert(‘处理成功’);
$(“#superZhFile”).text(‘’);
});
uploadAsync: false的时候回调函数如果要生效,只能用filebatchuploadsuccess

或者用下面一种方法: ============================================================================================================= $(“#file_en”).fileinput({ uploadUrl: ‘ 建议用这一种方法 ============================================================================================================= 周三新任务 CAcert_init.action cretificate.jsp CA证书上传时发送的数据: formData:id= ("#form6_id").val();new FormData( (“#form5”)[0]); ============================================================================================================= WebsiteAction.java public String init(){ String operid = (String)this.getSession().get(“OPERID”); int roletype = (Integer)this.getSession().get(“ROLETYPE”); if((roletype == 1) || (!websiteService.isValidOperId(operid))){//isValidOperId(),判断operId是否在t_cp表中 return “super”; }else{ return “success”; } } ============================================================================================================= 姚敏说我原来的方案不好看 删除了按钮组

=============================================================================================================
超链接
a {
text-decoration:none;
}
a:link {
color:#000000;
text-decoration:none;
}
a:visited {
color:#000000
}
a:hover {
text-decoration:none;
color:#DDDDDD;

} ============================================================================================================= 修改IAM向CMI频道同步的问题, CMI侧接收文档: UTVChannelJobReceive.java JobConsts.java UTVChannel.java UTVChannelDao.java 下面的建表语句有问题: SELECT ‘create table t_utvchannelinfo’ AS prompt; DROP TABLE IF EXISTS t_utvchannelinfo ; CREATE TABLE t_utvchannelinfo ( id INT(11) AUTO_INCREMENT NOT NULL, channelcode VARCHAR(32) NOT NULL, channelnum VARCHAR(32) NOT NULL, chinesename VARCHAR(128) NOT NULL, englishname VARCHAR(128) NOT NULL, fieldname VARCHAR(64) NOT NULL, channelname VARCHAR(64) NOT NULL ) ; CREATE UNIQUE INDEX idx_utvchannelinfo_01 ON t_utvchannelinfo(id, channelcode) ; 改成如下: SELECT ‘create table t_utvchannelinfo’ AS prompt; DROP TABLE IF EXISTS t_utvchannelinfo ; CREATE TABLE t_utvchannelinfo ( id INT(11) NOT NULL AUTO_INCREMENT, channelcode VARCHAR(32) NOT NULL, channelnum VARCHAR(32) NOT NULL, chinesename VARCHAR(128) NOT NULL, englishname VARCHAR(128) NOT NULL, fieldname VARCHAR(64) NOT NULL, channelname VARCHAR(64) NOT NULL, PRIMARY KEY (id,channelcode) ) ENGINE=INNODB DEFAULT CHARSET=utf8 =============================================================================== 修改上传文档的更新时间,注意date的12小时和24小时的用法。 /* * 获取文件更新时间 * */ public String getUpdateTime(String fileName){ File file = new File(root, fileName); DateFormat df =new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);//大写为24小时时间,小写为12小时时间 Long lastModified = file.lastModified(); Date date = new Date(lastModified); return df.format(date); } ================================================================================ 频道同步的时候, UTVChannelAction.java用到了基类BaseAction.java里面的BactchDelete方法,如果要把频道同步的方法放在基类不合适。 可以在UTVChannelAction.java里面加一个这种代码: public String batchDelete() throws Exception{ //发送UTV频道同步信息给CMI MessageEventInit.publish(JobConsts.UTV_CHANNEL_EVENT, 0); return super.batchDelete(); } 完美解决。 ================================================================================ WEB CMI_URL http://127.0.0.1:8080/uniportal 字符串 CMI WEB URL,与CMI合设时不需要修改 ================================================================================ CMI上任何操作都要记录到操作日志。 比如 UTVOnlineUserAction.java中 String opername = (String)this.getSession().get(“OPERNAME”); String message = getOperLogText(“cmi.analysis.requestlink.query”,new String[]{opername, start, end}); OsServiceAccess.getInstance().getLogService().writeLog(getSession(), OperConst.REQUEST_LINK, ret, message); 我依葫芦画瓢加了如下代码: String opername = (String)this.getSession().get(“OPERNAME”); OperResult ret = OperResult.SUCCESS;//OperResult ret = OperResult.FAILURE; String message = getOperLogText(“cmi.helpfile.uploadedfile”,new String[]{opername,fileFileName}); OsServiceAccess.getInstance().getLogService().writeLog(getSession(), OperConst.UPLOAD_DOCUMENT, ret, message); 另外国际化代码cmi.helpfile.uploadedfile: 用户[{0}]上传了一个帮助文档,文档名为[{1}]。 User [{0}] uploaded a help manual named [{1}]. 注意: 还要在Code\IAM\V3.01\ZXCDN-IAM-DB-CMIV3.01.04.xx\cmidb_packet\db\mysql\install\cn下的 zxinsys_data.sql中的 CALL proc_res_op_paratype(22590,1,4207,’请求链接数’);后添加 CALL proc_res_op_paratype(22590,1,4208,’帮助手册’); ================================================================================ UTV发给大数据的数据格式: {“granularity”:”0”,”starttime”:”20161215160000”,”endtime”:”20161216012738”,”siteid”:”“,”nodeid”:”“,”channelid”:”“} 请求数链接数发给大数据的格式: {“granularity”:”0”,”starttime”:”20161215160000”,”endtime”:”20161216020336”,”siteid”:”“,”nodeid”:”“} ================================================================================ 解决 接收空流会报错的问题,用ajax试试。 ”> 用ajax好像行不通,现在改为在下载前先判断路径下是否存在这个文件。 代码: ” οnclick=”downloadFile(1)”> function downloadFile(fileType){ .ajax({    
        “type”: “post”,     
        “url”:  “
{pageContext.request.contextPath}/cmi/user_isExist.action?t=” + (new Date()).valueOf(), “dataType”: “json”, “data”: {“fileType”:fileType}, “success”: function(resp){ if(resp.result == 0){//文件存在即下载 window.location.href=”{path}/cmi/fileDownload.action?number=”+fileType;
             }else{
.umapMessager.alert(“”,””); } } }); } 对应的action类方法如下: /* * 判断文件是否存在 * */ public String isExist(){ switch (fileType) { case 1: fileFileName = SUPER_ZH_FILE; break; case 2: fileFileName = SUPER_EN_FILE; break; case 3: fileFileName = CP_ZH_FILE; break; default: fileFileName = CP_EN_FILE; break; } String url = root + File.separator + fileFileName; JSONObject resp = new JSONObject(); if(new File(url).exists()){ resp.put(“result”, 0); }else{ resp.put(“result”, 1); } CommonUtils.writeJson(resp.toString()); return NONE; }
圆满解决。 ================================================================================

================================================================================
加组信息的是operatorstore.action,但是在struts-cmi.xml文件中却找不到。
从数据库看
组信息主要在oper_grpscript2中看,因为UTV是要安装cmi版本后看的,所以只能根据描述来判断UTV组,而不是opergrpid。

操作员信息则是在oper_rights2中看,操纵员id:operid和虚拟组id:opergrpid

虚拟组id和实际组id之间有一个映射,是在oper_virtual_grpdef中看。
查询的sql语句
SELECT COUNT(1) FROM oper_rights2 a WHERE a.operid=’13’ AND a.opergrpid=
(SELECT b.v_opergrpid FROM oper_virtual_grpdef b WHERE b.opergrpid=
(SELECT c.opergrpid FROM oper_grpscript2 c WHERE c.grpscript IN (‘UTV’,’utv’))

) ================================================================================ UTVOnlineUser.jsp里面 if((“select[name=’operid’]”).length > 0){ (“select[name=’operid’]”).change(function(){ var operid = (this).
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值