Add address book management functionality
This commit is contained in:
@@ -0,0 +1,93 @@
|
|||||||
|
package com.sky.controller.user;
|
||||||
|
|
||||||
|
import com.sky.entity.AddressBook;
|
||||||
|
import com.sky.result.Result;
|
||||||
|
import com.sky.service.AddressBookService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/user/addressBook")
|
||||||
|
@Slf4j
|
||||||
|
@Api(tags = "AddressBook-Controller")
|
||||||
|
public class AddressBookController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AddressBookService addressBookService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* add a new address
|
||||||
|
* @param addressBook
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping
|
||||||
|
public Result add(@RequestBody AddressBook addressBook){
|
||||||
|
log.info("add new address book");
|
||||||
|
addressBookService.addAddressBook(addressBook);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* list address of current user
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/list")
|
||||||
|
public Result<List<AddressBook>> list(){
|
||||||
|
log.info("list address of current user");
|
||||||
|
List<AddressBook> list = addressBookService.listAddress();
|
||||||
|
return Result.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* list default address of current user
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/default")
|
||||||
|
public Result<AddressBook> listDefault(){
|
||||||
|
log.info("list default address of current user");
|
||||||
|
AddressBook addressBook = addressBookService.listDefault();
|
||||||
|
return Result.success(addressBook);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* list by addressId
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public Result<AddressBook> listByAddressId(@PathVariable Long id){
|
||||||
|
log.info("list address by id: {}", id);
|
||||||
|
AddressBook addressBook = addressBookService.listByAddressId(id);
|
||||||
|
return Result.success(addressBook);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* update address
|
||||||
|
* @param addressBook
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PutMapping
|
||||||
|
public Result updateAddress(@RequestBody AddressBook addressBook){
|
||||||
|
log.info("update address");
|
||||||
|
addressBookService.updateAddress(addressBook);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping
|
||||||
|
public Result deleteAddress(Long id){
|
||||||
|
log.info("delete address");
|
||||||
|
addressBookService.deleteAddress(id);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/default")
|
||||||
|
public Result setDefault(@RequestBody AddressBook addressBook){
|
||||||
|
log.info("set default address");
|
||||||
|
addressBookService.setDefault(addressBook);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,7 +15,7 @@ import java.util.List;
|
|||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/user/shoppingCart")
|
@RequestMapping("/user/shoppingCart")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Api(tags = "shoppingCart-controller")
|
@Api(tags = "ShoppingCart-Controller")
|
||||||
public class ShoppingCartController {
|
public class ShoppingCartController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.sky.mapper;
|
||||||
|
|
||||||
|
import com.sky.entity.AddressBook;
|
||||||
|
import org.apache.ibatis.annotations.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface AddressBookMapper {
|
||||||
|
|
||||||
|
@Insert("insert into sky_take_out.address_book(user_id, consignee, sex, phone, province_code, province_name, city_code, city_name, district_code, district_name, detail, label, is_default) " +
|
||||||
|
"values (#{userId},#{consignee},#{sex},#{phone},#{provinceCode},#{provinceName},#{cityCode},#{cityName},#{districtCode},#{districtName},#{detail},#{label},#{isDefault})")
|
||||||
|
void insert(AddressBook addressBook);
|
||||||
|
|
||||||
|
List<AddressBook> list(AddressBook addressBook);
|
||||||
|
|
||||||
|
void update(AddressBook addressBook);
|
||||||
|
|
||||||
|
@Delete("delete from sky_take_out.address_book where id = #{id}")
|
||||||
|
void deleteById(Long id);
|
||||||
|
|
||||||
|
@Update("update sky_take_out.address_book set is_default = 0 where user_id = #{userId}")
|
||||||
|
void updateNotDefault(Long userId);
|
||||||
|
|
||||||
|
@Update("update sky_take_out.address_book set is_default = 1 where id = #{id}")
|
||||||
|
void updateDefault(Long id);
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package com.sky.service;
|
||||||
|
|
||||||
|
import com.sky.entity.AddressBook;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public interface AddressBookService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add new address book
|
||||||
|
* @param addressBook
|
||||||
|
*/
|
||||||
|
void addAddressBook(AddressBook addressBook);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* list address of current user
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<AddressBook> listAddress();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* show default address
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AddressBook listDefault();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* list by address id
|
||||||
|
* @param addressId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
AddressBook listByAddressId(Long addressId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* update address
|
||||||
|
* @param addressBook
|
||||||
|
*/
|
||||||
|
void updateAddress(AddressBook addressBook);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* delete address
|
||||||
|
*/
|
||||||
|
void deleteAddress(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* set default address
|
||||||
|
* @param addressBook
|
||||||
|
*/
|
||||||
|
void setDefault(AddressBook addressBook);
|
||||||
|
}
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
package com.sky.service.impl;
|
||||||
|
|
||||||
|
import com.sky.context.BaseContext;
|
||||||
|
import com.sky.entity.AddressBook;
|
||||||
|
import com.sky.mapper.AddressBookMapper;
|
||||||
|
import com.sky.service.AddressBookService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class AddressBookServiceImpl implements AddressBookService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AddressBookMapper addressBookMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addAddressBook(AddressBook addressBook) {
|
||||||
|
Long userId = BaseContext.getCurrentId();
|
||||||
|
addressBook.setUserId(userId);
|
||||||
|
List<AddressBook> list = addressBookMapper.list(addressBook);
|
||||||
|
addressBook.setIsDefault(0);
|
||||||
|
addressBookMapper.insert(addressBook);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* list address of current user
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<AddressBook> listAddress() {
|
||||||
|
Long userId = BaseContext.getCurrentId();
|
||||||
|
AddressBook addressBook = AddressBook.builder()
|
||||||
|
.userId(userId)
|
||||||
|
.build();
|
||||||
|
return addressBookMapper.list(addressBook);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* show default address
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AddressBook listDefault() {
|
||||||
|
AddressBook addressBook = AddressBook.builder()
|
||||||
|
.userId(BaseContext.getCurrentId())
|
||||||
|
.isDefault(1)
|
||||||
|
.build();
|
||||||
|
List<AddressBook> list = addressBookMapper.list(addressBook);
|
||||||
|
if (list != null && !list.isEmpty()) {
|
||||||
|
return list.get(0);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AddressBook listByAddressId(Long addressId) {
|
||||||
|
AddressBook addressBook = AddressBook.builder()
|
||||||
|
.id(addressId)
|
||||||
|
.build();
|
||||||
|
List<AddressBook> list = addressBookMapper.list(addressBook);
|
||||||
|
return list.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateAddress(AddressBook addressBook) {
|
||||||
|
addressBookMapper.update(addressBook);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteAddress(Long id) {
|
||||||
|
addressBookMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void setDefault(AddressBook addressBook) {
|
||||||
|
//set all the address of current user not default
|
||||||
|
Long userId = BaseContext.getCurrentId();
|
||||||
|
addressBookMapper.updateNotDefault(userId);
|
||||||
|
//set current address default
|
||||||
|
addressBookMapper.updateDefault(addressBook.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
39
sky-server/src/main/resources/mapper/AddressBookMapper.xml
Normal file
39
sky-server/src/main/resources/mapper/AddressBookMapper.xml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.sky.mapper.AddressBookMapper">
|
||||||
|
<update id="update">
|
||||||
|
update sky_take_out.address_book
|
||||||
|
set city_name = #{cityName},
|
||||||
|
city_code = #{cityCode},
|
||||||
|
consignee = #{consignee},
|
||||||
|
detail = #{detail},
|
||||||
|
district_code = #{districtCode},
|
||||||
|
district_name = #{districtName},
|
||||||
|
label = #{label},
|
||||||
|
phone = #{phone},
|
||||||
|
province_code = #{provinceCode},
|
||||||
|
province_name = #{provinceName},
|
||||||
|
sex = #{sex},
|
||||||
|
<if test="isDefault != null">
|
||||||
|
is_default = #{isDefault},
|
||||||
|
</if>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<select id="list" resultType="com.sky.entity.AddressBook">
|
||||||
|
select * from sky_take_out.address_book
|
||||||
|
<where>
|
||||||
|
<if test="userId != null">
|
||||||
|
and user_id = #{userId}
|
||||||
|
</if>
|
||||||
|
<if test="isDefault != null">
|
||||||
|
and is_default = #{isDefault}
|
||||||
|
</if>
|
||||||
|
<if test="id != null">
|
||||||
|
and id = #{id}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user