feat(): 企业注册功能

dev.entOperation
xinzirun 2024-09-27 21:25:40 +08:00
parent 411a454c1b
commit ec676ca227
17 changed files with 123 additions and 47 deletions

View File

@ -1,7 +1,7 @@
package com.muyu.auth.controller;
import com.muyu.auth.form.LoginBody;
import com.muyu.auth.form.RegisterBody;
import com.muyu.common.system.domain.form.LoginBody;
import com.muyu.common.system.domain.form.RegisterBody;
import com.muyu.auth.service.SysLoginService;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.JwtUtils;
@ -66,7 +66,7 @@ public class TokenController {
@PostMapping("register")
public Result<?> register (@RequestBody RegisterBody registerBody) {
// 用户注册
sysLoginService.register(registerBody.getUsername(), registerBody.getPassword());
sysLoginService.register(registerBody);
return Result.success();
}
}

View File

@ -1,10 +0,0 @@
package com.muyu.auth.form;
/**
*
*
* @author muyu
*/
public class RegisterBody extends LoginBody {
}

View File

@ -1,5 +1,6 @@
package com.muyu.auth.service;
import com.muyu.common.system.domain.form.RegisterBody;
import com.muyu.common.core.constant.CacheConstants;
import com.muyu.common.core.constant.Constants;
import com.muyu.common.core.constant.SecurityConstants;
@ -98,7 +99,22 @@ public class SysLoginService {
/**
*
*/
public void register (String username, String password) {
public void register (RegisterBody registerBody) {
//获取用户名密码
String username = registerBody.getUsername();
String password = registerBody.getPassword();
if(StringUtils.isEmpty(registerBody.getEntName())) {
throw new ServiceException("企业名称不能为空");
}
if(StringUtils.isEmpty(registerBody.getLeader())) {
throw new ServiceException("负责人不能为空");
}
if(StringUtils.isBlank(registerBody.getPhone())) {
throw new ServiceException("手机号不能为空");
}
if(StringUtils.isBlank(registerBody.getEmail())) {
throw new ServiceException("邮箱不能为空");
}
// 用户名或密码为空 错误
if (StringUtils.isAnyBlank(username, password)) {
throw new ServiceException("用户/密码必须填写");
@ -117,7 +133,7 @@ public class SysLoginService {
sysUser.setUserName(username);
sysUser.setNickName(username);
sysUser.setPassword(SecurityUtils.encryptPassword(password));
Result<?> registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER);
Result<?> registerResult = remoteUserService.registerUserInfo(registerBody, SecurityConstants.INNER);
if (Result.FAIL == registerResult.getCode()) {
throw new ServiceException(registerResult.getMsg());

View File

@ -45,7 +45,7 @@ public class BaseEntity implements Serializable {
*/
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String createTime;
private Date createTime;
/**
*
@ -58,7 +58,7 @@ public class BaseEntity implements Serializable {
*/
@TableField(fill = FieldFill.UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String updateTime;
private Date updateTime;
/**
*

View File

@ -64,6 +64,11 @@ public class SysDept extends BaseEntity {
*/
private String email;
/**
* ID
*/
private Long entId;
/**
* :0,1
*/

View File

@ -19,7 +19,7 @@ import lombok.experimental.SuperBuilder;
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "sys_ent")
@TableName(value = "sys_ent", autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
public class SysEnt extends BaseEntity {
@ -40,9 +40,9 @@ public class SysEnt extends BaseEntity {
private String leader;
/**
*
*
*/
private String phoneNumber;
private String phone;
/**
*

View File

@ -1,4 +1,4 @@
package com.muyu.auth.form;
package com.muyu.common.system.domain.form;
/**
*

View File

@ -0,0 +1,36 @@
package com.muyu.common.system.domain.form;
import lombok.*;
/**
*
*
* @author muyu
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class RegisterBody extends LoginBody {
/**
*
*/
private String entName;
/**
*
*/
private String leader;
/**
*
*/
private String phone;
/**
*
*/
private String email;
}

View File

@ -4,6 +4,7 @@ import com.muyu.common.core.constant.SecurityConstants;
import com.muyu.common.core.constant.ServiceNameConstants;
import com.muyu.common.core.domain.Result;
import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.domain.form.RegisterBody;
import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory;
import com.muyu.common.system.domain.LoginUser;
import org.springframework.cloud.openfeign.FeignClient;
@ -38,7 +39,7 @@ public interface RemoteUserService {
* @return
*/
@PostMapping("/user/register")
public Result<Boolean> registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
public Result<Boolean> registerUserInfo (@RequestBody RegisterBody registerBody, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*

View File

@ -1,6 +1,7 @@
package com.muyu.common.system.remote.factory;
import com.muyu.common.core.domain.Result;
import com.muyu.common.system.domain.form.RegisterBody;
import com.muyu.common.system.remote.RemoteUserService;
import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.domain.LoginUser;
@ -30,7 +31,7 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
}
@Override
public Result<Boolean> registerUserInfo (SysUser sysUser, String source) {
public Result<Boolean> registerUserInfo (RegisterBody registerBody, String source) {
return Result.error("注册用户失败:" + throwable.getMessage());
}

View File

@ -1,6 +1,5 @@
package com.muyu.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.utils.poi.ExcelUtil;
@ -11,10 +10,8 @@ import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.InnerAuth;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.SysDept;
import com.muyu.common.system.domain.SysRole;
import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.domain.LoginUser;
import com.muyu.common.system.domain.*;
import com.muyu.common.system.domain.form.RegisterBody;
import com.muyu.system.domain.resp.AuthRoleResp;
import com.muyu.system.domain.resp.UserDetailInfoResp;
import com.muyu.system.domain.resp.UserInfoResp;
@ -24,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@ -57,6 +53,8 @@ public class SysUserController extends BaseController {
@Autowired
private SysConfigService configService;
@Autowired
private SysEntService entService;
/**
*
*/
@ -120,14 +118,40 @@ public class SysUserController extends BaseController {
*/
@InnerAuth
@PostMapping("/register")
public Result<Boolean> register (@RequestBody SysUser sysUser) {
String username = sysUser.getUserName();
public Result<Boolean> register (@RequestBody RegisterBody registerBody) {
String username = registerBody.getUsername();
if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) {
return Result.error("当前系统没有开启注册功能!");
}
SysUser sysUser = SysUser.builder().userName(username).build();
if (!userService.checkUserNameUnique(sysUser)) {
return Result.error("保存用户'" + username + "'失败,注册账号已存在");
}
//添加企业
SysEnt sysEnt = SysEnt.builder()
.name(registerBody.getEntName())
.leader(registerBody.getLeader())
.phone(registerBody.getPhone())
.email(registerBody.getEmail())
.build();
entService.save(sysEnt);
//添加部门
SysDept sysDept = SysDept.builder()
.deptName(registerBody.getEntName())
.leader(registerBody.getLeader())
.phone(registerBody.getPhone())
.email(registerBody.getEmail())
.entId(sysEnt.getId())
.parentId(100L)
.build();
deptService.insertDept(sysDept);
sysUser.setDeptId(sysDept.getDeptId());
sysUser.setNickName(registerBody.getUsername());
sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword()));
return Result.success(userService.registerUser(sysUser));
}

View File

@ -37,11 +37,11 @@ public class EntAddReq {
private String leader;
/**
*
*
*/
@NotBlank(message = "手机号码不能为空")
@Schema(title = "手机号码", type = "String", defaultValue = "18321974313", description = "手机号码")
private String phoneNumber;
@NotBlank(message = "联系电话不能为空")
@Schema(title = "联系电话", type = "String", defaultValue = "18321974313", description = "联系电话")
private String phone;
/**
*
@ -66,7 +66,7 @@ public class EntAddReq {
return SysEnt.builder()
.name(req.getEntName())
.leader(req.getLeader())
.phoneNumber(req.getPhoneNumber())
.phone(req.getPhone())
.email(req.getEmail())
.entCode(req.getEntCode())
.build();

View File

@ -32,10 +32,10 @@ public class EntListReq {
private String leader;
/**
*
*
*/
@Schema(title = "手机号码", type = "String", defaultValue = "18321974313", description = "手机号码")
private String phoneNumber;
@Schema(title = "联系电话", type = "String", defaultValue = "18321974313", description = "联系电话")
private String phone;
/**
*

View File

@ -34,10 +34,10 @@ public class EntUpdateReq {
private String leader;
/**
*
*
*/
@Schema(title = "手机号码", type = "String", defaultValue = "18321974313", description = "手机号码")
private String phoneNumber;
@Schema(title = "联系电话", type = "String", defaultValue = "18321974313", description = "联系电话")
private String phone;
/**
*
@ -62,7 +62,7 @@ public class EntUpdateReq {
.id(entId.get())
.name(req.getEntName())
.leader(req.getLeader())
.phoneNumber(req.getPhoneNumber())
.phone(req.getPhone())
.email(req.getEmail())
.entCode(req.getEntCode())
.build();

View File

@ -64,7 +64,7 @@ public class EntResp {
.entId(sysEnt.getId())
.entName(sysEnt.getName())
.leader(sysEnt.getLeader())
.phoneNumber(sysEnt.getPhoneNumber())
.phoneNumber(sysEnt.getPhone())
.email(sysEnt.getEmail())
.entCode(sysEnt.getEntCode())
.build();

View File

@ -44,8 +44,8 @@ public class SysEntServiceImpl extends ServiceImpl<SysEntMapper, SysEnt> impleme
SysEnt::getLeader, entListReq.getLeader()
);
queryWrapper.like(
StringUtils.isNotEmpty(entListReq.getPhoneNumber()),
SysEnt::getPhoneNumber, entListReq.getPhoneNumber()
StringUtils.isNotEmpty(entListReq.getPhone()),
SysEnt::getPhone, entListReq.getPhone()
);
queryWrapper.like(
StringUtils.isNotEmpty(entListReq.getEmail()),

View File

@ -13,6 +13,7 @@
<result property="leader" column="leader"/>
<result property="phone" column="phone"/>
<result property="email" column="email"/>
<result property="entId" column="ent_id"/>
<result property="status" column="status"/>
<result property="delFlag" column="del_flag"/>
<result property="parentName" column="parent_name"/>
@ -109,7 +110,7 @@
where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
</select>
<insert id="insertDept" parameterType="com.muyu.common.system.domain.SysDept">
<insert id="insertDept" parameterType="com.muyu.common.system.domain.SysDept" useGeneratedKeys="true" keyProperty="deptId">
insert into sys_dept(
<if test="deptId != null and deptId != 0">dept_id,</if>
<if test="parentId != null and parentId != 0">parent_id,</if>
@ -119,6 +120,7 @@
<if test="leader != null and leader != ''">leader,</if>
<if test="phone != null and phone != ''">phone,</if>
<if test="email != null and email != ''">email,</if>
<if test="entId != null">ent_id,</if>
<if test="status != null">status,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
create_time
@ -131,6 +133,7 @@
<if test="leader != null and leader != ''">#{leader},</if>
<if test="phone != null and phone != ''">#{phone},</if>
<if test="email != null and email != ''">#{email},</if>
<if test="entId != null">#{entId},</if>
<if test="status != null">#{status},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
sysdate()