Commit 552a1e8f authored by 杨阳's avatar 杨阳

接口改动 - 农户列表增加已认证限制条件

parent 17e8f5ec
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 农户认证状态
*
* @author Provence
* @version v1.0
* @date 2023/8/25 10:17
*/
@Getter
@AllArgsConstructor
public enum PeasantHouseholdEnum {
未认证("未认证", 0),
已认证("已认证", 1);
/**
* 名称,描述
*/
private String name;
/**
* 编码
*/
private int code;
public static PeasantHouseholdEnum getNodeByCode(int code) {
PeasantHouseholdEnum peasantHouseholdEnum = null;
for (PeasantHouseholdEnum type : PeasantHouseholdEnum.values()) {
if (type.getCode() == code) {
peasantHouseholdEnum = type;
break;
}
}
return peasantHouseholdEnum;
}
}
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.hygf.api.Enum.PeasantHouseholdEnum;
import com.yeejoin.amos.boot.module.hygf.api.Enum.PhoneRegisterTypeEum; import com.yeejoin.amos.boot.module.hygf.api.Enum.PhoneRegisterTypeEum;
import com.yeejoin.amos.boot.module.hygf.api.dto.MobileLoginParamDto; import com.yeejoin.amos.boot.module.hygf.api.dto.MobileLoginParamDto;
import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdWxDto; import com.yeejoin.amos.boot.module.hygf.api.dto.PeasantHouseholdWxDto;
...@@ -227,7 +228,8 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -227,7 +228,8 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
* 分页查询 * 分页查询
*/ */
public Page<PeasantHouseholdDto> queryForPeasantHouseholdPage(Page<PeasantHouseholdDto> page,String developerCode,@Condition(Operator.like) String ownersName,Long developerId) { public Page<PeasantHouseholdDto> queryForPeasantHouseholdPage(Page<PeasantHouseholdDto> page,String developerCode,@Condition(Operator.like) String ownersName,Long developerId) {
Page<PeasantHouseholdDto> peasantHouseholdDtoPage = this.queryForPage(page, "rec_date", false,developerCode,ownersName,developerId); int isCertified = PeasantHouseholdEnum.已认证.getCode();
Page<PeasantHouseholdDto> peasantHouseholdDtoPage = this.queryForPage(page, "rec_date", false,developerCode,ownersName,developerId,isCertified);
List<PeasantHouseholdDto> records = peasantHouseholdDtoPage.getRecords(); List<PeasantHouseholdDto> records = peasantHouseholdDtoPage.getRecords();
List<PeasantHouseholdDto> newRecords = records.stream().map(item -> { List<PeasantHouseholdDto> newRecords = records.stream().map(item -> {
if(item.getSurveyOrNot() != null){ if(item.getSurveyOrNot() != null){
...@@ -260,7 +262,8 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -260,7 +262,8 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
* 列表查询 示例 * 列表查询 示例
*/ */
public List<PeasantHouseholdDto> queryForPeasantHouseholdList() { public List<PeasantHouseholdDto> queryForPeasantHouseholdList() {
return this.queryForList("" , false); int isCertified = PeasantHouseholdEnum.已认证.getCode();
return this.queryForList("" , false, isCertified);
} }
public Boolean doAuthenticate(Long sequenceNbr) { public Boolean doAuthenticate(Long sequenceNbr) {
...@@ -278,7 +281,8 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -278,7 +281,8 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
// 通过手机号和验证码调用平台接口进行验证 // 通过手机号和验证码调用平台接口进行验证
String phoneNo = this.parsePhoneNo(wxDTO); String phoneNo = this.parsePhoneNo(wxDTO);
if (phoneNo == null) { if (phoneNo == null) {
throw new BadRequest("获取手机号失败!"); log.error("获取手机号失败!");
throw new BadRequest("微信授权失败, 请重新授权");
} }
log.info("用户手机号码 => {} 开始登录", phoneNo); log.info("用户手机号码 => {} 开始登录", phoneNo);
wxDTO.setPhoneNo(phoneNo); wxDTO.setPhoneNo(phoneNo);
...@@ -288,7 +292,7 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -288,7 +292,7 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
RequestContext.setToken(requestContext.getToken()); RequestContext.setToken(requestContext.getToken());
AgencyUserModel registerUserModel = null; AgencyUserModel registerUserModel = null;
// 判断有无在平台内部注册过用户 // region 判断有无在平台内部注册过用户 没有注册则去平台注册
FeignClientResult<LoginInfoModel> loginInfo = Privilege.agencyUserClient.getLoginInfo(phoneNo); FeignClientResult<LoginInfoModel> loginInfo = Privilege.agencyUserClient.getLoginInfo(phoneNo);
if (loginInfo != null && 200 == loginInfo.getStatus()) { if (loginInfo != null && 200 == loginInfo.getStatus()) {
...@@ -296,15 +300,18 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -296,15 +300,18 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
if (loginInfoModel == null || !StringUtils.isNotBlank(loginInfoModel.getLoginId())) { if (loginInfoModel == null || !StringUtils.isNotBlank(loginInfoModel.getLoginId())) {
// 没有认证过, 去注册用户 // 没有认证过, 去注册用户
FeignClientResult<AgencyUserModel> registerUserModelRestult = doRegister(wxDTO); FeignClientResult<AgencyUserModel> registerUserModelRestult = doRegister(wxDTO);
if (registerUserModelRestult != null && registerUserModelRestult.getStatus() != 200) { if (registerUserModelRestult == null || registerUserModelRestult.getStatus() != 200) {
log.error("调用平台创建用户信息失败:{}" + registerUserModelRestult.getDevMessage()); log.error("用户手机号码 => " + phoneNo + " 调用平台创建用户信息失败: " + registerUserModelRestult.getDevMessage());
throw new BadRequest(registerUserModelRestult.getMessage()); throw new RuntimeException(registerUserModelRestult.getMessage());
} }
registerUserModel = registerUserModelRestult.getResult(); registerUserModel = registerUserModelRestult.getResult();
} }
} }
// endregion
// 登录 // 登录
PeasantHouseholdWxDto loginResult = doLogin(wxDTO, registerUserModel); PeasantHouseholdWxDto loginResult;
try {
loginResult = doLogin(wxDTO, registerUserModel);
// 查询农户信息 // 查询农户信息
List<PeasantHousehold> peasantHouseholds = this.query().eq("telephone", phoneNo).orderByDesc("rec_date").list(); List<PeasantHousehold> peasantHouseholds = this.query().eq("telephone", phoneNo).orderByDesc("rec_date").list();
PeasantHousehold peasantHousehold = peasantHouseholds.size() > 0 ? peasantHouseholds.get(0) : null; PeasantHousehold peasantHousehold = peasantHouseholds.size() > 0 ? peasantHouseholds.get(0) : null;
...@@ -325,12 +332,32 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -325,12 +332,32 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
peasantHousehold.setIsCertified(0); peasantHousehold.setIsCertified(0);
// 过滤传给前端的数据 // 过滤传给前端的数据
this.save(peasantHousehold); this.save(peasantHousehold);
}
log.debug("返回给前端数据, 手机号码 => {}, 农户信息 => {}", phoneNo, peasantHousehold); log.debug("返回给前端数据, 手机号码 => {}, 农户信息 => {}", phoneNo, peasantHousehold);
// 装载农户信息 // 装载农户信息
loginResult.setPeasantHousehold(peasantHousehold); loginResult.setPeasantHousehold(peasantHousehold);
return loginResult; return loginResult;
} }
/*else {
// 场景:扫码未实名认证的情况下, 关掉小程序第二次扫另一个区域经销商的二维码
//
wxDTO.getAmosUserId();// 二维码携带的经销商userId
PeasantHouseholdDto peasantHouseholdDto = buildDefaultPeasantHouseholdDto(wxDTO.getAmosUserId(), wxDTO.getQrCodeType(), phoneNo);
Long newRegionalCompaniesSeq = Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getRegionalCompaniesSeq).orElse(null);
if (newRegionalCompaniesSeq.compareTo()) {
throw new RuntimeException("");
}
}*/
} catch (Exception e) {
log.error("调用平台接口回滚注册的用户 => {}", e, registerUserModel.getUserId());
// 调用平台接口回滚注册的用户
Privilege.agencyUserClient.multDeleteUser(registerUserModel.getUserId());
if (e instanceof BadRequest || e.getCause() instanceof BadRequest) {
throw new BadRequest(e.getMessage());
}
throw new RuntimeException(e.getMessage());
}
return loginResult;
}
/** /**
* 农户微信注册 * 农户微信注册
...@@ -399,7 +426,8 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -399,7 +426,8 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
RequestContext.setAppKey("studio_normalapp_5133538"); RequestContext.setAppKey("studio_normalapp_5133538");
String phoneNo = param.getPhoneNo(); String phoneNo = param.getPhoneNo();
if (phoneNo == null) { if (phoneNo == null) {
throw new BadRequest("获取手机号失败!"); log.error("获取手机号失败!");
throw new BadRequest("微信授权失败, 请重新授权");
} }
FeignClientResult loginResult; FeignClientResult loginResult;
if (!param.getIsNeedVerify() || ("dev".equals(loginEnvironment) && "666666".equals(param.getVerifyCode()))) { if (!param.getIsNeedVerify() || ("dev".equals(loginEnvironment) && "666666".equals(param.getVerifyCode()))) {
...@@ -417,24 +445,24 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -417,24 +445,24 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
loginResult = Privilege.authClient.mobileVerifyCode(model); loginResult = Privilege.authClient.mobileVerifyCode(model);
} }
if (loginResult == null || loginResult.getStatus() != 200) { if (loginResult == null || loginResult.getStatus() != 200) {
log.error("远程调用Privilege服务失败: " + loginResult.getDevMessage()); log.error("手机号码 => " + phoneNo + " 登录失败: " + loginResult.getDevMessage());
String message = StringUtils.isEmpty(loginResult.getMessage()) ? "账号或密码错误" : loginResult.getMessage(); String message = StringUtils.isEmpty(loginResult.getMessage()) ? "账号或密码错误" : loginResult.getMessage();
throw new RuntimeException(message); throw new RuntimeException(message);
} }
HashMap resultMap = (HashMap) loginResult.getResult(); HashMap resultMap = (HashMap) loginResult.getResult();
String token = resultMap.get("token").toString(); String token = resultMap.get("token").toString();
// 设置登录信息
RequestContext.setToken(token); RequestContext.setToken(token);
// redisUtils.set(model.getPhone() + "_token", token, TOKEN_TIME); // redisUtils.set(model.getPhone() + "_token", token, TOKEN_TIME);
// 设置登录信息
String userId = (String) resultMap.get("userId"); String userId = (String) resultMap.get("userId");
// 组装数据
PeasantHouseholdWxDto peasantHouseholdWxDto = new PeasantHouseholdWxDto(); PeasantHouseholdWxDto peasantHouseholdWxDto = new PeasantHouseholdWxDto();
peasantHouseholdWxDto.setExpire(Long.valueOf((String) resultMap.get("expire"))); peasantHouseholdWxDto.setExpire(Long.valueOf((String) resultMap.get("expire")));
peasantHouseholdWxDto.setUserId(userId); peasantHouseholdWxDto.setUserId(userId);
// 判断用户是否刚刚注册过
// 组装authInfo数据 // 组装authInfo数据
Map<String, Object> authInfo = new HashMap<>(); Map<String, Object> authInfo = new HashMap<>();
authInfo.put("token", resultMap.get("token")); authInfo.put("token", token);
authInfo.put("personId", resultMap.get("userId")); authInfo.put("personId", userId);
/*authInfo.put("appKey", "STUDIO_APP_MOBILE"); /*authInfo.put("appKey", "STUDIO_APP_MOBILE");
authInfo.put("product", "studio_normalapp_5133538");*/ authInfo.put("product", "studio_normalapp_5133538");*/
peasantHouseholdWxDto.setAuthInfo(authInfo); peasantHouseholdWxDto.setAuthInfo(authInfo);
...@@ -496,9 +524,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto ...@@ -496,9 +524,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
* @throws * @throws
*/ */
private PeasantHouseholdDto buildDefaultPeasantHouseholdDto(String userId, String qrCodeType, String phoneNo) { private PeasantHouseholdDto buildDefaultPeasantHouseholdDto(String userId, String qrCodeType, String phoneNo) {
// 获取区域 // 这里的userId 是解析区域二维码得到的参数, 如果第一次扫码进来会创建一条农户数据然后关联起来
if (StringUtils.isBlank(userId)) { if (StringUtils.isBlank(userId)) {
throw new BadRequest("区域二维码userId不能为空"); throw new BadRequest("请通过区域二维码扫码进入");
} }
FeignClientResult<AgencyUserModel> userInfoResult = Privilege.agencyUserClient.queryByUserId(userId);// 获取用户 FeignClientResult<AgencyUserModel> userInfoResult = Privilege.agencyUserClient.queryByUserId(userId);// 获取用户
if (userInfoResult == null || userInfoResult.getStatus() != 200) { if (userInfoResult == null || userInfoResult.getStatus() != 200) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment