单点登录修改
This commit is contained in:
@@ -18,7 +18,7 @@ import java.util.Set;
|
|||||||
/**
|
/**
|
||||||
* bms财务结算系统feign调用接口
|
* bms财务结算系统feign调用接口
|
||||||
*/
|
*/
|
||||||
@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
|
@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.32:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
|
||||||
public interface BmsServiceFeign {
|
public interface BmsServiceFeign {
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.30:8014",configuration = FeignAutoConfiguration.class)
|
@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.31:8014",configuration = FeignAutoConfiguration.class)
|
||||||
public interface WlhyServiceFeign {
|
public interface WlhyServiceFeign {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import java.util.Map;
|
|||||||
* @description: TODO
|
* @description: TODO
|
||||||
* @date 2024/5/10 8:58
|
* @date 2024/5/10 8:58
|
||||||
**/
|
**/
|
||||||
@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class)
|
@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.32:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class)
|
||||||
public interface WmsServiceFeign {
|
public interface WmsServiceFeign {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import com.mhd.system.api.feign.FeignAutoConfiguration;
|
|||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.102.192.4:8018", configuration = FeignAutoConfiguration.class)
|
@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.102.192.33:8018", configuration = FeignAutoConfiguration.class)
|
||||||
public interface YmsServiceFeign {
|
public interface YmsServiceFeign {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ public class SsoAuthorizeController {
|
|||||||
// 5. 重定向到前端页面,token通过URL参数传递
|
// 5. 重定向到前端页面,token通过URL参数传递
|
||||||
// 前端页面需读取URL中的token参数并存入localStorage
|
// 前端页面需读取URL中的token参数并存入localStorage
|
||||||
log.info("SSO单点登录成功, account={}", account);
|
log.info("SSO单点登录成功, account={}", account);
|
||||||
|
log.info("SSO单点登录成功, account={}, token={} , redirectUrl={}", account, accessToken, redirectUrl);
|
||||||
response.sendRedirect(redirectUrl + "?token=" + URLEncoder.encode(accessToken, StandardCharsets.UTF_8.name()));
|
response.sendRedirect(redirectUrl + "?token=" + URLEncoder.encode(accessToken, StandardCharsets.UTF_8.name()));
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class SsoAuthorizeService {
|
|||||||
@Value("${sso.public-key}")
|
@Value("${sso.public-key}")
|
||||||
private String publicKeyStr;
|
private String publicKeyStr;
|
||||||
|
|
||||||
@Value("https://diglog.namkwong.com.mo/main_app/sso")
|
@Value("${sso.redirect-url}")
|
||||||
private String redirectUrl;
|
private String redirectUrl;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ spring:
|
|||||||
# server-addr: 127.0.0.1:8848
|
# server-addr: 127.0.0.1:8848
|
||||||
# 线上测试环境配置 容器名+端口号
|
# 线上测试环境配置 容器名+端口号
|
||||||
# server-addr: 10.33.0.129:6010
|
# server-addr: 10.33.0.129:6010
|
||||||
server-addr: 10.102.192.30:6848
|
server-addr: 10.102.192.31:6848
|
||||||
username: nacos
|
username: nacos
|
||||||
password: manhuoda@2023
|
password: manhuoda@2023
|
||||||
#线上正式环境
|
#线上正式环境
|
||||||
@@ -24,7 +24,7 @@ spring:
|
|||||||
# password: manhuoda@2023
|
# password: manhuoda@2023
|
||||||
config:
|
config:
|
||||||
# server-addr: 127.0.0.1:8848
|
# server-addr: 127.0.0.1:8848
|
||||||
server-addr: 10.102.192.30:6848
|
server-addr: 10.102.192.31:6848
|
||||||
# 测试环境配置 容器名+端口号
|
# 测试环境配置 容器名+端口号
|
||||||
# server-addr: 10.33.0.129:6010
|
# server-addr: 10.33.0.129:6010
|
||||||
# 线上测试环境配置 容器名+端口号
|
# 线上测试环境配置 容器名+端口号
|
||||||
@@ -52,4 +52,4 @@ sso:
|
|||||||
AwIDAQAB
|
AwIDAQAB
|
||||||
-----END PUBLIC KEY-----
|
-----END PUBLIC KEY-----
|
||||||
# SSO登录成功后跳转的前端页面地址
|
# SSO登录成功后跳转的前端页面地址
|
||||||
redirect-url: "/"
|
redirect-url: "https://diglog.namkwong.com.mo/main_app/sso"
|
||||||
|
|||||||
+86
-7
@@ -1,12 +1,22 @@
|
|||||||
package com.mhd.user.application.service;
|
package com.mhd.user.application.service;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.mhd.common.security.utils.SecurityUtils;
|
||||||
import com.mhd.user.domain.userAggregate.entity.AgreementDetails;
|
import com.mhd.user.domain.userAggregate.entity.AgreementDetails;
|
||||||
|
import com.mhd.user.domain.userAggregate.entity.UserShipperEntity;
|
||||||
import com.mhd.user.domain.userAggregate.repository.mapper.AgreementDetailsMapper;
|
import com.mhd.user.domain.userAggregate.repository.mapper.AgreementDetailsMapper;
|
||||||
|
import com.mhd.user.domain.userAggregate.repository.mapper.UserShipperMapper;
|
||||||
|
import com.mhd.user.domain.userAggregate.repository.po.AgreementDetailsPo;
|
||||||
|
import com.mhd.system.api.model.LoginUser;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,18 +29,87 @@ public class AgreementDetailsApplicationService {
|
|||||||
@Resource
|
@Resource
|
||||||
private AgreementDetailsMapper agreementDetailsMapper;
|
private AgreementDetailsMapper agreementDetailsMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private UserShipperMapper userShipperMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据货主ID查询所有协议明细
|
* 根据货主ID查询当前登录用户组织下的协议明细
|
||||||
|
* 从user_shipper表的orgCode字段解析JSON,匹配当前登录用户组织code,
|
||||||
|
* 返回该组织下的agreedaydatas列表
|
||||||
*
|
*
|
||||||
* @param shipperId 货主ID
|
* @param shipperId 货主ID
|
||||||
* @return 协议明细列表
|
* @return 协议明细列表
|
||||||
*/
|
*/
|
||||||
public List<AgreementDetails> listByShipperId(Long shipperId) {
|
public List<AgreementDetailsPo> listByShipperId(Long shipperId) {
|
||||||
return agreementDetailsMapper.selectList(
|
// 1. 获取当前登录用户组织ID
|
||||||
new LambdaQueryWrapper<AgreementDetails>()
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
.eq(AgreementDetails::getShipperId, shipperId)
|
if (ObjectUtil.isNull(loginUser) || ObjectUtil.isNull(loginUser.getUserPo())) {
|
||||||
.orderByDesc(AgreementDetails::getCreateTime)
|
log.warn("未获取到登录用户信息");
|
||||||
);
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
Long organizationId = loginUser.getUserPo().getOrganizationId();
|
||||||
|
if (ObjectUtil.isNull(organizationId)) {
|
||||||
|
log.warn("当前登录用户无组织信息");
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 根据shipperId查询货主信息,获取orgCode字段
|
||||||
|
UserShipperEntity shipperEntity = userShipperMapper.selectById(shipperId);
|
||||||
|
if (ObjectUtil.isNull(shipperEntity)) {
|
||||||
|
log.warn("未找到货主信息,shipperId={}", shipperId);
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
String orgCodeJson = shipperEntity.getOrgCode();
|
||||||
|
if (ObjectUtil.isNull(orgCodeJson) || orgCodeJson.isEmpty()) {
|
||||||
|
log.warn("货主orgCode为空,shipperId={}", shipperId);
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 解析orgCode JSON数组,匹配当前登录用户组织code
|
||||||
|
JSONArray orgCodeArray = JSONArray.parseArray(orgCodeJson);
|
||||||
|
if (orgCodeArray == null || orgCodeArray.isEmpty()) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject matchedOrg = null;
|
||||||
|
for (int i = 0; i < orgCodeArray.size(); i++) {
|
||||||
|
JSONObject orgItem = orgCodeArray.getJSONObject(i);
|
||||||
|
Long code = orgItem.getLong("code");
|
||||||
|
if (organizationId.equals(code)) {
|
||||||
|
matchedOrg = orgItem;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (matchedOrg == null) {
|
||||||
|
log.info("未匹配到当前组织的协议信息,shipperId={},organizationId={}", shipperId, organizationId);
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. 获取匹配组织的agreedaydatas
|
||||||
|
JSONArray agreedaydatas = matchedOrg.getJSONArray("agreedaydatas");
|
||||||
|
if (agreedaydatas == null || agreedaydatas.isEmpty()) {
|
||||||
|
log.info("当前组织下无协议天数数据,shipperId={},organizationId={}", shipperId, organizationId);
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 5. 转换为AgreementDetailsPo列表
|
||||||
|
List<AgreementDetailsPo> result = new ArrayList<>();
|
||||||
|
for (int i = 0; i < agreedaydatas.size(); i++) {
|
||||||
|
JSONObject item = agreedaydatas.getJSONObject(i);
|
||||||
|
AgreementDetailsPo po = new AgreementDetailsPo();
|
||||||
|
po.setCode(item.getString("code"));
|
||||||
|
po.setOrgcode(item.getString("orgcode"));
|
||||||
|
po.setPtypename(item.getString("ptypename"));
|
||||||
|
po.setPtype(item.getString("ptype"));
|
||||||
|
po.setPcode(item.getString("pcode"));
|
||||||
|
po.setPname(item.getString("pname"));
|
||||||
|
po.setPday(item.getString("pday"));
|
||||||
|
result.add(po);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("查询协议明细成功,shipperId={},organizationId={},共{}条", shipperId, organizationId, result.size());
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
package com.mhd.user.domain.userAggregate.repository.po;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 协议天数PO
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AgreementDetailsPo {
|
||||||
|
|
||||||
|
@ApiModelProperty("客户编码")
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
@ApiModelProperty("协议组织编码")
|
||||||
|
private String orgcode;
|
||||||
|
|
||||||
|
@ApiModelProperty("协议类型名称")
|
||||||
|
private String ptypename;
|
||||||
|
|
||||||
|
@ApiModelProperty("协议类型:1-付款协议天数,2-收款协议天数")
|
||||||
|
private String ptype;
|
||||||
|
|
||||||
|
@ApiModelProperty("财务系统协议编码")
|
||||||
|
private String pcode;
|
||||||
|
|
||||||
|
@ApiModelProperty("协议天数名称")
|
||||||
|
private String pname;
|
||||||
|
|
||||||
|
@ApiModelProperty("协议天数")
|
||||||
|
private String pday;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user