收获地址管理

数据库

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值