// Path: src/main/java/com/mmall/common/ServerResponse.java
// @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
// //表示在序列化中,如果哪个变量为null,就不进行序列化了
// public class ServerResponse<T> implements Serializable{
// 
//     private int status;
//     private String msg;
//     private T data;
// 
//     private ServerResponse(int status){
//         this.status = status;
//     }
//     public ServerResponse(int status,String msg){
//         this.status = status;
//         this.msg = msg;
//     }
//     private ServerResponse(int status,String msg,T data){
//         this.status = status;
//         this.msg = msg;
//         this.data = data;
//     }
//     public ServerResponse(int status,T data){
//         this.status = status;
//         this.data = data;
//     }
// 
//     @JsonIgnore
//     //表示在序列化的时候,这个方法是不会被序列化的
//     public boolean isSuccess(){
//         return this.status == ResponseCode.SUCCESS.getCode();
//     }
//     @JsonIgnore
//     //表示在序列化的时候,这个方法是不会被序列化的
//     public boolean isError(){
//         return this.status != ResponseCode.SUCCESS.getCode();
//     }
//     public int getStatus(){
//         return this.status;
//     }
//     public String getMsg(){
//         return this.msg;
//     }
//     public T getData(){
//         return this.data;
//     }
// 
//     /**
//      * 通过success来创建一个成功的ServerResponse对象
//      * @param <T> 第一个<T>表示该方法是一个泛型方法;ServerResponse<T>表示返回值是一个泛型
//      * @return
//      */
//     public static <T> ServerResponse<T> createBySuccess(){
//         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode());
//     }
// 
//     public static <T> ServerResponse<T> createBySuccessMessage(String msg){
//         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg);
//     }
// 
//     public static <T> ServerResponse<T> createBySuccess(T data){
//         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),data);
//     }
// 
//     public static <T> ServerResponse<T> createBySuccess(String msg,T data){
//         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg,data);
//     }
// 
//     public static <T> ServerResponse<T> createByError(){
//         return new ServerResponse<T>(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getDesc());
//     }
//     public static <T> ServerResponse<T> createByError(String errorMessage){
//         return new ServerResponse<T>(ResponseCode.ERROR.getCode(),errorMessage);
//     }
//     public static <T> ServerResponse<T> createByErrorCodeMessage(int errorCode,String errorMessage){
//         return new ServerResponse<T>(errorCode,errorMessage);
//     }
// }
// 
// Path: src/main/java/com/mmall/dao/ShippingMapper.java
// public interface ShippingMapper {
//     int deleteByPrimaryKey(Integer id);
// 
//     int insert(Shipping record);
// 
//     int insertSelective(Shipping record);
// 
//     Shipping selectByPrimaryKey(Integer id);
// 
//     int updateByPrimaryKeySelective(Shipping record);
// 
//     int updateByPrimaryKey(Shipping record);
// 
//     int deleteByShippingIdUserId(@Param("userId")Integer userId, @Param("shippingId") Integer shippingId);
// 
//     int updateByShipping(Shipping record);
// 
//     Shipping selectByShippingIdUserId(@Param("userId")Integer userId,@Param("shippingId") Integer shippingId);
// 
//     List<Shipping> selectByUserId(@Param("userId")Integer userId);
// 
// }
// 
// Path: src/main/java/com/mmall/service/IShippingService.java
// public interface IShippingService {
// 
//     ServerResponse add(Integer userId, Shipping shipping);
// 
//     ServerResponse<String> del(Integer userId,Integer shippingId);
// 
//     ServerResponse update(Integer userId, Shipping shipping);
// 
//     ServerResponse<Shipping> select(Integer userId, Integer shippingId);
// 
//     ServerResponse<PageInfo> list(Integer userId, int pageNum, int pageSize);
// 
// 
// }


