Pu Zhibing
2025-05-16 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java
@@ -1,8 +1,13 @@
package com.stylefeng.guns.modular.api;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.modular.system.model.City;
import com.stylefeng.guns.modular.system.model.CityCopy;
import com.stylefeng.guns.modular.system.service.ICityCopyService;
import com.stylefeng.guns.modular.system.service.IOpenCityBusinessService;
import com.stylefeng.guns.modular.system.service.IOpenCityService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import io.swagger.annotations.Api;
@@ -15,6 +20,8 @@
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -33,6 +40,15 @@
    @Autowired
    private IOpenCityBusinessService openCityBusinessService;
    @Autowired
    private IUserInfoService userInfoService;
    @Resource
    private ICityCopyService cityCopyService;
    /**
     * 获取开通城市列表
@@ -40,12 +56,15 @@
     */
    @ResponseBody
    @PostMapping("/queryOpenCity")
    @ApiOperation(value = "获取开通城市列表", tags = {"用户端-首页"}, notes = "")
    @ApiOperation(value = "获取开通城市列表【1.0】", tags = {"用户端-首页"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "语言(1=中文,2=英文,3=法语)", name = "language", required = false, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = false, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<BaseWarpper>> queryOpenCity(){
    public ResultUtil<List<BaseWarpper>> queryOpenCity(Integer language, HttpServletRequest request){
        try {
            List<BaseWarpper> list = openCityService.queryOpenCity();
            Integer uid = userInfoService.getUserIdFormRedis(request);
            List<BaseWarpper> list = openCityService.queryOpenCity(uid, language);
            return ResultUtil.success(list);
        }catch (Exception e){
            e.printStackTrace();
@@ -53,24 +72,24 @@
        }
    }
    /**
     * 根据当前定位获取对应的业务类型
     * @param province
     * @param city
     * @param district
     * @return
     */
    @ResponseBody
    @PostMapping("/queryBusiness")
    @ApiOperation(value = "根据当前定位获取业务类型", tags = {"用户端-首页"}, notes = "")
    @ApiOperation(value = "根据当前定位获取业务类型【1.0】", tags = {"用户端-首页"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "省名称", name = "province", required = true, dataType = "String"),
            @ApiImplicitParam(value = "市名称", name = "city", required = true, dataType = "String"),
            @ApiImplicitParam(value = "区县名称", name = "district", required = true, dataType = "String")
            @ApiImplicitParam(value = "纬度", name = "lat", required = true, dataType = "double"),
            @ApiImplicitParam(value = "经度", name = "lnt", required = true, dataType = "double"),
            @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = false, dataType = "int"),
    })
    public ResultUtil<List<BaseWarpper>> queryBusiness(String province, String city, String district){
    public ResultUtil<List<BaseWarpper>> queryBusiness(Double lat, Double lnt, Integer language, HttpServletRequest request){
        try {
            List<BaseWarpper> list = openCityBusinessService.queryBusiness(province, city, district);
            Integer uid = userInfoService.getUserIdFormRedis(request);
            List<BaseWarpper> list = openCityBusinessService.queryBusiness(uid, lat, lnt, language);
            return ResultUtil.success(list);
        }catch (Exception e){
            e.printStackTrace();
@@ -88,11 +107,12 @@
    @PostMapping("/queryBusinessById")
    @ApiOperation(value = "选择开通城市获取业务类型", tags = {"用户端-首页"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "开通城市id", name = "id", required = true, dataType = "int")
            @ApiImplicitParam(value = "开通城市id", name = "id", required = true, dataType = "int"),
            @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = false, dataType = "int"),
    })
    public ResultUtil<List<BaseWarpper>> queryBusinessById(Integer id){
    public ResultUtil<List<BaseWarpper>> queryBusinessById(Integer id, Integer language){
        try {
            List<BaseWarpper> list = openCityBusinessService.queryBusinessById(id);
            List<BaseWarpper> list = openCityBusinessService.queryBusinessById(id, language);
            return ResultUtil.success(list);
        }catch (Exception e){
            e.printStackTrace();
@@ -102,24 +122,39 @@
    /**
     * 判断开通城市
     * @param code
     * @return
     */
    @ResponseBody
    @PostMapping("/openCity")
    @ApiOperation(value = "判断当前是否是开通城市", tags = {"用户端-首页"}, notes = "open=1(是),open=2(否)")
    @ApiOperation(value = "判断当前是否是开通城市【1.0】", tags = {"用户端-首页"})
    @ApiImplicitParams({
            @ApiImplicitParam(value = "当前定位城市code", name = "code", required = true, dataType = "String")
            @ApiImplicitParam(value = "纬度", name = "lat", required = true, dataType = "String"),
            @ApiImplicitParam(value = "经度", name = "lnt", required = true, dataType = "String")
    })
    public ResultUtil openCity(String code){
    public ResultUtil openCity(Double lat, Double lnt, Integer language, HttpServletRequest request){
        try {
            boolean b = openCityService.openCity(code);
            Integer uid = userInfoService.getUserIdFormRedis(request);
            City city = openCityService.openCity(uid, lat, lnt, language);
            if(null == city){
                return ResultUtil.error("");
            }
            Map<String, Object> map = new HashMap<>();
            map.put("open", b ? 1 : 2);
            map.put("name", language == 1 ? city.getChineseName() : language == 2 ? city.getEnglishName() : city.getFrenchName());
            map.put("content", language == 1 ? city.getCountryChineseName() : language == 2 ? city.getCountryEnglishName() : city.getCountryFrenchName());
            return ResultUtil.success(map);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/getCity")
    @ApiOperation(value = "获取省市联动【1.0】", tags = {"用户端-首页"})
    public ResultUtil<List<CityCopy>> getCity(Integer pid){
        List<CityCopy> pid1 = cityCopyService.selectList(new EntityWrapper<CityCopy>().eq("pid", pid));
        return ResultUtil.success(pid1);
    }
}