编程之路

2017-04-20

     ①js  post 请求 url到action  struts2对应配置的name   url=“name.action”  name-list还未尝试。

     ②DATE_FORMAT(`addtime`,'%Y-%m-%d')只取年月日字段

    ③struts2点击不跳转问题,明天去解决

2017-04-21

     ①js  post 请求 url到action 似乎并不能跳转到新页面,改成form表单提交就可以了。

     ②图片存在另一台电脑页面读取问题。action出集合后对路径进行split操作。



    ③数据库更新页面不更新问题:hibernate查询要有事务

    ④文件上传代码

    ⑤poi上传excel一般要是xls格式,xlsx格式可能会出异常(估计是自己jar包的缘故,正常两种可以的)

       

       class "org.apache.poi.util.PackageHelper"'s signer information does not match

2017-04-21,23

感冒很难受,摸了两天鱼,excel上的日期存到数据库会变成总天数,明天去解决下。

2017-04-24

①将struts2项目上的导入导出代码移到sm项目上,问题挺多的。

②海安出差。

2017-04-25

①springmvc文件上传代码:


②解决不同框架下同一内容的问题。

2017-04-26

①订单表与黑名单excel筛选用户基本完成。

②新需求:筛选出同一商品,同一用户的信息,读取商品Excel列困难,待定。


2017-04-28

①黑名单与用户多次购买记录筛选完成。安装项目出现问题,本机EXCEL可以上传无问题,局域网其它机子访问可以,上传EXCEL会失败。

②hibernate查询返回分组名,分组数量

public List<Orders> getTmallOrderList(int start,int number,String type) {
		int i=-1;
		List<Orders> orderlist = new ArrayList<Orders>();
		
		session = HibernateSessionFactory.getSession();
		Transaction transaction = session.beginTransaction();
		if(type.equals("电话")){
			query = session.createQuery("SELECT tel,COUNT(*) from Orders GROUP BY tel HAVING COUNT(*)>1");
		}else if(type.equals("用户名")){
			query = session.createQuery("SELECT ZName,COUNT(*) from Orders GROUP BY ZName HAVING COUNT(*)>1");
		}else if(type.equals("地址")){
			query = session.createQuery("SELECT addressA,COUNT(*) from Orders GROUP BY addressA HAVING COUNT(*)>1");
		}
		query.setFirstResult(start);
		query.setMaxResults(number);
		List list= query.list(); 
		String[] a = new String[10000];
		Long[] b = new Long[10000];  
	      Iterator it= list.iterator(); 
	      
	      while(it.hasNext()){  
	       i++;
	       Object[] res=(Object[]) it.next();  
	       //注意这里的类型转化  
	       String count= (String)res[0]; 
	       a[i] = (String) res[0];
	       b[i] = (Long) res[1];
	       System.out.println("count"+count);  
	       System.out.println(a[i]+"    "+b[i]);  
	      }  
	      
	    for(int j=0;j<i+1;j++){
	    	Orders orders = new Orders();
	    	orders.setZName(a[j]);
	    	orders.setTel(String.valueOf(b[j]));
	    	orderlist.add(orders);
	    }
		transaction.commit();
		session.clear();
		session.close();
			
		return orderlist;
	}
	
	public int ordercount(int start,int number,String type){
		List<Orders> list = getTmallOrderList(start, number, type);
		return list.size();
		
	}

2017-05-02

①happy三天。上次出现问题两个可能的原因:服务机用户名为中文,tomocat版本高了一丢丢。

②增加了日期查询,编辑和删除功能。年月日日期:
SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String dateString = form.format(date);

2017-05-04

①增加日期查询,编辑删除功能。

②上次问题的原因是由于get提交方式会有不合法字符,本机不会出现问题,但其它电脑访问会有问题。改成post提交。

③easyui主显示界面里的超链接新开选项卡问题。只能新开一个浏览器页面。mainframe.jsp固定好了。

2017-05-05~08

