Răsfoiți Sursa

C端地址管理列表查询接口开发

郭子栋 5 zile în urmă
părinte
comite
9d242e37be

+ 12 - 1
nightFragrance-massage/src/main/java/com/ylx/massage/domain/TAddress.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ylx.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -31,12 +32,22 @@ public class TAddress extends Model<TAddress> {
      */
     @ApiModelProperty("商户id")
     private Long merchantId;
-
+    /**
+     * 性别(0女1男)
+     */
+    @TableField("sex")
+    private Integer sex;
     /**
      * 用户openId
      */
     @ApiModelProperty("用户openId")
     private String openid;
+
+    /**
+     * 城市编码
+     */
+    @ApiModelProperty("城市编码")
+    private String cityCode;
     //电话
     @ApiModelProperty("电话")
     private String phone;

+ 11 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/service/TAddressService.java

@@ -2,6 +2,10 @@ package com.ylx.massage.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ylx.massage.domain.TAddress;
+import com.ylx.useradress.domain.dto.UserAddressDto;
+import com.ylx.useradress.domain.vo.UserAddressVo;
+
+import java.util.List;
 
 /**
  * 轮播图(TAddress)表服务接口
@@ -18,6 +22,13 @@ public interface TAddressService extends IService<TAddress> {
      */
     public TAddress getByOpenId(String openId);
 
+    /**
+     * 根据openId,userType查询地址列表
+     * @param dto
+     * @return
+     */
+    public List<UserAddressVo> getByOpenIdList(UserAddressDto dto);
+
     Boolean defaultAddress(TAddress tAddress);
 
     Object insertAddress(TAddress tAddress);

+ 35 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TAddressServiceImpl.java

@@ -1,15 +1,22 @@
 package com.ylx.massage.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ylx.common.utils.StringUtils;
+import com.ylx.useradress.domain.dto.UserAddressDto;
+import com.ylx.useradress.domain.vo.UserAddressVo;
 import com.ylx.massage.mapper.TAddressMapper;
 import com.ylx.massage.domain.TAddress;
 import com.ylx.massage.service.TAddressService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Collections;
+import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 轮播图(TAddress)表服务实现类
@@ -27,6 +34,34 @@ public class TAddressServiceImpl extends ServiceImpl<TAddressMapper, TAddress> i
         return this.getOne(objectLambdaQueryWrapper);
     }
 
+
+    private List<TAddress> getAddressList(String openId, Integer userType,String cityCode) {
+        LambdaQueryWrapper<TAddress> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        objectLambdaQueryWrapper.eq(TAddress::getOpenid, openId)
+                .eq(TAddress::getUserType, userType)
+                .eq(TAddress::getCityCode,cityCode)
+                .eq(TAddress::getIsDelete,0)
+                .orderByDesc(TAddress::getCreateTime);
+        return this.list(objectLambdaQueryWrapper);
+    }
+    /**
+     *  根据openId和userType获取地址列表 用户类型(1:用户 2:商户)
+     * @param dto
+     * @return
+     */
+    @Override
+    public List<UserAddressVo> getByOpenIdList(UserAddressDto dto) {
+        List<TAddress> addressList = getAddressList(dto.getOpenId(), 1,dto.getCityCode());
+        if (CollectionUtils.isEmpty(addressList)) {
+            return Collections.emptyList();
+        }
+        return addressList.stream().map(this::convertToVo).collect(Collectors.toList());
+    }
+    private UserAddressVo convertToVo(TAddress address) {
+        UserAddressVo vo = new UserAddressVo();
+        BeanUtils.copyProperties(address, vo);
+        return vo;
+    }
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean defaultAddress(TAddress tAddress) {

+ 44 - 0
nightFragrance-massage/src/main/java/com/ylx/useradress/domain/controller/UserAddressController.java

@@ -0,0 +1,44 @@
+package com.ylx.useradress.domain.controller;
+
+import com.ylx.common.core.domain.R;
+import com.ylx.massage.service.TAddressService;
+import com.ylx.useradress.domain.dto.UserAddressDto;
+import com.ylx.useradress.domain.vo.UserAddressVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 类描述:
+ *
+ * @author Administrator
+ * @version 1.0
+ * @date 2026/6/5 17:54
+ */
+@RestController
+@RequestMapping("/user/address")
+@Api(tags = {"项目车费标准设置"})
+@Slf4j
+public class UserAddressController {
+    @Resource
+    private TAddressService tAddressService;
+
+    /**
+     * 用户地址列表查询
+     *
+     * @return
+     */
+    @ApiOperation(value="用户地址列表查询", notes="用户地址列表查询")
+    @PostMapping(value = "/getUserAddress")
+    public R<List<UserAddressVo>> getUserAddress(@Validated @RequestBody UserAddressDto dto) {
+        return R.ok(tAddressService.getByOpenIdList(dto));
+    }
+}

+ 27 - 0
nightFragrance-massage/src/main/java/com/ylx/useradress/domain/dto/UserAddressDto.java

@@ -0,0 +1,27 @@
+package com.ylx.useradress.domain.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+
+/**
+ * 类描述:C端用户地址列表dto
+ *
+ * @author Administrator
+ * @version 1.0
+ * @date 2026/6/5 17:16
+ */
+@Data
+public class UserAddressDto {
+
+    @NotBlank(message = "微信openId不能为空")
+    @ApiModelProperty("微信openId")
+    private String openId;
+
+    @NotBlank(message = "城市编码不能为空")
+    @ApiModelProperty("城市编码")
+    private String cityCode;
+
+}

+ 40 - 0
nightFragrance-massage/src/main/java/com/ylx/useradress/domain/vo/UserAddressVo.java

@@ -0,0 +1,40 @@
+package com.ylx.useradress.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 类描述:C端用户地址列表vo
+ *
+ * @author Administrator
+ * @version 1.0
+ * @date 2026/6/5 17:16
+ */
+public class UserAddressVo {
+
+    //电话
+    @ApiModelProperty("电话")
+    private String phone;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String userName;
+    //地图展示地址
+    @ApiModelProperty("地图展示地址")
+    private String atlasAdd;
+    //经度
+    @ApiModelProperty("经度")
+    private Double longitude;
+    //纬度
+    @ApiModelProperty("纬度")
+    private Double latitude;
+    //详细地址
+    @ApiModelProperty("详细地址")
+    private String address;
+
+    @ApiModelProperty("地址name")
+    private String name;
+
+}

+ 2 - 0
nightFragrance-massage/src/main/resources/mapper/massage/TAddressMapper.xml

@@ -5,12 +5,14 @@
     <resultMap type="com.ylx.massage.domain.TAddress" id="TAddressMap">
         <result property="id" column="id" jdbcType="VARCHAR"/>
         <result property="openid" column="openid" jdbcType="VARCHAR"/>
+        <result property="cityCode" column="city_code" jdbcType="VARCHAR"/>
         <result property="phone" column="phone" jdbcType="VARCHAR"/>
         <result property="userName" column="user_name" jdbcType="VARCHAR"/>
         <result property="atlasAdd" column="atlas_add" jdbcType="VARCHAR"/>
         <result property="longitude" column="longitude" jdbcType="NUMERIC"/>
         <result property="latitude" column="latitude" jdbcType="NUMERIC"/>
         <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="sex" column="sex" jdbcType="INTEGER"/>
         <result property="address" column="address" jdbcType="VARCHAR"/>
         <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
         <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>