Browse Source

外卖系统用户注册

hamjin 2 năm trước cách đây
mục cha
commit
dc5315b895
18 tập tin đã thay đổi với 656 bổ sung0 xóa
  1. 57 0
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/SysUserServiceFeign.java
  2. 99 0
      ruoyi-modules/delivery-system/pom.xml
  3. 25 0
      ruoyi-modules/delivery-system/src/main/java/com/delivery/system/DeliverySystemApplication.java
  4. 21 0
      ruoyi-modules/delivery-system/src/main/java/com/delivery/system/controller/ConsumerController.java
  5. 18 0
      ruoyi-modules/delivery-system/src/main/java/com/delivery/system/controller/ProducerController.java
  6. 20 0
      ruoyi-modules/delivery-system/src/main/java/com/delivery/system/controller/RiderController.java
  7. 57 0
      ruoyi-modules/delivery-system/src/main/java/com/delivery/system/controller/UserController.java
  8. 81 0
      ruoyi-modules/delivery-system/src/main/java/com/delivery/system/domain/School.java
  9. 19 0
      ruoyi-modules/delivery-system/src/main/java/com/delivery/system/domain/UserType.java
  10. 3 0
      ruoyi-modules/delivery-system/src/main/resources/banner.txt
  11. 25 0
      ruoyi-modules/delivery-system/src/main/resources/bootstrap.yml
  12. 74 0
      ruoyi-modules/delivery-system/src/main/resources/logback.xml
  13. 1 0
      ruoyi-modules/pom.xml
  14. 1 0
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java
  15. 115 0
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserControllerFeign.java
  16. 8 0
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java
  17. 8 0
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
  18. 24 0
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

+ 57 - 0
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/SysUserServiceFeign.java

@@ -0,0 +1,57 @@
+package com.ruoyi.system.api;
+
+import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.model.LoginUser;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author jty
+ */
+@FeignClient(contextId = "sysUserServiceFeign", value = ServiceNameConstants.SYSTEM_SERVICE)
+@Service
+public interface SysUserServiceFeign {
+    /**
+     * 获取当前用户信息
+     */
+    @GetMapping(value = "/user/info/{username}")
+    R<LoginUser> info(@PathVariable("username") String username, @RequestHeader(value = SecurityConstants.FROM_SOURCE) String source);
+
+    /**
+     * 注册用户信息
+     */
+    @PostMapping("/userFeign/register")
+    R<Boolean> register(@RequestBody SysUser sysUser, @RequestHeader(value = SecurityConstants.FROM_SOURCE) String source);
+
+    /**
+     * 获取用户信息
+     *
+     * @return 用户信息
+     */
+    @GetMapping("/userFeign/getInfo")
+    AjaxResult getInfo(@RequestHeader(value = SecurityConstants.FROM_SOURCE) String source);
+
+    /**
+     * 根据用户编号获取详细信息
+     */
+    @GetMapping(value = {"/userFeign/{userId}"})
+    AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId, @RequestHeader(value = SecurityConstants.FROM_SOURCE) String source);
+
+    /**
+     * 修改用户
+     */
+    @PutMapping("/userFeign/")
+    AjaxResult edit(@Validated @RequestBody SysUser user, @RequestHeader(value = SecurityConstants.FROM_SOURCE) String source);
+
+    /**
+     * 重置密码
+     */
+    @PutMapping("/userFeign/resetPwd")
+    AjaxResult resetPwd(@RequestBody SysUser user, @RequestHeader(value = SecurityConstants.FROM_SOURCE) String source);
+}

+ 99 - 0
ruoyi-modules/delivery-system/pom.xml

