| | |
| | | import com.ruoyi.errand.domain.AddressBook; |
| | | import com.ruoyi.errand.domain.AppUser; |
| | | import com.ruoyi.errand.domain.Community; |
| | | import com.ruoyi.errand.domain.Region; |
| | | import com.ruoyi.errand.mapper.AddressBookMapper; |
| | | import com.ruoyi.errand.mapper.CommunityMapper; |
| | | import com.ruoyi.errand.mapper.RegionMapper; |
| | | import com.ruoyi.errand.object.dto.app.AddAddressBookDTO; |
| | | import com.ruoyi.errand.object.dto.app.UpdateAddressBookDTO; |
| | | import com.ruoyi.errand.object.vo.app.AddressBookByCommunityIdVO; |
| | |
| | | public class AddressBookServiceImpl extends ServiceImpl<AddressBookMapper, AddressBook> implements AddressBookService { |
| | | @Resource |
| | | private CommunityMapper communityMapper; |
| | | @Resource |
| | | private RegionMapper regionMapper; |
| | | |
| | | @Override |
| | | public List<AddressBookByCommunityIdVO> addressBookByCommunityId(Integer communityId) { |
| | |
| | | @Override |
| | | public List<AddressBookListVO> addressBookList() { |
| | | AppUser appuser = (AppUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); |
| | | return this.getBaseMapper().addressBookList(appuser.getId()); |
| | | List<AddressBookListVO> voList = this.getBaseMapper().addressBookList(appuser.getId()); |
| | | voList.forEach(vo->{ |
| | | String regionFullName = getRegionFullName(vo.getRegionId()); |
| | | vo.setRegionName(regionFullName); |
| | | }); |
| | | return voList; |
| | | } |
| | | |
| | | /** |
| | | * 根据区ID查询完整的省市区名称 |
| | | */ |
| | | public String getRegionFullName(Integer districtId) { |
| | | Region district = regionMapper.selectById(districtId); |
| | | if (district == null) { |
| | | return ""; |
| | | } |
| | | |
| | | Region city = regionMapper.selectById(district.getParentId()); |
| | | if (city == null) { |
| | | return district.getName(); |
| | | } |
| | | |
| | | Region province = regionMapper.selectById(city.getParentId()); |
| | | if (province == null) { |
| | | return city.getName() + district.getName(); |
| | | } |
| | | |
| | | return province.getName() + city.getName() + district.getName(); |
| | | } |
| | | @Override |
| | | public void setDefaultAddress(Integer id) { |
| | | AppUser appuser = (AppUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); |
| | | //查询这个默认地址 |
| | | AddressBook addressBook = this.getById(id); |
| | | if (null==addressBook||addressBook.getDel_flag().equals(DelFlagConstant.DELETE)) { |
| | | if (null==addressBook||addressBook.getDelFlag().equals(DelFlagConstant.DELETE)) { |
| | | throw new ServiceException("该地址不存在"); |
| | | } |
| | | //查看原本小区内是否有默认地址 |
| | | List<AddressBook> addressBooks = this.getBaseMapper().selectList(new LambdaUpdateWrapper<AddressBook>() |
| | | .eq(AddressBook::getCommunityId, addressBook.getCommunityId()) |
| | | .eq(AddressBook::getApp_user_id, appuser.getId()) |
| | | .eq(AddressBook::getDel_flag, DelFlagConstant.UNDELETE) |
| | | .eq(AddressBook::getIs_default, IsDefaultConstant.TRUE) |
| | | .eq(AddressBook::getAppUserId, appuser.getId()) |
| | | .eq(AddressBook::getDelFlag, DelFlagConstant.UNDELETE) |
| | | .eq(AddressBook::getIsDefault, IsDefaultConstant.TRUE) |
| | | ); |
| | | //将原本地址修改掉 |
| | | addressBooks.forEach(x->{ |
| | | x.setIs_default(IsDefaultConstant.FALSE); |
| | | x.setUpdate_time(LocalDateTime.now()); |
| | | x.setIsDefault(IsDefaultConstant.FALSE); |
| | | x.setUpdateTime(LocalDateTime.now()); |
| | | this.getBaseMapper().updateById(x);} |
| | | ); |
| | | //将新地址设置为默认地址 |
| | | addressBook.setIs_default(IsDefaultConstant.TRUE); |
| | | addressBook.setUpdate_time(LocalDateTime.now()); |
| | | addressBook.setIsDefault(IsDefaultConstant.TRUE); |
| | | addressBook.setUpdateTime(LocalDateTime.now()); |
| | | this.getBaseMapper().updateById(addressBook); |
| | | } |
| | | |
| | | @Override |
| | | public void add(AddAddressBookDTO addAddressBookDTO) { |
| | | public Integer add(AddAddressBookDTO addAddressBookDTO) { |
| | | AppUser appuser = (AppUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); |
| | | //判断小区是否存在 |
| | | Community community = communityMapper.selectById(addAddressBookDTO.getCommunityId()); |
| | |
| | | } |
| | | AddressBook addressBook = new AddressBook(); |
| | | BeanUtils.copyProperties(addAddressBookDTO,addressBook); |
| | | addressBook.setIs_default(IsDefaultConstant.FALSE); |
| | | addressBook.setCreate_time(LocalDateTime.now()); |
| | | addressBook.setApp_user_id(appuser.getId()); |
| | | addressBook.setIsDefault(IsDefaultConstant.FALSE); |
| | | addressBook.setCreateTime(LocalDateTime.now()); |
| | | addressBook.setAppUserId(appuser.getId()); |
| | | this.save(addressBook); |
| | | return addressBook.getId(); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | //判断地址是否存在 |
| | | AddressBook addressBook = this.getById(updateAddressBookDTO.getId()); |
| | | if (null==addressBook||addressBook.getDel_flag().equals(DelFlagConstant.DELETE)) { |
| | | if (null==addressBook||addressBook.getDelFlag().equals(DelFlagConstant.DELETE)) { |
| | | throw new ServiceException("地址不存在"); |
| | | } |
| | | //判断用户是否同一个 |
| | | if (!appuser.getId().equals(addressBook.getApp_user_id())) { |
| | | if (!appuser.getId().equals(addressBook.getAppUserId())) { |
| | | throw new ServiceException("该地址不属于您"); |
| | | } |
| | | BeanUtils.copyProperties(updateAddressBookDTO,addressBook); |
| | | addressBook.setUpdate_time(LocalDateTime.now()); |
| | | addressBook.setUpdateTime(LocalDateTime.now()); |
| | | this.updateById(addressBook); |
| | | |
| | | } |
| | |
| | | AppUser appuser = (AppUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); |
| | | //查看该地址是否存在 |
| | | AddressBook addressBook = this.getById(id); |
| | | if (null==addressBook||addressBook.getDel_flag().equals(DelFlagConstant.DELETE)) { |
| | | if (null==addressBook||addressBook.getDelFlag().equals(DelFlagConstant.DELETE)) { |
| | | throw new ServiceException("该地址不存在"); |
| | | } |
| | | //判断用户是否同一个 |
| | | if (!appuser.getId().equals(addressBook.getApp_user_id())) { |
| | | if (!appuser.getId().equals(addressBook.getAppUserId())) { |
| | | throw new ServiceException("该地址不属于您"); |
| | | } |
| | | |
| | | addressBook.setDel_flag(DelFlagConstant.DELETE); |
| | | addressBook.setDelFlag(DelFlagConstant.DELETE); |
| | | this.updateById(addressBook); |
| | | } |
| | | } |