①渠道导航功能新增删除项,包含对应文件文件夹的删除,三张表的级联删除,子项有空内容提示是否都删除。
②界面完善,每个界面都包含其它界面导航。
③新增验证,包括数字,字母,中文等等,查询用户名,文件夹名是否已存在

2017-05-09~11

①多线程抓取因网速等原因线程卡主问题。原部分代码
for(int i=0;i<10;i++){
		new Thread(new Runnable() {
			@Override
			public void run() {
				while(true){
				 String url=getUrl();
				  if(url!=null){
					  System.out.println("线程"+Thread.currentThread().getName()+"在抓取 !");
					  newsService.scrab(prefix, url);
				  }else{
				     long end = System.currentTimeMillis();  
			         System.out.println("总共耗时"+(end-start)/1000+"秒");  
					 break;
				  }
				}
			
			}
		},"thread"+i).start();
	}
设定超时线程pass代码
public class ThreadTester {

	public static void main(String[] args) throws InterruptedException {
		Thread t1 = new Thread(new ThreadTesterA());
		Thread t2 = new Thread(new ThreadTesterB());
		t1.start();
		t1.join(100000);
		if(t1.isAlive()){
			t1.stop();
			System.out.println("hyyyyyyyyyyyyyyyyyyyyyy");
		}
		
		
		System.out.println(t1.interrupted()+"   aaa                                            ");
		
		
		
	}
}


class ThreadTesterA implements Runnable {

	private int a;

	@Override
	public void run() {
		while (a <= 5000) {
			System.out.print("a = " + a + " ");
			a++;
		}
		System.out.println();
	}
}
由于源代码是自己调用自己,所以要把线程和调用方法分开才能join计时,然而由于spring框架new对象不受管理问题,
Thread t1 = new Thread(new ThreadTesterA());
解决不了,后面的分析html程序一直报空指针异常。有待解决。

③每天抓到的图片存放在不同日期文件夹下。

2017-05-15~19

①朱总项目的统计功能
package com.bll;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.dao.HibernateSessionFactory;
import com.model.Stockitem;
import com.model.TbCommodity;

public class Statisticbll {
	

