|
@@ -28,7 +28,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
@@ -55,7 +54,6 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
*/
|
|
|
private String mailTxt = "欢迎成为采美普通机构用户,您的登录账号为:%s,初始密码为:%s,您可使用该账号密码登录采美365网和【采美采购商城】小程序。登录后可升级为会员机构,享受更多更好的服务。";
|
|
|
private String memberMailTxt = "欢迎成为采美会员机构用户,您的登录账号为:%s,初始密码为:%s,您可使用该账号密码登录采美365网和【采美采购商城】小程序享受会员专属服务。";
|
|
|
- private String initPassword = "caimei123";
|
|
|
|
|
|
/**
|
|
|
* 普通机构入驻(注册)
|
|
@@ -77,7 +75,7 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public ResponseJson<ClubPo> clubRegister(ClubRegisterDto clubRegisterDto, String passWordConfirm, String smsCode, Integer isAgreed, HttpHeaders headers) {
|
|
|
+ public ResponseJson clubRegister(ClubRegisterDto clubRegisterDto, String passWordConfirm, String smsCode, Integer isAgreed, HttpHeaders headers) {
|
|
|
// 打印IP
|
|
|
String ip = headers.getFirst("X-CLIENT-IP");
|
|
|
log.info("机构注册 X-CLIENT-IP : " + ip);
|
|
@@ -85,17 +83,17 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
if (StringUtils.isBlank(clubRegisterDto.getUserName()) || StringUtils.isBlank(clubRegisterDto.getBindMobile())
|
|
|
|| StringUtils.isBlank(clubRegisterDto.getPassword()) || StringUtils.isBlank(passWordConfirm) ||
|
|
|
StringUtils.isBlank(smsCode)) {
|
|
|
- return ResponseJson.error("参数异常", null);
|
|
|
+ return ResponseJson.error("参数异常");
|
|
|
}
|
|
|
if (1 != isAgreed) {
|
|
|
- return ResponseJson.error("请勾选同意协议", null);
|
|
|
+ return ResponseJson.error("请勾选同意协议");
|
|
|
}
|
|
|
if (!clubRegisterDto.getPassword().equals(passWordConfirm)) {
|
|
|
- return ResponseJson.error("输入的密码不一致", null);
|
|
|
+ return ResponseJson.error("输入的密码不一致");
|
|
|
}
|
|
|
// 手机号与验证码校验
|
|
|
String result = mobileAndCodeValidate(clubRegisterDto.getBindMobile(), smsCode);
|
|
|
- if (result != null) {return ResponseJson.error(result, null);}
|
|
|
+ if (result != null) {return ResponseJson.error(result);}
|
|
|
/*
|
|
|
组装用户数据 user
|
|
|
*/
|
|
@@ -224,7 +222,7 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
log.info("注册普通机构,默认绑定为机构运营人员");
|
|
|
}
|
|
|
log.info("注册普通机构成功,手机号>>>" + clubRegisterDto.getBindMobile());
|
|
|
- return ResponseJson.success(club);
|
|
|
+ return ResponseJson.success("机构注册成功", null);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -258,23 +256,23 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public ResponseJson<ClubPo> clubUpgrade(ClubUpgradeDto upgradeDto, HttpHeaders headers) {
|
|
|
+ public ResponseJson clubUpgrade(ClubUpgradeDto upgradeDto, HttpHeaders headers) {
|
|
|
// 打印IP
|
|
|
String ip = headers.getFirst("X-CLIENT-IP");
|
|
|
log.info("机构升级 X-CLIENT-IP : " + ip);
|
|
|
// 参数校验
|
|
|
if (upgradeDto.getUserId() == null || upgradeDto.getClubId() == null || StringUtils.isBlank(upgradeDto.getContractEmail()) || StringUtils.isBlank(upgradeDto.getName())
|
|
|
|| StringUtils.isBlank(upgradeDto.getBusinessLicense()) || upgradeDto.getTownId() == null || upgradeDto.getFirstClubType() == null) {
|
|
|
- return ResponseJson.error("参数异常", null);
|
|
|
+ return ResponseJson.error("参数异常");
|
|
|
}
|
|
|
if (upgradeDto.getFirstClubType() == 1){
|
|
|
if (upgradeDto.getSecondClubType() == null || StringUtils.isBlank(upgradeDto.getDepartment()) || StringUtils.isBlank(upgradeDto.getMedicalPracticeLicense())) {
|
|
|
- return ResponseJson.error("医美分类下参数异常", null);
|
|
|
+ return ResponseJson.error("医美分类下参数异常");
|
|
|
}
|
|
|
}
|
|
|
Integer userIdByEmail = baseMapper.getUserIdByEmail(upgradeDto.getContractEmail());
|
|
|
if (null != userIdByEmail && userIdByEmail > 0 ) {
|
|
|
- return ResponseJson.error("该邮箱已被使用", null);
|
|
|
+ return ResponseJson.error("该邮箱已被使用");
|
|
|
}
|
|
|
// 更新用户数据 user
|
|
|
UserPo user = new UserPo();
|
|
@@ -339,10 +337,39 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
*/
|
|
|
club.setStatus(1);
|
|
|
registerMapper.updateClubByUpgrade(club);
|
|
|
- return ResponseJson.success(club);
|
|
|
+ return ResponseJson.success("机构升级成功", null);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 协销拉机构上线
|
|
|
+ *
|
|
|
+ * spi旧接口:/seller/club/register
|
|
|
+ *
|
|
|
+ * @param onlineDto ClubOnlineDto:{
|
|
|
+ * source 注册来源: 0网站 1小程序
|
|
|
+ * userId 协销用户ID(userID)
|
|
|
+ * name 机构名称
|
|
|
+ * sName 机构简称(sname)
|
|
|
+ * bindMobile 企业绑定手机号
|
|
|
+ * contractEmail 邮箱(email)
|
|
|
+ * linkMan 联系人(linkMan1)
|
|
|
+ * provinceId 省Id
|
|
|
+ * cityId 市Id
|
|
|
+ * townId 县区Id
|
|
|
+ * address 地址
|
|
|
+ * shopPhoto 门头照(headpic)
|
|
|
+ * businessLicense 营业执照(businessLicenseImage)
|
|
|
+ * socialCreditCode 统一社会信用代码(socialCreditCode)
|
|
|
+ * firstClubType 一级分类:医美=1和生美=2
|
|
|
+ * secondClubType 医美的二级分类:诊所=1、门诊=2、医院=3。 生美没有二级分类
|
|
|
+ * department 医美分类下的门诊和医院则需要填写科室
|
|
|
+ * medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
|
|
|
+ * mainProduct 主打项目(mainpro)
|
|
|
+ * }
|
|
|
+ * @param isAgreed 是否同意勾选同意协议,1是,其他否
|
|
|
+ * @param headers HttpHeaders
|
|
|
+ * @return ClubPo
|
|
|
+ */
|
|
|
@Override
|
|
|
public ResponseJson<ClubPo> clubOnline(ClubOnlineDto onlineDto, Integer isAgreed, HttpHeaders headers) {
|
|
|
// 打印IP
|
|
@@ -359,7 +386,7 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
return ResponseJson.error("请勾选同意协议", null);
|
|
|
}
|
|
|
// 是否填写升级资料
|
|
|
- if (!StringUtils.isBlank(onlineDto.getContractEmail())) {
|
|
|
+ if (StringUtils.isNotBlank(onlineDto.getContractEmail())) {
|
|
|
// 邮箱验证
|
|
|
if (ValidateUtil.validateEmail(onlineDto.getContractEmail())) {
|
|
|
return ResponseJson.error("邮箱格式不正确", null);
|
|
@@ -384,95 +411,134 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
}
|
|
|
}
|
|
|
// 手机号验证
|
|
|
- UserLoginVo userByMobile = loginMapper.getLoginUserByMobileOrEmail(mobile);
|
|
|
- if (userByMobile != null) {
|
|
|
- ResponseJson validReason = ValidateUtil.getMobileValidateReason(mobile, userByMobile);
|
|
|
- return ResponseJson.error(validReason.getMsg(), null);
|
|
|
- }
|
|
|
- // 协销信息
|
|
|
+ String result = mobileAndCodeValidate(mobile, null);
|
|
|
+ if (result != null) {return ResponseJson.error(result, null);}
|
|
|
+ // 获取协销信息
|
|
|
Integer userId = onlineDto.getUserId();
|
|
|
ServiceProviderVo serviceProvider = loginMapper.getServiceProviderByUserId(userId);
|
|
|
// 设置日期时间格式
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
String current = dateFormat.format(new Date());
|
|
|
-
|
|
|
/*
|
|
|
组装用户数据 user
|
|
|
*/
|
|
|
UserPo user = new UserPo();
|
|
|
- /*
|
|
|
- 组装用户数据 club
|
|
|
- */
|
|
|
- ClubPo club = new ClubPo();
|
|
|
-
|
|
|
- // 是否填写升级资料
|
|
|
- if (StringUtils.isBlank(onlineDto.getContractEmail())) {
|
|
|
- // 状态: 已上线
|
|
|
- user.setClubStatus(90);
|
|
|
- // 组织名称
|
|
|
- user.setName(onlineDto.getLinkMan());
|
|
|
- // 状态: 已上线
|
|
|
- club.setStatus(90);
|
|
|
- // 机构名称
|
|
|
- club.setName(onlineDto.getLinkMan());
|
|
|
- // 机构简称
|
|
|
- club.setSName(onlineDto.getLinkMan());
|
|
|
- } else {
|
|
|
- // 状态:待审查资料
|
|
|
- user.setClubStatus(1);
|
|
|
- // 组织名称
|
|
|
- user.setName(onlineDto.getName());
|
|
|
- // 邮箱
|
|
|
- user.setEmail(onlineDto.getContractEmail());
|
|
|
- // 邮箱
|
|
|
- club.setContractEmail(onlineDto.getContractEmail());
|
|
|
- // 待审查资料
|
|
|
- club.setStatus(1);
|
|
|
- }
|
|
|
- // 协销Id
|
|
|
- user.setServiceProviderId(serviceProvider.getServiceProviderId());
|
|
|
- // 协销状态
|
|
|
- user.setServiceProviderStatus(serviceProvider.getStatus());
|
|
|
- // 小程序注册
|
|
|
- user.setSource(1);
|
|
|
- // 用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构
|
|
|
- user.setUserIdentity(4);
|
|
|
- // 设置为机构( 供应商1,会员机构3,普通机构4)
|
|
|
- user.setRegisterUserTypeId(4);
|
|
|
- // 状态: 已上线
|
|
|
- user.setUserPermission(5);
|
|
|
- // 手机号
|
|
|
- user.setBindMobile(mobile);
|
|
|
- // 默认密码
|
|
|
- user.setPassword(Md5Util.md5(initPassword));
|
|
|
+ // 注册时间
|
|
|
user.setRegisterTime(current);
|
|
|
// 机构拉上线统称为此IP方便后面直接标记为协销代注册
|
|
|
user.setRegisterIp("192.168.1.10");
|
|
|
+ // 注册来源: 0网站 1小程序(拉机构上线小程序注册)
|
|
|
+ user.setSource(1);
|
|
|
+ // 用户类型,供应商1,会员机构3,普通机构4
|
|
|
+ user.setRegisterUserTypeId(4);
|
|
|
+ // 组织名称
|
|
|
+ user.setName(onlineDto.getLinkMan());
|
|
|
// 用户名
|
|
|
user.setUserName(onlineDto.getLinkMan());
|
|
|
- // 同意协议标志
|
|
|
- user.setAgreeFlag(1);
|
|
|
+ // 绑定手机号
|
|
|
+ user.setBindMobile(mobile);
|
|
|
+ // 用户身份: 1协销 2会员机构 3供应商 4普通机构
|
|
|
+ user.setUserIdentity(4);
|
|
|
+ // 用户权限: 2会员机构 3供应商 4协销 5普通机构
|
|
|
+ user.setUserPermission(5);
|
|
|
+ // 设置机构上线
|
|
|
+ user.setClubStatus(90);
|
|
|
+ // 默认密码
|
|
|
+ String initPassword = "caimei123";
|
|
|
+ user.setPassword(Md5Util.md5(initPassword));
|
|
|
+ // 同意协议
|
|
|
+ user.setAgreeFlag(isAgreed);
|
|
|
// 用户状态,1正常,0冻结
|
|
|
user.setValidFlag(1);
|
|
|
+ // 协销Id
|
|
|
+ user.setServiceProviderId(serviceProvider.getServiceProviderId());
|
|
|
+ // 协销状态
|
|
|
+ user.setServiceProviderStatus(serviceProvider.getStatus());
|
|
|
+ // 会员机构,填写升级资料
|
|
|
+ if (StringUtils.isNotBlank(onlineDto.getContractEmail())) {
|
|
|
+ // 状态:待审查资料
|
|
|
+ user.setClubStatus(1);
|
|
|
+ // 组织名称
|
|
|
+ user.setName(onlineDto.getName());
|
|
|
+ // 邮箱
|
|
|
+ user.setEmail(onlineDto.getContractEmail());
|
|
|
+ }
|
|
|
+ /* 保存数据库 user */
|
|
|
+ int insertUserFlag = registerMapper.insertClubUser(user);
|
|
|
+ log.info("插入数据库User表,获得userId:"+user.getUserId());
|
|
|
+ if (insertUserFlag < 1) {
|
|
|
+ throw new RuntimeException("插入数据库异常user:" + user.toString());
|
|
|
+ }
|
|
|
/*
|
|
|
- 保存数据库 user
|
|
|
- */
|
|
|
- registerMapper.insertClubUser(user);
|
|
|
- /*
|
|
|
- * 注册机构信息
|
|
|
+ 组装机构数据
|
|
|
*/
|
|
|
- // 设置club信息 并保存
|
|
|
- club.setUserId(user.getUserId());
|
|
|
+ ClubPo club = new ClubPo();
|
|
|
+ int insertClubFlag = 0;
|
|
|
+ // 联系手机
|
|
|
club.setContractMobile(mobile);
|
|
|
+ // 联系人
|
|
|
club.setLinkMan(onlineDto.getLinkMan());
|
|
|
+ // 用户Id
|
|
|
+ club.setUserId(user.getUserId());
|
|
|
// 设置协销ID
|
|
|
club.setServiceProviderId(serviceProvider.getServiceProviderId());
|
|
|
// 待扫描
|
|
|
+ club.setScanFlag(0);
|
|
|
+ // 注册时间
|
|
|
club.setAddTime(current);
|
|
|
- /*
|
|
|
- 保存数据库 club
|
|
|
- */
|
|
|
- registerMapper.insertClub(club);
|
|
|
+ // 会员机构,填写升级资料
|
|
|
+ if (StringUtils.isNotBlank(onlineDto.getContractEmail())) {
|
|
|
+ // 机构名称
|
|
|
+ club.setName(onlineDto.getName());
|
|
|
+ // 机构简称
|
|
|
+ club.setSName(onlineDto.getSName());
|
|
|
+ // 邮箱
|
|
|
+ club.setContractEmail(onlineDto.getContractEmail());
|
|
|
+ // 待审查资料
|
|
|
+ club.setStatus(1);
|
|
|
+ // 地址
|
|
|
+ club.setProvinceId(onlineDto.getProvinceId());
|
|
|
+ club.setCityId(onlineDto.getCityId());
|
|
|
+ club.setTownId(onlineDto.getTownId());
|
|
|
+ club.setAddress(onlineDto.getAddress());
|
|
|
+ // 门头照
|
|
|
+ club.setShopPhoto(onlineDto.getShopPhoto());
|
|
|
+ // 营业执照
|
|
|
+ club.setBusinessLicense(onlineDto.getBusinessLicense());
|
|
|
+ // 统一社会信用代码
|
|
|
+ club.setSocialCreditCode(onlineDto.getSocialCreditCode());
|
|
|
+ // 分类: 1医美, 2生美
|
|
|
+ club.setFirstClubType(onlineDto.getFirstClubType());
|
|
|
+ if (onlineDto.getFirstClubType() == 1){
|
|
|
+ // 医美二级分类: 1诊所、2门诊、3医院
|
|
|
+ club.setSecondClubType(onlineDto.getSecondClubType());
|
|
|
+ // 门诊和医院则需要填写科室
|
|
|
+ club.setDepartment(onlineDto.getDepartment());
|
|
|
+ // 医美分类必须上传医疗执业许可证
|
|
|
+ club.setMedicalPracticeLicense(onlineDto.getMedicalPracticeLicense());
|
|
|
+ }
|
|
|
+ // 主打项目(mainpro)
|
|
|
+ club.setMainProduct(onlineDto.getMainProduct());
|
|
|
+ /*
|
|
|
+ 保存数据库(会员机构) club
|
|
|
+ */
|
|
|
+ insertClubFlag = registerMapper.insertUpgradeClub(club);
|
|
|
+ } else {
|
|
|
+ // 机构名称
|
|
|
+ club.setName(onlineDto.getLinkMan());
|
|
|
+ // 机构简称
|
|
|
+ club.setSName(onlineDto.getLinkMan());
|
|
|
+ // 状态设置上线
|
|
|
+ club.setStatus(90);
|
|
|
+ /*
|
|
|
+ 保存数据库(普通机构) club
|
|
|
+ */
|
|
|
+ insertClubFlag = registerMapper.insertClub(club);
|
|
|
+ }
|
|
|
+ log.info("插入数据库club表,获得clubId:"+club.getClubId());
|
|
|
+ if (insertClubFlag < 1) {
|
|
|
+ throw new RuntimeException("插入数据库异常club:" + club.toString());
|
|
|
+ }
|
|
|
/*
|
|
|
* 操作成功,推送短信给机构,获取账号密码。
|
|
|
* 协销去后台审核,机构用账号密码登录绑定微信
|
|
@@ -665,19 +731,39 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
if (model.getCode() == -1) {
|
|
|
return model.getMsg();
|
|
|
}
|
|
|
- String redisSmsCode = (String) redisService.get("code:" + mobile);
|
|
|
- if (!redisSmsCode.equals(smsCode)) {
|
|
|
- return "手机验证码错误";
|
|
|
+ if (StringUtils.isNotBlank(smsCode)){
|
|
|
+ String redisSmsCode = (String) redisService.get("code:" + mobile);
|
|
|
+ if (!redisSmsCode.equals(smsCode)) {
|
|
|
+ return "手机验证码错误";
|
|
|
+ }
|
|
|
}
|
|
|
+ boolean flag = false;
|
|
|
// 查找用户表是否存在
|
|
|
Integer dbUserId = baseMapper.getUserIdByMobile(mobile);
|
|
|
if (null != dbUserId && dbUserId > 0) {
|
|
|
- return "该手机号已被使用";
|
|
|
+ UserLoginVo user = loginMapper.getLoginUserByUserId(dbUserId);
|
|
|
+ String showName = ValidateUtil.nameConversion(user.getUserName());
|
|
|
+ if (2 == user.getUserIdentity() || 4 == user.getUserIdentity()) {
|
|
|
+ return "该手机号已绑定机构(" + showName + ")联系人,请重新填写手机号";
|
|
|
+ } else if (3 == user.getUserIdentity()) {
|
|
|
+ return "该手机号已绑定供应商(" + showName + ")联系人,请重新填写手机号";
|
|
|
+ }
|
|
|
+ flag = true;
|
|
|
}
|
|
|
// 查找运营人员表是否存在
|
|
|
Integer dbOperationId = baseMapper.getOperationIdByMobile(mobile);
|
|
|
if (null != dbOperationId && dbOperationId > 0) {
|
|
|
- return "您已是运营人员,无需再注册机构";
|
|
|
+ UserLoginVo operation = loginMapper.getOperationUserByOperationId(dbOperationId);
|
|
|
+ String showName = ValidateUtil.nameConversion(operation.getUserName());
|
|
|
+ if (2 == operation.getUserIdentity() || 4 == operation.getUserIdentity()) {
|
|
|
+ return "该手机号已绑定机构(" + showName + ")运营人员,请重新填写手机号";
|
|
|
+ } else if (3 == operation.getUserIdentity()) {
|
|
|
+ return "该手机号已绑定供应商(" + showName + ")运营人员,请重新填写手机号";
|
|
|
+ }
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ if (flag) {
|
|
|
+ return "该手机号已被使用";
|
|
|
}
|
|
|
return null;
|
|
|
}
|