@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.ruoyi</groupId>
+        <artifactId>ruoyi-modules</artifactId>
+        <version>3.6.2</version>
+    </parent>
+
+    <artifactId>delivery-module-system</artifactId>
+
+    <description>
+        delivery-module-system模块
+    </description>
+
+    <dependencies>
+
+        <!-- SpringCloud Alibaba Nacos -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <!-- SpringCloud Alibaba Nacos Config -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+
+        <!-- SpringCloud Alibaba Sentinel -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+        </dependency>
+
+        <!-- SpringBoot Actuator -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <!-- Swagger UI -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>${swagger.fox.version}</version>
+        </dependency>
+
+        <!-- Mysql Connector -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common DataSource -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-datasource</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common DataScope -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-datascope</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common Log -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-log</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common Swagger -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-swagger</artifactId>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 25 - 0
ruoyi-modules/delivery-system/src/main/java/com/delivery/system/DeliverySystemApplication.java

@@ -0,0 +1,25 @@
+package com.delivery.system;
+
+import com.ruoyi.common.security.annotation.EnableCustomConfig;
+import com.ruoyi.common.security.annotation.EnableRyFeignClients;
+import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
+
+/**
+ * 系统模块
+ *
+ * @author jty
+ */
+@EnableCustomConfig
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+@ComponentScan(basePackages = {"com.ruoyi.system.api","com.delivery"})
+public class DeliverySystemApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(DeliverySystemApplication.class, args);
+        System.out.println("外卖系统启动成功");
+    }
+}

+ 21 - 0
ruoyi-modules/delivery-system/src/main/java/com/delivery/system/controller/ConsumerController.java

@@ -0,0 +1,21 @@
+package com.delivery.system.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author jty
+ */
+@RestController
+@RequestMapping("/consumer")
+public class ConsumerController extends BaseController {
+
+    @GetMapping("/test")
+    @ResponseBody
+    public String test() {
+        return "Test";
+    }
+}

+ 18 - 0
ruoyi-modules/delivery-system/src/main/java/com/delivery/system/controller/ProducerController.java

@@ -0,0 +1,18 @@
+package com.delivery.system.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author jty
+ */
+@RestController
+public class ProducerController extends BaseController {
+    @GetMapping("/test")
+    @ResponseBody
+    public String test() {
+        return "Test";
+    }
+}

+ 20 - 0
ruoyi-modules/delivery-system/src/main/java/com/delivery/system/controller/RiderController.java

@@ -0,0 +1,20 @@
+package com.delivery.system.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author jty
+ */
+@RestController
+@RequestMapping("/rider")
+public class RiderController extends BaseController {
+    @GetMapping("/test")
+    @ResponseBody
+    public String test() {
+        return "Test";
+    }
+}

+ 57 - 0
ruoyi-modules/delivery-system/src/main/java/com/delivery/system/controller/UserController.java

@@ -0,0 +1,57 @@
+package com.delivery.system.controller;
+
+import com.delivery.system.domain.UserType;
+import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.system.api.SysUserServiceFeign;
+import com.ruoyi.system.api.domain.SysUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author jty
+ */
+@RequestMapping("/user/")
+@RestController
+@ResponseBody
+public class UserController extends BaseController {
+    String sC = SecurityConstants.INNER;
+
+    @Autowired
+    SysUserServiceFeign userService;
+
+    @GetMapping("/test")
+    public R<String> test() {
+        return R.ok("Succeed");
+    }
+
+    @GetMapping(value = {"/{id}","/"})
+    public AjaxResult getInfo(@PathVariable(value = "id", required = false) Long userId) {
+        return userService.getInfo(userId, sC);
+    }
+
+    @PostMapping("/register")
+    public R<Boolean> register(@RequestBody SysUser sysUser, @RequestParam UserType userType) {
+        String username = sysUser.getUserName();
+        sysUser.setDeptId(100L);
+        if (userType == null) {
+            return R.fail("保存用户'" + username + "'失败,未知用户类型");
+        }
+        sysUser.setRoleId(userType.getId());
+        return userService.register(sysUser, sC);
+    }
+
+    @GetMapping("getInfo")
+    public AjaxResult getInfo() {
+        return userService.getInfo(sC);
+    }
+
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysUser user) {
+        return userService.edit(user, sC);
+    }
+}
+

