排名系统

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;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值