package com.yeshi.fanli.service.impl.hongbao;
|
|
import java.io.Serializable;
|
import java.text.DecimalFormat;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.hibernate.HibernateException;
|
import org.hibernate.SQLQuery;
|
import org.hibernate.Session;
|
import org.springframework.orm.hibernate4.HibernateCallback;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.yeshi.fanli.dao.user.ThreeSaleRankDao;
|
import com.yeshi.fanli.entity.bus.user.ShamUser;
|
import com.yeshi.fanli.entity.bus.user.ThreeSaleRank;
|
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleRankService;
|
import com.yeshi.fanli.service.inter.user.ShamUserService;
|
import com.yeshi.fanli.util.Utils;
|
|
@Service
|
public class ThreeSaleRankServiceImpl implements ThreeSaleRankService {
|
|
@Resource
|
private ThreeSaleRankDao dao;
|
|
@Resource
|
private ShamUserService shamUserService;
|
|
@Transactional
|
public void update() {
|
List<ShamUser> userList = shamUserService.findShamUserList(5);
|
dao.excute(new HibernateCallback() {
|
@Override
|
public Object doInHibernate(Session session)
|
throws HibernateException {
|
SQLQuery query = session.createSQLQuery("SELECT IFNULL(MAX(money),800) FROM yeshi_ec_three_sale_rank");
|
long money = Long.parseLong(query.uniqueResult()+"");
|
List<ThreeSaleRank> rankList = new ArrayList<ThreeSaleRank>();
|
ThreeSaleRank tsr;
|
DecimalFormat df = new DecimalFormat("######0.00");
|
for (ShamUser shamUser : userList) {
|
double random = Utils.random(money);
|
tsr=new ThreeSaleRank();
|
tsr.setMoney(df.format(random));
|
tsr.setName(shamUser.getName());
|
tsr.setPic(shamUser.getPicUrl());
|
rankList.add(tsr);
|
}
|
for (ThreeSaleRank threeSaleRank : rankList) {
|
dao.save(threeSaleRank);
|
}
|
return null;
|
}
|
});
|
|
|
|
}
|
|
@Override
|
public List<ThreeSaleRank> rank(int num) {
|
List<ThreeSaleRank> list = dao.list("from ThreeSaleRank order by money desc ", 0, num, new Serializable[]{});
|
for (ThreeSaleRank threeSaleRank : list) {
|
String name = threeSaleRank.getName();
|
if(name.length()>2){
|
name = Utils.getStarString(name,1,name.length()-1);
|
}else{
|
name = name.substring(0, 1)+"**"+name.substring(1);
|
}
|
threeSaleRank.setName(name);
|
}
|
return list;
|
}
|
|
}
|