8.2 编辑资料bug

This commit is contained in:
zhangsan 2025-08-02 22:19:37 +08:00
parent da05f9ecab
commit 32191d2e7e
11 changed files with 196 additions and 160 deletions

View File

@ -33,6 +33,7 @@ services:
- ./mysql/my.cnf:/etc/mysql/conf.d/mysql.cnf:ro - ./mysql/my.cnf:/etc/mysql/conf.d/mysql.cnf:ro
# 初始化脚本只读也没问题 ✅ # 初始化脚本只读也没问题 ✅
- ./mysql/sql:/docker-entrypoint-initdb.d:ro - ./mysql/sql:/docker-entrypoint-initdb.d:ro
- ./mysql/data:/var/lib/mysql
healthcheck: healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s interval: 5s
@ -73,7 +74,7 @@ services:
redis: redis:
condition: service_healthy condition: service_healthy
environment: # ← 推荐通过环境变量注入容器名而非 localhost environment: # ← 推荐通过环境变量注入容器名而非 localhost
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/smile-picture?useSSL=false&serverTimezone=Asia/Shanghai SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/smile-picture?useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=false
ports: ports:
- "8096:8096" - "8096:8096"
networks: [smile-picture-network] networks: [smile-picture-network]

View File

@ -15,6 +15,7 @@ create table if not exists user
user_profile varchar(512) null comment '用户简介', user_profile varchar(512) null comment '用户简介',
user_role varchar(256) default 'user' not null comment '用户角色user/admin', user_role varchar(256) default 'user' not null comment '用户角色user/admin',
user_email varchar(256) not null COMMENT '用户邮箱', user_email varchar(256) not null COMMENT '用户邮箱',
birthday DATE NULL DEFAULT NULL COMMENT '出生日期',
user_phone VARCHAR(50) NULL DEFAULT NULL COMMENT '用户手机号', user_phone VARCHAR(50) NULL DEFAULT NULL COMMENT '用户手机号',
edit_time datetime default CURRENT_TIMESTAMP not null comment '编辑时间', edit_time datetime default CURRENT_TIMESTAMP not null comment '编辑时间',
create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间',
@ -23,7 +24,7 @@ create table if not exists user
UNIQUE KEY uk_userAccount (user_account), UNIQUE KEY uk_userAccount (user_account),
INDEX idx_userName (user_name), INDEX idx_userName (user_name),
UNIQUE INDEX uk_user_email (user_email ASC) USING BTREE, UNIQUE INDEX uk_user_email (user_email ASC) USING BTREE,
UNIQUE INDEX uk_user_phone (user_phone ASC) USING BTREE, UNIQUE INDEX uk_user_phone (user_phone ASC) USING BTREE
) comment '用户' collate = utf8mb4_unicode_ci; ) comment '用户' collate = utf8mb4_unicode_ci;
-- 图片表 -- 图片表

View File

