架構師成長記_第三週_05_2020.11.08

煙花再美不及伱發表於2020-12-27

收貨地址功能實現:設定預設的收貨地址

Service : 完善AddressService

 /**
     * 根據傳入的使用者id 和 地址id 更新使用者的預設地址資訊
     * @param userId
     * @param addressId
     */
    public void updateUserAddressToBeDefault(String userId,String addressId);

ServiceImpl: 完善AddressServiceImpl

 @Transactional(propagation = Propagation.REQUIRED)
    @Override
    public void updateUserAddressToBeDefault(String userId, String addressId) {
        // 1. 查詢預設地址, 設定為不預設
        UserAddress queryUserAddress = new UserAddress();
        queryUserAddress.setUserId(userId);
        queryUserAddress.setIsDefault(YesOrNo.YES.type);
        List<UserAddress> list = userAddressMapper.select(queryUserAddress);
        for(UserAddress ua: list){
            ua.setIsDefault(YesOrNo.NO.type);
            userAddressMapper.updateByPrimaryKeySelective(ua);
        }


        // 2. 設定地址 id 修改為預設地址
        UserAddress defaultAddress = new UserAddress();
        defaultAddress.setId(addressId);
        defaultAddress.setUserId(userId);
        defaultAddress.setIsDefault(YesOrNo.YES.type);
        userAddressMapper.updateByPrimaryKeySelective(defaultAddress);

    }

Controller: 完善AddressController

@ApiOperation(value = "設定使用者預設地址",notes = "設定使用者預設地址",httpMethod = "POST")
    @PostMapping("/setDefalut")
    public BEYONDJSONResult setDefault(
            @RequestParam String userId,
            @RequestParam String addressId
    ){
        if (StringUtils.isBlank(userId)|| StringUtils.isBlank(addressId)){
            return BEYONDJSONResult.errorMsg("");
        }
        addressService.updateUserAddressToBeDefault(userId, addressId);
        return BEYONDJSONResult.ok();
    }

相關文章