南网oss登录接口修改

This commit is contained in:
liang.chao 2024-01-30 13:56:07 +08:00
parent 2ff85222c6
commit 13c82563b2
10 changed files with 869 additions and 3 deletions

View File

@ -3,17 +3,19 @@ package com.bonus.sgzb.auth.controller;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.bonus.sgzb.auth.form.AuthenticationLoginFrom; import com.bonus.sgzb.auth.form.*;
import com.bonus.sgzb.auth.service.NwRegisterService;
import com.bonus.sgzb.auth.service.NwUserLoginService; import com.bonus.sgzb.auth.service.NwUserLoginService;
import com.bonus.sgzb.common.core.constant.CacheConstants; import com.bonus.sgzb.common.core.constant.CacheConstants;
import com.bonus.sgzb.common.core.web.domain.AjaxResult;
import com.bonus.sgzb.common.redis.service.RedisService; import com.bonus.sgzb.common.redis.service.RedisService;
import com.bonus.sgzb.common.security.annotation.RequiresPermissions;
import com.bonus.sgzb.system.api.RemoteUserService; import com.bonus.sgzb.system.api.RemoteUserService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.java.Log;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.bonus.sgzb.auth.form.LoginBody;
import com.bonus.sgzb.auth.form.RegisterBody;
import com.bonus.sgzb.auth.service.SysLoginService; import com.bonus.sgzb.auth.service.SysLoginService;
import com.bonus.sgzb.common.core.domain.R; import com.bonus.sgzb.common.core.domain.R;
import com.bonus.sgzb.common.core.utils.JwtUtils; import com.bonus.sgzb.common.core.utils.JwtUtils;
@ -48,6 +50,9 @@ public class TokenController {
@Resource @Resource
private NwUserLoginService nwUserLoginService; private NwUserLoginService nwUserLoginService;
@Autowired
private NwRegisterService registerService;
//web端登录 //web端登录
@PostMapping("login") @PostMapping("login")
public R<?> login(@RequestBody LoginBody form) { public R<?> login(@RequestBody LoginBody form) {
@ -134,4 +139,16 @@ public class TokenController {
return R.fail("微服务平台认证失败"); return R.fail("微服务平台认证失败");
} }
} }
@ApiOperation("南网注册")
@PostMapping("/registers")
public AjaxResult addNw(HttpServletRequest request, @RequestBody RegisterForms registerForms) {
AccountRegister accountRegister = new AccountRegister();
accountRegister.setCode(1);
accountRegister.setDesc("个人用户注册");
accountRegister.setRemark("个人用户注册");
registerForms.setIsPersonal(accountRegister.getCode());
return AjaxResult.success("success", registerService.registersNew(request, registerForms));
}
} }

View File

@ -0,0 +1,55 @@
package com.bonus.sgzb.auth.enums;
import lombok.Getter;
/**
* 账号类型
*
* @author zhangshuwei
* @create 2019-05-17 16:56
**/
@Getter
public enum AccountTypeEnum {
ALl(0,"全部"),
PLATFORM(1,"运营方"),
PURCHASE(2,"承租方"),
SUPPLIER(3, "出租方"),
RESUPPLIER(4,"转售商"),
PERSONAL(5, "个人"),
ENTERPRISE(6, "企业"),
BUYER_SELLER(7, "承租方和出租方")
;
private Integer code;
private String desc;
AccountTypeEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static String getView(Integer code) {
for (AccountTypeEnum enums : AccountTypeEnum.values()) {
if (null != code && enums.code.equals(code)) {
return enums.getDesc();
}
}
return null;
}
/**
* 根据枚举名 转换为枚举类
*
* @param code 枚举名
* @return
*/
public static AccountTypeEnum toEnum(Integer code) {
for (AccountTypeEnum value : AccountTypeEnum.values()) {
if (code.equals(value.getCode())) {
return value;
}
}
return null;
}
}

View File

