diff --git a/pom.xml b/pom.xml
index c1c68c9..7bfb517 100644
--- a/pom.xml
+++ b/pom.xml
@@ -149,6 +149,12 @@
mybatis-plus-join-boot-starter
${mpj.version}
+
+
+ org.hibernate.validator
+ hibernate-validator
+ 6.2.0.Final
+
diff --git a/src/main/java/com/example/takeawaysystemserver/constant/CommonConstant.java b/src/main/java/com/example/takeawaysystemserver/constant/CommonConstant.java
index b080d7b..b1e4701 100644
--- a/src/main/java/com/example/takeawaysystemserver/constant/CommonConstant.java
+++ b/src/main/java/com/example/takeawaysystemserver/constant/CommonConstant.java
@@ -7,4 +7,11 @@ package com.example.takeawaysystemserver.constant;
*/
public interface CommonConstant {
String TOKEN_SECRET = "sadao_idfdv_uvnbdson_wd01jsdnvcz";
+
+ Integer EXPIRE_TIME = 7*24*60*60*1000;
+
+ Integer TOKEN_EXPIRE_TIME = 2*60*60*1000;
+
+ String LOGIN_USER = "login_user";
+
}
diff --git a/src/main/java/com/example/takeawaysystemserver/controller/UserController.java b/src/main/java/com/example/takeawaysystemserver/controller/UserController.java
new file mode 100644
index 0000000..46c4ac7
--- /dev/null
+++ b/src/main/java/com/example/takeawaysystemserver/controller/UserController.java
@@ -0,0 +1,59 @@
+package com.example.takeawaysystemserver.controller;
+
+import com.example.takeawaysystemserver.model.dto.*;
+import com.example.takeawaysystemserver.service.UserService;
+import com.example.takeawaysystemserver.util.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author Ethereal
+ * @date 2024/7/12
+ * @description
+ */
+@RestController
+@Api(tags = "用户模块")
+@RequestMapping("user")
+public class UserController {
+
+ @Resource
+ private UserService userService;
+
+ @PostMapping("/register")
+ @ApiOperation(value = "用户注册")
+ public R register(@RequestBody UserRegisterDTO userRegisterDTO){
+ return userService.register(userRegisterDTO);
+ }
+
+ @PostMapping("/login")
+ @ApiOperation(value = "用户登录")
+ public R login(@RequestBody UserLoginDTO userLoginDTO){
+ return userService.login(userLoginDTO);
+ }
+
+ @PostMapping("/logout")
+ @ApiOperation(value = "登出")
+ public R logout(@RequestHeader String token){
+ return userService.logout(token);
+ }
+
+ @PostMapping("update-userinfo")
+ @ApiOperation(value = "修改用户信息")
+ public R updateUserinfo(@RequestHeader String token, @RequestBody UserUpdateDTO userUpdateDTO){
+ return userService.updateUserInfo(token, userUpdateDTO);
+ }
+
+ @PostMapping("update-password")
+ @ApiOperation(value = "修改用户密码")
+ public R updatePassword(@RequestHeader String token, UserPasswordDTO userPasswordDTO){
+ return userService.updatePassword(token,userPasswordDTO);
+ }
+
+ @PostMapping("update-address")
+ @ApiOperation(value = "修改用户地址")
+ public R updateAddress(@RequestHeader String token, @RequestBody AddressDTO addressDTO){
+ return userService.updateAddress(token, addressDTO.getAddress());
+ }
+}
diff --git a/src/main/java/com/example/takeawaysystemserver/entity/Dish.java b/src/main/java/com/example/takeawaysystemserver/entity/Dish.java
index 065fd18..73441f5 100644
--- a/src/main/java/com/example/takeawaysystemserver/entity/Dish.java
+++ b/src/main/java/com/example/takeawaysystemserver/entity/Dish.java
@@ -1,6 +1,9 @@
package com.example.takeawaysystemserver.entity;
import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
/**
@@ -12,12 +15,13 @@ public class Dish implements Serializable {
/**
* 主键ID
*/
- private String id;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
/**
* shop_id
*/
- private String shopId;
+ private Integer shopId;
/**
* 分类名
diff --git a/src/main/java/com/example/takeawaysystemserver/entity/DishFlavor.java b/src/main/java/com/example/takeawaysystemserver/entity/DishFlavor.java
index 227bb79..5b05664 100644
--- a/src/main/java/com/example/takeawaysystemserver/entity/DishFlavor.java
+++ b/src/main/java/com/example/takeawaysystemserver/entity/DishFlavor.java
@@ -1,6 +1,9 @@
package com.example.takeawaysystemserver.entity;
import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
/**
@@ -12,12 +15,13 @@ public class DishFlavor implements Serializable {
/**
* 主键ID
*/
- private String id;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
/**
* 菜品ID
*/
- private String dishId;
+ private Integer dishId;
/**
* 口味名称
diff --git a/src/main/java/com/example/takeawaysystemserver/entity/Order.java b/src/main/java/com/example/takeawaysystemserver/entity/Order.java
index f2ca97c..81de9f2 100644
--- a/src/main/java/com/example/takeawaysystemserver/entity/Order.java
+++ b/src/main/java/com/example/takeawaysystemserver/entity/Order.java
@@ -1,6 +1,9 @@
package com.example.takeawaysystemserver.entity;
import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
/**
@@ -12,17 +15,18 @@ public class Order implements Serializable {
/**
* 主键ID
*/
- private String id;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
/**
* 用户ID
*/
- private String userId;
+ private Integer userId;
/**
* 商品ID
*/
- private String shopId;
+ private Integer shopId;
/**
* 价格
diff --git a/src/main/java/com/example/takeawaysystemserver/entity/OrderItem.java b/src/main/java/com/example/takeawaysystemserver/entity/OrderItem.java
index b52aa9b..0eeae56 100644
--- a/src/main/java/com/example/takeawaysystemserver/entity/OrderItem.java
+++ b/src/main/java/com/example/takeawaysystemserver/entity/OrderItem.java
@@ -1,6 +1,9 @@
package com.example.takeawaysystemserver.entity;
import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
/**
@@ -12,17 +15,18 @@ public class OrderItem implements Serializable {
/**
* 主键ID
*/
- private String id;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
/**
* dish_id
*/
- private String dishId;
+ private Integer dishId;
/**
* order_id
*/
- private String orderId;
+ private Integer orderId;
/**
* 购买份数
diff --git a/src/main/java/com/example/takeawaysystemserver/entity/Shop.java b/src/main/java/com/example/takeawaysystemserver/entity/Shop.java
index 1aeff01..793ad5a 100644
--- a/src/main/java/com/example/takeawaysystemserver/entity/Shop.java
+++ b/src/main/java/com/example/takeawaysystemserver/entity/Shop.java
@@ -1,10 +1,14 @@
package com.example.takeawaysystemserver.entity;
import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
/**
*
+ * @author qiushengyu
* @TableName shop
*/
@Data
@@ -12,7 +16,8 @@ public class Shop implements Serializable {
/**
* 主键ID
*/
- private String id;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
/**
* 名称
diff --git a/src/main/java/com/example/takeawaysystemserver/entity/User.java b/src/main/java/com/example/takeawaysystemserver/entity/User.java
index ff5163c..83ad648 100644
--- a/src/main/java/com/example/takeawaysystemserver/entity/User.java
+++ b/src/main/java/com/example/takeawaysystemserver/entity/User.java
@@ -1,18 +1,28 @@
package com.example.takeawaysystemserver.entity;
import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Data;
+import lombok.NoArgsConstructor;
/**
*
* @TableName user
*/
@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
public class User implements Serializable {
/**
* 主键ID
*/
- private String id;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
/**
* 用户名
diff --git a/src/main/java/com/example/takeawaysystemserver/mapper/DishFlavorMapper.java b/src/main/java/com/example/takeawaysystemserver/mapper/DishFlavorMapper.java
index b760d1f..c89bb33 100644
--- a/src/main/java/com/example/takeawaysystemserver/mapper/DishFlavorMapper.java
+++ b/src/main/java/com/example/takeawaysystemserver/mapper/DishFlavorMapper.java
@@ -2,6 +2,7 @@ package com.example.takeawaysystemserver.mapper;
import com.example.takeawaysystemserver.entity.DishFlavor;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author qiushengyu
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-07-11 17:12:51
* @Entity com.example.takeawaysystemserver.entity.DishFlavor
*/
+@Mapper
public interface DishFlavorMapper extends BaseMapper {
}
diff --git a/src/main/java/com/example/takeawaysystemserver/mapper/DishMapper.java b/src/main/java/com/example/takeawaysystemserver/mapper/DishMapper.java
index 4cabfd3..9831989 100644
--- a/src/main/java/com/example/takeawaysystemserver/mapper/DishMapper.java
+++ b/src/main/java/com/example/takeawaysystemserver/mapper/DishMapper.java
@@ -2,6 +2,7 @@ package com.example.takeawaysystemserver.mapper;
import com.example.takeawaysystemserver.entity.Dish;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author qiushengyu
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-07-11 17:11:31
* @Entity com.example.takeawaysystemserver.entity.Dish
*/
+@Mapper
public interface DishMapper extends BaseMapper {
}
diff --git a/src/main/java/com/example/takeawaysystemserver/mapper/OrderItemMapper.java b/src/main/java/com/example/takeawaysystemserver/mapper/OrderItemMapper.java
index bdc39b7..3f76822 100644
--- a/src/main/java/com/example/takeawaysystemserver/mapper/OrderItemMapper.java
+++ b/src/main/java/com/example/takeawaysystemserver/mapper/OrderItemMapper.java
@@ -2,6 +2,7 @@ package com.example.takeawaysystemserver.mapper;
import com.example.takeawaysystemserver.entity.OrderItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author qiushengyu
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-07-11 17:13:53
* @Entity com.example.takeawaysystemserver.entity.OrderItem
*/
+@Mapper
public interface OrderItemMapper extends BaseMapper {
}
diff --git a/src/main/java/com/example/takeawaysystemserver/mapper/OrderMapper.java b/src/main/java/com/example/takeawaysystemserver/mapper/OrderMapper.java
index 575bf54..52a5e16 100644
--- a/src/main/java/com/example/takeawaysystemserver/mapper/OrderMapper.java
+++ b/src/main/java/com/example/takeawaysystemserver/mapper/OrderMapper.java
@@ -2,6 +2,7 @@ package com.example.takeawaysystemserver.mapper;
import com.example.takeawaysystemserver.entity.Order;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author qiushengyu
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-07-11 17:13:46
* @Entity com.example.takeawaysystemserver.entity.Order
*/
+@Mapper
public interface OrderMapper extends BaseMapper {
}
diff --git a/src/main/java/com/example/takeawaysystemserver/mapper/ShopMapper.java b/src/main/java/com/example/takeawaysystemserver/mapper/ShopMapper.java
index 0a09c7d..51bef79 100644
--- a/src/main/java/com/example/takeawaysystemserver/mapper/ShopMapper.java
+++ b/src/main/java/com/example/takeawaysystemserver/mapper/ShopMapper.java
@@ -2,6 +2,7 @@ package com.example.takeawaysystemserver.mapper;
import com.example.takeawaysystemserver.entity.Shop;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author qiushengyu
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-07-11 17:13:56
* @Entity com.example.takeawaysystemserver.entity.Shop
*/
+@Mapper
public interface ShopMapper extends BaseMapper {
}
diff --git a/src/main/java/com/example/takeawaysystemserver/mapper/UserMapper.java b/src/main/java/com/example/takeawaysystemserver/mapper/UserMapper.java
index 35c8737..bf30d97 100644
--- a/src/main/java/com/example/takeawaysystemserver/mapper/UserMapper.java
+++ b/src/main/java/com/example/takeawaysystemserver/mapper/UserMapper.java
@@ -2,6 +2,7 @@ package com.example.takeawaysystemserver.mapper;
import com.example.takeawaysystemserver.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author qiushengyu
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-07-11 17:14:00
* @Entity com.example.takeawaysystemserver.entity.User
*/
+@Mapper
public interface UserMapper extends BaseMapper {
}
diff --git a/src/main/java/com/example/takeawaysystemserver/model/dto/AddressDTO.java b/src/main/java/com/example/takeawaysystemserver/model/dto/AddressDTO.java
new file mode 100644
index 0000000..33ea321
--- /dev/null
+++ b/src/main/java/com/example/takeawaysystemserver/model/dto/AddressDTO.java
@@ -0,0 +1,17 @@
+package com.example.takeawaysystemserver.model.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author Ethereal
+ * @date 2024/7/12
+ * @description
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class AddressDTO {
+ private String address;
+}
diff --git a/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCart.java b/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCart.java
index e66596f..cf3b929 100644
--- a/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCart.java
+++ b/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCart.java
@@ -14,7 +14,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class ShoppingCart {
// 不需要用户ID,用户信息从token中获取
- private String shopId;
+ private Integer shopId;
/**
* 订单子项
*/
diff --git a/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCartItem.java b/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCartItem.java
index 7f52e7b..d5f54fa 100644
--- a/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCartItem.java
+++ b/src/main/java/com/example/takeawaysystemserver/model/dto/ShoppingCartItem.java
@@ -15,7 +15,7 @@ import java.util.Map;
@AllArgsConstructor
@NoArgsConstructor
public class ShoppingCartItem {
- private String dishId;
+ private Integer dishId;
/**
* 份数
*/
diff --git a/src/main/java/com/example/takeawaysystemserver/model/dto/UserLoginDTO.java b/src/main/java/com/example/takeawaysystemserver/model/dto/UserLoginDTO.java
new file mode 100644
index 0000000..48a625d
--- /dev/null
+++ b/src/main/java/com/example/takeawaysystemserver/model/dto/UserLoginDTO.java
@@ -0,0 +1,18 @@
+package com.example.takeawaysystemserver.model.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author Ethereal
+ * @date 2024/7/12
+ * @description
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserLoginDTO {
+ private String username;
+ private String password;
+}
diff --git a/src/main/java/com/example/takeawaysystemserver/model/dto/UserPasswordDTO.java b/src/main/java/com/example/takeawaysystemserver/model/dto/UserPasswordDTO.java
new file mode 100644
index 0000000..0f72390
--- /dev/null
+++ b/src/main/java/com/example/takeawaysystemserver/model/dto/UserPasswordDTO.java
@@ -0,0 +1,18 @@
+package com.example.takeawaysystemserver.model.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author Ethereal
+ * @date 2024/7/12
+ * @description
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserPasswordDTO {
+ private String newPassword;
+ private String confirm;
+}
diff --git a/src/main/java/com/example/takeawaysystemserver/model/dto/UserRegisterDTO.java b/src/main/java/com/example/takeawaysystemserver/model/dto/UserRegisterDTO.java
index 4f21258..d68ed02 100644
--- a/src/main/java/com/example/takeawaysystemserver/model/dto/UserRegisterDTO.java
+++ b/src/main/java/com/example/takeawaysystemserver/model/dto/UserRegisterDTO.java
@@ -1,5 +1,7 @@
package com.example.takeawaysystemserver.model.dto;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -16,17 +18,25 @@ public class UserRegisterDTO {
/**
* 用户名
*/
+ @NotBlank(message = "用户名不能为空")
private String username;
+
/**
* 密码
*/
+ @NotBlank(message = "密码不能为空")
+ @Size(min = 6, message = "密码不能小于6位")
private String password;
+
/**
* 手机号
*/
+ @NotBlank(message = "手机号不能为空")
private String phone;
+
/**
* 地址
*/
+ @NotBlank(message = "地址不能为空")
private String address;
}
diff --git a/src/main/java/com/example/takeawaysystemserver/model/dto/UserUpdateDTO.java b/src/main/java/com/example/takeawaysystemserver/model/dto/UserUpdateDTO.java
new file mode 100644
index 0000000..842dd1f
--- /dev/null
+++ b/src/main/java/com/example/takeawaysystemserver/model/dto/UserUpdateDTO.java
@@ -0,0 +1,18 @@
+package com.example.takeawaysystemserver.model.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author Ethereal
+ * @date 2024/7/12
+ * @description
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserUpdateDTO {
+ private String username;
+ private String phone;
+}
diff --git a/src/main/java/com/example/takeawaysystemserver/service/RedisService.java b/src/main/java/com/example/takeawaysystemserver/service/RedisService.java
new file mode 100644
index 0000000..cb38c91
--- /dev/null
+++ b/src/main/java/com/example/takeawaysystemserver/service/RedisService.java
@@ -0,0 +1,128 @@
+package com.example.takeawaysystemserver.service;
+
+
+import org.springframework.data.domain.Sort;
+import org.springframework.data.geo.Distance;
+import org.springframework.data.geo.GeoResults;
+import org.springframework.data.geo.Point;
+import org.springframework.data.redis.connection.RedisGeoCommands;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author 慕华
+ * @date 2023/7/11
+ * @Version 1.0
+ */
+@SuppressWarnings("all")
+public interface RedisService {
+
+ void set(String key, Object value, long time);
+
+ void set(String key, Object value);
+
+ Object get(String key);
+
+ Boolean del(String key);
+
+ Long del(List keys);
+
+ Boolean expire(String key, long time);
+
+ Long getExpire(String key);
+
+ Boolean hasKey(String key);
+
+ Long incr(String key, long delta);
+
+ Long incrExpire(String key, long time);
+
+ Long decr(String key, long delta);
+
+ Object hGet(String key, String hashKey);
+
+ Boolean hSet(String key, String hashKey, Object value, long time);
+
+ void hSet(String key, String hashKey, Object value);
+
+ Map hGetAll(String key);
+
+ Boolean hSetAll(String key, Map map, long time);
+
+ void hSetAll(String key, Map map);
+
+ void hDel(String key, Object... hashKey);
+
+ Boolean hHasKey(String key, String hashKey);
+
+ Long hIncr(String key, String hashKey, Long delta);
+
+ Long hDecr(String key, String hashKey, Long delta);
+
+ Double zIncr(String key, Object value, Double score);
+
+ Double zDecr(String key, Object value, Double score);
+
+ Map