Browse Source

账号密码登录

master
zhangyuan 3 years ago
parent
commit
a234a27c5a
  1. 13
      epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java
  2. 43
      epmet-auth/src/main/java/com/epmet/dto/form/StaffAccountOrgsFormDTO.java
  3. 48
      epmet-auth/src/main/java/com/epmet/dto/form/ThirdStaffAccountOrgsFormDTO.java
  4. 9
      epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java
  5. 63
      epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
  6. 24
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ThirdAccountCustomerStaffFormDTO.java
  7. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  8. 4
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  9. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java
  10. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java
  11. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java
  12. 13
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java
  13. 12
      epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml

13
epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java

@ -89,6 +89,19 @@ public class ThirdLoginController {
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs); return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
} }
/**
* @param formDTO
* @return
* @author sun
* @description 单客户-账号密码获取组织
**/
@PostMapping(value = "/getmyorgbyaccount")
public Result<List<StaffOrgsResultDTO>> getMyOrgByAccount(@RequestBody ThirdStaffAccountOrgsFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, StaffAccountOrgsFormDTO.AddUserShowGroup.class, StaffAccountOrgsFormDTO.GetMyOrgByPassWordGroup.class);
List<StaffOrgsResultDTO> staffOrgs = thirdLoginService.getMyOrgByAccount(formDTO);
return new Result<List<StaffOrgsResultDTO>>().ok(staffOrgs);
}
/** /**
* @param formDTO * @param formDTO
* @return * @return

43
epmet-auth/src/main/java/com/epmet/dto/form/StaffAccountOrgsFormDTO.java

@ -0,0 +1,43 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 手机验证码获取组织接口入参
* @Author yinzuomei
* @Date 2020/4/18 10:38
*/
@Data
public class StaffAccountOrgsFormDTO implements Serializable {
private static final long serialVersionUID = 4193133227120225342L;
/**
* 添加用户操作的用户可见异常分组
* 该分组用于校验需要返回给前端错误信息提示的列需要继承CustomerClientShowGroup
* 返回错误码为8999提示信息为DTO中具体的列的校验注解message的内容
*/
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
public interface GetMyOrgByPassWordGroup extends CustomerClientShowGroup {
}
public interface GetMyOrgByLoginWxmp extends CustomerClientShowGroup{}
/**
* 手机号
*/
@NotBlank(message = "账号不能为空", groups = {AddUserShowGroup.class})
private String userAccount;
/**
* 验证码
*/
@NotBlank(message="验证码不能为空", groups = {GetMyOrgByLoginWxmp.class})
private String smsCode;
@NotBlank(message = "密码不能为空",groups ={GetMyOrgByPassWordGroup.class})
private String password;
}

48
epmet-auth/src/main/java/com/epmet/dto/form/ThirdStaffAccountOrgsFormDTO.java

@ -0,0 +1,48 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description appId账号验证码获取组织-接口入参
* @Author sun
*/
@Data
public class ThirdStaffAccountOrgsFormDTO implements Serializable {
private static final long serialVersionUID = 4193133227120225342L;
/**
* 添加用户操作的用户可见异常分组
* 该分组用于校验需要返回给前端错误信息提示的列需要继承CustomerClientShowGroup
* 返回错误码为8999提示信息为DTO中具体的列的校验注解message的内容
*/
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
public interface GetMyOrgByPassWordGroup extends CustomerClientShowGroup {
}
public interface GetMyOrgByLoginWxmp extends CustomerClientShowGroup{}
/**
* 小程序appId
*/
@NotBlank(message = "appId不能为空", groups = {AddUserShowGroup.class})
private String appId;
/**
* 手机号
*/
@NotBlank(message = "账号不能为空", groups = {AddUserShowGroup.class})
private String userAccount;
/**
* 验证码
*/
@NotBlank(message="验证码不能为空", groups = {GetMyOrgByLoginWxmp.class})
private String smsCode;
@NotBlank(message = "密码不能为空",groups ={GetMyOrgByPassWordGroup.class})
private String password;
}

9
epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java

