package com.peanut.modules.book.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.peanut.common.utils.R; import com.peanut.modules.book.entity.City; import com.peanut.modules.book.entity.County; import com.peanut.modules.book.entity.Province; import com.peanut.modules.book.service.CityService; import com.peanut.modules.book.service.CountyService; import com.peanut.modules.book.service.ProvinceService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController @RequestMapping("api/province") public class ProvinceController { @Autowired private ProvinceService provinceService; @Autowired private CityService cityService; @Autowired private CountyService countyService; @Autowired private StringRedisTemplate redisTemplate; //获取地址 @RequestMapping("/getProvince") public R getProvince() { //优化查询速度 目录放入redis中 String s = redisTemplate.opsForValue().get("Province"); List> listData = new ArrayList<>(); if (StringUtils.isNotBlank(s)) { List redisData = JSONArray.parseArray(s); for (Object object : redisData) { Map ret = (Map) object;//取出list里面的值转为map listData.add(ret); } return R.ok().put("provinceEntity", listData); } List provinceList = provinceService.getCity(); redisTemplate.opsForValue().set("Province", JSON.toJSONString(provinceList)); return R.ok().put("provinceEntity", provinceList); } //获取省列表 @RequestMapping("/getProvinceList") public R getProvinceList() { List provinceList = provinceService.getBaseMapper().selectList(new QueryWrapper()); return R.ok().put("provinceList", provinceList); } //获取市列表 @RequestMapping("/getCityList") public R getCityList(@RequestParam("provId") Integer provId) { List prov = cityService.getBaseMapper().selectList(new QueryWrapper() .eq("prov_id", provId)); return R.ok().put("prov", prov); } //获取区列表 @RequestMapping("/getCountyList") public R getCountyList(@RequestParam("cityId") Integer cityId) { List countyList = countyService.getBaseMapper().selectList(new QueryWrapper().eq("city_id", cityId)); return R.ok().put("countyList", countyList); } }