From b5ead35c1d955f2a0e2e10da79254860d0ba95e9 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 23 五月 2025 14:50:27 +0800
Subject: [PATCH] 大屏接口bug修改

---
 ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/UserRecipientController.java |   78 +++++++++++++++++++++++++++++++++++---
 1 files changed, 71 insertions(+), 7 deletions(-)

diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/UserRecipientController.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/UserRecipientController.java
index 0a70ac8..d02cff0 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/UserRecipientController.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/UserRecipientController.java
@@ -1,11 +1,15 @@
 package com.ruoyi.user.controller;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.service.TokenService;
-import com.ruoyi.system.api.model.LoginUser;
+import com.ruoyi.system.api.model.LoginUserInfo;
+import com.ruoyi.user.entity.Region;
 import com.ruoyi.user.entity.UserRecipient;
+import com.ruoyi.user.service.RegionService;
 import com.ruoyi.user.service.UserRecipientService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -35,12 +39,12 @@
     private TokenService tokenService;
 
     /**
-     * 用户端首页回收分类推荐
+     * 收货地址列表
      */
     @GetMapping(value = "/list")
     @ApiOperation(value = "收货地址列表", tags = {"用户端-收货地址管理"})
     public R<List<UserRecipient>> list() {
-        LoginUser loginUser = tokenService.getLoginUserByUser();
+        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
         if (null == loginUser) {
             return R.loginExpire("登录失效!");
         }
@@ -48,6 +52,23 @@
                 .eq(UserRecipient::getIsDelete, Constants.ZERO)
                 .orderByDesc(UserRecipient::getIsDefault)
                 .orderByDesc(UserRecipient::getCreateTime).list());
+    }
+
+    /**
+     * 收货地址列表
+     */
+    @GetMapping(value = "/page")
+    @ApiOperation(value = "收货地址分页列表", tags = {"用户端-收货地址管理"})
+    public R<IPage<UserRecipient>> page(@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
+        if (null == loginUser) {
+            return R.loginExpire("登录失效!");
+        }
+        return R.ok(recipientService.lambdaQuery().eq(UserRecipient::getUserId, loginUser.getUserid())
+                .eq(UserRecipient::getIsDelete, Constants.ZERO)
+                .orderByDesc(UserRecipient::getIsDefault)
+                .orderByDesc(UserRecipient::getCreateTime).page(Page.of(pageNum, pageSize)));
     }
 
     /**
@@ -74,14 +95,45 @@
     @ApiOperation(value = "新增收货地址", tags = {"用户端-收货地址管理"})
     @PostMapping(value = "/save")
     public R<String> save(@RequestBody UserRecipient userRecipient) {
-        LoginUser loginUser = tokenService.getLoginUserByUser();
+        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
         if (null == loginUser) {
             return R.loginExpire("登录失效!");
         }
-        userRecipient.setUserId(loginUser.getUserid().intValue());
-        return recipientService.save(userRecipient) ? R.ok() : R.fail();
+        Region one = regionService.lambdaQuery().eq(Region::getCode, userRecipient.getCityCode()).one();
+        userRecipient.setCity(one.getName());
+
+        userRecipient.setUserId(loginUser.getUserid());
+        // 当前新增收货地址为默认地址时
+        boolean result = recipientService.updateBatchAddress(userRecipient, loginUser.getUserid());
+        return result && recipientService.save(userRecipient) ? R.ok() : R.fail();
     }
 
+    /**
+     * 设置默认收货地址
+     *
+     * @param id 收货地址id
+     */
+    @ApiOperation(value = "设置默认收货地址", tags = {"用户端-收货地址管理"})
+    @PostMapping(value = "/defaultAddress")
+    public R<String> defaultAddress(@RequestParam Integer id) {
+        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
+        if (null == loginUser) {
+            return R.loginExpire("登录失效!");
+        }
+        // 修改所有收货地址
+        boolean update = recipientService.lambdaUpdate()
+                .set(UserRecipient::getIsDefault, Constants.ZERO)
+                .eq(UserRecipient::getUserId, loginUser.getUserid())
+                .eq(UserRecipient::getIsDelete, Constants.ZERO).update();
+        update = update && recipientService.lambdaUpdate()
+                .eq(UserRecipient::getId, id)
+                .set(UserRecipient::getIsDefault, Constants.ONE).update();
+        return update ? R.ok() : R.fail();
+    }
+
+
+    @Resource
+    private RegionService regionService;
     /**
      * 修改收货地址
      *
@@ -91,7 +143,15 @@
     @ApiOperation(value = "修改收货地址", tags = {"用户端-收货地址管理"})
     @PostMapping(value = "/update")
     public R<String> update(@RequestBody UserRecipient userRecipient) {
-        return recipientService.updateById(userRecipient) ? R.ok() : R.fail();
+        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
+        if (null == loginUser) {
+            return R.loginExpire("登录失效!");
+        }
+        Region one = regionService.lambdaQuery().eq(Region::getCode, userRecipient.getCityCode()).one();
+        userRecipient.setCity(one.getName());
+        // 当前修改收货地址为默认地址时
+        boolean result = recipientService.updateBatchAddress(userRecipient, loginUser.getUserid());
+        return result && recipientService.updateById(userRecipient) ? R.ok() : R.fail();
     }
 
     /**
@@ -105,6 +165,10 @@
             @ApiImplicitParam(value = "收货地址id", name = "id", dataType = "String", required = true)
     })
     public R<String> batchDelete(@RequestParam Integer id) {
+        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
+        if (null == loginUser) {
+            return R.loginExpire("登录失效!");
+        }
         return recipientService.lambdaUpdate().set(UserRecipient::getIsDelete, Constants.ONE)
                 .eq(UserRecipient::getId, id).update() ? R.ok() : R.fail();
     }

--
Gitblit v1.7.1