张晓波
2023-09-19 164694c47c35d6654df69b533e8dbf8b5423efc5
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
package com.thhy.engineering.modules.biz.engineering.controller;
 
import com.thhy.engineering.modules.biz.engineering.entity.CityPullDown;
import com.thhy.engineering.modules.biz.engineering.service.CityService;
import com.thhy.general.common.BasicResult;
import com.thhy.general.config.GlobalConfig;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.List;
import java.util.concurrent.TimeUnit;
 
@RestController
@RequestMapping(value = "city")
public class CityController {
 
    @Autowired
    private CityService cityService;
 
    @Autowired
    private RedissonClient redissonClient;
 
    @Autowired
    private GlobalConfig globalConfig;
 
    @RequestMapping(value = "cities")
    public BasicResult cities(){
        RBucket<List> rubuket = redissonClient.getBucket(globalConfig.getKeyPrefix()+":cities");
        if(rubuket.get()!=null){
            List<CityPullDown> cityPullDowns = rubuket.get();
            return BasicResult.success(cityPullDowns);
        }
        List<CityPullDown> cityPullDowns = cityService.cityPull();
        rubuket.set(cityPullDowns,1000, TimeUnit.DAYS);
        return BasicResult.success(cityPullDowns);
    }
}