Pu Zhibing
2024-12-06 39ef464a6630a7b2ab99069e3f6bd40a99c48086
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
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 add(@RequestBody UserAddress userAddress){
        Long userId = tokenService.getLoginUserApplet().getUserid();
        userAddress.setAppUserId(userId);
        userAddressService.save(userAddress);
        return R.ok();
    }
    @ResponseBody
    @PostMapping("/edit")
    @ApiOperation(value = "编辑", tags = {"小程序-个人中心首页-我的地址"})
    public R edit(@RequestBody UserAddress userAddress){
        userAddressService.updateById(userAddress);
        return R.ok();
    }
    @ResponseBody
    @PostMapping("/delete")
    @ApiOperation(value = "删除", tags = {"小程序-个人中心首页-我的地址"})
    public R edit(@RequestParam Integer id){
        userAddressService.removeById(id);
        return R.ok();
    }
 
    @ResponseBody
    @PostMapping("/set")
    @ApiOperation(value = "设为默认", tags = {"小程序-个人中心首页-我的地址"})
    public R set(@RequestParam Integer 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();
        return R.ok(list);
    }
    
    /**
     * 根据id获取用户地址信息
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/getUserAddressById")
    public R<UserAddress> getUserAddressById(@RequestParam("id") Integer id){
        UserAddress userAddress = userAddressService.getById(id);
        return R.ok(userAddress);
    }
 
 
    
}