You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
245 lines
9.8 KiB
245 lines
9.8 KiB
package com.epmet.controller;
|
|
|
|
import com.epmet.commons.tools.utils.Result;
|
|
import com.epmet.commons.tools.validator.ValidatorUtils;
|
|
import com.epmet.dto.form.*;
|
|
import com.epmet.dto.result.ResiDingAppLoginResDTO;
|
|
import com.epmet.dto.result.StaffOrgsResultDTO;
|
|
import com.epmet.dto.result.UserTokenResultDTO;
|
|
import com.epmet.service.ThirdLoginService;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.List;
|
|
|
|
/**
|
|
* @Description 第三方-居民端、政府端登陆服务
|
|
* @author sun
|
|
*/
|
|
@RestController
|
|
@RequestMapping("thirdlogin")
|
|
public class ThirdLoginController {
|
|
|
|
@Autowired
|
|
private ThirdLoginService thirdLoginService;
|
|
|
|
/**
|
|
* @param formDTO
|
|
* @return
|
|
* @Author sun
|
|
* @Description 单客户-居民端微信小程序登录
|
|
**/
|
|
@PostMapping("resilogin")
|
|
public Result<UserTokenResultDTO> resiLogin(@RequestBody LoginFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO);
|
|
return new Result<UserTokenResultDTO>().ok(thirdLoginService.resiLogin(formDTO));
|
|
}
|
|
|
|
/**
|
|
* @param formDTO
|
|
* @return
|
|
* @Author sun
|
|
* @Description 单客户-政府端微信小程序登录
|
|
**/
|
|
@PostMapping("worklogin")
|
|
public Result<UserTokenResultDTO> workLogin(@RequestBody LoginFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO);
|
|
return new Result<UserTokenResultDTO>().ok(thirdLoginService.workLogin(formDTO));
|
|
}
|
|
|
|
/**
|
|
* @param formDTO
|
|
* @return
|
|
* @Author sun
|
|
* @Description 单客户-选择组织,进入首页
|
|
**/
|
|
@PostMapping(value = "enterorg")
|
|
public Result<UserTokenResultDTO> enterOrg(@RequestBody ThirdWxmpEnteOrgFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO,ThirdWxmpEnteOrgFormDTO.AddUserShowGroup.class,ThirdWxmpEnteOrgFormDTO.AddUserInternalGroup.class);
|
|
UserTokenResultDTO userTokenResultDTO=thirdLoginService.enterOrg(formDTO);
|
|
return new Result<UserTokenResultDTO>().ok(userTokenResultDTO);
|
|
}
|
|
|
|
/**
|
|
* @param formDTO
|
|
* @return
|
|
* @Author zhy
|
|
* @Description 单客户-选择组织,进入首页
|
|
**/
|
|
@PostMapping(value = "enterorgbyaccount")
|
|
public Result<UserTokenResultDTO> enterOrgByAccount(@RequestBody ThirdWxmpEnteOrgByAccountFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO,ThirdWxmpEnteOrgFormDTO.AddUserShowGroup.class,ThirdWxmpEnteOrgFormDTO.AddUserInternalGroup.class);
|
|
UserTokenResultDTO userTokenResultDTO=thirdLoginService.enterOrgByAccount(formDTO);
|
|
return new Result<UserTokenResultDTO>().ok(userTokenResultDTO);
|
|
}
|
|
|
|
/**
|
|
* @param formDTO
|
|
* @return
|
|
* @Author sun
|
|
* @Description 单客户-手机验证码获取组织
|
|
**/
|
|
@PostMapping(value = "/getmyorg")
|
|
public Result<List<StaffOrgsResultDTO>> getmyorg(@RequestBody ThirdStaffOrgsFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO, StaffOrgsFormDTO.AddUserShowGroup.class, StaffOrgsFormDTO.GetMyOrgByLoginWxmp.class);
|
|
List<StaffOrgsResultDTO> staffOrgs = thirdLoginService.getMyOrg(formDTO);
|
|
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
|
|
}
|
|
|
|
/**
|
|
* @param formDTO
|
|
* @return
|
|
* @author sun
|
|
* @description 单客户-手机号密码获取组织
|
|
**/
|
|
@PostMapping(value = "/getmyorgbypassword")
|
|
public Result<List<StaffOrgsResultDTO>> getMyOrgByPassword(@RequestBody ThirdStaffOrgsFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO, StaffOrgsFormDTO.AddUserShowGroup.class, StaffOrgsFormDTO.GetMyOrgByPassWordGroup.class);
|
|
List<StaffOrgsResultDTO> staffOrgs = thirdLoginService.getMyOrgByPassword(formDTO);
|
|
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
|
|
}
|
|
|
|
/**
|
|
* @param formDTO
|
|
* @return
|
|
* @author zhy
|
|
* @description 单客户-账号密码获取组织
|
|
**/
|
|
@PostMapping(value = "/getmyorgbyaccount")
|
|
public Result<List<StaffOrgsResultDTO>> getMyOrgByAccount(@RequestBody ThirdStaffOrgByAccountFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO, StaffOrgByAccountFormDTO.AddUserShowGroup.class, StaffOrgByAccountFormDTO.GetMyOrgByPassWordGroup.class);
|
|
List<StaffOrgsResultDTO> staffOrgs = thirdLoginService.getMyOrgByAccount(formDTO);
|
|
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
|
|
}
|
|
|
|
/**
|
|
* @param formDTO
|
|
* @return
|
|
* @author sun
|
|
* @description 单客户-获取微信用户手机号
|
|
**/
|
|
@PostMapping("getresiwxphone")
|
|
public Result getResiWxPhone(@RequestBody GetResiWxPhoneFormDTO formDTO) {
|
|
String phone = thirdLoginService.getResiWxPhone(formDTO);
|
|
if (StringUtils.isNotBlank(phone) && !"null".equals(phone)) {
|
|
return new Result().ok(phone);
|
|
}
|
|
return new Result().ok("");
|
|
}
|
|
|
|
/**
|
|
* @param formDTO
|
|
* @author sun
|
|
* @description 单客户-工作端微信小程序登录-发送验证码
|
|
**/
|
|
@PostMapping(value = "sendsmscode")
|
|
public Result sendSmsCode(@RequestBody ThirdSendSmsCodeFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO,ThirdSendSmsCodeFormDTO.AddUserShowGroup.class);
|
|
thirdLoginService.sendSmsCode(formDTO);
|
|
return new Result();
|
|
}
|
|
|
|
/**
|
|
* 钉钉应用的登录-居民端
|
|
* 产品服务商建立第三方企业应用
|
|
* 参考文档:https://open.dingtalk.com/document/isvapp-server/unified-authorization-suite-access-process
|
|
* @param formDTO
|
|
* @return
|
|
*/
|
|
/**
|
|
* 接入流程:https://open.dingtalk.com/document/isvapp-server/unified-authorization-suite-access-process
|
|
* 1、获取个人用户token:https://open.dingtalk.com/document/isvapp-server/obtain-user-token
|
|
* 2、获取用户通讯录个人信息:https://open.dingtalk.com/document/isvapp-server/dingtalk-retrieve-user-information
|
|
* 接口逻辑:
|
|
* (1)根据clientId去XXX表找到customerId
|
|
* (2)通过1、2拿到手机号之后,根据mobile+customerId去user_base_info表找userId,
|
|
* 是否注册居民:register_relation
|
|
* (3)没有则生成user、user_Base_info表记录
|
|
* @param formDTO
|
|
* @return
|
|
*/
|
|
@PostMapping("resilogin-ding")
|
|
public Result<ResiDingAppLoginResDTO> resiLoginDing(@RequestBody ResiDingAppLoginFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO,ResiDingAppLoginFormDTO.InnerMiniApp.class);
|
|
return new Result<ResiDingAppLoginResDTO>().ok(thirdLoginService.resiLoginDing(formDTO));
|
|
}
|
|
|
|
/**
|
|
* 烟台建立应用,授权给我们,走企业免登
|
|
* 企业简历内部应用授权给第三方
|
|
* 可参考文档: 获取第三方应用授权企业的accessToken https://open.dingtalk.com/document/orgapp-server/obtain-the-access_token-of-the-authorized-enterprise
|
|
* https://open.dingtalk.com/document/orgapp-server/enterprise-internal-application-logon-free
|
|
* @param formDTO
|
|
* @return
|
|
*/
|
|
@PostMapping("resilogin-ding-md")
|
|
public Result<ResiDingAppLoginResDTO> resiLoginDingMd(@RequestBody DingAppLoginMdFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO);
|
|
return new Result<ResiDingAppLoginResDTO>().ok(thirdLoginService.resiLoginDingMd(formDTO));
|
|
}
|
|
|
|
/**
|
|
* 企业内部应用开发,不授权了 文档地址:https://open.dingtalk.com/document/orgapp-server/enterprise-internal-application-logon-free
|
|
* https://open.dingtalk.com/document/orgapp-server/enterprise-internal-application-logon-free
|
|
* 建议用户信息保存在前端缓存中(dd.setStorage)或者cookie中,避免每次进入应用都调用钉钉接口进行免登。
|
|
*
|
|
* 获取免登授权码。
|
|
* 小程序免登
|
|
* 微应用免登
|
|
* 获取AccessToken。
|
|
* 调用接口获取access_token,详情请参考获取企业内部应用的access_token。
|
|
*
|
|
* 获取userid。
|
|
* 调用接口获取用户的userid,详情请参考通过免登码获取用户信息。
|
|
*
|
|
* 获取用户详情。
|
|
* 调用接口获取用户详细信息,详情请参考根据userId获取用户详情。
|
|
*
|
|
* @param formDTO
|
|
* @return
|
|
* 目前烟台用的这个!!!!!!
|
|
*/
|
|
@PostMapping("resilogin-internalding")
|
|
public Result<ResiDingAppLoginResDTO> resiLoginInternalDing(@RequestBody DingAppLoginMdFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO);
|
|
return new Result<ResiDingAppLoginResDTO>().ok(thirdLoginService.resiLoginInternalDing(formDTO));
|
|
}
|
|
|
|
/**
|
|
* @Description: h5-登陆 随手拍 议事厅
|
|
* @param formDTO:
|
|
* @Return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.resiLoginHfive>
|
|
* @Author: lichao
|
|
* @Date: 2023/8/15 09:23
|
|
*/
|
|
@PostMapping("resilogin-hfive")
|
|
public Result<ResiDingAppLoginResDTO> resiLoginHfive(@RequestBody HfiveLoginMdFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO);
|
|
return new Result<ResiDingAppLoginResDTO>().ok(thirdLoginService.resiLoginHfive(formDTO));
|
|
}
|
|
|
|
/**
|
|
* 根据免登授权码, 获取登录用户身份
|
|
*
|
|
* @param formDTO 免登授权码
|
|
* @return
|
|
*/
|
|
@PostMapping("govlogin-internalding")
|
|
public Result<UserTokenResultDTO> login(@RequestBody DingAppLoginMdFormDTO formDTO) {
|
|
ValidatorUtils.validateEntity(formDTO);
|
|
return new Result<UserTokenResultDTO>().ok(thirdLoginService.govLoginInternalDing(formDTO));
|
|
}
|
|
|
|
/**
|
|
* 根据免登授权码, 获取登录用户身份
|
|
*
|
|
* @param authCode 烟台认证中心 授权码
|
|
* @return
|
|
*/
|
|
@PostMapping("sso-govlogin-yantai/{authCode}")
|
|
public Result<UserTokenResultDTO> yantaiSSOLogin(@PathVariable(value = "authCode") String authCode) {
|
|
return new Result<UserTokenResultDTO>().ok(thirdLoginService.yanTaiSSOLogin(authCode));
|
|
}
|
|
|
|
}
|
|
|