From c1d20b425b10e8ba59f102dd1ab413055883eed0 Mon Sep 17 00:00:00 2001
From: 彭雪彬 <1724387007@qq.com>
Date: Mon, 14 Jul 2025 16:57:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/xin' into pxb

---
 oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java |  111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 111 insertions(+), 0 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java
new file mode 100644
index 0000000..073e44f
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java
@@ -0,0 +1,111 @@
+package com.oying.modules.sh.service.impl;
+
+import com.oying.exception.BadRequestException;
+import com.oying.modules.sh.domain.UserAddress;
+import com.oying.utils.FileUtil;
+import com.oying.utils.SecurityUtils;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.sh.service.UserAddressService;
+import com.oying.modules.sh.domain.dto.UserAddressQueryCriteria;
+import com.oying.modules.sh.mapper.UserAddressMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+
+import java.util.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+
+import com.oying.utils.PageResult;
+
+/**
+ * @author lixin
+ * @description 服务实现
+ * @date 2025-06-11
+ **/
+@Service
+@RequiredArgsConstructor
+public class UserAddressServiceImpl extends ServiceImpl<UserAddressMapper, UserAddress> implements UserAddressService {
+
+    private final UserAddressMapper userAddressMapper;
+
+    @Override
+    public PageResult<UserAddress> queryAll(UserAddressQueryCriteria criteria, Page<Object> page) {
+        return PageUtil.toPage(userAddressMapper.findAll(criteria, page));
+    }
+
+    @Override
+    public List<UserAddress> queryAll(UserAddressQueryCriteria criteria) {
+        return userAddressMapper.findAll(criteria);
+    }
+
+    @Override
+    public List<UserAddress> queryUserAddress() {
+        UserAddressQueryCriteria criteria = new UserAddressQueryCriteria();
+        criteria.setUserId(SecurityUtils.getCurrentUserId());
+        return queryAll(criteria);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void create(UserAddress resources) {
+        if (resources.getIsDefault()) {
+            userAddressMapper.isDefault(resources.getUserId());
+        }
+        userAddressMapper.insert(resources);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void update(UserAddress resources) {
+        UserAddress userAddress = getById(resources.getAddressId());
+        if (!userAddress.getUserId().equals(SecurityUtils.getCurrentUserId())) {
+            throw new BadRequestException("不能修改他人资料");
+        }
+        if (resources.getIsDefault()) {
+            userAddressMapper.isDefault(resources.getUserId());
+        }
+        userAddress.copy(resources);
+        userAddressMapper.updateById(userAddress);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteAll(List<Long> ids) {
+        for (Long id : ids) {
+            UserAddress userAddress = getById(id);
+            if (!userAddress.getUserId().equals(SecurityUtils.getCurrentUserId())) {
+                throw new BadRequestException("不能删除他人资料");
+            }
+        }
+        userAddressMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void download(List<UserAddress> all, HttpServletResponse response) throws IOException {
+        List<Map<String, Object>> list = new ArrayList<>();
+        for (UserAddress userAddress : all) {
+            Map<String, Object> map = new LinkedHashMap<>();
+            map.put("收货人", userAddress.getReceiverName());
+            map.put("收货人电话", userAddress.getReceiverPhone());
+            map.put("省份", userAddress.getProvince());
+            map.put("城市", userAddress.getCity());
+            map.put("区县", userAddress.getDistrict());
+            map.put("街道", userAddress.getStreet());
+            map.put("短地址", userAddress.getShortAddress());
+            map.put("详细地址", userAddress.getDetail());
+            map.put("经度", userAddress.getLongitude());
+            map.put("纬度", userAddress.getLatitude());
+            map.put("是否默认", userAddress.getIsDefault() ? "是" : "否");
+            map.put("标签", userAddress.getTag());
+            map.put("创建人", userAddress.getCreateBy());
+            map.put("创建时间", userAddress.getCreateTime());
+            map.put("修改者", userAddress.getUpdateBy());
+            map.put("修改时间", userAddress.getUpdateTime());
+            list.add(map);
+        }
+        FileUtil.downloadExcel(list, response);
+    }
+}

--
Gitblit v1.9.3