refactor: 租户 and 用户

This commit is contained in:
pengsz 2025-12-05 09:00:59 +08:00
parent 9ba5172bb2
commit d6a357f249
8 changed files with 51 additions and 34 deletions

View File

@ -58,6 +58,9 @@ public class Tenant {
@TableField("license_url") @TableField("license_url")
private String licenseUrl; private String licenseUrl;
@ApiModelProperty("租户专属注册二维码URL")
private String registerQrCodeUrl;
@ApiModelProperty("地址") @ApiModelProperty("地址")
@TableField("address") @TableField("address")
private String address; private String address;

View File

@ -41,6 +41,9 @@ public class User implements Serializable {
@ApiModelProperty(value = "真实姓名") @ApiModelProperty(value = "真实姓名")
private String realName; private String realName;
@ApiModelProperty("用户公司名称")
private String companyName;
@ApiModelProperty(value = "生日") @ApiModelProperty(value = "生日")
private String birthday; private String birthday;

View File

@ -20,15 +20,18 @@ public class RegisterRequest {
@ApiModelProperty(value = "姓名") @ApiModelProperty(value = "姓名")
private String name; private String name;
@ApiModelProperty("用户公司名称")
private String companyName;
@NotBlank(message = "登录密码不能为空") @NotBlank(message = "登录密码不能为空")
@Pattern(regexp = RegularConstants.PASSWORD, message = "密码格式错误,密码必须以字母开头,长度在6~18之间,只能包含字符、数字和下划线") @Pattern(regexp = RegularConstants.PASSWORD, message = "密码格式错误,密码必须以字母开头,长度在6~18之间,只能包含字符、数字和下划线")
@ApiModelProperty(value = "登录密码") @ApiModelProperty(value = "登录密码")
private String password; private String password;
@NotBlank(message = "交易密码不能为空") // @NotBlank(message = "交易密码不能为空")
@Size(min = 6, message = "交易密码至少6位") // @Size(min = 6, message = "交易密码至少6位")
@ApiModelProperty(value = "交易密码") // @ApiModelProperty(value = "交易密码")
private String tradePassword; // private String tradePassword;
@NotBlank(message = "手机号不能为空") @NotBlank(message = "手机号不能为空")
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确") @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
@ -40,14 +43,14 @@ public class RegisterRequest {
@ApiModelProperty(value = "短信验证码") @ApiModelProperty(value = "短信验证码")
private String validateCode; private String validateCode;
@ApiModelProperty(value = "推广人id") // @ApiModelProperty(value = "推广人id")
private Integer spreadUid; // private Integer spreadUid;
@ApiModelProperty(value = "租户(公司)id") @ApiModelProperty(value = "租户(公司)id")
private Long tenantId; // 公司ID private Long tenantId; // 公司ID
/** /**
* 机构名称(选填) * 机构名称(选填)
*/ */
@ApiModelProperty(value = "机构名称") // @ApiModelProperty(value = "机构名称")
private String orgName; // private String orgName;
} }

View File

@ -22,6 +22,9 @@ public class TenantSaveRequest {
@ApiModelProperty("租户名称(英文)") @ApiModelProperty("租户名称(英文)")
private String tenantNameEn; private String tenantNameEn;
@ApiModelProperty("租户专属注册二维码URL")
private String registerQrCodeUrl;
@ApiModelProperty("租户简介") @ApiModelProperty("租户简介")
private String introduction; private String introduction;

View File

@ -30,6 +30,9 @@ public class TenantVo {
@ApiModelProperty("租户名称(英文)") @ApiModelProperty("租户名称(英文)")
private String tenantNameEn; private String tenantNameEn;
@ApiModelProperty("租户专属注册二维码URL")
private String registerQrCodeUrl;
@ApiModelProperty("租户编码") @ApiModelProperty("租户编码")
private String code; private String code;
@ -86,6 +89,6 @@ public class TenantVo {
@ApiModelProperty(value = "等级名称") @ApiModelProperty(value = "等级名称")
private String levelName; private String levelName;
@ApiModelProperty(value = "商户配置") // @ApiModelProperty(value = "商户配置")
WechatMerchantConfigVo wechatMerchantConfigVo; // WechatMerchantConfigVo wechatMerchantConfigVo;
} }

View File

@ -132,10 +132,10 @@ public class LoginServiceImpl implements LoginService {
if (!user.getStatus()) { if (!user.getStatus()) {
throw new YztException("当前账户已禁用,请联系管理员!"); throw new YztException("当前账户已禁用,请联系管理员!");
} }
if (user.getSpreadUid().equals(0) && spreadPid > 0) { // if (user.getSpreadUid().equals(0) && spreadPid > 0) {
// 绑定推广关系 // // 绑定推广关系
bindSpread(user, spreadPid); // bindSpread(user, spreadPid);
} // }
// 记录最后一次登录时间 // 记录最后一次登录时间
user.setLastLoginTime(YztDateUtil.nowDateTime()); user.setLastLoginTime(YztDateUtil.nowDateTime());
user.setUpdateTime(DateUtil.date()); user.setUpdateTime(DateUtil.date());
@ -263,9 +263,10 @@ public class LoginServiceImpl implements LoginService {
user.setPhone(request.getPhone()); user.setPhone(request.getPhone());
user.setAccount(request.getPhone()); user.setAccount(request.getPhone());
user.setCompanyName(request.getCompanyName());
user.setPwd(YztUtil.encryptPassword(request.getPassword(), request.getPhone())); // 登录密码 user.setPwd(YztUtil.encryptPassword(request.getPassword(), request.getPhone())); // 登录密码
user.setTradePassword(YztUtil.encryptPassword(request.getTradePassword(), request.getPhone())); // 交易密码 // user.setTradePassword(YztUtil.encryptPassword(request.getTradePassword(), request.getPhone())); // 交易密码
user.setSpreadUid(request.getSpreadUid()); // 推广人ID // user.setSpreadUid(request.getSpreadUid()); // 推广人ID
// user.setTenantId(request.getTenantId()); // 公司ID // user.setTenantId(request.getTenantId()); // 公司ID
user.setTenantId(userService.getInfoByUid(user.getSpreadUid()).getTenantId()); // 公司ID user.setTenantId(userService.getInfoByUid(user.getSpreadUid()).getTenantId()); // 公司ID
Date nowDate = YztDateUtil.nowDateTime(); Date nowDate = YztDateUtil.nowDateTime();
@ -273,26 +274,26 @@ public class LoginServiceImpl implements LoginService {
user.setLastLoginTime(nowDate); user.setLastLoginTime(nowDate);
user.setUserType(Constants.USER_LOGIN_TYPE_H5); user.setUserType(Constants.USER_LOGIN_TYPE_H5);
user.setAvatar(systemConfigService.getValueByKey(Constants.USER_DEFAULT_AVATAR_CONFIG_KEY)); user.setAvatar(systemConfigService.getValueByKey(Constants.USER_DEFAULT_AVATAR_CONFIG_KEY));
user.setOrgName(request.getOrgName()); // user.setOrgName(request.getOrgName());
user.setLevel(1); user.setLevel(1);
// 推广人 // 推广人
if(ObjectUtil.isNull(request.getSpreadUid())){ // if(ObjectUtil.isNull(request.getSpreadUid())){
throw new YztException("推广人不能为空!"); // throw new YztException("推广人不能为空!");
} // }
Boolean check = userService.checkBingSpread(user, request.getSpreadUid(), "new"); // Boolean check = userService.checkBingSpread(user, request.getSpreadUid(), "new");
if (check) { // if (check) {
user.setSpreadUid(request.getSpreadUid()); // user.setSpreadUid(request.getSpreadUid());
user.setSpreadTime(nowDate); // user.setSpreadTime(nowDate);
} // }
// save(user); // save(user);
Boolean execute = transactionTemplate.execute(e -> { Boolean execute = transactionTemplate.execute(e -> {
userService.save(user); userService.save(user);
// 推广人处理 // 推广人处理
if (check) { // if (check) {
userService.updateSpreadCountByUid(request.getSpreadUid(), "add"); // userService.updateSpreadCountByUid(request.getSpreadUid(), "add");
} // }
return Boolean.TRUE; return Boolean.TRUE;
}); });
if (!execute) { if (!execute) {

View File

@ -890,11 +890,12 @@ public class UserCenterServiceImpl extends ServiceImpl<UserMapper, User> impleme
}); });
if (!execute) { if (!execute) {
logger.error("微信用户注册生成失败,nickName = " + registerThirdUserRequest.getNickName()); logger.error("微信用户注册生成失败,nickName = " + registerThirdUserRequest.getNickName());
} else if (!isNew) {// 老用户绑定推广人
if (ObjectUtil.isNotNull(registerThirdUserRequest.getSpreadPid()) && registerThirdUserRequest.getSpreadPid() > 0) {
loginService.bindSpread(finalUser, registerThirdUserRequest.getSpreadPid());
}
} }
// else if (!isNew) {// 老用户绑定推广人
// if (ObjectUtil.isNotNull(registerThirdUserRequest.getSpreadPid()) && registerThirdUserRequest.getSpreadPid() > 0) {
// loginService.bindSpread(finalUser, registerThirdUserRequest.getSpreadPid());
// }
// }
LoginResponse loginResponse = new LoginResponse(); LoginResponse loginResponse = new LoginResponse();
try { try {
String token = tokenComponent.createToken(finalUser); String token = tokenComponent.createToken(finalUser);

View File

@ -69,7 +69,7 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
return transactionTemplate.execute(e -> { return transactionTemplate.execute(e -> {
this.saveOrUpdate(tenant); this.saveOrUpdate(tenant);
wechatMerchantConfigService.saveOrUpdateByTenant(tenantSaveRequest.getWechatMerchantConfigVo(),tenant.getTenantId(), Objects.requireNonNull(SecurityUtil.getLoginUserVo()).getUser().getId()); // wechatMerchantConfigService.saveOrUpdateByTenant(tenantSaveRequest.getWechatMerchantConfigVo(),tenant.getTenantId(), Objects.requireNonNull(SecurityUtil.getLoginUserVo()).getUser().getId());
return tenant.getTenantId(); return tenant.getTenantId();
}); });
} }
@ -107,7 +107,7 @@ public class TenantServiceImpl extends ServiceImpl<TenantMapper, Tenant> impleme
public TenantVo getInfo(Long tenantId) { public TenantVo getInfo(Long tenantId) {
Tenant tenant = getById(tenantId); Tenant tenant = getById(tenantId);
TenantVo tenantVo = BeanUtil.copyProperties(tenant, TenantVo.class); TenantVo tenantVo = BeanUtil.copyProperties(tenant, TenantVo.class);
tenantVo.setWechatMerchantConfigVo(Objects.requireNonNull(wechatMerchantConfigService.getByTenant(tenantId))); // tenantVo.setWechatMerchantConfigVo(Objects.requireNonNull(wechatMerchantConfigService.getByTenant(tenantId)));
return tenantVo; return tenantVo;
} }