This commit is contained in:
dzc committed 2025-03-28 13:42:17 +08:00
commit 25819dc6fa
5 files changed
+39 -29

No files matched your search

@@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@RestController
@RequiredArgsConstructor
@@ -185,37 +186,43 @@ public class ThirdPartyOAth2Cotroller {
@PostMapping("/shjnsso")
@Inner(value = false)
@Operation(summary = "诗画江南单点登录")
@SysLog("诗画江南单点登录")
@Transactional
@GlobalTransactional
public R shjnsso(@RequestBody @Valid SHJNSSODTO shjnsso) {
ZZDUserDTO zzdUserDTO = thirdPartyOAuth2Service.shjnsso(shjnsso.getAccountId(), shjnsso.getSessionId());
if (null==zzdUserDTO){
throw new RuntimeException("");
}
ZZDUserDTO.Ext ext = zzdUserDTO.getExt();
String mobile = zzdUserDTO.getMobile();
R<List<SysUser>> rListSysUser = remoteUserService.getUserByMobileOrEmployeeCode(null, mobile);
List<SysUser> sysUsers = rListSysUser.getData();
if(!CollectionUtils.isEmpty(sysUsers)){
R<Map> r;
R<List<SysUser>> userByMobileOrEmployeeCode = remoteUserService.getUserByMobileOrEmployeeCode(null, mobile);
List<SysUser> sysUserList = userByMobileOrEmployeeCode.getData();
if(!CollectionUtils.isEmpty(sysUserList)){
//登录成功生成token
UserTokenDTO userTokenDTO = new UserTokenDTO();
userTokenDTO.setSysUser(sysUsers.get(0));
R<Map> r = remoteTokenService.generateToken(userTokenDTO);
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
Object accessToken = r.getData().get("accessToken");
Object refreshToken = r.getData().get("refreshToken");
objectObjectHashMap.put("refreshToken",refreshToken);
objectObjectHashMap.put("accessToken",accessToken);
return R.ok(objectObjectHashMap);
userTokenDTO.setSysUser(sysUserList.get(0));
r=remoteTokenService.generateToken(userTokenDTO);
}else {
//自动注册
UserDTO userDTO = new UserDTO();
// userDTO.setDeptId(1865990541445263361L);
userDTO.setName(zzdUserDTO.getUsername());
userDTO.setNickname(zzdUserDTO.getUsername());
userDTO.setSystemType("2");
userDTO.setPhone(mobile);
//赋予随机密码
userDTO.setPassword("pj*"+ UUID.randomUUID());
R<Boolean> booleanR = remoteUserService.registerUser(userDTO);
R<List<SysUser>> userByMobile=remoteUserService.getUserByMobile(mobile);
SysUser sysUser = userByMobile.getData().get(0);
UserTokenDTO userTokenDTO = new UserTokenDTO();
userTokenDTO.setSysUser(sysUser);
// //登录成功,根据新注册的用户信息返回token
r=remoteTokenService.generateToken(userTokenDTO);
}
// log.info("用户不存在,尝试创建用户");
// CreateUserDto createUserDto = new CreateUserDto();
// createUserDto.setUsername(zzdUserDTO.getUsername());
// createUserDto.setMobile(mobile);
// createUserDto.setNickname(zzdUserDTO.getNickName());
// createUserDto.setAvatar(ext.getHeadImgUrl());
// //todo 换成枚举
// //诗画用户
// createUserDto.setUserType("2");
// AdminUserRespDTO adminUserRespDTONew=adminUserApi.createSysUser(createUserDto);
// log.info("创建用户成功,用户id为:{}",adminUserRespDTONew.getId());
// return createTokenAfterLoginSuccess(adminUserRespDTONew.getId(), mobile, LoginLogTypeEnum.LOGIN_SSO);
return R.failed("不存在用户");
return r;
}
@@ -1,5 +1,7 @@
package com.bsd.pjcloud.thirdparty.service;
import com.bsd.pjcloud.admin.api.entity.SysUser;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.thirdparty.config.OAuth2ClientConfig;
import com.bsd.pjcloud.thirdparty.dto.*;
import com.bsd.pjcloud.thirdparty.entity.ThirdPartyDeptEntity;
@@ -515,6 +517,7 @@ public class ThirdPartyOAuth2Service {
*/
public ZZDUserDTO shjnsso(String accountId, String sessionId) {
String shjnToken = getSHJNToken(accountId, sessionId);
return getZZDUserInfo(shjnToken);
ZZDUserDTO zzdUserDTO = getZZDUserInfo(shjnToken);
return zzdUserDTO;
}
}
@@ -395,8 +395,8 @@ public class SysUserController {
*/
@GetMapping("/getUserByMobileOrEmployeeCode")
@Inner
public R<List<SysUser>> getUserByMobileOrEmployeeCode(@RequestParam("employeeCode") String employeeCode, @RequestParam("mobile") String mobile) {
return R.ok(userService.list(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getDingtalkEmployeeCode, employeeCode).or().eq(SysUser::getPhone, mobile)));
public R<List<SysUser>> getUserByMobileOrEmployeeCode(@RequestParam(value = "employeeCode",required = false) String employeeCode, @RequestParam("mobile") String mobile) {
return R.ok(userService.list(Wrappers.<SysUser>lambdaQuery().eq(StringUtils.isNotBlank(employeeCode),SysUser::getDingtalkEmployeeCode, employeeCode).or().eq(SysUser::getPhone, mobile)));
}
@GetMapping("/getUserByMobile")
@@ -24,7 +24,7 @@ public interface RemoteMchService {
@NoToken
@GetMapping("/mch-manage/get-by-dept-id")
R<MchManageVo> getByDeptId(@RequestParam Long deptId, MerchantTypeEnum type);
R<MchManageVo> getByDeptId(@RequestParam("deptId") Long deptId, @RequestParam("type") MerchantTypeEnum type);
@NoToken
@GetMapping("/mch-manage/get-by-dept-ids")
@@ -61,7 +61,7 @@ public class MchManageController {
@Inner
@GetMapping("/get-by-dept-id")
public R<MchManageVo> getByDeptId(@RequestParam Long deptId, MerchantTypeEnum type) {
public R<MchManageVo> getByDeptId(@RequestParam("deptId") Long deptId, MerchantTypeEnum type) {
MchManageVo mchManage = mchManageService.getByDeptId(deptId, type);
if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在");
return R.ok(mchManage);