yujian
2019-01-22 88b54772dbcf5ecab1e2316e4e4626ac901b8908
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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;
    }
 
}