import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Maps;
import com.mmall.common.ServerResponse;
import com.mmall.dao.ShippingMapper;
import com.mmall.pojo.Shipping;
import com.mmall.service.IShippingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;

    public ServerResponse<String> del(Integer userId,Integer shippingId){
        int resultCount = shippingMapper.deleteByShippingIdUserId(userId,shippingId);
        if(resultCount > 0){
            return ServerResponse.createBySuccess("删除地址成功");
        }
        return ServerResponse.createByError("删除地址失败");
    }


    public ServerResponse update(Integer userId, Shipping shipping){
        shipping.setUserId(userId);
        int rowCount = shippingMapper.updateByShipping(shipping);
        if(rowCount > 0){
            return ServerResponse.createBySuccess("更新地址成功");
        }
        return ServerResponse.createByError("更新地址失败");
    }

    public ServerResponse<Shipping> select(Integer userId, Integer shippingId){
        Shipping shipping = shippingMapper.selectByShippingIdUserId(userId,shippingId);
        if(shipping == null){
            return ServerResponse.createByError("无法查询到该地址");
        }
        return ServerResponse.createBySuccess("更新地址成功",shipping);
    }


    public ServerResponse<PageInfo> list(Integer userId, int pageNum, int pageSize){
        PageHelper.startPage(pageNum,pageSize);
// Path: src/main/java/com/mmall/common/ServerResponse.java
// @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
// //表示在序列化中,如果哪个变量为null,就不进行序列化了
// public class ServerResponse<T> implements Serializable{
// 
//     private int status;
//     private String msg;
//     private T data;
// 
//     private ServerResponse(int status){
//         this.status = status;
//     }
//     public ServerResponse(int status,String msg){
//         this.status = status;
//         this.msg = msg;
//     }
//     private ServerResponse(int status,String msg,T data){
//         this.status = status;
//         this.msg = msg;
//         this.data = data;
//     }
//     public ServerResponse(int status,T data){
//         this.status = status;
//         this.data = data;
//     }
// 
//     @JsonIgnore
//     //表示在序列化的时候,这个方法是不会被序列化的
//     public boolean isSuccess(){
//         return this.status == ResponseCode.SUCCESS.getCode();
//     }
//     @JsonIgnore
//     //表示在序列化的时候,这个方法是不会被序列化的
//     public boolean isError(){
//         return this.status != ResponseCode.SUCCESS.getCode();
//     }
//     public int getStatus(){
//         return this.status;
//     }
//     public String getMsg(){
//         return this.msg;
//     }
//     public T getData(){
//         return this.data;
//     }
// 
//     /**
//      * 通过success来创建一个成功的ServerResponse对象
//      * @param <T> 第一个<T>表示该方法是一个泛型方法;ServerResponse<T>表示返回值是一个泛型
//      * @return
//      */
//     public static <T> ServerResponse<T> createBySuccess(){
//         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode());
//     }
// 
//     public static <T> ServerResponse<T> createBySuccessMessage(String msg){
//         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg);
//     }
// 
//     public static <T> ServerResponse<T> createBySuccess(T data){
//         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),data);
//     }
// 
//     public static <T> ServerResponse<T> createBySuccess(String msg,T data){
//         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg,data);
//     }
// 
//     public static <T> ServerResponse<T> createByError(){
//         return new ServerResponse<T>(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getDesc());
//     }
//     public static <T> ServerResponse<T> createByError(String errorMessage){
//         return new ServerResponse<T>(ResponseCode.ERROR.getCode(),errorMessage);
//     }
//     public static <T> ServerResponse<T> createByErrorCodeMessage(int errorCode,String errorMessage){
//         return new ServerResponse<T>(errorCode,errorMessage);
//     }
// }
// 
// Path: src/main/java/com/mmall/dao/ShippingMapper.java
// public interface ShippingMapper {
//     int deleteByPrimaryKey(Integer id);
// 
//     int insert(Shipping record);
// 
//     int insertSelective(Shipping record);
// 
//     Shipping selectByPrimaryKey(Integer id);
// 
//     int updateByPrimaryKeySelective(Shipping record);
// 
//     int updateByPrimaryKey(Shipping record);
// 
//     int deleteByShippingIdUserId(@Param("userId")Integer userId, @Param("shippingId") Integer shippingId);
// 
//     int updateByShipping(Shipping record);
// 
//     Shipping selectByShippingIdUserId(@Param("userId")Integer userId,@Param("shippingId") Integer shippingId);
// 
//     List<Shipping> selectByUserId(@Param("userId")Integer userId);
// 
// }
// 
// Path: src/main/java/com/mmall/service/IShippingService.java
// public interface IShippingService {
// 
//     ServerResponse add(Integer userId, Shipping shipping);
// 
//     ServerResponse<String> del(Integer userId,Integer shippingId);
// 
//     ServerResponse update(Integer userId, Shipping shipping);
// 
//     ServerResponse<Shipping> select(Integer userId, Integer shippingId);
// 
//     ServerResponse<PageInfo> list(Integer userId, int pageNum, int pageSize);
// 
// 
// }


// Path: src/main/java/com/mmall/service/impl/ShippingServiceImpl.java
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Maps;
import com.mmall.common.ServerResponse;
import com.mmall.dao.ShippingMapper;
import com.mmall.pojo.Shipping;
import com.mmall.service.IShippingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;


    public ServerResponse<String> del(Integer userId,Integer shippingId){
        int resultCount = shippingMapper.deleteByShippingIdUserId(userId,shippingId);
        if(resultCount > 0){
            return ServerResponse.createBySuccess("删除地址成功");
        }
        return ServerResponse.createByError("删除地址失败");
    }


    public ServerResponse update(Integer userId, Shipping shipping){
        shipping.setUserId(userId);
        int rowCount = shippingMapper.updateByShipping(shipping);
        if(rowCount > 0){
            return ServerResponse.createBySuccess("更新地址成功");
        }
        return ServerResponse.createByError("更新地址失败");
    }

    public ServerResponse<Shipping> select(Integer userId, Integer shippingId){
        Shipping shipping = shippingMapper.selectByShippingIdUserId(userId,shippingId);
        if(shipping == null){
            return ServerResponse.createByError("无法查询到该地址");
        }
        return ServerResponse.createBySuccess("更新地址成功",shipping);
    }


    public ServerResponse<PageInfo> list(Integer userId, int pageNum, int pageSize){
        PageHelper.startPage(pageNum,pageSize);
        List<Shipping> shippingList = shippingMapper.selectByUserId(userId);