mitao
2025-02-26 32fa3021659780f5493c4f9a9d5f5249b01eb8a8
三个身边代码提交
4个文件已修改
1个文件已添加
155 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/utils/BaiduMapUtil.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}