排名系统

package com.demo.hibernate.service;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import org.hibernate.Session;

import com.demo.hibernate.service.model.RankingModel;
import com.demo.hibernate.utils.HibernateSessionFactory;

public class RankingService {

	public List<RankingModel> getTop10(String beginTime, String endTime) {

		SimpleDateFormat yearMonthFormat = new SimpleDateFormat("yyMM");
		String yearMonth=yearMonthFormat.format(new Date());
		beginTime=yearMonth+beginTime;
		endTime=yearMonth+endTime;
		List<RankingModel> resultList = new ArrayList<RankingModel>();

		Session session = HibernateSessionFactory.getSession();
		List list = session.createSQLQuery(
				"SELECT T_CARD.CARD_NUM,SUM(T_CARD_EXPENSE.MONEY) "
						+ "FROM T_CARD_EXPENSE,T_CARD "
						+ "WHERE T_CARD_EXPENSE.CARD_ID=T_CARD.ID "
						+ "AND TO_CHAR(T_CARD_EXPENSE.CREATE_DT, 'yymmdd') "
						+ "BETWEEN '" + beginTime + "' AND '" + endTime + "' "
						+ "GROUP BY T_CARD.CARD_NUM "
						+ "ORDER BY SUM(T_CARD_EXPENSE.MONEY) DESC")
				.setMaxResults(10).list();
		session.close();

		for (Iterator iter = list.iterator(); iter.hasNext();) {

			Object[] obj = (Object[]) iter.next();
			RankingModel m = new RankingModel(obj[0].toString(), obj[1]
					.toString());
			resultList.add(m);
		}

		return resultList;
	}
}

package com.demo.hibernate.service;

import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

import com.demo.hibernate.service.model.RankingListXml;
import com.demo.hibernate.service.model.RankingModel;

public class Test {

	/**
	 * @param args
	 * @throws IOException
	 * @throws JAXBException
	 */
	public static void main(String[] args) throws JAXBException, IOException {
		// TODO Auto-generated method stub

		RankingService rs = new RankingService();
		SimpleDateFormat timeFormat = new SimpleDateFormat("yyyyMM");
		String exportTime = timeFormat.format(new Date());
		// System.out.println(yearMonth);
		int level = DateService.getLevel();
		List<RankingModel> list = new ArrayList<RankingModel>();
		if (level == 1) {
			list = rs.getTop10("01", "07");
		} else if (level == 2) {
			list = rs.getTop10("08", "14");
		} else if (level == 3) {
			list = rs.getTop10("15", "22");
		} else if (level == 4) {
			list = rs.getTop10("23", DateService.getDaySum() + "");
		}

		System.out.println("-------------------------------");
		for (Iterator iter = list.iterator(); iter.hasNext();) {
			RankingModel m = (RankingModel) iter.next();
			System.out.println(m.getCard_num() + "     " + m.getSumMoney());
		}
		System.out.println("-------------------------------");
		List<RankingModel> xmlList = new ArrayList<RankingModel>();
		for (Iterator iter = list.iterator(); iter.hasNext();) {
			RankingModel m = (RankingModel) iter.next();
			xmlList.add(m);
		}
		ToXml(new RankingListXml(exportTime + "_" + level, xmlList), exportTime
				+ "_" + level);
	}

	static void ToXml(RankingListXml rankingListXml, String exportTime)
			throws JAXBException, IOException {

		JAXBContext context = JAXBContext.newInstance(RankingListXml.class);
		Marshaller m = context.createMarshaller();
		FileWriter fw = new FileWriter("E:\\" + "RankingSystem_" + exportTime
				+ ".xml");
		m.marshal(rankingListXml, fw);
		System.out.println("success!");
	}
}

package com.demo.hibernate.service;

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

public class DateService {

	public static int getDaySum() {
		
		SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy");
		SimpleDateFormat monthFormat = new SimpleDateFormat("MM");
		
		String str = yearFormat.format(new Date());
		int year = Integer.parseInt(yearFormat.format(new Date()));
		int month = Integer.parseInt(monthFormat.format(new Date()));
		
		// System.out.println(year + "-" + month + "-" + day);
		int daySum = 0;
		switch (month) {
		case 1:
			daySum = 31;
			break;
		case 2:
			if (year % 4 == 0) {
				daySum = 29;
				break;
			}
			daySum = 28;
			break;
		case 3:
			daySum = 31;
			break;
		case 4:
			daySum = 30;
			break;
		case 5:
			daySum = 31;
			break;
		case 6:
			daySum = 30;
			break;
		case 7:
			daySum = 31;
			break;
		case 8:
			daySum = 31;
			break;
		case 9:
			daySum = 30;
			break;
		case 10:
			daySum = 31;
			break;
		case 11:
			daySum = 30;
			break;
		case 12:
			daySum = 31;
			break;
		}

		// System.out.println(daySum);
		return daySum;
	}
	public static int getLevel() {
		
		SimpleDateFormat dayFormat = new SimpleDateFormat("dd");
		int day = Integer.parseInt(dayFormat.format(new Date()));
		int level = 0;
		// 1-7;8-14;15-22;23-|;
		if (day >= 1 && day <= 7) {
			level = 1;
		} else if (day >= 8 && day <= 14) {
			level = 2;
		} else if (day >= 15 && day <= 22) {
			level = 3;
		} else if (day >= 23 && day <= getDaySum()) {
			level = 4;
		}
//		System.out.println("level:" + level);
		return level;
	}
}

猜你喜欢

转载自xiongjiajia.iteye.com/blog/1611137