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; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; 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; /** * 开通城市控制器 */ @Api @RestController @RequestMapping("/base/openCity") public class OpenCityController { @Autowired private IOpenCityService openCityService; @Autowired private IOpenCityBusinessService openCityBusinessService; @Autowired private IUserInfoService userInfoService; @Resource private ICityCopyService cityCopyService; /** * 获取开通城市列表 * @return */ @ResponseBody @PostMapping("/queryOpenCity") @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> queryOpenCity(Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); List list = openCityService.queryOpenCity(uid, language); return ResultUtil.success(list); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 根据当前定位获取对应的业务类型 * @return */ @ResponseBody @PostMapping("/queryBusiness") @ApiOperation(value = "根据当前定位获取业务类型【1.0】", tags = {"用户端-首页"}, notes = "") @ApiImplicitParams({ @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> queryBusiness(Double lat, Double lnt, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); List list = openCityBusinessService.queryBusiness(uid, lat, lnt, language); return ResultUtil.success(list); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 根据开通城市id获取业务类型 * @param id * @return */ @ResponseBody @PostMapping("/queryBusinessById") @ApiOperation(value = "选择开通城市获取业务类型", tags = {"用户端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "开通城市id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = false, dataType = "int"), }) public ResultUtil> queryBusinessById(Integer id, Integer language){ try { List list = openCityBusinessService.queryBusinessById(id, language); return ResultUtil.success(list); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 判断开通城市 * @return */ @ResponseBody @PostMapping("/openCity") @ApiOperation(value = "判断当前是否是开通城市【1.0】", tags = {"用户端-首页"}) @ApiImplicitParams({ @ApiImplicitParam(value = "纬度", name = "lat", required = true, dataType = "String"), @ApiImplicitParam(value = "经度", name = "lnt", required = true, dataType = "String") }) public ResultUtil openCity(Double lat, Double lnt, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); City city = openCityService.openCity(uid, lat, lnt, language); if(null == city){ return ResultUtil.error(""); } Map map = new HashMap<>(); 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> getCity(Integer pid){ List pid1 = cityCopyService.selectList(new EntityWrapper().eq("pid", pid)); return ResultUtil.success(pid1); } }