package com.ruoyi.web.controller.api; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.domain.TIndexMenu; import com.ruoyi.system.domain.TRegion; import com.ruoyi.system.service.TRegionService; import com.ruoyi.web.controller.tool.PinyinExample; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.*; /** *

* 省市区三级联动 前端控制器 *

* * @author luodangjia * @since 2024-09-19 */ @RestController @RequestMapping("/t-region") public class TRegionController { @Resource private TRegionService indexMenuService; @ApiOperation(value = "列表",tags = "后台-系统设置-开通地区管理") @PostMapping(value = "/list") public R> list(String name) { List list = indexMenuService.lambdaQuery().like(name!=null&&name!="",TRegion::getName,name).list(); return R.ok(list); } @ApiOperation(value = "关闭禁用",tags = "后台-系统设置-开通地区管理") @PostMapping(value = "/open") public R open(Integer id, Integer isOpen) { TRegion region = indexMenuService.getById(id); region.setIsOpen(isOpen); indexMenuService.updateById(region); return R.ok(); } @Resource private TRegionService regionService; @ApiOperation(value = "单查省",tags = "web-下拉框") @PostMapping(value = "/province") public R province() { List list = regionService.lambdaQuery().eq(TRegion::getIsOpen,1).groupBy(TRegion::getProvinceName).list(); return R.ok(list); } @ApiOperation(value = "城市列表",tags = "web-开通地区") @PostMapping(value = "/abc/list") public R abclist() { List list = indexMenuService.lambdaQuery().eq(TRegion::getIsOpen,1).list(); Map> map = new HashMap<>(); for (TRegion tRegion : list) { String firstLetter = PinyinExample.getFirstLetter(tRegion.getName()); if (map.get(firstLetter)==null){ Set set = new HashSet<>(); set.add(tRegion); map.put(firstLetter,set); }else { map.get(firstLetter).add(tRegion); } } return R.ok(map); } @ApiOperation(value = "省列表",tags = "web-开通地区") @PostMapping(value = "/abc/province/list") public R abcprovincelist() { List list = indexMenuService.lambdaQuery().eq(TRegion::getIsOpen,1).list(); Map> map = new HashMap<>(); for (TRegion tRegion : list) { String firstLetter = PinyinExample.getFirstLetter(tRegion.getProvinceName()); if (map.get(firstLetter)==null){ Set set = new HashSet<>(); set.add(tRegion); map.put(firstLetter,set); }else { map.get(firstLetter).add(tRegion); } } return R.ok(map); } }