package com.stylefeng.guns.modular.system.controller.general;
import com.alibaba.fastjson.JSONObject;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.modular.system.model.Dict;
import com.stylefeng.guns.modular.system.response.GaoDeDayBaseQuotaUsageVo;
import com.stylefeng.guns.modular.system.response.TencentMapDayBaseQuotaUsageVo;
import com.stylefeng.guns.modular.system.service.IDictService;
import com.stylefeng.guns.modular.system.util.MapDispatchUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 地图接口调度器
*
* @author Maple
* @Date 2024/12/12 17:02
*/
@RestController
@RequestMapping("/mapDispatch")
public class MapDispatchController extends BaseController {
@Autowired
private IDictService dictService;
@Autowired
private MapDispatchUtil mapDispatchUtil;
/**
* 获取地图Key
*
* // * @param serverName 服务名称(管理端、司机端、用户端)
*
* @param mapType 地图类型:0=高德 | 1=腾讯
* @param mapServiceID 服务ID
* @return
*/
@GetMapping(value = "/getMapKey")
public Object getMapKey(@RequestParam("mapType") String mapType, @RequestParam("mapServiceID") int mapServiceID, @RequestParam("mapServiceType") String mapServiceType) {
//旧代码Begin
// List dictList = dictService.selectByCode(serverName);
// if (dictList == null || dictList.isEmpty()) {
// return null;
// } else {
// return dictList.get(0).getName();
// }
//旧代码End
return mapDispatchUtil.getMapKey(mapType, mapServiceID, mapServiceType);
}
/**
* 获取输入提示Key
*
* @param serverName 服务名称(管理端、司机端、用户端)
* @param apiName API名称(inputtips:输入提示)
* @return
*/
@GetMapping(value = "/getInputtips")
public String getInputtips(@RequestParam("serverName") String serverName, @RequestParam("apiName") String apiName) {
switch (apiName) {
case "inputtips":
//切换新的key
return getInputtips();
default:
return "";
}
}
/**
* 刷新输入提示Key
*
* @param serverName 服务名称(管理端、司机端、用户端)
* @param apiName API名称(inputtips:输入提示)
* @return
*/
@GetMapping(value = "/refreshInputtips")
public void refreshInputtips(@RequestParam("serverName") String serverName, @RequestParam("apiName") String apiName) {
switch (apiName) {
case "inputtips":
//切换新的key
switchinputtips();
break;
}
}
@GetMapping(value = "/getGaoDeAPIUsage")
public String getGaoDeAPIUsage(@RequestParam("gaoDeAccountID") String gaoDeAccountID) {
// GaoDeDayBaseQuotaUsageVo gaoDeAPIUsage = mapDispatchUtil.getGaoDeDayBaseQuotaUsage(gaoDeAccountID);
// mapDispatchUtil.updateGaoDeDayBaseQuotaUsage(gaoDeAccountID, gaoDeAPIUsage);
mapDispatchUtil.updateGaoDeDayBaseQuotaUsageBatch();
return "OK";
}
@GetMapping(value = "/getTencentMapAPIUsage")
public String getTencentMapAPIUsage(@RequestParam("tencentAccountID") String tencentAccountID) {
// TencentMapDayBaseQuotaUsageVo tencentMapDayBaseQuotaUsageVo = mapDispatchUtil.getTencentMapDayBaseQuotaUsage(tencentAccountID);
// mapDispatchUtil.updateTencentMapDayBaseQuotaUsage(tencentAccountID, tencentMapDayBaseQuotaUsageVo);
mapDispatchUtil.updateTencentMapDayBaseQuotaUsageBatch();
return "OK";
}
private String getInputtips() {
List dictList = dictService.selectByCode("gaode_inputtips_switch");
if (dictList == null || dictList.isEmpty()) {
return "";
}
try {
int index = Integer.parseInt(dictList.get(0).getName());
Dict indexdic = dictList.get(0);
dictList.clear();
Dict dict = dictService.selectByChildrenCode("gaode_inputtips", indexdic.getName());
if (dict == null) {
return "";
} else {
return dict.getName();
}
} catch (NumberFormatException ignored) {
return "";
}
}
private void switchinputtips() {
List dictList = dictService.selectByCode("gaode_inputtips_switch");
if (dictList == null || dictList.isEmpty()) {
return;
}
try {
int index = Integer.parseInt(dictList.get(0).getName());
Dict indexdic = dictList.get(0);
dictList.clear();
dictList = dictService.selectByParentCode("gaode_inputtips");
if (dictList.isEmpty()) {
return;
}
if (index == 0) {
indexdic.setName("1");
dictService.updateById(indexdic);
} else if (index < dictList.size()) {
indexdic.setName(String.valueOf(++index));
dictService.updateById(indexdic);
} else {
System.out.println("高德【输入提示】Key池已用尽!");
}
} catch (NumberFormatException ignored) {
}
}
}