瀏覽代碼

Fix 修复用户注册报错的问题

Yue 2 年之前
父節點
當前提交
f48ea06144

+ 4 - 2
SERVER/YanZhongXYH/xyh-admin/src/main/resources/application-dev.yml

@@ -97,8 +97,10 @@ vber:
       sql.show: true
 
 wx:
-  app-id: wxf78f89c00da43b16
-  app-secret: 02663dcc6c44fcba76dc04d7de7c8c4d
+  #app-id: wxf78f89c00da43b16
+  #app-secret: 02663dcc6c44fcba76dc04d7de7c8c4d
+  app-id: wx378c6b0d5e65735f
+  app-secret: 611cff26a2f88f857d2e3cd4dc91f9c8
 
 sms:
   enabled: true

+ 1 - 0
SERVER/YanZhongXYH/xyh-admin/src/main/resources/i18n/messages.properties

@@ -11,6 +11,7 @@ user.blocked=对不起,您的账号:{0} 已禁用,请联系管理员
 role.blocked=角色已封禁,请联系管理员
 user.logout.success=退出成功
 length.not.valid=长度必须在{min}到{max}个字符之间
+user.name.not.blank=用户姓名不能为空
 user.username.not.blank=用户名不能为空
 user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
 user.username.length.valid=账户长度必须在{min}到{max}个字符之间

+ 1 - 0
SERVER/YanZhongXYH/xyh-admin/src/main/resources/i18n/messages_en_US.properties

@@ -12,6 +12,7 @@ user.wx.openid.error=WeChat's authorization failed
 role.blocked=Role disabled,please contact administrators
 user.logout.success=Exit successful
 length.not.valid=The length must be between {min} and {max} characters
+user.name.not.blank=Name cannot be blank
 user.username.not.blank=Username cannot be blank
 user.username.not.valid=* 2 to 20 chinese characters, letters, numbers or underscores, and must start with a non number
 user.username.length.valid=Account length must be between {min} and {max} characters

+ 1 - 0
SERVER/YanZhongXYH/xyh-admin/src/main/resources/i18n/messages_zh_CN.properties

@@ -12,6 +12,7 @@ user.wx.openid.error=微信授权失败
 role.blocked=角色已封禁,请联系管理员
 user.logout.success=退出成功
 length.not.valid=长度必须在{min}到{max}个字符之间
+user.name.not.blank=用户姓名不能为空
 user.username.not.blank=用户名不能为空
 user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
 user.username.length.valid=账户长度必须在{min}到{max}个字符之间

+ 37 - 6
SERVER/YanZhongXYH/xyh-common/src/main/java/cn/xyh/common/core/domain/model/RegisterBody.java

@@ -1,7 +1,10 @@
 package cn.xyh.common.core.domain.model;
 
+import cn.xyh.common.constant.UserConstants;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
 
 /**
  * 用户注册对象
@@ -9,14 +12,42 @@ import lombok.EqualsAndHashCode;
  * @author Yue
  */
 @Data