@ -52,6 +52,15 @@ public interface ThirdLoginService {
**/ **/
List<StaffOrgsResultDTO> getMyOrgByPassword(ThirdStaffOrgsFormDTO formDTO); List<StaffOrgsResultDTO> getMyOrgByPassword(ThirdStaffOrgsFormDTO formDTO);
/**
* @param formDTO
* @return
* @author zhy
* @description 单客户-手机号密码获取组织
**/
List<StaffOrgsResultDTO> getMyOrgByAccount(ThirdStaffAccountOrgsFormDTO formDTO);
/** /**
* @param formDTO * @param formDTO
* @return * @return

63
epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java

@ -538,6 +538,69 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
return new ArrayList<>(); return new ArrayList<>();
} }
@Override
public List<StaffOrgsResultDTO> getMyOrgByAccount(ThirdStaffAccountOrgsFormDTO formDTO) {
//0.根据appId查询对应客户Id
PaCustomerDTO customer = this.getCustomerInfo(formDTO.getAppId());
//7.28 上边根据appId只能锁定一条客户id,后边的批量循环操作暂不做调整,还是使用之前的代码 sun
//1、根据手机号查询到用户信息
ThirdAccountCustomerStaffFormDTO dto = new ThirdAccountCustomerStaffFormDTO();
dto.setCustomerId(customer.getId());
dto.setUserAccount(formDTO.getUserAccount());
Result<List<CustomerStaffDTO>> customerStaffResult = epmetUserOpenFeignClient.getCustsomerStaffByIdAndAccount(dto);
if (!customerStaffResult.success()) {
logger.warn(String.format("账户密码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getUserAccount(), customerStaffResult.getCode(), customerStaffResult.getMsg()));
throw new RenException(customerStaffResult.getCode());
}
//2、密码是否正确
List<CustomerStaffDTO> customerStaffList=customerStaffResult.getData();
//3、查询用户所有的组织信息
List<String> customerIdList = new ArrayList<>();
//是否设置过密码
boolean havePasswordFlag=false;
//密码是否正确
boolean passwordRightFlag=false;
for (CustomerStaffDTO customerStaffDTO : customerStaffList) {
if(StringUtils.isNotBlank(customerStaffDTO.getPassword())){
havePasswordFlag=true;
}else{
logger.warn(String.format("当前用户:账户%s,客户Id%s下未设置密码.",formDTO.getUserAccount(),customerStaffDTO.getCustomerId()));
continue;
}
if (!PasswordUtils.matches(formDTO.getPassword(), customerStaffDTO.getPassword())) {
logger.warn(String.format("当前用户:账户%s,客户Id%s密码匹配错误.",formDTO.getUserAccount(),customerStaffDTO.getCustomerId()));
}else{
logger.warn(String.format("当前用户:账户%s,客户Id%s密码匹配正确.",formDTO.getUserAccount(),customerStaffDTO.getCustomerId()));
passwordRightFlag=true;
customerIdList.add(customerStaffDTO.getCustomerId());
}
}
//根据手机号查出来所有用户,密码都为空,表明用户未激活账户,未设置密码
if(!havePasswordFlag){
logger.warn(String.format("当前账户(%s)下所有账户都未设置密码,请先使用验证码登录激活账户",formDTO.getUserAccount()));
throw new RenException(EpmetErrorCode.PASSWORD_ERROR.getCode());
}
//密码错误
if(!passwordRightFlag){
logger.warn(String.format("根据当前账户(%s)密码未找到所属组织,密码错误",formDTO.getUserAccount()));
throw new RenException(EpmetErrorCode.PASSWORD_ERROR.getCode());
}
StaffOrgFormDTO staffOrgFormDTO = new StaffOrgFormDTO();
staffOrgFormDTO.setCustomerIdList(customerIdList);
Result<List<StaffOrgsResultDTO>> result = govOrgOpenFeignClient.getStaffOrgList(staffOrgFormDTO);
if(result.success()&&null!=result.getData()){
return result.getData();
}
logger.warn(String .format("手机验证码获取组织,调用%s服务失败,入参账户%s,密码%s,返回错误码%s,错误提示信息%s",
ServiceConstant.GOV_ORG_SERVER,
formDTO.getUserAccount(),
formDTO.getPassword(),
result.getCode(),
result.getMsg()));
return new ArrayList<>();
}
/** /**
* @Description 获取客户信息 * @Description 获取客户信息
* @param appId * @param appId

24
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ThirdAccountCustomerStaffFormDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 根据客户ID手机号查询政府端工作人员基本信息
* @Author sun
*/
@Data
public class ThirdAccountCustomerStaffFormDTO implements Serializable{
private static final long serialVersionUID = -7994579456530273809L;
/**
* 客户Id
* */
private String customerId;
/**
* 账号
* */
private String userAccount;
}

10
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -231,6 +231,16 @@ public interface EpmetUserOpenFeignClient {
@GetMapping(value = "epmetuser/customerstaff/getCustsomerStaffByIdAndPhone") @GetMapping(value = "epmetuser/customerstaff/getCustsomerStaffByIdAndPhone")
Result<List<CustomerStaffDTO>> getCustsomerStaffByIdAndPhone(@RequestBody ThirdCustomerStaffFormDTO formDTO); Result<List<CustomerStaffDTO>> getCustsomerStaffByIdAndPhone(@RequestBody ThirdCustomerStaffFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author zhy
* @Description 根据客户ID手机号查询政府端工作人员基本信息校验用户是否存在
**/
@GetMapping(value = "epmetuser/customerstaff/getCustsomerStaffByIdAndAccount")
Result<List<CustomerStaffDTO>> getCustsomerStaffByIdAndAccount(@RequestBody ThirdAccountCustomerStaffFormDTO formDTO);
/** /**
* 获取用户基础信息 * 获取用户基础信息
* *

4
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java

@ -171,6 +171,10 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustsomerStaffByIdAndPhone", formDTO); return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustsomerStaffByIdAndPhone", formDTO);
} }
@Override
public Result<List<CustomerStaffDTO>> getCustsomerStaffByIdAndAccount(ThirdAccountCustomerStaffFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustsomerStaffByIdAndAccount", formDTO);
}
@Override @Override
public Result<ResiUserBaseInfoResultDTO> selectUserBaseInfo(TokenDto tokenDTO) { public Result<ResiUserBaseInfoResultDTO> selectUserBaseInfo(TokenDto tokenDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "selectUserBaseInfo", tokenDTO); return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "selectUserBaseInfo", tokenDTO);

5
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java

@ -361,6 +361,11 @@ public class CustomerStaffController {
return new Result<List<CustomerStaffDTO>>().ok(customerStaffService.getCustsomerStaffByIdAndPhone(formDTO)); return new Result<List<CustomerStaffDTO>>().ok(customerStaffService.getCustsomerStaffByIdAndPhone(formDTO));
} }
@GetMapping(value = "getCustsomerStaffByIdAndAccount")
public Result<List<CustomerStaffDTO>> getCustsomerStaffByIdAndAccount(@RequestBody ThirdAccountCustomerStaffFormDTO formDTO) {
return new Result<List<CustomerStaffDTO>>().ok(customerStaffService.getCustsomerStaffByIdAndAccount(formDTO));
}
/** /**
* @Description 查询工作人员的信息 * @Description 查询工作人员的信息
* @param formDTO * @param formDTO

8
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java

@ -147,6 +147,14 @@ public interface CustomerStaffDao extends BaseDao<CustomerStaffEntity> {
**/ **/
List<CustomerStaffDTO> selectStaff(ThirdCustomerStaffFormDTO formDTO); List<CustomerStaffDTO> selectStaff(ThirdCustomerStaffFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author zhy
* @Description 根据客户ID手机号查询政府端工作人员基本信息
**/
List<CustomerStaffDTO> selectStaffByAccount(ThirdAccountCustomerStaffFormDTO formDTO);
/** /**
* @Description 查询工作人员的信息 * @Description 查询工作人员的信息
* @param userIds * @param userIds

8
epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java

@ -259,6 +259,14 @@ public interface CustomerStaffService extends BaseService<CustomerStaffEntity> {
**/ **/
List<CustomerStaffDTO> getCustsomerStaffByIdAndPhone(ThirdCustomerStaffFormDTO formDTO); List<CustomerStaffDTO> getCustsomerStaffByIdAndPhone(ThirdCustomerStaffFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author zhy
* @Description 根据客户ID手机号查询政府端工作人员基本信息校验用户是否存在
**/
List<CustomerStaffDTO> getCustsomerStaffByIdAndAccount(ThirdAccountCustomerStaffFormDTO formDTO);
/** /**
* @Description 查询工作人员的信息 * @Description 查询工作人员的信息
* @param formDTO * @param formDTO

13
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java

@ -583,6 +583,19 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
return customerStaffDTOList; return customerStaffDTOList;
} }
@Override
public List<CustomerStaffDTO> getCustsomerStaffByIdAndAccount(ThirdAccountCustomerStaffFormDTO formDTO) {
//根据客户Id和手机号查询工作人员信息
List<CustomerStaffDTO> customerStaffDTOList = baseDao.selectStaffByAccount(formDTO);
if (null == customerStaffDTOList || customerStaffDTOList.size() < NumConstant.ONE) {
logger.warn(String.format("根据客户Id和账户查询用户异常,客户Id:[%s],手机号:[%s],code[%s],msg[%s]",
formDTO.getCustomerId(), formDTO.getUserAccount(), EpmetErrorCode.GOV_STAFF_NOT_EXISTS.getCode(),
EpmetErrorCode.GOV_STAFF_NOT_EXISTS.getMsg()));
throw new RenException(EpmetErrorCode.GOV_STAFF_NOT_EXISTS.getCode());
}
return customerStaffDTOList;
}
/** /**
* @param formDTO * @param formDTO
* @Description 查询工作人员的信息 * @Description 查询工作人员的信息

12
epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml

@ -221,6 +221,18 @@
ORDER BY active_time DESC, created_time ASC ORDER BY active_time DESC, created_time ASC
</select> </select>
<select id="selectStaffByAccount" resultType="com.epmet.dto.form.ThirdAccountCustomerStaffFormDTO">
SELECT
*
FROM
customer_staff
WHERE
del_flag='0'
AND customer_id = #{customerId}
AND user_account = #{userAccount}
ORDER BY active_time DESC, created_time ASC
</select>
<!-- 查询工作人员的信息 --> <!-- 查询工作人员的信息 -->
<select id="getStaffInfoList" resultType="com.epmet.dto.result.StaffSinGridResultDTO"> <select id="getStaffInfoList" resultType="com.epmet.dto.result.StaffSinGridResultDTO">
SELECT SELECT

Loading…
Cancel
Save