+ 81 - 0
ruoyi-modules/delivery-system/src/main/java/com/delivery/system/domain/School.java

@@ -0,0 +1,81 @@
+package com.delivery.system.domain;
+
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 学校类
+ *
+ * @author jty
+ */
+public class School extends BaseEntity {
+    Integer schoolId;
+    String schoolName;
+    String avatar;
+    Boolean status;
+    Integer delFlag;
+    String remark;
+
+    public Integer getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Integer schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getSchoolName() {
+        return schoolName;
+    }
+
+    public void setSchoolName(String schoolName) {
+        this.schoolName = schoolName;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public Boolean getStatus() {
+        return status;
+    }
+
+    public void setStatus(Boolean status) {
+        this.status = status;
+    }
+
+    public Integer getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(Integer delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    @Override
+    public String getRemark() {
+        return remark;
+    }
+
+    @Override
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("schoolId", schoolId)
+                .append("schoolName", schoolName)
+                .append("avatar", avatar)
+                .append("status", status)
+                .append("delFlag", delFlag)
+                .append("remark", remark)
+                .toString();
+    }
+}

+ 19 - 0
ruoyi-modules/delivery-system/src/main/java/com/delivery/system/domain/UserType.java

@@ -0,0 +1,19 @@
+package com.delivery.system.domain;
+
+public enum UserType {
+    consumer(100L),
+
+    shop(101L),
+
+    rider(102L);
+
+    private final Long id;
+
+    UserType(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+}

+ 3 - 0
ruoyi-modules/delivery-system/src/main/resources/banner.txt

@@ -0,0 +1,3 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
+Delivery-System Powered By RuoYi-Cloud

+ 25 - 0
ruoyi-modules/delivery-system/src/main/resources/bootstrap.yml

@@ -0,0 +1,25 @@
+# Tomcat
+server:
+  port: 9202
+
+# Spring
+spring: 
+  application:
+    # 应用名称
+    name: delivery-system
+  profiles:
+    # 环境配置
+    active: dev
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

+ 74 - 0
ruoyi-modules/delivery-system/src/main/resources/logback.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <!-- 日志存放路径 -->
+	<property name="log.path" value="logs/delivery-system" />
+   <!-- 日志输出格式 -->
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+    <!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
+
+    <!-- 系统日志输出 -->
+	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+	</appender>
+
+    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+			<!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 系统模块日志级别控制  -->
+	<logger name="com.ruoyi" level="info" />
+	<!-- Spring日志级别控制  -->
+	<logger name="org.springframework" level="warn" />
+
+	<root level="info">
+		<appender-ref ref="console" />
+	</root>
+	
+	<!--系统操作日志-->
+    <root level="info">
+        <appender-ref ref="file_info" />
+        <appender-ref ref="file_error" />
+    </root>
+</configuration>

+ 1 - 0
ruoyi-modules/pom.xml

@@ -13,6 +13,7 @@
         <module>ruoyi-gen</module>
         <module>ruoyi-job</module>
         <module>ruoyi-file</module>
+        <module>delivery-system</module>
     </modules>
 
     <artifactId>ruoyi-modules</artifactId>

+ 1 - 0
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java

@@ -1,5 +1,6 @@
 package com.ruoyi.system;
 
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import com.ruoyi.common.security.annotation.EnableCustomConfig;

+ 115 - 0
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserControllerFeign.java

@@ -0,0 +1,115 @@
+package com.ruoyi.system.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.InnerAuth;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.system.api.domain.SysRole;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.service.ISysDeptService;
+import com.ruoyi.system.service.ISysRoleService;
+import com.ruoyi.system.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 用户信息
+ *
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/userFeign")
+public class SysUserControllerFeign extends BaseController {
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private ISysDeptService deptService;
+
+    /**
+     * 注册用户信息
+     */
+    @InnerAuth
+    @PostMapping("/register")
+    @Log(title = "用户信息修改", businessType = BusinessType.INSERT)
+    public R<Boolean> register(@RequestBody SysUser sysUser) {
+        String username = sysUser.getUserName();
+
+        if (!userService.checkUserNameUnique(sysUser)) {
+            return R.fail("保存用户'" + username + "'失败,注册账号已存在");
+        }
+        sysUser.setDept(deptService.selectDeptById(sysUser.getDeptId()));
+        boolean ret = userService.registerUserWithRole(sysUser);
+        if (!ret) {
+            return R.fail("用户" + username + "注册失败");
+        }
+        return R.ok(true, "用户" + username + "注册成功");
+    }
+
+    /**
+     * 获取用户信息
+     *
+     * @return 用户信息
+     */
+    @InnerAuth
+    @GetMapping("getInfo")
+    public AjaxResult getInfo() {
+        SysUser user = userService.selectUserById(SecurityUtils.getUserId());
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("user", user);
+        return ajax;
+    }
+
+    @InnerAuth
+    @GetMapping("/{userId}")
+    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) {
+        userService.checkUserDataScope(userId);
+        AjaxResult ajax = AjaxResult.success();
+        if (StringUtils.isNotNull(userId)) {
+            SysUser sysUser = userService.selectUserById(userId);
+            ajax.put(AjaxResult.DATA_TAG, sysUser);
+        }
+        return ajax;
+    }
+
+    /**
+     * 修改用户
+     */
+    @Log(title = "用户信息修改", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysUser user) {
+        userService.checkUserAllowed(user);
+        userService.checkUserDataScope(user.getUserId());
+        if (user.getDeptId() != null || user.getRoleId() != null) {
+            return error("修改用户'" + user.getUserName() + "'失败,用户类型不可修改");
+        } else if (!userService.checkUserNameUnique(user)) {
+            return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
+        } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
+            return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) {
+            return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        user.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(userService.updateUser(user));
+    }
+
+    /**
+     * 重置密码
+     */
+    @PutMapping("/resetPwd")
+    public AjaxResult resetPwd(@RequestBody SysUser user) {
+        userService.checkUserAllowed(user);
+        userService.checkUserDataScope(user.getUserId());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(userService.resetPwd(user));
+    }
+}

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java

@@ -43,4 +43,12 @@ public class SysUserRole
             .append("roleId", getRoleId())
             .toString();
     }
