diff --git a/src/main/java/com/example/takeawaysystemserver/controller/UserController.java b/src/main/java/com/example/takeawaysystemserver/controller/UserController.java index ffca235..43bfe68 100644 --- a/src/main/java/com/example/takeawaysystemserver/controller/UserController.java +++ b/src/main/java/com/example/takeawaysystemserver/controller/UserController.java @@ -1,5 +1,6 @@ package com.example.takeawaysystemserver.controller; +import com.example.takeawaysystemserver.entity.Address; import com.example.takeawaysystemserver.model.dto.*; import com.example.takeawaysystemserver.service.UserService; import com.example.takeawaysystemserver.util.R; @@ -8,6 +9,8 @@ import io.swagger.annotations.ApiOperation; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @author Ethereal * @date 2024/7/12 @@ -50,4 +53,16 @@ public class UserController { public R updatePassword(@RequestHeader String token, UserPasswordDTO userPasswordDTO){ return userService.updatePassword(token,userPasswordDTO); } + + @GetMapping("get-addresses") + @ApiOperation(value = "获取用户地址") + public R> getAddresses(@RequestHeader String token){ + return userService.getAddresses(token); + } + + @PostMapping("add-address") + @ApiOperation(value = "添加地址") + public R addAddress(@RequestHeader String token, @RequestBody AddressDTO addressDTO){ + return userService.addAddress(token, addressDTO); + } } diff --git a/src/main/java/com/example/takeawaysystemserver/model/dto/AddressDTO.java b/src/main/java/com/example/takeawaysystemserver/model/dto/AddressDTO.java index 33ea321..4584033 100644 --- a/src/main/java/com/example/takeawaysystemserver/model/dto/AddressDTO.java +++ b/src/main/java/com/example/takeawaysystemserver/model/dto/AddressDTO.java @@ -1,5 +1,7 @@ package com.example.takeawaysystemserver.model.dto; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -13,5 +15,39 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class AddressDTO { - private String address; + + /** + * 收货人 + */ + private String consignee; + + /** + * 手机号 + */ + private String phone; + + /** + * 省份 + */ + private String province; + + /** + * 市级名 + */ + private String city; + + /** + * 区级名 + */ + private String district; + + /** + * 详细地址 + */ + private String detail; + + /** + * 默认(0否 1是) + */ + private Integer isDefault; } diff --git a/src/main/java/com/example/takeawaysystemserver/service/UserService.java b/src/main/java/com/example/takeawaysystemserver/service/UserService.java index 77bb1b7..75aaf79 100644 --- a/src/main/java/com/example/takeawaysystemserver/service/UserService.java +++ b/src/main/java/com/example/takeawaysystemserver/service/UserService.java @@ -1,13 +1,13 @@ package com.example.takeawaysystemserver.service; +import com.example.takeawaysystemserver.entity.Address; import com.example.takeawaysystemserver.entity.User; import com.baomidou.mybatisplus.extension.service.IService; -import com.example.takeawaysystemserver.model.dto.UserLoginDTO; -import com.example.takeawaysystemserver.model.dto.UserPasswordDTO; -import com.example.takeawaysystemserver.model.dto.UserRegisterDTO; -import com.example.takeawaysystemserver.model.dto.UserUpdateDTO; +import com.example.takeawaysystemserver.model.dto.*; import com.example.takeawaysystemserver.util.R; +import java.util.List; + /** * @author qiushengyu * @description 针对表【user】的数据库操作Service @@ -49,4 +49,19 @@ public interface UserService extends IService { * @return 修改信息 */ R updatePassword(String token, UserPasswordDTO userPasswordDTO); + + /** + * 获取用户地址 + * @param token 用户token + * @return 地址列表 + */ + R> getAddresses(String token); + + /** + * 添加地址 + * @param token 用户token + * @param addressDTO 地址DTO + * @return 添加信息 + */ + R addAddress(String token, AddressDTO addressDTO); } diff --git a/src/main/java/com/example/takeawaysystemserver/service/impl/UserServiceImpl.java b/src/main/java/com/example/takeawaysystemserver/service/impl/UserServiceImpl.java index 05b5f6c..3fc6d12 100644 --- a/src/main/java/com/example/takeawaysystemserver/service/impl/UserServiceImpl.java +++ b/src/main/java/com/example/takeawaysystemserver/service/impl/UserServiceImpl.java @@ -5,11 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.takeawaysystemserver.constant.CommonConstant; +import com.example.takeawaysystemserver.entity.Address; import com.example.takeawaysystemserver.entity.User; -import com.example.takeawaysystemserver.model.dto.UserLoginDTO; -import com.example.takeawaysystemserver.model.dto.UserPasswordDTO; -import com.example.takeawaysystemserver.model.dto.UserRegisterDTO; -import com.example.takeawaysystemserver.model.dto.UserUpdateDTO; +import com.example.takeawaysystemserver.model.dto.*; +import com.example.takeawaysystemserver.service.AddressService; import com.example.takeawaysystemserver.service.RedisService; import com.example.takeawaysystemserver.service.UserService; import com.example.takeawaysystemserver.mapper.UserMapper; @@ -20,6 +19,7 @@ import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -36,6 +36,9 @@ public class UserServiceImpl extends ServiceImpl private final RedisService redisService; + @Resource + private AddressService addressService; + public UserServiceImpl(DESUtil desUtil, RedisService redisService) { this.desUtil = desUtil; this.redisService = redisService; @@ -112,6 +115,40 @@ public class UserServiceImpl extends ServiceImpl return R.fail("修改失败"); } + @Override + public R> getAddresses(String token) { + Integer id = Integer.parseInt(getUserId(token)); + LambdaQueryWrapper
wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Address::getUserId, id); + return R.ok(addressService.list(wrapper)); + } + + @Override + public R addAddress(String token, AddressDTO addressDTO) { + Integer id = Integer.parseInt(getUserId(token)); + Address address = new Address(); + address.setUserId(id); + address.setCity(addressDTO.getCity()); + address.setProvince(addressDTO.getProvince()); + address.setPhone(addressDTO.getPhone()); + address.setDetail(addressDTO.getDetail()); + address.setConsignee(addressDTO.getConsignee()); + address.setDistrict(addressDTO.getDistrict()); + LambdaQueryWrapper
wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Address::getUserId, id); + List
list = addressService.list(wrapper); + if (list == null || list.isEmpty()){ + address.setIsDefault(1); + } + address.setIsDefault(0); + boolean save = addressService.save(address); + if (save){ + return R.ok("添加成功"); + }else { + return R.fail("添加失败"); + } + } + private Boolean checkUser(UserRegisterDTO userRegisterDTO){ User user = baseMapper.selectOne(new LambdaQueryWrapper() .select(User::getUsername)