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);
}