|
|
|
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.PostMapping;
|
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
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 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 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
|
|
|
|
* 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));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@PostMapping("resilogin-ding-md")
|
|
|
|
public Result<ResiDingAppLoginResDTO> resiLoginDingMd(@RequestBody ResiDingAppLoginMdFormDTO formDTO) {
|
|
|
|
ValidatorUtils.validateEntity(formDTO);
|
|
|
|
return new Result<ResiDingAppLoginResDTO>().ok(thirdLoginService.resiLoginDingMd(formDTO));
|
|
|
|
}
|
|
|
|
}
|