数据库
CREATE TABLE `tbm_user_address` (
`address_id` varchar(64) NOT NULL COMMENT '地址编号',
`user_id` varchar(64) DEFAULT NULL COMMENT '所属用户',
`area` varchar(60) DEFAULT NULL COMMENT '地区(省市区)',
`address` varchar(200) DEFAULT NULL COMMENT '详细地址信息',
`consignee_name` varchar(20) DEFAULT NULL COMMENT '收货人姓名',
`consignee_phone` varchar(20) DEFAULT NULL COMMENT '收货人手机号',
`is_default` tinyint(1) DEFAULT '0' COMMENT '是否默认收货地址(0-不是,1-是)',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`address_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Model:UserAddress
package com.*.model.user;
import java.io.Serializable;
import java.util.Date;
public class UserAddress implements Serializable {
private String addressId;
private String userId;
private String area;
private String address;
private String consigneeName;
private String consigneePhone;
private Integer isDefault;
private Date createTime;
private static final long serialVersionUID = 1L;
public String getAddressId() {
return addressId;
}
public void setAddressId(String addressId) {
this.addressId = addressId == null ? null : addressId.trim();
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId == null ? null : userId.trim();
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area == null ? null : area.trim();
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address == null ? null : address.trim();
}
public String getConsigneeName() {
return consigneeName;
}
public void setConsigneeName(String consigneeName) {
this.consigneeName = consigneeName == null ? null : consigneeName.trim();
}
public String getConsigneePhone() {
return consigneePhone;
}
public void setConsigneePhone(String consigneePhone) {
this.consigneePhone = consigneePhone == null ? null : consigneePhone.trim();
}
public Integer getIsDefault() {
return isDefault;
}
public void setIsDefault(Integer isDefault) {
this.isDefault = isDefault;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
Mapper
package com.*.mapper.user;
import com.mXuan.model.user.UserAddress;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface UserAddressMapper {
void insertSelective(UserAddress record);
/**
* 新增地址
* @param record
* @return
*/
int insert(UserAddress record);
int updateByPrimaryKey(UserAddress record);
/**
* 根据addressId查地址
* @param addressId
* @return
*/
UserAddress selectByPrimaryKey(String addressId);
/**
* 删除默认地址
* @param userId
*/
void setIsDefaultZero(String userId);
/**
* 编辑地址信息
* @param record
* @return
*/
void updateByPrimaryKeySelective(UserAddress record);
/**
* 设为默认地址
* lihao
* @param addressId
* @return
*/
void updateDefaultAddressId(@Param("addressId") String addressId,@Param("createTime") Date createTime);
/**
* 删除地址
* @param addressId
* @return
*/
void deleteByAddressId(String addressId);
/**
* 查询用户默认收货地址
* @param userId 用户ID
* @return
*/
List<UserAddress> selectDefaultAddress(String userId);
/**
* 查询用户所有地址
* @param userId 用户ID
* @return
*/
List<UserAddress> selectAllAddress(String userId);
/**
* 根据addressId获取userId
* @param addressId
* @return
*/
String getUserIdByAddressId(String addressId);
/**
* 根据userId取addressId列表
* @param userId
* @return
*/
List<String> getAddressIdByUserId(String userId);
}
Mapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.*.mapper.user.UserAddressMapper">
<resultMap id="BaseResultMap" type="com.*.model.user.UserAddress">
<id column="address_id" jdbcType="VARCHAR" property="addressId" />
<result column="user_id" jdbcType="VARCHAR" property="userId" />
<result column="area" jdbcType="VARCHAR" property="area" />
<result column="address" jdbcType="VARCHAR" property="address" />
<result column="consignee_name" jdbcType="VARCHAR" property="consigneeName" />
<result column="consignee_phone" jdbcType="VARCHAR" property="consigneePhone" />
<result column="is_default" jdbcType="TINYINT" property="isDefault" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Base_Column_List">
address_id, user_id, area, address, consignee_name, consignee_phone, is_default,
create_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tbm_user_address
where address_id = #{addressId,jdbcType=VARCHAR}
</select>
<!--Luis-->
<!--查询用户所有收获地址-->
<select id="selectAllAddress" parameterType="java.lang.String" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM
tbm_user_address
WHERE user_id = #{userId,jdbcType=VARCHAR}
</select>
<!--查询userId-->
<select id="getUserIdByAddressId" parameterType="java.lang.String" resultType="java.lang.String">
SELECT user_id
FROM
tbm_user_address
WHERE
address_id = #{addressId,jdbcType=VARCHAR}
</select >
<!--设定默认地址-->
<update id="updateDefaultAddressId">
UPDATE
tbm_user_address
SET
is_default = 1,
create_time = #{createTime,jdbcType=TIMESTAMP}
WHERE
address_id = #{addressId,jdbcType=VARCHAR}
</update>
<!--删除地址-->
<delete id="deleteByAddressId" parameterType="java.lang.String">
DELETE
FROM tbm_user_address
WHERE address_id = #{addressId,jdbcType=VARCHAR}
</delete>
<!--删除默认地址-->
<update id="setIsDefaultZero" parameterType="java.lang.String">
UPDATE
tbm_user_address
SET
is_default = 0
WHERE
user_id = #{userId,jdbcType=VARCHAR}
</update>
<!--获取userId-->
<select id="getAddressIdByUserId" parameterType="java.lang.String" resultType="java.lang.String">
SELECT address_id
FROM
tbm_user_address
WHERE
user_id = #{userId,jdbcType=VARCHAR}
ORDER BY
create_time ASC
</select>
<!--Luis-->
<!--我的地盘-->
<!--查询用户默认收货地址-->
<select id="selectDefaultAddress" parameterType="java.lang.String" resultMap="BaseResultMap">
SELECT u.*
FROM
tbm_user_address u
WHERE u.user_id = #{userId}
AND u.is_default = 1
</select>
<!--我的地盘-->
<insert id="insert" parameterType="com.mXuan.model.user.UserAddress">
insert into tbm_user_address (address_id, user_id, area,
address, consignee_name, consignee_phone,
is_default, create_time)
values (#{addressId,jdbcType=VARCHAR}, #{userId,jdbcType=VARCHAR}, #{area,jdbcType=VARCHAR},
#{address,jdbcType=VARCHAR}, #{consigneeName,jdbcType=VARCHAR}, #{consigneePhone,jdbcType=VARCHAR},
#{isDefault,jdbcType=TINYINT}, #{createTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.mXuan.model.user.UserAddress">
insert into tbm_user_address
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="addressId != null">
address_id,
</if>
<if test="userId != null">
user_id,
</if>
<if test="area != null">
area,
</if>
<if test="address != null">
address,
</if>
<if test="consigneeName != null">
consignee_name,
</if>
<if test="consigneePhone != null">
consignee_phone,
</if>
<if test="isDefault != null">
is_default,
</if>
<if test="createTime != null">
create_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="addressId != null">
#{addressId,jdbcType=VARCHAR},
</if>
<if test="userId != null">
#{userId,jdbcType=VARCHAR},
</if>
<if test="area != null">
#{area,jdbcType=VARCHAR},
</if>
<if test="address != null">
#{address,jdbcType=VARCHAR},
</if>
<if test="consigneeName != null">
#{consigneeName,jdbcType=VARCHAR},
</if>
<if test="consigneePhone != null">
#{consigneePhone,jdbcType=VARCHAR},
</if>
<if test="isDefault != null">
#{isDefault,jdbcType=TINYINT},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.mXuan.model.user.UserAddress">
UPDATE tbm_user_address
<set>
<if test="area != null">
area = #{area,jdbcType=VARCHAR},
</if>
<if test="address != null">
address = #{address,jdbcType=VARCHAR},
</if>
<if test="consigneeName != null">
consignee_name = #{consigneeName,jdbcType=VARCHAR},
</if>
<if test="consigneePhone != null">
consignee_phone = #{consigneePhone,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=VARCHAR},
</if>
<if test="isDefault != null">
is_default = #{isDefault,jdbcType=TINYINT},
</if>
</set>
WHERE
address_id = #{addressId,jdbcType=TIMESTAMP}
</update>
<update id="updateByPrimaryKey" parameterType="com.mXuan.model.user.UserAddress">
update tbm_user_address
set user_id = #{userId,jdbcType=VARCHAR},
area = #{area,jdbcType=VARCHAR},
address = #{address,jdbcType=VARCHAR},
consignee_name = #{consigneeName,jdbcType=VARCHAR},
consignee_phone = #{consigneePhone,jdbcType=VARCHAR},
is_default = #{isDefault,jdbcType=TINYINT},
create_time = #{createTime,jdbcType=TIMESTAMP}
where address_id = #{addressId,jdbcType=VARCHAR}
</update>
</mapper>
service
package com.*.service.address;
import com.mXuan.model.user.UserAddress;
import java.util.List;
/*
* @author lihao
* @DATE 2019/3/20
* 收获地址信息
* 增删查改
* 设定默认收获地址
*
* */
public interface AddressService {
/**
* 查询用户所有地址
* lihao
* @param userId 用户ID
* @return
*/
List<UserAddress> showAddress(String userId);
/**
* 获取地址
* @param addressId
* @return
*/
UserAddress getAddress(String addressId);
/**
* 编辑地址信息
* @param userAddress
*/
void updateAddress(UserAddress userAddress,String gTicket);
/**
* 修改设为默认地址
* lihao
* @param addressId
* @return
*/
void setIsDefault(String addressId,String userId);
/**
* 删除地址
* @param addressId
* @return
*/
void delAddress(String addressId,String userId,Integer isDefault);
/**
* 新增地址
* @param userAddress
*/
void addAddress(UserAddress userAddress,String ticket);
/**
* 获取用户默认收货地址
* @param userId 用户id
* @return 默认地址
*/
UserAddress findDefaultAddress(String userId);
}
serviceimpl
package com.
*.service.address.impl;
import com.mXuan.base.exception.ServiceException;
import com.mXuan.mapper.user.UserAddressMapper;
import com.mXuan.model.user.UserAddress;
import com.mXuan.service.address.AddressService;
import com.mXuan.status.error.CommonError;
import com.mXuan.status.error.address.UserAddressError;
import com.mXuan.utils.BusinessAssert;
import com.mXuan.utils.idbase.UUIDGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
*
* @author lihao
* @ DATE 2018/3/21
* @desc 地址管理:增删查改
* */
@Service
public class AddressServiceImpl implements AddressService {
private UserAddressMapper userAddressMapper;
@Autowired
public AddressServiceImpl(UserAddressMapper userAddressMapper) {
this.userAddressMapper = userAddressMapper;
}
//展示地址列表
@Override
public List<UserAddress> showAddress(String userId) {
return userAddressMapper.selectAllAddress(userId);
}
//获取地址
@Override
public UserAddress getAddress(String addressId) {
UserAddress userAddress = userAddressMapper.selectByPrimaryKey(addressId);
if (userAddress != null) {
return userAddress;
} else {
throw new ServiceException(UserAddressError.ADDRESS_IS_NULL.getErrorCode(), UserAddressError.ADDRESS_IS_NULL.getErrorDesc());
}
}
//更改地址
@Override
public void updateAddress(UserAddress userAddress, String userId) {
try {
userAddressMapper.updateByPrimaryKeySelective(userAddress);
setIsDefault(userAddress.getAddressId(), userId);
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException(UserAddressError.ADDRESS_OPERATE_ERROR.getErrorCode(), UserAddressError.ADDRESS_OPERATE_ERROR.getErrorDesc());
}
}
//取消默认地址
private void cancelIsDefault(String userId) {
userAddressMapper.setIsDefaultZero(userId);
}
//新增地址
@Override
public void addAddress(UserAddress userAddress, String userId) {
String addressId = UUIDGenerator.genertate();
BusinessAssert.notNull(CommonError.MISSING_PARAMETERS.getErrCode(), CommonError.MISSING_PARAMETERS.getErrDesc(), userId);
userAddress.setUserId(userId);
userAddress.setAddressId(addressId);
try {
userAddressMapper.insertSelective(userAddress);
setIsDefault(addressId, userId);
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException(UserAddressError.ADDRESS_ADD_ERROR.getErrorCode(), UserAddressError.ADDRESS_ADD_ERROR.getErrorDesc());
}
}
//设置默认地址
/
@Override
public void setIsDefault(String addressId, String userId) {
try {
this.cancelIsDefault(userId);
Date createTime = new Date();
userAddressMapper.updateDefaultAddressId(addressId, createTime);
} catch (Exception e) {
e.printStackTrace();
}
}
// 获取创建时间最近的addressId
private String getAddressId(String userId) {
List<String> list = userAddressMapper.getAddressIdByUserId(userId);
if (list != null) {
return list.get(0);
} else {
return null;
}
}
//删除地址
@Override
public void delAddress(String addressId, String userId, Integer isDefault) {
try {
userAddressMapper.deleteByAddressId(addressId);
//自动设置默认地址
List<UserAddress> list = showAddress(userId);
if (list.size() > 0) {
String newAddressId = this.getAddressId(userId);
if (isDefault == 1 && newAddressId != null) {
Date createTime = new Date();
userAddressMapper.updateDefaultAddressId(newAddressId, createTime);
}
}
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException(UserAddressError.ADDRESS_DEL_WRONG.getErrorCode(), UserAddressError.ADDRESS_DEL_WRONG.getErrorDesc());
}
}
@Override
public UserAddress findDefaultAddress(String userId) {
List<UserAddress> userAddresses = userAddressMapper.selectDefaultAddress(userId);
if (userAddresses.isEmpty()) {
return null;
} else {
if (userAddresses.size() > 1) {
throw new ServiceException(UserAddressError.DEFAULT_ADDRESS_MORE.getErrorCode(), UserAddressError.DEFAULT_ADDRESS_MORE.getErrorDesc());
}
return userAddresses.get(0);
}
}
}
说明:引入的类
UUIDGenerator
package com.*.utils.idbase;
import java.util.UUID;
/**
* UUID
*
* @author Li Shijie
* @date 2018/3/17
*/
public abstract class UUIDGenerator {
public UUIDGenerator() {
}
public static String genertate() {
String id = UUID.randomUUID().toString().replace("-", "");
return id;
}
}
BusinessAssert
package com.*.utils;
import com.*.base.exception.ServiceException;
import java.math.BigDecimal;
import java.util.List;
/**
* 业务校验
*
* @author Li Shijie
* @date 2018/3/14
*/
public abstract class BusinessAssert {
public static void equal(Object excepted, Object target,Integer errCode, String messgae) {
if (!excepted.equals(target)) {
throw new ServiceException(errCode,messgae);
}
}
public static void notEqual(Object excepted, Object target,Integer errCode,String message) {
if (excepted.equals(target)) {
throw new ServiceException(errCode,message);
}
}
public static void toLarge(BigDecimal excepted, BigDecimal target,Integer errCode, String message) {
if (target.doubleValue() > excepted.doubleValue()) {
throw new ServiceException(errCode,message);
}
}
public static void notNull(Integer errCode,String message,Object ...objects){
for(Object obj:objects ){
if(obj == null){
throw new ServiceException(errCode,message);
}
}
}
public static void notEmpty(List<?> list, Integer errCode, String message) {
if (list == null || list.isEmpty()) {
throw new ServiceException(errCode, message);
}
}
public static void fail(Integer errCode,String message) {
throw new ServiceException(errCode,message);
}
public static ServiceException exception(Integer errCode,String message) {
return new ServiceException(errCode,message);
}
}
错误枚举UserAddressError
package com.*.status.error.address;
/**
* 收货地址错误枚举
*
* @author Li Shijie
*/
public enum UserAddressError {
DEFAULT_ADDRESS_MORE(10020,"默认地址数量大于1"),
ADDRESS_SERVICE_ERROR(10021,"地址查询出现错误"),
ADDRESS_IS_NULL(10022,"地址为空"),
ADDRESS_DEL_WRONG(10023,"删除地址出错"),
ADDRESS_OPERATE_ERROR(10024,"地址操作出现错误"),
ADDRESS_ADD_ERROR(10025,"添加地址失败")
;
private Integer errorCode;
private String errorDesc;
public Integer getErrorCode() {
return errorCode;
}
public String getErrorDesc() {
return errorDesc;
}
UserAddressError(Integer errorCode, String errorDesc) {
this.errorCode = errorCode;
this.errorDesc = errorDesc;
}
}
业务异常类
package com.*.base.exception;
import com.*.status.ErrorStatus;
/**
* 业务异常
*
* @author Li Shijie
* @date 2018/3/7
*/
public class ServiceException extends RuntimeException{
private Integer errorCode;
public ServiceException() {
super();
}
public ServiceException(String message) {
super(message);
}
public ServiceException(Integer errorCode, String message) {
super(message);
this.errorCode = errorCode;
}
public ServiceException(ErrorStatus errorStatus) { this(errorStatus.getErrCode(), errorStatus.getErrDesc()); }
public ServiceException(String message, Throwable cause) {
super(message, cause);
}
public ServiceException(Throwable cause) {
super(cause);
}
protected ServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
}
public Integer getErrorCode() {
return errorCode;
}
}
ErrorStatus
package com.*.status;
/**
* @author Li Shijie
* @Description: Error Code And Message
* @date 2018/3/3下午4:56
*/
public interface ErrorStatus {
Integer getErrCode();
String getErrDesc();
}
CommonError
package com.*.status.error;
import com.*.status.ErrorStatus;
/**
* @author Li Shijie
* @Description: 公共返回错误类型
* @date 2018/3/3下午4:56
* //
*/
public enum CommonError implements ErrorStatus {
/**
* 缺少必要请求参数
*/
MISSING_PARAMETERS(400, "missing_required_parameters"),
/**
* 非法请求参数
*/
ILLEGAL_PARAMETER(401, "illegal_request_parameter"),
/**
* 请求路径错误
*/
WRONG_URL(404, "WRONG_URL"),
/**
* 服务器内部异常
*/
INTERNAL_EXCEPTION(500, "server_internal_exception"),
/**
* 请求方法不支持
*/
NOT_SUPPORTED(415, "request_method_not_supported"),
/**
* 商品服务调用失败
*/
PRODUCT_SERVICE_ERROR(600, "product_service_error");
private Integer errCode;
private String errDesc;
public Integer getErrCode() {
return errCode;
}
public String getErrDesc() {
return errDesc;
}
CommonError(Integer errCode, String errDesc) {
this.errCode = errCode;
this.errDesc = errDesc;
}
}
Controller: UserAddressController
package com.*.controller.useraddress;
import com.*.base.basebean.ResponseBean;
import com.*.model.user.UserAddress;
import com.*.service.address.AddressService;
import com.*.status.error.CommonError;
/**
*获取用户userId工具类
*输入ticket获得UserId
*import com.*.utils.AccountIdUtils;
*/
import com.*.utils.BusinessAssert;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/*
* @DATE 2018/3/24
* @author lihao
* 用户地址控制层
* */
@RestController
@RequestMapping("address")
public class UserAddressController {
private static Logger logger = LoggerFactory.getLogger(UserAddressController.class);
private AddressService addressService;
@Autowired
public UserAddressController(AddressService addressService) {
this.addressService = addressService;
}
/*
* 根据userId获取查询收货地址列表
* @param addressId 用户ID
* @return 地址列表信息
* */
@RequestMapping("/getAddressList")
public ResponseBean getAddressList(String gTicket){
List<UserAddress> userAddress = addressService.showAddress(AccountIdUtils.getAccountId(gTicket));
if (userAddress.size()>0){
return ResponseBean.success(userAddress);
}else {
return ResponseBean.success();
}
}
/* *
*新增地址
* userId,area,consigneeName,consigneePhone,address不能为空
* @param ticket
* @param useraddress
* @return
*/
@RequestMapping("/addAddress")
public ResponseBean addAddress( String gTicket,UserAddress userAddress){
BusinessAssert.notNull(CommonError.MISSING_PARAMETERS.getErrCode(), CommonError.MISSING_PARAMETERS.getErrDesc(),userAddress.getConsigneeName(),userAddress.getConsigneePhone(),userAddress.getAddress(),userAddress.getArea(),gTicket);
addressService.addAddress(userAddress,gTicket);
return ResponseBean.success();
}
/**
* 删除地址
* @param addressId 地址ID 不能为空
* @param isDefault 是否为默认地址 默认为0(否)
* @return scuess
*/
@RequestMapping("/deleteAddress")
public ResponseBean deleteAddress(String gTicket,String addressId,@RequestParam(value = "isDefault", defaultValue = "0")Integer isDefault){
BusinessAssert.notNull(CommonError.MISSING_PARAMETERS.getErrCode(),CommonError.MISSING_PARAMETERS.getErrDesc(),addressId);
addressService.delAddress(addressId,AccountIdUtils.getAccountId(gTicket),isDefault);
return ResponseBean.success();
}
/**
* 点击编辑
* @param addressId 地址ID
* @return 地址信息
*/
@RequestMapping("/toUpdatePage")
public ResponseBean toUpdatePage(String addressId){
BusinessAssert.notNull(CommonError.MISSING_PARAMETERS.getErrCode(),CommonError.MISSING_PARAMETERS.getErrDesc(),addressId);
return ResponseBean.success(addressService.getAddress(addressId));
}
/**
* 更改地址
* @param userAddress
* @return
*/
@RequestMapping("/updateAddress")
public ResponseBean updateAddress(UserAddress userAddress,String gTicket){
BusinessAssert.notNull(CommonError.MISSING_PARAMETERS.getErrCode(),CommonError.MISSING_PARAMETERS.getErrDesc(),userAddress.getAddressId(),gTicket);
addressService.updateAddress(userAddress,gTicket);
return ResponseBean.success();
}
/**
* //设定为默认地址
* @param addressId 地址ID
* @return
*/
@RequestMapping("/setDefaultAddress")
public ResponseBean setDefaultAddress(String gTicket,String addressId){
String userId = AccountIdUtils.getAccountId(gTicket);
BusinessAssert.notNull(CommonError.MISSING_PARAMETERS.getErrCode(), CommonError.MISSING_PARAMETERS.getErrDesc(),addressId,userId);
addressService.setIsDefault(addressId,userId);
return ResponseBean.success();
}
/**
* 查询用户默认地址
* @param gTicket 凭证
* @return 用户默认地址
*/
@RequestMapping("findDefaultAddress")
public ResponseBean findDefaultAddress(String gTicket){
return ResponseBean.success(addressService.findDefaultAddress(AccountIdUtils.getAccountId(gTicket)));
}
}
说明:
统一返回格式类 ResponseBean
package com.*.base.basebean;
import com.github.pagehelper.Page;
import com.*.status.ErrorStatus;
import com.*.status.error.order.OrderError;
import java.io.Serializable;
import java.util.List;
/**
* 统一返回内容格式
*
* @author Li Shijie
* @since 1.0.0
*/
public class ResponseBean<T> implements Serializable {
private Integer errCode = 0;
private String message;
/**
* 当前第几页
*/
private Integer pageNum;
/**
* 每页多少条
*/
private Integer pageSize;
/**
* 总条数
*/
private Long totalCount;
/**
* 总页数
*/
private Integer totalPage;
private T data;
private List<T> rows;
public ResponseBean() {
}
public ResponseBean(T data) {
this.data = data;
}
public ResponseBean(Page<?> page, T data) {
this.data = data;
this.pageSize = page.getPageSize();
this.pageNum = page.getPageNum();
this.totalCount = page.getTotal();
this.totalPage = page.getPages();
}
public ResponseBean(Page<T> page) {
this.rows = page.getResult();
this.pageSize = page.getPageSize();
this.pageNum = page.getPageNum();
this.totalCount = page.getTotal();
this.totalPage = page.getPages();
}
public Integer getErrCode() {
return errCode;
}
public void setErrCode(Integer errCode) {
this.errCode = errCode;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public static <T> ResponseBean<T> success(T data) {
return new ResponseBean<>(data);
}
public static <T> ResponseBean<T> success(Page<?> page, T data) {
return new ResponseBean<>(page, data);
}
public static ResponseBean<?> success() {
ResponseBean<?> responseBean = new ResponseBean<>();
return responseBean;
}
public static ResponseBean<?> failure(OrderError orderFailedRefundByPos) {
ResponseBean<?> responseBean = new ResponseBean<>();
return responseBean;
}
public static ResponseBean<?> failure(OrderError orderFailedRefundByPos, String message) {
ResponseBean<?> responseBean = new ResponseBean<>();
responseBean.setMessage(message);
return responseBean;
}
public static ResponseBean<?> failure(Integer errCode, String message) {
ResponseBean<?> responseBean = new ResponseBean<>();
responseBean.setErrCode(errCode);
responseBean.setMessage(message);
return responseBean;
}
public static <T> ResponseBean<T> failure(ErrorStatus error) {
ResponseBean responseBean = new ResponseBean();
responseBean.setErrCode(error.getErrCode());
responseBean.setMessage(error.getErrDesc());
return responseBean;
}
public Integer getPageNum() {
return pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public Long getTotalCount() {
return totalCount;
}
public Integer getTotalPage() {
return totalPage;
}
public List<T> getRows() {
return rows;
}
}
OrderError
package com.*.status.error.order;
/**
* 订单错误类型
*
* @author Li Shijie
*/
public enum OrderError {
ORDER_IS_NULL(10010, "order_is_null"),
ORDER_CODE_IS_NULL(10011, "orderCode_is_null"),
PREPAREPAY_ERROR(10012,"preparepay_error"),
ORDER_DETAIL_NULL(10013,"order_detail_null"),
REFUND_ORDER_ERROR(10014,"order_detail_null"),
NOT_YOUR_ORDER(10015,"not_your_order"),
ORDER_NOT_PAY(10016,"order_not_pay"),
ORDER_FAILED_REFUND_BY_POS(10017,"order_failed_refund_by_POS"),
REFUSE_REASON_NULL(10018,"refuse_reason_null"),
ORDER_REPEAT_REFUND(10019,"order_repeat_refund"),
ORDER_STATUS_ERROR(10020,"order_status_error"),
NOT_CAN_SELF_BUY(10021,"店铺库存不够不能自提"),
REJECT_CASE_NULL(10022,"审核不通过原因为空"),
ORDER_REPEAT_REVOKE(10023,"order_repeat_revoke")
;
private Integer errCode;
private String errDesc;
public Integer getErrCode() {
return errCode;
}
public String getErrDesc() {
return errDesc;
}
OrderError(Integer errCode, String errDesc) {
this.errCode = errCode;
this.errDesc = errDesc;
}
}