springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java
@@ -63,7 +63,7 @@ @ApiOperation(value = "录入诉求") @DistributedLock(lockName = "complaint_serial_number_lock") public R<?> save(@Valid @RequestBody Complaint complaint) { complaintService.saveComplaint(complaint, getUserId()); complaintService.saveComplaint(complaint, getLoginUserInfo()); return R.ok(); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
@@ -1,5 +1,6 @@ package com.panzhihua.sangeshenbian.controller; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.vos.LoginUserInfoVO; @@ -17,6 +18,7 @@ import com.panzhihua.sangeshenbian.service.IComplaintService; import com.panzhihua.sangeshenbian.service.IMessageNotificationService; import com.panzhihua.sangeshenbian.service.ISystemUserService; import com.panzhihua.sangeshenbian.utils.BaiduMapUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -82,4 +84,16 @@ messageNotificationService.read(getLoginUserInfo()); return R.ok(); } /** * 百度地图圆形区域检索 * @param query * @param location * @return */ @PostMapping("/search-location") @ApiOperation("百度地图圆形区域检索") public R<JSONArray> searchLocation(String query,String location){ return R.ok(BaiduMapUtil.searchLocation(query,location)); } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
@@ -26,7 +26,7 @@ * @since 2025-02-22 */ public interface IComplaintService extends IService<Complaint> { void saveComplaint(Complaint complaint,Long userId); void saveComplaint(Complaint complaint,LoginUserInfoVO loginUserInfoVO); /** * 诉求列表 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -64,7 +64,7 @@ private final IWorkOrderItemConfigService workOrderItemConfigService; @Override public void saveComplaint(Complaint complaint, Long userId) { public void saveComplaint(Complaint complaint, LoginUserInfoVO loginUserInfoVO) { // 获取当前日期(年月日) String datePrefix = new SimpleDateFormat("yyyyMMdd").format(new Date()); @@ -87,12 +87,36 @@ // 设置流水号 complaint.setSerialNumber(serialNumber); Optional<SystemUser> systemUserOpt = systemUserService.getSystemUserByPhone(loginUserInfoVO.getPhone()); if (systemUserOpt.isPresent()){ Long superiorId = null; SystemUser systemUser = systemUserOpt.get(); Integer accountLevel = systemUser.getAccountLevel(); switch (accountLevel) { case 1: //市级 superiorId = 510400L; break; case 2: //区县级 superiorId = Long.parseLong(systemUser.getDistrictsCode()); break; case 3: //街道 superiorId = Long.parseLong(systemUser.getStreetId()); break; case 4: //社区 superiorId = systemUser.getCommunityId(); break; } complaint.setSuperiorId(superiorId); } // 设置其他字段 complaint.setStatus(ProcessStatusEnum.PROCESSING.getCode()); complaint.setCreateTime(new Date(System.currentTimeMillis())); complaint.setCreateBy(userId); complaint.setUpdateBy(userId); complaint.setCreateBy(loginUserInfoVO.getUserId()); complaint.setUpdateBy(loginUserInfoVO.getUserId()); complaint.setUpdateTime(new Date(System.currentTimeMillis())); //查询系统配置诉求处理期限,设置截止日期 WorkOrderItemConfig config = workOrderItemConfigService.lambdaQuery().orderByDesc(WorkOrderItemConfig::getId).last("LIMIT 1").one(); springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/utils/BaiduMapUtil.java
New file @@ -0,0 +1,105 @@ package com.panzhihua.sangeshenbian.utils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.springframework.web.util.UriUtils; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.util.LinkedHashMap; import java.util.Map; /** * @author mitao * @date 2025/2/26 */ @Slf4j public class BaiduMapUtil { public static String URL = "https://api.map.baidu.com/place/v2/search?"; public static String AK = "3mHKIXMArjgIkgADzOlTYp4XssNSNkwr"; public static void main(String[] args) throws Exception { Map params = new LinkedHashMap<String, String>(); params.put("query", "银行"); params.put("location", "39.915,116.404"); params.put("radius", "2000"); params.put("output", "json"); params.put("ak", AK); requestGetAK(URL, params); } /** * 默认ak * 选择了ak,使用IP白名单校验: * 根据您选择的AK已为您生成调用代码 * 检测到您当前的ak设置了IP白名单校验 * 您的IP白名单中的IP非公网IP,请设置为公网IP,否则将请求失败 * 请在IP地址为xxxxxxx的计算发起请求,否则将请求失败 */ public static JSONArray requestGetAK(String strUrl, Map<String, String> param) throws Exception { if (strUrl == null || strUrl.length() <= 0 || param == null || param.size() <= 0) { return new JSONArray(); } StringBuffer queryString = new StringBuffer(); queryString.append(strUrl); for (Map.Entry<?, ?> pair : param.entrySet()) { queryString.append(pair.getKey() + "="); // 第一种方式使用的 jdk 自带的转码方式 第二种方式使用的 spring 的转码方法 两种均可 // queryString.append(URLEncoder.encode((String) pair.getValue(), "UTF-8").replace("+", "%20") + "&"); queryString.append(UriUtils.encode((String) pair.getValue(), "UTF-8") + "&"); } if (queryString.length() > 0) { queryString.deleteCharAt(queryString.length() - 1); } java.net.URL url = new URL(queryString.toString()); System.out.println(queryString.toString()); URLConnection httpConnection = (HttpURLConnection) url.openConnection(); httpConnection.connect(); InputStreamReader isr = new InputStreamReader(httpConnection.getInputStream()); BufferedReader reader = new BufferedReader(isr); StringBuffer buffer = new StringBuffer(); String line; while ((line = reader.readLine()) != null) { buffer.append(line); } reader.close(); isr.close(); System.out.println("AK: " + buffer.toString()); JSONObject jsonObject = JSONObject.parseObject(buffer.toString()); System.out.println(jsonObject); if (jsonObject.getString("message").equals("ok")) { return jsonObject.getJSONArray("results"); } return new JSONArray(); } public static JSONArray searchLocation(String query, String location) { Map params = new LinkedHashMap<String, String>(); params.put("query", query); params.put("location", location); params.put("radius", "2000"); params.put("output", "json"); params.put("ak", AK); JSONArray jsonArray; try { jsonArray = requestGetAK(URL, params); } catch (Exception e) { log.error("searchLocation error",e); throw new RuntimeException(e); } return jsonArray; } }