SysResult
个别后端业务解决实现之后,须要给客户端返回无效信息,告知客户端程序执行是否正确
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult {
private Integer status;
private String msp;// 服务器提示信息 胜利 失败
private Object data;// 服务器返回值数据
// 利用 static 的静态方法 将数据动静返回
public static SysResult fail(){return new SysResult(201,"业务执行失败",null);
}
public static SysResult success(){return new SysResult(200,"业务执行胜利",null);
}
public static SysResult success(Object data){return new SysResult(200,"业务执行胜利",data);
}
public static SysResult success(String msp,Object data){return new SysResult(200,msp,data);
}
}
订单 pojo
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
@TableName("tb_order")
@Data
@Accessors(chain=true)
public class Order extends BasePojo{@TableField(exist=false) // 入库操作疏忽该字段
private OrderShipping orderShipping;
// 封装订单商品信息 一对多
@TableField(exist=false) // 入库操作疏忽该字段
private List<OrderItem> orderItems;
@TableId
private String orderId;
private String payment;
private Integer paymentType;
private String postFee;
private Integer status;
private Date paymentTime;
private Date consignTime;
private Date endTime;
private Date closeTime;
private String shippingName;
private String shippingCode;
private Long userId;
private String buyerMessage;
private String buyerNick;
private Integer buyerRate;
}
订单商品 pojo
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
@TableName("tb_order_item")
@Data
@Accessors(chain=true)
public class OrderItem extends BasePojo{@TableId(type = IdType.AUTO)
private String itemId;
private String orderId;
private Integer num;
private String title;
private Long price;
private Long totalFee;
private String picPath;
}
订单物流 pojo
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
@TableName("tb_order_shipping")
@Data
@Accessors(chain=true)
public class OrderShipping extends BasePojo{
@TableId
private String orderId;
private String receiverName;
private String receiverPhone;
private String receiverMobile;
private String receiverState;
private String receiverCity;
private String receiverDistrict;
private String receiverAddress;
private String receiverZip;
}
实现提交订单
@RequestMapping("submit")
@ResponseBody
public SysResult submit(Order order){Long userId = UserLocalThread.get().getId();
String orderId=dubboOrderService.saveOrder(order);
if(StringUtils.isEmpty(orderId)){return SysResult.fail();
}else {return SysResult.success(orderId);
}
}
@Autowired
private OrderMapper orderMapper;
@Autowired
private OrderShippingMapper orderShippingMapper;
@Autowired
private OrderItemMapper orderItemMapper;
@Override
public String saveOrder(Order order) {
//1. 拼接 orderID = 用户 id 加工夫戳
String orderId=order.getUserId()+""+System.currentTimeMillis();
order.setOrderId(orderId).setStatus(1);
int i = orderMapper.insert(order);// 订单入库
// 实现订单物流入库
OrderShipping orderShipping = order.getOrderShipping();
orderShipping.setOrderId(orderId);// 订单物流增加订单 id
orderShippingMapper.insert(orderShipping);
// 实现订单商品入库
List<OrderItem>orderItems=order.getOrderItems();
for (OrderItem orderItem:orderItems){orderItem.setOrderId(orderId);
orderItemMapper.insert(orderItem);
System.out.println("商品入库胜利");
}
return orderId;
}