admin
2023-04-12 f06a592dd1a7e995bf313ccb5efe7dff73ccfc4e
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
package com.yeshi.buwan.service.imp;
 
import java.util.List;
 
import javax.annotation.Resource;
 
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate4.HibernateCallback;
import org.springframework.stereotype.Service;
 
import com.yeshi.buwan.dao.VideoInfoDao;
import com.yeshi.buwan.util.SolrUtil;
 
@Service
public class SolrService {
    @Resource
    private VideoInfoDao videoInfoDao;
 
    // 更新已经删除视频的索引
    @SuppressWarnings({ "rawtypes" })
    public void updateUnAvaileIndex() {
 
        videoInfoDao.excute(new HibernateCallback() {
            public Object doInHibernate(Session session) throws HibernateException {
//                List<String> idList = new ArrayList<>();
 
                List list = session.createSQLQuery("select videoid from wk_solr_update").setFirstResult(0)
                        .setMaxResults(10000).list();
//                for (int i = 0; i < list.size(); i++) {
//                    idList.add(list.get(i) + "");
//                }
                
                for (Object videoid : list) {
                    try {
                        session.getTransaction().begin();
                        SolrUtil.deleteVideoIndex(videoid+"");
                        session.createSQLQuery("delete from wk_solr_update where videoid=" + videoid).executeUpdate();
                        session.flush();
                        session.getTransaction().commit();
                    } catch (Exception e) {
                        e.printStackTrace();
                        session.getTransaction().rollback();
                    }
                }
                return null;
                
//                return idList;
            }
        });
 
//        for (String id : list) {
//            final String videoid = id;
//            videoInfoDao.excute(new HibernateCallback() {
//                public Object doInHibernate(Session session) throws HibernateException {
//
//                    try {
//                        session.getTransaction().begin();
//                        SolrUtil.deleteVideoIndex(videoid);
//                        session.createSQLQuery("delete from wk_solr_update where videoid=" + videoid).executeUpdate();
//                        session.flush();
//                        session.getTransaction().commit();
//                    } catch (Exception e) {
//                        e.printStackTrace();
//                        if (session.getTransaction().isActive())
//                            session.getTransaction().rollback();
//                    }
//                    return null;
//                }
//            });
//        }
 
    }
 
}