Browse Source

修改用户信息

master
Mac 2 months ago
parent
commit
d28150df60
  1. 1
      .gitignore
  2. 0
      log/logs/webapps/debug.log
  3. 0
      log/logs/webapps/error.log
  4. 0
      log/logs/webapps/info.log
  5. 5
      pom.xml
  6. 2
      src/main/java/com/water/watersys/WaterSysApplication.java
  7. 1
      src/main/java/com/water/watersys/components/GlobalExceptionHandler.java
  8. 6
      src/main/java/com/water/watersys/controller/LoginController.java
  9. 21
      src/main/java/com/water/watersys/controller/UserController.java
  10. 4
      src/main/java/com/water/watersys/mapper/UserSysMapper.java
  11. 10
      src/main/java/com/water/watersys/model/dto/ChangeUserInfo.java
  12. 3
      src/main/java/com/water/watersys/service/UserSysService.java
  13. 6
      src/main/java/com/water/watersys/service/impl/UserSysServiceImpl.java
  14. 3
      src/main/resources/application.yml
  15. 133
      src/main/resources/logback-spring.xml

1
.gitignore vendored

@ -4,6 +4,7 @@ target/
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath

0
log/logs/webapps/debug.log

0
log/logs/webapps/error.log

0
log/logs/webapps/info.log

5
pom.xml

@ -103,6 +103,11 @@
<version>3.5.11</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
</dependencies>
<build>

2
src/main/java/com/water/watersys/WaterSysApplication.java

