mirror of
https://gitee.com/coder-xiaomo/flashsale
synced 2025-01-25 19:00:25 +08:00
添加用户注册功能;Encrpt修改为Encrypt;添加填充测试数据
This commit is contained in:
parent
54144d49c1
commit
a02d930f11
@ -11,7 +11,7 @@
|
|||||||
Target Server Version : 50726
|
Target Server Version : 50726
|
||||||
File Encoding : 65001
|
File Encoding : 65001
|
||||||
|
|
||||||
Date: 01/03/2022 17:01:05
|
Date: 02/03/2022 10:30:12
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SET NAMES utf8mb4;
|
SET NAMES utf8mb4;
|
||||||
@ -42,13 +42,13 @@ INSERT INTO `user_info` VALUES (1, 'admin', 2, 18, '110', 'phone', '');
|
|||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `user_password`;
|
DROP TABLE IF EXISTS `user_password`;
|
||||||
CREATE TABLE `user_password` (
|
CREATE TABLE `user_password` (
|
||||||
`id` int(11) NOT NULL,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
`encrpt_password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
|
`encrypt_password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
|
||||||
`user_id` int(11) NOT NULL DEFAULT 0,
|
`user_id` int(11) NOT NULL DEFAULT 0,
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
INDEX `user_id`(`user_id`) USING BTREE,
|
INDEX `user_id`(`user_id`) USING BTREE,
|
||||||
CONSTRAINT `user_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
CONSTRAINT `user_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of user_password
|
-- Records of user_password
|
||||||
|
22
README.md
22
README.md
@ -12,28 +12,6 @@
|
|||||||
|
|
||||||
> 用户名密码均为 `admin`
|
> 用户名密码均为 `admin`
|
||||||
|
|
||||||
### 本次修改通过以下方式查看👇
|
|
||||||
|
|
||||||
> http://localhost:8090/user/getotp?telephone=1
|
|
||||||
|
|
||||||
预期效果:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{"data":null,"status":"success"}
|
|
||||||
```
|
|
||||||
|
|
||||||
控制台:
|
|
||||||
```sql
|
|
||||||
telephone = 1 & otpCode = 90824
|
|
||||||
```
|
|
||||||
|
|
||||||
> http://localhost:8090/user/get?id=2
|
|
||||||
|
|
||||||
预期效果:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{"data":{"errCode":10002,"errMsg":"未知错误"},"status":"fail"}
|
|
||||||
```
|
|
||||||
### 层次结构(以User为例,自上向下)
|
### 层次结构(以User为例,自上向下)
|
||||||
|
|
||||||
| | 目录 | Java对象类型 | 说明 | 举例 |
|
| | 目录 | Java对象类型 | 说明 | 举例 |
|
||||||
|
@ -21,6 +21,12 @@
|
|||||||
<button class="btn blue" id="getotp" type="submit">
|
<button class="btn blue" id="getotp" type="submit">
|
||||||
获取OTP短信
|
获取OTP短信
|
||||||
</button>
|
</button>
|
||||||
|
<a href="register.html">用户注册</a>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<button class="btn blue" id="fillData">
|
||||||
|
快速测试
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -39,9 +45,11 @@
|
|||||||
data: {
|
data: {
|
||||||
"telephone": telephone,
|
"telephone": telephone,
|
||||||
},
|
},
|
||||||
|
xhrFields: {withCredentials: true},
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data.status == "success") {
|
if (data.status == "success") {
|
||||||
alert("OTP已经发送到了您的手机上,请注意查收");
|
alert("OTP已经发送到了您的手机上,请注意查收");
|
||||||
|
window.location.href = "./register.html";
|
||||||
} else {
|
} else {
|
||||||
alert("OTP发送失败,原因为" + data.data.errMsg);
|
alert("OTP发送失败,原因为" + data.data.errMsg);
|
||||||
}
|
}
|
||||||
@ -51,6 +59,18 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$("#fillData").on("click", function () {
|
||||||
|
$("#telephone").val("18900000001");
|
||||||
|
$("#telephone").attr("disabled", true);
|
||||||
|
// 屏蔽弹窗
|
||||||
|
alert = function () {};
|
||||||
|
$("#getotp").click();
|
||||||
|
})
|
||||||
|
|
||||||
|
if(location.search=="?quickDebug") {
|
||||||
|
$("#fillData").click();
|
||||||
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
132
frontend/register.html
Normal file
132
frontend/register.html
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Title</title>
|
||||||
|
<link href="static/assets/global/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="static/assets/global/css/components.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="static/assets/admin/pages/css/login.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script src="./static/assets/global/plugins/jquery-1.11.0.min.js" type="text/javascript"></script>
|
||||||
|
</head>
|
||||||
|
<body class="login">
|
||||||
|
<div class="content">
|
||||||
|
<h3 class="form-title">用户注册</h3>
|
||||||
|
<div class="from-group">
|
||||||
|
<label class="control-label">手机号</label>
|
||||||
|
<div>
|
||||||
|
<input class="form-control" type="text" placeholder="手机号" name="telephone" id="telephone">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="from-group">
|
||||||
|
<label class="control-label">验证码</label>
|
||||||
|
<div>
|
||||||
|
<input class="form-control" type="text" placeholder="验证码" name="optCode" id="optCode">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="from-group">
|
||||||
|
<label class="control-label">用户昵称</label>
|
||||||
|
<div>
|
||||||
|
<input class="form-control" type="text" placeholder="用户昵称" name="name" id="name">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="from-group">
|
||||||
|
<label class="control-label">性别</label>
|
||||||
|
<div>
|
||||||
|
<input class="form-control" type="text" placeholder="性别" name="gender" id="gender">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="from-group">
|
||||||
|
<label class="control-label">年龄</label>
|
||||||
|
<div>
|
||||||
|
<input class="form-control" type="text" placeholder="年龄" name="age" id="age">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="from-group">
|
||||||
|
<label class="control-label">密码</label>
|
||||||
|
<div>
|
||||||
|
<input class="form-control" type="password" placeholder="密码" name="password" id="password">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-actions">
|
||||||
|
<button class="btn blue" id="register" type="submit">
|
||||||
|
提交注册
|
||||||
|
</button>
|
||||||
|
<a href="getotp.html?quickDebug">获取验证码</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
jQuery(document).ready(function () {
|
||||||
|
$("#register").on("click", function () {
|
||||||
|
var telephone = $("#telephone").val();
|
||||||
|
var optCode = $("#optCode").val();
|
||||||
|
var name = $("#name").val();
|
||||||
|
var gender = $("#gender").val();
|
||||||
|
var age = $("#age").val();
|
||||||
|
var password = $("#password").val();
|
||||||
|
if (telephone == null || telephone == "") {
|
||||||
|
alert("手机号不能为空");
|
||||||
|
return false; // 捕获onclick事件,不让他传递到上一层
|
||||||
|
}
|
||||||
|
if (optCode == null || optCode == "") {
|
||||||
|
alert("验证码不能为空");
|
||||||
|
return false; // 捕获onclick事件,不让他传递到上一层
|
||||||
|
}
|
||||||
|
if (name == null || name == "") {
|
||||||
|
alert("姓名不能为空");
|
||||||
|
return false; // 捕获onclick事件,不让他传递到上一层
|
||||||
|
}
|
||||||
|
if (gender == null || gender == "") {
|
||||||
|
alert("性别不能为空");
|
||||||
|
return false; // 捕获onclick事件,不让他传递到上一层
|
||||||
|
}
|
||||||
|
if (age == null || age == "") {
|
||||||
|
alert("年龄不能为空");
|
||||||
|
return false; // 捕获onclick事件,不让他传递到上一层
|
||||||
|
}
|
||||||
|
if (password == null || password == "") {
|
||||||
|
alert("密码不能为空");
|
||||||
|
return false; // 捕获onclick事件,不让他传递到上一层
|
||||||
|
}
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
contentType: "application/x-www-form-urlencoded",
|
||||||
|
url: "http://localhost:8090/user/register",
|
||||||
|
data: {
|
||||||
|
"telephone": telephone,
|
||||||
|
"optCode": optCode,
|
||||||
|
"name": name,
|
||||||
|
"gender": gender,
|
||||||
|
"age": age,
|
||||||
|
"password": password,
|
||||||
|
},
|
||||||
|
xhrFields: {withCredentials: true},
|
||||||
|
success: function (data) {
|
||||||
|
if (data.status == "success") {
|
||||||
|
alert("注册成功");
|
||||||
|
} else {
|
||||||
|
alert("注册失败,原因为" + data.data.errMsg);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
alert("注册失败,原因为" + data.responseText);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
function filldata() {
|
||||||
|
$("#telephone").val("18900000001");
|
||||||
|
var date = new Date();
|
||||||
|
$("#name").val("user-" + Math.random().toString(36).slice(-6) + "-" + date.getSeconds() + date.getMilliseconds());
|
||||||
|
$("#gender").val(Math.round(Math.random() * (2 - 1) + 1));
|
||||||
|
$("#age").val(Math.round(Math.random() * (100 - 1) + 1));
|
||||||
|
$("#password").val(Math.random().toString(36).slice(-6)); // 生成随机数转成36进制,再截取部分
|
||||||
|
$("#optCode").focus();
|
||||||
|
$("#getotp").click();
|
||||||
|
}
|
||||||
|
|
||||||
|
filldata();
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -6,19 +6,22 @@ import com.cxyxiaomo.flashsale.error.EmBusinessError;
|
|||||||
import com.cxyxiaomo.flashsale.response.CommonReturnType;
|
import com.cxyxiaomo.flashsale.response.CommonReturnType;
|
||||||
import com.cxyxiaomo.flashsale.service.UserService;
|
import com.cxyxiaomo.flashsale.service.UserService;
|
||||||
import com.cxyxiaomo.flashsale.service.model.UserModel;
|
import com.cxyxiaomo.flashsale.service.model.UserModel;
|
||||||
import org.apache.tomcat.util.security.MD5Encoder;
|
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import sun.misc.BASE64Encoder;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
|
||||||
@Controller("user") // 允许被SpringBoot扫描到
|
@Controller("user") // 允许被SpringBoot扫描到
|
||||||
@RequestMapping("/user") // 通过 "/user" 访问到
|
@RequestMapping("/user") // 通过 "/user" 访问到
|
||||||
@CrossOrigin // 允许跨域
|
@CrossOrigin(allowCredentials = "true", allowedHeaders = "*") // 允许跨域
|
||||||
public class UserController extends BaseController {
|
public class UserController extends BaseController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -35,26 +38,35 @@ public class UserController extends BaseController {
|
|||||||
@RequestParam(name = "name") String name,
|
@RequestParam(name = "name") String name,
|
||||||
@RequestParam(name = "gender") Integer gender,
|
@RequestParam(name = "gender") Integer gender,
|
||||||
@RequestParam(name = "age") Integer age,
|
@RequestParam(name = "age") Integer age,
|
||||||
@RequestParam(name = "password") String password) throws BusinessException {
|
@RequestParam(name = "password") String password) throws BusinessException, UnsupportedEncodingException, NoSuchAlgorithmException {
|
||||||
// 验证手机号和对应的otpcode相符合
|
// 验证手机号和对应的otpcode相符合
|
||||||
String inSessionOtpCode = (String) this.httpServletRequest.getSession().getAttribute(telephone);
|
String inSessionOtpCode = (String) this.httpServletRequest.getSession().getAttribute(telephone);
|
||||||
if (com.alibaba.druid.util.StringUtils.equals(otpCode, inSessionOtpCode)) {
|
if (!com.alibaba.druid.util.StringUtils.equals(otpCode, inSessionOtpCode)) {
|
||||||
throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR, "短信验证码不符合");
|
throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR, "短信验证码不符合");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 用户的注册流程
|
// 用户的注册流程
|
||||||
UserModel userModel = new UserModel();
|
UserModel userModel = new UserModel();
|
||||||
userModel.setName(name);
|
userModel.setName(name);
|
||||||
userModel.setGender(gender);
|
userModel.setGender(new Byte(String.valueOf(gender.intValue())));
|
||||||
userModel.setAge(age);
|
userModel.setAge(age);
|
||||||
userModel.setTelephone(telephone);
|
userModel.setTelephone(telephone);
|
||||||
userModel.setRegisterMode("phone");
|
userModel.setRegisterMode("phone");
|
||||||
userModel.setEncryptPassword(MD5Encoder.encode(password.getBytes()));
|
userModel.setEncryptPassword(this.EncodeByMD5(password));
|
||||||
|
|
||||||
userService.register(userModel);
|
userService.register(userModel);
|
||||||
return CommonReturnType.create(null);
|
return CommonReturnType.create(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String EncodeByMD5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
|
||||||
|
// 确定一个计算方法
|
||||||
|
MessageDigest md5 = MessageDigest.getInstance("MD5");
|
||||||
|
BASE64Encoder base64Encoder = new BASE64Encoder();
|
||||||
|
// 加密字符串
|
||||||
|
String newstr = base64Encoder.encode(md5.digest(str.getBytes("utf-8")));
|
||||||
|
return newstr;
|
||||||
|
}
|
||||||
|
|
||||||
// 用户获取OTP短信接口
|
// 用户获取OTP短信接口
|
||||||
@RequestMapping(value = "/getotp", method = {RequestMethod.POST}, consumes = {CONTENT_TYPE_FORMED})
|
@RequestMapping(value = "/getotp", method = {RequestMethod.POST}, consumes = {CONTENT_TYPE_FORMED})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
|
@ -13,11 +13,11 @@ public class UserPasswordDO {
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* This field was generated by MyBatis Generator.
|
* This field was generated by MyBatis Generator.
|
||||||
* This field corresponds to the database column user_password.encrpt_password
|
* This field corresponds to the database column user_password.encrypt_password
|
||||||
*
|
*
|
||||||
* @mbg.generated Tue Mar 01 14:58:29 CST 2022
|
* @mbg.generated Tue Mar 01 14:58:29 CST 2022
|
||||||
*/
|
*/
|
||||||
private String encrptPassword;
|
private String encryptPassword;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -54,26 +54,26 @@ public class UserPasswordDO {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This method was generated by MyBatis Generator.
|
* This method was generated by MyBatis Generator.
|
||||||
* This method returns the value of the database column user_password.encrpt_password
|
* This method returns the value of the database column user_password.encrypt_password
|
||||||
*
|
*
|
||||||
* @return the value of user_password.encrpt_password
|
* @return the value of user_password.encrypt_password
|
||||||
*
|
*
|
||||||
* @mbg.generated Tue Mar 01 14:58:29 CST 2022
|
* @mbg.generated Tue Mar 01 14:58:29 CST 2022
|
||||||
*/
|
*/
|
||||||
public String getEncrptPassword() {
|
public String getEncryptPassword() {
|
||||||
return encrptPassword;
|
return encryptPassword;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method was generated by MyBatis Generator.
|
* This method was generated by MyBatis Generator.
|
||||||
* This method sets the value of the database column user_password.encrpt_password
|
* This method sets the value of the database column user_password.encrypt_password
|
||||||
*
|
*
|
||||||
* @param encrptPassword the value for user_password.encrpt_password
|
* @param encryptPassword the value for user_password.encrypt_password
|
||||||
*
|
*
|
||||||
* @mbg.generated Tue Mar 01 14:58:29 CST 2022
|
* @mbg.generated Tue Mar 01 14:58:29 CST 2022
|
||||||
*/
|
*/
|
||||||
public void setEncrptPassword(String encrptPassword) {
|
public void setEncryptPassword(String encryptPassword) {
|
||||||
this.encrptPassword = encrptPassword == null ? null : encrptPassword.trim();
|
this.encryptPassword = encryptPassword == null ? null : encryptPassword.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -47,9 +47,12 @@ public class UserServiceImpl implements UserService {
|
|||||||
|| StringUtils.isEmpty(userModel.getTelephone())) {
|
|| StringUtils.isEmpty(userModel.getTelephone())) {
|
||||||
throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR);
|
throw new BusinessException(EmBusinessError.PARAMETER_VALIDATION_ERROR);
|
||||||
}
|
}
|
||||||
UserDO userDO = new UserDO();
|
|
||||||
userDOMapper.insertSelective(userDO);
|
|
||||||
// 实现 model -> dataobject 方法
|
// 实现 model -> dataobject 方法
|
||||||
|
UserDO userDO = convertFormModel(userModel);
|
||||||
|
userDOMapper.insertSelective(userDO);
|
||||||
|
|
||||||
|
userModel.setId(userDO.getId());
|
||||||
|
|
||||||
UserPasswordDO userPasswordDO = convertPasswordFormModel(userModel);
|
UserPasswordDO userPasswordDO = convertPasswordFormModel(userModel);
|
||||||
userPasswordDOMapper.insertSelective(userPasswordDO);
|
userPasswordDOMapper.insertSelective(userPasswordDO);
|
||||||
@ -67,7 +70,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
BeanUtils.copyProperties(userDO, userModel);
|
BeanUtils.copyProperties(userDO, userModel);
|
||||||
if (userDO != null) {
|
if (userDO != null) {
|
||||||
// 不可再使用copyProperties,因为里面id字段是重复的
|
// 不可再使用copyProperties,因为里面id字段是重复的
|
||||||
userModel.setEncryptPassword(userPasswordDO.getEncrptPassword());
|
userModel.setEncryptPassword(userPasswordDO.getEncryptPassword());
|
||||||
}
|
}
|
||||||
|
|
||||||
return userModel;
|
return userModel;
|
||||||
@ -88,7 +91,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
UserPasswordDO userPasswordDO = new UserPasswordDO();
|
UserPasswordDO userPasswordDO = new UserPasswordDO();
|
||||||
userPasswordDO.setEncrptPassword(userModel.getEncryptPassword());
|
userPasswordDO.setEncryptPassword(userModel.getEncryptPassword());
|
||||||
userPasswordDO.setUserId(userModel.getId());
|
userPasswordDO.setUserId(userModel.getId());
|
||||||
|
|
||||||
return userPasswordDO;
|
return userPasswordDO;
|
||||||
|
@ -4,7 +4,7 @@ server.port=8090
|
|||||||
mybatis.mapperLocations=classpath:mapping/*.xml
|
mybatis.mapperLocations=classpath:mapping/*.xml
|
||||||
|
|
||||||
spring.datasource.name=flashsale
|
spring.datasource.name=flashsale
|
||||||
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/flashsale
|
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/flashsale?useSSL=false
|
||||||
spring.datasource.username=root
|
spring.datasource.username=root
|
||||||
spring.datasource.password=111111
|
spring.datasource.password=111111
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
#{age,jdbcType=INTEGER}, #{telephone,jdbcType=VARCHAR}, #{registerMode,jdbcType=VARCHAR},
|
#{age,jdbcType=INTEGER}, #{telephone,jdbcType=VARCHAR}, #{registerMode,jdbcType=VARCHAR},
|
||||||
#{thirdPartyId,jdbcType=VARCHAR})
|
#{thirdPartyId,jdbcType=VARCHAR})
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertSelective" parameterType="com.cxyxiaomo.flashsale.dataobject.UserDO">
|
<insert id="insertSelective" parameterType="com.cxyxiaomo.flashsale.dataobject.UserDO" keyProperty="id" useGeneratedKeys="true">
|
||||||
<!--
|
<!--
|
||||||
WARNING - @mbg.generated
|
WARNING - @mbg.generated
|
||||||
This element is automatically generated by MyBatis Generator, do not modify.
|
This element is automatically generated by MyBatis Generator, do not modify.
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
This element was generated on Tue Mar 01 14:58:29 CST 2022.
|
This element was generated on Tue Mar 01 14:58:29 CST 2022.
|
||||||
-->
|
-->
|
||||||
<id column="id" jdbcType="INTEGER" property="id" />
|
<id column="id" jdbcType="INTEGER" property="id" />
|
||||||
<result column="encrpt_password" jdbcType="VARCHAR" property="encrptPassword" />
|
<result column="encrypt_password" jdbcType="VARCHAR" property="encryptPassword" />
|
||||||
<result column="user_id" jdbcType="INTEGER" property="userId" />
|
<result column="user_id" jdbcType="INTEGER" property="userId" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
@ -17,7 +17,7 @@
|
|||||||
This element is automatically generated by MyBatis Generator, do not modify.
|
This element is automatically generated by MyBatis Generator, do not modify.
|
||||||
This element was generated on Tue Mar 01 14:58:29 CST 2022.
|
This element was generated on Tue Mar 01 14:58:29 CST 2022.
|
||||||
-->
|
-->
|
||||||
id, encrpt_password, user_id
|
id, encrypt_password, user_id
|
||||||
</sql>
|
</sql>
|
||||||
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
|
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
|
||||||
<!--
|
<!--
|
||||||
@ -51,9 +51,9 @@
|
|||||||
This element is automatically generated by MyBatis Generator, do not modify.
|
This element is automatically generated by MyBatis Generator, do not modify.
|
||||||
This element was generated on Tue Mar 01 14:58:29 CST 2022.
|
This element was generated on Tue Mar 01 14:58:29 CST 2022.
|
||||||
-->
|
-->
|
||||||
insert into user_password (id, encrpt_password, user_id
|
insert into user_password (id, encrypt_password, user_id
|
||||||
)
|
)
|
||||||
values (#{id,jdbcType=INTEGER}, #{encrptPassword,jdbcType=VARCHAR}, #{userId,jdbcType=INTEGER}
|
values (#{id,jdbcType=INTEGER}, #{encryptPassword,jdbcType=VARCHAR}, #{userId,jdbcType=INTEGER}
|
||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertSelective" parameterType="com.cxyxiaomo.flashsale.dataobject.UserPasswordDO">
|
<insert id="insertSelective" parameterType="com.cxyxiaomo.flashsale.dataobject.UserPasswordDO">
|
||||||
@ -67,8 +67,8 @@
|
|||||||
<if test="id != null">
|
<if test="id != null">
|
||||||
id,
|
id,
|
||||||
</if>
|
</if>
|
||||||
<if test="encrptPassword != null">
|
<if test="encryptPassword != null">
|
||||||
encrpt_password,
|
encrypt_password,
|
||||||
</if>
|
</if>
|
||||||
<if test="userId != null">
|
<if test="userId != null">
|
||||||
user_id,
|
user_id,
|
||||||
@ -78,8 +78,8 @@
|
|||||||
<if test="id != null">
|
<if test="id != null">
|
||||||
#{id,jdbcType=INTEGER},
|
#{id,jdbcType=INTEGER},
|
||||||
</if>
|
</if>
|
||||||
<if test="encrptPassword != null">
|
<if test="encryptPassword != null">
|
||||||
#{encrptPassword,jdbcType=VARCHAR},
|
#{encryptPassword,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
<if test="userId != null">
|
<if test="userId != null">
|
||||||
#{userId,jdbcType=INTEGER},
|
#{userId,jdbcType=INTEGER},
|
||||||
@ -94,8 +94,8 @@
|
|||||||
-->
|
-->
|
||||||
update user_password
|
update user_password
|
||||||
<set>
|
<set>
|
||||||
<if test="encrptPassword != null">
|
<if test="encryptPassword != null">
|
||||||
encrpt_password = #{encrptPassword,jdbcType=VARCHAR},
|
encrypt_password = #{encryptPassword,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
<if test="userId != null">
|
<if test="userId != null">
|
||||||
user_id = #{userId,jdbcType=INTEGER},
|
user_id = #{userId,jdbcType=INTEGER},
|
||||||
@ -110,7 +110,7 @@
|
|||||||
This element was generated on Tue Mar 01 14:58:29 CST 2022.
|
This element was generated on Tue Mar 01 14:58:29 CST 2022.
|
||||||
-->
|
-->
|
||||||
update user_password
|
update user_password
|
||||||
set encrpt_password = #{encrptPassword,jdbcType=VARCHAR},
|
set encrypt_password = #{encryptPassword,jdbcType=VARCHAR},
|
||||||
user_id = #{userId,jdbcType=INTEGER}
|
user_id = #{userId,jdbcType=INTEGER}
|
||||||
where id = #{id,jdbcType=INTEGER}
|
where id = #{id,jdbcType=INTEGER}
|
||||||
</update>
|
</update>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user