@ -1 +1 @@
import{_ as o,c as s,a as t,o as a}from"./index-CrUyCRGJ.js";const n={},c={class:"about"};function r(_,e){return a(),s("div",c,e[0]||(e[0]=[t("h1",null,"This is an about page",-1)]))}const l=o(n,[["render",r]]);export{l as default}; import{_ as o,c as s,a as t,o as a}from"./index-CzJ9mX-e.js";const n={},c={class:"about"};function r(_,e){return a(),s("div",c,e[0]||(e[0]=[t("h1",null,"This is an about page",-1)]))}const l=o(n,[["render",r]]);export{l as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -6,8 +6,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Smile云图库</title> <title>Smile云图库</title>
<meta name="description" content="Smile云图库海量图片素材免费获取"> <meta name="description" content="Smile云图库海量图片素材免费获取">
<script type="module" crossorigin src="/assets/index-Wpj-tH9k.js"></script> <script type="module" crossorigin src="/assets/index-CzJ9mX-e.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-D39s5k2B.css"> <link rel="stylesheet" crossorigin href="/assets/index-URLOKQOW.css">
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate;
import java.util.Date; import java.util.Date;
/** /**
@ -39,6 +40,11 @@ public class User implements Serializable {
*/ */
private String userName; private String userName;
/**
* 生日
*/
private LocalDate birthday;
/** /**
* 用户手机号 * 用户手机号
*/ */

View File

@ -285,7 +285,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
@Override @Override
public void editUserPassword(UserEditPasswordRequest userEditPasswordRequest,HttpServletRequest request) { public void editUserPassword(UserEditPasswordRequest userEditPasswordRequest,HttpServletRequest request) {
User loginUser = this.getLoginUser(request); User loginUser = this.getLoginUser(request);
if (!passwordEncoder.matches(loginUser.getUserPassword(), userEditPasswordRequest.getOriginPassword())) { log.info(loginUser.toString());
if (!passwordEncoder.matches(userEditPasswordRequest.getOriginPassword(),loginUser.getUserPassword())) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "原密码错误"); throw new BusinessException(ErrorCode.PARAMS_ERROR, "原密码错误");
} }
User user=new User(); User user=new User();
@ -323,7 +324,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
@Override @Override
public String uploadAvatar(MultipartFile avatarFile) { public String uploadAvatar(MultipartFile avatarFile) {
long userId = StpUtil.getLoginIdAsLong(); long userId = StpKit.SPACE.getLoginIdAsLong();
String pathPrefix = "avatar/" + userId + "/"; String pathPrefix = "avatar/" + userId + "/";
// 调用上传图片 // 调用上传图片
UploadPictureResult uploadPictureResult = uploadPictureFile.uploadPicture(avatarFile, pathPrefix); UploadPictureResult uploadPictureResult = uploadPictureFile.uploadPicture(avatarFile, pathPrefix);

View File

@ -11,6 +11,7 @@
<result property="userPhone" column="user_phone" jdbcType="VARCHAR"/> <result property="userPhone" column="user_phone" jdbcType="VARCHAR"/>
<result property="userName" column="user_name" jdbcType="VARCHAR"/> <result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="userEmail" column="user_email" jdbcType="VARCHAR"/> <result property="userEmail" column="user_email" jdbcType="VARCHAR"/>
<result property="birthday" column="birthday" jdbcType="VARCHAR"/>
<result property="userAvatar" column="user_avatar" jdbcType="VARCHAR"/> <result property="userAvatar" column="user_avatar" jdbcType="VARCHAR"/>
<result property="userProfile" column="user_profile" jdbcType="VARCHAR"/> <result property="userProfile" column="user_profile" jdbcType="VARCHAR"/>
<result property="userRole" column="user_role" jdbcType="VARCHAR"/> <result property="userRole" column="user_role" jdbcType="VARCHAR"/>
@ -21,7 +22,7 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,user_account,user_password,user_phone, id,user_account,user_password,user_phone,birthday,
user_name,user_emial,user_avatar,user_profile, user_name,user_emial,user_avatar,user_profile,
user_role,edit_time,create_time, user_role,edit_time,create_time,
update_time,is_delete update_time,is_delete

View File

@ -0,0 +1,26 @@
package edu.whut.smilepicturebackend;
import edu.whut.smilepicturebackend.exception.BusinessException;
import edu.whut.smilepicturebackend.exception.ErrorCode;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import javax.annotation.Resource;
@SpringBootTest
public class PasswordEncoderTest {
@Resource
private BCryptPasswordEncoder passwordEncoder;
@Test
public void testEncodeAndMatch() {
String db_password="$2a$12$UkjfiognXnI0Kv5t3oUNaunVVbsEakMXyzeXjeMO84B/PzuurnsD6";
String password="12345678";
// 原始明文
if (!passwordEncoder.matches(password, db_password)) {
System.out.println("no");
}
System.out.println("yes");
}
}