|
|
@ -8,8 +8,10 @@ import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.cloud.kicc.common.core.api.R; |
|
|
|
import com.cloud.kicc.common.core.api.R; |
|
|
|
|
|
|
|
import com.cloud.kicc.common.core.constant.CommonConstants; |
|
|
|
import com.cloud.kicc.common.core.constant.SecurityConstants; |
|
|
|
import com.cloud.kicc.common.core.constant.SecurityConstants; |
|
|
|
import com.cloud.kicc.common.core.exception.CheckedException; |
|
|
|
import com.cloud.kicc.common.core.exception.CheckedException; |
|
|
|
|
|
|
|
import com.cloud.kicc.common.data.entity.KiccUser; |
|
|
|
import com.cloud.kicc.commonbiz.api.entity.*; |
|
|
|
import com.cloud.kicc.commonbiz.api.entity.*; |
|
|
|
import com.cloud.kicc.commonbiz.mapper.PushApplicationMapper; |
|
|
|
import com.cloud.kicc.commonbiz.mapper.PushApplicationMapper; |
|
|
|
import com.cloud.kicc.commonbiz.service.*; |
|
|
|
import com.cloud.kicc.commonbiz.service.*; |
|
|
@ -18,6 +20,10 @@ import com.cloud.kicc.system.api.entity.User; |
|
|
|
import com.cloud.kicc.system.api.feign.RemoteUserService; |
|
|
|
import com.cloud.kicc.system.api.feign.RemoteUserService; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import okhttp3.OkHttpClient; |
|
|
|
import okhttp3.OkHttpClient; |
|
|
|
|
|
|
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
|
|
|
|
|
|
|
import org.springframework.security.core.Authentication; |
|
|
|
|
|
|
|
import org.springframework.security.core.authority.AuthorityUtils; |
|
|
|
|
|
|
|
import org.springframework.security.core.context.SecurityContextHolder; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.web.context.request.RequestContextHolder; |
|
|
|
import org.springframework.web.context.request.RequestContextHolder; |
|
|
@ -57,11 +63,26 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe |
|
|
|
throw new CheckedException("当前推送方用户ID与推送应用密钥必填!"); |
|
|
|
throw new CheckedException("当前推送方用户ID与推送应用密钥必填!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
R<User> result = remoteUserService.selectByUserId(pushChatMessage.getPushTypeId(), SecurityConstants.FROM_IN); |
|
|
|
R<User> result = remoteUserService.selectByUserId(pushChatMessage.getUserId(), SecurityConstants.FROM_IN); |
|
|
|
if (result == null || result.getData() == null) { |
|
|
|
if (result == null || result.getData() == null) { |
|
|
|
throw new CheckedException("用户不存在"); |
|
|
|
throw new CheckedException("用户不存在"); |
|
|
|
} |
|
|
|
} |
|
|
|
pushChatMessage.setTenantId(result.getData().getTenantId()); |
|
|
|
User user = result.getData(); |
|
|
|
|
|
|
|
KiccUser kiccUser = new KiccUser( |
|
|
|
|
|
|
|
user.getId(), |
|
|
|
|
|
|
|
user.getDeptId(), |
|
|
|
|
|
|
|
user.getUserName(), |
|
|
|
|
|
|
|
SecurityConstants.BCRYPT + user.getPassword(), |
|
|
|
|
|
|
|
user.getPhone(), |
|
|
|
|
|
|
|
user.getTenantId(), |
|
|
|
|
|
|
|
true, |
|
|
|
|
|
|
|
true, |
|
|
|
|
|
|
|
true, |
|
|
|
|
|
|
|
StrUtil.equals(user.getStatus(), CommonConstants.STATUS_NORMAL), |
|
|
|
|
|
|
|
AuthorityUtils.createAuthorityList(user.getPermissions()) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
Authentication authentication = new UsernamePasswordAuthenticationToken(kiccUser, "N/A", kiccUser.getAuthorities()); |
|
|
|
|
|
|
|
SecurityContextHolder.getContext().setAuthentication(authentication); |
|
|
|
|
|
|
|
|
|
|
|
PushApplication pushApplication = baseMapper.selectOne(Wrappers.<PushApplication>lambdaQuery() |
|
|
|
PushApplication pushApplication = baseMapper.selectOne(Wrappers.<PushApplication>lambdaQuery() |
|
|
|
.eq(PushApplication::getMessageSecret, pushChatMessage.getMessageSecret()) |
|
|
|
.eq(PushApplication::getMessageSecret, pushChatMessage.getMessageSecret()) |
|
|
|