@ -3,9 +3,9 @@ package com.water.watersys;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class WaterSysApplication {
public static void main(String[] args) {
SpringApplication.run(WaterSysApplication.class, args);
}

1
src/main/java/com/water/watersys/components/GlobalExceptionHandler.java

@ -21,7 +21,6 @@ public class GlobalExceptionHandler {
@ExceptionHandler
public SaResult notLoginException(NotLoginException e){
System.out.println(e.getMessage());
e.printStackTrace();
return SaResult.error(e.getMessage());
}

6
src/main/java/com/water/watersys/controller/LoginController.java

@ -9,6 +9,8 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@RestController
@CrossOrigin
@ -17,10 +19,13 @@ public class LoginController {
@Resource
private UserSysService userSysService;
static Logger logger= LoggerFactory.getLogger(LoginController.class);
@Operation(summary = "登录", description = "登录")
@PostMapping("/login")
public Result<String> login(@RequestBody LoginDto loginDto) {
Integer id = userSysService.login(loginDto);
logger.info("id:{}",id);
logger.info("loginDto:{}",loginDto);
if (id != 0) {
StpUtil.login(id);
return Result.success(StpUtil.getTokenValue());
@ -41,6 +46,7 @@ public class LoginController {
@PostMapping("/register")
public Result register(@RequestBody UserSys userSys) {
int index = userSysService.register(userSys);
logger.info("注册信息:{}",userSys);
if (index > 0) {
return Result.success(index);
}else {

21
src/main/java/com/water/watersys/controller/UserController.java

@ -3,12 +3,16 @@ package com.water.watersys.controller;
import cn.dev33.satoken.stp.StpUtil;
import com.water.watersys.components.Result;
import com.water.watersys.model.dto.ChangePassword;
import com.water.watersys.model.dto.ChangeUserInfo;
import com.water.watersys.model.vo.UserOv;
import com.water.watersys.service.UserSysService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@RestController
@CrossOrigin
@ -17,12 +21,15 @@ public class UserController {
@Resource
private UserSysService userSysService;
static Logger logger= LoggerFactory.getLogger(UserController.class);
@Operation(summary = "获取用户信息", description = "获取用户信息")
@GetMapping("/user")
public Result<UserOv> user() {
Object loginId = StpUtil.getLoginId();
UserOv userOv = userSysService.getUser((String) loginId);
logger.info("用户信息获取={}", userOv);
if (userOv != null) {
return Result.success(userOv);
}else {
@ -35,6 +42,7 @@ public class UserController {
public Result<String> changePassword(@RequestBody ChangePassword changePassword) {
String loginId = (String) StpUtil.getLoginId();
Integer id = userSysService.changePassword(changePassword,loginId);
logger.info("修改密码={}", id);
if (id != 0) {
return Result.success();
}else {
@ -54,5 +62,18 @@ public class UserController {
}
}
@Operation(summary = "修改用户信息", description = "修改用户信息")
@PutMapping("/changeUserInfo")
public Result<String> changeUserInfo(ChangeUserInfo changeUserInfo) {
String loginId = (String) StpUtil.getLoginId();
Integer id = userSysService.changeUserInfo(changeUserInfo,loginId);
if (id != 0) {
return Result.success();
}else {
return Result.createFail();
}
}
}

4
src/main/java/com/water/watersys/mapper/UserSysMapper.java

@ -2,6 +2,7 @@ package com.water.watersys.mapper;
import com.water.watersys.model.domain.UserSys;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.water.watersys.model.dto.ChangeUserInfo;
import com.water.watersys.model.vo.UserOv;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@ -20,6 +21,9 @@ public interface UserSysMapper extends BaseMapper<UserSys> {
@Update("UPDATE user_sys SET password = #{newPassword} WHERE id = #{id}")
Integer changePassword(Integer id, String newPassword);
@Update("UPDATE user_sys SET address = #{address},phone = #{phone},username = #{username} WHERE id = #{loginId}")
Integer changeUserInfo(ChangeUserInfo changeUserInfo, String loginId);
}

10
src/main/java/com/water/watersys/model/dto/ChangeUserInfo.java

@ -0,0 +1,10 @@
package com.water.watersys.model.dto;
import lombok.Data;
@Data
public class ChangeUserInfo {
private String address;
private String phone;
private String username;
}

3
src/main/java/com/water/watersys/service/UserSysService.java

@ -3,6 +3,7 @@ package com.water.watersys.service;
import com.water.watersys.model.domain.UserSys;
import com.baomidou.mybatisplus.extension.service.IService;
import com.water.watersys.model.dto.ChangePassword;
import com.water.watersys.model.dto.ChangeUserInfo;
import com.water.watersys.model.dto.LoginDto;
import com.water.watersys.model.vo.UserOv;
import org.springframework.stereotype.Service;
@ -24,4 +25,6 @@ public interface UserSysService extends IService<UserSys> {
Integer changePassword(ChangePassword changePassword, String loginId);
Integer changeUserStatus(Integer status, String loginId);
Integer changeUserInfo(ChangeUserInfo changeUserInfo, String loginId);
}

6
src/main/java/com/water/watersys/service/impl/UserSysServiceImpl.java

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.water.watersys.model.domain.UserSys;
import com.water.watersys.mapper.UserSysMapper;
import com.water.watersys.model.dto.ChangePassword;
import com.water.watersys.model.dto.ChangeUserInfo;
import com.water.watersys.model.dto.LoginDto;
import com.water.watersys.model.vo.UserOv;
import com.water.watersys.service.UserSysService;
@ -77,6 +78,11 @@ public class UserSysServiceImpl extends ServiceImpl<UserSysMapper, UserSys>
return userSysMapper.update(null, lambdaUpdateWrapper);
}
@Override
public Integer changeUserInfo(ChangeUserInfo changeUserInfo, String loginId) {
return userSysMapper.changeUserInfo(changeUserInfo,loginId);
}
}

3
src/main/resources/application.yml

@ -36,3 +36,6 @@ springdoc:
url: /v3/api-docs # ????????

133
src/main/resources/logback-spring.xml

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置文件每隔1分钟,就检查更新 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 定义参数常量,便于后面直接用${name}来获取value值 -->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%-5level] %logger{50} - %msg%n"/>
<!--<property name="log.filePath" value="${catalina.base}/logs/webapps"/>-->
<property name="log.filePath" value="log/logs/webapps"/>
<property name="log.maxHistory" value="30"/>
<!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!-- 过去使用layout,现在都推荐使用encoder
作用一:将日志信息转换(格式化)为字符串
作用二:然后写入到文件中-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- ch.qos.logback.core.rolling.RollingFileAppender 文件日志输出到文件 -->
<!-- 1.打印debug级别日志的设置 -->
<appender name="debugAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 例如当天,也就是今天是2020-2-10,那么在这天生成的日志文件路径为${log.filePath}/debug.log
接着到了明天,也就是2019-2-11,这天生成的日志文件路径为${log.filePath}/debug.log,
但昨天2020-2-10,生成的日志文件路径就变为${log.filePath}/debug/debug-2020-2-10.log.gz(压缩文件) -->
<!-- 当天生成的日志文件的路径 -->
<file>${log.filePath}/debug.log</file>
<!-- 设置基于时间(每天)的滚动策略,也就是将日志内容按照日期来写入到相应的文件中-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 当天之前的每天生成的日志文件的路径 -->
<fileNamePattern>${log.filePath}/debug/debug-%d{yyyy-MM-dd}.log.gz
</fileNamePattern>
<!-- 最大历史保存文件的数量,只保存最近30天的日志文件,超出的会被删除-->
<maxHistory>${log.maxHistory}</maxHistory>
</rollingPolicy>
<!-- 过去使用layout,现在都推荐使用encoder
作用一:将日志信息转换(格式化)为字符串
作用二:然后写入到文件中-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!-- 过滤掉非debug级别的信息 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<!-- 作用是拒绝写入所有与<level>不匹配的日志信息,
也就是非debug级别的日志信息都不会被写入到日志文件中 -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 2.打印info级别日志的设置 -->
<appender name="infoAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 当天生成的日志文件的路径 -->
<file>${log.filePath}/info.log</file>
<!-- 设置基于时间(每天)的滚动策略,也就是将日志内容按照日期来写入到相应的文件中-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 当天之前的每天生成的日志文件的路径 -->
<fileNamePattern>${log.filePath}/info/info-%d{yyyy-MM-dd}.log.gz
</fileNamePattern>
<!-- 最大历史保存文件的数量,只保存最近30天的日志文件,超出的会被删除-->
<maxHistory>${log.maxHistory}</maxHistory>
</rollingPolicy>
<!-- 过去使用layout,现在都推荐使用encoder
作用一:将日志信息转换(格式化)为字符串
作用二:然后写入到文件中-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!-- 过滤掉非info级别的信息 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<!-- 作用是拒绝写入所有与<level>不匹配的日志信息,
也就是非info级别的日志信息都不会被写入到日志文件中 -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 3.打印error级别日志的设置 -->
<appender name="errorAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 当天生成的日志文件的路径 -->
<file>${log.filePath}/error.log</file>
<!-- 设置基于时间(每天)的滚动策略,也就是将日志内容按照日期来写入到相应的文件中-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 当天之前的每天生成的日志文件的路径 -->
<fileNamePattern>${log.filePath}/error/error-%d{yyyy-MM-dd}.log.gz
</fileNamePattern>
<!-- 最大历史保存文件的数量,只保存最近30天的日志文件,超出的会被删除-->
<maxHistory>${log.maxHistory}</maxHistory>
</rollingPolicy>
<!-- 过去使用layout,现在都推荐使用encoder
作用一:将日志信息转换(格式化)为字符串
作用二:然后写入到文件中-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!-- 过滤掉非error级别的信息 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<!-- 作用是拒绝写入所有与<level>不匹配的日志信息,
也就是非error级别的日志信息都不会被写入到日志文件中 -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 监听com.paopaoedu.springboot包下所有类产生的日志信息
不设置additivity属性,那么默认additivity = true,表示会继承父级(在这里它的父级只有root一个),
也就是会将日志信息也输出在控制台,但级别会覆盖父级的级别,也就是在控制台会输出debug级别及以上的日志信息 -->
<logger name="com.paopaoedu.springboot" level="debug">
<!-- 表示按照debugAppender的设置去打印日志 -->
<appender-ref ref="debugAppender"/>
<!-- 表示按照infoAppender的设置去打印日志 -->
<appender-ref ref="infoAppender"/>
<!-- 表示按照errorAppender的设置去打印日志 -->
<appender-ref ref="errorAppender"/>
</logger>
<!-- 也是一种<logger>,是所有<logger>的父级 -->
<!-- 不设置additivity属性,或者设置additivity = true的<logger>,会继承root的子标签<appender-ref ref="console" />的设置,
将它自己设置的level属性级别及以上的日志打印到控制台 -->
<root level="info">
<!-- 表示按照console的设置去输出日志到控制台 -->
<appender-ref ref="console"/>
</root>
</configuration>
Loading…
Cancel
Save