+
+    public SysUserRole(Long userId, Long roleId) {
+        this.userId = userId;
+        this.roleId = roleId;
+    }
+
+    public SysUserRole() {
+    }
 }

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -203,4 +203,12 @@ public interface ISysUserService
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+    /**
+     * 注册用户信息
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    boolean registerUserWithRole(SysUser user);
 }

+ 24 - 0
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -4,6 +4,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.validation.Validator;
+
+import org.apache.ibatis.transaction.Transaction;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -542,4 +544,26 @@ public class SysUserServiceImpl implements ISysUserService
         return successMsg.toString();
     }
 
+    /**
+     * 注册用户信息
+     *
+     * @param user 用户信息
+     * @return 结果
+     */
+    @Override
+    public boolean registerUserWithRole(SysUser user) {
+        boolean ret = userMapper.insertUser(user) > 0;
+        if(!ret) {
+            throw new RuntimeException("注册用户失败!");
+        }
+
+        SysUser user1=userMapper.selectUserByUserName(user.getUserName());
+        List<SysUserRole> userRoles = new ArrayList<>();
+        userRoles.add(new SysUserRole(user.getUserId(),user.getRoleId()));
+        ret = userRoleMapper.batchUserRole(userRoles) > 0;
+        if (!ret){
+            throw new RuntimeException("注册用户角色失败!");
+        }
+        return ret;
+    }
 }