	static Query query;
	static Query query1;
	private HttpServletRequest request;
	// 获得本月第一天0点时间  
	public static Date getTimesMonthmorning() {  
        Calendar cal = Calendar.getInstance();  
        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);  
        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));  
        return cal.getTime();  
    } 
	
	
	public List<TbCommodity> gettodaylist(int start, int number,String time){
		SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd");
		Date date = new Date();
		String dateString = form.format(date);
		
		long times= date.getTime();
		//获取7天的毫秒数
		long sevenTime = 7*24*60*60*1000;
		//当前时间毫秒数-7天的毫秒数=7天之间那天的毫秒数
		long timess = times - sevenTime;
		//将毫秒数转日期
		Date dat=new Date(timess);
		String dateString7 = form.format(dat);
		
		Calendar cal = Calendar.getInstance();
		//下面的就是把当前日期加一个月
		cal.add(Calendar.MONTH,-1);
		String dateString30 = form.format(cal.getTime());
		
		//获取本月第一天
		String monthstart = getTimesMonthmorning().toLocaleString(); 
		String today = new Date().toLocaleString();
		
		Session session = HibernateSessionFactory .getSession();
		
		List<TbCommodity> list = null;
		List list1 = null;
		if(time.equals("a")){
			query = session.createQuery("from TbCommodity Where date_format(createTime ,'%Y-%m-%d' )=:dateString group by commodityCode " );
			query.setParameter("dateString",dateString );
			query1 = session.createQuery("SELECT COUNT(*) from TbCommodity Where date_format(createTime ,'%Y-%m-%d' )=:dateString GROUP BY commodityCode ");
			query1.setParameter("dateString",dateString );
		}else if(time.equals("b")){
			
			query = session.createQuery("from TbCommodity Where date_format(createTime ,'%Y-%m-%d' ) between '"+dateString7+"' and '"+dateString+"' group by commodityCode" );
			query1 = session.createQuery("SELECT COUNT(*) from TbCommodity Where date_format(createTime ,'%Y-%m-%d' ) between '"+dateString7+"' and '"+dateString+"' GROUP BY commodityCode ");
		}else if(time.equals("c")){
			
			query = session.createQuery("from TbCommodity Where date_format(createTime ,'%Y-%m-%d' ) between '"+dateString30+"' and '"+dateString+"' group by commodityCode" );
			query1 = session.createQuery("SELECT COUNT(*) from TbCommodity Where date_format(createTime ,'%Y-%m-%d' ) between '"+dateString30+"' and '"+dateString+"' GROUP BY commodityCode ");
		}else if(time.equals("d")){
			query = session.createQuery("from TbCommodity Where createTime between '"+monthstart+"' and '"+today+"' group by commodityCode" );
			query1 = session.createQuery("SELECT COUNT(*) from TbCommodity Where createTime between '"+monthstart+"' and '"+today+"' GROUP BY commodityCode ");
		}  
		list1 = query1.list();
		list = query.list();
		for(int i=0;i<list.size();i++){
			list.get(i).setCodeamount((Long) list1.get(i));
		}
		
		query.setFirstResult(start);
		query.setMaxResults(number);
		
		
		session.clear();
		session.close();
		return list;
	}
	
	public int gettodaycount(int start, int number,String time){
		int i =gettodaylist(start, number,time).size();
		return i;		
	}
}
②皇家书法页面,表单提交,页面list展示,时间查询导出Excel
合并单元格代码:
sheet.addMergedRegion(new Region(0,(short)0,0,(short)1));
输出Excel
String updateTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date()).toString();
	//输出Excel文件  
	    OutputStream output=response.getOutputStream(); 
	   // FileOutputStream output=new FileOutputStream("d:\\workbook.xls");
	    response.reset();  
	    response.setHeader("Content-disposition", "attachment; filename="+updateTime+" Order.xls");  
	    response.setContentType("application/msexcel");          
	    wb.write(output);  
	    output.close();  

③登录验证,包括短信验证码,各种格式验证,cookie刷新页面60s倒计时不会刷新***

String verifyCode = MD5EncryptDecrypt.RandPassword(6);
		String content = "尊敬的故乡农情手机用户您好,您的验证码为"+verifyCode;
		StringBuilder stringBuilder = new StringBuilder();
		stringBuilder.append("http://sms.pica.com/zqhdServer/sendSMS.jsp?");
		stringBuilder.append("regcode=ZXHD-CRM-0100-XIWPXW&");
		stringBuilder.append("pwd="+MD5EncryptDecrypt.MD5("78358849").toLowerCase());
		stringBuilder.append("&phone="+telephone);
		String conString = URLEncoder.encode(content,"gbk");
		stringBuilder.append("&CONTENT="+conString);
		stringBuilder.append("&extnum=&level=1&schtime=&reportflag=1&url=&smstype=4&hardKEY=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
			
			try {
				URL url=new URL(stringBuilder.toString());
				URLConnection conn = url.openConnection();   
		        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));   
		        StringBuffer readOneLineBuff = new StringBuffer();   
		        String retval ="";  
		        String line = "";   
		        while ((line = reader.readLine()) != null) {   
		            readOneLineBuff.append(line);   
		        }   
		         retval = readOneLineBuff.toString();   
		        reader.close();
		      
//		        return retval;
				
			} catch (Exception e) {
				
				e.printStackTrace();
			}

2017-05-20~06-01

①app端接口,与网页端后台无异,返回json数据,只是多了个页面提示信息功能。

Map<String, Object> map=new HashMap<String, Object>();
		map.put("buyList", Relation);
		JsonConfig config=new JsonConfig();
		config.registerJsonValueProcessor(Timestamp.class,new SupplierSystemRestServer.dao.JsonDateValueProcessor());
		JSONObject jsonArray = JSONObject.fromObject(map,config);
②聚宝所网站,主要是页面间的处理,样式等问题。关于注册验证方面采用了validform验证,但ajaxurl方面存在一些问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值