diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java index 56dcbaa44..4305edf3b 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java @@ -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> rListSysUser = remoteUserService.getUserByMobileOrEmployeeCode(null, mobile); - List sysUsers = rListSysUser.getData(); - if(!CollectionUtils.isEmpty(sysUsers)){ + R r; + R> userByMobileOrEmployeeCode = remoteUserService.getUserByMobileOrEmployeeCode(null, mobile); + List sysUserList = userByMobileOrEmployeeCode.getData(); + if(!CollectionUtils.isEmpty(sysUserList)){ //登录成功生成token UserTokenDTO userTokenDTO = new UserTokenDTO(); - userTokenDTO.setSysUser(sysUsers.get(0)); - R r = remoteTokenService.generateToken(userTokenDTO); - HashMap 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 booleanR = remoteUserService.registerUser(userDTO); + R> 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; } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/ThirdPartyOAuth2Service.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/ThirdPartyOAuth2Service.java index bc4ac5892..c33870204 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/ThirdPartyOAuth2Service.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/ThirdPartyOAuth2Service.java @@ -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; } } \ No newline at end of file diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserController.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserController.java index 8c6145d05..0e6f54907 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserController.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserController.java @@ -395,8 +395,8 @@ public class SysUserController { */ @GetMapping("/getUserByMobileOrEmployeeCode") @Inner - public R> getUserByMobileOrEmployeeCode(@RequestParam("employeeCode") String employeeCode, @RequestParam("mobile") String mobile) { - return R.ok(userService.list(Wrappers.lambdaQuery().eq(SysUser::getDingtalkEmployeeCode, employeeCode).or().eq(SysUser::getPhone, mobile))); + public R> getUserByMobileOrEmployeeCode(@RequestParam(value = "employeeCode",required = false) String employeeCode, @RequestParam("mobile") String mobile) { + return R.ok(userService.list(Wrappers.lambdaQuery().eq(StringUtils.isNotBlank(employeeCode),SysUser::getDingtalkEmployeeCode, employeeCode).or().eq(SysUser::getPhone, mobile))); } @GetMapping("/getUserByMobile") diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java index ffa537b9d..72784463a 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java @@ -24,7 +24,7 @@ public interface RemoteMchService { @NoToken @GetMapping("/mch-manage/get-by-dept-id") - R getByDeptId(@RequestParam Long deptId, MerchantTypeEnum type); + R getByDeptId(@RequestParam("deptId") Long deptId, @RequestParam("type") MerchantTypeEnum type); @NoToken @GetMapping("/mch-manage/get-by-dept-ids") diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java index f6ed7c894..9750a4656 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java @@ -61,7 +61,7 @@ public class MchManageController { @Inner @GetMapping("/get-by-dept-id") - public R getByDeptId(@RequestParam Long deptId, MerchantTypeEnum type) { + public R getByDeptId(@RequestParam("deptId") Long deptId, MerchantTypeEnum type) { MchManageVo mchManage = mchManageService.getByDeptId(deptId, type); if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在"); return R.ok(mchManage); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java index 9a028d7f4..6cd299911 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java @@ -195,7 +195,7 @@ public class MchManageServiceImpl extends ServiceImpl() .eq(MchManageEntity::getDeptId, deptId) - .eq(MchManageEntity::getTypes, type) + .eq(MchManageEntity::getTypes, type.getType()) ); return BeanUtils.toBean(mchManage, MchManageVo.class); }