架构师成长记_第三周_02_2020.11.08

文章目录

  • 收货地址功能实现: 新增收货地址
    • BO : UserAddressBO
    • service: 完善 AddressService
    • serviceImpl: 完善 AddressServiceImpl
    • Controller : 完善AddressController

收货地址功能实现: 新增收货地址

BO : UserAddressBO

package com.beyond.pojo.bo;

/**
 * 用于新增或者修改地址的BO
 */
public class UserAddressBO {
     
    private String userId;
    private String receiver;
    private String mobile;
    private String city;
    private String district;
    private String detail;

    public String getUserId() {
     
        return userId;
    }

    public void setUserId(String userId) {
     
        this.userId = userId;
    }

    public String getReceiver() {
     
        return receiver;
    }

    public void setReceiver(String receiver) {
     
        this.receiver = receiver;
    }

    public String getMobile() {
     
        return mobile;
    }

    public void setMobile(String mobile) {
     
        this.mobile = mobile;
    }

    public String getCity() {
     
        return city;
    }

    public void setCity(String city) {
     
        this.city = city;
    }

    public String getDistrict() {
     
        return district;
    }

    public void setDistrict(String district) {
     
        this.district = district;
    }

    public String getDetail() {
     
        return detail;
    }

    public void setDetail(String detail) {
     
        this.detail = detail;
    }
}

service: 完善 AddressService

 /**
     * 用户新增地址
     * @param userAddressBO
     */
    public void addNewUserAddress(UserAddressBO userAddressBO);

serviceImpl: 完善 AddressServiceImpl

 @Transactional(propagation = Propagation.REQUIRED)
    @Override
    public void addNewUserAddress(UserAddressBO userAddressBO) {
     
        // 1.需要判断,当前的用户是后存在地址,如果不存在则进行新增地址,新增地址为默认地址
        Integer isDefault = 0;
        List<UserAddress> addressList = this.queryAll(userAddressBO.getUserId());
        if (addressList == null || addressList.isEmpty() || addressList.size() == 0){
     
            isDefault = 1;
        }

        String newAddressId = sid.nextShort();

        // 2.保存数据到数据库
        UserAddress newAddress = new UserAddress();
        BeanUtils.copyProperties(userAddressBO, newAddress);
        newAddress.setId(newAddressId);
        newAddress.setIsDefault(isDefault);
        newAddress.setCreatedTime(new Date());
        newAddress.setUpdatedTime(new Date());

        userAddressMapper.insert(newAddress);
    }

Controller : 完善AddressController

    @ApiOperation(value = "新增用户地址",notes = "新增用户地址",httpMethod = "POST")
    @PostMapping("/add")
    public BEYONDJSONResult add(@RequestBody UserAddressBO userAddressBO){
       // @RequestBody用来接收前端传递给后端的json字符串中的数据
        BEYONDJSONResult checkRes = checkAddress(userAddressBO);
        if (checkRes.getStatus() != 200){
     
            return checkRes;
        }
        addressService.addNewUserAddress(userAddressBO);
        return BEYONDJSONResult.ok();
    }

    private BEYONDJSONResult checkAddress(UserAddressBO addressBO){
     
        String receiver = addressBO.getReceiver();
        String mobile = addressBO.getMobile();
        String detail = addressBO.getDetail();
        if (StringUtils.isBlank(receiver)){
     
            return BEYONDJSONResult.errorMsg("收货人不能为空");
        }
        if (StringUtils.isBlank(mobile)){
     
            return BEYONDJSONResult.errorMsg("手机号不能为空");
        }
        if (MobileEmailUtils.checkMobileIsOk(mobile)){
     
            return BEYONDJSONResult.errorMsg("手机号格式不正确, 请输入正确的格式");
        }
        if (StringUtils.isBlank(detail)){
     
            return BEYONDJSONResult.errorMsg("详细地址不能为空");
        }
        return BEYONDJSONResult.ok();
    }

你可能感兴趣的:(Architect,Springboot)