-@EqualsAndHashCode(callSuper = true)
-public class RegisterBody extends LoginBody {
+public class RegisterBody {
 
+    /**
+     * 手机号码
+     */
+    @NotBlank(message = "{user.phonenumber.not.blank}")
+    private String phoneNumber;
+    /**
+     * 用户姓名
+     */
+    @NotBlank(message = "{user.name.not.blank}")
     private String name;
-    private String userType;
+    /**
+     * 用户名
+     */
+    private String userName;
+    /**
+     * 用户密码
+     */
+    @NotBlank(message = "{user.password.not.blank}")
+    @Length(min = UserConstants.PASSWORD_MIN_LENGTH, max = UserConstants.PASSWORD_MAX_LENGTH, message = "{user.password.length.valid}")
+    private String password;
+    
+    /**
+     * 用户微信openid
+     */
+    private String openId;
 
-    private String phoneNumber;
+    /**
+     * 验证码
+     */
+    private String code;
 
-    private String openId;
+    /**
+     * 唯一标识
+     */
+    private String uuid;
 
 }

+ 0 - 5
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/amActivity/service/IAmAlumnusService.java

@@ -47,11 +47,6 @@ public interface IAmAlumnusService {
      */
     List<AmAlumnusVo> queryList(AmAlumnusBo bo);
 
-    /**
-     * 新增校友信息
-     */
-    boolean createAlumnus(Long userId, String name);
-
     /**
      * 新增校友信息
      */

+ 0 - 23
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/amActivity/service/impl/AmAlumnusServiceImpl.java

@@ -180,29 +180,6 @@ public class AmAlumnusServiceImpl implements IAmAlumnusService {
         return lqw;
     }
 
-    /**
-     * 新增校友信息
-     */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean createAlumnus(Long userId, String name) {
-        AmAlumnus am = new AmAlumnus();
-        am.setUserId(userId);
-        am.setName(name);
-        boolean flag = baseMapper.insert(am) > 0;
-        AmAlumnus newAm = baseMapper.selectVoByUserId(userId);
-        if (flag && newAm != null) {
-            // 新增校友信息扩展表
-            AmAlumnusEx amex = new AmAlumnusEx();
-            amex.setAmId(newAm.getAmId());
-            amex.setUserId(userId);
-            flag = baseExMapper.insert(amex) > 0;
-        } else {
-            throw new ServiceException("新增校友信息失败");
-        }
-        return flag;
-    }
-
 
     /**
      * 新增校友信息

+ 7 - 11
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/service/SysRegisterService.java

@@ -1,7 +1,6 @@
 package cn.xyh.system.service;
 
 import cn.dev33.satoken.secure.BCrypt;
-import cn.xyh.amActivity.service.IAmAlumnusService;
 import cn.xyh.common.constant.CacheConstants;
 import cn.xyh.common.constant.Constants;
 import cn.xyh.common.core.domain.entity.SysUser;
@@ -16,6 +15,7 @@ import cn.xyh.common.utils.ServletUtils;
 import cn.xyh.common.utils.StringUtils;
 import cn.xyh.common.utils.redis.RedisUtils;
 import cn.xyh.common.utils.spring.SpringUtils;
+import cn.xyh.system.utils.GuidUtil;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
@@ -28,7 +28,6 @@ import org.springframework.stereotype.Service;
 @Service
 public class SysRegisterService {
 
-    private final IAmAlumnusService alumnusService;
     private final ISysUserService userService;
     private final ISysConfigService configService;
 
@@ -36,13 +35,9 @@ public class SysRegisterService {
      * 注册
      */
     public void register(RegisterBody registerBody) {
-        String username = registerBody.getUsername();
-        String password = registerBody.getPassword();
         String phone = registerBody.getPhoneNumber();
         String name = registerBody.getName();
-        String openId = registerBody.getOpenId();
-        // 校验用户类型是否存在
-        String userType = UserType.getUserType(registerBody.getUserType()).getUserType();
+        String username = StringUtils.isEmpty(registerBody.getUserName()) ? GuidUtil.getUnionUserName() : registerBody.getUserName();
 
         boolean captchaEnabled = configService.selectCaptchaEnabled();
         // 验证码开关
@@ -52,17 +47,18 @@ public class SysRegisterService {
         SysUser sysUser = new SysUser();
         sysUser.setUserName(username);
         sysUser.setNickName(name);
-        sysUser.setOpenId(openId);
+        sysUser.setOpenId(registerBody.getOpenId());
         sysUser.setPhonenumber(phone);
-        sysUser.setPassword(BCrypt.hashpw(password));
-        sysUser.setUserType(userType);
+        sysUser.setPassword(BCrypt.hashpw(registerBody.getPassword()));
+        sysUser.setUserType(UserType.AM_USER.getUserType());
+
 
         if (!userService.checkPhoneUnique(sysUser)) {
             throw new UserException("user.register.save.error", phone);
         }
 
         if (!userService.checkUserNameUnique(sysUser)) {
-            throw new UserException("user.register.save.error", username);
+            throw new UserException("user.register.save.error", name);
         }
         boolean regFlag = userService.registerUser(sysUser);
         if (!regFlag) {

+ 29 - 7
SERVER/YanZhongXYH/xyh-system/src/main/java/cn/xyh/system/service/impl/SysUserServiceImpl.java

@@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.xyh.amActivity.domain.AmAlumnus;
+import cn.xyh.amActivity.domain.AmAlumnusEx;
+import cn.xyh.amActivity.mapper.AmAlumnusExMapper;
 import cn.xyh.amActivity.mapper.AmAlumnusMapper;
 import cn.xyh.common.constant.CacheNames;
 import cn.xyh.common.constant.UserConstants;
@@ -65,7 +67,7 @@ public class SysUserServiceImpl implements ISysUserService, IUserService {
     private final SysUserPostMapper userPostMapper;
     private final SysUserYearMapper userYearMapper;
     private final AmAlumnusMapper alumnusMapper;
-
+    private final AmAlumnusExMapper alumnusExMapper;
 
     @Override
     public TableDataInfo<SysUserVo> selectPageUserList(SysUser user, PageQuery pageQuery) {
@@ -309,14 +311,34 @@ public class SysUserServiceImpl implements ISysUserService, IUserService {
     public boolean registerUser(SysUser user) {
         user.setCreateBy(user.getUserName());
         user.setUpdateBy(user.getUserName());
-        user.setRoleId(ALUMNUS_DEFAULT_ROLE_ID);
         boolean flag = baseMapper.insert(user) > 0;
         if (flag) {
-            insertUserRole(user);
-            AmAlumnus am = new AmAlumnus();
-            am.setUserId(user.getUserId());
-            am.setName(user.getNickName());
-            flag = alumnusMapper.insert(am) > 0;
+            SysUser newUser = baseMapper.selectUserByUserName(user.getUserName());
+            newUser.setRoleIds(new Long[]{ALUMNUS_DEFAULT_ROLE_ID});
+            insertUserRole(newUser);
+            flag = createAlumnus(newUser.getUserId(), user.getNickName());
+        }
+        return flag;
+    }
+
+
+    /**
+     * 新增校友信息
+     */
+    public boolean createAlumnus(Long userId, String name) {
+        AmAlumnus am = new AmAlumnus();
+        am.setUserId(userId);
+        am.setName(name);
+        boolean flag = alumnusMapper.insert(am) > 0;
+        AmAlumnus newAm = alumnusMapper.selectVoByUserId(userId);
+        if (flag && newAm != null) {
+            // 新增校友信息扩展表
+            AmAlumnusEx amex = new AmAlumnusEx();
+            amex.setAmId(newAm.getAmId());
+            amex.setUserId(userId);
+            flag = alumnusExMapper.insert(amex) > 0;
+        } else {
+            throw new ServiceException("新增校友信息失败");
         }
         return flag;
     }

+ 2 - 4
UI/XYH.APP/src/pages/account/login.vue

@@ -12,10 +12,8 @@ const pageParams = route.getRouteParams("login")
 
 const loginForm = reactive({
   openid: "",
-  // username: "admin",
-  // password: "123iwb",
-  username: "Yue",
-  password: "123123",
+  username: "",
+  password: "",
   code: "",
   uuid: "",
 })

+ 0 - 2
UI/XYH.APP/src/pages/account/register.vue

@@ -10,9 +10,7 @@ const codeUrl = ref("")
 const password = ref("")
 const form = ref({
   openId: appStore.authStore.getOpenId(),
-  userType: "am",
   phoneNumber: "",
-  username: "",
   password: "",
   name: "",
   code: "",