@ -0,0 +1,30 @@
package com.bonus.sgzb.auth.form;
import lombok.Data;
/**
* 注册类型枚举
*
* @author xncuiyongan
* @date 2021-06-08 15:05 2021-06-08 15:05
*/
@Data
public class AccountRegister {
/**
* 注册类型code
*/
private Integer code;
/**
* 注册类型desc
*/
private String desc;
/**
* 注册类型备注
*/
private String remark;
}

View File

@ -0,0 +1,25 @@
package com.bonus.sgzb.auth.form;
import lombok.Data;
/**
* 南网集成平台验证类型
*
* @author ext.huangqiupeng
* @date 2021/9/3
*/
@Data
public class NwApp {
/* PC(1, NwLoginConstants.appId, NwLoginConstants.appsecret),
H5(2, NwLoginConstants.h5AppId, NwLoginConstants.h5Appsecret),
WECHAT(3, NwLoginConstants.wechatAppId, NwLoginConstants.wechatAppsecret),
APP(4, NwLoginConstants.appAppId, NwLoginConstants.appAppsecret)
;*/
private Integer code;
private String appId;
private String appsecret;
}

View File

@ -32,6 +32,33 @@ public class NwLoginConstants {
public static final int LOGIN_ERROR_CODE = 501; public static final int LOGIN_ERROR_CODE = 501;
public static final String LOGIN_ERROR_MESSAGE = "该用户不存在,请先注册"; public static final String LOGIN_ERROR_MESSAGE = "该用户不存在,请先注册";
public static final String LOGIN_TYPE_EXCEPTION_CODE = "500";
public static final String LOGIN_TYPE_EXCEPTION_MSG = "登录类型错误";
public static final String IP_NULL_CODE = "33-005";
public static final String IP_NULL_MSG = "IP地址为空";
public static final String PARAM_IS_NULL_ERROR_CODE = "0-0001";
public static final String PARAM_IS_NULL_ERROR_CODE_MSG = "参数为空:%s";
public static final String PHONE_NOT_NULL_CODE = "33-009";
public static final String PHONE_NOT_NULL_MSG = "请输入手机号";
public static final String MOBILE_FORMAT_ERROR_CODE = "33-001";
public static final String MOBILE_FORMAT_ERROR_CODE_MSG = "手机号格式不正确";
public static final String USER_NAME_NOT_NULL_CODE = "33-015";
public static final String USER_NAME_NOT_NULL_MSG = "用户名称不能为空";
public static final String PASSWORD_NOT_NULL_CODE = "33-017";
public static final String PASSWORD_NOT_NULL_MSG = "密码不能为空";
public static final String AGAIN_PASSWORD_NOT_NULL_CODE = "33-018";
public static final String AGAIN_PASSWORD_NOT_NULL_MSG = "确认密码不能为空";
public static final Long PLATFORM_ID = 20L;
/** /**
* 授权范围 * 授权范围
*/ */
@ -53,6 +80,50 @@ public class NwLoginConstants {
public static String baseUrl; public static String baseUrl;
public static String wechatAppsecret; public static String wechatAppsecret;
public static String appAppsecret;
@Value("${appAppsecret}")
public void setAppAppsecret(String appAppsecret) {
NwLoginConstants.appAppsecret = appAppsecret;
}
public static String appsecret;
public static String h5Appsecret;
@Value("${h5Appsecret}")
public void setH5Appsecret(String h5Appsecret) {
NwLoginConstants.h5Appsecret = h5Appsecret;
}
@Value("${appsecret}")
public void setAppsecret(String appsecret) {
NwLoginConstants.appsecret = appsecret;
}
public static String appId;
public static String h5AppId;
public static String appAppId;
@Value("${appAppId}")
public void setAppAppId(String appAppId) {
NwLoginConstants.appAppId = appAppId;
}
@Value("${h5AppId}")
public void setH5AppId(String h5AppId) {
NwLoginConstants.h5AppId = h5AppId;
}
@Value("${appId}")
public void setAppId(String appId) {
NwLoginConstants.appId = appId;
}
@Value("${baseUrl}") @Value("${baseUrl}")
public void setBaseUrl(String baseUrl) { public void setBaseUrl(String baseUrl) {
NwLoginConstants.baseUrl = baseUrl; NwLoginConstants.baseUrl = baseUrl;

View File

@ -0,0 +1,95 @@
package com.bonus.sgzb.auth.form;
import com.bonus.sgzb.auth.enums.AccountTypeEnum;
import com.bonus.sgzb.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
* 注冊form类
*
* @author shuqiwang
*/
@Data
@ToString
public class RegisterForms extends BaseEntity {
/**
* 企业名称
*/
@ApiModelProperty(name = "enterpriseName", value = "企业名称")
private String enterpriseName;
/**
* 用户名
*/
@ApiModelProperty(name = "userAccount", value = "用户账号")
private String userAccount;
/**
* 登录密码
*/
@ApiModelProperty(name = "userPassword", value = "登录密码")
private String userPassword;
/**
* 确认密码
*/
@ApiModelProperty(name = "againPassword", value = "确认密码")
private String againPassword;
/**
* 手机号码
*/
@ApiModelProperty(name = "mobilePhone", value = "手机号码")
private String mobilePhone;
/**
* 手机验证码
*/
@ApiModelProperty(name = "mobilePhoneCode", value = "手机验证码")
private String mobilePhoneCode;
/**
* 注册用户类型 {@link AccountTypeEnum}
*/
@ApiModelProperty(name = "accountType", value = "账号类型1运营方2.采购商3供应商")
private Integer accountType;
/**
* 重定向返回的地址
*/
private String returnUrl;
private Long platformId;
@ApiModelProperty(name = "isPersonal", value = "个人或企业")
private Integer isPersonal;
/*==========================以下是辅助字段==========================begin*/
/**
* ip
*/
private String loginIp;
/**
* 媒介IE谷歌火狐APP
*/
private String loginMedia;
/**
* 运行时的系统环境
*/
private String loginDevice;
/*==========================以上是辅助字段==========================end*/
/**
* 登录方式类型
*/
private Integer loginModeType;
/**
* 是否原有用户
*/
@ApiModelProperty(name = "isOriginalUser",value = "是否原有用户")
private Integer isOriginalUser;
/**
* 南网 外部关联Id(集成平台联调Id)
*/
@ApiModelProperty(name = "externalId",value = "南网外部关联Id(集成平台联调Id)")
private String externalId;
}

View File

@ -0,0 +1,209 @@
package com.bonus.sgzb.auth.form;
import com.bonus.sgzb.auth.enums.AccountTypeEnum;
import com.bonus.sgzb.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
*
* @author zhangshuwei
* @create
**/
@Data
public class UserAccount extends BaseEntity {
/**
* 父ID
*/
private Long pid;
/**
* 同步过来的用户id
*/
private String synUserId;
/**
* 同步过来的父ID
*/
private String synPid;
/**
* 账号类型1运营方2.采购商3供应商
*/
private Integer accountType;
private String accountTypeShow;
/**
* 用户姓名
*/
private String userName;
/**
* 账号
*/
private String accountName;
/**
* 密码
*/
private String password;
/**
* 电话
*/
private String mobile;
/**
* 邮箱
*/
private String email;
/**
* 头像url
*/
private String avatarPicSrc;
/**
* 账号来源 1 导入2 注册
*/
private Integer source;
/**
* 是否是管理员 0不是 1是
*/
private Integer administrator;
/**
* 供应商专用1.电商供应商线上2 非电商供应商线下
*/
private Integer channel;
/**
* 用户状态0停用1启用
*/
private Integer userStatus;
/**
* 是否子账号0非子账号,1=子账号)
*/
private Integer subAccountType;
/**
* 用户所属核算单位组织机构编码
*/
private Long legalEntityOrganizationId;
/**
* 用户所属核算单位组织机构名称
*/
private String legalEntityOrganizationName;
/**
* 用户所属组织机构编码
*/
private Long departmentOrganizationId;
/**
* 用户所属组织机构编码
*/
private String departmentOrganizationName;
/**
* 系统3.0 对应账号采购人身份会用到
*/
private String systemAccount;
/**
* 系统3.0对应的组织机构id
*/
private String systemOrganizationId;
/**
* 系统3.0对应的组织机构
*/
private String systemOrganization;
/**
* 更新时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updated;
/**
* 创建时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date created;
private String token;
/** 选中状态 */
@ApiModelProperty(value = "选中状态true 选中false未选中")
private boolean lay_is_checked;
private Long shopId;
@ApiModelProperty(name = "supplierStatus",value = "供应商状态")
private Integer supplierStatus;
@ApiModelProperty(name = "roleName",value = "账号角色名称")
private String roleName;
@ApiModelProperty(name = "统一社会信用代码")
private String unSocialCrCode;
private Long platformId;
@ApiModelProperty(name = "企业或个人")
private Integer isPersonal;
@ApiModelProperty(name = "是否开通采购业务")
private Integer isBuyer;
@ApiModelProperty(name = "是否开通供应业务")
private Integer isSeller;
/** 所属企业id **/
private Long enterpriseId;
/** 是否设置为个人 **/
private Integer isSetPersonal;
/** 所属企业编码 **/
private String enterpriseCode;
private String externalId;
@ApiModelProperty(name = "id集合")
private List<Long> userIdList;
/**
* 是否进行展示 , true展示false不展示
*/
@ApiModelProperty(name = "showedVerificationCode", value = "是否进行展示 , true展示false不展示")
private boolean showedVerificationCode;
/**
* 校验码
*/
@ApiModelProperty(name = "verificationCode", value = "校验码")
private String verificationCode;
@ApiModelProperty(name = "tagId", value = "标签Id")
private Long tagId;
public String getAccountTypeShow() {
return AccountTypeEnum.getView(this.accountType);
}
public void setAccountTypeShow(String accountTypeShow) {
this.accountTypeShow = accountTypeShow;
}
/**
* 组织机构全路径
*/
@ApiModelProperty(name = "fullName", value = "组织机构全路径")
private String fullName;
/**
* 验证码
*/
@ApiModelProperty(name = "code",value = "验证码")
private String code;
/**
* 注销状态1未注销0已注销
*/
@ApiModelProperty(name = "cancelledStatus",value = "注销状态1未注销0已注销")
private Integer cancelledStatus;
/**
* 头像url
*/
@ApiModelProperty(name = "headPortraitUrl",value = "头像url")
private String headPortraitUrl;
}

View File

@ -0,0 +1,164 @@
package com.bonus.sgzb.auth.form;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
*
* @author zhangshuwei
* @create
**/
@Data
public class UserAccountRequestVo {
@ApiModelProperty(name = "platformId",value = "平台id")
private Long platformId;
@ApiModelProperty(name = "pid",value = "父ID")
private Long pid;
@ApiModelProperty(value = "同步过来的用户id")
private String synUserId;
@ApiModelProperty(value = "同步过来的父ID")
private String synPid;
@ApiModelProperty(name = "userAccountType",value = "账号类型1运营方2.采购商3供应商")
private Integer userAccountType;
@ApiModelProperty(name = "userName",value = "用户姓名")
private String userName;
@ApiModelProperty(name = "userAccountName",value = "账号")
private String userAccountName;
@ApiModelProperty(name = "accountNameLike",value = "账号模糊条件")
private String accountNameLike;
@ApiModelProperty(name = "password",value = "密码")
private String password;
@ApiModelProperty(name = "mobile",value = "电话")
private String mobile;
@ApiModelProperty(name = "email",value = "邮箱")
private String email;
@ApiModelProperty(name = "avatarPicSrc",value = "头像url")
private String avatarPicSrc;
@ApiModelProperty(name = "source",value = "账号来源 1 导入2 注册")
private Integer source;
@ApiModelProperty(name = "administrator",value = "是否是管理员 0不是 1是")
private Integer administrator;
@ApiModelProperty(name = "channel",value = "供应商专用1.电商供应商线上2 非电商供应商(线下)")
private Integer channel;
@ApiModelProperty(name = "userStatus",value = "用户状态0停用1启用")
private Integer userStatus;
@ApiModelProperty(name = "subAccountType",value = "是否子账号0非子账号,1=子账号)")
private Integer subAccountType;
@ApiModelProperty(name = "legalEntityOrganizationId",value = "用户所属核算单位组织机构编码")
private Long legalEntityOrganizationId;
@ApiModelProperty(name = "legalEntityOrganizationName",value = "用户所属核算单位组织机构名称")
private String legalEntityOrganizationName;
@ApiModelProperty(name = "departmentOrganizationId",value = "用户所属组织机构编码")
private Long departmentOrganizationId;
@ApiModelProperty(name = "departmentOrganizationName",value = "用户所属组织机构编码")
private String departmentOrganizationName;
@ApiModelProperty(name = "systemAccount",value = "系统3.0 对应账号,采购人身份会用到")
private String systemAccount;
@ApiModelProperty(name = "systemOrganizationId",value = "系统3.0对应的组织机构ID")
private String systemOrganizationId;
@ApiModelProperty(name = "systemOrganization",value = "系统3.0对应的组织机构")
private String systemOrganization;
@ApiModelProperty(name = "企业或个人")
private Integer isPersonal;
@ApiModelProperty(name = "是否开通采购业务")
private Integer isBuyer;
@ApiModelProperty(name = "是否开通供应业务")
private Integer isSeller;
/** 所属企业id **/
private Long enterpriseId;
/** 所属企业编码 **/
private String enterpriseCode;
@ApiModelProperty(name = "created",value = "创建时间")
private Date created;
@ApiModelProperty(name = "updated",value = "更新时间")
private Date updated;
@ApiModelProperty(name = "yn",value = "是否有效0 无效1有效")
private Integer yn;
@ApiModelProperty(name = "departmentOrganizationIdList",value = "用户所属组织机构编码集合")
private List<Long> departmentOrganizationIdList;
/**
* 请求来源
*/
private Integer requestSource;
/**
* 查询用户类型list
*/
@ApiModelProperty(name = "userAccountTypeList",value = "账号类型1运营方2.采购商3供应商")
private List<Integer> userAccountTypeList;
@ApiModelProperty(name = "tagId", value = "标签Id")
private Long tagId;
@ApiModelProperty(name = "tagName", value = "标签名称")
private String tagName;
@ApiModelProperty(name = "tagId", value = "标签Id")
private List<Long> tagIdList;
@ApiModelProperty(name = "roleId", value = "角色ID")
private Long roleId;
@ApiModelProperty(name = "isSubCompany", value = "是否是子公司账号")
private Boolean isSubCompany;
/**
* 注销状态1未注销0已注销
*/
@ApiModelProperty(name = "cancelledStatus",value = "注销状态1未注销0已注销")
private Integer cancelledStatus;
/**
* 企业编号集合
*/
@ApiModelProperty(name = "enterpriseIdList",value = "企业编号集合")
private List<String> enterpriseIdList;
/**
* 头像uid
*/
@ApiModelProperty(name = "headPortraitUrl",value = "头像uid")
private Long headPortraitUid;
private Integer isPerson;
private List<Long> idList;
}

View File

@ -0,0 +1,24 @@
package com.bonus.sgzb.auth.service;
import com.bonus.sgzb.auth.form.RegisterForms;
import javax.servlet.http.HttpServletRequest;
/**
*@author: LYJ
*@date: 2021/8/14 18:46
*@description: 注册Service接口
*/
public interface NwRegisterService {
/**
* 统一个人手机注册
*
* @param request
* @param registerForms
* @return
*/
String registersNew(HttpServletRequest request, RegisterForms registerForms);
}

View File

@ -0,0 +1,176 @@
package com.bonus.sgzb.auth.service.impl;
import com.alibaba.fastjson.JSON;
import com.bonus.sgzb.auth.form.*;
import com.bonus.sgzb.auth.service.NwRegisterService;
import com.bonus.sgzb.common.core.exception.base.BaseException;
import com.bonus.sgzb.common.core.utils.ip.IpUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author: LYJ
* @date: 2021/8/14 18:47
* @description: 注册实现类
*/
@Service
@Slf4j
public class NwRegisterServiceImpl implements NwRegisterService {
@Override
public String registersNew(HttpServletRequest request, RegisterForms registerForms) {
log.info("统一个人手机注册 registersForPersonal方法 入参 request:{}, registerForms:{}", request, JSON.toJSONString(registerForms));
/* 校验请求参数 */
this.checkRequestParam(request, registerForms);
Integer loginModeType = registerForms.getLoginModeType();
NwApp nwApp = new NwApp();
if (loginModeType == 1) {
nwApp.setCode(1);
nwApp.setAppId(NwLoginConstants.appId);
nwApp.setAppsecret(NwLoginConstants.appsecret);
} else if (loginModeType == 2) {
nwApp.setCode(2);
nwApp.setAppId(NwLoginConstants.h5AppId);
nwApp.setAppsecret(NwLoginConstants.h5Appsecret);
} else if (loginModeType == 3) {
nwApp.setCode(3);
nwApp.setAppId(NwLoginConstants.wechatAppId);
nwApp.setAppsecret(NwLoginConstants.wechatAppsecret);
} else if (loginModeType == 4) {
nwApp.setCode(4);
nwApp.setAppId(NwLoginConstants.appAppId);
nwApp.setAppsecret(NwLoginConstants.appAppsecret);
}
try {
//发送注册请求(调用南网的注册方法)
RespLoginData respLoginData = null;
//用户中心用户id
String ossExternalId = null;
/* 查询商城是否存在当前用户 */
// UserAccount mallUser = this.queryUserByMall(registerForms);
/* 查询用户中心是否存在当前用户 */
CloudUserVo cloudUserVo = this.queryUserBySso(registerForms);
/* 数据幂等性操作 记录日志 */
RegistersVo registersVo = getRegisterVo(registerForms);
log.error("check001_registersVo:{}", JsonUtils.object2Json(registersVo));
if (null != mallUser) {
if (mallUser.getMobile().equals(registerForms.getMobilePhone())) {
throw new BaseException(ExceptionDict.PHONE_NUMBER_EXISTS_CODE, ExceptionDict.PHONE_NUMBER_EXISTS_MSG);
} else {
throw new BaseException(ExceptionDict.USER_NAME_EXISTS_CODE, ExceptionDict.USER_NAME_EXISTS_MSG);
}
}
/* 添加商城用户逻辑 */
log.error("check002_respLoginData:{}", JsonUtils.object2Json(respLoginData));
if (respLoginData.getCode().equals(CodeConstants.HTTP_RESPONSE_CODE_200)) {
if (null != cloudUserVo) {
if (IsOriginalUserEnum.YES.getCode().equals(cloudUserVo.getIsOriginalUser())) {
registerForms.setUserAccount(cloudUserVo.getUserAccount());
}
Map<String, String> param = new HashMap();
param.put(CodeConstants.USER_LBCLOUD_ID, registerForms.getExternalId());
RespLoginData userDetailInfo = HttpUtils.postJsonForApi(LoginConstants.getPersonDetailData, null, null, Map.class, param, nwAppEnum);
if (CodeConstants.HTTP_RESPONSE_CODE_200.equals(userDetailInfo.getCode())) {
Map<String, String> userData = (Map<String, String>) userDetailInfo.getData();
ossExternalId = userData.get(CodeConstants.USER_LBCLOUD_EXTERNA_ID);
} else {
this.deleteKey(registerForms);
this.deleteInterceptor();
throw new BaseException(respLoginData.getCode(), respLoginData.getMessage());
}
} else {
Map<String, String> data = (Map<String, String>) respLoginData.getData();
ossExternalId = data.get(CodeConstants.USER_EXTERNAL_ID);
}
} else {
Map<String, String> data = (Map<String, String>) respLoginData.getData();
ossExternalId = data.get(CodeConstants.USER_EXTERNAL_ID);
}
if (null == ossExternalId) {
throw new BaseException(ExceptionDict.USER_NAME_EXISTS_CODE, "获取统一用户中心userExternalId数据失败请联系管理员");
}
//添加商城账号个人/企业
this.addMallUser(registerForms, ossExternalId);
//发送短信提醒用户
platformClient.sendMessageNew(CodeConstants.PLATFORM_ID, registerForms.getMobilePhone(), PropertyNameConstants.USER_REGISTERED_APPROVED);
return AccountRegisterConstants.REGISTERIP_SUCCESS;
} catch (Exception e) {
deleteInterceptor();
deleteKey(registerForms);
throw new UserException("9999", e.getMessage());
}
}
private void checkRequestParam(HttpServletRequest request, RegisterForms registerForms) {
String ipAddress = IpUtils.getIpAddr(request);
Integer loginModeType = registerForms.getLoginModeType();
NwApp nwApp = new NwApp();
if (loginModeType == 1) {
nwApp.setCode(1);
nwApp.setAppId(NwLoginConstants.appId);
nwApp.setAppsecret(NwLoginConstants.appsecret);
} else if (loginModeType == 2) {
nwApp.setCode(2);
nwApp.setAppId(NwLoginConstants.h5AppId);
nwApp.setAppsecret(NwLoginConstants.h5Appsecret);
} else if (loginModeType == 3) {
nwApp.setCode(3);
nwApp.setAppId(NwLoginConstants.wechatAppId);
nwApp.setAppsecret(NwLoginConstants.wechatAppsecret);
} else if (loginModeType == 4) {
nwApp.setCode(4);
nwApp.setAppId(NwLoginConstants.appAppId);
nwApp.setAppsecret(NwLoginConstants.appAppsecret);
}
if (null == loginModeType) {
throw new BaseException(NwLoginConstants.LOGIN_TYPE_EXCEPTION_CODE, NwLoginConstants.LOGIN_TYPE_EXCEPTION_MSG);
}
if (null == ipAddress) {
throw new BaseException(NwLoginConstants.IP_NULL_CODE, NwLoginConstants.IP_NULL_MSG);
}
if (null == registerForms) {
throw new BaseException(NwLoginConstants.PARAM_IS_NULL_ERROR_CODE, NwLoginConstants.PARAM_IS_NULL_ERROR_CODE_MSG);
}
if (StringUtils.isEmpty(registerForms.getMobilePhone())) {
throw new BaseException(NwLoginConstants.PHONE_NOT_NULL_CODE, NwLoginConstants.PHONE_NOT_NULL_MSG);
}
if (!this.checkPhone(registerForms.getMobilePhone())) {
throw new BaseException(NwLoginConstants.MOBILE_FORMAT_ERROR_CODE, NwLoginConstants.MOBILE_FORMAT_ERROR_CODE_MSG);
}
if (StringUtils.isBlank(registerForms.getUserAccount())) {
throw new BaseException(NwLoginConstants.USER_NAME_NOT_NULL_CODE, NwLoginConstants.USER_NAME_NOT_NULL_MSG);
}
if (StringUtils.isBlank(registerForms.getUserPassword())) {
throw new BaseException(NwLoginConstants.PASSWORD_NOT_NULL_CODE, NwLoginConstants.PASSWORD_NOT_NULL_MSG);
}
if (null == registerForms.getAgainPassword()) {
throw new BaseException(NwLoginConstants.AGAIN_PASSWORD_NOT_NULL_CODE, NwLoginConstants.AGAIN_PASSWORD_NOT_NULL_MSG);
}
if (null == registerForms.getPlatformId()) {
registerForms.setPlatformId(NwLoginConstants.PLATFORM_ID);
}
}
/**
* 验证手机号
*
* @param phone
* @return 验证成功返回true验证失败返回false
*/
public static boolean checkPhone(String phone) {
String regex = "^1\\d{10}$";
return Pattern.matches(regex, phone);
}
}