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; /** *

* 前端控制器 *

* * @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 getDefaultUserAddress(@RequestParam("userId") Long userId){ List list = userAddressService.list(new LambdaQueryWrapper().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(); if (userAddress.getIsDefault()==1){ List 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(); } @ResponseBody @GetMapping("/list") @ApiOperation(value = "列表", tags = {"小程序-个人中心首页-我的地址"}) public R list(){ Long userId = tokenService.getLoginUserApplet().getUserid(); List 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 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 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> getUserAddressList(){ Long userId = tokenService.getLoginUserApplet().getUserid(); List 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 getUserAddressById(@RequestParam("id") Long id){ UserAddress userAddress = userAddressService.getById(id); return R.ok(userAddress); } }