13.用户收货地址展示

本文展示了如何在Java应用程序中通过持久层接口查询用户收货地址,并在业务层进行数据优化,减少不必要的信息传输,提高性能。在SQL查询中,使用ORDER BY对默认地址和创建时间进行了排序。同时,在控制器层提供了获取用户地址的接口。
摘要由CSDN通过智能技术生成

1.持久层

  • 根据用户的id查找收货地址

    /**
     *@描述 根据用户id查找他的收货地址
     *@参数 用户id
     *@返回值 收货地址列表
     *@创建人 ZhangHailong
     */
    List<Address> selectAddressesByUid(Integer uid);
    
    <!--...........................收货地址展示start...............................-->
    <resultMap id="addressMap" type="com.cy.store.entity.Address">
        <result column="aid" property="aid"></result>
        <result column="province_name" property="provinceName"></result>
        <result column="province_code" property="provinceCode"></result>
        <result column="city_name" property="cityName"></result>
        <result column="city_code" property="cityCode"></result>
        <result column="area_name" property="areaName"></result>
        <result column="area_code" property="areaCode"></result>
        <result column="is_default" property="isDefault"></result>
        <result column="created_user" property="createdUser"/>
        <result column="created_time" property="createdTime"/>
        <result column="modified_user" property="modifiedUser"/>
        <result column="modified_time" property="modifiedTime"/>
    </resultMap>
    <select id="selectAddressesByUid" resultMap="addressMap">
        SELECT * FROM t_address WHERE uid=#{uid} ORDER BY is_default DESC, created_time DESC
    </select>
    <!--...........................收货地址展示end...............................-->
    
    • sql查找语句中有两个排序: ORDER BY is_default DESC, created_time DESC, 说明: 如果是默认地址is_default是1,否则0,所以先默认地址,后非默认地址, 收货地址中,越先创建的地址created_time字段越小,所以created_time DESC表示越靠近当前时间越排在前面

2.业务层

@Override
public List<Address> getAddressesByUid(Integer uid) {

    List<Address> addressList = addressDao.selectAddressesByUid(uid);
    // 节省流量,提高性能
    for (Address address : addressList) {
        // aid在后续的设置默认地址等模块要进行使用,所以不将其设置成null
        // address.setAid(null);
        address.setUid(null);
        address.setProvinceCode(null);
        address.setCityCode(null);
        address.setAreaCode(null);
        address.setTel(null);
        address.setCreatedUser(null);
        address.setCreatedTime(null);
        address.setModifiedUser(null);
        address.setModifiedTime(null);
    }

    return addressList;
}

3.控制层

/**
 *@描述 获取当前用户收货地址列表controller
 *@参数 session
 *@返回值 收货地址列表
 *@创建人 ZhangHailong
 */
@RequestMapping(value = "getAddresses", method = RequestMethod.GET)
public JsonResult<List<Address>> getAddressesByUidController(HttpSession session) {
    Integer uid = getUidFromSession(session);

    List<Address> addressList = iAddressService.getAddressesByUid(uid);

    return new JsonResult<>(OK, addressList);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值