Pu Zhibing
2025-04-03 1f09f6daaf73bc83cceb4ae22b862b7b365635cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
package com.ruoyi.account.controller;
 
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.account.api.model.UserAddress;
import com.ruoyi.account.service.UserAddressService;
import com.ruoyi.common.core.domain.R;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.util.List;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.api.model.UserAddress;
import com.ruoyi.account.service.UserAddressService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.service.TokenService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.util.List;
 
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author luodangjia
 * @since 2024-11-21
 */
@RestController
@RequestMapping("/user-address")
public class UserAddressController {
    
    @Resource
    private UserAddressService userAddressService;
    
    @Resource
    private TokenService tokenService;
    
    
    /**
     * 获取用户默认地址
     * @param userId
     * @return
     */
    @ResponseBody
    @PostMapping("/getDefaultUserAddress")
    public R<UserAddress> getDefaultUserAddress(@RequestParam("userId") Long userId){
        List<UserAddress> list = userAddressService.list(new LambdaQueryWrapper<UserAddress>().eq(UserAddress::getAppUserId, userId).eq(UserAddress::getDelFlag, 0));
        if(list.size() == 0){
            return R.ok();
        }
        UserAddress userAddress = list.stream().filter(s -> s.getIsDefault() == 1).findFirst().get();
        if(null == userAddress){
            userAddress = list.get(0);
        }
        return R.ok(userAddress);
    }
 
    
    @ResponseBody
    @PostMapping("/add")
    @ApiOperation(value = "添加", tags = {"小程序-个人中心首页-我的地址"})
    public R<String> add(@RequestBody UserAddress userAddress){
        Long userId = tokenService.getLoginUserApplet().getUserid();
        if (userAddress.getIsDefault()==1){
            List<UserAddress> list = userAddressService.lambdaQuery().eq(UserAddress::getAppUserId, userId).list();
            for (UserAddress userAddress1 : list) {
                userAddress1.setIsDefault(0);
            }
            userAddressService.updateBatchById(list);
        }
        userAddress.setAppUserId(userId);
        userAddressService.save(userAddress);
        return R.ok(userAddress.getId().toString());
    }
 
    @ResponseBody
    @GetMapping("/list")
    @ApiOperation(value = "列表", tags = {"小程序-个人中心首页-我的地址"})
    public R list(){
        Long userId = tokenService.getLoginUserApplet().getUserid();
        List<UserAddress> list = userAddressService.lambdaQuery().eq(UserAddress::getAppUserId, userId).orderByDesc(UserAddress::getIsDefault).list();
        for (UserAddress userAddress : list) {
            userAddress.setIdStr(userAddress.getId().toString());
            userAddress.setUid(userAddress.getId().toString());
        }
        return R.ok(list);
    }
 
    @ResponseBody
    @PostMapping("/edit")
    @ApiOperation(value = "编辑", tags = {"小程序-个人中心首页-我的地址"})
    public R edit(@RequestBody UserAddress userAddress){
        Long userId = tokenService.getLoginUserApplet().getUserid();
        if (userAddress.getIsDefault()==1){
            List<UserAddress> list = userAddressService.lambdaQuery().eq(UserAddress::getAppUserId, userId).list();
            for (UserAddress userAddress1 : list) {
                userAddress1.setIsDefault(0);
            }
            userAddressService.updateBatchById(list);
        }
        userAddressService.updateById(userAddress);
        return R.ok();
    }
    @ResponseBody
    @GetMapping("/delete")
    @ApiOperation(value = "删除", tags = {"小程序-个人中心首页-我的地址"})
    public R edit(@RequestParam String id){
        userAddressService.removeById(id);
        return R.ok();
    }
 
    @ResponseBody
    @GetMapping("/set")
    @ApiOperation(value = "设为默认", tags = {"小程序-个人中心首页-我的地址"})
    public R set(@RequestParam String id){
        Long userId = tokenService.getLoginUserApplet().getUserid();
        List<UserAddress> list = userAddressService.lambdaQuery().eq(UserAddress::getAppUserId, userId).list();
        for (UserAddress userAddress : list) {
            userAddress.setIsDefault(0);
        }
        userAddressService.updateBatchById(list);
 
        UserAddress byId = userAddressService.getById(id);
        byId.setIsDefault(1);
        userAddressService.updateById(byId);
        return R.ok();
    }
 
    /**
     * 获取登录用户地址列表
     * @return
     */
    @ResponseBody
    @GetMapping("/getUserAddressList")
    @ApiOperation(value = "获取登录用户地址列表", tags = {"小程序-个人中心首页-我的地址"})
    public R<List<UserAddress>> getUserAddressList(){
        Long userId = tokenService.getLoginUserApplet().getUserid();
        List<UserAddress> list = userAddressService.lambdaQuery().eq(UserAddress::getAppUserId, userId).list();
        for (UserAddress userAddress : list) {
            userAddress.setIdStr(userAddress.getId().toString());
        }
        return R.ok(list);
    }
    
    /**
     * 根据id获取用户地址信息
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/getUserAddressById")
    public R<UserAddress> getUserAddressById(@RequestParam("id") Long id){
        UserAddress userAddress = userAddressService.getById(id);
        return R.ok(userAddress);
    }
 
 
    
}