From ac7eec396cd27b57baa4b0e81471bc968b230917 Mon Sep 17 00:00:00 2001 From: sh Date: Mon, 25 May 2026 19:25:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=8E=E6=B5=AA=E6=BD=AE?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=BA=BA=E5=91=98=E6=A0=87=E7=AD=BE=EF=BC=88?= =?UTF-8?q?=E5=85=88=E5=88=A4=E6=96=AD=E6=9C=AC=E5=9C=B0=E6=9C=89=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=EF=BC=8C=E7=84=B6=E5=90=8E=E5=9C=A8=E4=BB=8E=E6=B5=AA?= =?UTF-8?q?=E6=BD=AE=E4=BA=BA=E5=91=98=E6=A0=87=E7=AD=BE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 5 +++ .../cms/service/impl/AppUserServiceImpl.java | 20 +++++---- .../com/ruoyi/cms/util/oauth/HttpUtils.java | 42 +++++++++++++++++++ .../com/ruoyi/cms/util/oauth/OauthClient.java | 25 +++++++++++ 4 files changed, 84 insertions(+), 8 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 367d130..fa69a2d 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -217,6 +217,11 @@ oauth: read-timeout: 30 write-timeout: 30 +#浪潮 +lc: + #获取人员标签 + personTag: http://10.98.80.146/prod-api/dispatch/public/person/tag + #ai chat: baseUrl: http://192.168.133.200:8080 diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java index 935a802..7e4f599 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java @@ -15,6 +15,7 @@ import com.ruoyi.cms.domain.UserInfoDetail; import com.ruoyi.cms.util.AppUserFieldCustomCopy; import com.ruoyi.cms.util.DictUtils; import com.ruoyi.cms.util.encrypt.QuickValidUtils; +import com.ruoyi.cms.util.oauth.OauthClient; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.MyChart; import com.ruoyi.common.core.domain.entity.File; @@ -81,6 +82,9 @@ public class AppUserServiceImpl extends ServiceImpl imple private final RestTemplate restTemplate = new RestTemplate(); + @Autowired + private OauthClient oauthClient; + /** * 查询APP用户 * @@ -142,18 +146,18 @@ public class AppUserServiceImpl extends ServiceImpl imple file.setBussinessid(userId); List files=fileMapper.selectFileList(file); appUser.setFileList(files); - //处理tag + //返回政策标签名称,主要为了查询政策用的 String userTag=appUser.getUserTag(); - if(!StringUtils.isBlank(userTag)){ - String tagName = DictUtils.getDictLabelNames("user_type", userTag, ","); - String idCard = appUser.getIdCard(); - if (userTag.contains(StringUtil.USER_TYPE_SY) - && StringUtils.isNotBlank(idCard) - && StringUtil.isAgeBetween16And24(idCard)) { + String tagName=StringUtils.isNotBlank(userTag)?DictUtils.getDictLabelNames("user_type", userTag, ","):oauthClient.nwLcUserTag(appUser.getIdCard()); + tagName = StringUtils.defaultIfBlank(tagName, ""); + String idCard = appUser.getIdCard(); + if (StringUtils.isNotBlank(idCard)&&StringUtil.isAgeBetween16And24(idCard)) { + boolean isUnemployed = StringUtils.isNotBlank(userTag) && userTag.contains(StringUtil.USER_TYPE_SY)||(StringUtils.isNotBlank(tagName) && tagName.contains("失业")); + if (isUnemployed && !tagName.contains("16-24岁新疆籍失业青年")) { tagName += ",16-24岁新疆籍失业青年"; } - appUser.setUserTagName(tagName); } + appUser.setUserTagName(tagName); } return appUser; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/oauth/HttpUtils.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/oauth/HttpUtils.java index 340667e..5355f8b 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/oauth/HttpUtils.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/oauth/HttpUtils.java @@ -127,6 +127,48 @@ public class HttpUtils { return executeRequest(requestBuilder.build(), connectTimeout, readTimeout, writeTimeout); } + /** + * 发送 GET 请求(无请求头) + */ + public static String doGet(String url) throws Exception { + OkHttpClient client = new OkHttpClient(); + + Request request = new Request.Builder() + .url(url) + .get() + .build(); + + try (Response response = client.newCall(request).execute()) { + if (!response.isSuccessful()) { + throw new IOException("GET 请求失败,状态码:" + response.code()); + } + ResponseBody body = response.body(); + return body != null ? body.string() : ""; + } + } + + /** + * 发送 GET 请求(带请求头) + */ + public static String doGet(String url, Map headers) throws Exception { + OkHttpClient client = new OkHttpClient(); + Request.Builder builder = new Request.Builder().url(url); + + if (headers != null && !headers.isEmpty()) { + for (Map.Entry entry : headers.entrySet()) { + builder.addHeader(entry.getKey(), entry.getValue()); + } + } + Request request = builder.get().build(); + try (Response response = client.newCall(request).execute()) { + if (!response.isSuccessful()) { + throw new IOException("GET 请求失败,状态码:" + response.code()); + } + ResponseBody body = response.body(); + return body != null ? body.string() : ""; + } + } + /** * 执行请求核心方法 */ diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/oauth/OauthClient.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/oauth/OauthClient.java index 0a5b725..aadb562 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/oauth/OauthClient.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/oauth/OauthClient.java @@ -76,6 +76,10 @@ public class OauthClient { @Value("${oauth.write-timeout:30}") private int writeTimeout; + /*====================== 浪潮-人员标签 ======================*/ + @Value("${lc.personTag}") + public String personTagUrl; + @Autowired private RedisCache redisCache; @@ -258,6 +262,27 @@ public class OauthClient { return data; } + /** + * 根据身份证获取tagName + * @param idCard + * @return + */ + public String nwLcUserTag(String idCard){ + String url=personTagUrl+"/"+idCard; + try { + String result = HttpUtils.doGet(url); + JSONObject json = JSONObject.parseObject(result); + if(json.getIntValue("code") != 200){ + return null; + } + JSONObject data = json.getJSONObject("data"); + return data == null ? null : data.getString("tagName"); + }catch (Exception e){ + e.printStackTrace(); + return null; + } + } + /** * 解析List * @param jsonStr