Commit 89d1ac8e authored by 杨阳's avatar 杨阳

打印日志

调整二维码接口参数验证 调整平台微信注册接口
parent 6b54a551
......@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.hygf.api.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
/**
*
* @author Provence
......@@ -61,5 +63,5 @@ public class MobileLoginParamDto {
private String verifyCode;
@ApiModelProperty("农户信息")
private PeasantHouseholdDto peasantHouseholdDto;
private @Valid PeasantHouseholdDto peasantHouseholdDto;
}
......@@ -9,6 +9,9 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
......@@ -39,13 +42,16 @@ public class PeasantHouseholdDto extends BaseDto {
private String telephone;
@ApiModelProperty(value = "开发方名称")
@NotBlank(message = "开发方名称不能为空")
private String developerName;
@ApiModelProperty(value = "开发方code")
@NotBlank(message = "开发方code不能为空")
private String developerCode;
@ApiModelProperty(value = "开发方平台id")
@NotNull(message = "开发方平台id不能为空")
private Long developerId;
@ApiModelProperty(value = "定金")
......@@ -90,7 +96,9 @@ public class PeasantHouseholdDto extends BaseDto {
@ApiModelProperty(value = "常住详细地址")
private String permanentAddressDetail;
@ApiModelProperty(value = "开发人")
@NotBlank(message = "开发人不能为空")
private String developer;
@ApiModelProperty(value = "常住地址")
......@@ -108,20 +116,25 @@ public class PeasantHouseholdDto extends BaseDto {
private List<String> permanentAddressText;
@ApiModelProperty(value = "区域公司id")
@NotNull(message = "区域公司id不能为空")
private Long regionalCompaniesSeq;
@ApiModelProperty(value = "区域公司code")
@NotBlank(message = "区域公司code不能为空")
private String regionalCompaniesCode;
@ApiModelProperty(value = "区域公司名称")
@NotBlank(message = "区域公司名称不能为空")
private String regionalCompaniesName;
@ApiModelProperty(value = "身份证正面")
@TableField(typeHandler = FastjsonTypeHandler.class)
@NotEmpty(message = "身份证正面不能为空")
private List<Object> idCardFront;
@ApiModelProperty(value = "身份证反面")
@TableField(typeHandler = FastjsonTypeHandler.class)
@NotEmpty(message = "身份证反面不能为空")
private List<Object> idCardOpposite;
@ApiModelProperty(value = "微信唯一id")
......
......@@ -19,10 +19,10 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -105,6 +105,7 @@ public class PeasantHouseholdWxController extends BaseController {
@RequestMapping (value = "/login", method = RequestMethod.POST)
@ApiOperation (httpMethod = "POST", value = "微信授权登陆", notes = "微信授权登陆")
public ResponseModel<PeasantHouseholdWxDto> wxUserLogin(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) {
log.info("微信授权登录入参 => {}", mobileLoginParam);
if (StringUtils.isBlank(mobileLoginParam.getAmosUserId())) {
// 扫码的userId为空, 则取默认值
mobileLoginParam.setAmosUserId(defaultUserId);
......@@ -116,8 +117,8 @@ public class PeasantHouseholdWxController extends BaseController {
@TycloudOperation (ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping (value = "/register", method = RequestMethod.POST)
@ApiOperation (httpMethod = "POST", value = "微信农户注册", notes = "微信农户注册")
public ResponseModel<PeasantHouseholdDto> wxUserRegister(@ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) {
// log.info("微信农户注册, 入参 => {}", JSONObject.toJSONString(mobileLoginParam));
public ResponseModel<PeasantHouseholdDto> wxUserRegister(@Validated @ApiParam @RequestBody MobileLoginParamDto mobileLoginParam) {
log.info("微信农户注册, 入参 => {}", mobileLoginParam);
if (null == mobileLoginParam.getPeasantHouseholdDto()) {
throw new BadRequest("农户信息不能为空");
}
......
......@@ -69,6 +69,7 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
/**
......@@ -220,17 +221,17 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
Page<PeasantHouseholdDto> peasantHouseholdDtoPage = this.queryForPage(page, "rec_date", false,developerCode,ownersName,developerId);
List<PeasantHouseholdDto> records = peasantHouseholdDtoPage.getRecords();
List<PeasantHouseholdDto> newRecords = records.stream().map(item -> {
if(item.getSurveyOrNot() != null){
if (item.getSurveyOrNot() == 0) {
item.setSurveyOrNotText("待勘察");
} else if (item.getSurveyOrNot() == 1) {
item.setSurveyOrNotText("已勘察");
} else if (item.getSurveyOrNot() == 2) {
item.setSurveyOrNotText("审核中");
} else if (item.getSurveyOrNot() == 3) {
item.setSurveyOrNotText("审核完成");
}
}
if(item.getSurveyOrNot() != null){
if (item.getSurveyOrNot() == 0) {
item.setSurveyOrNotText("待勘察");
} else if (item.getSurveyOrNot() == 1) {
item.setSurveyOrNotText("已勘察");
} else if (item.getSurveyOrNot() == 2) {
item.setSurveyOrNotText("审核中");
} else if (item.getSurveyOrNot() == 3) {
item.setSurveyOrNotText("审核完成");
}
}
if (!StringUtils.isEmpty(item.getProjectAddressName())) {
item.setProjectAddressText(Arrays.asList(item.getProjectAddressName().split("/")));
......@@ -271,7 +272,7 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
}
log.info("用户手机号码 => {} 开始登录", phoneNo);
wxDTO.setPhoneNo(phoneNo);
//
// 机器人token
RequestContext.setAppKey("AMOS_STUDIO");
RequestContext.setProduct("AMOS_STUDIO_WEB");
RequestContext.setToken(requestContext.getToken());
......@@ -294,10 +295,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
}
// 登录
PeasantHouseholdWxDto loginResult = doLogin(wxDTO, registerUserModel);
// 判断是否注册过
// 查询农户信息
List<PeasantHousehold> peasantHouseholds = this.query().eq("telephone", phoneNo).orderByDesc("rec_date").list();
PeasantHousehold peasantHousehold = peasantHouseholds.size() > 0 ? peasantHouseholds.get(0) : null;
// 没有注册过农户信息
if (null == peasantHousehold) {
peasantHousehold = new PeasantHousehold();
peasantHousehold.setIsCertified(0);
......@@ -305,16 +305,16 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
peasantHousehold.setReview(0);
peasantHousehold.setTelephone(phoneNo);
PeasantHouseholdDto peasantHouseholdDto = buildDefaultPeasantHouseholdDto(wxDTO.getAmosUserId(), wxDTO.getQrCodeType(), phoneNo);
peasantHousehold.setDeveloperCode(peasantHouseholdDto.getDeveloperCode());// 开发方code
peasantHousehold.setDeveloperId(peasantHouseholdDto.getDeveloperId());// 开发方id
peasantHousehold.setDeveloperName(peasantHouseholdDto.getDeveloperName());// 开发方名称
peasantHousehold.setDeveloper(peasantHouseholdDto.getDeveloper());// 开发人
peasantHousehold.setRegionalCompaniesSeq(peasantHouseholdDto.getRegionalCompaniesSeq());
peasantHousehold.setRegionalCompaniesCode(peasantHouseholdDto.getRegionalCompaniesCode());
peasantHousehold.setRegionalCompaniesName(peasantHouseholdDto.getRegionalCompaniesName());
peasantHousehold.setDeveloperCode(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getDeveloperCode).orElse(""));// 开发方code
peasantHousehold.setDeveloperId(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getDeveloperId).orElse(null));// 开发方id
peasantHousehold.setDeveloperName(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getDeveloperName).orElse(""));// 开发方名称
peasantHousehold.setDeveloper(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getDeveloper).orElse(""));// 开发人
peasantHousehold.setRegionalCompaniesSeq(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getRegionalCompaniesSeq).orElse(null));
peasantHousehold.setRegionalCompaniesCode(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getRegionalCompaniesCode).orElse(""));
peasantHousehold.setRegionalCompaniesName(Optional.ofNullable(peasantHouseholdDto).map(PeasantHouseholdDto::getRegionalCompaniesName).orElse(""));
// 过滤传给前端的数据
}
log.info("返回给前端数据, 手机号码 => {}, 农户信息 => {}", phoneNo, peasantHousehold);
log.debug("返回给前端数据, 手机号码 => {}, 农户信息 => {}", phoneNo, peasantHousehold);
// 装载农户信息
loginResult.setPeasantHousehold(peasantHousehold);
return loginResult;
......@@ -357,6 +357,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
agencyUserModel.setRealName(mobileLoginParamDto.getPhoneNo());
agencyUserModel.setPassword(custPassword);
agencyUserModel.setRePassword(custPassword);
// model中有个openId, 传手机号,verifyCode值为手机号加密
agencyUserModel.setOpenId(mobileLoginParamDto.getPhoneNo());
agencyUserModel.setVerifyCode(com.yeejoin.precontrol.common.utils.DesUtil.encode(mobileLoginParamDto.getPhoneNo(), SECRETKEY));
agencyUserModel.setLockStatus("UNLOCK");
agencyUserModel.setAgencyCode("JXIOP");
agencyUserModel.setMobile(mobileLoginParamDto.getPhoneNo());
......@@ -365,16 +368,6 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
agencyUserModel.setOrgRoleSeqs(roleSeqMap);
log.debug("注册用户入参, agencyUserModel => {}", agencyUserModel);
FeignClientResult<AgencyUserModel> agencyUserResult = Privilege.agencyUserClient.create(agencyUserModel);
try {
FeignClientResult<LoginInfoModel> wechatResult = Privilege.agencyUserClient.createWechatLoginInfo(agencyUserResult.getResult());
log.info("wechatResult:{}", wechatResult);
} catch (Exception e) {
e.printStackTrace();
}
/* agencyUserModel.setOpenId("openid");
agencyUserModel.setVerifyCode(com.yeejoin.precontrol.common.utils.DesUtil.encode(mobileLoginParamDto.getPhoneNo(), SECRETKEY));
FeignClientResult<AgencyUserModel> wechatResult = Privilege.agencyUserClient.wechatRegister(agencyUserModel);*/
return agencyUserResult;
}
......@@ -401,13 +394,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
// 授权登录
VerifyCodeAuthModel verifyCodeAuthModel = new VerifyCodeAuthModel();
verifyCodeAuthModel.setLoginId(phoneNo);
verifyCodeAuthModel.setVerifyCode(com.yeejoin.precontrol.common.utils.DesUtil.encode(phoneNo, SECRETKEY));// 手机号码 + 密码
verifyCodeAuthModel.setVerifyCode(com.yeejoin.precontrol.common.utils.DesUtil.encode(phoneNo, SECRETKEY));// 手机号码 + 密码
log.info("微信登录入参 => {}", verifyCodeAuthModel);
loginResult = Privilege.authClient.Wechat(verifyCodeAuthModel);
/* IdPasswordAuthModel authModel = new IdPasswordAuthModel();
authModel.setLoginId(phoneNo);
authModel.setPassword(com.yeejoin.precontrol.common.utils.DesUtil.encode(registerPassword, SECRETKEY));
loginResult = Privilege.authClient.idpassword(authModel);*/
} else {
// 验证码
VerifyCodeAuthModel model = new VerifyCodeAuthModel();
......@@ -418,7 +407,7 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
if (loginResult == null || loginResult.getStatus() != 200) {
log.error("远程调用Privilege服务失败: " + loginResult.getDevMessage());
String message = StringUtils.isEmpty(loginResult.getMessage()) ? "账号或密码错误" : loginResult.getMessage();
throw new BadRequest(message);
throw new RuntimeException(message);
}
HashMap resultMap = (HashMap) loginResult.getResult();
String token = resultMap.get("token").toString();
......@@ -480,11 +469,9 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
* @throws
*/
public PeasantHouseholdDto buildDefaultPeasantHouseholdDto(String qrCodeType, AgencyUserModel userInfo) {
if (null == userInfo) {
throw new BadRequest("查询不到平台用户信息");
}
if (CollectionUtils.isEmpty(userInfo.getCompanys())) {
throw new BadRequest("查询不到经销商单位信息");
if (null == userInfo || CollectionUtils.isEmpty(userInfo.getCompanys())) {
log.warn("userId:{} 查询不到经销商信息 或者 查询不到经销商单位信息");
return null;
}
log.info("通过区域/个人二维码扫描组装信息, user => {}, user's companys => {}", userInfo.getUserId(), JSONObject.toJSONString(userInfo.getCompanys()));
Long sequenceNbr = userInfo.getCompanys().get(0).getSequenceNbr();
......@@ -492,15 +479,6 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
String companyName = userInfo.getCompanys().get(0).getCompanyName();
// unitInfoServiceImpl.createCompanyAndUser 创建经销商的时候绑定的平台用户
List<UnitInfo> unitInfos = unitInfoServiceImpl.list(new LambdaQueryWrapper<UnitInfo>().eq(UnitInfo::getAmosCompanySeq, sequenceNbr));
UnitInfo unitInfo;
if (CollectionUtils.isEmpty(unitInfos)) {
log.warn("userId:{} 查询不到经销商信息", userInfo.getUserId());
throw new BadRequest("查询不到经销商信息");
}
unitInfo = unitInfos.get(0);
Long regionalCompaniesSeq = unitInfo.getRegionalCompaniesSeq();
String regionalCompaniesCode = unitInfo.getRegionalCompaniesCode();
String regionalCompaniesName = unitInfo.getRegionalCompaniesName();
PeasantHouseholdDto dto = new PeasantHouseholdDto();
// 先在后台创建一个角色和公司,微信农户新建的用户使用统一的
// 用户光伏-微信农户
......@@ -509,22 +487,42 @@ public class PeasantHouseholdServiceImpl extends BaseService<PeasantHouseholdDto
dto.setDeveloperId(sequenceNbr);// 开发方id
dto.setDeveloperName(companyName);// 开发方名称
dto.setDeveloper(userInfo.getRealName());// 开发人
dto.setRegionalCompaniesSeq(regionalCompaniesSeq);
dto.setRegionalCompaniesCode(regionalCompaniesCode);
dto.setRegionalCompaniesName(regionalCompaniesName);
UnitInfo unitInfo;
if (!CollectionUtils.isEmpty(unitInfos)) {
log.warn("userId:{} 查询不到经销商信息", userInfo.getUserId());
unitInfo = unitInfos.get(0);
Long regionalCompaniesSeq = unitInfo.getRegionalCompaniesSeq();
String regionalCompaniesCode = unitInfo.getRegionalCompaniesCode();
String regionalCompaniesName = unitInfo.getRegionalCompaniesName();
dto.setRegionalCompaniesSeq(regionalCompaniesSeq);//所属区域公司id
dto.setRegionalCompaniesCode(regionalCompaniesCode);//所属区域公司code
dto.setRegionalCompaniesName(regionalCompaniesName);//所属区域公司名称
}
return dto;
}
/**
* 农户通过扫描区域二维码进入注册,查询区域经销商的信息并
*
*
* @param userId userId
* @param qrCodeType qrCodeType
* @param phoneNo phoneNo
* @return {@link PeasantHouseholdDto}
* @author Provence
* @throws
*/
private PeasantHouseholdDto buildDefaultPeasantHouseholdDto(String userId, String qrCodeType, String phoneNo) {
// 获取区域
if (StringUtils.isBlank(userId)) {
throw new BadRequest("区域二维码userId不能为空");
}
FeignClientResult<AgencyUserModel> userInfoResult = Privilege.agencyUserClient.queryByUserId(userId);// 获取用户
if (userInfoResult != null && userInfoResult.getStatus() != 200) {
throw new BadRequest("无效的userId");
if (userInfoResult == null || userInfoResult.getStatus() != 200) {
return null;
}
AgencyUserModel userInfo = userInfoResult.getResult();
PeasantHouseholdDto dto = buildDefaultPeasantHouseholdDto(qrCodeType, userInfo);
dto.setTelephone(phoneNo);
return dto;
return buildDefaultPeasantHouseholdDto(qrCodeType, userInfo);
}
/**
......
......@@ -249,12 +249,13 @@ public class WxServiceImpl implements IWxService {
@Override
public JSONObject getCode2Session(String code) {
String url = buildOpenIdUrl(appId, secret, code);
log.info("微信 code2Session, code =>{}, 请求 => {}", code, url);
String resultStr = HttpUtil.sendHttpGet(url);
// resultStr => {"session_key":"Mj5xbDhcZU73DtUduI1xKg==","openid":"oRraY5aYJkxkDJiG4rBaaw4MSmPA"}
log.info("微信 Code2Session, code =>{}, 结果 => {}", code, resultStr);
log.info("微信 code2Session, code =>{}, 结果 => {}", code, resultStr);
JSONObject jsonObject = JSONObject.parseObject(resultStr);
if (jsonObject == null || jsonObject.getIntValue("errcode") != 0) {
throw new BadRequest("微信授权失败, 请重新授权");
throw new RuntimeException("微信授权失败, 请重新授权");
}
return jsonObject;
}
......
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