package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.panzhihua.common.model.vos.common.ComBatteryUserAddressVo; import com.panzhihua.service_community.entity.ComBatteryUserAddress; import com.panzhihua.service_community.dao.ComBatteryUserAddressMapper; import com.panzhihua.service_community.service.ComBatteryUserAddressService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.BeanUtils; import com.panzhihua.common.model.dtos.common.*; import com.panzhihua.common.model.vos.R; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.util.List; /** * title: 电动车商城-用户收货地址表表服务实现类 *

* projectName 成都呐喊信息技术有限公司-智慧社区项目 *

* description: 电动车商城-用户收货地址表表服务实现类 * * @author lyq * @date 2022-03-29 13:18:20 */ @Service("comBatteryUserAddressService") public class ComBatteryUserAddressServiceImpl extends ServiceImpl implements ComBatteryUserAddressService { /** * description queryByPage 分页查询 * * @param comBatteryUserAddress 请求参数 * @return 分页查询列表数据 * @author lyq * @date 2022-03-29 13:18:20 */ @Override public R queryByPage(PageComBatteryUserAddressDto comBatteryUserAddress) { return R.ok(this.baseMapper.queryAllByLimit(comBatteryUserAddress, new Page(comBatteryUserAddress.getPageNum(), comBatteryUserAddress.getPageSize()))); } /** * description insert 新增数据 * * @param comBatteryUserAddress 请求参数 * @return 新增结果 * @author lyq * @date 2022-03-29 13:18:20 */ @Override public R insert(AddComBatteryUserAddressDto comBatteryUserAddress) { ComBatteryUserAddress entity = new ComBatteryUserAddress(); if(comBatteryUserAddress.getIsDefault().equals(ComBatteryUserAddress.IsDefault.yes)){ //修改用户原来所有收货地址为不默认状态 this.baseMapper.updateUserAddressIsDefault(comBatteryUserAddress.getUserId()); } BeanUtils.copyProperties(comBatteryUserAddress, entity); if (this.baseMapper.insert(entity) > 0) { return R.ok(); } return R.fail("添加失败"); } /** * description update 修改数据 * * @param editDto 请求参数 * @return 修改结果 * @author lyq * @date 2022-03-29 13:18:20 */ @Override public R update(EditComBatteryUserAddressDto editDto) { ComBatteryUserAddress entity = this.baseMapper.selectById(editDto.getId()); if (entity == null) { return R.fail("未查询到该记录"); } if(editDto.getIsDefault().equals(ComBatteryUserAddress.IsDefault.yes)){ //修改用户原来所有收货地址为不默认状态 this.baseMapper.updateUserAddressIsDefault(editDto.getUserId()); } BeanUtils.copyProperties(editDto, entity); if (this.baseMapper.updateById(entity) > 0) { return R.ok(); } return R.fail("修改失败"); } /** * description deleteById 通过主键删除数据 * * @param id 主键id * @return 删除结果 * @author lyq * @date 2022-03-29 13:18:20 */ @Override public R deleteById(Long id) { if (this.baseMapper.deleteById(id) > 0) { return R.ok(); } return R.fail("删除失败"); } /** * description detailById 查询详情 * * @param id 主键id * @return 详情数据 * @author lyq * @date 2022-03-29 13:18:20 */ @Override public R detailById(Long id) { return R.ok(this.baseMapper.queryById(id)); } /** * description queryByPage 查询列表 * * @param comBatteryUserAddress 请求参数 * @return 列表数据 * @author lyq * @date 2022-03-29 13:18:20 */ @Override public R queryByList(PageComBatteryUserAddressDto comBatteryUserAddress) { return R.ok(this.baseMapper.queryAllByList(comBatteryUserAddress)); } /** * 查询用户默认收货地址 * @param userId 用户id * @return 用户默认收货地址 */ @Override public R getDefaultAddress(Long userId) { ComBatteryUserAddressVo userAddressVo = new ComBatteryUserAddressVo(); //判断当前用户是否拥有默认地址 Integer count = this.baseMapper.selectCount(new QueryWrapper().lambda() .eq(ComBatteryUserAddress::getUserId,userId).eq(ComBatteryUserAddress::getIsDefault,ComBatteryUserAddress.IsDefault.yes)); if(count > 0){ ComBatteryUserAddress userAddress = this.baseMapper.selectList(new QueryWrapper().lambda() .eq(ComBatteryUserAddress::getUserId,userId).eq(ComBatteryUserAddress::getIsDefault,ComBatteryUserAddress.IsDefault.yes) .orderByDesc(ComBatteryUserAddress::getCreateAt)).get(0); BeanUtils.copyProperties(userAddress, userAddressVo); }else{ List userAddressList = this.baseMapper.selectList(new QueryWrapper().lambda() .eq(ComBatteryUserAddress::getUserId,userId).orderByDesc(ComBatteryUserAddress::getCreateAt)); if(!userAddressList.isEmpty()){ ComBatteryUserAddress userAddress = userAddressList.get(0); BeanUtils.copyProperties(userAddress, userAddressVo); } } return R.ok(userAddressVo); } }